(57)【要約】ベクトル処理は、大量の計算要求を有する処理用途に適した技術である。ベクトルプロセッサは、ベクトルすなわち数の一次元配列で動作する高レベル演算をもたらす。ベクトル演算は、同じ数又はデータ項について一連のスカラ演算よりも速くなり得る。ベクトル処理が使用され得る通常の用途は音声及びビデオ処理の分野にある。ベクトルメモリシステムは大きなデータ幅を有しており、これにより単一のメモリアドレスを使用する単一のメモリアクセスにおいてデータ要素の完全なベクトルが取り出され得る。その後、当該データ要素は並列に処理され得る。しかしながらベクトルメモリシステムが使用されるとき、ベクトルアライメント及びベクトルの要素のセットの順序付けの問題が発生し得る。本発明は、プロセッサ（ＰＲＯＣ）及びマルチポートメモリ（ＭＥＭ）を有するコンピュータシステムにおけるベクトル要素の順序付け及びベクトルアライメントのための改善された方法を提供する。これにより、より優れた動作性能がもたらされる。第一のステップは、ベースメモリアドレスをアドレス構成手段（ＡＣＵ）にもたらすステップを有する。次に、前記アドレス構成ユニットを構成するための構成命令及びベースメモリアドレスを使用するアドレス構成ユニット（ＡＣＵ）によってメモリアドレスのセットが規定される。最終的に、メモリアドレスのセットを使用してマルチポートメモリ（ＭＥＭ）に、又は前記マルチポートメモリ（ＭＥＭ）からベクトルが送信される。
2005534120.tif 000002
【特許請求の範囲】
【請求項１】
−プロセッサと、
−前記プロセッサによってアクセス可能になるマルチポートメモリと
を有するコンピュータシステムにおいてベクトルを送信するための方法において、  
−ベースメモリアドレスをアドレス構成手段にもたらすステップと、
−前記アドレス構成手段を構成するための構成命令及び前記ベースメモリアドレスを使用する前記アドレス構成手段によってメモリアドレスのセットを規定するステップと、
−前記メモリアドレスのセットを使用する前記マルチポートメモリに、又は前記マルチポートメモリから前記ベクトルを送信するステップと  
を有する方法。  
【請求項２】
−前記アドレス構成手段は、前記構成命令によって構成される複数のレジスタファイルと、前記メモリアドレスのセットを計算するための複数のアドレス計算ユニットとを有し、
−前記レジスタファイルは、前記アドレス計算ユニットによってアクセス可能であり、
−前記アドレス計算ユニットは、前記マルチポートメモリに結合される    
請求項１に記載の方法。  
【請求項３】
−前記構成命令はオフセットのセットを有し、各々のオフセットは前記ベースメモリアドレスと共に第二のメモリアドレスを規定する
請求項１に記載の方法。  
【請求項４】
−プロセッサと、
−前記プロセッサによってアクセス可能になるマルチポートメモリと
を有するコンピュータシステムにおいて、
前記コンピュータシステムが、アドレス構成手段を更に有し、前記アドレス構成手段は、前記アドレス構成手段を構成するための構成命令及びベースメモリアドレスを使用してメモリアドレスのセットを規定すると共に、前記マルチポートメモリは、前記メモリアドレスのセットを使用することを特徴とするコンピュータシステム。  
【請求項５】
−前記アドレス構成手段は、前記構成命令によって構成されるように設けられる複数のレジスタファイルと、前記メモリアドレスのセットを計算するための複数のアドレス計算ユニットとを有し、
−前記レジスタファイルは、前記アドレス計算ユニットによってアクセス可能であり、
−前記アドレス計算ユニットは、前記マルチポートメモリに結合される    
請求項４に記載のコンピュータシステム。  
【請求項６】
−前記構成命令はオフセットのセットを有し、各々のオフセットは前記ベースメモリアドレスと共に第二のメモリアドレスを規定する
請求項４に記載のコンピュータシステム。
【請求項７】
前記マルチポートメモリ及び前記アドレス構成手段がメモリシステム内に含まれる請求項４に記載のコンピュータシステム。
【請求項８】
請求項１に記載の方法の前記ステップを実行することをコンピュータシステムに命令するためのコンピュータプログラムコード手段を有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、
−プロセッサと、
−前記プロセッサによってアクセス可能であるマルチポートメモリと、
を有するコンピュータシステムに関する。
【０００２】
本発明は更に、前記コンピュータシステムにおいてベクトルを送信するための方法に関する。
【０００３】
また更に本発明は、前記方法を実現するためのコンピュータプログラムに関する。  
【背景技術】
【０００４】
ベクトル処理は、大量の計算要求を有する処理用途に適した技術である。ベクトルプロセッサ（ｖｅｃｔｏｒ  ｐｒｏｃｅｓｓｏｒ）は、ベクトルすなわち数の一次元配列（リニアアレイ）（ｌｉｎｅａｒ  ａｒｒａｙ  ｏｆ  ｎｕｍｂｅｒｓ）で動作する高レベル演算（ハイレベルオペレーション（ｈｉｇｈ−ｌｅｖｅｌ  ｏｐｅｒａｔｉｏｎ））をもたらす。ベクトルプロセッサは、ベクトルの個々の要素についての演算（オペレーション）をパイプライン処理（ｐｉｐｅｌｉｎｅ）する。パイプライン処理は、算術演算（ａｒｉｔｈｍｅｔｉｃ  ｏｐｅｒａｔｉｏｎ）ばかりでなく、メモリアクセス及び実効アドレス（ｅｆｆｅｃｔｉｖｅ  ａｄｄｒｅｓｓ）計算も含んでいる。更に、最上位ハイエンドベクトルプロセッサ（ｍｏｓｔ  ｈｉｇｈ−ｅｎｄ  ｖｅｃｔｏｒ  ｐｒｏｃｅｓｓｏｒ）により、複数の演算が同時になされることが可能となり、異なる要素についての演算の間に並列処理（ｐａｒａｌｌｅｌｉｓｍ）がもたらされる。ベクトル命令（ｖｅｃｔｏｒ  ｉｎｓｔｒｕｃｔｉｏｎ）はいくつかの重要な特性を有している。第一に、各々の結果の計算は、先行する結果の計算から独立しており、これによりいかなるデータハザード（ｄａｔａ  ｈａｚａｒｄ）も生じさせることなく非常に深いパイプライン処理が可能になる。第二に、ベクトル命令はループ全体を実行することと等価であり、これにより命令帯域幅（ｉｎｓｔｒｕｃｔｉｏｎ  ｂａｎｄｗｉｄｔｈ）の要求仕様が低減される。第三に、単一のアクセスにおいてデータ要素の代わりに完全なベクトルが取り出される（取得される）（ｒｅｔｒｉｅｖｅ）ときメモリアクセスのオーバヘッドは低減される。これらの理由で、ベクトル演算は、同じ数又はデータ項について一連のスカラ演算（ｓｃａｌａｒ  ｏｐｅｒａｔｉｏｎ）よりも速くなり得る。ベクトル処理が使用され得る通常の用途は音声及びビデオ処理の分野にある。
【０００５】
ベクトルメモリシステムは大きなデータ幅を有しており、これにより単一のメモリアドレスを使用する単一のメモリアクセスにおいてデータ要素の完全なベクトルが取り出され得る。その後、当該データ要素は並列に処理され得る。しかしながらベクトルメモリシステムからデータが取り出されるとき、いくつかの問題が発生する。第一に、ベクトルアライメント（ｖｅｃｔｏｒ  ａｌｉｇｎｍｅｎｔ）の問題は、ベクトル境界部（ｖｅｃｔｏｒ  ｂｏｕｎｄａｒｙ）を交差（クロス）するデータをベクトルメモリシステムから読み出すことに関連していることにある。この場合データは、二つのメモリアドレス、すなわち二つのベクトルのコンテンツ（内容）を要求することによって取り出されることが可能であり、その後、要求されたデータを新たなベクトルに転送し得る。第二に、ベクトルの要素が記憶される順序（ｏｒｄｅｒ）から逸脱する場合に、ベクトルの要素のセットの順序付け（オーダリング（ｏｒｄｅｒｉｎｇ））が必要とされるとき問題はもたらされる。異なるベクトルで記憶される要素の順序セットを備えるベクトルが必要とされる場合、適切なデータ要素の選択によって後続される少なくとも二つのメモリアクセスを要求する当該ベクトルのコンテンツが取り出されなければならない。米国特許第５，９３３，６５０号公報は、ベクトル要素のアライメント及び順序付けのための方法を開示している。ベクトル要素のアライメントにおいて、一つのベクトルはメモリユニットから第一のレジスタにロードされ、他のベクトルはメモリユニットから第二のレジスタにロードされる。アライン（位置合わせ）されたベクトルの第一のバイトを特定する開始バイト（スターティングバイト（ｓｔａｒｔｉｎｇ  ｂｙｔｅ））が決定される。次にベクトルが、第一のレジスタ及び第二のレジスタにおけるビットまで続く第一のレジスタの第一のバイトにおける第一のビットから開始させられる第二のレジスタから抽出される。最終的に、抽出されたベクトルは、第三のレジスタが、ベクトル処理のためにアラインされる複数の要素を含むように第三のレジスタに複製（ｒｅｐｌｉｃａｔｅ）される。ベクトル要素の順序付けにおいて、第一のベクトルはメモリユニットから第一のレジスタにロードされ、第二のベクトルはメモリユニットから第二のレジスタにロードされる。それから要素のサブセットが第一のレジスタ及び第二のレジスタから選択される。前記サブセットからの要素はそれから、後続するベクトル処理に適した特定の順序で第三のレジスタにおける要素に複製される。
【０００６】
ベクトルメモリシステムに対する一つよりも多くの読み出しアクセスが必要とされ、ベクトルデータを得るためのオーバヘッドが増大させられることは、ベクトル要素の順序付け及びアライメントのための従来方法の不利点となる。更に例えばベクトルアライメント及びベクトル順序付けのために要素が選択されなければならないベクトルの一時記憶のために更なるハードウエアが必要とされる。    
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、ベクトルアライメント及びベクトル要素の順序付けのための改善された方法を提供することにある。これにより、ベクトルプロセッサのより優れた動作性能がもたらされる。
【課題を解決するための手段】
【０００８】
本目的は、  
【０００９】
−ベースメモリアドレスをアドレス構成手段にもたらすステップと、
【００１０】
−前記アドレス構成手段を構成するための構成命令及び前記ベースメモリアドレスを使用する前記アドレス構成手段によってメモリアドレスのセットを規定するステップと、
【００１１】
−前記メモリアドレスのセットを使用して前記マルチポートメモリに、又は前記マルチポートメモリから前記ベクトルを送信するステップと  
を有することを特徴とする、ベクトルを送信するための方法で達成される。
【００１２】
本方法により、単一のベースメモリアドレス（ｂａｓｅ  ｍｅｍｏｒｙ  ａｄｄｒｅｓｓ）を使用して、マルチポートメモリに、又はマルチポートメモリから完全なベクトルを送信することが可能になる。ベクトルのデータ要素はメモリ内の任意の位置に、又は任意の位置から送信されることが可能であり、これにより柔軟性が改善され、ベクトルアライメント及びベクトル要素の順序付けに関する問題が回避される。更に前記アドレス構成手段（ａｄｄｒｅｓｓ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｍｅａｎｓ）と組み合わせたマルチポートメモリの使用により、命令幅（ｉｎｓｔｒｕｃｔｉｏｎ  ｗｉｄｔｈ）が低減される。完全なベクトルは単一のベースメモリアドレスを使用して送信され得るが、さもなければマルチポートメモリによって使用される各々のメモリアドレスが命令にもたらされるべきである。超長命令語プロセッサ（ｖｅｒｙ  ｌａｒｇｅ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ  ｐｒｏｃｅｓｓｏｒ）のようなある種のプロセッサの場合、符号の大きさ（コードサイズ（ｃｏｄｅ  ｓｉｚｅ））を低減させることは重要なことである。
【００１３】
本発明によればコンピュータシステムが、アドレス構成手段を更に有し、前記アドレス構成手段は、前記アドレス構成手段を構成するための構成命令及びベースメモリアドレスを使用してメモリアドレスのセットを規定すると共に、前記マルチポートメモリは、前記メモリアドレスのセットを使用することを特徴とする。完全なベクトルは単一のベースメモリアドレスを使用して、マルチポートメモリに、又はマルチポートメモリから送信されることが可能であり、これによりメモリオーバヘッドが低減され、コンピュータシステムの動作性能が向上させられる。
【００１４】
本発明の好ましい実施例が、従属請求項において規定される。ベクトルを送信するための本発明による方法を実現するためのコンピュータプログラムが請求項８に規定される。
【００１５】
本発明によるコンピュータシステムの実施例は、
【００１６】
−前記アドレス構成手段は、前記構成命令によって構成されるように設けられる複数のレジスタファイルと、前記メモリアドレスのセットを計算するための複数のアドレス計算ユニットとを有し、
【００１７】
−前記レジスタファイルは、前記アドレス計算ユニットによってアクセス可能であり、
【００１８】
−前記アドレス計算ユニットは、前記マルチポートメモリに結合される
ことを特徴とする。
【００１９】
構成（コンフィギュレーション）命令（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｉｎｓｔｒｕｃｔｉｏｎ）が複数のレジスタファイルを構成し、これらのレジスタファイルは次の構成命令が実行されるまで当該構成を保持し得る。その間、当該構成は、例えば命令のループの実行の間に繰り返し使用され得る。
【００２０】
本発明によるコンピュータシステムの他の実施例は、前記構成命令がオフセットのセットを有し、各々のオフセットは前記ベースメモリアドレスと共に第二のメモリアドレスを規定することを特徴とする。オフセットのセットは複数のレジスタファイルにおいて直接ロードされることが可能であると共に、複数のアドレス計算ユニット（ａｄｄｒｅｓｓ  ｃａｌｃｕｌａｔｉｏｎ  ｕｎｉｔ）によって使用されることが可能であり、アドレス構成手段の動作性能が改善される。
【発明を実施するための最良の形態】
【００２１】
実施例の記載された特徴は図面を参照して更に説明されると共に記述されるであろう。
【００２２】
図１は、プロセッサＰＲＯＣと、アドレス構成ユニットＡＣＵと、マルチポートメモリＭＥＭと、システムバスＳＢとを有するコンピュータシステムのブロック図を示す。プロセッサＰＲＯＣと、アドレス構成ユニットＡＣＵと、マルチポートメモリＭＥＭとは、システムバスＳＢを介して結合される。命令の実行の間、プロセッサＰＲＯＣは、データ要素を備えるベクトルを読み出すか、又は書き込むために、マルチポートメモリＭＥＭにアクセスするための命令（オペレーション（ｏｐｅｒａｔｉｏｎ））を発行（ｉｓｓｕｅ）し得る。マルチポートメモリＭＥＭからのデータ要素のセットの読み出し又は書き込みに先行してアドレス構成ユニットＡＣＵは、プロセッサＰＲＯＣによって発行される構成命令によって構成させられるべきである。ベースメモリアドレスを使用してマルチポートメモリＭＥＭから抽出されるべきデータ要素のセットに対して特定されるメモリアドレスのセットを計算し得るように構成命令はアドレス構成ユニットＡＣＵを構成する。アドレス計算ユニットＡＣＵの構成は、次の構成命令が発行されるまで不変状態を保持する。アドレス構成ユニットＡＣＵが構成された後、プロセッサはベースメモリアドレスを有する読み出し命令を発行し、当該アドレスはアドレス計算ユニットＡＣＵに送信される。その後、アドレス計算ユニットＡＣＵはメモリアドレスのセットを計算する。当該メモリアドレスはシステムバスＳＢを介してマルチポートメモリＭＥＭに送信され、マルチポートメモリＭＥＭからデータ要素を読み出すステップによって後続される。当該データ要素は単一のベクトルとしてプロセッサＰＲＯＣに送信され、更なる処理のために使用される。プロセッサＰＲＯＣが書き込み命令を発行する場合、ベースメモリアドレスはアドレス構成ユニットＡＣＵに送信される。アドレス構成ユニットＡＣＵは、システムバスＳＢを介してマルチポートメモリＭＥＭに送信されるメモリアドレスのセットを計算する。データ要素もシステムバスＳＢを介してマルチポートメモリＭＥＭに送信される。次のステップにおいて、データ要素はマルチポートメモリＭＥＭに書き込まれる。次の書き込み又は読み出し命令に先行して、必要とされるメモリアドレスのセットに依存して新たな構成命令を発行することが必要とされてもよい。例えばメモリアドレスの同じセットを必要とすると共に同じベースメモリアドレスを適用するデータ要素のセットが読み出されなければならない場合、構成コマンド（命令）が繰り返される必要はない。異なるベースメモリアドレスが使用されるが、アドレス構成ユニットＡＣＵの所要の構成は同じ状態を保持しているとき、ここでも新たな構成命令が発行される必要はない。
【００２３】
図２は、マルチポートメモリＭＥＭ及びアドレス構成手段の実施例を有するメモリシステムＭＳのブロック図を示す。マルチポートメモリＭＥＭは、ＲＡＭメモリと、四つのデータ入力ポートＤａｔＩｎと、四つのアドレスポートＡｄｄｒと、四つのデータ出力ポートＤａｔＯｕｔとを有する。アドレス構成ユニットＡＣＵは、アドレスポートＡｄｄｒＩｎと、四つのアドレス計算ユニットＡＵと、四つのレジスタファイルＲＦと、四つのデータ入力ポートＤａｔＩｎとを有する。本実施例において、データ入力部ＤａｔＩｎは、アドレス構成ユニットＡＣＵとマルチポートメモリＭＥＭとの両方に対する共通のデータ入力ポートになる。アドレス入力ポートＡｄｄｒＩｎはアドレス計算ユニットＡＵに結合され、アドレス計算ユニットＡＵは、マルチポートメモリＭＥＭのうちの自身の対応するアドレスポートＡｄｄｒに結合される。データ入力ポートＤａｔＩｎはレジスタファイルＲＦに結合される。レジスタファイルＲＦはアドレス計算ユニットＡＵによってアクセス可能となる。
【００２４】
マルチポートメモリＭＥＭはデータの読み出し及び書き込みのためのコマンドをサポートする。アドレスポートＡｄｄｒを使用して、データはデータ出力ポートＤａｔＯｕｔを介してＲＡＭメモリから読み出され得る。データ出力ポートＤａｔＯｕｔから読み出される四つのデータ要素は一つのベクトルに組み合わされ得る。四つのデータ要素のセットは、データ入力ポートＤａｔＩｎを介すると共にメモリアドレッシングのためのアドレスポートＡｄｄｒを使用してマルチポートメモリに書き込まれ得る。
【００２５】
アドレス構成ユニットＡＣＵは、ベースメモリアドレスに対してオフセットのセットを特定する構成命令をサポートする。構成命令が実行されると、オフセット値は、対応するデータ入力ポートＤａｔＩｎを介してレジスタファイルＲＦの各々に書き込まれる。その後、アドレス計算ユニットＡＵが自身の対応するレジスタファイルＲＦからオフセット値をフェッチし、当該値を内部に記憶する。
【００２６】
プロセッサＰＲＯＣがメモリシステムＭＳに読み出し命令を発行する場合、ベースメモリアドレスはアドレスポートＡｄｄｒＩｎにもたらされる。アドレス計算ユニットＡＵはアドレス入力ポートＡｄｄｒＩｎからベースメモリアドレスの値を取り出し、自身の対応するオフセット値を加える。アドレス計算ユニットＡＵは、対応するアドレスポートＡｄｄｒに、メモリアドレスの結果としてもたらされるセットを送信し、その後、読み出しコマンドがマルチポートメモリＭＥＭに発行される。データ要素の結果としてもたらされるセットは、マルチポートメモリＭＥＭのデータ出力ポートＤａｔＯｕｔにもたらされる。プロセッサＰＲＯＣは、ＲＡＭメモリにデータ要素のセットを書き込むために、メモリシステムＭＳに書き込み命令も発行する。アドレスポートＡｄｄｒＩｎはベースメモリアドレスを受信する。アドレス計算ユニットＡＵは、ベースメモリアドレス及び対応するオフセット値を使用してメモリアドレスのセットを計算する。メモリアドレスの結果としてもたらされるセットは、マルチポートメモリＭＥＭの対応するアドレスポートＡｄｄｒに送信される。データ要素は、マルチポートメモリＭＥＭのデータ入力ポートＤａｔＩｎに送信される。その後、書き込みコマンドがマルチポートメモリＭＥＭに発行され、データ要素がＲＡＭメモリに書き込まれる。
【００２７】
他の実施例において構成命令は、オフセットのセットを計算するためのアドレス構成ユニットＡＵに発行されるコマンドのセットを有していてもよい。
【００２８】
適切な構成命令を使用して、レジスタファイルＲＦによって受信されるオフセットのセットは、ベースメモリアドレスと共に、アドレス計算ユニットＡＵがメモリアドレスの任意のセットを規定し得るようにもたらされるであろう。メモリアドレスの当該セットを使用して、データ要素のセットは同時にマルチポートメモリＭＥＭに書き込まれ得るか、又はマルチポートメモリＭＥＭから取り出され得る。それ故にメモリシステムＭＳは、一つのベースメモリアドレスを使用して任意のメモリ位置からデータ要素のセットを取り出すことを可能にする利点を有するベクトルメモリシステムとして動作する。更にマルチポートメモリと比較してメモリシステムＭＳは、メモリアドレスを使用して、外部ソースからのメモリアドレスのセットが必要とされる代わりにデータ要素のセットがアドレッシングされ得るという利点を有している。その結果、特に符号の大きさの低減が重要事項となっている超長命令語プロセッサの対象となる命令幅は低減され得る。
【００２９】
本発明の保護範囲は上述の実施例に限定されるものではなく、当業者が特許請求の範囲からはずれることなく多くの代わりの実施例を設計することができることは注目されるべきである。請求項において、括弧の間に置かれる請求項の参照番号は、いずれも当該請求項の保護範囲を限定するものではない。単語“有する”は、請求項に記述される構成要素以外に構成要素又はステップの存在を排除するものではない。構成要素に先行する冠詞“a”又は“aｎ”は、複数の構成要素を排除するものではない。本発明は、いくつかの独特な構成要素を有するハードウエアによって、及び好適にプログラミングされたコンピュータによって実現可能である。いくつかの手段を列挙する装置の請求項において、いくつかのこれらの手段は、ハードウエアの一つ及び同じ構成要素によって具現化されることが可能である。ある手段が相互に異なる従属請求項において再び引用されるという事実は、これらの手段の組み合わせが効果的に使われ得ないことを示すものではないということに過ぎない。
【図面の簡単な説明】
【００３０】
【図１】本発明によるコンピュータシステムの概略図を示す。
【図２】マルチポートメモリ及びアドレス構成手段を有するメモリシステムの概略図を示す。
【図１】
2005534120.tif 000003
【図２】
2005534120.tif 000004
【国際調査報告】
2005534120.tif 000005
2005534120.tif 000006