A multi-thread computer system comprising an array of thread units and
associated sets of execution units. The thread units are designed to be
interconnected in a one-dimensional array with other thread units of the
array via respective multi-bit bi-directional communication paths for
transferring threads and for relaying activity values between thread
units. Each thread unit has a thread control unit. Each thread control
unit has on its left side a first multi-bit input and a first multi-bit
output, each connected to a first one of the bi-directional communication
paths, and on its right side a second multi-bit input and a second
multi-bit output, each connected to a second one of the bi-directional
communication paths. Each thread control unit also has an activity sensor
for determining the activity state of the thread unit as well as logic
arranged to receive first and second input activity values from the first
and second multi-bit inputs respectively, and an activity state signal
from the activity sensor. The logic is configured to set the first and
second output activity values to a maximum value when the thread unit is
active and, when the thread unit is inactive, to set the first output
activity value to a value one less than the second input activity value
and to set the second output activity value to a value one less than the
first input activity value. The thread unit also has a thread propagation
controller responsive to the activity signals present at the first and
second multi-bit inputs for controlling thread duplication and migration
events. In further embodiments the thread units are interconnected in
multi-dimensional arrays of various topologies.
Een multi-draadcomputersysteem dat uit een serie van draadeenheden en bijbehorende reeksen uitvoeringseenheden bestaat. De draadeenheden worden ontworpen om in een ééndimensionale serie met andere draadeenheden van de serie via respectieve multi-beetje tweerichtings communicatie wegen voor het overbrengen van draden en worden onderling verbonden voor het aflossen van activiteitenwaarden tussen draadeenheden. Elke draadeenheid heeft een eenheid van de draadcontrole. Elke eenheid van de draadcontrole heeft aan zijn linkerkant een eerste ingevoerd multi-beetje en een eerste multi-beetjeoutput, elk verbonden met een eerste één van de tweerichtings communicatie wegen, en aan zijn juiste kant een tweede ingevoerd multi-beetje en een tweede multi-beetjeoutput, elk verbonden met een tweede één van de tweerichtings communicatie wegen. Elke eenheid van de draadcontrole heeft ook een activiteitensensor voor het bepalen van de activiteitenstaat van de draadeenheid evenals logica die wordt geschikt om eerst respectievelijk te ontvangen en de tweede waarden van de inputactiviteit van de eerste en tweede multi-beetjeinput, en een signaal van de activiteitenstaat van de activiteitensensor. De logica wordt gevormd om de eerste en tweede waarden van de outputactiviteit aan een maximumwaarde te plaatsen wanneer de draadeenheid actief en, wanneer de draadeenheid inactief is, is om de eerste waarde van de outputactiviteit te plaatsen aan een waarde één dan minder de tweede waarde van de inputactiviteit en de tweede waarde van de outputactiviteit te plaatsen aan een waarde één dan minder de eerste waarde van de inputactiviteit. De draadeenheid heeft ook een controlemechanisme van de draadpropagatie ontvankelijk voor de activiteitensignalen huidig bij de eerste en tweede multi-beetjeinput voor het controleren van van de draadverdubbeling en migratie gebeurtenissen. In verdere belichamingen worden de draadeenheden onderling verbonden in multidimensionele series van diverse topologieën.