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路由器死锁避免算法。该方案相较传统技术在路径限制方面更少,且可基于现有路由算法(无论是否无死锁)作为基线。该方法无需修改队列拓扑结构,所需逻辑极少。我们的算法在维持无死锁特性的前提下,性能接近完全自适应路由算法。