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

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

8.2.2.1. 广播控制信号的实例

扇出到多个目的地的广播控制信号限制重新定时。由于器件支持特定的寄存器控制信号,异步清零会限制重定时。然而,即使是同步信号(如同步清零和时钟使能)在短路径或长路径关键链的一部分时也可限制重定时。同步控制信号的使用本身不是限制性原因;而是电路的结构和布局导致了此限制。

在所有的节点的输入上都必须要有一个寄存器,以通过一个节点向前重定时一个寄存器。在下图中,要通过寄存器B重定时寄存器A,Compiler必须要将一个寄存器从所有输入中拉起,包括时钟使能输入上的寄存器C。另外,如果Compiler将一个寄存器重定时到一个分支点的一侧,那么Compiler必须将此寄存器的一个副本重定时到分支点的所有侧。此要求同样应用于常规重定时和Hyper-Retiming。

图 141. 通过时钟使能重定时


在寄存器B的时钟使能输入上有一个分支点。除了所示的时钟使能之外,此分支点还包括到其他目的地的额外扇出。要通过寄存器B重定时寄存器A,则要进行与上一个图相同的操作,但分支点的存在意味着寄存器C的复制必须沿着分支点的另一侧重定时到寄存器C。

图 142. 通过分支点的时钟使能重定时


重定时实例

下图结合了之前的两步来展示在广播时钟使能信号或一个分支点存在的情况下一个向前Hyper-Retiming推进的过程。

图 143. 重定时实例起点Hyper-Retiming能将重定时的寄存器移到Hyper-Registers中。

每个寄存器的时钟使能在其输入上有一个Hyper-Register位置。由于布局布线,寄存器到寄存器路径包括三个Hyper-Register位置。不同的编译能够包括更多或更少的Hyper-Register位置。此外,在此链的数据和时钟使能输入上有能够被Hyper-Retimer重定时的寄存器。这些寄存器存在于RTL中,或者通过Pipeline Stages部分中描述的选项进行指定。

输入寄存器的一个阶段重定时到两个寄存器之间的Hyper-Register位置。图 144显示了Hyper-Retiming前推的一个部分。时钟使能输入上的一个寄存器通过分支点重定时,一个复制到达每个时钟使能输入上Hyper-Register位置。

图 144. 重定时实例中点


图 145显示了Hyper-Retiming完成前推后电路中寄存器的位置。左侧寄存器的输入上的两个寄存器重定时到Hyper-Register位置。此图在功能上等同于上两个图。第二个寄存器的时钟使能输入上的一个Hyper-Register位置仍被占用。在通往第二个寄存器的时钟使能路径上没有其他的Hyper-Register位置,但在输入上仍有一个可被Compiler重定时的寄存器。

图 145. 重定时实例端点

图 146显示了Hyper-Retiming使用的寄存器位置(如果短路径/长路径关键链不限制此路径)。然而,由于在右侧时钟使能路径上没有Hyper-Registers,因此Hyper-Retiming不能重定时图中所示的电路。

图 146. 重定时实例限制条件

由于通往第二个寄存器的时钟使能路径没有更多的Hyper-Register位置,因此Compiler将此时钟使能路径报告成短路径。由于寄存器到寄存器路径太长而不能在性能要求上运行(尽管有更多的Hyper-Register位置用于重定时的寄存器),因此Compiler将此路径报告成长路径。

此实例简单地显示了短路径/长路径关键链的结构。事实上,双扇出负载(two-fan-out load)不是电路中的关键链。然而,广播控制信号能成为具有更高扇出的限制关键链。为提高性能,请避免或重写这种结构。