JP2002236614A - キャッシュ制御方法及びキャッシュ制御回路 - Google Patents

キャッシュ制御方法及びキャッシュ制御回路

Info

Publication number
JP2002236614A
JP2002236614A JP2001033857A JP2001033857A JP2002236614A JP 2002236614 A JP2002236614 A JP 2002236614A JP 2001033857 A JP2001033857 A JP 2001033857A JP 2001033857 A JP2001033857 A JP 2001033857A JP 2002236614 A JP2002236614 A JP 2002236614A
Authority
JP
Japan
Prior art keywords
cache
register
instruction
data
registration
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.)
Granted
Application number
JP2001033857A
Other languages
English (en)
Other versions
JP3770091B2 (ja
Inventor
Hisao Koyanagi
尚夫 小柳
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 JP2001033857A priority Critical patent/JP3770091B2/ja
Publication of JP2002236614A publication Critical patent/JP2002236614A/ja
Application granted granted Critical
Publication of JP3770091B2 publication Critical patent/JP3770091B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 従来技術の問題点を解消し、参照の局所性が
厳密な意味で保証されないプログラムであっても、キャ
ッシュメモリによる性能向上効果を得ることができるキ
ャッシュ制御方法およびキャッシュ制御回路を提供する
こと。 【解決手段】 キャッシュメモリを有する情報処理装置
のキャッシュ制御回路であって、ベクトルロード命令ア
クセス範囲を規定する値を保持する第1のレジスタと、
ベクトル長を保持する第2のレジスタと、ディスタンス
を保持する第3のレジスタと、前記第1、第2及び第3
のレジスタの値に基づいてベクトルロード命令のデータ
をキャッシュに対して登録または非登録の判定を実行す
る回路と、該判定結果を保持する第4のレジスタと、該
第4のレジスタの判定結果にしたがって、キャッシュへ
の登録または非登録の制御を選択的に実行するミスリプ
ライ制御回路と、を具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、各種情報処理シス
テムにおいて使用されるキャッシュメモリを制御するた
めのキャッシュ制御方法及びキャッシュ制御回路に関す
る。
【0002】
【従来の技術】各種情報処理システムにおけるメモリア
クセスのボトルネック解消のために、キャッシュと呼ば
れる小容量で高速のバッファメモリを利用する技術は、
古くからほとんどのシステムで使用されている。キャッ
シュメモリを使用する効果は、以下の2つである。その
第1は、主メモリ等に比べて小容積に構成し得ることか
ら、プロセッサの近く、例えば、同一LSI内部に配置
できることになり、オペランドデータのレイテンシー
(Latency)の大幅短縮が実現できることであ
る。
【0003】第2の効果は、特に、ストアイン型キャッ
シュのようにメモリへの書き込みを常時には行わない場
合、メモリアクセスに必要なスループットを抑えること
ができる。したがって、メモリ構造を簡素化でき、コス
ト面で有利であることと、逆にいえば、メモリアクセス
頻度を抑えることで、メモリインターフェースのリクエ
スト競合を回避できるため、性能向上が実現できること
である。
【0004】このキャッシュメモリ方式が有効であるた
めには、以下に示す実際のプログラムにおけるメモリア
クセスの振る舞いが、通常は一定の性質を持つものであ
るとの前提が必要である。それは、参照の局所性(以
下、ローカリティともいう)というメモリアクセスの性
質によるものである。すなわち、空間的ローカリティ
(参照されるアドレスはある部分に固まっていること)
と、時間的ローカリティ(参照されるアドレスは、ある
時間内に集中していること)である。
【0005】ここでキャッシュミス時の動作について簡
単に説明する。ただし、キャッシュメモリの動作につい
ては、多くの文献があり、例えば“並列コンピュータ”
天野英晴著(昭晃堂)に詳しく説明されているので、
本発明に直接関係しない動きに関しては説明を割愛す
る。
【0006】まず、既にキャッシュに登録されている同
一キャッシュラインアドレスのラインは追い出される。
ストアスルー型キャッシュの場合は、メモリとの一貫性
が常時保たれているため、新しいラインをキャッシュに
上書きするだけで済む。しかし、ストアイン型キャッシ
ュの場合には、メモリとの一貫性が保たれていないの
で、追い出されるキャッシュラインをメモリに書き込む
必要がある。
【0007】また、新しいラインのリフィルにラインデ
ータ分のブロックロードリクエストが発生する。メモリ
に対して、無駄なデータを持ってくる処理が入るが、そ
の一方で暗示的なプリフェッチとなるという長所もある
ため、その得失は一概には断じられない。
【0008】この動作に関しては図5において説明して
おり、“A”、“B”、“W”は、ロード(以下、LD
ともいう)命令が、各々メモリアクセスリクエストを発
行するステージ、キャッシュアクセスを終わるステー
ジ、レジスタへの書き込みステージに存在することを意
味する。
【0009】まず、LD−1はキャッシュヒット(hi
t)時のタイミングであり、この場合、わずか3サイク
ルで終了する。LD−2は、キャッシュミス(mis
s)した場合の動作であり、メモリに対してリフィルデ
ータを要求し、ターゲットとなるデータが最初に帰って
くる場合が、一般的であり、その時点で、LD−2はW
ステージに移行することができる。しかし、リフィルの
ために、1ライン分のデータをキャッシュに書き込むた
めの時間が必要であり、その間は、後続のキャッシュア
クセス命令の発行が不可となる。LD−3は、キャッシ
ュにデータを登録しないキャッシュバイパスロードのタ
イミングであり、LD−2との違いは、ミスした場合
に、ミスリプライデータをキャッシュに登録しない点に
ある。
【0010】参照の局所性がないメモリアクセスの場
合、リフィルデータのキャッシュ書き込み時における後
続キャッシュアクセス命令の発行が抑止されることがな
い点から、このケースだけを見ればLD−3が性能上優
れていると言える。
【0011】以上のようなキャッシュ制御は、前提とし
ている参照の局所性が崩れると、以下のような問題点が
発生する。問題点1)1回しかLDしないラインをキャ
ッシュに入れることは、キャッシュにデータを登録しな
い場合に比べて、キャッシュラインデータのストアとロ
ードが余計に必要となる。問題点2)まだ有用なキャッ
シュラインにもかかわらずリプレースしてしまう。
【0012】このような参照の局所性がないといわれて
いるものには、科学技術計算プログラムがある。しか
し、近年、マイクロプロセッサにおけるキャッシュ容量
は、LSI技術の絶え間ない進歩によって、KB単位か
らMB単位に増強されている。また、キャッシュを考慮
したプログラムの最適化技術も、このようなキャッシュ
容量のトレンドに追従し、ストアイン型キャッシュのマ
イクロプロセッサにおいても、科学技術計算プログラム
の性能が向上してきた。しかし、コンパイラの最適化技
術はいくら進んでも、実行前のプログラムからメモリア
クセスの振る舞いを認識して、高いキャッシュヒット率
を実現するには限界がある。
【0013】ところで、科学技術計算プログラムを効率
よく実行する装置として、ベクトル型計算機がある。ベ
クトル型計算機では、ベクトルレジスタという複数ワー
ドデータを格納するレジスタに対する処理を、ベクトル
命令という命令1つで規定できる。例えば、ベクトルロ
ード(以下、VLDともいう)命令は、ベクトル長レジ
スタ(以下、VLともいう)の値分のロードを実行し、
その読み出しデータをベクトルレジスタという複数ワー
ドを集めたレジスタに格納する。逆に、ベクトルストア
(以下、VSTともいう)はベクトルレジスタにある複
数のワードデータを、メモリに格納する。
【0014】このベクトル型計算機において、例えば
〔ディスタンス(distance)〕*〔VL〕の大きなVL
D命令が発行され、それが悉くキャッシュミスする場
合、VLD1命令で数多くのキャッシュラインがリプレ
ースされてしまう。その中で、使ったばかりのラインが
存在していた場合、時間的局所性を期待してキャッシュ
に登録されているデータがキャンセルされ、再々度キャ
ッシュラインデータがリフィルされてしまうという、性
能上悲劇的状況に至る。
【0015】
【発明が解決しようとする課題】本発明は、上述のよう
な従来技術の問題点を解消し、参照の局所性が厳密な意
味で保証されないプログラムであっても、キャッシュメ
モリによる性能向上効果を得ることができるキャッシュ
制御回路を提供することである。
【0016】
【課題を解決する為の手段】本発明の課題は、キャッシ
ュメモリを有する情報処理装置のキャッシュ制御方法に
おいて、ベクトルロード命令アクセス範囲を規定する値
と、ベクトル長の値と、そしてディスタンス値と、の各
々の値を基礎として、ベクトルロード命令のデータをキ
ャッシュへ登録するかまたは非登録とするかの判定を行
い、その判定結果に従ってキャッシュへの登録または非
登録の制御を選択的に実行するキャッシュ制御方法によ
って解決される。
【0017】さらに、本発明の課題は、キャッシュメモ
リを有する情報処理装置のキャッシュ制御回路におい
て、ベクトルロード命令アクセス範囲を規定する値を保
持する第1のレジスタと、ベクトル長を保持する第2の
レジスタと、ディスタンスを保持する第3のレジスタ
と、前記第1、第2及び第3のレジスタの値から、ベク
トルロード命令のデータをキャッシュへの登録または非
登録の判定を行う回路と、その結果を保持する第4のレ
ジスタと、該第4のレジスタの判定結果に従ってキャッ
シュへの登録または非登録の制御を選択的に行うミスリ
プライ制御回路と、を具備するキャッシュ制御回路によ
って解決される。
【0018】また、本発明の課題は、キャッシュメモリ
を有する情報処理装置のキャッシュ制御回路において、
キャッシュアクセスの制限使用回数を格納する第5のレ
ジスタと、キャッシュの各エントリに対応してキャッシ
ュアクセス回数の計測結果を保持する第6のレジスタ群
と、その値を更新する制御回路と、アクセスしたキャッ
シュエントリに対応する第6のレジスタ値と第5のレジ
スタ値とを比較した結果から、キャッシュへの登録また
は非登録の判定を行う制御回路と、その結果を保持する
第4のレジスタと、該第4のレジスタの判定結果にした
がって、キャッシュへの登録または非登録の制御を選択
的に行うミスリプライ制御回路と、を具備するキャッシ
ュ制御回路によって有利に解決される。
【0019】本発明にかかるキャッシュ制御方法及び制
御回路によれば、ロードリクエストの性質、あるいは、
ヒットしたラインの履歴によって、キャッシュメモリに
登録させるロードにするか否かをハードウェア(以下、
HWともいう)が動的に判断する。
【0020】また、VLD範囲レジスタとRUカウンタ
制限値レジスタの更新によって、判断方法をソフトウェ
ア(以下、SWともいう)が明示的に指定することがで
きる。それによって、発明の背景で説明したような問題
点を解決し、参照のローカリティが厳密な意味で保証さ
れないプログラムであっても、キャッシュメモリによる
性能向上効果を得ることができる。
【0021】
【発明の実施の形態】以下、添付図を参照しつつ本発明
にかかるキャッシュ制御装置の実施の形態を説明する。
このキャッシュ制御装置は、図1に示されているような
基本構成に適用される。スカラプロセッサユニット(以
下、SPUともいう)−1は、全命令の解読/実行指
示、及びスカラ命令の実行を行う。1次キャッシュユニ
ット−2は、スカラメモリアクセス系命令で使用するデ
ータのみを格納するものである。ベクトルプロセッサユ
ニット(以下、VPUともいう)−3は、SPU−1の
指示にしたがってベクトル命令の実行を行う。
【0022】2次キャッシュユニット−4は、スカラ系
/ベクトル系の両方で使われるデータを格納するもので
ある。アドレス変換バッファ(以下、ATBという)−
5は、論理アドレスを物理アドレスに変換するバッファ
である。また、メモリユニット−6は、メモリとメモリ
アクセス制御部とを含んでいる。IOP−7は入出力処
理を行う。
【0023】スカラLDの場合、SPU−1から信号線
102でLDリクエストを発行し、1次キャッシュユニ
ット−2内でミスすると、ラインデータのブロックリク
エストとして信号線204を介して2次キャッシュユニ
ット−4にデータを探しにゆく。そこでもミスした場合
は、信号線405を介してATB5にメモリリクエスト
を送り、物理アドレスに変換して信号線506を介して
メモリユニット−6に送出される。メモリユニット−6
から読み出されたデータは、信号線604を介して2次
キャッシュユニット−4に戻ってきてラインデータが格
納され、信号線402を介して1次キャッシュユニット
−2に戻って、そのラインデータが登録される。その
時、最初のLD命令のターゲットデータは、信号線20
1を介してSPU−1に送られる。
【0024】次に、VLD命令の動きについて説明する
前に、VLD命令の仕様について、図6に基づいて説明
する。VPU−3内にはベクトルレジスタとも呼ばれる
複数の要素データを格納できるレジスタファイルが存在
する。VLD命令は、Vxで指定されたベクトルレジス
タに、SPU−1から送られてくるRy(ディスタン
ス)とRz(開始アドレス)で規定されたVLというレ
ジスタで指定される個数のメモリロードを一括して行う
命令である。
【0025】ここで本発明許の実施例を説明するため、
図1のような基本構成を用いる。VLというレジスタ
は、LVLという命令によって、ソフトウェアで書き換
えられるレジスタで、VPU−3内に存在する。VLD
命令の動きを図1のブロック図にしたがって説明する。
VLD命令はSPU−1で命令デコードされ、その結
果、信号線103を介して実行指示がVPU−3に送ら
れる。VPU−3では、VLD命令が処理されるが、そ
の際、開始アドレス、ディスタンス、VL(ベクトル
長)が信号線304を介して2次キャッシュユニット−
4に送られる。
【0026】2次キャッシュユニット−4では、ミスし
た場合、該当するラインに対するブロックリクエストに
なり、スカラLDと同様にATB−5を通過し、メモリ
ユニット−6から信号線604を介してリプライデータ
を2次キャッシュユニット−4に送る。2次キャッシュ
ユニット−4が受け取ったリプライデータは、対応する
キャッシュラインに格納されると同時に信号線403を
介してターゲットデータのみがVPU−3に送られ、ベ
クトルレジスタに格納される。このような処理がVLで
指定された数だけ実行される。しかし、2次キャッシュ
がヒットした場合は、2次キャッシュの読み出しデータ
だけが信号線403を介してVPU−3に送られる。
【0027】ここで、このVLD命令を、本発明による
VLD範囲レジスタ、または、RUカウンタ制限値レジ
スタを用いたキャッシャブル判定回路によって、キャッ
シュミスした場合に必ずしもキャッシュに取り込まない
ようにする。この場合、2次キャッシュのラインサイズ
のブロックロードリクエストが発行されることはなく、
信号線405にVLDの要素毎のリクエストが発行さ
れ、信号線604を介して送られてくるリプライデ−タ
を素通りさせて、信号線403を介して、VPU−3へ
送る。
【0028】まず、VLD範囲レジスタによる、本発明
における動作について説明する。従来のベクトルメモリ
アクセスは、全てキャッシュされないものであったが、
前述のようにLSI技術の進歩によるキャッシュ容量の
大幅増加と、コンパイラによる最適化技術の進歩によっ
て、科学技術計算でもある程度のキャッシュを使って意
味のあるような参照局所性が実現できる。しかし、その
中でもどうしても局所性を維持するような最適化ができ
ない部分も時には存在する。その様子を図7に示す。
【0029】その局所性のない部分では、広範囲にわた
るVLD命令でベクトルオペランドデータをフェッチし
て、それを演算し、VST命令でメモリに書き戻すとい
った処理が行われ、1回VLD命令で読んだオペランド
は2回以上読み出されることはほとんどない。このよう
な場合、VLDのメモリデータをキャッシュに取り込む
ことは、無意味である。
【0030】また、図8では、VLD命令のディスタン
スが128BでVLが256のケースで、キャッシュ
(ラインサイズ128B)に登録したケースについて説
明している。VLD命令の要素データは、ラインデータ
のある1部にのみ存在するため、VLD命令1つのため
に、メモリLDデータは8B×256(=2KB)しか
必要でないにもかかわらず、128B×256(=32
KB)ものブロックLDが発生し、無駄なLDリクエス
トが30KB分も行われることになる。さらに、32K
B分のキャッシュは、このVLD命令によって、図7で
示しているような参照局所性が維持されている部分で必
要とされているキャッシュデータが書きつぶされてしま
うという悲劇的状況が生まれる。
【0031】このような状況を回避するための別の手段
として、キャッシュメモリにデータを登録しないことを
最初から命令で明示的に指定するという方法もある。こ
の方法の利点は、アドレス・ディスタンスといった値の
着目だけでは不十分な参照の局所性についても考慮でき
ることで、より効果的なキャッシュ制御が可能となる点
である。このキャッシュに登録しないVLD命令が実行
された場合には、無条件でキャッシュ登録を行わない。
ただし、ロードすべきデータがキャッシュメモリに存在
していた場合は、当然、キャッシュメモリを読み出す。
【0032】しかし、キャッシュメモリにデータを登録
するか否かをSW(ソフトウェア:コンパイラ)で判断
することは極めて困難であり、ある程度のHWによるサ
ポートが必要である。そのため、本発明では、VLD範
囲レジスタで、VLDのアクセスする領域の広さを局所
性の有無と判断する回路の実装によって、図8に示した
ような非効率的なキャッシュ動作を回避することができ
る。
【0033】次に、RUカウンタ制限値レジスタによる
時間的局所性に着目したキャッシュ登録制御について説
明する。時間的局所性とは、1度アクセスされたデータ
は、再びアクセスされやすい傾向があるということであ
る。このようなラインは、他のメモリアクセス時のキャ
ッシュミスによって、キャッシュから追い出されないよ
うにしなければならない。このキャッシュにおける追い
出しアルゴリズムに関しては、従来技術にあるように、
LRUアルゴリズムがある。
【0034】ところが、それは複数のWayで構成され
るキャッシュにおいて有用なものであり、ダイレクトマ
ップ構成であると、同一ラインのアクセスに関しては、
無条件に追い出されてしまう。さらに、キャッシュ容量
の巨大化の方向では、HWコストの面からダイレクトマ
ップ方式のキャッシュが一般的である。
【0035】また、キャッシュ登録データは少なくと
も、キャッシュに存在している限り2回以上そのライン
にアクセスしないと、そのまま1ライン分のブロックL
Dのコストだけ、逆効果となる。そこで、最近特にアク
セスが頻発に行われているラインであることを判断する
ために、RUカウンタという情報を各ラインに設ける。
RUカウンタの動作論理は下記のようである。 『V Hit LineHit RUカウンタ 備 考 0 − − A110 無効なライン 1 0 − No change 1 1 0 +1 別のラインでHit 1 1 1 A110 Hitして、使用』 このようにして、使用されないキャッシュラインに関し
ては、RUカウンタの値が上がってゆき、使用される可
能性が低いラインであると認識される。このRUカウン
タ値がRUカウンタ制限値レジスタを超えない場合は、
リプレース対象から外すことによって、使用される可能
性の高いラインがキャッシュに残ることになる。
【0036】これらの動作を実現する本特許の特徴とな
る2次キャッシュの構成について、図2に基づいて説明
する。VLD範囲REG−1(値と有効ビットで構成さ
れ、有効ビットが点灯していない時、比較結果はnon
−activeである)は、乗算器−4によって計算さ
れた〔VLレジスタ−2の出力〕*〔ディスタンスレジ
スタ−3の出力〕と比較され、比較器−5の比較結果信
号によって、ミス時にキャッシュに登録するか否かを決
定する。命令コードレジスタ(OPC)−17の値から
命令デコーダ−7によって、VLD信号(信号線70
6)及びキャッシュ非登録VLD信号(信号線710)
を生成する。
【0037】ANDゲート−6は、VLDが範囲を超え
るものであったことを示す信号を生成する。ANDゲー
ト−9は、RUカウンタ制限値REG−12(値と有効
ビットとで構成され、有効ビットが点灯していない時
は、比較結果はNon−activeである)とRUカ
ウンタ−30の値を比較する比較器−8の比較結果信号
より、時間的局所性の解析結果の信号が生成される。O
Rゲート−10は、Non−Cachable(キャッ
シュ非登録)の判断結果信号を出力し、その結果信号を
キャッシュ非登録指示フラグ−11が受ける。
【0038】有効フラグ−13は、Aステージに1次キ
ャッシュからのブロックロード、あるいは、VPUから
のベクトルメモリアクセス命令のリクエストが有効であ
ることを示し、2Wayセレクタ−19は命令コードレ
ジスタ(OPC)−17ヘ格納する値を選択する。
【0039】OPC−17及びアドレスレジスタ(AD
R)−14には、Aステージに存在する命令のコードと
アドレスが格納される。ORゲート−15は、1次キャ
ッシュからのブロックロード、あるいは、VPUからの
ベクトルメモリアクセス命令のリクエストが有効の出力
を生成する。
【0040】WEフラグ−16の点灯するケースは、ス
トア命令がwriteヒット時と、キャッシュミスリプ
ライのデータを書き込む時である。その2つのタイミン
グをORゲート−20で生成している。前者はキャッシ
ュヒット判定部−33から、後者はMissREQ制御
部−36からそれぞれ送られる。また、その時のアドレ
スは、1次キャッシュ、VPU、Bステ−ジのアドレス
レジスタ−26、MissREQ制御部−36から送ら
れる、各々、1次キャッシュブロックロードアドレス、
ベクトルメモリアクセス命令のアドレス、ストアwri
teヒット時のアドレス、キャッシュミスリプライのア
ドレスを、4Wayセレクタ−18で選択するものであ
る。
【0041】WDR(Write Data Regi
ster)−20は、DA(Data Array)−
32に対する書き込みデータレジスタである。2Way
セレクタ−21は、ストアwriteヒット時のストア
データ、キャッシュミスリプライデータを選択する。2
Wayセレクタ−23は、1次キャッシュ/VPUから
のストアリクエストのデータを選択し、ストアデータレ
ジスタ−22に格納する。ストアがwriteヒットし
た場合、ストアデータレジスタ−24で1サイクル持ち
回った後、WDR−20に格納し、そしてDA−32に
書き込む。有効フラグ−25、アドレスレジスタ−2
6、ストアデータレジスタ−24、キャッシュミスフラ
グ−27は、いずれもBステージの情報である。
【0042】キャッシュ有効ビット−29は、キャッシ
ュのラインが有効であることを示す。アドレスアレイ
(AA)−31は、対応するラインが如何なるアドレス
のデータであるかを示す。データアレイ−32は、キャ
ッシュデータを格納する。アドレス比較器−28は、A
A−31の出力を読んで、アドレスレジスタ−14の値
と比較し、キャッシュミスを判定し、その結果をキャッ
シュミスフラグ−27に格納する。
【0043】キャッシュヒット判定部−33は、Bステ
ージの制御情報を使用して、RUカウンタ−30を更新
するための制御信号を生成する。DA−32から読んだ
キャッシュデータと、メモリからのキャッシュミスリプ
ライデータとを2Wayセレクタ−34が選択し、RD
R(Read Data Register)−35に
格納する。
【0044】次に、図3に基づいて、本実施例が前提と
している2次キャッシュ構成について説明する。本実施
例では、ラインサイズ128B×256エントリ(容量
32KB)のダイレクトマップ方式を前提として説明す
る。このキャッシュの場合、AA(アドレスアレイ)及
びDA(データアレイ)から構成され、AAに格納され
るINDEXアドレスに対応するタグアドレスとリクエ
ストのアドレスが比較され、キャッシュヒットの判定が
行われる。メモリアクセスリクエストのアドレスは全体
で40bitであり、そのうち上位25ビットはTAG
アドレス、下位7ビットはラインアドレス、中間の8ビ
ットはINDEXアドレスというように構成される。
【0045】次に、図2中のRUカウンタ−30の周辺
回路について、図4に基づいて説明する。RUカウンタ
−30は、キャッシュのエントリに存在し、ADR−1
4の値に応じてデコーダ143とセレクタ301で選択
され、その出力がCachable決定回路に送られ
る。
【0046】キャッシュヒット判定部33は、INDE
Xアドレスのデコーダ331、命令デコーダ332を使
って、RUカウンタ−30に対して、キャッシュヒット
時の状況を報告する信号を出力する。デコーダ331
は、INDEXアドレスの256ビットのデコード信号
を生成する。命令デコーダ332は、信号線3321に
キャッシュ入りロード命令デコード信号を、そして信号
線3322にキャッシュ入りストア命令デコード信号を
それぞれ生成する。信号線3330の信号は、Bステー
ジに存在する有効なメモリロード命令がヒットしたこと
を示す。信号線3331の信号は、あるキャッシュエン
トリで、Bステージに存在する有効なメモリロード命令
がヒットしたことを示す。また、ストア命令でのwri
teヒット検出信号を信号線3332に生成し、Bステ
ージの次のタイミングでWEフラグを点灯させ、キャッ
シュにストアデータを書き込む。
【0047】次に、図9に基づいてVL=2の時のVL
D命令がキャッシュヒットした場合の動作について説明
する。2次キャッシュをアクセスする命令は、Aステー
ジで命令コード、アドレスが、各々、OPC−17、A
DR−14に設定される。Bステージで、1st/2n
dリクエストが両方ヒットした場合、次のタイミングは
両方ともWステージに移行し、読み出しデータがRDR
−35を介してVPUに送られる。
【0048】次に、図10に基づいてVL=2の時のV
ST命令がキャッシュヒットした場合の動作について説
明する。Aステージで命令コード、アドレス、ストアデ
ータが、各々、OPC−17、ADR−14、ストアデ
ータ−22に設定される。Bステージで、1st/2n
dリクエストが両方ヒットした場合、次のタイミングは
両方ともストアデータが、ストアデータ−22に格納さ
れ、WE−16が点灯して、DA−32に書き込まれ
る。
【0049】次に、図11に基づいてVL=2の時のV
LD命令がキャッシュミスした場合の動作について説明
する。Aステージで命令コード、アドレスが、各々、O
PC−17、ADR−14に格納され、Bステージでミ
スが判定される。それと同時にVL−2、distan
ce−3の値とADR−26、さらに、VLD範囲RE
G−1との比較によって、Cachableであること
を判定する。ここでのCachable判定条件は、
〔VLD範囲REG−1〕>〔VL〕*〔distan
ce〕である。キャッシュミス時のメモリリクエスト
は、1ライン分データのblockロ−ドとしてATB
へ送られ、その後ミスリプライ有効信号としてターゲッ
トになるワードデータから順に帰ってくる。そして、タ
イミング及びでWE−16を点灯させ、キャッシュ
に登録するとともにRDR−35を介してVPUにリプ
ライデータを送出する。さらに、残りのキャッシュライ
ンデータをキャッシュへ書き込むために、タイミング
(10)以後でも、WE−16が点灯する。この場合、
従来技術でも説明したように、後続命令の発行を止める
必要がある。
【0050】次に、図12に基づいてVL=2の時のV
ST命令がキャッシュミスした場合の動作について説明
する。Aステージで、命令コード、アドレス、ストアデ
ータが、各々OPC−17、ADR−14、ストアデー
タ−22に設定される。Bステージで、1st/2nd
リクエストが両方ミスした場合、次のタイミングで両方
ともATBへのリクエストとして送出される。
【0051】次に、図13に基づいてVL=2の時のV
LD命令がキャッシュミスし、且つNon‐cacha
bleとなった場合の動作について説明する。Aステー
ジで命令コード、アドレスが、各々OPC−17、AD
R−14に格納され、Bステージでミスが判定される。
それと同時にVL−2、distance−3の値とA
DR−26、さらに、VLD範囲REG−1との比較に
よって、Non‐cachableであることを判定す
る。ここでのCachable判定条件は、〔VLD範
囲REG−1〕<=〔VL〕*〔distance〕で
ある。キャッシュミス時のメモリリクエストは、要求す
るワードデータのみのリクエストとしてATBへ送ら
れ、その後ミスリプライ有効信号として帰ってくる。し
かし、Non‐cachableであるため、WE−1
6は点灯せず、リプライデータを単にVPUへ返すだけ
である。したがって、その後のリフィル動作が発生しな
いので、その分後続命令の待ちが発生しない点で図11
の動作と異なる。
【0052】次に、図14に基づいて、本特許における
キャッシュ登録判定にかかわるVLD範囲REG−1、
RUカウンタ制限値REG−13への命令による書き込
み動作について説明する。上記2つのレジスタは、LC
RG命令によってセットされる。その命令のYフィール
ドで指定されたレジスタ内容にしたがって各々のレジス
タに値を格納する。本発明における機能を有効にしたい
場合は、各々のVビットに“1”を立てる必要がある。
一方、LCRG命令の動きとしては、Aステージに到着
する1サイクル前にVPUからの指示によって、VLD
範囲REG(V、data)−1、RUカウンタ制限値
REG(V、data)−13に設定される。
【0053】図15は、図9〜図13におけるVLD命
令及びVST命令が発生した場合の動作についてフロー
チャートとしてまとめたものである。図左側に示すフロ
ーのように、VLD命令リクエストが発生すると、キャ
ッシュヒットか否かが判定され、ヒットした場合は、キ
ャッシュを読んでVPUに返す(図9に対応するフロ
ー)。
【0054】ヒットしない場合には、次いで、Cach
ableか否かが判定される。Cachableである
場合には、ATBへ1ライン分のブロックLDリクエス
トを発行し、リプライターゲットデータをVPUに返し
て、キャッシュにブロックデータを書き込む(図11に
対応するフロー)。
【0055】他方、Cachableでない場合は、A
TBへ必要なワードのみのリクエストを発行し、そして
リプライターゲットデータをVPUへ返す(図13に対
応するフロー)。
【0056】図15右側のようにVST命令リクエスト
が発生すると、キャッシュヒットか否かが判定される。
ヒットした場合には、Cacheにデータの書き込みを
行う(図10に対応するフロー)。他方、ヒットしない
場合には、ATBへメモリ書き込みのリクエストを発行
する(図12に対応するフロー)。
【0057】
【効果】本発明にかかるキャッシュ制御方法並びに制御
回路によれば、ロードリクエストの性質、あるいは、ヒ
ットしたラインの履歴によって、キャッシュに登録させ
るロードにするか否かをHWが動的に判断することにな
る。
【0058】また、VLD範囲レジスタとRUカウンタ
制限値レジスタの更新によって、判断方法をSWが明示
的に指定することができる。それによって、発明の背景
で説明したような問題点を解決し、参照のローカリティ
が厳密な意味で保証されないプログラムであっても、キ
ャッシュによる性能向上効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施例におけるキャッシュ制御回路の
全体構成図である。
【図2】本発明の実施例における2次キャッシュ周辺回
路の構成図である。
【図3】本発明の実施例における2次キャッシュ構成図
である。
【図4】RUカウンタ制御回路周辺構成図である。
【図5】キャッシュリフィル時の性能低下について説明
した図である。
【図6】本発明の実施例におけるVLD命令仕様を示す
図である。
【図7】科学技術計算におけるメモリアクセスの局所性
について説明した図である。
【図8】局所性のないプログラムにおいてキャッシュが
意味をなさない例を説明した図である。
【図9】VL=2の時のVLD命令がキャッシュヒット
した時の動作について説明した図である。
【図10】VL=2の時のVST命令がキャッシュヒッ
トした時の動作について説明した図である。
【図11】VL=2の時のVLD命令がキャッシュミス
した時の動作について説明した図である。
【図12】VL=2の時のVST命令がキャッシュミス
した時の動作について説明した図である。
【図13】VL=2の時のVLD命令がキャッシュミス
し、且つ、Noncachableとなった時の動作に
ついて説明した図である。
【図14】キャッシュ登録判定にかかわるレジスタへの
命令による書き込み動作について説明した図である。
【図15】図9ないし図13に対応するVLD命令及び
VST命令の動作に関するフロー図である。
【符号の説明】
SPU スカラプロセッサユニット VPU ベクトルプロセッサユニット ATB アドレス変換バッファ IOP 入出力処理部 VLD ベクトルロード VL ベクトル長 AA アドレスアレイ DA データアレイ WDR 書き込みデータレジスタ RDR 読み出しデータレジスタ OPC 命令コードレジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュメモリを有する情報処理装置
    のキャッシュ制御方法において、ベクトルロード命令ア
    クセス範囲を規定する値、ベクトル長の値、そしてディ
    スタンス値、の各々の値を基礎として、ベクトルロード
    命令のデータをキャッシュへ登録するかまたは非登録と
    するかの判定を行い、その判定結果に従ってキャッシュ
    への登録または非登録の制御を選択的に実行することを
    特徴とするキャッシュ制御方法。
  2. 【請求項2】 キャッシュメモリを有する情報処理装置
    のキャッシュ制御回路において、ベクトルロード命令ア
    クセス範囲を規定する値を保持する第1のレジスタと、
    ベクトル長を保持する第2のレジスタと、ディスタンス
    を保持する第3のレジスタと、前記第1、第2及び第3
    のレジスタの値に基づいてベクトルロード命令のデータ
    をキャッシュに対して登録または非登録の判定を行う回
    路と、該判定結果を保持する第4のレジスタと、該第4
    のレジスタの判定結果に従って、キャッシュへの登録ま
    たは非登録の制御を選択的に実行するミスリプライ制御
    回路と、を具備することを特徴とするキャッシュ制御回
    路。
  3. 【請求項3】 キャッシュメモリを有する情報処理装置
    のキャッシュ制御回路において、キャッシュアクセスの
    制限使用回数を格納する第5のレジスタと、キャッシュ
    の各エントリに対応してキャッシュアクセス回数の計測
    結果を保持する第6のレジスタ群と、その値を更新する
    制御回路と、アクセスしたキャッシュエントリに対応す
    る第6のレジスタ値と第5のレジスタ値とを比較した結
    果から、キャッシュへの登録または非登録の判定を行う
    制御回路と、その結果を保持する第4のレジスタと、該
    第4のレジスタの判定結果にしたがって、キャッシュへ
    の登録または非登録の制御を選択的に実行するミスリプ
    ライ制御回路と、を具備することを特徴とするキャッシ
    ュ制御回路。
