(57)【特許請求の範囲】
【請求項１】
ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、
論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタを備え、
前記各リネーミングレジスタは、それぞれ１ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、
前記セレクタは、ライトデータか前記組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトルリネーミング方式。
【請求項２】
前記論理ベクトルレジスタごとに２個の物理ベクトルレジスタが前記複数のリネーミングレジスタとして設けられている、請求項１に記載のベクトルリネーミング方式。
【請求項３】
ベクトル型計算機であって、
レジスタリネーミングを制御する制御手段と、
論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタと、
演算器と、
前記制御手段によって制御されて前記複数のリネーミングレジスタのうちの１つの出力を前記演算器に供給する第１のセレクタと、
前記演算器の演算結果を入力して前記複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、
を備え、
前記各リネーミングレジスタは、それぞれ１ビットのデータを保持するセルと、セルごとに設けられた第２のセレクタとを有し、
前記第２のセレクタは、前記書き込み制御手段からのライトデータか前記組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、
マスクが設定されている場合には前記セル間でセルの値をコピーし、前記マスクが設定されていないときには前記ライトデータをいずれかのセルに書き込むようにした、ベクトル型計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル型計算機に関し、特に、レジスタリネーミングを可能にして演算スループットを向上させるためのレジスタリネーミング方式と、このようなレジスタリネーミング方式を採用したベクトル型計算機とに関する。
【背景技術】
【０００２】
計算機システムにおいてその性能を向上させるためには、単位時間当たりに実行できる命令数を高めることが必要である。特に、持続的な性能(Sustained Performance)の向上のためには、命令を発行するレート（Ｉｓｓｕｅレート）を向上することが必要である。
【０００３】
計算機システムにおいて、演算処理は一般にレジスタ間で行われるが、パイプライン処理を用いている場合に、あるレジスタに対する命令を発行した後、同じレジスタが別の命令を実行できるようになるためには一定のマシンサイクルを必要とする。ハードウェアには、プログラムが前提とする個数よりも多くの個数のレジスタを用意しておき、プログラム上では同一のレジスタに対するものである複数の命令があるときに、命令の実行時において、プログラムで規定されているレジスタとは別のレジスタを用いるようにすることによって、演算の高速化が可能になる。このような手法で演算の高速化を図るものが、レジスタリネーミング（レジスタの名前の付け替え）である。
【０００４】
一般的に行われているレジスタリネーミングでは、ある演算結果を書き込むレジスタに別名を与え、リソースの依存性を緩和する。たとえば、命令Ａが論理リソースＸに対してデータを読み出している途中で、同一の論理リソースＸに対する書き込みを行う後続命令Ｂに関して、論理リソースＸに対して物理リソースＸ１、Ｘ２をそれぞれＡ，Ｂに割り当てておくことで、Ｂ実行によるデータの書きつぶしを防ぐことが可能となる。これは命令Ｂの発行制限の緩和を意味し、発行レートの向上が見込める。
【０００５】
しかしながら、レジスタリネーミングをベクトル型計算機に適用しようとする場合には、ベクトル型計算機には、要素ごとに計算の有無を切り替えることのできるマスク機能が設けられており、単純にリネーミングメカニズムを実現できない、という問題点がある。たとえば前述の命令Ｂにマスクがかかっていた場合、マスク対象の要素には、演算結果の元の値、すなわち命令Ａの実行結果の対応する要素を格納する必要がある。これは、演算がマスクされている以上、あるレジスタに既に書き込まれたデータが、あとに実行される命令で参照される可能性があるからである。ベクトル計算機におけるマスク機能については、例えば、特許文献１、２に記載されている。
【０００６】
そのため、単純に複数の独立したリソースをＡ，Ｂに割り当てるだけで不十分で、そのリソース間での値の引渡しが必要となり、既存のレジスタリネーミング技術を単純に導入することができなかった。リソース間での値の引渡しを行うようにした構成は、例えば、特許文献３に記載されている。
【特許文献１】特開昭６０−１５０４７３号公報
【特許文献２】特開平１−２８４９７０号公報
【特許文献３】特開２０００−１７２５０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように従来のレジスタリネーミングの手法は、命令の発行レートを向上することによって演算処理性能を高める手法として広く用いられているものの、ベクトル計算機にはそのままでは適用できない、という問題点を有する。特許文献３に記載されたようにリソース間で値の引渡しを行えるような構成を採用する場合には、ハードウェア構成が複雑になる、という問題点がある。
【０００８】
そこで本発明の目的は、単純なハードウェアを用い、ベクトル型計算機においてマスク演算動作とレジスタリネーミングを同時に実現することが可能な、ベクトルリネーミング方式と、このようなベクトルリネーミング方式を採用したベクトル型計算機とを提供することにある。
【課題を解決するための手段】
【００１０】
本発明のベクトルリネーミング方式は、ベクトル計算機においてマスク演算機能を実現したままレジスタリネーミングを可能にするベクトルリネーミング方式であって、論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタを備え、各リネーミングレジスタは、それぞれ１ビットのデータを保持するセルと、セルごとに設けられたセレクタとを有し、セレクタは、ライトデータか組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。
【００１２】
本発明のベクトル型計算機は、レジスタリネーミングを制御する制御手段と、論理ベクトルレジスタに対応するとともに相互に組をなす複数のリネーミングレジスタと、演算器と、制御手段によって制御されて複数のリネーミングレジスタのうちの１つの出力を演算器に供給する第１のセレクタと、演算器の演算結果を入力して複数のリネーミングレジスタのいずれかに格納する書き込み制御手段と、を備え、各リネーミングレジスタは、それぞれ１ビットのデータを保持するセルと、セルごとに設けられた第２のセレクタとを有し、第２のセレクタは、書き込み制御手段からのライトデータか組内の他のセルが保持する値かをマスク信号に応じて対応するセルに供給し、マスクが設定されている場合にはセル間でセルの値をコピーし、マスクが設定されていないときにはライトデータをいずれかのセルに書き込むようにしたものである。
【発明の効果】
【００１３】
本発明は、論理ベクトルレジスタにマッピングされる複数のリネーミングレジスタにおいて、これらのリネーミングレジスタを結合することによってマスク演算に必要な値のコピーを行えるようにすることにより、単純なセル構成によって、マスク演算を実現したままレジスタリネーミングを実現をできるという効果がある。特に本発明は、大掛かりなハードウェアを必要とせずにマスク演算とレジスタリネーミングとを両立させているので、低コストで、ベクトル命令の発行レートを大幅に向上させることができる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。図１は本発明の実施の一形態のベクトルリネームミング方式で用いられるセルセット（セルの組）の構成を示している。
【００１５】
図１に示すセルセットは、それぞれ１ビットのＲＡＭ（ランダムアクセスメモリ）セルＣ０，Ｃ１を備えており、それぞれのビットは、同一論理レジスタにマップされる２つの物理レジスタに対応している。ここでは、１つの論理ベクトルレジスタが２つの物理ベクトルレジスタのいずれかにリネーミングされるものとして、２ビット分のセルを有するが、実際には、リネーミングの形態に応じて、３個以上のセルを用いて１つのセルセットを構成してもよい。
【００１６】
これらのセルは、ハードウェア上に近接してレイアウトされることが望ましい。このようにセルが集まった単位をセルセットと読んでいる。
【００１７】
各セルＣ０，Ｃ１に対してデータを書き込む経路には、それぞれ、セレクタＳ０，Ｓ１が設けられている。セルに対するライトデータＷＤがセルセットに入力しており、このデータＷＤは、セルＣ０，Ｃ１のいずれかあるいは両方に対して書き込みを行う際の入力データとなる。セレクタＳ０には、セルＣ１の出力ＲＤ１も接続し、セレクタＳ１にはセルＣ０の出力ＲＤ０も接続する。結局、セレクタＳ０，Ｓ１を介して、セルＣ０，Ｃ１がたすきがけとなるように接続していることになる。セレクタＳ０，Ｓ１には、マスク信号ＭＡＳＫが与えられている。マスク信号ＭＡＳＫがアクティブ（“１”）であれば、セレクタＳ０，Ｓ１は、セルＣ０，Ｃ１に対してそれぞれ書込データとして、相手側セルの出力（セルＣ１，Ｃ０の出力）を供給し、ＭＡＳＫ信号がアクティブでなければ（すなわち“０”であれば）、ライドデータＷＤを供給する。各セルＣ０，Ｃ１からは、それぞれ、リードデータＲＤ０，ＲＤ１が読み出される。なお、ベクトル計算機における各演算器（後述するＦＭＡＣ７０，７３、ＦＤＶ７１，７４、ＦＬＯＧＩＣ７２，７５）に対してリードＲＤ０，ＲＤ１のどちらが供給されるかは、リソース管理部４からの選択信号４２によって制御される後述するセレクタ８０によって選択される。セレクタは、対をなして設けられた物理ベクトルレジスタから、論理レジスタにマップされるものを選択してその出力を各演算器に供給するために設けられている。
【００１８】
各セルＣ０，Ｃ１に対しては、それぞれ、ライトイネーブル信号ＷＥ０，ＷＥ１が与えられている。ＷＥ０はＣ０に対するライトイネーブルであり、この信号がアクティブであれば、そのときセレクタＣ０で選択されている信号がセルＣ０に書き込まれる。すなわち、ＷＥ０がアクティブであれば、セルＣ０に対して、データＷＤあるいはセルＣ１の出力値が書き込まれる。例えば、マスク信号ＭＡＳＫが“１”のときに信号ＷＥ０がアクティブ（“１”）になると、セルＣ０にはセルＣ１の内容が書き込まれる、すなわち値がコピーされる。信号ＭＡＳＫが“０”の時に信号ＷＥ０がアクティブになると、セルＣ０にはライトデータＷＤの値が書き込まれる。同様に、信号ＷＥ１はセルＣ１に対するライトイネーブル信号であり、この信号ＷＥ１がアクティブになると、セルＣ１に対して、データＷＤあるいはセルＣ０の出力値が書き込まれる。
【００１９】
結局、このセルセットでは、マスク信号（マスクビット）ＭＡＳＫを指定することで、書き込みデータを外部からのライトデータＷＤ、あるいはセルセット内部の自セルの反対側のセル（自セルがセルＣ０であればセルＣ１側）のデータを切り替えて書き込むことが可能である。
【００２０】
ベクトル計算機には、演算要素ごとに演算の可否を指定できる演算マスク機能が存在し、マスクされた要素に対して値を変化させない命令であるベクトルマスク対象命令が存在する。そのため、ベクトル計算機におけるリネーミング機構では、マスクされた「変化しない」データを考慮することが必要である。論理レジスタＶＲ０に物理レジスタＶＲＲ１００，ＶＲＲ１０８が対応する場合、論理ベクトルレジスタＶＲ０と物理ベクトルレジスタＶＲＲ１００，ＶＲＲ１０８のうちの対応する要素との間には、情報の受け渡しパスが必要となる。
【００２１】
本実施形態のセルセットを用いることにより、セルセット内のＶＲＲ（物理ベクトルレジスタ）セルのいずれかに元のデータが入っていれば、その値を反対側にあるセルの更新時に受け継ぐことが可能となり、リネーミング動作とマスク動作を両立されることが可能となる。本実施形態では、このようなセルセットが、論理ベクトルレジスタのサイズだけ存在することになる。たとえば、６４ビット構成で２５６エントリのベクトルレジスタを論理的に８本持つアーキテクチャでは、上述したセルセットを６４×２５６×８＝１３１，０７２個用意することになる。各セルセットが２セルから構成されているとすれば、２６２，１４４個の物理セルが存在することになる。
【００２２】
図２は、上述したセルセットを用いることによってレジスタリネーミングを実行するベクトル計算機の構成の一例を示している。このベクトル計算機は、一般的な命令キャッシュなどを含む命令供給部１と、命令供給部１からの命令をデコードするデコーダ２と、デコードされた命令の発行制御を行う発行制御部３と、発行制御部３で発行された命令が用いるリソースの管理を行うリソース管理部４と、を備えている。リソース管理部４は、発行制御部３が発行する命令について、特にレジスタリネーミング機能のために論理ベクトルレジスタ番号と物理ベクトルレジスタ番号の対応テーブル４１を用意する。図３は、対応テーブル４１の内容の一例を示している。
【００２３】
ここでＶＲＲ１０は、ベクトルリネーミングレジスタであり、論理的にベクトルレジスタＶＲ０〜ＶＲ７を構成する場合の実体のレジスタ群であり、物理ベクトルレジスタＶＲＲ１００〜ＶＲＲ１１５の１６個から構成される。各物理ベクトルレジスタは、６４ビット幅を持つデータレジスタを２５６エントリ備える。ベクトルリネーミングレジスタＶＲＲ１０には、発行制御部３から制御信号３１が供給されている。
【００２４】
なお、論理レジスタＶＲ０の物理的な値は、物理ベクトルレジスタＶＲＲ１００あるいは物理ベクトルレジスタＶＲＲ１０８のいずれかに格納される。同様に論理レジスタＶＲ１の物理的な値は物理ベクトルレジスタＶＲＲ１０１あるいは物理ベクトルレジスタＶＲＲ１０９のいずれかに格納され、以下同様に、論理レジスタと物理ベクトルレジスタの対応付けがなされる。
【００２５】
ベクトル計算機には、加算及び乗算を行うＦＭＡＣ（演算器）７０，ＦＭＡＣ７３と、除算を行うＦＤＶ（除算器）７１，ＦＤＶ７４と、論理演算を行うＦＬＯＧＩＣ（論理演算器）７２，ＦＬＯＧＩＣ７５が設けられ、また、それぞれの計算結果が送られてくるデータ書き込み制御部９が設けられている。データ書き込み制御部９は、論理ベクトルレジスタ番号と、割り当てられた物理ベクトルレジスタ番号（すなわちＶＲＲ１００〜ＶＲＲ１１５）の対応付け、およびマスク情報から、ベクトルリネーミングレジスタＶＲＲ１０の適当な場所に、計算結果として得られたデータ、あるいは物理べクトルレジスタＶＲＲ１００〜１１５に既に書き込まれているデータを書き込む。
【００２６】
なお、対をなす物理ベクトルレジスタの出力のいずれか一方を選択するためにセレクタ８０が設けられており、セレクタ８０で選択された物理ベクトルレジスタから読出されたベクトルデータが、ＦＭＡＣ７０，ＦＤＶ７１，ＦＬＯＧＩＣ（論理演算器）７２，ＦＭＡＣ７３，ＦＤＶ７４，ＦＬＯＧＩＣ７５に供給される。セレクタ８０はリソース管理部４からの選択信号４２によって制御される。例えば、物理ベクトルレジスタＶＲＲ１００および物理ベクトルレジスタＶＲＲ１０８の一方がセレクタ８０によって選択されるようになっている。
【００２７】
さらにこのベクトル計算機には、ＬＳユニット５と、外部記憶メモリ６とが設けられている。ＬＳユニット６は、物理ベクトルレジスタＶＲＲ１００〜１１５からのデータを外部記憶メモリ６にストアする動作、また外部記憶メモリ６からデータをロードして物理ベクトルレジスタＶＲＲ１００〜１１５のいずれかに書き込む動作を管理する。
【００２８】
次に、このベクトル計算機におけるレジスタリネーミングの動作について説明する。
【００２９】
以下の説明において、「ベクトル」とは、複数の要素データを内在するデータ列を意味する。ここではベクトルは、最大２５６個の６４ビット要素データを持つこととする。以下では、図４に示す命令列を実行するものとした場合の処理を説明する。図４に示す命令列において、「ＶＡＤＤ」はオペランドで指定した２つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの加算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。
【００３０】
「ＶＳＵＢ」は、オペランドで指定した２つの論理ベクトルレジスタに格納されたベクトルデータ同士の要素ごとの減算を行い、結果をディスティネーションベクトルレジスタに格納する命令である。
【００３１】
ここで、ＶＡＤＤ命令およびＶＳＵＢ命令は、いずれも、演算を行わない要素を選択的に指定すること（すなわちマスクをかける）が可能である。ＶＦＭＫ命令は、ベクトルのマスクを変更する命令である。ベクトル演算を実際に行う要素数（ＶＬ；ベクトル長）は、ソフトウエアによって０〜２５６の間で変化させることが可能である。ＬＶＬ命令は、演算対象のベクトル要素数を変更する命令である。たとえばＬＶＬ命令でＶＬを１０と指定すると、ベクトル演算はベクトルレジスタに含まれる要素のうち、先頭から１０要素だけに対して行われる。
【００３２】
まず、図４に示した命令群において、１行目の命令ＬＶＬが命令供給部１から供給され、デコーダ２でデコードされ、発行制御部３においてＬＶＬ命令が発行され、ベクトル長ＶＬが４にセットされる。ＬＶＬ命令でＶＬとして４が指定されたことにより、以下では、ベクトル演算は、ベクトルレジスタに含まれている要素のうち最初の４要素に対して行われることになる。このＬＶＬ命令の終了時における、リソース管理部４内の対応テーブル４１、マスク情報、ＶＬ、およびリネーミングレジスタ（物理ベクトルレジスタ）ＶＲＲ１００，ＶＲＲ１０１，ＶＲＲ１０２，ＶＲＲ１０８の値を図５に示す。図５に示すように、ＶＬに４という値がセットされている。なお、現時点では、論理ベクトルレジスタＶＲ０に対する物理ベクトルレジスタとして、ＶＲＲ１００が割り振られている。これは、この時点での物理ベクトルレジスタＶＲＲ１００の値が論理レジスタＶＲ０の値になっているということを示している。
【００３３】
次に、図４に示す命令群のうち２行目の命令ＶＦＭＫが命令供給部１から供給され、デコーダ２でデコードされる。発行制御部３においてＬＦＭＫ命令が発行され、ベクトルマスクに“０１０１”がセットされる。オペランドを“０１０１”とするＶＦＭＫ命令は、マスクが“１”になっている要素、すなわちこの場合は、第２の要素および第４の要素に対して演算を行わないようなマスクをかける命令である。
【００３４】
このＶＦＭＫ命令の終了時における、リソース管理部４内の対応テーブル４１、マスク情報、ＶＬ、およびリネーミングレジスタＶＲＲ１００，ＶＲＲ１０１，ＶＲＲ１０２，ＶＲＲ１０８の値を図６に示す。図６の通り、マスク情報に“０１０１”という値がセットされている。
【００３５】
次に、３行目の命令ＶＡＤＤが命令供給部１から供給され、デコーダ２でデコードされる。図示した例では、この命令ＶＡＤＤは、論理ベクトルレジスタＶＲ１，ＶＲ２に格納された値のベクトル加算を行って論理ベクトルレジスタＶＲ０に格納するものである。
【００３６】
発行制御部３においてＶＡＤＤ命令が発行される。その際、リソース管理部４は、このＶＡＤＤ命令の結果を書き込む論理レジスタＶＲ０に対して、物理ベクトルレジスタＶＲＲ１０８側を割り当て、リソース管理部４内の対応情報を物理ベクトルレジスタＶＲＲ１０８に書き換える。ＶＡＤＤ命令はＦＭＡＣ７０によって実行され、その計算結果は、データ書き込み制御部９に送られる。
【００３７】
なお、このＶＡＤＤ命令を実行させた結果を書き込む動作は、データ書き込み制御部９によって行われる。図７は、データ書き込み制御部９からの制御データを示している。データ書き込み制御部９からは、要素番号、書き込み物理ベクトルレジスタＶＲＲのレジスタ名、計算結果であるライトデータＷＤ、マスク情報ＭＡＳＫがリネーミングベクトルレジスタＶＲＲ１０に送られる。そして、リネーミングベクトルレジスタＶＲＲ１０内の対応するレジスタ、すなわち物理ベクトルレジスタＶＲＲ１０８内にあるセルセットにおいて、適切な書き込みが行われる。
【００３８】
たとえば、要素０の演算結果に関しては、マスク情報が“０”なので、計算結果である“１２”が、ライトデータＷＤとして物理ベクトルレジスタＶＲＲ１００側のセルに書き込まれる。図１に示したセルセットにおいて、セルＣ０側に物理ベクトルレジスタＶＲＲ１００のデータ、セルＣ１側に物理ベクトルレジスタＶＲ１０８のデータが書き込まれているとすると、ライトイネーブル信号ＷＥ１が“１”となり、かつＭＡＳＫ信号は“０”のままで、セルＣ１に対してライトデータＷＤである“１２”が書き込まれる。
【００３９】
要素１の演算結果に関しては、マスク情報が“１”すなわちアクティブであるので、物理ベクトルレジスタＶＲＲ１００側のデータである“１”が反対側の物理ベクトルレジスタＶＲＲ１０８側のセルに書き込まれる。図１のセルセットにおいては、セルＣ０側に物理ベクトルレジスタＶＲＲ１００側のデータ、セルＣ１側に物理ベクトルレジスタＶＲ１０８側のデータが書き込まれているとすると、ライトイネーブル信号ＷＥ１が“１”となり、かつＭＡＳＫ信号は“１”となって、セルＣ１に、セルＣ０の格納値である“１”が書き込まれる。
【００４０】
このＶＡＤＤ命令の実行終了時における、リソース管理部４内の対応テーブル４１、マスク情報、ＶＬ、およびリネーミングレジスタＶＲＲ１００，ＶＲＲ１０１，ＶＲＲ１０２，ＶＲＲ１０８の値を図８に示す。図８に示す通り、ＶＡＤＤ命令の実行結果は、割り当てられた物理ベクトルレジスタＶＲＲ１０８に、マスク情報を反映した形で格納されている。
【００４１】
最後に、４行目のＶＳＵＢ命令が命令供給部１から供給され、デコーダ２でデコードされる。図示したものは、このＶＳＵＢ命令は、論理ベクトルレジスタＶＲ２の内容から論理ベクトルレジスタＶＲ１の内容をベクトル減算し、論理ベクトルレジスタＶＲ０に格納するものである。
【００４２】
発行制御部３においてＶＳＵＢ命令が発行される。その際、リソース管理部４は、このＶＳＵＢ命令の結果を書き込む論理レジスタＶＲ０に対して、物理ベクトルレジスタＶＲＲ１００側を割り当て、リソース管理部４内の対応情報を物理ベクトルレジスタＶＲＲ１００に書き換える。ＶＳＵＢ命令はＦＭＡＣ７０によって実行され、その計算結果は、データ書き込み制御部９に送られる。
【００４３】
前述のＶＡＤＤ命令の場合と同様に、このＶＳＵＢ命令の実行結果の書き込み動作は、データ書き込み制御部９によって行われる。図９は、データ書き込み制御部９からの制御データを示している。物理ベクトルレジスタＶＲＲ１００内の対応するレジスタ、すなわち物理ベクトルレジスタＶＲＲ１００内にあるセルセットにおいて、適切な書き込みが行われる。
【００４４】
たとえば、要素０の演算結果に関しては、マスク情報が“０”であるので、計算結果である“４”が、ライトデータＷＤとして物理ベクトルレジスタＶＲＲ１００側のセルに書き込まれる。図１のセルセットにおいては、セルＣ０側にＶ物理ベクトルレジスタＲＲ１００側のデータ、セルＣ１側に物理ベクトルレジスタＶＲＲ１０８側のデータが書き込まれているとすると、ライトイーネーブル信号ＷＥ０が“１”となり、かつＭＡＳＫ信号は“０”のままで、セルＣ０に、ライトデータＷＤである“１２”が書き込まれる。
【００４５】
要素１の演算結果に関しては、マスク情報が“１”であるので、物理ベクトルレジスタＶＲＲ１００側のデータである“１”が物理ベクトルレジスタＶＲＲ１０８側のセルに書き込まれる。図１のセルセットにおいては、セルＣ０側に物理ベクトルレジスタＶＲＲ１００のデータ、セルＣ１側に物理ベクトルレジスタＶＲ１０８側のデータが書き込まれているとすると、ライトイネーブル信号ＷＥ０が“１”となり、かつＭＡＳＫ信号は“１”となって、セルＣ０には、セルＣ１の格納値である“１”が書き込まれる。
【００４６】
このＶＳＵＢ命令の終了時における、リソース管理部４内の対応テーブル４１、マスク情報、ＶＬ、およびリネーミングレジスタＶＲＲ１００，ＶＲＲ１０１，ＶＲＲ１０２，ＶＲＲ１０８の値を図１０に示す。図１０に示す通り、ＶＳＵＢ命令の実行結果は、割り当てられた物理ベクトルレジスタＶＲＲ１００に、マスク情報を反映した形で格納されている。
【００４７】
このようにして、本実施形態によれば、ベクトル計算機においてマスク演算が行われていたとしても、リネームされたベクトルレジスタ側にも正常な結果が書き込まれることが保障できる。
【００４８】
なお、上述では一つ一つの命令が非パイプライン的に動作した例を説明したが、当然のことながら、各命令はパイプライン的に動作し、それぞれの命令動作の一部が互いにオーバーラップしてもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の一形態のベクトルリネーミング方式で用いられるセルセットを示す回路図である。
【図２】本発明の実施の一形態のベクトル計算機の概略構成を示すブロック図である。
【図３】リソース管理部内に設けられる対応テーブルの内容の一例を示す図である。
【図４】ベクトル計算機に与えられる命令群の一例を示す図である。
【図５】ＬＶＬ命令の終了時における、対応テーブル、マスク情報、ＶＬ、およびリネーミングレジスタの値を示す図である。
【図６】ＶＦＭＫ命令の終了時における、対応テーブル、マスク情報、ＶＬ、およびリネーミングレジスタの値を示す図である。
【図７】データ書き込み制御部からの制御データを示す図である。
【図８】ＶＡＤＤ命令の終了時における、対応テーブル、マスク情報、ＶＬ、およびリネーミングレジスタの値を示す図である。
【図９】データ書き込み制御部からの制御データを示す図である。
【図１０】ＶＳＵＢ命令の終了時における、対応テーブル、マスク情報、ＶＬ、およびリネーミングレジスタの値を示す図である。
【符号の説明】
【００５０】
１    命令供給部
２    デコーダ
３    発行制御部
４    リソース管理部
５    ＬＳユニット
６    外部記憶メモリ
９    データ書き込み制御部
３１    制御信号
４１    対応テーブル
４２    選択信号
８０，Ｓ０，Ｓ１    セレクタ
７０，７３    ＦＭＡＣ（演算器）
７１，７４    ＦＤＶ（除算器）
７２，７５    ＦＬＯＧＩＣ（論理演算器）
Ｃ０，Ｃ１    セル
ＶＲ    論理レジスタ
ＶＲＲ    物理ベクトルレジスタ
【図１】
0005145659.tif 000002
【図２】
0005145659.tif 000003
【図３】
0005145659.tif 000004
【図４】
0005145659.tif 000005
【図５】
0005145659.tif 000006
【図６】
0005145659.tif 000007
【図７】
0005145659.tif 000008
【図８】
0005145659.tif 000009
【図９】
0005145659.tif 000010
【図１０】
0005145659.tif 000011