Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 10/04/2021
Public
文档目录

2.1.5. 避免广播信号

要尽量避免使用广播信号。广播信号是高扇出控制网,能够在路径之间产生很大的延迟差。路径延迟差对Compiler为寄存器找到合适的位置增加了难度,从而导致不平衡的延迟路径。使用流水线可以解决这个问题,通过复制寄存器来驱动广播信号。

广播信号要传播很长的距离才能到达每个独立的寄存器。因为这些扇出寄存器可能会在平面布局图中分散开,因此要使用手动寄存器复制来改进布局。流水线级的正确布局会对性能产生显著影响。

广播信号的次优化流水线中,黄色框突出显示了在一个模块中插入的寄存器有助于时序。此模块将输出广播到多个收发器通道。这些额外的寄存器可能无法充分改进时序,因为最终的寄存器级会在器件的广泛区域上扇出到目的地。

图 4. 广播信号的次优化流水线
广播信号的优化流水线显示了一种更好的方法:复制最后一个流水线寄存器,然后将寄存器的副本放置在目标模块中(本例中的收发器通道)。此方法会产生更好的布局和时序。由于每个通道的流水线寄存器布局有助于覆盖黄色模块中的最后一个寄存器级与收发器中的寄存器之间的距离,因此会进行改进。
图 5. 广播信号的优化流水线

除了复制最后一个流水线寄存器之外,您还可以应用dont_merge综合属性以避免在综合期间合并重复的寄存器,这将消除任何好处。

Compiler会尽可能自动添加流水线级并将寄存器移到Hyper-Registers中。您还可以使用手动流水线操作来获得更好的布局结果。