JP2001033857A 2001-02-09 2001-02-09 キャッシュ制御方法及びキャッシュ制御回路 Expired - Fee Related JP3770091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001033857A JP3770091B2 (ja) 2001-02-09 2001-02-09 キャッシュ制御方法及びキャッシュ制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001033857A JP3770091B2 (ja) 2001-02-09 2001-02-09 キャッシュ制御方法及びキャッシュ制御回路

Publications (2)

Publication Number Publication Date
JP2002236614A true JP2002236614A (ja) 2002-08-23
JP3770091B2 JP3770091B2 (ja) 2006-04-26

Family

ID=18897548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001033857A Expired - Fee Related JP3770091B2 (ja) 2001-02-09 2001-02-09 キャッシュ制御方法及びキャッシュ制御回路

Country Status (1)

Country Link
JP (1) JP3770091B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム
JP2008250926A (ja) * 2007-03-30 2008-10-16 Nec Corp ベクトル処理装置及びベクトル処理システム
WO2011078014A1 (ja) * 2009-12-21 2011-06-30 ソニー株式会社 キャッシュメモリおよびキャッシュメモリ制御装置
CN116257493A (zh) * 2022-12-29 2023-06-13 北京京桥热电有限责任公司 一种基于缓存机制的opc穿网闸接口

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888839B2 (ja) 2008-10-03 2012-02-29 日本電気株式会社 キャッシュメモリを備えるベクトル計算機システム、及びその動作方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226641A (ja) * 2006-02-24 2007-09-06 Nec Corp 情報処理装置、キャッシュ制御方法及びプログラム
JP2008250926A (ja) * 2007-03-30 2008-10-16 Nec Corp ベクトル処理装置及びベクトル処理システム
WO2011078014A1 (ja) * 2009-12-21 2011-06-30 ソニー株式会社 キャッシュメモリおよびキャッシュメモリ制御装置
CN102667737A (zh) * 2009-12-21 2012-09-12 索尼公司 缓冲存储器和缓冲存储器控制单元
US9535841B2 (en) 2009-12-21 2017-01-03 Sony Corporation Cache memory and cache memory control unit
US10102132B2 (en) 2009-12-21 2018-10-16 Sony Corporation Data transfer in a multiprocessor using a shared cache memory
CN116257493A (zh) * 2022-12-29 2023-06-13 北京京桥热电有限责任公司 一种基于缓存机制的opc穿网闸接口

