(57)【要約】再構成可能なストリーミングベクトルプロセッサ１００が提供される。前記プロセッサはデータ値を受け取るための一つ以上の入力およびデータ値を提供するための出力を有する多数の機能ユニット１０２、再構成可能な相互接続スイッチ１０４およびマイクロシーケンサ１１８を含む。前記再構成可能な相互接続スイッチ１０４は一つ以上のリンクを有し、各リンクはマイクロシーケンサ１１８の命令に従って機能ユニット１０２の出力と機能ユニット入力とを接続するように動作可能である。ベクトルプロセッサはまた、メモリからデータを取り出すために一つ以上の入力ストリームユニットを含むこともある。各入力ストリームユニットはホストプロセッサによって命令され、前記ホストプロセッサへの決められたインターフェース１１６を有する。前記ベクトルプロセッサはまた、データをメモリまたはホストプロセッサに書き込むための出力ストリームユニットを一つ以上含む。
2005531848.tif 000002
【特許請求の範囲】
【請求項１】
各々がデータ値を受け取るための一つ以上の入力、およびデータ値を提供するための出力を有する、複数の機能ユニットと、
各リンクが、或る機能ユニットの出力と或る機能ユニットの一つ以上の入力の内の一つに接続するように動作可能な、一つ以上のリンクを備える再構成可能な相互接続スイッチと、
前記再構成可能な相互接続スイッチに接続され、前記スイッチを制御するように動作可能なマイクロシーケンサとを備える、再構成可能なストリーミングベクトルプロセッサ。
【請求項２】
前記マイクロシーケンサは命令プログラムを保存するためのプログラムメモリを含む、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項３】
前記再構成可能な相互接続スイッチは、データ値を保存するためのスイッチメモリを含む、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項４】
前記スイッチメモリは、ＦＩＦＯ、プログラム遅延およびパイプライン型レジスタファイルの内の少なくとも一つを備える、請求項３記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項５】
再構成可能な相互接続スイッチのリンクはマイクロシーケンサによって機能ユニットの出力からデータ値を受け取り、機能ユニットにある一つ以上の入力の内の一つにデータ値を提供するように命令される、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項６】
前記再構成可能な相互接続スイッチに接続され、データメモリから入力データ値を取り出し、前記再構成可能な相互接続スイッチにデータ値を提供するように動作可能な一つ以上の入力ストリームユニットと、
前記再構成可能な相互接続スイッチに接続され、前記再構成可能な接続スイッチからデータ値を受け取り、データメモリに出力データ値を提供するように動作可能な一つ以上の出力ストリームユニットとを更に備える、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項７】
前記入力および出力ストリームユニットは、ホストコンピュータからの制御命令を受け取るためのインターフェースを含む、請求項６記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項８】
前記制御命令は、
データメモリにあるデータ値のベクトルの開始アドレス、
データ値のベクトルのスパン、
データ値間のストライド、
ベクトルデータ値のスパンの間をスキップするための、メモリアドレスの数、および
データ値のベクトルにおける各データ値のサイズの内の少なくとも一つを備える、請求項７記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項９】
前記入力ストリームユニット、出力ストリームユニットおよびマイクロシーケンサをホストコンピュータに接続するように動作可能な外部インターフェースを更に備える、請求項６記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１０】
前記機能ユニットは、
シフタ、
加算器、
論理ユニットおよび
乗算器の内の少なくとも一つを備える請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１１】
前記機能ユニットは更にパススルー機能ユニットを備える、請求項１０記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１２】
複数の機能ユニットの内の少なくとも一つの機能ユニットの出力は、パイプラインレジスタを備える、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１３】
前記再構成可能な相互接続スイッチに接続されている少なくとも一つの累算器を更に備える、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１４】
前記少なくとも一つの累算器は、ホストコンピュータに接続されるように動作可能な、請求項１３記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１５】
複数のスカラーレジスタを更に備える、請求項１記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１６】
前記複数のスカラーレジスタはデータトンネルを提供する、請求項１５記載の再構成可能なストリーミングベクトルプロセッサ。
【請求項１７】
相互接続スイッチ、マイクロシーケンサおよび複数の機能ユニットを備えるストリーミングベクトルプロセッサを構成する方法であって、
前記マイクロシーケンサに命令プログラムを保存することと、
命令プログラムの中から一つの命令を取り出すことと、
命令プログラムから取り出された命令に従い、前記相互接続スイッチを構成することと、
命令プログラムから受け取った命令に従い、第一メモリに保存されたデータを機能ユニットに提供することと、
機能ユニットは前記データ上で動作することと、
命令プログラムから受け取った命令に従い、機能ユニットからのデータを第二メモリに保存することとを備える方法。
【請求項１８】
前記ストリーミングベクトルプロセッサは、バッファメモリを有する一つ以上の入力ストリームユニットを備え、前記第一メモリは入力ストリームユニットの一つ以上のバッファメモリであり、かつ前記相互接続スイッチ内のメモリである、請求項１７記載の方法。
【請求項１９】
ホストプロセッサから受け取ったパラメータセットに従い、各入力ストリームが外部メモリからデータ値を取り出すことと、前記入力ストリームユニットのバッファメモリにデータ値を保存することとを更に備える、請求項１８記載の方法。
【請求項２０】
前記ストリーミングベクトルプロセッサは、バッファメモリを有する一つ以上の出力ストリームユニットを備え、前記第二メモリは出力ストリームユニットの一つ以上のバッファメモリであり、かつ前記相互接続スイッチ内のメモリである、請求項１７記載の方法。
【請求項２１】
ホストプロセッサから受け取ったパラメータセットに従い、各出力ストリームユニットは、前記出力ストリームユニットのバッファメモリのデータ値を外部メモリに書き込むこ
とを更に備える、請求項２０記載の方法。
【請求項２２】
反復演算を実行するためのストリーミングベクトルプロセッサをプログラムする方法であって、前記ストリーミングベクトルプロセッサは再構成可能なデータ経路を有し、
前記方法は
前記反復演算の反復処理のデータフローグラフを指定することと、
前記データフローグラフに対応する半順序集合の演算を指定する線形グラフを、前記データフローグラフから生成することと、
前記線形グラフをストリーミングベクトルプロセッサのデータ経路上にスケジュールすることと、
前記ストリーミングベクトルプロセッサのデータ経路を構成するように動作可能なバイナリコード命令を生成することとを備える方法。
【請求項２３】
前記ストリーミングベクトルプロセッサはメモリを有するマイクロシーケンサを含み、前記方法は前記マイクロシーケンサのメモリ内にバイナリコード命令を保存することを更に備える、請求項２２記載の方法。
【請求項２４】
前記線形グラフをスケジュールすること、およびバイナリコード命令を生成することは、コンピュータによって実行される、請求項２３記載の方法。
【請求項２５】
前記線形グラフを生成することは、グラフィカルユーザインターフェースを使用して前記データフローグラフをコンピュータに指定し、前記コンピュータはデータフローグラフから線形グラフを自動的に生成することを更に備える、請求項２２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願のクロスリファレンス）
本願は、同時係属中である「統合ストレージを伴う相互接続装置（ＩＮＴＥＲＣＯＮＮＥＣＴＩＯＮ  ＤＥＶＩＣＥ  ＷＩＴＨ  ＩＮＴＥＧＲＡＴＥＤ  ＳＴＯＲＡＧＥ）」と題し、代理人整理番号ＣＭＬ００１０１Ｄによって確認される特許出願と、「部分アドレッシングを伴うメモリインターフェース（ＭＥＭＯＲＹ  ＩＮＴＥＲＦＡＣＥ  ＷＩＴＨ
ＦＲＡＣＴＩＯＮＡＬ  ＡＤＤＲＥＳＳＩＮＧ）」と題し、代理人整理番号ＣＭＬ００１０２Ｄによって確認される特許出願と、「ストリーミングベクトルプロセッサのためのスケジューラ（ＳＣＨＥＤＵＬＥＲ  ＦＯＲ  ＳＴＲＥＡＭＩＮＧ  ＶＥＣＴＯＲ  ＰＲＯＣＥＳＳＯＲ）」と題し、代理人整理番号ＣＭＬ００１０８Ｄによって確認される特許出願と、「ストリーミングベクトル演算処理のための線形グラフをプログラムする方法（ＭＥＴＨＯＤ  ＯＦ  ＰＲＯＧＲＡＭＭＩＮＧ  ＬＩＮＥＡＲ  ＧＲＡＰＨＳ  ＦＯＲ  ＳＴＲＥＡＭＩＮＧ  ＶＥＣＴＯＲ  ＣＯＭＰＵＴＡＴＩＯＮ）」と題し、代理人整理番号ＣＭＬ００１０９Ｄによって確認される特許出願とに関連し、同日に出願され、参考のために本願に添付する。
【０００２】
本発明は、概してコンピュータプロセッサの分野に関連する。より詳細には、本発明は再構成可能なストリーミングベクトルプロセッサに関連する。
【背景技術】
【０００３】
移動端末向けに計画されている新しいアプリケーション（マルチメディア、画像、イメージ圧縮／解凍等）の多くは、高い割合でストリーミングベクトル演算処理を伴う。これらのアプリケーションプロセッサの演算率は、最良の汎用ＣＰＵが実行することができる処理能力を超えることが多い。従って、これらの新しいアプリケーションの演算要求に応えるために、そのような端末にある演算処理エンジンの性能を改善する手段を発見することが望まれる。
【０００４】
同時に、これらの新しいアプリケーションは性質上、標準規格およびその標準規格を満たす最良のアルゴリズムが絶えず変化し、プログラムが可能であり、かつプログラムが容易である解決方法を必要としている。更に、如何に早期に市場に出荷するかという、製品化までに要する時間に対する圧力が増大している。この問題に対処する一つの方法として、ソフトウェアおよびハードウェアにおいて以前に投資したものの再利用を多く行うことがある。複数の製品に渡るハードウェアの再利用は、プログラム可能性によって最も促進される。ソフトウェアの再利用は、バイナリ互換性が維持されるように、端末における複数の実装において一貫性のあるプログラミングモデルを使用することで促進される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この必要性を満たすための一つの試みとして、ハードウェアアクセラレータの使用が挙げられる。前記ハードウェアアクセラレータは、再プログラムする性能が限定されているため、上記の問題を解決するには不十分である。機能的に固定されていないハードウェアアクセラレータは、関数のタイプまたは順序を変更するのではなく、ハードウェアアクセラレータが実行する関数のパラメータのみを変更することができる。
【０００６】
プログラム可能性のソリューションは、ベクトルプロセッサ、デジタルシグナルプロセッサ、ＳＩＭＤプロセッサおよびＶＬＩＷプロセッサの形式となって存在する。これらのソリューションは、上記プロセッサのプログラミングモデルに制限があるために不十分で
あり、プログラムすることを困難なものにし、全てのハードウェア世代に渡る一貫したプログラミングモデルの維持を困難にしている。上記プロセッサのプログラミングモデルにおける制限には、データ経路パイプラインのプログラマによる視認性、メモリ幅および待ち時間、メモリ内のデータアライメント、および明確なリソースの依存関係等がある。
【課題を解決するための手段】
【０００７】
本発明の特性と考えられる新規な特徴は、添付の特許請求の範囲において説明される。しかしながら、本発明自体は、好適な使用形態、本発明の更なる目的およびその利点と同様に、添付の図面と併せて読まれる際、以下に続く実施形態の詳細な説明を参照することによって最も良く理解されよう。
【０００８】
本発明は多くの異なる形式による実施形態が可能であるが、本願による開示は発明の本質の一具体例として考慮され、図面に示され、説明される特定の実施形態に限定される意図ではないことを理解した上で図面に示され、本願において一つ以上の特定の実施形態が詳細に説明されるだろう。以下の説明にある同一の参照数表示は、図面の様々な外形において同一、同様のまたは一致する部分を説明するために使用されるものとする。
【０００９】
本発明における再構成可能なストリーミングベクトルプロセッサ（ＲＳＶＰ）はベクトル演算、即ち一連のデータ要素における同一の演算のセットを実行するコプロセッサである。ＲＳＶＰは高速なベクトル演算を実行することによって、内蔵されている汎用プロセッサ（ホストプロセッサ）の性能を強化するように設計されている。ＲＳＶＰのプログラミングモデルにおいて、ベクトル演算の性能は二つの構成要素に分離される。それらはアクセスと演算処理である。
【００１０】
本発明の一実施形態において提供される再構成可能なストリーミングベクトルプロセッサは、多くの機能ユニットを含み、各機能ユニットはデータ値を受け取るための一つ以上の入力、データ値を提供するための出力、再構成可能な相互接続スイッチおよびマイクロシーケンサを含む。前記再構成可能な相互接続スイッチは一つ以上のリンクを含み、各リンクはマイクロシーケンサの命令によって、機能ユニットの出力と機能ユニットの入力とを接続する機能を有する。ベクトルプロセッサはまた、メモリからデータを取り出すための一つ以上の入力ストリームユニットを含む。前記入力ストリームはホストプロセッサによって命令され、前記ホストプロセッサへの決められたインターフェースを有する。前記ベクトルプロセッサはまた、データをメモリに書き込むための一つ以上の出力ストリームを含み、同様にホストプロセッサへの決められたインターフェースを有する。
【００１１】
更に進んだ実施形態では、前記再構成可能な相互接続スイッチは中間データ値を保存するためのメモリを含む。
好適な実施形態において、入力データストリームに決められたインターフェースはプログラミングモデルの第一部分を形成する。再構成可能な相互接続スイッチを指示する一連の手順においてメモリに保存された命令は、プログラミングモデルの第二部分を形成する。
【発明を実施するための最良の形態】
【００１２】
ＲＶＳＰハードウェア１００の典型的な実施形態を図１に示す。図１を参照すると、多くの機能ユニット１０２の出力および入力が再構成可能な相互接続スイッチ１０４を介して相互接続されている。前記機能ユニットには乗算器１０６、加算器１０８、論理ユニット１１０およびシフタ１１２が含まれ得る。他の機能ユニットが含まれることもあり、特定のタイプである複数の機能ユニットが含まれることもある。前記機能ユニットからの出力はシングルレジスタまたはパイプラインレジスタであり得る。前記機能ユニットは複数の独立した演算をサポートする。例えば、乗算器は１２８ビットの入力および１２８ビッ
トの出力を有し、二つの３２ｘ３２ビットから６４ビットを生成する乗算、または四つの１６ｘ１６ビットから３２ビットを生成する乗算、または乗算の総計が１２８ビットの入力または１２８ビットの出力を超えない、任意の組み合わせの乗算を実行することができる。前記ハードウェアはまた、一つ以上の累算器１１４も含む。好適な実施形態において、前記累算器は累算器のみではなくストレージレジスタとしても機能し、相互接続スイッチ１０４と外部インターフェース１１６との両方にインターフェースで接続されている。外部インターフェース１１６は、ＲＳＶＰとホストプロセッサとのリンクを有効にし、ホストプロセッサに累算器およびＲＳＶＰの他の部分へのアクセスを可能にする。機能ユニット１０２および再構成可能な相互接続スイッチ１０４は、ＲＳＶＰのためのデータ経路を定義する。機能ユニットおよび再構成可能な相互接続スイッチ１０４はマイクロシーケンサ１１８に接続しており、前記マイクロシーケンサは目的とするベクトル演算処理のデータフローグラフの実装に特定的な記述を記載している命令プログラムを保存するためのメモリ１２０、好ましくはキャッシュ、を含む。プロセッサクロックの各サイクルにおいて、マイクロシーケンサは相互接続スイッチにおけるリンクを構成し、機能ユニットを動作させる制御語を生成する。スカラー値の保存と提示およびトンネルノードの機能性は定数ユニット１２０によって提供される。スカラー値およびトンネルの初期値は、ホストプロセッサまたは命令プログラムによって読み込まれる。動作中、入力データ値は一つ以上の入力ストリームユニット１２２（一つのユニットのみ図示されている）によって、相互接続スイッチ１０４に提供される。各入力ストリームユニット１２２は、メモリ内におけるデータの割り当てを記述しているパラメータセットによって制御される。このパラメータセットはホストプロセッサによって提供され、入力ストリームユニットは外部インターフェース１１６を介してホストプロセッサに接続されている。各出力ストリームユニット１２４（一つのユニットのみ図示されている）は同様にホストプロセッサによって制御され、データを再構成可能な相互接続スイッチ１０４から外部メモリに転送するように動作可能である。入力ストリーム１２２および出力ストリーム１２４は、データフローを同期化するマイクロシーケンサ１１８に接続されている。
【００１３】
上記において説明した典型的なＲＳＶＰのアーキテクチャは、ベクトルアクセスとベクトル演算処理との演算の分離を促進する。
入力または出力ストリームユニットによって実行されるベクトルアクセスは、ベクトル演算の一部である各入力および出力ベクトルの場所、形状およびタイプを記述することから構成されている。好適な実施形態において、これらの特性は二つ以上のパラメータを通して記述される。
【００１４】
１．  ベクトルアドレス−次のベクトル成分のメモリ内にある開始アドレス。
２．  ストライド−一つの成分から次の成分への符号付き増分。
３．  スパン−スキップする前のストライド数。
【００１５】
４．  スキップ−成分のスパンを数えた後の符号付き増分。
５．  サイズ−各データ要素のサイズ（例えば１，２または４バイト）。
入力および出力ベクトルに加えて、ベクトルプロセッサは多数のスカラーおよびアキュームレータレジスタを含むことがあり、前記スカラーおよびアキュームレータレジスタの初期値はプログラマによって特定され得る。これらのレジスタはベクトル演算処理内で使用される。累算器の場合、レジスタの値は演算処理中に変更することが可能であり、後に使用するためにアクセスすることができる。プログラミングモデルのベクトルアクセス部分は、ホストプロセッサで使用されるプログラミング言語で記述され、ホスト上で実行される。
【００１６】
ベクトル演算処理は演算子の半順序集合から構成され、それらは各出力ベクトル成分を導出するために、入力ベクトル、スカラーレジスタ、および累算器の成分に適用される。
本発明におけるプログラミングモデルでは、演算処理のデータフローグラフの線形表示によって、ベクトル演算処理が行なわれる。データフローグラフにおいて、グラフ内の各ノードはノード記述子を使用して表示され、前記ノード記述子は入力データが得られたノードおよびノード群によって実行される演算を特定する。他のＣＰＵの命名方法にあるような、演算子の間でデータを渡すためにレジスタを明示的に命名する規則はない。演算の例として下記のＣ言語による記述がある。
【００１７】
【数１】
2005531848.tif 000003
【００１８】
対応するデータフローグラフを図２に示す。図２を参照するとブロック２０２においてベクトルｖ１が読み込まれる。ノード２０４においてベクトルの符号が取得される。スカラー値ｓ１およびｓ２がそれぞれ、ブロック２０８において読み込まれる。ブロック２１０において即座にシフト値１６が読み込まれる。ノード２１２において、ベクトルｖ１にスカラーｓ２を乗算する。ノード２１４において、この乗算の結果がｖ１から減算される。ノード２１６において、前記の減算の結果にスカラーｓ１を乗算した後、ノード２１８において右に１６移動する。ブロック２２０において最終的なベクトルの結果が、ｖ０として保存される。
【００１９】
データフローグラフの線形化された形式は以下のように示される。
【００２０】
【数２】
2005531848.tif 000004
【００２１】
上記の典型的な線形フロー形式は関数演算を使用する。
ｖｌｄ．ｓ１６−１６ビットデータ値のベクトルから次のデータ要素を読み込む。
ｖｓｉｇｎ．ｓ１６−データ値の符号を計算する。
【００２２】
ｖｓｃａｌａｒ−スカラー値を読み込む。
ｖｍｕｌ．ｓ１６−二つの１６ビットデータ値を乗算する。
ｖｍｕｌ．ｓ３２−二つの３２ビットデータ値を乗算する。
【００２３】
ｖｓｕｂ．ｓ１６−二つの１６ビットデータ値を減算する。
ｖａｓｒ０．１６−１６ビットデータ値を右に移動する算術シフト。
機能ユニットは、ベクトル成分の加法（ｖａｄｄ）および累算（ｖａｄｄａ）を含む、他の様々な関数演算を実行することが好ましい。実行の前に、線形グラフがＲＳＶＰのデータ経路上にスケジュールされる。データ経路は各クロックサイクルにおいて再構成可能である。機能ユニットは一つに集約されることもあり、つまりは機能ユニットの部分集合が結合してより大きな機能ユニットを形成することが可能である。前記機能ユニットの相互結合によって任意に機能ユニットのパイプラインを構築することが可能となる。
【００２４】
ＲＳＶＰはそのプログラミングモデルを通して、目的である高性能および市場への迅速性を促進する。ＲＳＶＰはコプロセッサであるために、シングルコアのプログラミングモデルを使用することが望ましい。汎用ＣＰＵ／ＤＳＰの組み合わせにおいて使用されるようなデュアルコアソリューションでは、プログラムするのが非常に困難になる傾向がある。その理由は、これらのタイプのソリューションにあるのだが、プログラマは二つの異なるプログラミングツールセットを使用しなくてならず、明示的にＣＰＵとＤＳＰとの間における同期化を処理しなくてはならないことにある。
【００２５】
本発明におけるプログラミングモデル内において、ベクトルアクセスに関する記述は、ベクトル演算の記述と分離されている。従って、プログラマは上記の二つの事項を混合して処理する必要はない。ベクトルアクセスは五つのパラメータのみで記述されていることから、プログラマはデータアライメント、メモリバス幅、またはメモリ待ち時間の問題の処理を避けることができる。ベクトルアクセスの基礎となるハードウェアがこれらの問題を処理する。このようにしてベクトルアクセスの記述は、メモリサブシステムまたはベクトルアクセスのハードウェアの実行に関わらず、一定のままである。これはプログラマの仕事を簡略化するだけでなく、ＲＳＶＰのバイナリコードが上記メモリサブシステムやベクトルアクセスのハードウェアの実行による変更を反映させるために変換される必要がないように、バイナリコードの互換性をも増大させる。
【００２６】
データフローグラフの形式であるベクトル演算処理の記述は、ＲＳＶＰのデータ経路の実装に特定的な情報を含まない。累算器およベクトルストリームユニット（ＶＳＵ）を使用する以外には、ＲＳＶＰは任意のリソースとの依存関係がない。特に演算子の間でデータを渡すための明示的なレジスタの命名方法を欠いている。そのためスケジューラが最適なスケジュールを得ることを容易にし、スケジューラにかかる負荷を取り除くことができる。結果として、データ経路はプログラマにとって透過性があり、ＲＳＶＰのバイナリコードを変更することなくスカラーデータ経路からＶＬＩＷまたはＳＩＭＤのようなスーパースカラーであるものに変更することができる。
【００２７】
プログラミングモデルにおけるベクトルアクセスの記述とベクトル演算処理の記述の分離を図３および図４に示す。図３はＲＳＶＰのコードを生成するための方法であるフローチャートを示す。開始ブロック３０２に続いて、ブロック３０４では演算処理のデータフローグラフが指定される。ブロック３０６において、前記データフローグラフから演算処理の線形グラフ形式が生成される。線形グラフ形式の生成は手動で実行されるか、またはコンピュータプログラムによって自動的に実行されることがある。一実施形態において、コンピュータプログラムはユーザにグラフィカルユーザインターフェースを提供し、データフローグラフへの入力を容易にしている。ブロック３０６において生成された線形グラフ形式は、ブロック３０８でスケジューラに提供される。スケジューラはＲＳＶＰリソースを効率的に使用するための関数演算を命令するコンピュータプログラムである。一旦スケジューリングが完了するとブロック３１０でＲＳＶＰのためのバイナリコードが生成され、ブロック３１２でその処理は終了する。この処理はデータアライメントおよびデータの埋め込み、メモリバス幅またはメモリ待ち時間のような、ベクトルアクセスに関する問題を考慮していないことに注意されたい。これらの問題はハードウェアによって処理される。データアクセスはホストプロセッサで指定される。ホストプロセッサのためのプログラミング処理を図４に示す。図４を参照すると、開始ブロック４０２に続いてメモリ内のデータ構造がブロック４０４で指定される。ブロック４０６において関連するデータアクセスのパラメータ（開始アドレス、ストライド、スパン、スキップおよびサイズ）が指定される。これらのパラメータは演算処理中にＲＳＶＰの入力ストリーミングユニットに渡されるであろう。ブロック４０８においてホストプロセッサコードの残りが生成され、ブロック４１０でその処理は終了する。このように前記ホストの処理はベクトルアクセスを指定するが、ベクトル演算処理とは独立している。
【００２８】
ＲＳＶＰハードウェアは性能を向上させるために、プログラミングモデルのいくつかの態様を利用する。ベクトルアクセスと演算処理とが分離しているために、それぞれのハードウェアは互いに非同期的に動作する。その結果、ベクトルアクセスハードウェアは演算処理の前に進行することができ、データが必要とされる前に取り出されることから、メモリ待ち時間の一部分が隠されることになる。
【００２９】
ベクトルアクセスの記述は、全ての情報がアクセスするハードウェア内にある少数のレジスタに保存されるような、十分に簡潔なものである。これらのレジスタはホストプロセッサにアクセス可能である。同様にＲＳＶＰデータフローグラフは、例えばＲＳＶＰマイクロシーケンサメモリが線形形式のデータフローグラフを全て保持するのに十分大きなものであるように、構造的に固定数のノード（例えば、２５６）に限定されている。この方法による利点は、ハードウェアはアドレス計算またはベクトル演算処理の実行方法を決定するための命令を一度も取り出す必要がないことである。これによってＲＳＶＰ演算処理を行うのに要するメモリ帯域幅からの命令の取り出しを削除することになる。
【００３０】
ベクトル演算処理がリソースの依存性をほとんど含むことがないデータフローグラフとして指定されるために、ＲＳＶＰのデータ経路は他のＣＰＵのデータ経路とは異なってい
る。ＤＳＰ，ＳＩＭＤ，ＶＬＩＷおよびベクトルプロセッサ装置のほとんどは、任意の順でそれらのデータ経路にある機能ユニットに接続することができない。統合され得る機能ユニットも有していない。
【００３１】
本発明は特定のアーキテクチャに基づいた典型的な実施形態によって説明されてきたことを、当業者は認識するであろう。しかしながら本発明は類似のアーキテクチャを使用して実行され得るため、上記のように限定されるべきではない。当業者は更に、本発明の精神および範囲から逸脱することなく形式および詳細の様々な変更が成されることを理解するであろう。
【００３２】
本発明が特定の実施形態に関連して説明される間に、上述の説明に照らして多くの代替、修正、置換および変更が可能であることが当業者に明らかになることは明白である。従って、本発明は添付の請求項の範囲に含まれるように、そのような代替、修正、変更を全て包含していることを意図するものである。
【図面の簡単な説明】
【００３３】
【図１】本発明における再構成可能なストリーミングベクトルプロセッサの実施形態の概略図。
【図２】典型的な反復演算処理のデータフローグラフ。
【図３】本発明におけるベクトルプロセッサをプログラムするための処理のフローチャート。
【図４】本発明におけるベクトルプロセッサで動作するためのホストプロセッサをプログラムする処理を表すフローチャート。
【図１】
2005531848.tif 000005
【図２】
2005531848.tif 000006
【図３】
2005531848.tif 000007
【図４】
2005531848.tif 000008
【国際調査報告】
2005531848.tif 000009