原创 NoC 互连入门

2022-2-2 12:20 2141 14 3 分类: EDA/ IP/ 设计与制造

作者: Benoit de Lescure


以前的博客文章讨论了片上网络 (NoC) 互连相对于交叉开关(crossbar)互连的优势。 如果那些想法听起来很有趣,那么 SoC 团队应该如何评估 NoC 是否符合后续产品的目标? 或许在当前设计中有困难的时序收敛问题,在下一个设计中预计会更糟。 这可能是尝试不同方法的一个很好理由。反过来说,这种改变可能会有什么风险? 设计师是否需要在架构或实施方面进行专业再培训? 工程师如何量化对当前架构的改进? 有哪些选项可以用于管理后期时序问题? 本文简要回答了这些问题。

 

规划和分区

首先,构建 NoC 与构建crossbar没有什么本质的区别。 NoC 只是提供了更大的灵活性,因为它在整个网络中使用一种通用协议以及基于数据包的交换。 这种方法消除了复杂的交换树和协议桥。 在 NoC 中可以插入时钟和电源的域交叉点,而不需要进行分区。 

 

因此,在试验设计中,没有必要重复在基线中或以前生产设计中使用的互连分区。 最好是构建 NoC 来满足设计的系统需求,例如分隔安全域或构建可重复使用的子系统,而不考虑先前的基于总线或基于crossbar的互连结构。 换句话说,在实施 NoC 技术时,您应该从 SoC 的要求出发,而不是 “调整修改”先前的基于crossbar实施。

 

平面图试验

从平面图开始。 这似乎有点落后,但 NoC 的一个重要优势是面积效率。 此外,当从早期设计开始时,它使评估更容易。可以将平面图导入 FlexNoC 工具,以试验布线拥塞情况,并为高带宽低延迟的路径和性能未受限制的窄通道配置宽通道。还有一个自动管道选项,当路径上时序要求无法满足时,该选项会沿着互连路径自动添加管道(也称为寄存器片)。 这些实验应该开始提供一些指示,说明基于 NoC 的平面图和时序收敛将如何进展。

 

平面图试验: 左侧是基于crossbar的互连设计,表现出严重拥塞。 右侧是基于 NoC 的互连设计,更有效地利用区块之间的空间并使拥塞最小化。



时钟和电源域适配器对于时钟域交叉,FIFO 桥可以直接插入到 NoC 中。这样通常比crossbar结构中的等效桥更小,因为 NoC 只需要处理分组数据,通常比 AXI 接口更窄。 对于电源切换,电源控制器和电源域交叉模块可以插入到网络中。当网络和附加的知识产权 (IP) 块之间存在电源边界时,这些控制器应该与所有的电源域交叉模块相连接,包括网络接口单元 (NIU)。这里需要记住的是,在网络内部不可以用crossbar将电源控制器与传输电源域交叉模块相连接,以便对网络功耗进行更细粒度的控制。因此,与位于单一电源域中的crossbar不同,NoC 可以划分为多个电源域。然而,许多人可能认为对于基本评估来说这是不必要的改进。

 

服务质量精细化, P&R试验

一旦建立了一个初步的NoC结构,就可以通过对其进行调整以满足服务质量(QoS)目标。执行此操作的快速方法是使用NoC互连IP生成器输出的SystemC模型,以及IP供应商提供的初步定时或周期精确的模型(Arteris IP也提供模型),以针对QoS指标对网络进行调整。也可以在仿真中运行试验以获得最大的准确性。

 

在基准试验中可能考虑的其他选项包括:将一些通信通道串行化,以降低芯片上长时间运行的拥塞,试验可编程选项(来自软件,每个主控)或使用可以插入网络接口单元的调节器来引导首选带宽。

 

此时,RTL设计已经准备好开始真正的实施,以准确评估拥塞和时序收敛。

 后期时序修复虽然在限制拥塞方面,NoC比crossbar要好得多;然而,根据具体设计,它们不会消除所有问题。 FlexNoC 产品真正出色的功能之一是,在实施后期仍然可以对网络进行调整,而且对平面图整体的影响极小。对于时序而言,当然可以增加管道,但这并不总是可取的。另一个自由度是使用虚拟通道,将两条或更多条路径合并成一个通道,减少拥塞(这可能会为时序收敛开辟其他选项)。还有另一种可能性,是对很长的路径使用源同步异步桥,而无需在这些端点 IP 之间平衡时钟树。

 

量化改进

对任何生产设计团队来说,重要的是 NoC 在他们的设计上带来的结果,而不是营销文献所说的内容。第一个也是最明显的结果是面积缩减。与基于crossbar的同类设计相比,预期网络面积会缩小 30-40%

 

QoS可能有点难以比较,但一个正确配置的基于NoC的实施方案至少应该能与基于crossbar的设计实现同样的带宽和延迟目标。

 

对于采用 NoC 技术的团队来说,实现时序收敛的简便性和快速性是一个主要卖点。评估基准无法模拟生产计划中发现的所有复杂情况。尽管如此,即使允许在评估上有一些偷工减料,时序收敛的速度也应该大大加快。

 

任何使用情况下的平均功率都应该更低一些(因为FlexNoC的网络元素很小,而且布线应该更少)。如果基于NoC的设计允许在网络内断开电源,那么平均功率应该会更低。

 

下一篇博客:如果一个设计需要管理高速缓存一致性,如何通过NoC来实现这一目标?

作者: Benoit, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3957553.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
14
关闭 站长推荐上一条 /3 下一条