(57)【要約】組込みフィールド・プログラマブル・プロセッサは、オペランドの流入によって決まるタイミングで数学演算を実行する処理セルの２次元アレイを含む。アレイ・インタフェースは、流入経路を、アレイ周縁部の各セルに再構成可能に接続する。このアレイは、シストリック型であることが好ましく、最近接セル間接続で実施されることが好ましい。
2006510128.tif 000002
【特許請求の範囲】
【請求項１】
集積回路上のプロセッサであって、処理セルの２次元アレイと、前記アレイまでの複数の経路を前記アレイの周縁部に位置するそれぞれのセルに再構成可能に接続する機構とを有し、前記経路に沿った入力オペランドの流れに基づくタイミングで数学演算を実行するプロセッサ。
【請求項２】
前記アレイがシストリック処理アレイを含む、請求項１に記載のプロセッサ。
【請求項３】
前記集積回路が、前記プロセッサと通信可能に接続されたアナログ回路をさらに含む、請求項１に記載のプロセッサ。
【請求項４】
請求項３に記載の集積回路を含む受信機。
【請求項５】
前記アレイ内のセル間接続が、前記アレイの各セルが、同じ列のすぐ隣の行のセル、および同じ行のすぐ隣の列のセルにのみ接続されるように行われる、請求項１に記載のプロセッサ。
【請求項６】
前記複数の経路のそれぞれに沿ってプロセッサの入出力パッドをさらに含む、請求項１に記載のプロセッサ。
【請求項７】
前記経路のそれぞれに沿って１つまたは複数のプロセッサの入出力パッドをさらに含み、前記集積回路が、アナログ回路、デジタル回路、ならびにアナログ回路からデジタル回路への信号経路と、前記１つまたは複数の入出力パッドにつながる、またはそこから出る信号経路とを切り替えるように構成された再構成可能なスイッチによってデジタル回路に接続されたアナログ・デジタル変換器を、前記プロセッサと通信可能に接続された状態で含む、請求項１に記載のプロセッサ。
【請求項８】
経路の再構成によって、当該経路が、異なる境界セルおよび異なるＩ／Ｏパッドの少なくとも一方を通るように、各経路が、前記複数のセルの対応する１つに接続された境界セルを通ることを引き起こす、前記請求項１に記載のプロセッサ。
【請求項９】
前記機構が、クロスバー・ネットワークを含む、請求項１に記載のプロセッサ。
【請求項１０】
前記複数の経路が、前記複数のセルに１対１で接続される、請求項１に記載のプロセッサ。
【請求項１１】
前記入力オペランドが、前記アレイに到着する前にそれぞれの経路上でバッファリングされ、前記実行が、既定の経路サブセットの各経路において、１以上の対応する所定数のオペランドがバッファリングされるまで開始されない、請求項１０に記載のプロセッサ。
【請求項１２】
前記入力オペランドが、前記アレイに到着する前にそれぞれの経路上でバッファリングされ、前記実行が、既定の経路サブセットの各経路においてバッファリングされた１よりも多い対応する所定数のオペランドが有効であることが判明するまで開始されない、請求項１０に記載のプロセッサ。
【請求項１３】
それによりアレイ・セルがプログラム可能となる、アレイ・セルが接続されるバスをさらに含む、請求項１２に記載のプロセッサ。
【請求項１４】
前記バス上に、アレイ・セルを再プログラミングするマスタ・セルをさらに含む、請求項１３に記載のプロセッサ。
【請求項１５】
前記マスタ・セルが前記実行を開始する、請求項１４に記載のプロセッサ。
【請求項１６】
アレイ・セルがプログラム可能となる、アレイ・セルが接続されるバスをさらに含む、請求項１に記載のプロセッサ。
【請求項１７】
前記２次元アレイを含むアレイ・プロセッサを含む、請求項１に記載のプロセッサ。
【請求項１８】
前記アレイが矩形であり、前記周縁部が、前記アレイの第１行、最終行、第１列および最終列の少なくとも１つに位置する前記処理セルからなる、請求項１に記載のプロセッサ。
【請求項１９】
前記複数の経路が、前記バッファのうちの１つが一杯である場合に、プロセスによる該バッファへの書込みを停止するように実施されたカーン・プロセス・ネットワークとして構成された先入れ先出し（ＦＩＦＯ）バッファを含む、請求項１に記載のプロセッサ。
【請求項２０】
処理セルの２次元アレイと、前記アレイまでの複数の経路を前記アレイの周縁部に位置するそれぞれのセルに再構成可能に接続する機構とを有するプロセッサを、集積回路上に設けるステップ、ならびに
前記プロセッサを利用して、前記経路に沿った入力オペランドの流れに基づくタイミングで数学演算を実行するステップを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリコンなどの半導体材料に実装されたもののような、集積回路に組み込まれたアレイ・プロセッサに関し、特に、再構成可能な組込みアレイ・プロセッサに関する。
【背景技術】
【０００２】
組込みシステムは、あるシステム全体の中で特定の目的または用途のために特に設計されたハードウェアまたはソフトウェアの何らかの組合せであり、その機能を固定することができる、またはプログラム可能とすることができる。例えば、携帯電話は、当該タイプの電話でのみ動作可能な、専らディスプレイその他の要素を制御して電力を節約するための省電力集積回路（ＩＣ）または「チップ」を備えることがある。
【０００３】
携帯電話は、通常は、無線のデジタル部分の機能を実行するデジタル信号処理集積回路を含む。到来信号の様々および／または変化する無線放送フォーマットに対応するために、プログラム可能な無線であることが望ましいことになる。しかし、デジタル無線処理機能は、プログラム可能なハードウェア上で実施するのが通常実際的でない高いデータ・サンプリング・レート、および高い計算負荷を伴う可能性がある。
【０００４】
組込みフィールド・プログラマブル・ゲート・アレイ（ＥＦＰＧＡ）は、現場でプログラムし、シリコン・チップに一体化することができる「チップ・マクロ（ｃｈｉｐ  ｍａｃｒｏ）」であり、限られた数の製造元からしか入手することができない。これらの専用プロセッサは、高速で動作し、必要なハードウェアの量を最小限に抑え、ソフトウェアの開発プログラミング時間を最小限に抑える。ＥＦＰＧＡでは「ポスト・シリコン」再構成が可能であるが、設計密度が低く、特にデジタル無線の高速復調機能ではクロック速度が予測不可能である。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は、処理セルの２次元アレイ、および信号処理回路と該アレイの周縁部の各セルとの間の経路を再構成可能に接続する機構からなる組込みプロセッサに向けられる。プロセッサは、データフロー制御下で数学演算を実行し、それにより同じ制御モード下で動作する信号処理回路内に容易に一体化される。本発明によれば、集積回路の信号処理動作を、現場で再構成することができる。
【０００６】
ここに開示した本発明の詳細について、図面を援用しながら以下で説明する。同じまたは同様の構成要素は、全図面を通じて同じ参照番号で示してある。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明による装置の例示的な実施形態を示す図である。放送テレビ受信機またはケーブル・テレビ受信機、ローカル・エリア・ネットワーク無線受信機、あるいは携帯電話受信機などの受信機１００は、ＩＣ１０２を含む。ＩＣ１０２は、システム制御装置１０４および組込みアレイ・プロセッサ１０６を含む。アレイ・プロセッサは、複数のアレイで構成されることもある、入力に作用する複数の命令を実行することができるプロセッサである。組込みアレイ・プロセッサ１０６は、２次元矩形アレイ１０８、およびアレイ１０８の４辺全てを囲むように図１では示してある機構またはインタフェース１１０を有する。２次元アレイ１０８は、複数の処理セル１１２で構成される。
【０００８】
参照によりその全ての開示を本明細書に組み込む、本願と同じ所有者の２００１年１０月１日出願の米国特許公報第２００３／００６５９０４号（以下第９０４号出願と呼ぶ）の図２に示すような「最近接（ｎｅａｒｅｓｔ  ｎｅｉｇｈｂｏｒ）」接続アーキテクチャを実現するために、アレイ１０８内のセル間接続は、各セル１１２が同じ列のすぐ隣の行のセル１１２、および同じ行のすぐ隣の列のセル１１２のみに接続されるように行われることが好ましい。セル間接続が完全に最近接で行われるので、このアレイはスケーラブルであるという柔軟性を有する。
【０００９】
インタフェース１１０は、アレイ１０８の周縁部の各処理セル１１２にそれぞれ接続された境界セル１１４を有し、各境界セル１１４は、バッファ１１６を有する。上記の周縁部は、アレイの縁部に位置する処理セル１１２、すなわち第１行、最終行、第１列および最終列のうちの少なくとも１つに位置する処理セル１１２からなることが好ましい。最近接方式でアレイ内部のセル間接続を行うと、各コーナーのセル１１２では隣接するセルが２つ足りず、コーナー以外のアレイ縁部に位置する各セル１１２では隣接するセルが１つ足りないので、足りない分の接続はそれぞれ対応する境界セル１１４に対して行われる。
【００１０】
インタフェース１１０はさらに、各境界セル１１４に対して１つずつ設けた入出力（Ｉ／Ｏ）パッド１１８と、各Ｉ／Ｏパッド１１８を対応する境界セル１１４に１対１で再構成可能に接続するクロスバー・ネットワーク１２０とを含む。このような接続が行われるたびに、情報経路が形成される。図１には、Ｉ／Ｏパッド１１８、クロスバー・ネットワーク１２０および境界セル１１４を含む情報経路１２２が示してある。経路を再構成すると、その経路が、異なる境界セル１１４または異なるＩ／Ｏパッド１１８、あるいはその両方を通過することを引き起こす。経路１２４は、経路１１２を再構成して、異なる境界セル１１４を通過するようにしたものである。
【００１１】
好ましい実施形態では、アレイ・プロセッサ１０６は、入力オペランドのアセンブリ・ラインになぞらえることができる専用システムであるシストリック（ｓｙｓｔｏｌｉｃ）処理アレイであるが、演算は、通常は完全に直線的に進むのではなく、様々な方向に進行する。２次元アレイ状の処理セルでは、様々なセルが様々な数学演算をデータに対して実行するが、データは系統的な一定の手順で１つのセルから別のセルへと進行する。シストリック・アレイの一例としては、行列の乗算を行うアレイが挙げられる。ある行の要素をある列の対応する要素に掛け、それらの積を合計して和の順序列（ｏｒｄｅｒｅｄ  ｃｏｌｕｍｎ）を生成する。実行する演算を並列に配列することによって効率が向上し、これにより最少のクロック・サイクルで結果が得られる。第９０４号出願では、３２タップ実有限インパルス応答（ＦＩＲ）フィルタを実施するシストリック処理アレイの別の例を提供する。このフィルタは、２次元またはその他の形のその他のレベルを、最初の２次元アレイに連結（コンカチネイト）し、境界セルが各レベルの周縁部の処理セルに接続されるようにすることによって機能が強化されている。このような境界セル１１４に接続された機能強化したアレイも、本発明の所期の範囲内に含まれる。
【００１２】
一実施形態では、境界セル１１４は、単にアレイ１０８に入力を供給するだけでなく、アレイによる処理の結果をＩ／Ｏパッド１１８に供給する。境界セル１１４は、これらの結果を、それらの結果を生成した隣接している処理セル１１２から受け取る。任意選択で、境界セル１１４は、これらの結果の妥当性検査を行い、外部プロセスにデータ有効信号を出力することもできる。
【００１３】
好ましい実施形態では、ＩＣ１０２はメモリを含み、アレイ・プログラムは、このメモリから対応する処理セル１１２に対してバスを介してダウンロードされる。このメモリは、受信機１００の外部のアレイ・ジェネレータが行うように更新したアレイ・プログラムを提供することができるように、ランダム・アクセス・メモリ（ＲＡＭ）、またはその他の書込み可能記憶装置であることが好ましい。
【００１４】
システム制御装置１０４は、第９０４号出願の図１６に示すランダム・アクセス構成バスなどの構成バスを介して、アレイ・プログラムを組込みアレイ・プロセッサ１０６のマスタ・セル１２６に渡す。図２を参照すると、マスタ・セル１２６は、システムの初期化が行われたとき、または再構成が行われたとき、例えば処理アレイ１０６の新しいアルゴリズムが実装されたとき（ステップ２０４）に、適当な処理セル１１２にアレイ・プログラムを転送する（ステップ２０２）。シストリック処理では本質的に並列処理が行われるので、処理セル１１２のいくつかが同じプログラムを受け取ることがある。代替の実施態様では、システム制御装置１０４およびＲＡＭを、組込みアレイ・プロセッサ１０６の内部に配置することもできる。
【００１５】
さらに、図２には、アレイ１０８への例示的なデータフローも示してある。新しいオペランドがＩ／Ｏパッド１１８で受信されると、引き続き、このオペランドは、そのオペランドの妥当性検査（ステップ２０８）を行う対応する境界セル１１４に対してクロスバー・ネットワーク１２０によって方向付けられた（ステップ２０６）経路を流れる。無効である場合には、受信機１００のユーザに対する通知を含むこともあるエラー処理が行われ（ステップ２１２）、組込みアレイ・プロセッサ１０６を用いてＩＣアプリケーションから新しいオペランドが要求される（ステップ２１６）。あるいは、順方向誤り訂正技術を適用して、欠陥のあるオペランドを修正することもできる。さらに別法として、妥当性検査をこれよりも上流側で、境界セル１１４によるバッファリングの前に実行することもできる。図２に示す実施形態では、有効なオペランドはバッファ１１６に追加され（ステップ２１４）、カウンタ（図示せず）が増分される（ステップ２１６）。好ましくは、バッファ・セル１１６は、バッファ１１６が一杯であるときには、例えば対応するＩ／Ｏパッド１２８を介して当該プロセッサに向かうよう経路指定される停止（ストール）命令を発行することなどにより、当該新しいオペランドを提供するプロセッサを停止（ストール）するように実装される。その後、バッファリング解除された（ｄｅ−ｂｕｆｆｅｒｅｄ）オペランドがあったときに、プロセッサに対して再開命令が発行される。あるいは、新しいオペランドの流入に確実に対応できるように、最初から十分なバッファ・スペースを確保しておいてもよい。ステップ２１８では、所定数の入力オペランドに対応するパラメータを、バッファ・カウントと比較する。パラメータは境界セル１１４によって異なることがあり、好ましくはプログラム可能である。バッファは、例えば環状バッファや円形バッファなどであり、ソフトウェアとして実施されることが好ましい。あるいは、単純な先入れ先出し（ＦＩＦＯ）バッファを利用することもできる。
【００１６】
バッファ・カウントがパラメータ以上である場合には、トリガが作動する。例えば、境界セル１１４がマスタ・セル１２６に信号を送る（ステップ２２０）。バッファ・カウントがパラメータ未満である場合には、制御はループの最初に戻り（ステップ２０６）、新しいオペランドを待機する。
【００１７】
アレイ１０８が使用するためにバッファからオペランドが読み出されると（ステップ２２２）、カウンタは減分される（ステップ２２４）。
【００１８】
ダウンロードしたアレイ・プログラムを分配するというマスタ・セル１２６の役割については上記で述べたが、マスタ・セル１２６には、オペランドの流入に基づいてアレイの動作を指揮するというもう１つの役割がある。アレイ１０８で実行すべき新しい動作、または現在の動作の新しい段階が生じると、バッファリングされた入力オペランドが必要となることがある。必要な処理セル１１２がアイドル状態である（ステップ２２６）ときには、マスタ・セル１２６は、活動状態の全ての境界セル１１４、すなわちアレイ周縁部にある必要な処理セルのすぐ隣に位置する境界セルからトリガを受信したかどうかを確認する（ステップ２２８）。全てのトリガが既に受信済みである場合、または全てのトリガの受信が行われると、バッファからオペランドが読み出され、新しい動作または段階が開始され、それらのトリガがリセットされる（ステップ２３０）。
【００１９】
上記の境界セル／マスタ・セル・プロトコルによれば、アレイ・プロセッサ１０６は、入力オペランドをアレイ１０８に供給する経路に沿った当該入力オペランドの流れに基づくタイミングで、数学演算を実行する。
【００２０】
好ましい実施形態では、ステップ２１８のパラメータはゼロに設定される。したがって、実際には、カーン（Ｋａｈｎ）プロセス・ネットワークが実施される。このネットワークでは、複数のプロセッサが、複数の先入れ先出し（ＦＩＦＯ）バッファを有する複数のチャネルによって相互接続される。１つのプロセッサは、ＦＩＦＯチャネルにデータを送信するか、あるいはＦＩＦＯチャネルからデータを受信するか、いずれか一方を行うことができる。プロセッサが読出しを要求しているが、入手できるデータが存在しない場合には、データが入手可能になるまで、そのプロセッサは停止（ストール）する。純粋なカーン・プロセス・ネットワークでは、無数の書込み動作に対応できるだけの十分なバッファ・スペースが設けられる。この実施態様では、プロセッサがＦＩＦＯチャネルに書込みを行ったが、そのＦＩＦＯチャネルが一杯であった場合に、書き込むためのスペースができるまでそのプロセッサが停止（ストール）するように、書込みが制限されることが好ましい。
【００２１】
本発明の一例として、ＩＣ１０２上のその他のプロセッサが、組込みアレイ・プロセッサ１０６とともに、書込みを制限した、すなわちバッファが一杯であるときには書込みを停止（ストール）するカーン・プロセス・ネットワークを構成することもできる。各バッファ１１４は、１対のＦＩＦＯとして実施される。
【００２２】
この好ましい実施形態では、ステップ２１６を残しておき、バッファ１１４がいつ一杯になるか、すなわちどの時点で、入力オペランドを提供しているプロセッサに対して上述の停止（ストール）命令を発行することが好ましいかを検出することができる。ステップ２１６を残しておくと、境界セルのカウンタ減分プロセス（ステップ２２２、２２４）も残ることになり、バッファリング解除されたオペランドがあったときに再開命令が発行されることになる。
【００２３】
アレイ・プログラムは、ＩＣ１０２上のＲＡＭにダウンロードされ、その後各プログラミング・セル１１２にダウンロードされるコードの編集および表示を行うことができるグラフィカル・ユーザ・インタフェース（ＧＵＩ）を使用して準備することもできる。
【００２４】
組込みアレイ・プロセッサ１０６は、ＦＰＧＡをシステム・オン・チップ（ＳｏＣ）内に組み込むのと同様の方法で統合を行う場合に特に有用である。境界セルを利用したインタフェース１１０により、統合が簡単になり、ＥＦＰＧＡに固有のハードウェア設計フロー特性の代わりに簡単なソフトウェア・プログラミング・フローが可能になる。
【００２５】
図３に例示的に示すように、組込みアレイ・プロセッサ１０６は、デジタル回路３０２と場合によってはアナログ回路３０４とを含むチップ１０２上の汎用システムと一体化して、このシステム内で再構成可能にすることができる。デジタル回路は、設計の固定された複数のデジタル回路モジュール３０６で構成することができる。１つのモジュール３０６は、システム制御装置１０４として機能することができる。モジュール３０６は、経路指定スイッチ３０８で相互接続されたピンを有し、経路指定スイッチ３０８は、通常は、１つのデジタル回路モジュール３０６の出力を別のデジタル回路モジュール３０６の入力に接続する。経路指定スイッチ３０８は、２つのモジュール３０６の間の接続を代替の入出力コネクタ対３１０で置き換えて、当該２つのモジュール３０６の一方または両方からの接続を組込みアレイ・プロセッサ１０６の各ピン１２８へ切り替えることもできる。１つまたは複数のアナログ・デジタル変換器３１４を用いてデジタル回路をアナログ回路３０４と一体化して、アナログ回路出力３０４からのアナログ信号を、デジタル回路モジュール３０６に経路指定および接続されるデジタル信号に変換することもできる。同様にして、アナログ回路３０４に対するデジタル回路の出力を、デジタル・アナログ変換器３１６によってデジタル・サンプルからアナログ信号に変換することもできる。また、変換器３１４とデジタル回路３０２の間に経路指定スイッチ３１８を配置して、プロセッサ１０６との接続を切り替え可能にすることもできる。特に、入出力コネクタ対３２０により、アナログ回路からデジタル回路への信号経路と、前記１つまたは複数の入出力パッドへの、またはそこからの信号経路との間の切り替えが可能になる。同様に、デジタル・アナログ変換器３１６とデジタル回路３０２の間に、経路指定スイッチ３２２を配置することもできる。経路指定スイッチ３０８、３１８および３２２と、プロセッサ１０６の再構成可能インタフェース１１０とが組み合わさって、１つまたは複数のデータフロー駆動型信号処理機能を備えたアナログ回路３０４およびデジタル回路３０２をアレイ・プロセッサ３０７に提供し、これらの機能をデジタル回路のチェーンに挿入する。同様にして、データフロー駆動型信号処理機能をアレイ・プロセッサ３０７にプログラムし、これらの機能をアナログ回路３０１に挿入することも可能である。図３から分かるように、プロセッサ・アレイ１０６は、チップ上の複数の不均一並列処理要素とインタフェースで接続することができる。本発明の所期の範囲は、図示の構成に限定されず、例えば、代替かつ／または追加の集積回路素子間接続を含むこともできる。
【００２６】
本発明の好ましい実施形態であると考えられる事項について図示および説明したが、言うまでもなく、本発明の趣旨を逸脱することなく形態または詳細の様々な修正および変更を容易に行うことができることは理解されるであろう。例えば、クロスバー・ネットワークではなく各境界セルの局所選択機構によって、再構成可能な経路指定を行うことができる。したがって、本発明は、説明し図示した形態のみに限定されるものではなく、添付の特許請求の範囲に含まれる全ての修正形態をカバーするように構築すべきものとする。
【図面の簡単な説明】
【００２７】
【図１】本発明による組込みアレイ・プロセッサを有するデバイスの一例を示す図である。
【図２】図１に示すアレイ・プロセッサを制御する際の処理の例示的な流れを示す図である。
【図３】本発明による組込みアレイ・プロセッサを用いたチップ上の混成信号システムの一例を示す図である。
【図１】
2006510128.tif 000003
【図２】
2006510128.tif 000004
【図３】
2006510128.tif 000005
【国際調査報告】
2006510128.tif 000006
2006510128.tif 000007
2006510128.tif 000008