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.
翻译:片上网络(NoC)目前是实现多核到众核可扩展性以及连接片上系统(SoC)其他关键组件的广泛采用方法。在基于2D网格的NoC中,每个实体都配备一个负责在维度间及实体本身转发数据包的路由器,本质上是一个5端口交换机。对于路由算法而言,路由性能与克服潜在死锁的效率之间存在重要权衡。常见的死锁避免技术(如转弯模型)通常限制数据包可采用的某些路径,但代价是更高概率的网络拥塞。相比之下,死锁解决技术及其他一些避免方案通过引入(或假设)专用缓冲区等硬件复杂性手段,提供更大的路径灵活性。本文提出了一种基于输出队列(OQ)或虚拟输出队列(VOQ)的NoC路由器无死锁避免算法。所提方法相比常见技术具有更少的路径限制,且可基于现有路由算法(无论是否无死锁)作为基线。该方法无需修改队列拓扑结构,所需逻辑单元极少。我们的算法在保持无死锁特性的同时,性能接近全自适应路由算法。