JP3697990B2 - ベクトル処理装置のオペランドキャッシュ - Google Patents

ベクトル処理装置のオペランドキャッシュ Download PDF

Info

Publication number
JP3697990B2
JP3697990B2 JP2000005757A JP2000005757A JP3697990B2 JP 3697990 B2 JP3697990 B2 JP 3697990B2 JP 2000005757 A JP2000005757 A JP 2000005757A JP 2000005757 A JP2000005757 A JP 2000005757A JP 3697990 B2 JP3697990 B2 JP 3697990B2
Authority
JP
Japan
Prior art keywords
address
cache
data
scalar
operand cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000005757A
Other languages
English (en)
Other versions
JP2001195390A (ja
Inventor
聡 中里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2000005757A priority Critical patent/JP3697990B2/ja
Publication of JP2001195390A publication Critical patent/JP2001195390A/ja
Application granted granted Critical
Publication of JP3697990B2 publication Critical patent/JP3697990B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、スカラ命令とベクトル命令の双方を扱うことができるベクトル処理装置のオペランドキャッシュに関し、特に、スカラ命令の処理性能を向上させる機能を備えたベクトル処理装置のオペランドキャッシュに関する。
【0002】
【従来の技術】
従来から、CPUと主記憶装置との速度ギャップを埋め、メモリアクセスの高速化を図るために、キャッシュメモリが用いられる。スカラ命令とベクトル命令とを扱うことができるベクトル処理装置においては、主記憶装置へのベクトルデータの連続書き込み要求であるベクトルストア命令が実行されると、キャッシュと主記憶装置との内容の一致性を確保するため、キャッシュに当該書き込みのエントリと同一のエントリが存在すれば、そのエントリの有効ビットの無効化を行う処理が必要である。
【0003】
従来のベクトル処理装置におけるオペランドキャッシュのブロック図を図4に示す。図4において、スカラロード/ストア命令が実行されると、そのアドレス520の一部のビットを利用して、アドレスアレイ50、キャッシュヒット判定部60及びデータアレイ70にアクセスされる。
【0004】
アドレスアレイ50において、該当するアドレスに登録されているキャッシュ内データの上位アドレスを検出する。該検出した上位アドレスを基に、キャッシュエントリ有効ビットアレイ40において、そのエントリが有効であるかどうかを検査する。このエントリの有効/無効情報と、アドレスアレイ50からの対応するアドレスと、アドレス520の上位ビットとからキャッシュヒット判定部60において、キャッシュヒットかどうかを判別する。
【0005】
一方、アドレス520の下位ビットを使用して同時にデータアレイ70にアクセスし、現在キャッシュに登録されているオペランドデータを読み出しておく。キャッシュヒット判定部60における判別結果は、データアレイ70からの読み出し結果を入力とするゲート回路80に入力され、判定結果がキャッシュヒットであった場合に、データアレイ70からの読み出しデータをオペランドキャッシュ出力530として、その後の処理部へ送出する。
【0006】
ここまでの動作は通常のキャッシュメモリと同様である。図4においては、メインメモリ上のカラムのブロックと1対1に対応させるダイレクトマップ形式のオペランドキャッシュ構成に関する説明となっている。なお、よりキャッシュヒット率を向上させるために、任意のメインメモリブロックを任意のキャッシュメモリブロックに写像するフルアソシアティブ方式やセットアソシアティブ方式の構成が採用されることは周知の事実である。ここでのキャッシュメモリ方式は、本発明には何ら影響を与えるものではなく、従って、本発明はこのキャッシュメモリの方式自体には依存しない。
【0007】
一方、ベクトル処理装置のオペランドキャッシュにおいて、スカラストア命令ではなく、ベクトルストア命令が実行される時は、通常のキャッシュメモリの構成に追加してキャッシュ無効化処理部が必要になる。これは、通常のスカラ処理装置においては、ストア命令がクロックサイクル当たり1ないしは多くても2命令程度であるのに対して、ベクトル処理装置においては、ベクトルストア命令がクロックサイクル当たり8ないし16という非常に多くの命令であることに起因している。
【0008】
周知の通り、ストア命令におけるアドレスと一致するエントリをキャッシュメモリ内に有している場合、エントリの無効化を行わないとキャッシュメモリからの読み出しデータと実際のメモリ内容との間に不一致が生じるという不都合がある。
【0009】
ベクトルストア命令が実行されると、このようなストア命令が同時に多数発生するため、これらストア命令のアドレスに対して逐次無効化処理を行っていたのでは非常に多くのクロックサイクルを要する。従って、その間キャッシュメモリにアクセスできないことになり、キャッシュメモリの性能が大幅に低下することになる。そこで、ベクトル処理装置のオペランドキャッシュには、一度に複数のアドレスに対するキャッシュ無効化処理を行えるような機能が必須となる。
【0010】
図4において、キャッシュ無効化処理を行うために、複数のフラッシュアドレスアレイ10−0〜10−n、複数のアドレス比較器20−0〜20−n及び複数の有効ビットリセット信号生成部30−0〜30−nが設けられる。
【0011】
1クロックサイクルに発生する複数のベクトルストア命令におけるアドレス500−0〜500−nは、フラッシュアドレスアレイ10−0〜10−n及びアドレス比較器20−0〜20−nに入力される。フラッシュアドレスアレイ10−0〜10−nは、入力されたアドレス500−0〜500−nと一致するアドレスを有する場合は、当該アドレスをアドレス比較器20−0〜20−nに出力する。
【0012】
複数のアドレス比較器20−0〜20−nは、フラッシュアドレスアレイ10−0〜10−nとベクトルストアアドレス500−0〜500−nとからの入力を比較することにより、キャッシュメモリ内のエントリに該当するアドレスが含まれているかどうかを検査する。その結果、アドレス比較器20−0〜20−nにおいて、アドレスが一致した場合に、論理値1を有効ビットリセット信号生成部30−0〜30−nに出力する。
【0013】
有効ビットリセット信号生成部30−0〜30−nは、アドレス比較器20−0〜20−nからの入力が1の場合、フラッシュアドレスアレイ10−0〜10−nから入力されたアドレスのキャッシュエントリ有効ビットアレイ40における有効ビットをクリアする有効ビットリセット信号を生成する。当該リセット信号は、キャッシュエントリ有効ビットアレイ40に入力される。この際、有効ビットリセット信号が同時に複数入力されるため、キャッシュエントリ有効ビットアレイ40は、これら複数のリセット信号を同時に処理できるようにマルチポートタイプのメモリが必要になる。
【0014】
【発明が解決しようとする課題】
このように、従来のベクトル処理装置のオペランドキャッシュにおいては、フラッシュアドレスアレイ10−0〜10−nを設け、アドレスアレイ50のコピーを保持している必要があった。このような状況下において、オペランドキャッシュの容量を増加させると、キャッシュ無効化処理部のハードウェア量も大幅に増加させなければならなかった。
【0015】
また、アドレスアレイ50を検索してアドレス比較を行うパスは、遅延的にクリティカルになり易く、このようなパスをベクトルストア命令によるアドレスに複数有することからクリティカルパスの増加も引き起こしている。このことから、ベクトル処理装置のオペランドキャッシュでは、その容量を増加させたり、更に大容量の2次キャッシュを追加したりして、スカラ処理性能を向上させることが非常に困難であった。
【0016】
換言すると、従来のベクトル処理装置では、以下のような問題点があった。第1の問題点は、ベクトル処理装置においてスカラ処理性能向上のためにオペランドキャッシュ容量を増加させることが困難であるということである。これは、ベクトルストア命令に対するキャッシュ無効化処理のためにアドレスアレイの複数のコピーを持ち、同時に複数要素のベクトルストア命令に対するキャッシュヒット判定を行う必要があることから、アドレスアレイ容量が大幅に増加するためである。
【0017】
第2の問題点は、ベクトル処理装置においてスカラ処理部のオペランドキャッシュ関連のハードウェア量が非常に大きくなり、遅延性能上問題になることである。これは、第1の問題点で述べたようにアドレスアレイのコピーを複数有する必要があること、オペランドキャッシュの各エントリに関する有効性を識別するビットを記憶するメモリにおいて、複数のアドレスアレイからの索引結果により同時にリセット処理を行う必要があることから必然的にマルチポート構成を採る必要があることなどに起因する。容量の大きなメモリやマルチポート構成のメモリは通常のメモリよりも低速にならざるを得ず、遅延設計上問題になることが多いためである。
【0018】
本発明は、かかる問題点に鑑みなされたものであり、ベクトルストア処理におけるクリティカルパスの増加を防止しながら、スカラ処理性能を向上させることが可能なベクトル処理装置のオペランドキャッシュを提供することを目的とする。
【0019】
【課題を解決するための手段】
かかる目的を達成するために、請求項1記載の発明は、スカラ命令及びベクトル命令の双方を処理するベクトル処理装置のオペランドキャッシュにおいて、スカラデータエリア専用オペランドキャッシュと、ベクトル/スカラ共用データエリアオペランドキャッシュと、スカラデータエリア専用オペランドキャッシュからの出力とベクトル/スカラ共用データエリアオペランドキャッシュからの出力とを選択する選択手段とを有し、選択手段は、スカラロード/ストア命令のアドレスが入力されたとき、該アドレスがメインメモリのスカラデータ専用エリアの範囲内に存在する場合、スカラデータエリア専用オペランドキャッシュからの出力を選択することを特徴とし、ベクトル/スカラ共用データエリアオペランドキャッシュのデータを無効にするキャッシュ無効手段をさらに有し、該キャッシュ無効手段は、ベクトルストア命令のアドレスが入力されたとき、ベクトル/スカラ共用データエリアオペランドキャッシュにアドレスと一致するアドレスを有する場合、該アドレスを無効にすることを特徴とし、ベクトル/スカラ共用データエリアオペランドキャッシュは、オペランドキャッシュデータを格納している第1のデータアレイと、該第1のデータアレイに格納されているオペランドキャッシュデータのメインメモリのアドレスを格納している第1のアドレスアレイと、第1のデータアレイに格納されているオペランドキャッシュデータの有効/無効情報を格納している第1の有効情報アレイと、該第1の有効情報アレイから出力された有効/無効情報を基に、スカラロード/ストア命令により入力されたアドレスがベクトル/スカラ共用データエリアオペランドキャッシュに存在するか否かを判定する第1のキャッシュヒット判定手段と、該第1のキャッシュヒット判定手段の判定結果を基に、第1のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第1のゲート回路と、を有することを特徴とする。
【0020】
請求項2記載の発明は、請求項1記載の発明において、キャッシュ無効手段は、第1のアドレスアレイのコピーを格納しているフラッシュアドレスアレイと、ベクトルストア命令により入力されたアドレスとフラッシュアドレスアレイから出力されたアドレスとを比較する比較器と、該比較器からの出力を基に、第1の有効情報アレイのアドレスに対応する有効/無効情報を無効にする有効情報リセット信号を生成する有効情報リセット信号生成回路と、を有することを特徴とする。
【0021】
請求項3記載の発明は、請求項2記載の発明において、フラッシュアドレスアレイ、比較器及び有効情報リセット信号生成回路は、ベクトル/スカラ共用データエリアオペランドキャッシュのエントリ数分、存在することを特徴とする。
【0022】
請求項4記載の発明は、請求項1記載の発明において、キャッシュ無効手段は、ベクトルストア命令が実行されたことを示すイネーブル信号が入力されたとき、第1の有効情報アレイの全情報を無効にする全情報無効論理生成部を有することを特徴とする。
【0023】
請求項5記載の発明は、請求項1から4のいずれか1項に記載の発明において、スカラデータエリア専用オペランドキャッシュは、オペランドキャッシュデータを格納している第2のデータアレイと、該第2のデータアレイに格納されているオペランドキャッシュデータのメインメモリのアドレスを格納している第2のアドレスアレイと、第2のデータアレイに格納されているオペランドキャッシュデータの有効/無効情報を格納している第2の有効情報アレイと、該第2の有効情報アレイから出力された有効/無効情報を基に、スカラロード/ストア命令により入力されたアドレスがスカラデータエリア専用オペランドキャッシュに存在するか否かを判定する第2のキャッシュヒット判定手段と、該第2のキャッシュヒット判定手段の判定結果を基に、第2のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第2のゲート回路と、を有することを特徴とする。
【0024】
請求項6記載の発明は、請求項1から5のいずれか1項に記載の発明において、選択手段は、スカラロード/ストア命令により入力されたアドレスがメインメモリのスカラデータ専用エリアの範囲内にあるか否かを判定し、論理値を出力するアドレス境界判定回路と、該アドレス境界判定回路により判定された判定結果を基に、第1のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第3のゲート回路と、アドレス境界判定回路により出力された論理値を反転する反転回路と、該反転回路により反転された論理値を基に、第2のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第4のゲート回路と、を有することを特徴する。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。
【0028】
図1は、本発明の第1の実施の形態を示すブロック図である。図1に示すベクトル処理装置のオペランドキャッシュは、第1のキャッシュエントリ有効ビットアレイ40、第1のアドレスアレイ50、第1のデータアレイ70、第1のキャッシュヒット判定部60、第1のゲート回路80、フラッシュアドレスアレイ10−0〜10−n、アドレス比較器20−0〜20−n、有効ビットリセット信号生成部30−0〜30−n、第2のキャッシュエントリ有効ビットアレイ140、第2のアドレスアレイ150、第2のデータアレイ170、第2のキャッシュヒット判定部160、第2のゲート回路180、アドレス境界判定部200、第3のゲート回路90、第4のゲート回路190及び反転回路210から構成される。
【0029】
第1のデータアレイ70は、図示しない主記憶装置に格納されているデータの一部を格納している。第1のアドレスアレイ50は、第1のデータアレイに格納されているデータの主記憶装置上のアドレスを格納している。
【0030】
第1のキャッシュエントリ有効ビットアレイ40は、第1のデータアレイ70に格納されているデータが有効か無効かを示す有効/無効情報を格納している。
【0031】
第1のキャッシュヒット判定部60は、与えられたスカラロード/ストア命令のアドレス520と、第1のアドレスアレイ50からの当該アドレス520に対応するアドレスと、第1のキャッシュエントリ有効ビットアレイ40からの有効/無効情報とから該当するアドレスのエントリがオペランドキャッシュ内に存在しているかどうかを判定する。当該判定結果を第1のゲート回路80に出力する。
【0032】
第1のゲート回路80は、第1のキャッシュヒット判定部60からの判別結果によりデータアレイ70からの読み出し結果をゲーティングする。即ち、第1のキャッシュヒット判定部60による判定の結果、キャッシュヒットしたとき、第1のデータアレイ70からの出力を第3のゲート回路90に出力する。
【0033】
フラッシュアドレスアレイ10−0〜10−nは、キャッシュ無効化処理を行う際に参照される第1のアドレスアレイ50のコピーである。フラッシュアドレスアレイ10−0〜10−nが設けられるのは、キャッシュ無効化処理を行う際に、ベクトルストア命令によるアドレスにおいて示されるデータのブロックが当該キャッシュメモリ上に存在するか否かを検索する必要があるが、この検索を第1のアドレスアレイ50において行うと、第1のアドレスアレイ50へのアクセス頻度が高く、また、データロードのための検索が優先されるため、ストア命令による検索処理がなかなか選択されないためである。
【0034】
アドレス比較器20−0〜20−nは、フラッシュアドレスアレイ10−0〜10−nからのアドレスとベクトルストア命令のアドレス500−0〜500−nとを比較し、一致した場合に、一致した旨を有効ビットリセット信号生成部30−0〜30−nに出力する。
【0035】
有効ビットリセット信号生成部30−0〜30−nは、第1のキャッシュエントリ有効ビットアレイ40の内容をクリアする有効ビットリセット信号を生成し、キャッシュエントリ有効ビットアレイ40に当該有効ビットリセット信号を出力する。
【0036】
ここまでの構成は従来の構成と同様である。本発明においては、以上のオペランドキャッシュメモリブロックは、ベクトル/スカラ共用エリア専用オペランドキャッシュとして使用される。これとは別に、本発明においては、スカラデータエリア専用の第2のオペランドキャッシュブロックを有している。
【0037】
この第2のオペランドキャッシュブロックは、第2のキャッシュ有効ビットアレイ140、第2のアドレスアレイ150、第2のデータアレイ170、第2のキャッシュヒット判定部160及び第2のゲート回路180から構成される。
【0038】
第2のデータアレイ170は、図示しない主記憶装置に格納されているデータの一部を格納している。第2のアドレスアレイ150は、第2のデータアレイ170に格納されているデータの主記憶装置上のアドレスを格納している。
【0039】
第2のキャッシュエントリ有効ビットアレイ140は、第2のデータアレイ170に格納されているデータが有効か無効かを示す有効/無効情報を格納している。
【0040】
第2のキャッシュヒット判定部160は、与えられたスカラロード/ストア命令のアドレス520と、第2のアドレスアレイ150からの当該アドレス520に対応するアドレスと、第2のキャッシュエントリ有効ビットアレイ140からの有効/無効情報とから該当するアドレスのエントリがオペランドキャッシュ内に存在しているかどうかを判定する。当該判定結果を論理値で第2のゲート回路180に出力する。
【0041】
第2のゲート回路180は、第2のキャッシュヒット判定部160からの判定結果により第2のデータアレイ170からの読み出し結果をゲーティングする。即ち、第2のキャッシュヒット判定部160による判定の結果、キャッシュヒットしたとき、第2のデータアレイ170からの出力を第4のゲート回路190に出力する。
【0042】
本実施の形態においては、これら2つのオペランドキャッシュブロックからのオペランドデータのいずれかを選択して、真のオペランドキャッシュ出力データ530とすることになる。そのために、アドレス境界判定部200、第3のゲート回路90、第4のゲート回路190及び反転回路210が設けられる。
【0043】
アドレス境界判定部200は、スカラロード/ストア命令のアドレス520が、ある設定されたアドレス範囲に入っているかどうかを検出する。当該検出を行うため、主記憶装置のスカラデータ専用エリアのアドレスを格納している。当該検出の結果、アドレス520がスカラデータ専用アドレスエリアの範囲内の場合に、境界判定信号540として論理値1を出力する。
【0044】
第3のゲート回路90は、アドレス境界判定部の出力200が0の場合に、第1のゲート回路80から入力されたオペランドデータをオペランドキャッシュ出力530として出力する。
【0045】
第4のゲート回路190は、反転回路210からの出力が0の場合に、第2のゲート回路180から入力されたオペランドデータをオペランドキャッシュ出力530として出力する。
【0046】
反転回路210は、アドレス境界判定部200からの境界判定信号200の論理値を反転する。これは、第1のオペランドキャッシュブロックと第2のオペランドキャッシュブロックからの出力に排他的関係を持たせることにより、オペランドキャッシュ出力530を適正化させるためである。
【0047】
第3のゲート回路90、第4のゲート回路190及び反転回路210により、第1のオペランドキャッシュブロックからのオペランドデータ読み出し結果と、第2のオペランドキャッシュブロックからのオペランドデータ読み出し結果とを選択する。当該選択結果は、オペランドキャッシュ出力530として、その後の処理部へと送出される。
【0048】
次に、第1の実施の形態の動作について説明する。図3は、第1の実施の形態にかかるメモリマップの概念図である。一般にメモリマップ上では、OSが使用するエリア(図3の例では、アドレスXXXXXXXXh 〜FFFFFFFFh )、アプリケーションが使用するエリア(図3の例では、アドレス00000000h 〜PPPPPPPPh )とが固定的に設定される。
【0049】
本実施の形態においては、これに加えてアプリケーションが使用するスカラデータ専用エリア(図3の例では、アドレスSSSSSSSSh 〜ZZZZZZZZh )を設定し、このエリアのデータについてはベクトル命令で使用しないよう規定する。以上の機能はOSにおいて実現する。なお、メモリ上にページ属性を設定してスカラデータ専用エリアにベクトル命令がアクセスしようとした場合に例外を発生させるなどの保護策を講じてもよい。
【0050】
上記のようなメモリマップを前提とした上で、本発明の実施の形態の動作について図1に従って説明する。図1において、発行されたスカラロード/ストア命令のアドレス520は、ベクトル/スカラ共用データエリア専用オペランドキャッシュである第1のオペランドキャッシュブロックと、スカラデータエリア専用キャッシュである第2のオペランドキャッシュブロックの両方に与えられる。
【0051】
一方、スカラロード/ストア命令のアドレス520は、スカラデータ専用エリア内にあるかどうかを判定するアドレス境界判定部200にも入力される。スカラロード/ストア命令のアドレス520は、アドレス境界判定部200において、図3のメモリマップの例でスカラデータ専用エリアであるアドレスSSSSSSSSh 〜ZZZZZZZZh 内のアドレスであるか否かが判定される。
【0052】
その結果、スカラデータ専用エリア内のアドレスであると判定された場合には、アドレス境界判定結果信号540がアクティブとなり、第1のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第3のゲート回路90がオフになり、第2のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第4のゲート回路190がオンになって、第2のオペランドキャッシュブロックからのオペランドデータ読み出し結果が、オペランドキャッシュ出力530となる。
【0053】
一方、スカラデータ専用エリア外のアドレスであると判定された場合、アドレス境界判定信号540はノンアクティブとなり、第1のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第3のゲート回路90がオンになり、逆に第2のオペランドキャッシュブロックからのオペランドデータ読み出し結果を入力とする第4のゲート回路190がオフとなり、第1のオペランドキャッシュブロックからのオペランドデータ読み出し結果がオペランドキャッシュ出力530となるように動作する。上記第3のゲート回路90と第4のゲート回路190のオン/オフ動作は常に排他的動作となるため、一方にはアドレス境界判定信号540がそのまま、もう一方には反転回路210を通した信号が与えられることになる。
【0054】
なお、第1のオペランドキャッシュブロックに関しては、ベクトル/スカラデータ共用エリア専用オペランドキャッシュとなるため、ベクトルストア命令が実行された場合には、従来と同様にベクトルストア命令のアドレス500−0〜500−nに応じてキャッシュエントリの無効化処理を行う必要がある。
【0055】
この処理に関しては、従来の構成と同様に複数のフラッシュアドレスアレイ10−0〜10−n、複数のアドレス比較器20−0〜20−n及び複数の有効ビットリセット信号生成部30−0〜30−nにおいて無効化処理が行われる。即ち、ベクトルストア命令により入力されたアドレスと同じアドレスのデータが第1のオペランドキャッシュブロックにおける第1のデータアレイ70中に含まれているかを検索し、該当するデータが存在する場合は、第1のオペランドキャッシュ中のエントリに対する有効ビットをリセットすることにより実現する。
【0056】
上記の説明により、スカラデータエリア専用オペランドキャッシュと、ベクトル/スカラ共用データエリア専用オペランドキャッシュとを有し、そのアクセスアドレスに応じて適宜必要なオペランドキャッシュをアクセスしてオペランドデータを得る本発明の動作が理解できる。
【0057】
ベクトル/スカラ共用データエリア専用オペランドキャッシュは、従来と同様にキャッシュ無効化処理が必要であるため、通常のスカラ処理装置でのオペランドキャッシュと比較して、ハードウェア量が多く、遅延的にもクリティカルパスが増加する。しかしながら、スカラデータエリア専用オペランドキャッシュを別に持つことで、スカラ処理を行うアプリケーションはベクトル/スカラ共用データエリアを使用しなくても済むため、このエリア専用オペランドキャッシュ容量はそれ程大きくする必要がなくなる。
【0058】
一方、スカラデータエリア専用オペランドキャッシュには、従来のようなベクトルストア命令に対するキャッシュ無効化処理機能が必要なくなることから、スカラ処理装置でのオペランドキャッシュと同等にキャッシュメモリ容量を大きくしたり、更に大容量の2次キャッシュを追加したりすることが容易になる。
【0059】
次に、第2の実施の形態について図2を参照しながら説明する。図2によれば、ベクトル/スカラ共用エリア専用オペランドキャッシュにおいて、ベクトルストア命令のアドレスについて全てのフラッシュアドレスアレイ10−0〜10−nを検索して無効化処理を行うのではなく、ベクトルストア命令が実行された際にベクトル/スカラ共用エリア専用オペランドキャッシュの全エントリを一括して無効化する場合の実施の形態である。
【0060】
図2において、全ビットクリア論理生成部220は、図示しない命令処理部から発行されたベクトルストア命令が実行されたことを示すイネーブル信号550が入力されると、キャッシュエントリ有効ビットアレイ40の全アドレスに対して、そのワード線をアクティブにして全ビットをクリアするための制御信号を生成する。第1のキャッシュエントリ有効ビットアレイ40は、当該制御信号が入力されると、全データの有効/無効情報を示すビットをクリアする。それ以外の構成要素は、第1の実施の形態と同様である。
【0061】
本実施の形態によれば、第1の実施の形態と比較して、ベクトルストア命令が実行されたとき、第1のデータアレイ中のオペランドキャッシュデータの内、無効化処理を施さなくともよいデータまで無効化してしまうというデメリットがある。しかしながら、ベクトルストア命令の実行による無効化処理を施すべきデータが大量な場合は、第1の実施の形態におけるフラッシュアドレスアレイ10−0〜10−nにおけるアドレスの照合によるクリティカルパスの増加を勘案すると、総合的に判断してベクトル/スカラ共用エリア専用オペランドキャッシュの処理性能において、本実施の形態の方が上回ることもある。
【0062】
【発明の効果】
以上の説明から明らかなように、本発明のベクトル処理装置のオペランドキャッシュによれば、スカラデータ専用データエリアとベクトル/スカラデータ共用エリアとを明確に分離することにより、スカラデータエリア専用オペランドキャッシュメモリを持つことができる。このスカラデータエリア専用オペランドキャッシュは、ベクトルストア命令によるキャッシュ無効化処理が不要なことからメモリ容量の大容量化や、2次キャッシュの追加等が可能になり、ベクトル処理装置におけるスカラ処理性能を大幅に向上させることが可能となる。
【0063】
また、スカラデータエリア専用オペランドキャッシュメモリとベクトル/スカラデータ共用エリア専用オペランドキャッシュメモリとを分離することにより、ベクトルストア命令によるキャッシュ無効化処理が必要なオペランドキャッシュのメモリ容量を削減することが可能となる。
【0064】
さらに、スカラデータエリア専用オペランドキャッシュメモリとベクトル/スカラデータ共用エリア専用オペランドキャッシュメモリとを分離することにより、ベクトル/スカラデータエリア専用オペランドキャッシュのメモリ容量を削減しても、スカラデータエリア専用キャッシュメモリがあるためスカラ処理性能は低下しない。よって、キャッシュ無効化処理に関するハードウェア量を削減することが可能となり、回路遅延も有利になることからクロックサイクルの高速化を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【図2】本発明の第2の実施の形態にかかるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【図3】本発明の実施の形態におけるメモリマップを示す図である。
【図4】従来技術におけるベクトル処理装置のオペランドキャッシュの構成を示すブロック図である。
【符号の説明】
10−0〜10−n フラッシュアドレスアレイ
20−0〜20−n アドレス比較器
30−0〜30−n 有効ビットリセット信号生成部
40 第1のキャッシュエントリ有効ビットアレイ
50 第1のアドレスアレイ
60 第1のキャッシュヒット判定部
70 第1のデータアレイ
80 第1のゲート回路
90 第3のゲート回路
140 第2のキャッシュエントリ有効ビットアレイ
150 第2のアドレスアレイ
160 第2のキャッシュヒット判定部
170 第2のデータアレイ
180 第2のゲート回路
190 第4のゲート回路
200 アドレス境界判定部
210 反転回路
220 全ビットクリア論理生成部

Claims (6)

  1. スカラ命令及びベクトル命令の双方を処理するベクトル処理装置のオペランドキャッシュにおいて、
    スカラデータエリア専用オペランドキャッシュと、
    ベクトル/スカラ共用データエリアオペランドキャッシュと、
    前記スカラデータエリア専用オペランドキャッシュからの出力と前記ベクトル/スカラ共用データエリアオペランドキャッシュからの出力とを選択する選択手段とを有し、
    前記選択手段は、スカラロード/ストア命令のアドレスが入力されたとき、該アドレスがメインメモリのスカラデータ専用エリアの範囲内に存在する場合、前記スカラデータエリア専用オペランドキャッシュからの出力を選択することを特徴とし、
    前記ベクトル/スカラ共用データエリアオペランドキャッシュのキャッシュデータを無効にするキャッシュ無効手段をさらに有し、
    該キャッシュ無効手段は、ベクトルストア命令のアドレスが入力されたとき、前記ベクトル/スカラ共用データエリアオペランドキャッシュに前記アドレスと一致するアドレスを有する場合、該アドレスを無効にすることを特徴とし、
    前記ベクトル/スカラ共用データエリアオペランドキャッシュは、
    オペランドキャッシュデータを格納している第1のデータアレイと、
    該第1のデータアレイに格納されているオペランドキャッシュデータの前記メインメモリのアドレスを格納している第1のアドレスアレイと、
    前記第1のデータアレイに格納されているオペランドキャッシュデータの有効/無効情報を格納している第1の有効情報アレイと、
    該第1の有効情報アレイから出力された有効/無効情報を基に、前記スカラロード/ストア命令により入力されたアドレスが前記ベクトル/スカラ共用データエリアオペランドキャッシュに存在するか否かを判定する第1のキャッシュヒット判定手段と、
    該第1のキャッシュヒット判定手段の判定結果を基に、前記第1のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第1のゲート回路と、
    を有することを特徴とするベクトル処理装置のオペランドキャッシュ。
  2. 前記キャッシュ無効手段は、
    前記第1のアドレスアレイのコピーを格納しているフラッシュアドレスアレイと、
    前記ベクトルストア命令により入力されたアドレスと前記フラッシュアドレスアレイから出力されたアドレスとを比較する比較器と、
    該比較器からの出力を基に、前記第1の有効情報アレイの前記アドレスに対応する有効/無効情報を無効にする有効情報リセット信号を生成する有効情報リセット信号生成回路と、
    を有することを特徴とする請求項1記載のベクトル処理装置のオペランドキャッシュ。
  3. 前記フラッシュアドレスアレイ、前記比較器及び前記有効情報リセット信号生成回路は、前記ベクトル/スカラ共用データエリアオペランドキャッシュのエントリ数分、存在することを特徴とする請求項2記載のベクトル処理装置のオペランドキャッシュ。
  4. 前記キャッシュ無効手段は、
    前記ベクトルストア命令が実行されたことを示すイネーブル信号が入力されたとき、前記第1の有効情報アレイの全情報を無効にする全情報無効論理生成部を有することを特徴とする請求項1記載のベクトル処理装置のオペランドキャッシュ。
  5. 前記スカラデータエリア専用オペランドキャッシュは、
    オペランドキャッシュデータを格納している第2のデータアレイと、
    該第2のデータアレイに格納されているオペランドキャッシュデータの前記メインメモリのアドレスを格納している第2のアドレスアレイと、
    前記第2のデータアレイに格納されているオペランドキャッシュデータの有効/無効情報を格納している第2の有効情報アレイと、
    該第2の有効情報アレイから出力された有効/無効情報を基に、前記スカラロード/ス トア命令により入力されたアドレスが前記スカラデータエリア専用オペランドキャッシュに存在するか否かを判定する第2のキャッシュヒット判定手段と、
    該第2のキャッシュヒット判定手段の判定結果を基に、前記第2のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第2のゲート回路と、
    を有することを特徴とする請求項1から4のいずれか1項に記載のベクトル処理装置のオペランドキャッシュ。
  6. 前記選択手段は、
    前記スカラロード/ストア命令により入力されたアドレスが前記メインメモリのスカラデータ専用エリアの範囲内にあるか否かを判定し、論理値を出力するアドレス境界判定回路と、
    該アドレス境界判定回路により判定された判定結果を基に、前記第1のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第3のゲート回路と、
    前記アドレス境界判定回路により出力された論理値を反転する反転回路と、
    該反転回路により反転された論理値を基に、前記第2のデータアレイからのオペランドキャッシュデータを出力するか否かをゲーティングする第4のゲート回路と、
    を有することを特徴する請求項1から5のいずれか1項に記載のベクトル処理装置のオペランドキャッシュ。
JP2000005757A 2000-01-06 2000-01-06 ベクトル処理装置のオペランドキャッシュ Expired - Lifetime JP3697990B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000005757A JP3697990B2 (ja) 2000-01-06 2000-01-06 ベクトル処理装置のオペランドキャッシュ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000005757A JP3697990B2 (ja) 2000-01-06 2000-01-06 ベクトル処理装置のオペランドキャッシュ

Publications (2)

Publication Number Publication Date
JP2001195390A JP2001195390A (ja) 2001-07-19
JP3697990B2 true JP3697990B2 (ja) 2005-09-21

Family

ID=18534380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000005757A Expired - Lifetime JP3697990B2 (ja) 2000-01-06 2000-01-06 ベクトル処理装置のオペランドキャッシュ

Country Status (1)

Country Link
JP (1) JP3697990B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095732B2 (en) 2008-03-04 2012-01-10 Nec Corporation Apparatus, processor, cache memory and method of processing vector data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095732B2 (en) 2008-03-04 2012-01-10 Nec Corporation Apparatus, processor, cache memory and method of processing vector data

Also Published As

Publication number Publication date
JP2001195390A (ja) 2001-07-19

Similar Documents

Publication Publication Date Title
US4332010A (en) Cache synonym detection and handling mechanism
JP3821644B2 (ja) 旧キャッシュラインを無効化および除去する装置
EP2275939B1 (en) Processor and address translating method
US6425055B1 (en) Way-predicting cache memory
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
JP2020102258A (ja) メモリ圧縮を実行するシステム及び方法
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US8296518B2 (en) Arithmetic processing apparatus and method
JPH11203199A (ja) キャッシュ・メモリ
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JPH0564816B2 (ja)
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
US6581140B1 (en) Method and apparatus for improving access time in set-associative cache systems
CN109983538B (zh) 存储地址转换
US8595465B1 (en) Virtual address to physical address translation using prediction logic
JP3697990B2 (ja) ベクトル処理装置のオペランドキャッシュ
US20080282059A1 (en) Method and apparatus for determining membership in a set of items in a computer system
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses
JPH086852A (ja) キャッシュ制御方法
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
JP2507785B2 (ja) ペ―ジテ―ブルエントリ無効化装置
JPH06124237A (ja) アドレス変換バッファ装置
JPH01217530A (ja) キヤツシユメモリ
JP2011180969A (ja) データプロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5