Also Published As

Publication number Publication date
JP3770091B2 (ja) 2006-04-26

Similar Documents

Publication Publication Date Title
US11803486B2 (en) Write merging on stores with different privilege levels
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US5692152A (en) Master-slave cache system with de-coupled data and tag pipelines and loop-back
US5809530A (en) Method and apparatus for processing multiple cache misses using reload folding and store merging
US6105111A (en) Method and apparatus for providing a cache management technique
US6151662A (en) Data transaction typing for improved caching and prefetching characteristics
US6681295B1 (en) Fast lane prefetching
US8806177B2 (en) Prefetch engine based translation prefetching
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
US9619390B2 (en) Proactive prefetch throttling
US20040103251A1 (en) Microprocessor including a first level cache and a second level cache having different cache line sizes
US7707361B2 (en) Data cache block zero implementation
US20090106499A1 (en) Processor with prefetch function
US20080133844A1 (en) Method and apparatus for extending local caches in a multiprocessor system
US8250307B2 (en) Sourcing differing amounts of prefetch data in response to data prefetch requests
JPH10187533A (ja) キャッシュシステム、プロセッサ及びプロセッサを動作させる方法
US20200104259A1 (en) System, method, and apparatus for snapshot prefetching to improve performance of snapshot operations
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
US7133975B1 (en) Cache memory system including a cache memory employing a tag including associated touch bits
US6408363B1 (en) Speculative pre-flush of data in an out-of-order execution processor system
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
JP6457836B2 (ja) プロセッサおよび命令コード生成装置
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
US8266381B2 (en) Varying an amount of data retrieved from memory based upon an instruction hint
US20030088636A1 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050608

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051221

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: 20060117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060130

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: 20100217

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100217

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110217

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110217

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120217

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees