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

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

8.2.1. 同步复位和限制

将异步复位转换成同步复位会减轻重定时限制,但不会移除所有性能限制。ALM寄存器的专用LAB-wide信号通常用于同步清零。此信号的扇出决定了综合(synthesis)期间此信号的使用。Compiler通常实现包含逻辑中小扇出的同步清零。较大扇出使用此专用信号。即便综合使用同步清零,Compiler仍然将寄存器重定时到Hyper-Registers中。ALM寄存器的旁路模式使能此功能。当Compiler旁路寄存器时,sclr信号和其他控制信号仍然能够被访问。

在下面实例中,LAB-wide同步清零驱动多个ALM寄存器。同步清零路径上的Hyper-Register可用于每个寄存器。

图 134. 同步复位的重定时实例圆圈代表Hyper-Registers,矩形代表ALM寄存器。未填充的部分代表空闲的位置,蓝色填充的部分表示已经占用。

重定时期间,Compiler将(a)行中的顶端寄存器推进到Hyper-Register中,Compiler通过旁路ALM寄存器来实现此操作,但仍使用驱动此寄存器的SCLR逻辑。当使用LAB-wide SCLR信号时,ALM寄存器必须存在于数据通路上,当不必使用此寄存器。

寄存器重定时将(b)行左边的寄存器推进到它的数据通路中。寄存器推进数据通路和同步清零的信号分割。Compiler必须将此寄存器推到两个网络上,一个在数据通路中,一个在同步清零路径中。这能够实现是因为每个路径都有一个Hyper-Register。

当另一个寄存器向前推进到ALM中时,重定时会更加复杂。如下图所示,来自同步清除端口的寄存器和来自数据路径的寄存器合并在一起。

图 135. 重定时实例– 从ALM中推出的第二个寄存器

由于其他寄存器共享同步清零路径,因此寄存器会在通往其他同步清零端口的路径上分离。

图 136. 重定时实例–寄存器在通往其他同步清零端口的路径上分离


在下图中,同步清零上的Hyper-Register正在被使用,不能接受另一个寄存器。Compiler不能再次通过ALM重定时此寄存器。

图 137. 重定时实例–同步清零上的冲突


两个主要体系结构组件通过同步向前清零或者同步向后清零来使ALM寄存器移动:

  • 旁路ALM寄存器的能力
  • 同步清零路径上的Hyper-Register

如果推进更多的寄存器,那么重时序会变得困难。与转换到同步复位相比,通过异步复位移除能够实现更好的性能提升。由于同步清零的广播特性,因此同步清零通常很难重定时。