throbber
United States Patent [191
`Frey, Jr. et a1.
`
`IlllllllllllllllllllllllllllllllIllll||l||Illllllllllllllllllllllllllllllll
`5,181,017
`Jan. 19, 1993
`
`USO05181017A
`[11] Patent Number:
`[45] Date of Patent:
`
`[54] ADAPTIVE ROUTING IN A PARALLEL
`COMPUTING SYSTEM
`[75] Inventors: Alexander H. Frey, Jr., Pasadena,
`Calif.; Joel M. Gould, Norwood,
`Mass; Charles M. Higgins, Jr., Baton
`Rouge, La.
`[73] Assignee: IBM Corporation, Armonk, NY.
`[21] Appl. No.: 386,521
`[22] Filed:
`Jul. 27, 1989
`
`[51] Int. Cl.5 .................... .. H04L 12/00; H04L 12/46
`[52] US. Cl.
`........... .. IMO/825.02; 395/200;
`340/826; 340/827
`364/200 MS File, 900 MS File;
`[58] Field of Search
`370/58; 379/826; 340/825.02, 827; 395/200
`References Cited
`U.S. PATENT DOCUMENTS
`
`[56]
`
`4,399,531 8/1983 Grande et a1. ...................... .. 370/60
`4,825,206 4/1989 Brice, Jr. et al.
`4,872,197 10/1989 Pemmaraju ......................... .. 379/93
`
`OTHER PUBLICATIONS
`“Hyperswitch Network for the Hypercube Computer”,
`
`E. Chow et al., 1988, pp. 90-99, California Institute of
`Technology, Pasadena, Calif. 91109.
`“The Torus Routing Chip", W. Dally et al., 1986, pp.
`187-196, Department of Computer Science, California
`Institute of Techn0l0gy, Pasadena, Calif., USA.
`
`Primary Examiner-Joseph L. Dixon
`Assistant Examiner-Gregory D. Leibold
`Attorney, Agent, or Firm-L. Keith Stephens; Marc
`Block; David Koffsky
`
`ABSTRACT
`[57]
`A multi-dimensional, multi-nodal routing mechanism is
`described for relaying information from node to node
`using a header consisting of route descriptor bits. Each
`node’s receiver/transmitter pair changes states as the
`information is guided to the destination node. The mes
`sage is propagated over several nodes simultaneously to
`traverse the nodes and reach the destination node
`quickly. When the ?nal node is reached, all alternate
`communication routes are freed.
`
`15 Claims, 8 Drawing Sheets
`
`:50
`
`—- XNIT FOR w+ "'---L 320
`301-; RC“! mm w+ -~
`__ OUTGOlNG
`mcoumc
`UNKS _.... Rm FROM w.___ CROSSBAR _.__ mnroa w- ’...22 LINKS
`
`FROM —-— RCVR FOR x+ --
`OTHER
`__.
`MODES 1%- RCVR FOR x- --
`
`-- xun FOR x+ 1212-3
`
`To
`omen
`—--— XMIT FOR x- 14-324mm
`
`311/ 'N‘ECTOR
`
`510
`
`CTOR )/331
`Elm“
`'
`33o
`
`NETWORK SEARCHED
`
`402
`
`3 s
`400 /
`
`HEADER
`0000 0101
`0000 0101
`0000 0001
`0000 0000
`
`/
`/ D (401
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 1 of 16
`
`

`
`US. Patent
`
`Jan. 19,1993
`
`Sheet 1 of 8
`
`5,181,017
`
`(-20
`10 F I
`
`l
`
`l
`
`I
`
`l I l I I I I I l I L_JI__IL__IL_I
`
`100
`
`[22
`
`120 '
`
`_
`
`1o \+uom— —— 11 -
`PROCSSR
`ROUTING /
`/MEMORY
`MECHNSM
`
`NODE — ——
`r 220
`PROCSSR
`ROUTING /
`MEMORY
`MECHNSM
`
`' ' —J24
`
`' ‘ —
`
`130
`(23
`110
`21/
`12 +NODE- -—— 13 —;£—NODE— —
`\
`,210 \
`, 230
`PROCSSR
`ROUTING /
`PROCSSR
`RouIINc /
`/MEMORY
`MECHNSM
`/MEMORY
`MECHNSM
`
`FIG. 2
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 2 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 2 of 8
`
`5,181,017
`
`f'350
`
`f. 321 320
`301’
`-- m FOR m I.»
`--— RCVR mm w+ --
`oumomc
`mcoumc
`300 LINKS 30-5- RCVR mom W-->- CRQSSBAR _.._ xun FOR w- ‘"322 LINKS
`:1
`smcH
`rRouwL- RCVR FOR X+ ——-
`0mm __,
`NODES IL RCVR FOR X— ———
`
`32°
`
`—-— xun FOR x+ "-13 T0
`0mm
`—>— XMIT FOR x- /f>'3-24NooEs
`
`311-1 INJECTOR --
`
`310
`
`mam Iii‘ .
`330
`
`NETWORK SEARCHED
`
`402
`
`HEADER
`0000 0101
`0000 0101
`0000 0001
`0000 0000
`
`J s
`‘00
`
`401
`
`FIG. 4
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 3 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 3 of 8
`
`5,181,017
`
`5°‘ \ NETWORK SEARCHED
`
`S
`
`FIG. 5
`
`NETWORK SEARCHED
`
`FIG. 5
`
`500
`
`HEADER
`0000 0001
`0000 0001
`0000 0100
`0000 0010
`0000 0100
`0000 0000
`
`600
`
`HEADER
`0000 0101
`0000 0100
`0000 0001
`0000 0100
`0000 0001
`0000 0000
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 4 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 4 of 8
`
`5,181,017
`
`NETWORK SEARCHED
`
`HEADER
`0000 1101
`0000 0001
`0000 0000
`
`700
`
`FIG. 7
`
`NETWORK SEARCHED
`
`HEADER
`0000 1111
`800 0000 0001
`0000 0000
`
`FIG. 8
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 5 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 5 of 8
`
`5,181,017
`
`IDLE STATE
`
`900
`
`INCOMING .
`BYTE AVAILAB
`?
`
`YES ACTIVE STATE
`
`910
`usE BYTE
`AS A SELECTION /
`
`MASK
`
`.
`
`INCOMING
`BYTE AVAILABL
`"
`
`YES.
`
`50
`SEND BYTE / 9
`THROUGH
`
`FIG. 9
`
`1
`
`/ 960
`SEND our A
`LINK-CLOSE
`COMMAND
`
`IDLE STATE
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 6 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 6 of 8
`
`5,181,017
`
`IDLE STATE
`
`11111011 MODULE ’ 8°10
`ARE WE?
`
`I
`11+ /0020
`BmMsE
`AND BYTE
`WITH
`1110
`
`w
`w- [8030
`B|Tw1sE
`AND BYTE
`WITH
`1101
`
`10050
`I
`x-
`x+ [0040
`BITWISE
`BITWISE
`AND BYTE
`AND BYTE
`WITH
`WITH
`1011
`0111
`
`8055
`l
`EXTRACTOR/
`B1Tw1sE
`AND BYTE
`WITH
`0000
`
`I
`sToRE /8060
`RESULT IN
`WORK REG.
`
`DISCARD
`‘MASK BYTE’
`
`{.0090
`
`DISCARD
`'MASK BYTE’
`
`l AOT1vE sTATE
`
`l SEARCHING sTATE
`
`FIG. 10
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 7 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 7 of 8
`
`5,181,017
`
`SEARCHING STATE
`
`A LINK-CLOSE
`COMMAND‘?
`
`r9190
`CLOSE THE
`PATH THROUGH
`THE CROSSBAR
`
`A
`
`9110
`
`'
`IDLE
`STATE
`
`BITWISE OR THE BYTE RECEIVED FROM THE / 912°
`CROSSBAR AND THE WORK REGISTER
`
`H
`
`N0 / 9140
`SEND THE RESULT OUT THE UNK
`
`ammsE AND THE BYTE wTTH WORK REGISTER / -
`
`1
`STORE THE RESULT IN THE WORK REGISTER
`
`DELAYED STATE
`
`IS WORK
`0000?
`
`FIG. 11
`
`DISCARD THE BYTE ‘
`
`ACTIVE STATE
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 8 of 16
`
`

`
`US. Patent
`
`Jan. 19, 1993
`
`Sheet 8 of s
`
`v5,181,017
`
`f T270
`CLOSE THE
`PATH THROUGH
`SMTCH
`
`INCOMING BYTE
`VAILABLE?
`
`1220
`/.
`--- SEND THE BYTE OUT
`
`YES
`
`IDLE STATE
`
`
`
`THE LINK TO THE NEXT NODE DELAYED STATE
`
`II
`
`/-‘I28O
`' CLOSE THE
`PATH THROUGH
`SWITCH
`
`1240
`
`INCOMING BYTE
`AVAILABLE?
`
`'
`
`YES [1250 IDLE STATE
`SEND THE WORK REG. OUT
`THE LINK TO THE NEXT NODE
`I
`f- 1260
`STORE THE BYTE RECEIVED
`IN THE WORK REG.
`
`I
`
`DISCARD THE BYTE
`
`K- 1290
`
`FIG. I3
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 9 of 16
`
`

`
`1
`
`ADAPTIVE ROUTING IN A PARALLEL
`COMPUTING SYSTEM
`
`5
`
`30
`
`FIELD OF THE INVENTION
`This invention generally relates to improvements in
`data processing applications in a parallel computing
`system and, more particularly, an effective method for
`routing data between parallel computing elements
`through an interconnected network with multiple inter
`connecting paths (e.g. a multi-dimensional torus net
`work).
`DESCRIPTION 'OF THE RELATED ART
`This invention addresses the problem of low-latency
`message processing found in today’s parallel computers.
`Such a computer system consists of a large number of
`“nodes” interconnected via a high speed communica
`tion network. Each node generally consists of a proces
`sor and memory The nodes operate independently and
`interact with each other by sending messages and
`blocks of data via the communication network.
`The communication network interconnects the
`nodes, but because the number of nodes is potentially
`very large (e.g. thousands), it is impractical for each
`node to have a dedicated link to every other node in the
`system. Therefore, some regular topology of intercon
`necting links is usually employed, with each node hav
`ing direct links to only a few neighbors. In such a net
`work, in order to send information between nodes
`which are not directly connected a path must be found
`using intermediate nodes and the bridging links they
`provide.
`Given such an environment, when one node needs to
`send a message to a non-adjacent node, there must be a
`mechanism for determining the intermediate links and
`nodes to use and for forwarding the message along
`those intermediate links with minimum delay. In a regu
`lar network, there may be many possible routes between
`two given nodes. The message delivery mechanism is
`able to select one route from the many possible, avoid
`ing intermediate links and nodes which are busy or
`broken. Also, the message delivery mechanism is able to
`operate independently of the processor in each interme
`diate node.
`In general, this invention’s network topology is appli
`cable to networking schemes having multiple nodes,
`with each node sharing communication links with its
`neighbors on all sides. An example of this type of a
`topological scheme is the multi-dimensional torus net
`work.
`FIG. 1 illustrates the topology of a two-dimensional
`torus. Each box 10 represents a node and each line 20
`represents a communication link. In FIG. 1, twenty
`nodes are interconnected in a ?ve node by four node
`torus. A three-dimensional torus would have a plurality
`of two-dimensional networks logically stacked in the
`third dimension. Each node has two additional links,
`one to the counterpart in the two-dimensional torus
`above and one to the counterpart in the torus below.
`Larger dimensional torus networks are also possible.
`Descriptions of parallel computing systems are found
`I in US Pat. Nos. 4,636,948, assigned to IBM; 4,514,807
`to Tatsuo; 4,814,980 and 4,730,322 to California Insti
`tute of Technology; 4,811,214 to 4,543,630 to Teradata;
`4,748,660 to Jeumont-Schneider; and 4,598,400 to
`Thinking Machines Corp. These patents describe vari
`ous architectures for parallel processing that represent
`
`5,181,017
`2
`earlier development of routing systems similar to the
`subject invention.
`The subject invention is designed to address the fol
`lowing requirements, heretofore never possible in a
`parallel processing environment. A key requirement is
`the ability to dynamically find the shortest available
`path and send a message over that path from any node
`to any other node in a multi-dimensional network, even
`if they are not directly connected. This capability is
`combined with a total transmission time which is only a
`fraction slower than the raw communication link speed.
`The communication link also requires the ability to
`dynamically adapt to changing network conditions
`including congestion and inoperative links, using alter
`nate routes when required. Routing is accomplished
`without intermediate nodal buffering. This reduces
`costs and eliminates sequential searching when network
`resource blocking is encountered. Finally, any network
`resource must have the ability to be freed if the progress
`of the message is temporarily blocked.
`Examples of prior art systems that failed to meet the
`requirements described above are found in routing
`chip", Distributed Computing, Springer-Verlag, New
`York, 1986; and Chow et al., “Hyperswitch Network
`For the Hypercube Computer”; Computer Architecture
`News, Vol. 16, No. 2 May 1988.
`The Torus article describes a parallel computing
`network routing chip that is speci?cally designed to
`provide low-latency routing in a multi-dimensional
`torus network. The chip pre-establishes an order in
`which the messages are routed through intermediate
`nodes to reach their destination. A technique known as
`“cut through” routing is employed. This technique
`forwards each byte as soon as it is received at an inter
`mediate node. Thus, total transmission time approaches
`raw link speed and no buffering is required at the inter
`mediate nodes. A more detailed description of “cut
`through” routing is contained in “A Framework for
`Adaptive Routing in Multicomputer Networks", ACM
`Symposium on Parallel' Algorithms and Architecture,
`1989.
`The problem with the Torus chip and, more speci?
`cally, ucut through” routing, is that the pre-established
`routes are static, based only on the relative positions of
`the source and destination nodes. If any link in the route
`is broken, the message cannot be routed through the
`network, even if an alternate route could have been
`used. Also, if there is a contention for some of the links
`in the network, the forward progress of one or more
`messages is temporarily blocked. This could, in turn,
`block the forward progress of one or more messages.
`The blockage of these messages in turn impacts other
`messages since blocked messages do not free the paths
`they are using. Thus, there is no ability to free network
`resources if the progress of a message is temporarily
`blocked.
`The Hyperswitch reference is used to route messages
`in a hypercube computer. The hypercube is a special
`case of the multi-dimensional torus wherein the number
`of nodes in each dimension always equals two. The
`hyperswitch network performs adaptive routing. Thus,
`before sending a message, a search of all possible paths
`is performed to identify routes which avoid congestion
`and broken links. This gives the hyperswitch routing
`the ability to dynamically adapt to changing network
`conditions and inoperative links. The routing also re
`quires no buffering and has the added capability of
`
`45
`
`60
`
`65
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 10 of 16
`
`

`
`SUMMARY OF THE INVENTION
`According to the invention, these objects are accom
`plished by employing identical routing mechanisms
`located in every node of the system to efficiently route
`information from node to node. Each routing mecha
`nism contains a transmitter/receiver pair coupled via a
`conventional crossbar (space) switch. Incorporated
`within each transmitter/receiver pair are bi-directional
`communication links with other adjacent nodes. Each
`transmitter/receiver pair contains dedicated links to the
`resident node’s processor and memory.
`Information is relayed from node to node using a
`header consisting of route descriptor bits. Each node’s
`receiver/transmitter pair changes states as the informa
`tion is guided to the destination node. The message is
`propagated over several nodes simultaneously to tra
`verse the nodes and reach the destination node quickly.
`When the ?nal nodal connection is accomplished, all
`subsequent communication links are freed via a com
`mand passed back over the network.
`-
`The invention has the capability of sending messages
`from any one node to any other node in a multi-dimen
`sional network, even if they are not directly connected,
`The routing occurs at a total transmission time which
`approaches the point-to-point link speed.
`The routing is architected to dynamically adapt to
`changing network conditions including congestion and
`inoperative links using an alternative route when re
`quired and no buffering of messages is employed. The
`architecture is ?exible enough to detect blocked mes
`sages and dynamically release network resources to
`alleviate constraints in the network.
`
`35
`
`5,181,017
`4
`FIG. 8 is an illustration of another sample network
`search in accordance with the present invention;
`FIG. 9 is a flow chart illustrating the state changes
`for the receiver and injector modules in accordance
`with the present invention;
`FIG. 10 is a ?ow chart illustrating the idle state for
`the transmitter and extractor modules in accordance
`with the present invention;
`FIG. 11 is a ?ow chart illustrating the searching state
`for the transmitter and extractor modules in accordance
`with the present invention;
`FIG. 12 is a flow chart illustrating the ‘active state
`processing for the transmitter and extractor modules in
`accordance with the present invention; and
`FIG. 13 is a ?owchart illustrating the delayed state
`for the transmitter and extractor modules in accordance
`with the present invention.
`DETAILED DESCRIPTION OF THE
`INVENTION
`This invention utilizes multiple, identical routing
`mechanisms which are associated, one for one, with
`every node in the system. Referring to FIG. 2, the com
`munication links between the nodes 10, 11, 12 and 13
`connect directly with the routing mechanisms 200, 210,
`220 and 230.
`The communication links could be local area net
`works or any of a variety of other standard mediums of
`communication commonly employed today for commu
`nicating between nodes. The routing mechanism, pro
`cessor and memory can be selected from any of a vari
`ety of commonly used processors and memory, such as
`the 80386 processor and compatible memory.
`Each routing mechanism provides, in turn, a link to
`the corresponding node’s processor or memory 100,
`110, 120 and 130. Node 10 has each of its communica
`tion links 21, 22, 23 and 24 separately labeled to corre
`late with the detailed description of FIG. 3.
`The number of links supported by the routing mecha
`nism is variable and depends on the dimensionality of
`the network. To simplify the explanation of the inven
`tion, assume a two-dimensional network similar to the
`one shown in FIG. 1. In FIG. 1, each node 10 is con
`nected to its four adjoining nodes via a communication
`link 20. A later discussion explains the additions neces
`sary to support additional dimensions.
`FIG. 3 shows the internal architecture of the routing
`mechanism for a two-dimensional torus. For a two-di
`mensional torus, each routing mechanism supports four
`bi-directional links incoming links 300 and outgoing
`links 320 to other routing mechanisms (in other nodes)
`and one special incoming link 310 and outgoing link 330
`to the processor or memory of its'own node. Since the
`links are bi-directional, ?ve receivers 301, 302, 303, 304,
`310 and ?ve transmitters 321, 322, 323, 324, 330 are
`required. A crossbar switch 350 is shown as an example
`of the hardware used to switch the information between
`the various links. Other embodiments of the invention
`could substitute a space switch for the crossbar switch.
`Each link is appropriately labeled according to the
`direction the link sends data. Thus, the receiver for W+
`301 and the transmitter for W+ 321 correspond to
`communication link 21 in FIG. 2, the receiver for W
`302 and the transmitter for W- 322 correspond to
`communication link 22, the receiver for X+ 303 and the
`transmitter for X+ 323 correspond to communication
`link 23, the receiver for X- 304 and the transmitter for
`X- 324 correspond to communication link 24. The
`
`65
`
`3
`freeing up network resources if blockages are detected
`in the initial investigation of the network.
`As mentioned above, the capability described in the
`hyperswitch article is of use only with a hypercube
`computer. This is extremely limiting given today’s mul
`ti-dimensional network implementations. Further, the
`hyperswitch’s sequential preliminary search is undesir
`able overhead.
`The subject invention has none of the aforementioned
`problems or limitations.
`
`10
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The foregoing and other objects, aspects and advan
`tages of the invention will be better understood from
`the following detailed description of the preferred em
`bodiment of the invention with reference to the accom
`panying drawings, in which:
`FIG. 1 shows the network topology of a conven
`tional two-dimensional torus network in accordance
`with the present invention;
`FIG. 2 is an illustration of the relationship between
`routing mechanisms and nodes in accordance with the
`present invention;
`FIG. 3 is an illustration of the internal structure of the
`routing mechanism in accordance with the present in
`vcntion;
`FIG. 4 is an illustration of a sample network in accor
`dance with the present invention;
`FIG. 5 is an illustration of a sample network search in
`with the present invention;
`FIG. 6 is an illustration of another sample network
`search in accordance with the present invention;
`FIG. 7 is an illustration of another sample network
`search in accordance with the present invention;
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 11 of 16
`
`

`
`5
`“injector" 310 is a special receiver which receives data
`from the node’s processor or memory rather than from
`another node. The “extractor" 330 is a special transmit
`ter which sends data to the node's processor or memory
`rather than to another node.
`The crossbar switch 350 provides one-to-many
`switching from the link receivers 301-310 the link trans
`mitters 321-330. To make connections, each receiver
`301-310 presents a selection mask to the crossbar switch
`350 indicative of the transmitter 321-330 it wants to
`transmit through. Connections are made by the crossbar
`switch 350 only if the particular transmitter is available.
`After a path is opened, a transmitter requests the cross
`bar switch to free the communication link that was
`previously connected.
`
`20
`
`30
`
`5,181,017
`6
`through the crossbar switch 350. The possible values
`and their associated function blocks are shown below.
`1110 for the W+ transmitter (8020)
`1101 for the W— transmitter (8030)
`1011 for the X+ transmitter (8040)
`0111 for the X- transmitter (8050)
`0000 for the extractor (8055)
`Then, in function block 8060, the result is stored in a
`register called WORK. Once stored in the WORK
`register, decision block 8070 determines if the value is
`non-zero. If the value is non-zero, processing continues
`with function block 8090 where the “mask byte” is
`discarded. After discarding the “mask byte”, the trans
`mitter enters the SEARCHING state. If the value is
`zero, the process continues by discarding the “mask
`byte" and entering the ACTIVE state as the extractor.
`In the SEARCHING state, the transmitter modi?es
`each subsequent byte it receives and sends the result out
`its link. A ?ow diagram is shown in FIG. 11 which
`outlines the SEARCHING state logic used by the trans
`mitter and extractor.
`In decision block 9100, a test is made to determine
`whether the received byte is a LINK-CLOSE com
`mand.
`If the received byte is a LINK-CLOSE command the
`processing continues in function block 9190 where the
`path through the crossbar switch is closed and the state
`becomes IDLE.
`If the received byte is not the LINK-CLOSE com
`mand, decision block_9110 determines if an additional
`byte is available from the crossbar switch. If not, the
`processing reverts back to function block 9100, else, a
`bitwise-OR is performed on the WORK register and the
`received byte. This takes place within function block
`9120.
`Then, in decision block 9130, the operation’s results
`are compared to 0000, 0011, 1100, and 1111. If decision
`block 9130’s test fail (i.e. no matches), the process con
`tinues in function block 9140 where the operation’s
`result is sent to the next node. If a match is detected,
`function block 9150 performs a bitwise-AND on the
`received byte and the WORK register. The result be
`comes the WORK register’s new value as shown in
`function block 9160.
`In decision block 9170, the received byte is compared
`to 0000. If the received byte equals 0000, the transmitter
`enters the DELAYED state. If not, the WORK regis
`ter’s new contents are compared with 0000 in decision
`block 9180. If the contents equal 0000 the transmitter
`discards the received byte in function block 9200 and
`enters the ACTIVE state. If not, the process repeats by
`continuing in block 9100.
`In the ACTIVE and DELAYED states, every byte
`received is sent out the transmitter’s link without modi
`?cation. If the information is destined for the extractor,
`this means that the byte is made directly available to the
`node’s processor or memory. The difference between
`these two states is that in the DELAYED state, an extra
`byte needs to be sent out so incoming bytes are delayed
`one cycle in the WORK register.
`The ?owchart in FIG. 12 outlines the ACTIVE state
`for the transmitter and extractor modules. Within the
`ACTIVE state, function block 1200 determines if the
`received byte is a LINK-CLOSE command. If the re
`ceived byte is a LINK-CLOSE command, the process '
`continues in function block 1270 by closing the crossbar
`switch’s path to this module. If the received byte is not
`a LINK CLOSE command, decision block 1210 deter
`
`40
`
`Selection Masks
`The selection mask comprises a four bit command
`word that is presented to the crossbar switch by each
`receiver. If the selection mask is all zeros, the crossbar
`switch initiates a path from that receiver to the extrac
`tor. If the selection mask is non-zero, each bit is used to
`indicate whether a path should be opened to the corre
`sponding transmitter. For example, a selection mask of
`0001 tells the crossbar switch 350 to attempt to open a
`path from the receiver that presented the mask, say
`receiver 301, to the W+ transmitter 321. A selection
`mask of 1010 requests two paths, one from the receiver
`301 to the W- transmitter 322, and one from the re
`ceiver 301 to the X- 324 transmitter. When more than
`one path is opened through the crossbar switch 350,
`every byte generated by the receiver is sent to all con
`nected transmitters.
`Referring to FIG. 9, a flow chart is shown illustrating
`the state changes of the receiver and injector modules.
`Each receiver has two primary states—IDLE and AC
`TIVE. When IDLE, the ?rst byte received over a link
`marks the beginning of a message and causes that re
`ceiver to enter the ACTIVE state. Decision block 900
`tests for a byte from the link or memory. If a byte is
`detected, the receiver enters the ACTIVE state. If not,
`the receiver returns to the IDLE State. In function
`block 910, the receiver uses the least signi?cant nibble
`(four bits) of the “?rst received" byte as a selection
`mask (see above) for the crossbar switch. The selection
`mask, when presented to the crossbar switch, represents
`a set of desired paths to one or more transmitters.
`Decision block 920 tests for busy or inoperable trans
`mitters. If no transmitters are available, processing con
`tinues in function block 960 where a LINK-CLOSE
`50
`command is sent backwards over the link. If at least one
`path through the crossbar switch is available, decision
`block 940 tests for an additional byte of data. If data
`exists, it is sent through the crossbar switch as shown in
`function block 950. If an additional byte does not exist,
`control is transferred to function block 960.
`Referring to FIG. 10, each transmitter has four
`states-JDLE, SEARCHING, ACTIVE, and DE
`LAYED. A transmitter starts in the IDLE state and
`remains in that state as long as it is not connected to any
`receivers via the crossbar switch as depicted in decision
`block 8000. In this state, it neither receives or transmits
`data. When the crossbar switch 350 connects a transmit
`ter to a receiver, the ?rst byte received by the transitter
`is the “selection mask” byte.
`Function block 8010 performs a bitwise-AND with
`the “selection mask" as one operand and an identity
`based bit mask as the other. This operation selects a path
`
`45
`
`55
`
`60
`
`65
`
`IPR2016-00726
`ACTIVISION, EA, TAKE-TWO,
`2K, ROCKSTAR
`Ex. 1030, p. 12 of 16
`
`

`
`5,181,017
`8
`KNOWLEDGE command backwards to the source
`node without taking any action. At the source node, the
`ACKNOWLEDGE command is used to indicate that a
`message was received successfully.
`To transmit a message, the source node generates a
`data stream consisting of the following sections (listed
`in order of transmission). The data should be presented
`to the injector of the routing mechanism of the source
`node at the same speed as each link in the network.
`1. A routing header (zero or more bytes)
`2. A zero byte (to end the header)
`3. The message to be sent (zero or more bytes)
`4. The CRC of the message (not including the header)
`5. An END-OF-MESSAGE command
`If the message is received correctly, the source node
`should receive an ACKNOWLEDGE command from
`its injector followed by a LINK-CLOSE command. If
`the LINK-CLOSE command is seen without an AC
`KNOWLEDGE command, the source node knows
`that the message was not received and should be resent.
`When a message arrives at its destination node, the
`bytes sent appears, in the order sent, from the extractor
`of the destination node’s routing mechanism at the same
`speed as the links in the network. The header (including
`the zero byte which marks its end) does not appear at
`the destination, only the message, CRC and END-OF
`MESSAGE command exits the extractor.
`The checking of the CRC and generation of the
`END-OF-MESSAGE, ACKNOWLEDGE and
`LINK-CLOSE commands is handled by hardware be
`tween the routing mechanism and the node’s processor
`or memory. The delay between END-OF-MESSAGE
`and ACKNOWLEDGE or LINK-CLOSE should be
`as short as possible since the routing mechanism holds a
`path back to the source node open until the ?nal LINK
`CLOSE is seen.
`
`20
`
`25
`
`7
`mines if an additional byte exists. If not, the process
`continues in decision block 1200, else, function block
`1220 sends the latest byte to the next node.
`The ?owchart in FIG. 13 illustrates the DELAYED
`state processing. Processing commences with a test in
`decision block 1230 to determine if the received byte is
`a LINK-CLOSE command. If the received byte is a
`LINK-CLOSE command, the process continues in
`function block 1280 by closing the crossbar switch’s
`path to this module. If the received byte is not a LINK
`CLOSE command, decision block 1240 determines if an
`additional byte exists. If not, the process returns to
`function block 1230, else, function block 1250 sends the
`contents of the WORK register to the next node. Func
`tion block 1260 then stores the received byte in the
`WORK register. Finally, as shown in function block
`1290, the received byte is discarded.
`If, while in either the SEARCHING, ACTIVE or
`DELAYED states, the receiver to whom the transmit
`ter is sending data (ie. the one on the other side of the
`link) sends back a LINK-CLOSE command, the trans
`mitter ends its participation in the transfer of that mes
`sage, tells the crossbar switch to disconnect it from the
`receiver currently sending it data, and returns to the
`IDLE state. When all transmitters connected to a re
`ceiver return to the IDLE state, that receiver is in
`formed that it is no longer connected to any transmitters
`and returns to the IDLE state. If a link is inoperative,
`the transmitter driving that link never leaves the IDLE
`state. If a byte is received through the crossbar switch
`for an inoperative link, the transmitter immediately
`instructs the crossbar switch to drop the connection as
`if it had received a LINK-CLOSE command. Finally, if
`a link becomes inoperative in the middle of a transmis
`sion, the transmitter immediately breaks the connection
`in the same manner.
`In addition to data, a few commands can be sent
`backward and forward over each link and through the
`crossbar switch. These commands are implemented as
`separate control wires or as special inband escape char
`acters in the data. The implementation varies with the
`link design.
`The LINK-CLOSE command is sent backwards
`over a link (in the direction opposite data flow) from a
`receiver in one node to a transmitter in another node.
`As described earlier, LINK-CLOSE causes the trans
`mitter to return to the IDLE state and close its connec
`tion through the crossbar switch. If there is only one
`open path through the crossbar switch, it also causes
`another LINK-CLOSE command to be sent, this time
`over a link one hop closer to the source node.
`The END-OF-MESSAGE command is sent forward
`over links and through the crossbar switches from the
`source node to the destination node. The intermediate
`receivers and transmitters send the END-OF-MES
`SAGE command through the system as if it was a data
`byte. When the destination node receives the END-OF
`MESSAGE command, it checks the message’s cyclic
`redundancy check (CRC). If the CRC is correct, it
`sends back an ACKNOWLEDGE command followed
`by a LINK-CLOSE command. If the CRC is wrong,
`only a LINK-CLOSE command is sent.
`The ACKNOWLEDGE command is sent back
`wards over each link from receiver to transmitter and
`backwards through each crossbar switch from transmit
`ter to receiver. It is generated by the destination node
`only after successful reception of the message. Each
`intermediate routing mechanism sends the AC
`
`BASIC HEADER
`The header, which is generated by the source node
`and sent at the beginning of the message, speci?es what
`path or paths the message should take. In a two-dimen
`sional torus, only the least signi?cant nibble of each
`header byte is used. Each byte of the header has the
`following interpretation. (Bit 0 is the least signi?cant.)
`bit 0 Set to 1 to move one link in the W+ direction
`bit 1 Set to 1 to move one link in the W- direction
`bit 2 Set to 1 to move one link in the X+ direction
`bit 3 Set to 1 to move one link in the X- direction
`bits 4-7 Set 0 in a two-dimensional network
`To build the simplest type of header, the source node
`determines the relative distance between it and the des
`tination node in each direction. The length

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket