(57)【要約】本発明は、シストリックアレイ状の構造を実施するための処理方法および装置に関する。入力データが、所定のシーケンスでデプス構成可能レジスタ手段（ＤＣＥ）に記憶され、命令データから生成される制御信号に基づいて前記入力データを処理するための処理手段（ＦＵ）に与えられ、ここにおいてレジスタ手段（ＤＣＥ）のデプスは、命令データによって制御される。これによって、アレイの遅延線を構成するレジスタ移動を実施するための演算を明示的に発行する必要なく、シストリックアレイをＶＬＩＷプロセッサ等のプログラム可能プロセッサ上にマッピングすることができる。
2005524160.tif 000002
【特許請求の範囲】
【請求項１】
シストリックアレイ型の構造を実施するための処理装置であって、
データを入力するための入力手段と、
前記入力データを所定のシーケンスで記憶するためのレジスタ手段と、
命令データから生成される制御信号に基づいて、前記レジスタ手段から受けたデータを処理するための処理手段と、
前記命令データにしたがって前記レジスタ手段のデプスを制御するためのレジスタ制御手段と、
を備えている、処理装置。
【請求項２】
前記レジスタ手段は、前記処理手段の複数の機能ユニットの入力端子に設けられた分散されたレジスタファイルを備えている、請求項１に記載の装置。
【請求項３】
前記分散されたレジスタファイルは、個々のレジスタ毎にアドレス可能なデプス構成可能ＦＩＦＯレジスタファイルを含んでいる、請求項２に記載の装置。
【請求項４】
前記レジスタ制御手段は、前記命令データから得られた制御信号に基づいて前記ＦＩＦＯレジスタファイルの最後の論理レジスタを決定するために設けられている、請求項３に記載の装置。
【請求項５】
前記命令データを記憶するための少なくとも１つの発行スロットを更に備えている、請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記レジスタ制御手段は、前記少なくとも１つの発行スロット内に記憶された前記命令データのビットパターンの一部を使用して前記レジスタ手段の前記デプスを制御するために設けられている、請求項５に記載の装置。
【請求項７】
前記プログラム可能処理装置は、スケーラブルＶＬＩＷプロセッサまたは粗粒再構成可能プロセッサである、請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記分散されたレジスタファイルは、複数の２地点間接続ラインから成る相互接続ネットワークに接続されている、請求項２から７のいずれか一項に記載の装置。
【請求項９】
前記２地点間相互接続ラインが１つのソースを有している、請求項８に記載の装置。
【請求項１０】
前記相互接続ネットワークが部分的に接続されている、請求項８に記載の装置。
【請求項１１】
シストリックアレイ型構造を実施するための処理方法であって、
前記入力データを所定のシーケンスでレジスタファイル内に記憶し、
命令データから生成される制御信号に基づいて、前記レジスタファイルから受けたデータを処理し、
前記命令データにしたがって前記レジスタファイルのデプスを制御する、
ことを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理方法および装置、特に、シストリックアレイ状の構造を実施するためのスケーラブルＶＬＩＷ（超長命令語）プロセッサまたは粗粒再構成可能（ｃｏａｒｓｅ−ｇｒａｉｎｅｄ  ｒｅｃｏｎｆｉｇｕｒａｂｌｅ）プロセッサに関する。
【背景技術】
【０００２】
プログラム可能プロセッサまたは再構成可能プロセッサは、それに対して発せられた命令またはコンフィギュレーションのそれぞれに基づいて特定の機能を果たすために組み立て後にカスタマイズできる組み立て式の装置である。これらの命令またはコンフィギュレーションは、プロセッサ内で実行される際に、プロセッサリソース（例えば、演算論理回路（ＡＬＵ）、レジスタファイル、相互接続、メモリ等）を制御して、時間的に（すなわち、順次に）または空間的に（すなわち、パラレルに）特定の演算を行なう。一般に、構成可能プロセッサは、プログラム可能プロセッサよりも空間的に多くの演算を行なう。一方、プログラム可能プロセッサは、構成可能プロセッサよりも時間的に多くの演算を行なう。
【０００３】
デジタル信号プロセッサ（ＤＳＰ）におけるアルゴリズム−シリコン設計方法論が開発され、それにより、ＤＳＰ設計者の設計生産力を飛躍的に高めることができ、また、その結果として生まれるチップの設計を更に最適化できるようになった。前記方法論は、最初に、実施独立方式でアルゴリズムを取得することを伴う。その後、評価器および解析器のセットを用いて、固定小数点の実施においてアルゴリズムを調節して最適化することができる。満足できる動作に達すると、固定小数点仕様をターゲットＶＬＩＷ状アーキテクチャに対してマッピングするために、インタラクティブな合成エンジンのセットを適用することができる。このマッピング処理は、非常に柔軟性があり且つ高速であるため、非常に短い時間で多くの選択肢を試みることができる。一般に、そのようなＶＬＩＷ状プロセッサアーキテクチャの非常に多くの例は、そのマイクロコードメモリ内の各制御ワードがコンフィギュレーションである粗粒再構成可能プロセッサとして見ることができる。このような解釈は、対応するＶＬＩＷ命令のサイズに起因して可能であり、そのため、多くのパラレル演算を行なうことができ、したがって、主に空間的な演算を行なうことができる。
【０００４】
ＶＬＩＷプロセッサは、アプリケーションで利用可能な命令レベル並列（ＩＬＰ）を利用するために使用される。ＩＬＰを利用するため、ＶＬＩＷ命令では、データ独立演算が同時にスケジュールに組まれる。
【０００５】
図１は、処理アプリケーションおよびアプリケーションの対応するプログラム可能プロセッサ構造を示す概略図を示している。この場合、ループボディを表わすデータフローグラフが左側に示されている。図１において、円２０は演算を表わしており、矢印は、演算同士の間のデータ依存を表わしている。破線の矢印は、ループ繰り返しにおいて消費され或いは生じる入力値または出力値をそれぞれ表わしている。右側には、４−発行スロットＶＬＩＷプロセッサ１０が示されている。このプロセッサは、４つのＡＬＵ  Ａ１〜Ａ４と、ＡＬＵ  Ａ１〜Ａ４の演算を制御するための４つの発行スロットＩ１〜Ｉ４とを備えている。この場合、ＶＬＩＷプロセッサ１０は、示されたループ処理アプリケーションの１つの繰り返しを５つのサイクルで計算することができる。この場合、各サイクルで２演算、４演算、２演算、１演算、１演算をそれぞれ行なうシーケンスを実行する。１サイクル毎の演算数は、同時に又はパラレルで処理できる演算数、すなわち、処理アプリケーションの１つの水平ライン内に示される演算数によって決まる。処理アプリケーションの部分領域３０は、第２のサイクルにおける状態を示している。この第２のサイクルにおいては、ＶＬＩＷプロセッサ１０の１つのサイクル内で、４つの演算がパラレルに実行される。
【０００６】
なお、ＩＬＰは、ループの１つの繰り返しのためループボディ内で利用される。ループ繰り返しにわたってＩＬＰを利用するために、ソフトウェアパイプライニングの技術を使用することができるが、これらの技術は、一般に、実施することが難しく、殆どの場合、簡単なループおよび小さなループ、例えば１つのベーシックブロックにおいてしか有効ではない。
【０００７】
しかしながら、カスタムハードウェアは、ループの全ての繰り返しの実行を重ね合わせ、それにより、全てのサイクルにおいて殆どのコンピューティングリソースをビジー状態に維持する。この種の実施は、データローカリティおよびパイプライニングを極端なまでに利用する。それは、シストリックアレイとして知られている。図２は、デジタルフィルタアプリケーション、例えば全てのサイクルで出力サンプルを生成することができるＦＩＲ（有限インパルス応答）フィルタの最後の２つのタップのシストリックアレイの実施を表わす概略図を示している。灰色のブロックはクロックレジスタＲを示している。全ての機能ユニットＦＵも、全てのサイクルにおいてビジー状態にある。入力データｉは、「脈動（ｐｕｌｓａｔｉｎｇ）」アセンブリラインの場合と同様に、それが「パイプ」を右へと下がると、出力データｏを生成するため局所的に処理される。ラインａｃｃは、部分累積を含んでいる。レジスタｃは、乗算器に対して係数を含んでいる。したがって、このアーキテクチャは、「シストリック」アレイと称される。シストリックアレイによれば、高スループットを得る非常に高い並列利用が可能になる。
【０００８】
Ｚａｐａｔａらによる「高速ハートレイ変換およびフーリエ変換のためのＶＬＳＩコンスタントジオメトリアーキテクチャ」（パラレルシステムおよび分散システムに関するＩＥＥＥ報告書、第３巻、ＮＯ．１、５８頁〜７０頁、１９９２年１月）においては、シストリックデータフローを容易にし且つ複雑なデータ移動および変換のアドレスシーケンスを直接的な方法で実施できるようにするため、プロセッサメモリの編成が先入れ先出し待ち行列に基づいている。これは、ハードウェア・コントロールを使用して、簡単な多重化演算によって行なわれる。
【０００９】
したがって、基本的には、シストリックアレイをＶＬＩＷプロセッサ上にマッピングすることができる。この場合、シストリックアレイ内の各機能ユニットＦＵは、ＶＬＩＷプロセッサ内の等価なユニット（例えば、ＡＬＵ、乗算器、ＭＡＣ等）に対応しており、また、１つの発行スロットが割り当てられる。図２のシストリックアレイにおいては、４つの機能ユニットＦＵのために、ＶＬＩＷプロセッサ内に４つの発行スロットが必要とされる。また、シストリックアレイ内の遅延線に対応する各レジスタ移動のため、その対応する発行スロットを用いて、ＶＬＩＷプロセッサ内に１つのレジスタ移動ユニットが必要とされる。図２のシストリックアレイにおいては、遅延線に対応する７つのレジスタ移動が与えられている。したがって、その追加の７つの発行スロットを用いて、ＶＬＩＷプロセッサ内に７つのレジスタ移動ユニットが必要とされる。このように、実際の演算に対してよりも、レジスタ移動に対応して、多くの発行スロット、したがって、制御信号および対応する回路が存在する。また、他の機能ユニットによってアクセスされる必要がある同じレジスタに対して移動ユニットがアクセスする必要があり、ＶＬＩＷ設計においてアーキテクチャが複雑になる。この全てにより、シストリックアレイのＶＬＩＷ実施が非実用的なものになる。なお、この点で、当初のシストリックアレイにおいては、明示的制御無くして遅延線を実施できるレジスタのＦＩＦＯラインにより、レジスタ移動が空間的にエンコードされる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、プログラム可能プロセッサによってシストリックアレイ構造を実施できるようにすることである。
【課題を解決するための手段】
【００１１】
この目的は、請求項１に記載された処理装置および請求項８に記載された処理方法によって達成される。
【００１２】
したがって、シストリックアレイを実施するためのプログラム可能プロセッサテンプレートは、処理ユニットの入力部にデプス構成可能（ｄｅｐｔｈ−ｃｏｎｆｉｇｕｒａｂｌｅ）レジスタ手段を設けることにより達成することができる。例えばＶＬＩＷプロセッサ等のプログラム可能プロセッサによるシストリックアレイ構造の実施により、良く知られたプロセッサパラダイムの自由度およびプログラム可能性を保ちつつ、ビデオストリーミング等のメディアインテンシブアプリケーションに対してハードウエハのような性能、主にスループットを与えることができる。明示的なハードウェア設計の必要無くして「シストリックアレイ状の」命令スケジュールを自動的に生成するコンパイラを得ることさえも可能である。この方向でコンパイル技術を広げることができる。
【００１３】
したがって、シストリック構造のマッピングのために費用効率が高いＶＬＩＷテンプレートを与えることができる。このテンプレートにより、遅延線に対応する全てのレジスタ移動演算を明示的に制御するための現在の要求により作り出されるオーバーヘッドがかなり減少する。
【００１４】
レジスタ手段は、処理手段の複数の機能ユニットの各入力端子に設けられた分散されたレジスタファイルを備えていても良い。特に、分散されたレジスタファイルは、個々のレジスタ毎にアドレス可能なデプス構成可能ＦＩＦＯレジスタファイルを備えていても良い。利用できる物理的なレジスタの数は、ハードウェアによって決定される。この場合、命令データから得られる制御信号に基づいてＦＩＦＯレジスタファイルの最後の論理レジスタを決定するために、レジスタ制御手段が設けられても良い。
【００１５】
また、命令データを記憶するために、少なくとも１つの発行スロットが設けられても良い。少なくとも１つの発行スロット内に記憶された命令データのビットパターンの一部を使用してレジスタ手段のデプスを制御するために、レジスタ制御手段が設けられても良い。
【００１６】
他の有利な更なる変形例は、従属請求項に記載されている。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照しつつ、本発明の好適な実施形態を、ＶＬＩＷプロセッサアーキテクチャに基づいて、説明する。
【００１８】
図３において、図２のシストリックアレイは、これをＶＬＩＷアーキテクチャにおいて実施できるように再構成されている。発行スロットＩ１〜Ｉ４が明確に示されており、複数のレジスタＲを備えた先入れ先出し（ＦＩＦＯ）遅延線がＡＬＵ等の機能ユニットＦＵの入力端子に保たれている。破線のボックスは、ハードウェアで利用できるが図示のシストリック構成では使用されない物理的なレジスタを表わしている。このように描かれることで、理論体系は、シストリック構造を効率的にマッピングできるＶＬＩＷテンプレートを提案する。図３に示される直感的な概念は、機能ユニットＦＵの各入力部に分散されたレジスタファイルを与えることにより、一般化できる。
【００１９】
図４は、シストリック構造を効率的にマッピングできるＶＬＩＷテンプレートとしての好適な実施形態に係るプログラム可能プロセッサアーキテクチャを示している。特に、各機能ユニットＦＵの各入力部毎に１つ、分散されたレジスタファイルＤＣＦが与えられる。また、幾つかの２地点間ラインから成る相互接続ネットワークが与えられ、また、この相互接続ネットワークは、入力マルチプレクサまたは出力マルチプレクサ５０により、機能ユニットの各入力部に対して接続される。これにより、所定の１つの機能ユニットＦＵによって２地点間ラインへの書き込みが可能になる。図４は完全な接続性を提案しているが、相互接続バスが完全に接続される必要はない。また、機能ユニットＦＵの各入力部は、個々のレジスタ毎にアドレス可能な標準レジスタファイルＲＦに接続されても良い。なお、図４においては、簡単のため、各機能ユニットＦＵの右側の一方の入力部だけが対応する標準レジスタファイルＲＦに接続されて示されている。複数の読み取り／書き込みポートを有するレジスタファイルも可能である。
【００２０】
テンプレートは、集中された構造を全く有していないため、すなわち、全てのリソースが分散されているため、スケーラブルであり、大きなシストリックアレイ、例えば１６−タップＦＩＲフィルタまたは大きなマトリクス乗算器によって非常に多くの発行スロットが必要とされる可能性がある。
【００２１】
好適な実施形態においては、各機能ユニットＦＵの各入力部にデプス(Depth)構成可能レジスタファイルＤＣＦが配置される。デプス構成可能レジスタファイルＤＣＦは、その最後の論理レジスタを制御信号によって決定できるＦＩＦＯメモリにより実施されても良い。しかしながら、任意の他のアドレス可能または制御可能なメモリ、あるいは、制御信号またはアドレス信号に基づいて遅延線における最後の論理記憶位置を決定できるレジスタ構造を使用して、デプス構成可能レジスタファイルＤＣＦを実施することができる。
【００２２】
Ｎ個の物理的なレジスタのデプス構成可能ＦＩＦＯにおいては、ＦＩＦＯの出力をレジスタＮ，Ｎ−１，Ｎ−２，．．．１にあるようにプログラムすることができる。ＦＩＦＯのデプスを制御することにより、ＦＩＦＯがエミュレートする遅延線の数を制御することができる。図３においては、例えば、最も左側のＦＩＦＯが４つの物理的レジスタＲを有していた場合、図４の最も左側のデプス制御されたレジスタファイルＤＣＦは、最も左側の発行スロットＩ１における制御信号によって制御されることにより、その出力端子が第２のレジスタ（Ｎ−２，Ｎ＝４）に配置され、一方、その下の２つのレジスタ（Ｎ，Ｎ−１）は未使用のままとなる。したがって、デプス制御されたレジスタファイルＤＣＦのデプスを制御する制御信号は、対応する発行スロットＩ１〜Ｉ４におけるビットパターンの一部である。
【００２３】
要約すると、シストリックアレイを実施するためのプログラム可能プロセッサテンプレートは、各機能ユニットＦＵの入力端子にデプス構成可能メモリまたはレジスタファイルＤＣＦを設けることにより得ることができる。デプス構成可能レジスタファイルＤＣＦのデプスは、例えば対応する発行スロット内でロードされる各ビットによって制御される。この追加物を用いると、アレイの遅延線を構成するレジスタ移動を実施するための演算を明示的に発行する必要なく、シストリックアレイをＶＬＩＷプロセッサ等のプログラム可能プロセッサ上にマッピングすることができる。提案されたテンプレートは、様々なシストリックアレイを実施できるように構成することができる。このテンプレートは、プロセッサのプログラム可能性を保ちつつハードウェアのようなデータスループットを可能にする粗粒再構成可能構造を与える。
【００２４】
なお、本発明は、このような好適な実施形態に限定されず、シストリックまたは他のパイプラインアーキテクチャを実施するために任意のプログラム可能または再構成可能処理アーキテクチャにおいて使用することができる。
【図面の簡単な説明】
【００２５】
【図１】処理アプリケーションおよび対応するプログラム可能プロセッサ構造の概略図である。
【図２】シストリックアレイアーキテクチャの概略図である。
【図３】本発明に係るプログラム可能プロセッサ内で図２のシストリックアレイアーキテクチャを実施するための原理アーキテクチャを示している。
【図４】シストリックアレイを実施するための好適な実施形態に係るプログラム可能プロセッサアーキテクチャを示している。
【図１】
2005524160.tif 000003
【図２】
2005524160.tif 000004
【図３】
2005524160.tif 000005
【図４】
2005524160.tif 000006
【国際調査報告】
2005524160.tif 000007
2005524160.tif 000008
2005524160.tif 000009