NoC设计中Router Table的作用

NoC设计中Router Table的作用

       摘要:在Network-on-Chip (NoC)设计中,router table(路由表)是路由器(router)组件的核心元素,用于指导数据包(packet)或flit(数据片段)在片上网络中的转发路径。NoC是一种片上互连架构,用于多核处理器、SoC(System-on-Chip)等系统,将多个IP核(处理器、内存、外围设备)通过路由器和链路连接起来,提供高效、低延迟的通信。

1. Router Table的主要用途

路径决策:路由器接收到数据包时,根据包头中的目的地址(destination ID)查询路由表,确定输出端口(output port)或下一跳(next hop)。这实现了从源核到目的核的端到端路由。
支持路由算法:路由表存储预计算或动态生成的路由信息,支持各种路由策略,如确定性路由(deterministic,如XY路由)、自适应路由(adaptive,根据拥塞调整路径)或源路由(source routing,整个路径在源端预定义)。
优化网络性能:通过负载均衡、避免热点(hotspots)和容错机制,提高吞吐量、降低延迟和功耗。
死锁和活锁避免:表设计可融入转弯限制(turn models)或虚拟通道(virtual channels),防止循环依赖导致的死锁。
适用场景:在表驱动路由(table-driven routing)中常见,尤其适用于不规则拓扑(如自定义NoC)或需要重配置的系统。相比纯逻辑路由(如XY算法的硬编码),路由表更灵活,但可能增加硬件开销。

简而言之,router table将路由决策从硬编码逻辑中解耦,使NoC更易扩展和优化。

2. Router Table的设计规则

       路由表的设计需要平衡硬件资源(面积、功耗)、性能(延迟、吞吐)和可靠性(死锁避免、容错)。以下是详细的设计规则,基于标准NoC框架(如2D网格、环形或Torus拓扑)和行业实践(参考Intel的Mesh NoC或学术工具如BookSim)。

2.1. 表结构和内容

基本格式:路由表通常是一个查找表(lookup table),以目的地址(destination ID)为键,输出端口或下一跳ID为值。

键(Key):目的核的ID(e.g., 在4×4网格中,ID为(x,y)坐标或扁平化编号0-15)。
值(Value):输出端口号(e.g., North=0, East=1, South=2, West=3, Local=4)或完整路径位掩码(在源路由中)。
扩展字段:可包括优先级、虚拟通道ID(VC ID,用于多路复用链路)、备用路径(for fault tolerance)。

存储方式:使用RAM、CAM(Content-Addressable Memory)或寄存器阵列。小表用LUT(Look-Up Table),大表用哈希或分层结构以减少面积。
大小规则:表大小 = 网络规模 × 条目宽度(e.g., 64核NoC可能有64条目,每条4-8位)。设计时需最小化:对于规则拓扑(如网格),可压缩表(只存差异路径);对于大规模NoC,使用分布式表(每个路由器只存局部信息)。

2.2. 路由类型和算法集成

确定性 vs. 自适应

确定性:表预填充固定路径(e.g., XY路由:先沿X轴,后沿Y轴)。规则:确保无循环路径,避免死锁。
自适应:表动态更新,根据实时拥塞(e.g., 缓冲区占用率)选择路径。规则:集成监控逻辑,定期刷新表;使用最小路径算法(如Dijkstra)生成条目。

源路由 vs. 分布式路由

源路由:整个路径存于包头,路由表在源端生成。规则:表只需在源路由器实现,减少中间查询延迟。
分布式:每个路由器有自己的表,逐跳决策。规则:确保表一致性(全局视图),避免路由循环。

死锁避免规则

使用转弯模型(turn models):e.g., West-First模型禁止某些转弯(如从东到西),表中只允许合法输出端口。
集成虚拟通道:表指定VC分配(e.g., 偶数VC用于上升路径,奇数用于下降),打破循环依赖。
规则:验证表无环(acyclic),使用工具如Noxim模拟死锁场景。

活锁避免:表设计禁止无限重路由(e.g., 设置重试上限)。

2.3. 性能和优化规则

延迟优化:表查询应单周期(pipelined设计)。规则:使用并行查找或缓存热门条目。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容