アンフォールディングとは、 DSPプログラムのスループットを向上させるために、機能ブロックを複製することで、出力における機能的な動作を維持する変換手法です。アンフォールディングは、1989年にKeshab K. ParhiとDavid G. Messerschmittによって初めて提案されました。 [ 1 ] [ 2 ]一般的なプログラムにおけるアンフォールディングは、ループアンローリングとして知られています。
アンフォールディングは、高速かつ低消費電力のASICアーキテクチャの設計に応用できます。例えば、プログラムを展開することで隠れた並行性を明らかにし、プログラムをより短い反復周期でスケジュールすることで、実装のスループットを向上させることができます。また、ワードレベルまたはビットレベルでの並列処理にも応用できます。このように変換された回路は、スループットを向上させ、消費電力を削減することができます。
DSPプログラムの場合、インデックスを に置き換えると の結果になる可能性があります 。同様に、インデックスを に置き換えるとの結果になる可能性があります 。
したがって、プログラムを、2 つの入力を受け取り、毎回 2 つの出力を生成する次のプログラムに変換します。

データフローグラフ(DFG)形式のDSPプログラムと展開係数Jが与えられた場合、展開処理は、DSP機能を維持しながら、機能ブロックを複製し、再接続することで、DSPプログラムを新しいプログラムに変換します。係数Jを用いて実行されたプログラムを、J展開DFG と呼びます。
J展開DFGでは、元のDFGの各ノードUに対して、変換後のDFGにはUと同じ機能を持つJ 個のノードが存在します。元のDFGの各エッジに対して、変換後のDFGにはJ 個のエッジがありますが、その遅延は元の DFGの 1/ J倍です。
データフローグラフはラベル付きの有向グラフです。各ノードにはその機能を示すタイプがラベル付けされ、各エッジには遅延を示す数値がラベル付けされます。
展開因子Jを与えられた
次のグラフは、アルゴリズムのプロセスを示しています。元のDFGは2つのノードと1つのエッジで構成され、遅延は37個です。展開プロセスでは、 J = 4を展開係数として使用します。アルゴリズムはまず、ノードUとVを4つのUノードと4つのVノードに複製します。次に、対応する遅延を持つノードの再接続を実行します。例えば、 U 2 はインデックス(2 + 37)%4 = 3でVに接続します。さらに、エッジU 1からV 2への遅延は、エッジU 3からV 0への遅延は です。

以下のグラフは、展開アルゴリズムを示す別の例です。展開係数Jよりも小さい遅延がある場合、J展開されたDFGは遅延が0のエッジを作成しますが、元のDFGでは対応するエッジが非ゼロのエッジである可能性があることに注意してください。したがって、折り畳み処理によって遅延が0のエッジが作成され、DFG内の最長経路が増加する可能性があります。((PS:右下の図はT1ではなくT2です))

この性質は、展開されたDFGの合計が
したがって、変換によってスループットはJ倍に増加しますが、遅延要素のリソースは増加しません。
w < Jの場合、元の DFG でw 個の遅延があるパスを考えます。このパスをJ展開すると、遅延のない (Jw) 個のパスと、遅延が 1 個のw個のパスが生成されます。元の DFG のすべてのパスの遅延がJより大きい場合、展開された DFG のクリティカル パスは、元の DFG のクリティカル パスと同じになります。したがって、変換された DFG ではスループットがJ倍に増加します。ただし、遅延がJ未満のパスがある場合は、遅延のない新しいパスが作成されます。したがって、元のクリティカル パスとは異なるパスでクリティカル パスが発生する可能性があり、組み合わせ遅延が増加します。このような場合、スループットはJ倍に増加しません。
このような問題を解決するために、元の DFG でリタイミングを実行し、遅延がJよりも大きいすべてのパスを許可することができます。
アンフォールディングは並列処理の一般的なケースであり、パイプライン化や並列化技術と同様に低消費電力特性を備えています。元の回路に比べて容量はJ倍になりますが、その容量を充電する時間は1/J倍です。さらに、充電時間は電源電圧の反比例関係にあります。したがって、電源電圧を下げることで、J倍の容量を1/J倍の時間で変化させることができます。最終的に、消費電力は電源電圧の低下の2乗となり、アンフォールディング回路は消費電力を削減できます。
アンフォールディング変換は、ワードシリアルアーキテクチャからワードパラレルアーキテクチャを設計するために使用できます。以下は、ワードシリアルアーキテクチャからワードパラレルアーキテクチャへの変換例です。

このようにして、展開によりアーキテクチャ探索を実行し、システム内の最適な実装を見つけることができます。

アンフォールディング変換は、 DFGで記述されたデジタル信号処理システムにおける隠れた並行性を解明することができます。したがって、アンフォールディングは、機能ブロックを複製することでシステムのスループットを向上させるために使用できますが、遅延要素を増加させることはありません。パス上の遅延を適切に処理(リタイミングなど)すれば、各機能ブロックの複製数であるJ倍のスループットを向上させることができます。このような変換技術は、高速アプリケーションや低消費電力アプリケーションに使用できるワールド並列アーキテクチャの生成に適用できます。したがって、アンフォールディングは、面積、スループット、消費電力のバランスをとるのに適した技術です。