インテルのみ表示可能 — GUID: mtr1430270841498
Ixiasoft
インテルのみ表示可能 — GUID: mtr1430270841498
Ixiasoft
2.4.1.1. Shannonの分解
Shannonの分解は、ハイパー最適化で役割を果たします。シャノンの分解、またはシャノンの展開は、ブール関数を因数分解する方法です。関数は、F = x.Fx + x′Fx′として表現できます。ここで、x.Fxおよびx′Fx′は、xに関する関数Fの正および負の補因子です。(a, b, c, x) = x.(a, b, c, 1) + x′.F(a, b, c, 0)のように、4つの入力を持つ関数を因数分解できます。次の図。 Hyper-Optimizationでは、Shannonの分解によりx信号が入力ロジックのコーンのヘッドにプッシュされ、x信号がロジックコーンを通る最速のパスになります。 x信号は、他のすべての信号を犠牲にして最速のパスになります。Shannonの分解を使用すると、元の関数の面積コストも2倍になります。
Shannonの分解はループのための効果的な最適化テクニックである場合があります。ループ内のロジックに対してShannonの分解を実行すると、ループ内のロジックがループ外に移動します。Compilerは、ループ外に移動されたロジックをパイプラインできるようになります。
ループ内のレジスターの出力は0または1です。ループにレジスターを供給する組み合わせロジックを複製し、1つのコピーの入力を0に、もう1つのコピーの入力を1に割り当てます。
ループ内のロジックに対してShannonの分解を実行すると、ループ内のロジックの量が減ります。Compilerは、ループから削除されたロジックにレジスターのリタイミングまたはHyper-Pipeliningを実行し、回路のパフォーマンスを向上させることができます。