本篇论文的主要贡献:
类比: 就像迪斯尼乐园的快速通行证服务,在某些固定的时间段中跳过长队快速通过
协议级死锁: 数据包共享相同的缓冲区,且彼此交错(因为NoC实现缓存一致性会将atomic coherence transactions拆成几个non-atomic packets),如两个cache controller的 coherence requests用光了所有的buffer,就都会停止响应,这就发生了协议级死锁
网络级死锁: 循环依赖链中,多个数据包占用缓冲区,同时等待其他被占用的缓冲区空闲,在自适应路由中,可能会出现这种情况,因为数据包可以向任何方向路由。
名词定义:
由上图可见,为了确保数据包之间没有冲突,FastPass将拓扑结构分成P个独立的分区(即P0、P1和P2),每个分区有一个主路由器(即绿色、橙色和蓝色)
(a) 在前K个周期中,绿色主路由器可以覆盖位于P0的路由器:R0、R3和R6;橙色部分可以访问P1路由器:R1、R4和R7;蓝色主路由器有到P2路由器的隔离路径:R2、R5和R8。当time slot过去时,每个分区的链路切换到handle the packets of other prime;
(b) P0、P1和P2的链路分别传播来自蓝色、绿色和橙色的packet。
© P0、P1和P2的链路分别处理来自橙色、蓝色和绿色的packet。这种交换一直持续到每个prime覆盖了网络中的所有路由器,表示该阶段完成。
第二阶段(d,e,f)和第三阶段(g,h,I)遵循相同的方法。