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

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

2.4.1.1. 香农分解(Shannon’s Decomposition)

Shannon分解作用于Hyper-Optimization中。Shannon分解或者Shannon扩展是分解Boolean函数的一种方法。函数可表达为F = x.Fx + x′Fx′,其中x.Fx和x′Fx′是函数F关于x的正和负辅因数。可通过四个输入来分解一个函数,例如:(a, b, c, x) = x.(a, b, c, 1) + x′.F(a, b, c, 0),如下图所示。在Hyper-Optimization中,Shannon分解将x信号推至逻辑的圆锥头,使x信号成为通过逻辑圆锥的最快路径。x信号以其他所有信号为代价成为最快的路径。使用Shannon分解也会加倍原始功能的面积成本。

图 41. 香农分解(Shannon’s Decomposition)
图 42. 香农分解逻辑减少逻辑综合可以利用常量驱动输入,并略微减少辅因数,如下图所示。
图 43. 重复的香农分解(Repeated Shannon’s Decomposition)下图显示了如何重复使用香农分解来分解具有一个以上的关键输入信号的函数,从而增加了面积成本。

香农分解是对环路的有效优化技术。当对环路中的逻辑执行香农分解时,环路中的逻辑移出环路。 Compiler现在可以对移出环路的逻辑进行流水线化。

图 44. 香农分解前的环路实例此图显示了一个环路,其中包括一个寄存器,四级组合逻辑和一个额外输入。在环路中添加寄存器会改变功能性,但通过执行香农分解可以将组合逻辑移出环路。

环路中的寄存器的输出是0或1。您可以对驱动环路中的寄存器的组合逻辑进行复制,将备份的输入连接到0,另一个备份的输入连接到1。

图 45. 香农分解后的环路实例环路中的寄存器然后选择两个副本中的一个,如下图所示。

对环路中的逻辑执行香农分解可减少环路中逻辑的数量。Compiler现在可以对被移出环路的逻辑执行寄存器重定时或Hyper-Pipelining,从而提高了电路性能。