(57)【要約】シストリック・アレイ・プロセッサを、既存のＳｏＣ技術および新たなＳｏＣ技術と両立する形でシステム・オン・チップ（ＳｏＣ）内に統合する。シストリック・アレイ・プロセッサは、汎用デジタル信号プロセッサに対するコプロセッサとして実施することもできるし、あるいは超長命令語（ＶＬＩＷ）プロセッサの機能ユニットとして実施することもできる。
2006510129.tif 000002
【特許請求の範囲】
【請求項１】
主プロセッサより速い実行速度を有する主プロセッサのコプロセッサであって、処理セルの２次元アレイを含み、インタフェース・モジュールによって前記プロセッサに通信可能に接続され、前記インタフェース・モジュールが、前記インタフェース・モジュールと前記アレイの周縁部の各セルとの間の複数の情報経路を再構成する機構を有するコプロセッサ。
【請求項２】
前記アレイがシストリック処理アレイを含む請求項１に記載のコプロセッサ。
【請求項３】
前記複数の経路が、前記各セルと１対１で接続される請求項１に記載のコプロセッサ。
【請求項４】
前記複数の経路に沿った入力オペランドの流れに基づくタイミングで数学演算を実行する請求項１に記載のコプロセッサ。
【請求項５】
前記アレイ内のセル間接続が、前記アレイの各セルが、同じ列のすぐ隣の行のセル、および同じ行のすぐ隣の列のセルのみに接続されるように行われる請求項１に記載のコプロセッサ。
【請求項６】
コプロセッサと、インタフェース・モジュールと、主プロセッサとを含み、前記主プロセッサに接続された前記インタフェース・モジュールが主プロセッサをコプロセッサに接続するコプロセッシング・システム。
【請求項７】
前記２次元アレイを含むアレイ・プロセッサを含む請求項１に記載のコプロセッサ。
【請求項８】
請求項１に記載のコプロセッサを含む集積回路。
【請求項９】
請求項８に記載の集積回路を含む受信機。
【請求項１０】
前記アレイが矩形であり、前記周縁部が、前記処理セルのうち前記アレイの第１の行、最終行、第１の列および最終列の少なくとも１つに含まれる処理セルからなる請求項１に記載のコプロセッサ。
【請求項１１】
前記プロセッサが、デジタル信号プロセッサを含む請求項１に記載のコプロセッサ。
【請求項１２】
前記プロセッサが、汎用プロセッサを含む請求項１に記載のコプロセッサ。
【請求項１３】
処理セルの２次元アレイを有し、主プロセッサの構成要素として機能する機能ユニットであって、前記アレイまでの複数のプロセッサ内情報経路を再構成して、前記アレイの周縁部の各セルに接続する機構を有する機能ユニット。
【請求項１４】
前記プロセッサが、超長命令語（ＶＬＩＷ）プロセッサを含む請求項１３に記載のユニット。
【請求項１５】
前記アレイ内のセル間接続が、前記アレイの各セルが、同じ列のすぐ隣の行のセル、および同じ行のすぐ隣の列のセルのみに接続されるように行われる請求項１３に記載のユニット。
【請求項１６】
複数のアレイ・プログラムを、前記処理セルの対応する所定のサブセットに送信する手段をさらに含む請求項１３に記載のユニット。
【請求項１７】
請求項１６に記載のプロセッサと、送信するアレイ・プログラムを生成し、必要ならプログラムを更新し、更新したプログラムを送信し、さらに必要ならそれと同時に、再構成信号を前記機構に送信して、それに応じて前記情報経路の現在の定常状態接続パターンを更新するアレイ・プログラム・ジェネレータとを含むシステム。
【請求項１８】
前記プログラム更新に応答して、前記ユニットの入力および出力のタイミングを表すデータを受信するように構成され、さらに前記データに基づいて命令をコンパイルするように構成されたコンパイラをさらに含む請求項１７に記載のシステム。
【請求項１９】
請求項１３に記載のプロセッサを含む集積回路。
【請求項２０】
主プロセッサに対するコプロセッサのインタフェースをとる方法であって、
処理セルの２次元アレイを含み、前記プロセッサより速い実行速度を有するようにコプロセッサを構成するステップと、
インタフェース・モジュールと前記アレイの周縁部の各セルとの間の複数の情報経路を再構成する機構を有するインタフェース・モジュールによってコプロセッサを前記プロセッサに通信可能に接続するステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能ユニットまたはコプロセッサとしてアレイ・プロセッサを含む、集積回路上の処理システムに関し、特に、再構成可能なアレイ・プロセッサを含む集積システムに関する。
【背景技術】
【０００２】
組込みシステムとは、あるシステム全体の中で特定の目的または用途のために特に設計されたハードウェアまたはソフトウェアの何らかの組合せであり、その機能を固定することができる、またはプログラム可能とすることができる。例えば、携帯電話は、当該タイプの電話でのみ動作可能な、専らディスプレイその他の要素を制御して電力を節約するための省電力集積回路（ＩＣ―Integrated Circuit―）または「チップ」を備えることがある。
【０００３】
携帯電話は、通常は、無線のデジタル部分の機能を実行するデジタル信号処理集積回路を含む。入来信号の様々かつ／または変化する無線放送フォーマットに対応するために、プログラム可能な無線であることが望ましい。しかし、デジタル無線処理機能は、プログラム可能なハードウェア上で実施するのが通常実際的でない高いデータ・サンプリング・レート、および高い計算負荷を伴う可能性がある。
【０００４】
プログラム可能なハードウェアの能力の範囲内でこの計算負荷に対応する一般的な方法は、高いデータ転送速度かつ／または計算速度のアルゴリズムの効率的な計算専用のハードウェア加速モジュールを設計することである。これらのアクセラレータとプログラム可能なプロセッサとの間のインタフェースはいくつかの技術を用いてとることができ、これらの技術はそれぞれ、プログラム可能なプロセッサがアクセラレータの動作を制御し、アクセラレータと交換するデータをスケジュールすることができるようにするものである。例えば、汎用ＤＳＰまたはその他のホストは、そのプロセッサの命令セット内で可視であるが、コプロセッサ・インタフェースの入力ポートおよび出力ポートにマッピングされる１組の内部レジスタ・アドレスを有することができる。アクセラレータの入力および出力は、このインタフェースに接続することができ、プログラム可能プロセッサの制御下でデータを処理することができる。このようにして、汎用デバイスによって適当なデータ交換をプログラムすることができる。
【０００５】
別の方法では、プログラム可能汎用ホストまたはＤＳＰ（デジタル信号プロセッサ）により、新しい高速機能ユニットをデータ経路に挿入できるようにする。これらの機能ユニットは、階層制御装置から与えられた命令演算コードに応答して、階層制御装置によって指定されたデータ経路の構成に応じて内部レジスタ・ファイルおよびその他のユニットとデータを交換する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これらの方法は、プログラム可能プロセッサの過剰な計算負荷をうまく軽減するが、計算量の多いタスクを実行するために、プログラム可能性が制限された、またはプログラム不可能なアクセラレータを用いるものである。したがって、プログラム可能性の重要な要素が失われている。
【課題を解決するための手段】
【０００７】
本発明は、再構成可能なアクセラレータとして機能する、ホスト・プロセッサの実行処理容量を大きく超えるアレイ・プロセッサを、ホストまたは主プロセッサに一体化することに関する。このコプロセッサは処理セルの２次元アレイを含む。このコプロセッサは、それ自体と該アレイの周縁部の各セルとの間の情報経路を再構成する機構を有するインタフェース・モジュールによってホスト・プロセッサに通信可能に接続される。
【０００８】
別の態様では、本発明は、ホストまたは主プロセッサの機能ユニットに関し、該ホスト・プロセッサは超長命令語（ＶＬＩＷ―Very Long Instruction Word―）プロセッサであることが好ましく、該機能ユニットは、当該アレイの周縁部の各セルを介した当該アレイまでの情報経路を再構成できるようにするためのインタフェースを有する処理セルの２次元アレイを組み込むことが好ましい。
【０００９】
ここに開示した本発明の詳細について、図面を参照しながら以下で説明する。同じまたは同様の構成要素は、全図面を通じて同じ参照番号で示してある。
【発明を実施するための最良の形態】
【００１０】
図１は、汎用デジタル信号プロセッサ（ＤＳＰ―Digital Signal Processor―）またはマイクロ制御装置２０と、２次元アレイとして実施された、それと密接に結合されたコプロセッサ３０との間の接続構成１０の一例を示す図である。コプロセッサ３０は、ＤＳＰ２０が、特定のタイプの演算を実行するのを補助している。百万命令／秒（ＭＩＰＳ―Millions of Instructions Per Second―）で表わされることが多いコプロセッサ３０の実行速度は、ＤＳＰ２０より速い。したがって、これらのプロセッサ間で機能を分担すると、コプロセッサが高いＭＩＰＳ信号チェーンを実施することになる。コプロセッサ３０は、インタフェース・モジュール４０によって通信可能にＤＳＰ２０に接続される。ＤＳＰ２０は、メモリ・システム５０を利用する。１実施形態では、ＤＳＰ２０とそのコプロセッサ３０とが、インタフェース・モジュール４０によって直接通信する。別の実施形態では、インタフェース・モジュール４０がメモリ・システム５０に通信可能に接続されることにより、ＤＳＰ２０とコプロセッサ３０の間の通信経路、または追加の通信経路を提供する。後者の実施形態では、モジュール２０、３０、５０のうちの１つまたは複数で、プロセッサの同期が実施されることが好ましい。
【００１１】
図２は、図１に示す構成１０を組み込むように構成することができる装置の例示的な実施形態を示す図である。放送テレビ受信機またはケーブル・テレビ受信機、ローカル・エリア・ネットワーク無線受信機、あるいは携帯電話受信機などの受信機１００は、ＩＣ１０２を含む。ＩＣ１０２は、組込みアレイ・プロセッサ１０６を含む。アレイ・プロセッサとは、複数のアレイで構成されることもある、入力に作用する複数の命令を実行することができるプロセッサである。組込みアレイ・プロセッサ１０６は、２次元矩形アレイ１０８、およびアレイ１０８の４辺全てを囲むように図２では示してある機構またはインタフェース１１０を有する。２次元アレイ１０８は、複数の処理セル１１２で構成される。
【００１２】
ＩＣ１０２は、例えば、図１に示す構成１０で、アレイ１０８がアレイ３０として実施され、インタフェース１１０がインタフェース・モジュール４０に対応するという形で構成することもできる。以下で述べるように、ＩＣ１０２の実施方法としては、さらにその他の代替方法も考えられる。
【００１３】
参照によりその全ての開示を本明細書に組み込む、本願と同じ所有者の２００１年１０月１日出願の米国特許公報第２００３／００６５９０４号（以下第９０４号出願と呼ぶ）の図２に示すような「最近接［nearest neighbor］」接続アーキテクチャを実現するために、アレイ１０８内のセル間接続は、各セル１１２が同じ列のすぐ隣の行のセル１１２、および同じ行のすぐ隣の列のセル１１２のみに接続されるように行われることが好ましい。セル間接続が完全に最近接で行われるので、このアレイはスケーラブルであるという柔軟性を有する。
【００１４】
１実施形態では、インタフェース１１０は、アレイ１０８の周縁部の各処理セル１１２にそれぞれ接続された境界セル１１４を有する。各境界セル１１４は、バッファ１１６を有する。上記の周縁部は、アレイの縁部に位置する処理セル１１２、すなわち第１行、最終行、第１列および最終列のうちの少なくとも１つの処理セル１１２からなることが好ましい。最近接方式でアレイ内部のセル間接続すると、各コーナーのセル１１２では隣接するセルが２つ足りず、アレイ縁部のコーナー以外の各セル１１２では隣接するセルが１つ足りないので、足りない分はそれぞれ対応する境界セル１１４に接続される。
【００１５】
インタフェース１１０は、さらに、各境界セル１１４に対して１つずつ設けた入出力（Ｉ／Ｏ）パッド１１８と、各Ｉ／Ｏパッド１１８を対応する境界セル１１４に１対１で再構成可能に接続するクロスバー・ネットワーク１２０とを含んでいる。このような接続が行なわれるたびに、情報経路が形成される。図２には、Ｉ／Ｏパッド１１８、クロスバー・ネットワーク１２０および境界セル１１４を含む情報経路１２２が示してある。経路を再構成すると、その経路が通過する境界セル１１４またはＩ／Ｏパッド１１８、あるいはその両方が変わることになる。経路１２４は、経路１１２を再構成して、異なる境界セル１１４を通過するようにしたものである。あるいは、クロスバー・ネットワークを用いるのではなく、各境界セルの局所選択機構によって、再構成可能な経路指定を実施することもできる。
【００１６】
好ましい実施形態では、アレイ・プロセッサ１０６は、入力オペランドのアセンブリ・ラインになぞらえることができる専用システムであるシストリック［systolic―収縮―］処理アレイであるが、演算は、通常は完全に直線的に進むのではなく、様々な方向に進行する。２次元アレイ状の処理セルでは、様々なセルが様々な数学演算をデータに対して実行しているが、データは系統的な一定の手順で１つのセルから別のセルへ進む。シストリック・アレイの一例としては、行列の乗算を行うアレイが挙げられる。ある行の要素をある列の対応する要素に掛け、それらの積を合計して和の順序列［ordered column］を生成する。実行する演算を並列に配列することによって効率が向上し、これにより最少のクロック・サイクルで結果が得られる。第９０４号出願では、３２タップ実有限インパルス応答（ＦＩＲ―Finite Impulse Response―）フィルタを実施するシストリック処理アレイの別の例を提供する。このフィルタは、２次元またはその他の形のその他のレベルを、最初の２次元アレイに連結し、境界セルが各レベルの周縁部の処理セルに接続されるようにすることによって機能が強化されている。このような境界セル１１４に接続された機能強化したアレイも、本発明の所期の範囲内に含まれる。
【００１７】
１実施形態では、境界セル１１４は、アレイ１０８に入力を供給するだけでなく、アレイによる処理の結果をＩ／Ｏパッド１１８に供給する。境界セル１１４は、これらの結果を、それらを生成した隣接している処理セル１１２から受け取る。任意選択で、境界セル１１４は、これらの結果の妥当性検査を行い、ＤＳＰ２０などの外部プロセスにデータ有効信号を出力することもできる。
【００１８】
好ましい実施形態では、ＩＣ１０２は、メモリ・システム５０の中などにメモリを含み、このメモリから、対応する処理セル１１２にバス１１３を介してアレイ・プログラムをダウンロードする。このメモリは、受信機１００の外部のアレイ・ジェネレータが行うように更新したアレイ・プログラムを提供することができるように、ランダム・アクセス・メモリ（ＲＡＭ）、またはその他の書込み可能記憶装置であることが好ましい。
【００１９】
外部プロセッサにすることもできるシステム制御装置は、第９０４号出願の図１６に示すランダム・アクセス構成バスなどの構成バスを介して、アレイ・プログラムを組込みアレイ・プロセッサ１０６のマスタ・セル１２６に渡す。その全ての開示を本明細書に組み込む、Ｐｈｉｌｉｐｓ［登録商標］の開示７０３３６６に基づく「データフロー／同期化・埋め込みフィールド・プログラマブル・プロセッサ・アレイ［DATAFLOW-SYNCHRONIZED EMBEDDED FIELD PROGRAMMABLE PROCESSOR ARRAY」と題する、本願と所有者が同じである係属中の特許出願（以下、「ＥＦＰＰＡ出願」と呼ぶ）で論じられているように、マスタ・セル１２６は、システムの初期化が行なわれたときまたは再構成が行なわれたとき、例えば処理アレイ１０６の新しいアルゴリズムが実装されたときに、適当な処理セル１１２にアレイ・プログラムを転送する。シストリック・システムでは本質的に並列処理が行われるので、処理セル１１２のいくつかが同じプログラムを受け取ることがある。同じプログラムは、例えば、図２に示すサブセット１１５など、処理セル１１２のサブセットにダウンロードすることができる。ＥＦＰＰＡ出願には、さらに、境界セルおよびマスタ・セルによる処理、ならびにカーン［Kahn］プロセス・ネットワークを用いた好ましい実施態様についても記載されている。
【００２０】
アレイ・プロセッサ１０６は、入力オペランドをアレイ１０８に供給する経路に沿った入力オペランドの流れに基づくタイミングで数学演算を実行する。
【００２１】
アレイ・プログラムは、ＩＣ１０２上のＲＡＭにダウンロードされ、その後各処理セル１１２にダウンロードされるコードの編集および表示を行うことができるグラフィカル・ユーザ・インタフェース（ＧＵＩ―Graphical User Interface―）を用いて準備することができる。
【００２２】
図２の組込みアレイ・プロセッサ１０６の代替の例示的な実施態様３００において、図３は、ホストＶＬＩＷプロセッサ３０２を、「回路内」プログラム可能型のＥＦＰＰＡ３０４の構成要素として示している。ＥＦＰＰＡ３０４は、受信機３０８内に含まれるＩＣ３０６上に実装される。ホストＶＬＩＷプロセッサ３０２は、チップ開発プラットフォーム［chip development platform］３０９、特にプラットフォーム３０９内のアレイ・プログラム・ジェネレータ３１０およびコンパイラ３１２に接続される。アレイ・プログラム・ジェネレータ３１０は、さらに、プラットフォーム３０９のグラフィカル・ユーザ・インタフェース３１４にも接続される。
【００２３】
ＶＬＩＷプロセッサ３０２は、命令メモリ３１６、命令発行レジスタ３１８、および共用マルチポート・レジスタ・ファイル３２０を含む。また、複数の機能ユニットが、プロセッサ３０２に含まれ、対応する発行スロットにおいてファイル３２０およびレジスタ３１８の両方に接続されている。このＶＬＩＷアーキテクチャの詳細は、参照によりその全ての開示を本明細書に組み込む、１９９９年１０月２６日出願の、本願と同じ所有者の米国特許第５，９７４，５３７号（以下、第５３７号特許と呼ぶ）に記載されている。機能ユニット３２２は、例えば、ＩＣ３０６がＩＣ１０２に対応し、受信機３０８が受信機１００に対応するものとして、本願の図２の組込みアレイ・プロセッサ１０６として実施することができる。第５３７号特許では、機能ユニット３２２は浮動小数点命令を実行するが、ユニット３２２はいかなる特定のタイプの処理にも限定されない。例えば、第９０４号出願では、２次元アレイを開示して、チャネル復号およびその他の用途に有用な有限インパルス応答（ＦＩＲ）フィルタリングおよび高速フーリエ変換（ＦＦＴ’ｓ）を実行している。
【００２４】
図４は、図３のアレイ・プロセッサ３２２で実行されるプログラムの初期化および更新の例示的な処理の流れを示す図である。システム初期化時には各処理セル１１２に対するアレイ・プログラムがアレイ・プログラム・ジェネレータ３１０によって生成され（ステップ４０２）、ＩＣ３０６上のＲＡＭ３２４にダウンロードされる（ステップ４０４）。その後、システム制御装置（図示せず）が、これらのアレイ・プログラムをマスタ・セル１２６にダウンロードし、マスタ・セルがこれらのアレイ・プログラムを対応するアレイ・セル１１２に分配する。したがって、マスタ・セル１２６は、複数のアレイ・プログラムを、対応する所定の処理セル１１２のサブセットに送信し、１つまたは複数のセルからなる各サブセットの全てのセルは同じアレイ・プログラムを受信する。
【００２５】
チップ開発プラットフォーム３０９のユーザがＧＵＩ３１４を対話式に利用して、またアレイ・プログラム・ジェネレータ３１０を用いるなどして、アレイ・プログラムを更新する（ステップ４０６、４０８）と、プログラムの変更が、機能ユニット３２２の入力および／または出力のタイミングに影響を及ぼすことがある。コンパイラ３１２は、ＶＬＩＷ命令を形成する際のスケジューリングのために、このタイミングの変化を知る必要がある。したがって、アレイ・プログラム・ジェネレータ３１０は、このＩ／Ｏタイミング・データを更新し、これをコンパイラ３１２に送信する（ステップ４１０）。更新されたアレイ・プログラムは、システム初期化に関連して上述したように、ダウンロードされる（ステップ４１２）。アレイ・プログラム・ジェネレータ３１０は、プログラムの変更がインタフェース１１０の定常状態接続パターンに影響を及ぼすかどうかを判定する。定常状態パターンは、例えば、どのＩ／Ｏパッド１１８が数学演算のどの段階でどの境界セル１１４に接続されるかを規定する。すなわち、数学演算は、演算の複数の段階においてアレイ周縁部で入力オペランドを受け取ることができる。プログラム更新によって定常状態パターンが変化した（ステップ４１４）場合には、アレイ・プログラム・ジェネレータ３１０は、再構成信号を機能ユニット３２２に送信する（ステップ４１６）。好ましくは、この信号はマスタ・セル１２６で受信され、その後、マスタ・セル１２６がクロスバー・スイッチ１２０における所要の接続タイミングを実施する。
【００２６】
図３に示すＶＬＩＷプロセッサ３０２に関連してアレイ・プログラムの機能について述べたが、この機能は、タイミング・データ・プロトコルを除けば、図１のコプロセッサ構成１０にも当てはまる。実際には、コプロセッサがＶＬＩＷプロセッサとして実施される場合には、タイミング・データ・プロトコルについても当てはまる。
【００２７】
本発明の好ましい実施形態であると考えられる事項について図示および説明したが、言うまでもなく、本発明の趣旨を逸脱することなく形態または詳細の様々な修正および変更を容易に行うことができることは理解されるであろう。例えば、代替の実施態様では、システム制御装置１０４およびＲＡＭを、組込みアレイ・プロセッサ１０６内部に配置することもできる。したがって、本発明は、説明し図示した形態のみに限定されるものではなく、添付の特許請求の範囲に含まれる全ての修正形態をカバーするように構築すべきものとする。
【図面の簡単な説明】
【００２８】
【図１】本発明によるプロセッサ／コプロセッサ構成を示すブロック図である。
【図２】本発明による組込みアレイ・プロセッサを有するデバイスの一例を示す概略図である。
【図３】ＶＬＩＷプロセッサ内の機能ユニットとして実施した図２のアレイ・プロセッサを示すブロック図である。
【図４】図３のアレイ・プロセッサ上で実行されるプログラムの初期化および更新を行う処理の流れの一例を示す１組の流れ図である。
【図１】
2006510129.tif 000003
【図２】
2006510129.tif 000004
【図３】
2006510129.tif 000005
【図４】
2006510129.tif 000006
【国際調査報告】
2006510129.tif 000007
2006510129.tif 000008
2006510129.tif 000009
2006510129.tif 000010