Network-on-chips (NoCs) are currently a widely used approach for achieving scalability of multi-cores to many-cores, as well as for interconnecting other vital system-on-chip (SoC) components. Each entity in 2D mesh-based NoCs has a router responsible for forwarding packets between the dimensions as well as the entity itself, and it is essentially a 5-port switch. With respect to the routing algorithm, there are important trade-offs between routing performance and the efficiency of overcoming potential deadlocks. Common deadlock avoidance techniques including the turn model usually involve restrictions of certain paths a packet can take at the cost of a higher probability for network congestion. In contrast, deadlock resolution techniques, as well as some avoidance schemes, provide more path flexibility at the expense of hardware complexity, such as by incorporating (or assuming) dedicated buffers. This paper provides a deadlock avoidance algorithm for NoC routers based on output-queues (OQs) or virtual-output queues (VOQs). The proposed approach features fewer path restrictions than common techniques, and can be based on existing routing algorithms as a baseline, deadlock-free or not. This requires no modification to the queueing topology, and the required logic is minimal. Our algorithm approaches the performance of fully-adaptive algorithms, while maintaining deadlock freedom.
翻译:在使用OQ或VOQ路由器的2D网状NoC中实现高效的死锁避免
网络芯片(NoCs)目前是实现多核心到多核心扩展性以及连接其他关键SoC组件的广泛方法。2D网状NoC中的每个实体都有一个路由器,负责在维度之间以及实体本身之间转发数据包,实际上是一个5端口开关。在路由算法方面,路由性能和克服潜在死锁的效率之间存在重要的权衡。常见的死锁避免技术,包括转向模型,通常涉及限制数据包可以走的某些路径,以换取更高的网络拥塞概率。相比之下,死锁解决技术以及某些避免方案提供了更多的路径灵活性,但以硬件复杂度为代价,例如通过包含(或假设)专用缓冲区来实现。本文提出了一种基于输出队列(OQ)或虚拟输出队列(VOQ)的NoC路由器死锁避免算法。所提出的方法比常用技术具有更少的路径限制,并且可以基于现有的路由算法作为基线,无论死锁与否都是无死锁的。这不需要对排队拓扑进行修改,所需的逻辑也很少。我们的算法接近于完全自适应算法的性能,同时保持无死锁。