|
Coherence protocol and routing
- Have already discussed the necessity of at least two queues in each direction in NI; how do they talk to the router?
- Let’s call the queues as request and reply (in each direction): gets specified by the source coherence engine
- These queues form request and reply virtual networks in the system
- Each output queue of NI may map to several input virtual lanes in the router (at least one)
- Each port of the router has equal number of virtual lanes, e.g. the request virtual lanes form the request virtual network
- The coherence protocol normally does a static assignment of message types to virtual networks
- A message originating from request lane will be carried along the route in the request network and will arrive at the destination in the input request queue of NI
- Within each virtual network there may be several virtual channels per port of the router to avoid routing deadlock cycles, head-of-line blocking, and to aid adaptive routing
- Three-lane protocols normally have a third virtual network to carry requests generated by requests e.g., interventions and invalidations
- Stanford FLASH runs four-lane coherence protocols and uses all the four virtual lanes of SGI Spider router
|