Talk:Wormhole switching

Major re-write
I MarcBoyerONERA (talk) 20:18, 24 March 2016 (UTC) have done a major re-write and re-organisation of the article:

Introduction
The introduction was mixing problems of naming, related behaviours, (ATM, MLPS) but was not presenting the mechanism itself. So, I have kept a 4 lines short presentation, and introduced a "Mechanism principle" section, that re-organised all already existing sentences and add a presentation of the mechanism itself.

Moreover, change "the headed/trailer flit" into "the headed/trailer flits" since the header can be composed of several flits (cf. Kalray MPPA for example), and also the trailer.

Example
Changed the example intro a new one, with an animated Figure.

Deadlock
Added the fact that it can create deadlock (a major drawback). I will add an example if I find time.

throughput
Removed the sentence "An entire packet need not be buffered to move on to the next node, increasing throughput.". This reduces latency, not throughput.

Usage
Added a section "Usage" (was included into "Avantages"), and added references to spacewire and IEEE 1355?

MarcBoyerONERA (talk) 20:18, 24 March 2016 (UTC)

FLIT = digit or unit?
The FLIT page says the acronym stands for FLow control unITs, not digITs as written here.

I'm going to update this page since that sounds like it makes more sense, but I don't ACTUALLY know what I'm talking about. Feel free to revert if I'm wrong, but maybe fix the FLIT page as well? Crcarlin (talk) 18:21, 12 March 2017 (UTC)
 * I Well, the FLIT page use both "flow control digits" and "flow control units". Despite the fact that "flow control units" sounds better, a short search on google scholar shows that "flow control digits" is the term used in research papers. Since the mai of Wikipedia is to reflect use, not to correct it, I suggest to change it back to "flow control digits" MarcBoyerONERA (talk) 08:56, 13 March 2017 (UTC)

User:DavidCary update 21 August 2017‎
Dear David,

I (MarcBoyerONERA (talk) 15:55, 28 August 2017 (UTC)) slighlty disagree with your update in several points.


 * 1) Wormhole routing supports low-latency only when there is no activation of the back-pressure mechanism. And the  Sundaresan & Bettati reference is very hold. In fact, they build a real-time access mechanism on top of wormhole since wormhole itself has no real-time capacity. So I disagree with "Wormhole routing supports very low-latency, high-speed, guaranteed delivery of packets suitable for real-time communication." Moreover, "wormhole switching" is the correct word.
 * 2) The "routing" section only presents the SpaceWire routing. For example, in Network on chip, the XY routing is mainly used, like in Tilera solutions.

MarcBoyerONERA (talk) 15:55, 28 August 2017 (UTC)


 * Dear reader, has good points that raise more questions in my head that I hope that we all, working together, will clarify in future versions of this article.
 * 2. I agree that the "routing" section is currently too narrowly focused on SpaceWire routing. What other routing protocols are used in wormhole networks? Should these protocols be mentioned in the routing protocol article? Is the "chop the first byte off and use that byte to decide where to send the rest of the message" protocol used in Myrinet switches exactly the same as the corresponding SpaceWire protocol? If so, does that protocol have shorter name than "the source routing protocol used in Myrinet and Spacewire"? (Some Wikipedia articles mention "subtractive routing"; is that related or possibly even the same?)
 * In my area of expertise, this is called "Source routing", but in fact Source routing is more general. A quick look on Google Scholar shows a lot a patents with this name, some SCSI related technical paper, but it is not found in any research paper. MarcBoyerONERA (talk) 07:37, 31 August 2017 (UTC)
 * I hear that a different protocol is used for switching and routing in a grid or hypercube wormhole network -- what are good sources to back up a description of that protocol(s)?
 * Google Scholar suggests "Network on chip routing algorithms". What I know from existing NoC, only source routing and XY-routing are used. The Kalray MPPA uses source routing. I have no reference for XY routing in existing product.MarcBoyerONERA (talk) 07:37, 31 August 2017 (UTC)
 * 1. I agree that "wormhole switching" is the correct phrase to use to describe what the intermediate nodes do in a typical (source routed) wormhole network -- they are switches, not routers.
 * I've been using "wormhole routing" to describe the algorithm the transmitter uses to decide and choose what specific path data takes through a wormhole network. Most of the references in this article (at least 4 out of 7 -- Mohapatra, Cook, Haas, and Tvrdik) use the phrase "wormhole routing", so *especially* if I'm misunderstanding what that phrase means, this article needs to mention that phrase and explain what they mean by it. Is there a better phrase I should use to describe the algorithm(s) used to decide and choose what specific path data takes through the wormhole network?
 * I know that a lot of people and articles do the confusion, using "wormhole routing" instead of "wormhole switching". That's a pity. For example, the first sentence of Mohapatra reference is "Wormhole *routing* has emerged as the most widely used *switching* technique" :-( What is true is that the routing has an influence on the performances of a network with wormhole switching. MarcBoyerONERA (talk) 07:37, 31 August 2017 (UTC)
 * Should Wikipedia have a separate article to describe those (global) wormhole routing algorithms, leaving this article to focus on the (local) switching that occurs at each intermediate node? If so, what should that article be called?
 * I am not a Wikipedia expert. I would suggest to keep a "Routing" section on the Wormhole switching page. But details on SpaceWire routing may be put on the SpaceWire page.MarcBoyerONERA (talk) 07:37, 31 August 2017 (UTC)
 * It's impossible to build a low-latency system on top of high-latency hardware. So the fact that Sundaresan & Bettati built a low-latency system with wormhole switch hardware shows that it is possible to build a low-latency system with wormhole switch hardware.
 * There is a confusion between real-time and low-latency. Real-time means "respect timing constraint". And there is no definition of "high" and "low". For some applications, a 10ms latency is high, and for others, its low... By the way, the page  Real-time communication deserves a major rewrite, since no real-time network is presented (1553, AFDX, TTP, AVB...). I will add it on my TODO list.MarcBoyerONERA (talk) 07:37, 31 August 2017 (UTC)
 * --DavidCary (talk) 19:07, 30 August 2017 (UTC)