(57)【特許請求の範囲】
【請求項１】
スカラ命令及びベクトル命令の双方を処理するベクトル処理装置のオペランドキャッシュにおいて、
スカラデータエリア専用オペランドキャッシュと、
ベクトル／スカラ共用データエリアオペランドキャッシュと、
前記スカラデータエリア専用オペランドキャッシュからの出力と前記ベクトル／スカラ共用データエリアオペランドキャッシュからの出力とを選択する選択手段とを有し、
前記選択手段は、スカラロード／ストア命令のアドレスが入力されたとき、該アドレスがメインメモリのスカラデータ専用エリアの範囲内に存在する場合、前記スカラデータエリア専用オペランドキャッシュからの出力を選択することを特徴とし、
前記ベクトル／スカラ共用データエリアオペランドキャッシュのキャッシュデータを無効にするキャッシュ無効手段をさらに有し、
該キャッシュ無効手段は、ベクトルストア命令のアドレスが入力されたとき、前記ベクトル／スカラ共用データエリアオペランドキャッシュに前記アドレスと一致するアドレスを有する場合、該アドレスを無効にすることを特徴とし、
前記ベクトル／スカラ共用データエリアオペランドキャッシュは、
オペランドキャッシュデータを格納している第１のデータアレイと、
該第１のデータアレイに格納されているオペランドキャッシュデータの前記メインメモリのアドレスを格納している第１のアドレスアレイと、
前記第１のデータアレイに格納されているオペランドキャッシュデータの有効／無効情報を格納している第１の有効情報アレイと、
該第１の有効情報アレイから出力された有効／無効情報を基に、前記スカラロード／ストア命令により入力されたアドレスが前記ベクトル／スカラ共用データエリアオペランドキャッシュに存在するか否かを判定する第１のキャッシュヒット判定手段と、
該第１のキャッシュヒット判定手段の判定結果を基に、前記第１のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第１のゲート回路と、
を有することを特徴とするベクトル処理装置のオペランドキャッシュ。
【請求項２】
前記キャッシュ無効手段は、
前記第１のアドレスアレイのコピーを格納しているフラッシュアドレスアレイと、
前記ベクトルストア命令により入力されたアドレスと前記フラッシュアドレスアレイから出力されたアドレスとを比較する比較器と、
該比較器からの出力を基に、前記第１の有効情報アレイの前記アドレスに対応する有効／無効情報を無効にする有効情報リセット信号を生成する有効情報リセット信号生成回路と、
を有することを特徴とする請求項１記載のベクトル処理装置のオペランドキャッシュ。
【請求項３】
前記フラッシュアドレスアレイ、前記比較器及び前記有効情報リセット信号生成回路は、前記ベクトル／スカラ共用データエリアオペランドキャッシュのエントリ数分、存在することを特徴とする請求項２記載のベクトル処理装置のオペランドキャッシュ。
【請求項４】
前記キャッシュ無効手段は、
前記ベクトルストア命令が実行されたことを示すイネーブル信号が入力されたとき、前記第１の有効情報アレイの全情報を無効にする全情報無効論理生成部を有することを特徴とする請求項１記載のベクトル処理装置のオペランドキャッシュ。
【請求項５】
前記スカラデータエリア専用オペランドキャッシュは、
オペランドキャッシュデータを格納している第２のデータアレイと、
該第２のデータアレイに格納されているオペランドキャッシュデータの前記メインメモリのアドレスを格納している第２のアドレスアレイと、
前記第２のデータアレイに格納されているオペランドキャッシュデータの有効／無効情報を格納している第２の有効情報アレイと、
該第２の有効情報アレイから出力された有効／無効情報を基に、前記スカラロード／ストア命令により入力されたアドレスが前記スカラデータエリア専用オペランドキャッシュに存在するか否かを判定する第２のキャッシュヒット判定手段と、
該第２のキャッシュヒット判定手段の判定結果を基に、前記第２のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第２のゲート回路と、
を有することを特徴とする請求項１から４のいずれか１項に記載のベクトル処理装置のオペランドキャッシュ。
【請求項６】
前記選択手段は、
前記スカラロード／ストア命令により入力されたアドレスが前記メインメモリのスカラデータ専用エリアの範囲内にあるか否かを判定し、論理値を出力するアドレス境界判定回路と、
該アドレス境界判定回路により判定された判定結果を基に、前記第１のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第３のゲート回路と、
前記アドレス境界判定回路により出力された論理値を反転する反転回路と、
該反転回路により反転された論理値を基に、前記第２のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第４のゲート回路と、
を有することを特徴する請求項１から５のいずれか１項に記載のベクトル処理装置のオペランドキャッシュ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スカラ命令とベクトル命令の双方を扱うことができるベクトル処理装置のオペランドキャッシュに関し、特に、スカラ命令の処理性能を向上させる機能を備えたベクトル処理装置のオペランドキャッシュに関する。
【０００２】
【従来の技術】
従来から、ＣＰＵと主記憶装置との速度ギャップを埋め、メモリアクセスの高速化を図るために、キャッシュメモリが用いられる。スカラ命令とベクトル命令とを扱うことができるベクトル処理装置においては、主記憶装置へのベクトルデータの連続書き込み要求であるベクトルストア命令が実行されると、キャッシュと主記憶装置との内容の一致性を確保するため、キャッシュに当該書き込みのエントリと同一のエントリが存在すれば、そのエントリの有効ビットの無効化を行う処理が必要である。
【０００３】
従来のベクトル処理装置におけるオペランドキャッシュのブロック図を図４に示す。図４において、スカラロード／ストア命令が実行されると、そのアドレス５２０の一部のビットを利用して、アドレスアレイ５０、キャッシュヒット判定部６０及びデータアレイ７０にアクセスされる。
【０００４】
アドレスアレイ５０において、該当するアドレスに登録されているキャッシュ内データの上位アドレスを検出する。該検出した上位アドレスを基に、キャッシュエントリ有効ビットアレイ４０において、そのエントリが有効であるかどうかを検査する。このエントリの有効／無効情報と、アドレスアレイ５０からの対応するアドレスと、アドレス５２０の上位ビットとからキャッシュヒット判定部６０において、キャッシュヒットかどうかを判別する。
【０００５】
一方、アドレス５２０の下位ビットを使用して同時にデータアレイ７０にアクセスし、現在キャッシュに登録されているオペランドデータを読み出しておく。キャッシュヒット判定部６０における判別結果は、データアレイ７０からの読み出し結果を入力とするゲート回路８０に入力され、判定結果がキャッシュヒットであった場合に、データアレイ７０からの読み出しデータをオペランドキャッシュ出力５３０として、その後の処理部へ送出する。
【０００６】
ここまでの動作は通常のキャッシュメモリと同様である。図４においては、メインメモリ上のカラムのブロックと１対１に対応させるダイレクトマップ形式のオペランドキャッシュ構成に関する説明となっている。なお、よりキャッシュヒット率を向上させるために、任意のメインメモリブロックを任意のキャッシュメモリブロックに写像するフルアソシアティブ方式やセットアソシアティブ方式の構成が採用されることは周知の事実である。ここでのキャッシュメモリ方式は、本発明には何ら影響を与えるものではなく、従って、本発明はこのキャッシュメモリの方式自体には依存しない。
【０００７】
一方、ベクトル処理装置のオペランドキャッシュにおいて、スカラストア命令ではなく、ベクトルストア命令が実行される時は、通常のキャッシュメモリの構成に追加してキャッシュ無効化処理部が必要になる。これは、通常のスカラ処理装置においては、ストア命令がクロックサイクル当たり１ないしは多くても２命令程度であるのに対して、ベクトル処理装置においては、ベクトルストア命令がクロックサイクル当たり８ないし１６という非常に多くの命令であることに起因している。
【０００８】
周知の通り、ストア命令におけるアドレスと一致するエントリをキャッシュメモリ内に有している場合、エントリの無効化を行わないとキャッシュメモリからの読み出しデータと実際のメモリ内容との間に不一致が生じるという不都合がある。
【０００９】
ベクトルストア命令が実行されると、このようなストア命令が同時に多数発生するため、これらストア命令のアドレスに対して逐次無効化処理を行っていたのでは非常に多くのクロックサイクルを要する。従って、その間キャッシュメモリにアクセスできないことになり、キャッシュメモリの性能が大幅に低下することになる。そこで、ベクトル処理装置のオペランドキャッシュには、一度に複数のアドレスに対するキャッシュ無効化処理を行えるような機能が必須となる。
【００１０】
図４において、キャッシュ無効化処理を行うために、複数のフラッシュアドレスアレイ１０−０〜１０−ｎ、複数のアドレス比較器２０−０〜２０−ｎ及び複数の有効ビットリセット信号生成部３０−０〜３０−ｎが設けられる。
【００１１】
１クロックサイクルに発生する複数のベクトルストア命令におけるアドレス５００−０〜５００−ｎは、フラッシュアドレスアレイ１０−０〜１０−ｎ及びアドレス比較器２０−０〜２０−ｎに入力される。フラッシュアドレスアレイ１０−０〜１０−ｎは、入力されたアドレス５００−０〜５００−ｎと一致するアドレスを有する場合は、当該アドレスをアドレス比較器２０−０〜２０−ｎに出力する。
【００１２】
複数のアドレス比較器２０−０〜２０−ｎは、フラッシュアドレスアレイ１０−０〜１０−ｎとベクトルストアアドレス５００−０〜５００−ｎとからの入力を比較することにより、キャッシュメモリ内のエントリに該当するアドレスが含まれているかどうかを検査する。その結果、アドレス比較器２０−０〜２０−ｎにおいて、アドレスが一致した場合に、論理値１を有効ビットリセット信号生成部３０−０〜３０−ｎに出力する。
【００１３】
有効ビットリセット信号生成部３０−０〜３０−ｎは、アドレス比較器２０−０〜２０−ｎからの入力が１の場合、フラッシュアドレスアレイ１０−０〜１０−ｎから入力されたアドレスのキャッシュエントリ有効ビットアレイ４０における有効ビットをクリアする有効ビットリセット信号を生成する。当該リセット信号は、キャッシュエントリ有効ビットアレイ４０に入力される。この際、有効ビットリセット信号が同時に複数入力されるため、キャッシュエントリ有効ビットアレイ４０は、これら複数のリセット信号を同時に処理できるようにマルチポートタイプのメモリが必要になる。
【００１４】
【発明が解決しようとする課題】
このように、従来のベクトル処理装置のオペランドキャッシュにおいては、フラッシュアドレスアレイ１０−０〜１０−ｎを設け、アドレスアレイ５０のコピーを保持している必要があった。このような状況下において、オペランドキャッシュの容量を増加させると、キャッシュ無効化処理部のハードウェア量も大幅に増加させなければならなかった。
【００１５】
また、アドレスアレイ５０を検索してアドレス比較を行うパスは、遅延的にクリティカルになり易く、このようなパスをベクトルストア命令によるアドレスに複数有することからクリティカルパスの増加も引き起こしている。このことから、ベクトル処理装置のオペランドキャッシュでは、その容量を増加させたり、更に大容量の２次キャッシュを追加したりして、スカラ処理性能を向上させることが非常に困難であった。
【００１６】
換言すると、従来のベクトル処理装置では、以下のような問題点があった。第１の問題点は、ベクトル処理装置においてスカラ処理性能向上のためにオペランドキャッシュ容量を増加させることが困難であるということである。これは、ベクトルストア命令に対するキャッシュ無効化処理のためにアドレスアレイの複数のコピーを持ち、同時に複数要素のベクトルストア命令に対するキャッシュヒット判定を行う必要があることから、アドレスアレイ容量が大幅に増加するためである。
【００１７】
第２の問題点は、ベクトル処理装置においてスカラ処理部のオペランドキャッシュ関連のハードウェア量が非常に大きくなり、遅延性能上問題になることである。これは、第１の問題点で述べたようにアドレスアレイのコピーを複数有する必要があること、オペランドキャッシュの各エントリに関する有効性を識別するビットを記憶するメモリにおいて、複数のアドレスアレイからの索引結果により同時にリセット処理を行う必要があることから必然的にマルチポート構成を採る必要があることなどに起因する。容量の大きなメモリやマルチポート構成のメモリは通常のメモリよりも低速にならざるを得ず、遅延設計上問題になることが多いためである。
【００１８】
本発明は、かかる問題点に鑑みなされたものであり、ベクトルストア処理におけるクリティカルパスの増加を防止しながら、スカラ処理性能を向上させることが可能なベクトル処理装置のオペランドキャッシュを提供することを目的とする。
【００１９】
【課題を解決するための手段】
かかる目的を達成するために、請求項１記載の発明は、スカラ命令及びベクトル命令の双方を処理するベクトル処理装置のオペランドキャッシュにおいて、スカラデータエリア専用オペランドキャッシュと、ベクトル／スカラ共用データエリアオペランドキャッシュと、スカラデータエリア専用オペランドキャッシュからの出力とベクトル／スカラ共用データエリアオペランドキャッシュからの出力とを選択する選択手段とを有し、選択手段は、スカラロード／ストア命令のアドレスが入力されたとき、該アドレスがメインメモリのスカラデータ専用エリアの範囲内に存在する場合、スカラデータエリア専用オペランドキャッシュからの出力を選択することを特徴とし、ベクトル／スカラ共用データエリアオペランドキャッシュのデータを無効にするキャッシュ無効手段をさらに有し、該キャッシュ無効手段は、ベクトルストア命令のアドレスが入力されたとき、ベクトル／スカラ共用データエリアオペランドキャッシュにアドレスと一致するアドレスを有する場合、該アドレスを無効にすることを特徴とし、ベクトル／スカラ共用データエリアオペランドキャッシュは、オペランドキャッシュデータを格納している第１のデータアレイと、該第１のデータアレイに格納されているオペランドキャッシュデータのメインメモリのアドレスを格納している第１のアドレスアレイと、第１のデータアレイに格納されているオペランドキャッシュデータの有効／無効情報を格納している第１の有効情報アレイと、該第１の有効情報アレイから出力された有効／無効情報を基に、スカラロード／ストア命令により入力されたアドレスがベクトル／スカラ共用データエリアオペランドキャッシュに存在するか否かを判定する第１のキャッシュヒット判定手段と、該第１のキャッシュヒット判定手段の判定結果を基に、第１のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第１のゲート回路と、を有することを特徴とする。
【００２０】
請求項２記載の発明は、請求項１記載の発明において、キャッシュ無効手段は、第１のアドレスアレイのコピーを格納しているフラッシュアドレスアレイと、ベクトルストア命令により入力されたアドレスとフラッシュアドレスアレイから出力されたアドレスとを比較する比較器と、該比較器からの出力を基に、第１の有効情報アレイのアドレスに対応する有効／無効情報を無効にする有効情報リセット信号を生成する有効情報リセット信号生成回路と、を有することを特徴とする。
【００２１】
請求項３記載の発明は、請求項２記載の発明において、フラッシュアドレスアレイ、比較器及び有効情報リセット信号生成回路は、ベクトル／スカラ共用データエリアオペランドキャッシュのエントリ数分、存在することを特徴とする。
【００２２】
請求項４記載の発明は、請求項１記載の発明において、キャッシュ無効手段は、ベクトルストア命令が実行されたことを示すイネーブル信号が入力されたとき、第１の有効情報アレイの全情報を無効にする全情報無効論理生成部を有することを特徴とする。
【００２３】
請求項５記載の発明は、請求項１から４のいずれか１項に記載の発明において、スカラデータエリア専用オペランドキャッシュは、オペランドキャッシュデータを格納している第２のデータアレイと、該第２のデータアレイに格納されているオペランドキャッシュデータのメインメモリのアドレスを格納している第２のアドレスアレイと、第２のデータアレイに格納されているオペランドキャッシュデータの有効／無効情報を格納している第２の有効情報アレイと、該第２の有効情報アレイから出力された有効／無効情報を基に、スカラロード／ストア命令により入力されたアドレスがスカラデータエリア専用オペランドキャッシュに存在するか否かを判定する第２のキャッシュヒット判定手段と、該第２のキャッシュヒット判定手段の判定結果を基に、第２のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第２のゲート回路と、を有することを特徴とする。
【００２４】
請求項６記載の発明は、請求項１から５のいずれか１項に記載の発明において、選択手段は、スカラロード／ストア命令により入力されたアドレスがメインメモリのスカラデータ専用エリアの範囲内にあるか否かを判定し、論理値を出力するアドレス境界判定回路と、該アドレス境界判定回路により判定された判定結果を基に、第１のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第３のゲート回路と、アドレス境界判定回路により出力された論理値を反転する反転回路と、該反転回路により反転された論理値を基に、第２のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第４のゲート回路と、を有することを特徴する。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。
【００２８】
図１は、本発明の第１の実施の形態を示すブロック図である。図１に示すベクトル処理装置のオペランドキャッシュは、第１のキャッシュエントリ有効ビットアレイ４０、第１のアドレスアレイ５０、第１のデータアレイ７０、第１のキャッシュヒット判定部６０、第１のゲート回路８０、フラッシュアドレスアレイ１０−０〜１０−ｎ、アドレス比較器２０−０〜２０−ｎ、有効ビットリセット信号生成部３０−０〜３０−ｎ、第２のキャッシュエントリ有効ビットアレイ１４０、第２のアドレスアレイ１５０、第２のデータアレイ１７０、第２のキャッシュヒット判定部１６０、第２のゲート回路１８０、アドレス境界判定部２００、第３のゲート回路９０、第４のゲート回路１９０及び反転回路２１０から構成される。
【００２９】
第１のデータアレイ７０は、図示しない主記憶装置に格納されているデータの一部を格納している。第１のアドレスアレイ５０は、第１のデータアレイに格納されているデータの主記憶装置上のアドレスを格納している。
【００３０】
第１のキャッシュエントリ有効ビットアレイ４０は、第１のデータアレイ７０に格納されているデータが有効か無効かを示す有効／無効情報を格納している。
【００３１】
第１のキャッシュヒット判定部６０は、与えられたスカラロード／ストア命令のアドレス５２０と、第１のアドレスアレイ５０からの当該アドレス５２０に対応するアドレスと、第１のキャッシュエントリ有効ビットアレイ４０からの有効／無効情報とから該当するアドレスのエントリがオペランドキャッシュ内に存在しているかどうかを判定する。当該判定結果を第１のゲート回路８０に出力する。
【００３２】
第１のゲート回路８０は、第１のキャッシュヒット判定部６０からの判別結果によりデータアレイ７０からの読み出し結果をゲーティングする。即ち、第１のキャッシュヒット判定部６０による判定の結果、キャッシュヒットしたとき、第１のデータアレイ７０からの出力を第３のゲート回路９０に出力する。
【００３３】
フラッシュアドレスアレイ１０−０〜１０−ｎは、キャッシュ無効化処理を行う際に参照される第１のアドレスアレイ５０のコピーである。フラッシュアドレスアレイ１０−０〜１０−ｎが設けられるのは、キャッシュ無効化処理を行う際に、ベクトルストア命令によるアドレスにおいて示されるデータのブロックが当該キャッシュメモリ上に存在するか否かを検索する必要があるが、この検索を第１のアドレスアレイ５０において行うと、第１のアドレスアレイ５０へのアクセス頻度が高く、また、データロードのための検索が優先されるため、ストア命令による検索処理がなかなか選択されないためである。
【００３４】
アドレス比較器２０−０〜２０−ｎは、フラッシュアドレスアレイ１０−０〜１０−ｎからのアドレスとベクトルストア命令のアドレス５００−０〜５００−ｎとを比較し、一致した場合に、一致した旨を有効ビットリセット信号生成部３０−０〜３０−ｎに出力する。
【００３５】
有効ビットリセット信号生成部３０−０〜３０−ｎは、第１のキャッシュエントリ有効ビットアレイ４０の内容をクリアする有効ビットリセット信号を生成し、キャッシュエントリ有効ビットアレイ４０に当該有効ビットリセット信号を出力する。
【００３６】
ここまでの構成は従来の構成と同様である。本発明においては、以上のオペランドキャッシュメモリブロックは、ベクトル／スカラ共用エリア専用オペランドキャッシュとして使用される。これとは別に、本発明においては、スカラデータエリア専用の第２のオペランドキャッシュブロックを有している。
【００３７】
この第２のオペランドキャッシュブロックは、第２のキャッシュ有効ビットアレイ１４０、第２のアドレスアレイ１５０、第２のデータアレイ１７０、第２のキャッシュヒット判定部１６０及び第２のゲート回路１８０から構成される。
【００３８】
第２のデータアレイ１７０は、図示しない主記憶装置に格納されているデータの一部を格納している。第２のアドレスアレイ１５０は、第２のデータアレイ１７０に格納されているデータの主記憶装置上のアドレスを格納している。
【００３９】
第２のキャッシュエントリ有効ビットアレイ１４０は、第２のデータアレイ１７０に格納されているデータが有効か無効かを示す有効／無効情報を格納している。
【００４０】
第２のキャッシュヒット判定部１６０は、与えられたスカラロード／ストア命令のアドレス５２０と、第２のアドレスアレイ１５０からの当該アドレス５２０に対応するアドレスと、第２のキャッシュエントリ有効ビットアレイ１４０からの有効／無効情報とから該当するアドレスのエントリがオペランドキャッシュ内に存在しているかどうかを判定する。当該判定結果を論理値で第２のゲート回路１８０に出力する。
【００４１】
第２のゲート回路１８０は、第２のキャッシュヒット判定部１６０からの判定結果により第２のデータアレイ１７０からの読み出し結果をゲーティングする。即ち、第２のキャッシュヒット判定部１６０による判定の結果、キャッシュヒットしたとき、第２のデータアレイ１７０からの出力を第４のゲート回路１９０に出力する。
【００４２】
本実施の形態においては、これら２つのオペランドキャッシュブロックからのオペランドデータのいずれかを選択して、真のオペランドキャッシュ出力データ５３０とすることになる。そのために、アドレス境界判定部２００、第３のゲート回路９０、第４のゲート回路１９０及び反転回路２１０が設けられる。
【００４３】
アドレス境界判定部２００は、スカラロード／ストア命令のアドレス５２０が、ある設定されたアドレス範囲に入っているかどうかを検出する。当該検出を行うため、主記憶装置のスカラデータ専用エリアのアドレスを格納している。当該検出の結果、アドレス５２０がスカラデータ専用アドレスエリアの範囲内の場合に、境界判定信号５４０として論理値１を出力する。
【００４４】
第３のゲート回路９０は、アドレス境界判定部の出力２００が０の場合に、第１のゲート回路８０から入力されたオペランドデータをオペランドキャッシュ出力５３０として出力する。
【００４５】
第４のゲート回路１９０は、反転回路２１０からの出力が０の場合に、第２のゲート回路１８０から入力されたオペランドデータをオペランドキャッシュ出力５３０として出力する。
【００４６】
反転回路２１０は、アドレス境界判定部２００からの境界判定信号２００の論理値を反転する。これは、第１のオペランドキャッシュブロックと第２のオペランドキャッシュブロックからの出力に排他的関係を持たせることにより、オペランドキャッシュ出力５３０を適正化させるためである。
【００４７】
第３のゲート回路９０、第４のゲート回路１９０及び反転回路２１０により、第１のオペランドキャッシュブロックからのオペランドデータ読み出し結果と、第２のオペランドキャッシュブロックからのオペランドデータ読み出し結果とを選択する。当該選択結果は、オペランドキャッシュ出力５３０として、その後の処理部へと送出される。
【００４８】
次に、第１の実施の形態の動作について説明する。図３は、第１の実施の形態にかかるメモリマップの概念図である。一般にメモリマップ上では、ＯＳが使用するエリア（図３の例では、アドレスXXXXXXXXh 〜FFFFFFFFh ）、アプリケーションが使用するエリア（図３の例では、アドレス00000000h 〜PPPPPPPPh ）とが固定的に設定される。
【００４９】
本実施の形態においては、これに加えてアプリケーションが使用するスカラデータ専用エリア（図３の例では、アドレスSSSSSSSSh 〜ZZZZZZZZh ）を設定し、このエリアのデータについてはベクトル命令で使用しないよう規定する。以上の機能はＯＳにおいて実現する。なお、メモリ上にページ属性を設定してスカラデータ専用エリアにベクトル命令がアクセスしようとした場合に例外を発生させるなどの保護策を講じてもよい。
【００５０】
上記のようなメモリマップを前提とした上で、本発明の実施の形態の動作について図１に従って説明する。図１において、発行されたスカラロード／ストア命令のアドレス５２０は、ベクトル／スカラ共用データエリア専用オペランドキャッシュである第１のオペランドキャッシュブロックと、スカラデータエリア専用キャッシュである第２のオペランドキャッシュブロックの両方に与えられる。
【００５１】
一方、スカラロード／ストア命令のアドレス５２０は、スカラデータ専用エリア内にあるかどうかを判定するアドレス境界判定部２００にも入力される。スカラロード／ストア命令のアドレス５２０は、アドレス境界判定部２００において、図３のメモリマップの例でスカラデータ専用エリアであるアドレスSSSSSSSSh 〜ZZZZZZZZh 内のアドレスであるか否かが判定される。
【００５２】
その結果、スカラデータ専用エリア内のアドレスであると判定された場合には、アドレス境界判定結果信号５４０がアクティブとなり、第１のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第３のゲート回路９０がオフになり、第２のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第４のゲート回路１９０がオンになって、第２のオペランドキャッシュブロックからのオペランドデータ読み出し結果が、オペランドキャッシュ出力５３０となる。
【００５３】
一方、スカラデータ専用エリア外のアドレスであると判定された場合、アドレス境界判定信号５４０はノンアクティブとなり、第１のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第３のゲート回路９０がオンになり、逆に第２のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第４のゲート回路１９０がオフとなり、第１のオペランドキャッシュブロックからのオペランドデータ読み出し結果がオペランドキャッシュ出力５３０となるように動作する。上記第３のゲート回路９０と第４のゲート回路１９０のオン／オフ動作は常に排他的動作となるため、一方にはアドレス境界判定信号５４０がそのまま、もう一方には反転回路２１０を通した信号が与えられることになる。
【００５４】
なお、第１のオペランドキャッシュブロックに関しては、ベクトル／スカラデータ共用エリア専用オペランドキャッシュとなるため、ベクトルストア命令が実行された場合には、従来と同様にベクトルストア命令のアドレス５００−０〜５００−ｎに応じてキャッシュエントリの無効化処理を行う必要がある。
【００５５】
この処理に関しては、従来の構成と同様に複数のフラッシュアドレスアレイ１０−０〜１０−ｎ、複数のアドレス比較器２０−０〜２０−ｎ及び複数の有効ビットリセット信号生成部３０−０〜３０−ｎにおいて無効化処理が行われる。即ち、ベクトルストア命令により入力されたアドレスと同じアドレスのデータが第１のオペランドキャッシュブロックにおける第１のデータアレイ７０中に含まれているかを検索し、該当するデータが存在する場合は、第１のオペランドキャッシュ中のエントリに対する有効ビットをリセットすることにより実現する。
【００５６】
上記の説明により、スカラデータエリア専用オペランドキャッシュと、ベクトル／スカラ共用データエリア専用オペランドキャッシュとを有し、そのアクセスアドレスに応じて適宜必要なオペランドキャッシュをアクセスしてオペランドデータを得る本発明の動作が理解できる。
【００５７】
ベクトル／スカラ共用データエリア専用オペランドキャッシュは、従来と同様にキャッシュ無効化処理が必要であるため、通常のスカラ処理装置でのオペランドキャッシュと比較して、ハードウェア量が多く、遅延的にもクリティカルパスが増加する。しかしながら、スカラデータエリア専用オペランドキャッシュを別に持つことで、スカラ処理を行うアプリケーションはベクトル／スカラ共用データエリアを使用しなくても済むため、このエリア専用オペランドキャッシュ容量はそれ程大きくする必要がなくなる。
【００５８】
一方、スカラデータエリア専用オペランドキャッシュには、従来のようなベクトルストア命令に対するキャッシュ無効化処理機能が必要なくなることから、スカラ処理装置でのオペランドキャッシュと同等にキャッシュメモリ容量を大きくしたり、更に大容量の２次キャッシュを追加したりすることが容易になる。
【００５９】
次に、第２の実施の形態について図２を参照しながら説明する。図２によれば、ベクトル／スカラ共用エリア専用オペランドキャッシュにおいて、ベクトルストア命令のアドレスについて全てのフラッシュアドレスアレイ１０−０〜１０−ｎを検索して無効化処理を行うのではなく、ベクトルストア命令が実行された際にベクトル／スカラ共用エリア専用オペランドキャッシュの全エントリを一括して無効化する場合の実施の形態である。
【００６０】
図２において、全ビットクリア論理生成部２２０は、図示しない命令処理部から発行されたベクトルストア命令が実行されたことを示すイネーブル信号５５０が入力されると、キャッシュエントリ有効ビットアレイ４０の全アドレスに対して、そのワード線をアクティブにして全ビットをクリアするための制御信号を生成する。第１のキャッシュエントリ有効ビットアレイ４０は、当該制御信号が入力されると、全データの有効／無効情報を示すビットをクリアする。それ以外の構成要素は、第１の実施の形態と同様である。
【００６１】
本実施の形態によれば、第１の実施の形態と比較して、ベクトルストア命令が実行されたとき、第１のデータアレイ中のオペランドキャッシュデータの内、無効化処理を施さなくともよいデータまで無効化してしまうというデメリットがある。しかしながら、ベクトルストア命令の実行による無効化処理を施すべきデータが大量な場合は、第１の実施の形態におけるフラッシュアドレスアレイ１０−０〜１０−ｎにおけるアドレスの照合によるクリティカルパスの増加を勘案すると、総合的に判断してベクトル／スカラ共用エリア専用オペランドキャッシュの処理性能において、本実施の形態の方が上回ることもある。
【００６２】
【発明の効果】
以上の説明から明らかなように、本発明のベクトル処理装置のオペランドキャッシュによれば、スカラデータ専用データエリアとベクトル／スカラデータ共用エリアとを明確に分離することにより、スカラデータエリア専用オペランドキャッシュメモリを持つことができる。このスカラデータエリア専用オペランドキャッシュは、ベクトルストア命令によるキャッシュ無効化処理が不要なことからメモリ容量の大容量化や、２次キャッシュの追加等が可能になり、ベクトル処理装置におけるスカラ処理性能を大幅に向上させることが可能となる。
【００６３】
また、スカラデータエリア専用オペランドキャッシュメモリとベクトル／スカラデータ共用エリア専用オペランドキャッシュメモリとを分離することにより、ベクトルストア命令によるキャッシュ無効化処理が必要なオペランドキャッシュのメモリ容量を削減することが可能となる。
【００６４】
さらに、スカラデータエリア専用オペランドキャッシュメモリとベクトル／スカラデータ共用エリア専用オペランドキャッシュメモリとを分離することにより、ベクトル／スカラデータエリア専用オペランドキャッシュのメモリ容量を削減しても、スカラデータエリア専用キャッシュメモリがあるためスカラ処理性能は低下しない。よって、キャッシュ無効化処理に関するハードウェア量を削減することが可能となり、回路遅延も有利になることからクロックサイクルの高速化を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態にかかるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【図２】本発明の第２の実施の形態にかかるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【図３】本発明の実施の形態におけるメモリマップを示す図である。
【図４】従来技術におけるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【符号の説明】
１０−０〜１０−ｎ  フラッシュアドレスアレイ
２０−０〜２０−ｎ  アドレス比較器
３０−０〜３０−ｎ  有効ビットリセット信号生成部
４０  第１のキャッシュエントリ有効ビットアレイ
５０  第１のアドレスアレイ
６０  第１のキャッシュヒット判定部
７０  第１のデータアレイ
８０  第１のゲート回路
９０  第３のゲート回路
１４０  第２のキャッシュエントリ有効ビットアレイ
１５０  第２のアドレスアレイ
１６０  第２のキャッシュヒット判定部
１７０  第２のデータアレイ
１８０  第２のゲート回路
１９０  第４のゲート回路
２００  アドレス境界判定部
２１０  反転回路
２２０  全ビットクリア論理生成部
【図１】
0003697990.tif 000002
【図２】
0003697990.tif 000003
【図３】
0003697990.tif 000004
【図４】
0003697990.tif 000005