(57)【要約】      （修正有）【課題】高速処理が可能で、製造コストが安価な再構成可能マルチプロセッサを提供する。【解決手段】複数のプログラム可能なハードウェアのメモリアルゴリズムプロセッサ１１２（「ＭＡＰ」）をメモリサブシステム１２０に組込む。各ＭＡＰは、ユーザ定義可能なアルゴリズムを実行するためにすべてのシステムプロセッサによってグローバルにアクセス可能である。ＭＡＰはプリロードされたアルゴリズムの１つを選択できるようにし、システム再構成時間を減少させる。ＭＡＰは、ダイレクトメモリアクセス（「ＤＭＡ」）モードで機能することができ、ある装置が結果を直接に別の装置に送って、ユーザ定義のアルゴリズムの実行をパイプライン化または並列化することが可能である。【選択図】図３
2010102719.tif 000002
【特許請求の範囲】
【請求項１】
プログラム命令に従ってユーザデータを演算するための少なくとも１つのデータプロセッサを含むコンピュータであって、前記コンピュータは、データおよびアドレスバスを与える少なくとも１つのメモリアレイをさらに含み、前記コンピュータは、 前記メモリアレイに関連付けられ前記データバスおよびアドレスバスに結合されるメモリアルゴリズムプロセッサを含み、前記メモリアルゴリズムプロセッサは、少なくとも１つの特定のアルゴリズムを前記メモリアレイへの書込動作から受取られるオペランドに対して実行するよう構成可能である、コンピュータ。
【請求項２】
前記メモリアルゴリズムプロセッサは、フィールドプログラマブルゲートアレイを含む、請求項１に記載のコンピュータ。
【請求項３】
前記メモリアルゴリズムプロセッサは、前記プロセッサと独立して前記メモリアレイにアクセスするように動作する、請求項１に記載のコンピュータ。
【請求項４】
前記少なくとも１つの特定のアルゴリズムは、前記メモリアルゴリズムプロセッサに予めプログラムされる、請求項１に記載のコンピュータ。
【請求項５】
前記少なくとも１つの特定のアルゴリズムは、前記メモリアルゴリズムプロセッサに関連付けられるメモリ装置に予めプログラムされる、請求項４に記載のコンピュータ。
【請求項６】
前記メモリ装置は、少なくとも１つの読出専用メモリ装置を含む、請求項５に記載のコンピュータ。
【請求項７】
第１の複数個の前記データプロセッサおよび第２の複数個の前記メモリアレイをさらに含み、前記メモリアレイの各々は関連付けられたメモリアルゴリズムプロセッサを含む、請求項１に記載のコンピュータ。
【請求項８】
前記第２の複数個の前記メモリアレイのうちの第１の１つに関連付けられるメモリアルゴリズムプロセッサは、処理されたオペランドの結果を前記第２の複数個の前記メモリアレイのうちの第２の１つに関連付けられる別のメモリアルゴリズムプロセッサに送るように動作する、請求項７に記載のコンピュータ。
【請求項９】
前記メモリアルゴリズムプロセッサはさらに、 前記アドレスバスに結合されるコマンドデコーダと前記コマンドデコーダに結合されるカウンタとを含む制御ブロックを含み、前記コマンドデコーダは、前記少なくとも１つのプロセッサのオペレーティングシステムからの最終オペランドコマンドに応答して前記カウンタに最終オペランドフラグを与える、請求項１に記載のコンピュータ。
【請求項１０】
前記メモリアルゴリズムプロセッサはさらに、 パイプライン深さ信号および前記カウンタの出力を受取るために結合されてパイプライン空フラグを少なくとも１つのステータスレジスタに与える一致コンパレータを含む、請求項９に記載のコンピュータ。
【請求項１１】
前記ステータスレジスタは、前記コマンドデコーダに結合され、レジスタ制御信号およびステータス信号を受取ってステータスワード出力信号を与える、請求項１０に記載のコンピュータ。
【請求項１２】
プログラム命令に従ってユーザデータを演算するための第１の複数個のデータプロセッサおよび第２の複数個のメモリアレイを含み、各々がデータおよびアドレスバスを与える、マルチプロセッサコンピュータであって、前記コンピュータは、 少なくとも１つの前記第２の複数個のメモリアレイに関連付けられ前記データおよびアドレスバスに結合されるメモリアルゴリズムプロセッサを含み、前記メモリアルゴリズムプロセッサは、前記第２の複数個のメモリアレイの前記関連付けられた１つへの書込動作から受取られるオペランドに対して前記少なくとも１つの特定のアルゴリズムを実行するように構成可能である、マルチプロセッサコンピュータ。
【請求項１３】
前記第２の複数個のメモリアレイの１つに関連付けられる前記メモリアルゴリズムプロセッサは、前記第１の複数個のデータプロセッサの１つ以上によってアクセス可能である、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項１４】
前記第２の複数個のメモリアレイの１つに関連付けられる前記メモリアルゴリズムプロセッサは、前記第１の複数個のデータプロセッサのすべてによってアクセス可能である、請求項１３に記載のマルチプロセッサコンピュータ。
【請求項１５】
前記メモリアルゴリズムプロセッサは、 前記メモリアルゴリズムプロセッサで処理された最終オペランドに応答して最終オペランドフラグを与えるように動作する制御ブロックを含む、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項１６】
前記メモリアルゴリズムプロセッサに関連付けられて複数のプリロードされたアルゴリズムを記憶する少なくとも１つのメモリ装置をさらに含む、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項１７】
前記少なくとも１つのメモリ装置は、予め定められたコマンドに応答して前記複数のプリロードされたアルゴリズムのうちの選択された１つが前記メモリアルゴリズムプロセッサによって実現されることを可能にする、請求項１６に記載のマルチプロセッサコンピュータ。
【請求項１８】
前記少なくとも１つのメモリ装置は、少なくとも１つの読出専用メモリ装置を含む、請求項１６に記載のマルチプロセッサコンピュータ。
【請求項１９】
前記メモリアルゴリズムプロセッサは、フィールドプログラマブルゲートアレイを含む、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項２０】
前記メモリアルゴリズムプロセッサは、通常のメモリアクセスプロトコルによってアクセス可能である、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項２１】
前記メモリアルゴリズムプロセッサは、前記第２の複数個のメモリアレイの前記関連付けられた１つへのダイレクトメモリアクセス能力を有する、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項２２】
前記第２の複数個の前記メモリアレイのうちの第１の１つに関連付けられるメモリアルゴリズムプロセッサは、処理されたオペランドの結果を前記第２の複数個の前記メモリアレイのうちの第２の１つに関連付けられる別のメモリアルゴリズムプロセッサに送るように動作する、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項２３】
前記コンピュータは、前記メモリアルゴリズムプロセッサで実行可能なアプリケーションプログラムコードの並列領域を自動的に検出するように動作する、請求項１２に記載のマルチプロセッサコンピュータ。
【請求項２４】
前記メモリアルゴリズムプロセッサは、前記アプリケーションプログラムコードによって構成可能である、請求項２３に記載のマルチプロセッサコンピュータ。
【発明の詳細な説明】
【背景技術】
【０００１】
この発明は、一般的には、複数個の処理要素を組込むコンピュータアーキテクチャの分野に関する。より特定的には、この発明は、メモリサブシステムに複数のメモリアルゴリズムプロセッサを組込み、全体的なシステム処理速度を大きく向上させるマルチプロセッサコンピュータアーキテクチャに関する。
【０００２】
汎用コンピュータはすべて、何らかの形の処理要素を有する回路を基礎としている。これは、マイクロプロセッサチップの形をとってもよく、または互いに結合されてプロセッサを形成するより小さなチップの集合であってもよい。いずれにせよ、これらのプロセッサは、１組のプログラムステップによって定義されるプログラムを実行するように設計される。これらのステップ、すなわちコマンドが、同じコンピュータハードウェアを使用して異なった結果を生じるように再構成され得るということが、コンピュータの柔軟性の鍵となる。残念ながら、この柔軟性のために、ハードウェアはさまざまな起こり得る機能を処理するように設計されなければならず、その結果、１つの特定の機能だけ処理できるように設計された場合よりも動作が一般的に遅くなってしまう。一方で、単一機能のコンピュータというのは、当然のことながら、特に用途の多いコンピュータではない。
【０００３】
最近、いくつかの団体が、電気的に再構成可能である回路からプロセッサを作るという試みを始めた。これは、プロセッサがある小さな組の機能をより迅速に実行してから、今度は異なった小さな組を実行するために電気的に再構成されることを可能とするであろう。これはいくつかのプログラム実行速度を加速するが、６４ビットの浮動小数点計算など、再構成可能な集積回路において達成可能な回路密度のために、このタイプのシステムにおいてはうまく実現され得ない機能が多くある。加えて、これらのシステムはすべて、単独で動作するプロセッサを含むことが現在の所、意図されている。高性能のシステムにおいては事情が異なる。何百または何万ものプロセッサがたったひとつの問題をタイムリーに解決するためによく用いられる。これは、オペレーティングシステムの単一のコピーの共有など、そのような再構成可能コンピュータが処理できない多くの問題を引き起こす。加えて、このタイプのカスタムハードウェアから構成される大きなシステムは、当然、製造するのが非常に高価となるであろう。
【発明の概要】
【０００４】
これらの欠点に答えて、この発明の譲受人であるコロラド州、コロラドスプリングスのエス・アール・シィ・コンピュータズ・インコーポレイテッド（SRC Computers, Inc.）は、ユーザ再構成可能ハードウェア要素と連係して非常に高性能なマイクロプロセッサを利用するメモリアルゴリズムプロセッサ（「ＭＡＰ」）マルチプロセッサコンピュータアーキテクチャを開発した。ＭＡＰと呼ばれるこれらの再構成可能要素は、システム内のすべてのプロセッサによってグローバルにアクセス可能である。加えて、ある特定のマルチプロセッサコンピュータシステムの製造コストおよび設計時間は、これが工業規格の市販の集積回路を使用して組立てられ得るために、比較的低く、ある好ましい実施例においては、各ＭＡＰは、再構成可能機能ユニットとして動作するフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）を含んでもよい。
【０００５】
ここに特に開示されるのは、マイクロプロセッサと連係してまたは密結合されてユーザ定義のアルゴリズムを実行するための１つ以上のＦＰＧＡの利用である。より特定的には、マルチプロセッサコンピュータシステムにおいては、ＦＰＧＡは、ユーザ定義可能なアルゴリズムを実行する目的のためにすべてのシステムプロセッサによってグローバルにアクセス可能である。
【０００６】
ここに開示されるこの発明の特定の実現化例では、回路は、ＦＰＧＡの中またはそれに連係して設けられ、これは最終オペランドがＭＡＰを介したそのフローを完了すると制御ビットによって合図して、所与のプロセスへの割込みとその後の再スタートとを可能にする。さらにより具体的な実施例では、１つ以上の読出専用メモリ（「ＲＯＭ」）集積回路チップを、ＦＰＧＡに近接して結合して、これによってユーザプログラムがコマンドを１つ使うだけでＲＯＭにプリロードされたいくつかの起こり得るアルゴリズムの１つを選択できるようにし、システム再構成時間を減少させることもできる。
【０００７】
さらに提供されるのは、コンピュータシステムメモリ構造であって、これは、それにアクセスするために通常のメモリアクセスプロトコルを使用する目的のために１つ以上のＦＰＧＡを含み、さらにダイレクトメモリアクセス（「ＤＭＡ」）動作が可能である。マルチプロセッサコンピュータシステムにおいて、ＤＭＡ能力を備えて構成されるＦＰＧＡは、１つの装置が結果を直接に別の装置に送ることを可能にして、再構成可能ハードウェア内に位置するユーザ定義アルゴリズムの実行をパイプライン化または並列化することを可能にする。この発明のシステムおよび方法はまた、ユーザプログラマブル性能をモニタする能力を提供し、パラレライザソフトウェアを利用して、プログラマブルハードウェアで実行され得るアルゴリズムを含むユーザアプリケーションの並列領域を自動的に検出する。
【０００８】
広くは、ここに開示されるのは、プログラム命令に従ってユーザデータを演算するための少なくとも１つのデータプロセッサを含むコンピュータである。このコンピュータは、データおよびアドレスバスを与える少なくとも１つのメモリアレイを含むものであって、メモリアレイに関連付けられデータバスおよびアドレスバスに結合されるメモリアルゴリズムプロセッサを含むことを特徴とする。メモリアルゴリズムプロセッサは、メモリアレイへの書込動作から受取られるオペランドに対して少なくとも１つの特定のアルゴリズムを実行するように構成可能である。
【０００９】
ここにまた開示されるのは、プログラム命令に従ってユーザデータを演算するための第１の複数個のデータプロセッサと各々がデータおよびアドレスバスを与える第２の複数個のメモリアレイとを含むマルチプロセッサコンピュータである。このコンピュータは、第２の複数個のメモリアレイの少なくとも１つに関連付けられそのデータおよびアドレスバスに結合される、メモリアルゴリズムプロセッサを含む。メモリアルゴリズムプロセッサは、第２の複数個のメモリアレイの関連付けられた１つへの書込動作から受取られたオペランドに対して少なくとも１つの特定のアルゴリズムを実行するように構成可能である。
【００１０】
添付図面と連係して好ましい実施例の以下の説明を参照することによって、この発明の前記および他の特徴および目的ならびにそれらを達成するための方法はより明らかとなり、この発明自体が最もよく理解される。
【発明を実施するための形態】
【００１１】
図１を参照すると、従来のマルチプロセッサコンピュータ１０アーキテクチャが示される。マルチプロセッサコンピュータ１０は、メモリ相互接続ファブリック１４と双方向に結合されるＮ個のプロセッサ１２0から１２Nを組込んでいる。次にメモリ相互接続ファブリック１４はまた、メモリバンクサブシステム１６0（バンク０）から１６M（バンクＭ）を含むＭ個のメモリバンクに結合される。
【００１２】
図２を参照すると、この発明に従った複数のメモリアルゴリズムプロセッサを組込んだマルチプロセッサコンピュータアーキテクチャ１００に対する典型的なアプリケーションプログラムのデコンポジション図が、示される。コンピュータアーキテクチャ１００は、デコンポジションの目の粗い部分では、（例のためにのみ）４つの並列領域１０２1から１０２4のうちの１つに選択的に向けられたユーザ命令およびデータに応答して動作する。並列領域１０２1から１０２4の各々から出力される命令およびデータはそれぞれ、データ領域１０４1から１０４4と命令領域１０６1から１０６4とに分けられた並列領域に入力される。データ領域１０４1から１０４4に維持されるデータおよび命令領域１０６1から１０６4に維持される命令は次に、たとえば、図示の対応する対のプロセッサ１０８1、１０８2（Ｐ１およびＰ２）；１０８3、１０８4（Ｐ３およびＰ４）；１０８5、１０８6（Ｐ５およびＰ６）；および１０８7、１０８8（Ｐ７およびＰ８）に与えられる。この時点で、命令およびデータの中くらいの粗さの目のデコンポジションが達成される。
【００１３】
目の細かいデコンポジション、すなわち並列性は、さらなるアルゴリズムのデコンポジションによって果たされる、すなわち、プロセッサ１０８1から１０８8の各々の出力は、たとえば、図示の多数の基本的アルゴリズム１１０1A、１１０1B、１１０2A、１１０2Bから１１０8Bに分割される。次に、各アルゴリズムは、コンピュータアーキテクチャ１００のメモリ空間内のＭＡＰ１１２1A、１１２1B、１１２2A、１１２2Bから１１２8Bのうちの対応する１つに与えられて、以下により詳細に述べられるとおり、そこで実行される。
【００１４】
さらに図３を参照すると、この発明のＭＡＰシステムコンピュータアーキテクチャ１００内のメモリバンク１２０の好ましい実現化例が、先行の図に例示されたＭＡＰ１１２の代表的な１つについて示される。各メモリバンク１２０は、コンピュータシステムトランクライン、たとえば、７２ラインのバス１２４に双方向に結合されるバンク制御論理ブロック１２２を含む。バンク制御論理ブロック１２２は、双方向データバス１２６（たとえば２５６ライン）に結合され、アドレスバス１２８（たとえば１７ライン）上にアドレスを与えてメモリアレイ１３０内の特定の位置のデータにアクセスする。
【００１５】
データバス１２６およびアドレスバス１２８はまた、ＭＡＰアセンブリ１１２に結合される。ＭＡＰアセンブリ１１２は、アドレスバス１２８に結合される制御ブロック１３２を含む。制御ブロック１３２はまた、複数の信号ライン１３６によってユーザフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）１３４に双方向に結合される。ユーザＦＰＧＡ１３４は、データバス１２６に直接結合される。ある特定の実施例では、ＦＰＧＡ１３４は、ルーセント テクノロジーズ ＯＲ３Ｔ８０（Lucent Technologies OR3T80）装置として提供されてもよい。
【００１６】
コンピュータアーキテクチャ１００は、メモリサブシステム、またはメモリ空間内に位置する１つ以上のＭＡＰ１１２を用いて、共通の共有メモリ上での均一のメモリアクセスを採用したマルチプロセッサシステムを含む。前述のとおり、各ＭＡＰ１１２は、再構成可能な機能ユニットとして使用される少なくとも１つの比較的大きいＦＰＧＡ１３４を含む。加えて、制御ブロック１３２および予めプログラムされたまたは動的にプログラム可能な構成の読出専用メモリ（以下でより詳しく述べる「ＲＯＭ」）は、再構成可能なＭＡＰアセンブリ１１２によって必要とされる情報を含み、それが特定のアルゴリズムを実行することを可能にする。ユーザは、プログラム制御下で新しい構成をＦＰＧＡ１３４に直接にダウンロードすることもまた可能であるが、場合によっては、これは複数のメモリアクセスを消費する可能性があり、もしアルゴリズムが短命であったらばシステム性能の全般的な低下をもたらすおそれがある。
【００１７】
ＦＰＧＡは、いくつかの理由のために、示されたアプリケーションにおいて特定の利点を有する。第１に、市販で入手可能な既製のＦＰＧＡは、今や意味のある計算機能を実行するために十分な内部の論理セルを有するようになっている。第２に、これらは、マイクロプロセッサと同等の速度で動作することができ、これによって速度一致用のバッファの必要性がなくなる。さらに、ＦＰＧＡの内部のプログラム可能なルーティング資源は、今や十分に広範なものとなっているので、入力／出力（「Ｉ／Ｏ」）ピンの位置を再割当する必要なしに意味のあるアルゴリズムがプログラムされ得る。
【００１８】
メモリサブシステムまたはメモリ空間内にＭＡＰ１１２を置くことによって、これは、メモリ読出および書込コマンドの使用によって容易にアクセスでき、これによってさまざまな標準的オペレーティングシステムの使用が可能になる。反対に、他の従来の実現化例は、プロセッサの中または近くに再構成可能論理を置くことを提案する。これは、マルチプロセッサ環境においてはそれほど効果的ではない。そこに高速アクセスするのは１個のプロセッサだけだからである。したがって、再構成可能論理は、マルチプロセッサシステム内のあらゆるプロセッサのそばに置かれなければならず、これが全般的なシステムコストを増加させる。さらに、ＭＡＰ１１２はメモリアレイ１３０自体にアクセスすることができ、これはダイレクトメモリアクセス（「ＤＭＡ」）と呼ばれ、それがプロセッサと独立して非同期にタスクを実行することを可能にする。比較して、もしそれがプロセッサ近くに置かれたならば、それは、メモリにアクセスするためにシステムルーティング資源をめぐってプロセッサと競合しなければならず、これはプロセッサの性能に有害な影響を及ぼす。ＭＡＰ１１２はＤＭＡ能力を有する（それがメモリへ書込むことを可能にする）ため、かつメモリへの書込を介してそのオペランドを受取るために、ＭＡＰ１１２が別のＭＡＰ１１２へ結果を送ることが可能である。これは、大きいタスクの非常に広範なパイプライン化および並列化を可能にする強力な特徴であって、タスクのより速い完了が可能となる。
【００１９】
実現化され得るアルゴリズムの多くは、オペランドを受取り、結果を生成するために多くのクロックサイクルを必要とする。そのような例の１つは、６４クロックサイクルかかる乗算であろう。この同じ乗算がまた、何千ものオペランドの演算に必要とされることがある。こういった状況では、入来するオペランドがシーケンシャルに与えられて、第１のオペランドは出力で結果を生成するのに６４クロックサイクル必要とするが、１クロックサイクル遅れで入力に到着する第２のオペランドは、１クロックサイクル遅れて出力で結果を示す。したがって、６４クロックサイクルの初めの遅延の後、新しい出力データは、最終オペランドの結果が現われるまで、連続するクロックサイクルごとに現われる。これは「パイプライン化」と呼ばれる。
【００２０】
マルチプロセッサシステムでは、オペレーティングシステムが、タスクの途中でプロセッサを止め、これをより優先順位のより高いタスクに再割当し、次にこれかまたは他のものを返し、初めのタスクを完了することがよくある。これが、パイプライン化されたアルゴリズムと組合されると、（もしプロセッサがリストの途中でオペランドを発行するのを止め、かつ、結果を受入れるのを止めた場合に）既に発行されたがまだパイプラインを通過していないオペランドに関して問題が生じる。この問題を処理するために、ソフトウェアとハードウェアとを組合せることを伴う解決策が、ここに開示される。
【００２１】
どの型の従来の再構成可能ハードウェアも活用するために、プログラマが、自分のアプリケーションプログラムコードに必要なコマンドを埋込むこともできるであろう。この方法の欠点は、そうした場合にはこのプログラムを、ＭＡＰハードウェア特有のものに仕立てなければならないということである。この発明のシステムは、この問題を排除する。マルチプロセッサコンピュータはしばしば、パラレライザと呼ばれるソフトウェアを使用する。このソフトウェアの目的は、ユーザのアプリケーションコードを分析し、いかにしてプロセッサ間でそれを最も上手く分割するかを決定することである。この発明は、従来のパラレライザに対して顕著な利点を提供し、これがユーザコードの、そのシステムでのＭＡＰ１１２内に存在するアルゴリズムを表す部分、を認識して、ＭＡＰ１１２をもう一つの計算機エレメントとして扱うことを可能にする。次に、パラレライザは、ＭＡＰ１１２を利用するのに必要なコードを自動的に発生する。これは、ユーザが自分のコード内に直接にアルゴリズムを書くことを可能にして、それはより移植性が高くなり、ユーザがＭＡＰ１１２を利用するのに必要とするシステムハードウェアの知識を軽減する。
【００２２】
図４をさらに参照すると、ＭＡＰ制御ブロック１３２のブロック図がより詳細に示される。制御ブロック１３２は、アドレスバス１２８からの複数のコマンドビット（たとえば、１７）をコマンドデコーダ１５０で受取るように結合される。コマンドデコーダ１５０は次に、ステータスレジスタ１５２の群へ複数のレジスタ制御ビットを８ビットのバス１５４で与える。コマンドデコーダ１５０はまた、ライン１５６で単一ビットの最終オペランドフラグをパイプラインカウンタ１５８に与える。パイプラインカウンタ１５８は、バス１６２で一致コンパレータ１６０へ８ビットの出力を与える。一致コンパレータ１６０はまた、ＦＰＧＡ１３４からのパイプラインの深さを示す８ビットの信号をバス１３６上で受取る。一致コンパレータは、パイプラインが空であると判断すると、ライン１６４上で単一ビットのパイプライン空フラグをステータスレジスタ１５２への入力に対して与える。ステータスレジスタはまた、ＦＰＧＡ１３４からの８ビットのステータス信号をバス１３６上で受取るように結合され、かつこれは、バス１３６、１５４およびライン１６４上の信号に応答してバス１６６上に６４ビットのステータスワード出力を生成する。
【００２３】
コマンドデコーダ１５０はまた、５ビットの制御信号を図示のとおり構成マルチプレクサ（「ＭＵＸ」）１７０に与える。構成マルチプレクサ１７０は、２５６ビットのパラレル−シリアル変換器１７２の単一ビットの出力をライン１７６上で受取る。２５６ビットのパラレル−シリアル変換器１７２の入力は、２５６ビットのユーザ構成パターンバス１７４に結合される。構成マルチプレクサ１７０はまた、構成ＲＯＭ（ＲＯＭ１８２として例示される）からの１６の単一ビットの入力をバス１７８上で受取り、コマンドデコーダ１５０からのバス１６８上の制御信号によって選択されるとおり、ライン１８０上に単一ビットの構成ファイル信号をユーザＦＰＧＡ１３４に与える。
【００２４】
動作時には、プロセッサ１０８がオペレーティングシステムによって停止されると、オペレーティングシステムは、バス１２８上で、アドレスフィールドに埋込まれたコマンドビットを使用することによってＭＡＰ１１２への最終オペランドコマンドを発行する。このコマンドは、制御ブロック１３２のコマンドデコーダ１５０によって認識され、これはハードウェアパイプラインカウンタ１５８を開始させる。アルゴリズムが、ＦＰＧＡ１３４に最初にロードされたとき、制御ブロック１３２に接続されるいくつかの出力ビットは、一致コンパレータ１６０に入力されるバス１３６上に、そのパイプラインを通過するのに必要とされるクロックサイクルの数（すなわち、パイプラインの「深さ」）の２進表現を表示するように構成されていた。最終オペランドコマンドを受取った後、制御ブロック１３２内のパイプラインカウンタ１５８は、そのカウント数がその特定のアルゴリズムのためのパイプライン深さに等しくなるまで、クロックサイクルを計数する。この時点で、制御ブロック１３２内の一致コンパレータ１６０は、ステータスレジスタ１５２の内部の群中のライン１６４上のビジービットをデアサートする。最終オペランド信号を発行した後、プロセッサ１０８は、ステータスレジスタ１５２を繰返し読出し、バス１６６上のいかなる出力データも受入れる。ビジーフラグがデアサートされると、タスクを停止しＭＡＰ１１２を異なったタスクのために利用することができる。ＭＡＰ１１２を構成されたままにし、プログラムを異なったプロセッサ１０８に転送して、中断したところからタスクを再開させることもまた可能であることが注目される。
【００２５】
所与のアプリケーションにおけるＭＡＰ１１２の使用の効果を評価するために、使用に対する何らかの形のフィードバックが必要とされる。したがって、ＭＡＰ１１２は、これが出力データに対する入力オペランドの数、ある時間にわたるアイドルサイクルの数およびある時間にわたって受取られるシステムモニタ割込の数などの、効率に関連する要因をモニタすることができるように制御ブロック１３２内に内部レジスタを備えてもよい。ＭＡＰ１１２の利点の１つは、その再構成可能な性質のために、アルゴリズムが変化すると、実際の機能およびモニタされる機能のタイプもまた変化し得ることである。このため、全要因をずっとモニタし続ける必要なしに、ユーザに与えられるモニタできる要因の数はほぼ無限になる。
【００２６】
特定のマルチプロセッサアーキテクチャと連係してこの発明の原理が上述されたが、前記記載は、例としてのみなされこの発明の範囲を制限するものではないことが明らかである。特に、前記開示の教示は、当業者には他の変形を示唆することが認められる。そのような変形は、それ自体周知であって、ここに記載された特徴に代えてまたはそれに加えて用いられ得る他の特徴を含むであろう。クレームが、特徴の特定の組合せに対してこの出願において明確に表現されているが、ここに開示される範囲はまた、当業者には明らかないかなる新規な特徴、または、明示的にまたは非明示的に開示される特徴のいかなる新規な組合せ、または、いかなるその一般化または変形をも含み、これは、そういったものがここでいずれかのクレームにクレームされたのと同じ発明に関連するかどうかにかかわらず、またそれがこの発明が対処するのと同じ技術的課題のすべてまたはいずれかを軽減するかどうかにかかわらない。出願人は、この発明のまたはそこから由来するさらなる出願の手続遂行の間に、そのような特徴または／およびそのような特徴の組合せに対する新しいクレームを明確に表現する権利をここに留保する。
【図面の簡単な説明】
【００２７】
【図１】標準のマルチプロセッサコンピュータアーキテクチャの簡素化された高レベルの機能ブロック図である。
【図２】この発明に従って複数のメモリアルゴリズムプロセッサ（「ＭＡＰ」）を利用してマルチプロセッサコンピュータアーキテクチャと連係して使用される起こり得るコンピュータアプリケーションプログラムのデコンポジションシーケンスの簡素化された論理ブロック図である。
【図３】バンク制御論理、メモリアレイおよびＭＡＰアセンブリを例示する、先行する図面のＭＡＰのうち個々の１つのより詳細な機能ブロック図である。
【図４】ユーザＦＰＧＡへの相互接続を例示する、先行して例示されるＭＡＰアセンブリの制御ブロックのより詳細な機能ブロック図である。
【図１】
2010102719.tif 000003
【図２】
2010102719.tif 000004
【図３】
2010102719.tif 000005
【図４】
2010102719.tif 000006
【外国語明細書】
2010102719.tif 000007
2010102719.tif 000008
2010102719.tif 000009
2010102719.tif 000010
2010102719.tif 000011
2010102719.tif 000012
2010102719.tif 000013
2010102719.tif 000014
2010102719.tif 000015
2010102719.tif 000016
2010102719.tif 000017
2010102719.tif 000018
2010102719.tif 000019
2010102719.tif 000020
2010102719.tif 000021
2010102719.tif 000022
2010102719.tif 000023
2010102719.tif 000024
2010102719.tif 000025
2010102719.tif 000026