Knowledge (XXG)

Wormhole switching

Source 📝

261:, where several virtual channels may be multiplexed across one physical channel. Each unidirectional virtual channel is realized by an independently managed pair of (flit) buffers. Different packets can then share the physical channel on a flit-by-flit basis. Virtual channels were originally introduced to avoid the deadlock problem, but they can be also used to reduce wormhole blocking, improving network latency and throughput. Wormhole blocking occurs when a packet acquires a channel, thus preventing other packets from using the channel and forcing them to stall. Suppose a packet P0 has acquired the channel between two routers. In absence of virtual channels, a packet P1 arriving later would be blocked until the transmission of P0 has been completed. If virtual channels are implemented, the following improvements are possible: 131: 222:), which is its network address, and packets to CPUs are sent with this number in the header. When the packet arrives at an intermediate router for forwarding, the router examines the header (very quickly), sets up a circuit to the next router, and then bows out of the conversation. This reduces latency (delay) noticeably compared to 79:
In wormhole switching, each buffer is either idle, or allocated to one packet. A header flit can be forwarded to a buffer if this buffer is idle. This allocates the buffer to the packet. A body or trailer flit can be forwarded to a buffer if this buffer is allocated to its packet and is not full. The
138:
Consider the 2x2 network of the figure on the right, with 3 packets to be sent: a pink one, made of 4 flits, 'UVWX', from C to D; a blue one, made of 4 flits 'abcd', from A to F; and a green one, made of 4 flits 'ijkl', from E to H. We assume that the routing has been computed, as drawn, and implies
318:
If the first byte of an incoming SpaceWire packet is in the range 1 to 31, it indicates the corresponding port 1 to 31 of the Spacewire switch. The SpaceWire switch then discards that routing character and sends the rest of the packet out that port. This exposes the next byte of the original packet
83:
The name "wormhole" plays on the way packets are sent over the links: the address is so short that it can be translated before the message itself arrives. This allows the router to quickly set up the routing of the actual message and then "bow out" of the rest of the conversation. Since a packet is
120:
A virtual channel holds the state needed to coordinate the handling of the flits of a packet over a channel. At a minimum, this state identifies the output channel of the current node for the next hop of the route and the state of the virtual channel (idle, waiting for resources, or active). The
75:
Commonly, the first flits, called the header flits, holds information about this packet's route (for example, the destination address) and sets up the routing behavior for all subsequent flits associated with the packet. The header flits are followed by zero or more body flits which contain the
272:
Assume that P0 is temporarily blocked downstream from the current router. Throughput is increased by allowing P1 to proceed at the full speed of the physical channel. Without virtual channels, P0 would be occupying the channel, without actually using the available bandwidth (since it is being
334:
If the address (the first byte) of an incoming SpaceWire packet is in the range 32 to 255, the SpaceWire switch uses that value as an index into an internal routing table that indicates which port(s) to send the packet and whether to delete or retain that first byte.
268:
If P0 is a full-length packet whereas P1 is only a small control packet of size of few flits, then this scheme allows P1 pass through both routers while P0 is slowed down for a short time corresponding to the transmission of few packets. This reduces latency for
234:
package. As wire delays and many other non-scalable constraints on linked processing elements become the dominating factor for design, engineers are looking to simplify organized interconnection networks, in which flow control methods play an important role.
142:
First, consider the pink flow: at time 1, the flit 'U' is sent to the first buffer; at time 2, the flit 'U' goes through the next buffer (assuming the computation of the route takes no time), and the flit 'V' is sent to the first buffer, and so on.
45:
Switching is a more appropriate term than routing, as "routing" defines the route or path taken to reach the destination. The wormhole technique does not dictate the route to the destination but decides when the packet moves forward from a router.
80:
last flit frees the buffer. If the header flit is blocked in the network, the buffer fills up, and once full, no more flits can be sent: this effect is called "back-pressure" and can be propagated back to the source.
91:, commonly called "virtual cut-through," the major difference being that cut-through flow control allocates buffers and channel bandwidth on a packet level, while wormhole flow control does this on the flit level. 179:
Wormhole flow control makes more efficient use of buffers than cut-through. Where cut-through requires many packets worth of buffer space, the wormhole method needs very few flit buffers (comparatively).
153:
Time 2: The flit 'i' can go on into the next buffer. But a buffer is dedicated to a packet from its first to its last flit, and so, the 'a' flit can not be forwarded. This is the start of a
166:
Time 5: The green packet no longer uses the left-down buffer. The blue packet is unblocked and can be forwarded (assuming that the 'unblocked' information can be forwarded in null time)
265:
Upon arrival of P1, the physical channel can be multiplexed between them on a flit-by-flit basis, so that both packets proceed with half speed (depending on the arbitration scheme).
160:
Time 3: The green packet goes on. The blue 'c' flit can not be forwarded (the buffer is occupied with the 'b' and 'a' flits): this back-pressure effect reaches the packet source.
230:
systems (NOCs), of which multi-core processors are one flavor. Here, many processor cores, or on a lower level, even functional units can be connected in a network on a single
121:
virtual channel may also include pointers to the flits of the packet that are buffered on the current node and the number of flit buffers available on the next node.
214:
is attached to several neighbours in a fixed pattern, which reduces the number of hops from one CPU to another. Each CPU is given a number (typically only
524: 409: 384: 76:
actual payload of data. Some final flits, called the tail flits, perform some bookkeeping to close the connection between the two nodes.
226:
switching that waits for the whole packet before forwarding. More recently, wormhole flow control has found its way to applications in
293:
A mix of source routing and logical routing may be used in the same wormhole-switched packet. The value of the first byte of a
338:
Address 0 is used to communicate directly with the switch, and may be used to set the routing table entries for that switch.
102: 543: 69: 49:
Wormhole switching is widely used in multicomputers because of its low latency and small requirements at the nodes.
553: 98: 479: 278: 211: 57: 444: 110: 84:
transmitted flit by flit, it may occupy several flit buffers along its path, creating a worm-like image.
282: 88: 429: 323:
to explicitly specify the complete path through the network to the final destination in this fashion.
255: 130: 449: 258: 31: 462: 231: 207: 139:
a conflict of a buffer, in the bottom-left router. The throughput is of one flit per time unit.
492: 405: 380: 227: 223: 187: 480:"Distributed Connection Management for Real-Time Communication over Wormhole-Routed Networks" 548: 454: 315:
With source routing, the packet sender chooses how the packet is routed through the switch.
35: 493:"The IEEE 1355 Standard: Developments, Performance and Application in High Energy Physics" 183: 116:
One thing special about wormhole flow control is the implementation of virtual channels:
505: 320: 310: 203: 537: 53: 466: 331:
With logical routing, the Spacewire switch itself decides how to route the packet.
277:
Using virtual channels to reduce wormhole blocking has many similarities to using
182:
An entire packet need not be buffered to move on to the next node, decreasing
68:
In the wormhole flow control, each packet is broken into small pieces called
352: 347: 298: 243: 239: 150:
Time 1: Both the blue and green flows send theirs first flits, 'i' and 'a'.
458: 430:"Wormhole Routing Techniques for Directly Connected Multicomputer Systems" 38:
based on known fixed links. It is a subset of flow control methods called
94:
In case of circular dependency, this back-pressure can lead to deadlock.
157:
effect. The 'j' flit can replace the 'i' flit. The 'b' flit can be sent.
294: 219: 319:
to the next SpaceWire switch. The packet sender may choose to use
215: 129: 400:
John L. Hennessy and David A. Patterson (2006). "Appendix E.5".
146:
The blue and green flows requires a step by step presentation:
301:
switch uses the address to decide how to route the packet.
506:"Why wormhole routing is an important switching technique" 56:, high-speed, guaranteed delivery of packets suitable for 297:
or SpaceWire packet is the address of the packet. Each
404:(Fourth ed.). Morgan Kaufmann Publishers, Inc. 377:
Principles and Practices of Interconnection Networks
375:
William James Dally; Brian Towles (2004). "13.2.1".
169:
Time 6-10: The blue packet goes through the network.
134:
Three flows on 2x2 network using wormhole switching
370: 368: 402:Computer Architecture: A Quantitative Approach 193:Bandwidth and channel allocation are decoupled 97:In most respects, wormhole is very similar to 519: 517: 515: 513: 72:(flow control units or flow control digits). 8: 525:"Ethernet over SpaceWire - software issues" 423: 421: 254:An extension of worm-hole flow control is 202:Wormhole techniques are primarily used in 448: 105:forwarding, with the exception that the 364: 478:Sharad Sundaresan; Riccardo Bettati. 7: 379:. Morgan Kaufmann Publishers, Inc. 87:This behaviour is quite similar to 16:Data flow control switching method 14: 210:. In a hypercube computer each 52:Wormhole routing supports very 523:Dr Barry M Cook; Paul Walker. 1: 428:Mohapatra, Prasant (1998), 246:technologies use wormhole. 570: 308: 40:flit-buffer flow control 30:, is a system of simple 279:virtual output queueing 58:real-time communication 135: 123: 459:10.1145/292469.292472 437:ACM Computing Surveys 283:head-of-line blocking 133: 118: 89:cut-through switching 20:Wormhole flow control 163:Time 4: As in time 3 109:does not have to be 544:Flow control (data) 64:Mechanism principle 36:computer networking 136: 24:wormhole switching 554:Network on a chip 411:978-0-12-370490-0 386:978-0-12-200751-4 224:store-and-forward 206:systems, notably 188:store-and-forward 561: 528: 521: 508: 502: 496: 489: 483: 476: 470: 469: 452: 434: 425: 416: 415: 397: 391: 390: 372: 250:Virtual channels 28:wormhole routing 569: 568: 564: 563: 562: 560: 559: 558: 534: 533: 532: 531: 522: 511: 503: 499: 490: 486: 477: 473: 432: 427: 426: 419: 412: 399: 398: 394: 387: 374: 373: 366: 361: 344: 329: 327:Logical routing 313: 307: 291: 256:Virtual-Channel 252: 228:network-on-chip 200: 184:network latency 176: 128: 66: 17: 12: 11: 5: 567: 565: 557: 556: 551: 546: 536: 535: 530: 529: 509: 504:Pavel Tvrdik. 497: 495:. 1998. p. 59. 484: 471: 450:10.1.1.11.9098 443:(3): 374–410, 417: 410: 392: 385: 363: 362: 360: 357: 356: 355: 350: 343: 340: 328: 325: 321:source routing 311:source routing 309:Main article: 306: 305:Source routing 303: 290: 287: 275: 274: 270: 266: 251: 248: 204:multiprocessor 199: 196: 195: 194: 191: 180: 175: 172: 171: 170: 167: 164: 161: 158: 151: 127: 124: 65: 62: 22:, also called 15: 13: 10: 9: 6: 4: 3: 2: 566: 555: 552: 550: 547: 545: 542: 541: 539: 527:. 2007. p. 2. 526: 520: 518: 516: 514: 510: 507: 501: 498: 494: 491:Stefan Haas. 488: 485: 481: 475: 472: 468: 464: 460: 456: 451: 446: 442: 438: 431: 424: 422: 418: 413: 407: 403: 396: 393: 388: 382: 378: 371: 369: 365: 358: 354: 351: 349: 346: 345: 341: 339: 336: 332: 326: 324: 322: 316: 312: 304: 302: 300: 296: 288: 286: 284: 280: 271: 267: 264: 263: 262: 260: 257: 249: 247: 245: 241: 236: 233: 229: 225: 221: 217: 213: 209: 205: 197: 192: 189: 185: 181: 178: 177: 173: 168: 165: 162: 159: 156: 155:back-pressure 152: 149: 148: 147: 144: 140: 132: 125: 122: 117: 114: 112: 108: 104: 100: 95: 92: 90: 85: 81: 77: 73: 71: 63: 61: 59: 55: 50: 47: 43: 41: 37: 33: 29: 25: 21: 500: 487: 474: 440: 436: 401: 395: 376: 337: 333: 330: 317: 314: 292: 276: 259:flow control 253: 237: 201: 186:compared to 154: 145: 141: 137: 119: 115: 106: 96: 93: 86: 82: 78: 74: 67: 51: 48: 44: 39: 32:flow control 27: 23: 19: 18: 54:low-latency 538:Categories 359:References 281:to reduce 208:hypercubes 190:switching. 174:Advantages 445:CiteSeerX 353:SpaceWire 348:IEEE 1355 299:SpaceWire 273:blocked). 244:SpaceWire 240:IEEE 1355 342:See also 549:Routing 482:. 1997. 467:7850481 295:Myrinet 289:Routing 126:Example 465:  447:  408:  383:  220:16-bit 111:queued 463:S2CID 433:(PDF) 216:8-bit 198:Usage 70:flits 406:ISBN 381:ISBN 242:and 238:The 107:cell 103:MPLS 455:doi 269:P1. 218:to 212:CPU 101:or 99:ATM 34:in 26:or 540:: 512:^ 461:, 453:, 441:30 439:, 435:, 420:^ 367:^ 285:. 232:IC 113:. 60:. 42:. 457:: 414:. 389:.

Index

flow control
computer networking
low-latency
real-time communication
flits
cut-through switching
ATM
MPLS
queued
An animation of the wormhole switching with three flows.
network latency
store-and-forward
multiprocessor
hypercubes
CPU
8-bit
16-bit
store-and-forward
network-on-chip
IC
IEEE 1355
SpaceWire
Virtual-Channel
flow control
virtual output queueing
head-of-line blocking
Myrinet
SpaceWire
source routing
source routing

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.