paper:Exploiting Packet Latency Slack in On-Chip Networks
overview
论文讨论了片上网络(NoC)中的数据包延迟问题,并提出了一种路由优先级机制,称为Aérgia,以利用数据包的“松弛时间”(Slack)。松弛时间表示数据包可以被延迟的周期数(传输耗时快和慢包之间的时间差),而不影响整体程序执行时间。通过动态估算数据包的松弛时间,Aérgia优先处理延迟对性能更为重要的“关键”数据包。
在图d中优先考虑A0而不是B1来减少内核 A 的停顿时间,而不会显着增加内核 B 的停顿时间,从而提高整体系统吞吐量。
优先级的调度设计
- 三层优先级策略
- 第一层:前驱数据包的数量(miss-predecessors),即未完成的L1缓存未命中请求。越多的未命中请求,松弛时间越短。
- 第二层:L2缓存命中/未命中预测。L2未命中的数据包通常延迟较长,因此松弛时间较短。
- 第三层:数据包在网络中的跳数,表示数据包传输到目的地所需的路由节点数。跳数较少的数据包通常具有更多松弛时间。
(1)每个请求可能依赖于其他前驱请求的完成,尤其是在多层缓存结构中。前驱数据包是指在L1缓存中发生未命中的数据包,它们需要被处理完后,后续的数据包才能被有效处理。前驱数据包越多,当前数据包的“松弛时间”就越短。
(2)L2未命中的数据包通常要访问很长延迟的DRAM,该数据包可能具有较小的裕度,因为其长延迟不太可能与其他数据包重叠。
松弛优先级:在 Aérgia 中,虚拟通道仲裁 (VA) 和交换机仲裁 (SA) 单元优先考虑具有较低松弛优先级的数据包。除了baseline架构维护的状态之外,每个虚拟通道还有一个额外的优先级字段,当头片保留虚拟通道时,该优先级字段会用头片的松弛优先级级别进行更新。该字段由主体片在 SA 期间用于优先级仲裁。
批处理Batching:如果没有足够的对策,优先级机制很容易导致网络饥饿。为了防止饥饿,我们将基于松弛的优先级与类似于“批处理”机制结合起来。时间被划分为T个周期的间隔,称为批处理间隔。在同一时间间隔内插入网络的数据包属于同一批次,即具有相同的批次优先级值。属于较旧批次的数据包优先于较新批次的数据包。仅当两个数据包属于同一批次时,才会根据其可用的松弛(即松弛优先级)对它们进行优先级排序。每个头flit携带一个5位松弛优先级值和一个3位批次号/优先级
Aérgia与传统的调度机制(如轮询调度)相比,提高了系统吞吐量和网络公平性。与基于应用程序优先的STC调度机制相比,Aérgia能够在更细粒度的层面上优化数据包优先级,从而实现更好的整体性能。