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
Links
Landscapes
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
厳密な意味で保証されないプログラムであっても、キャ
ッシュメモリによる性能向上効果を得ることができるキ
ャッシュ制御方法およびキャッシュ制御回路を提供する
こと。 【解決手段】 キャッシュメモリを有する情報処理装置
のキャッシュ制御回路であって、ベクトルロード命令ア
クセス範囲を規定する値を保持する第1のレジスタと、
ベクトル長を保持する第2のレジスタと、ディスタンス
を保持する第3のレジスタと、前記第1、第2及び第3
のレジスタの値に基づいてベクトルロード命令のデータ
をキャッシュに対して登録または非登録の判定を実行す
る回路と、該判定結果を保持する第4のレジスタと、該
第4のレジスタの判定結果にしたがって、キャッシュへ
の登録または非登録の制御を選択的に実行するミスリプ
ライ制御回路と、を具備する。
Description
テムにおいて使用されるキャッシュメモリを制御するた
めのキャッシュ制御方法及びキャッシュ制御回路に関す
る。
クセスのボトルネック解消のために、キャッシュと呼ば
れる小容量で高速のバッファメモリを利用する技術は、
古くからほとんどのシステムで使用されている。キャッ
シュメモリを使用する効果は、以下の2つである。その
第1は、主メモリ等に比べて小容積に構成し得ることか
ら、プロセッサの近く、例えば、同一LSI内部に配置
できることになり、オペランドデータのレイテンシー
(Latency)の大幅短縮が実現できることであ
る。
シュのようにメモリへの書き込みを常時には行わない場
合、メモリアクセスに必要なスループットを抑えること
ができる。したがって、メモリ構造を簡素化でき、コス
ト面で有利であることと、逆にいえば、メモリアクセス
頻度を抑えることで、メモリインターフェースのリクエ
スト競合を回避できるため、性能向上が実現できること
である。
めには、以下に示す実際のプログラムにおけるメモリア
クセスの振る舞いが、通常は一定の性質を持つものであ
るとの前提が必要である。それは、参照の局所性(以
下、ローカリティともいう)というメモリアクセスの性
質によるものである。すなわち、空間的ローカリティ
(参照されるアドレスはある部分に固まっていること)
と、時間的ローカリティ(参照されるアドレスは、ある
時間内に集中していること)である。
単に説明する。ただし、キャッシュメモリの動作につい
ては、多くの文献があり、例えば“並列コンピュータ”
天野英晴著(昭晃堂)に詳しく説明されているので、
本発明に直接関係しない動きに関しては説明を割愛す
る。
一キャッシュラインアドレスのラインは追い出される。
ストアスルー型キャッシュの場合は、メモリとの一貫性
が常時保たれているため、新しいラインをキャッシュに
上書きするだけで済む。しかし、ストアイン型キャッシ
ュの場合には、メモリとの一貫性が保たれていないの
で、追い出されるキャッシュラインをメモリに書き込む
必要がある。
ータ分のブロックロードリクエストが発生する。メモリ
に対して、無駄なデータを持ってくる処理が入るが、そ
の一方で暗示的なプリフェッチとなるという長所もある
ため、その得失は一概には断じられない。
おり、“A”、“B”、“W”は、ロード(以下、LD
ともいう)命令が、各々メモリアクセスリクエストを発
行するステージ、キャッシュアクセスを終わるステー
ジ、レジスタへの書き込みステージに存在することを意
味する。
t)時のタイミングであり、この場合、わずか3サイク
ルで終了する。LD−2は、キャッシュミス(mis
s)した場合の動作であり、メモリに対してリフィルデ
ータを要求し、ターゲットとなるデータが最初に帰って
くる場合が、一般的であり、その時点で、LD−2はW
ステージに移行することができる。しかし、リフィルの
ために、1ライン分のデータをキャッシュに書き込むた
めの時間が必要であり、その間は、後続のキャッシュア
クセス命令の発行が不可となる。LD−3は、キャッシ
ュにデータを登録しないキャッシュバイパスロードのタ
イミングであり、LD−2との違いは、ミスした場合
に、ミスリプライデータをキャッシュに登録しない点に
ある。
合、リフィルデータのキャッシュ書き込み時における後
続キャッシュアクセス命令の発行が抑止されることがな
い点から、このケースだけを見ればLD−3が性能上優
れていると言える。
ている参照の局所性が崩れると、以下のような問題点が
発生する。問題点1)1回しかLDしないラインをキャ
ッシュに入れることは、キャッシュにデータを登録しな
い場合に比べて、キャッシュラインデータのストアとロ
ードが余計に必要となる。問題点2)まだ有用なキャッ
シュラインにもかかわらずリプレースしてしまう。
いるものには、科学技術計算プログラムがある。しか
し、近年、マイクロプロセッサにおけるキャッシュ容量
は、LSI技術の絶え間ない進歩によって、KB単位か
らMB単位に増強されている。また、キャッシュを考慮
したプログラムの最適化技術も、このようなキャッシュ
容量のトレンドに追従し、ストアイン型キャッシュのマ
イクロプロセッサにおいても、科学技術計算プログラム
の性能が向上してきた。しかし、コンパイラの最適化技
術はいくら進んでも、実行前のプログラムからメモリア
クセスの振る舞いを認識して、高いキャッシュヒット率
を実現するには限界がある。
よく実行する装置として、ベクトル型計算機がある。ベ
クトル型計算機では、ベクトルレジスタという複数ワー
ドデータを格納するレジスタに対する処理を、ベクトル
命令という命令1つで規定できる。例えば、ベクトルロ
ード(以下、VLDともいう)命令は、ベクトル長レジ
スタ(以下、VLともいう)の値分のロードを実行し、
その読み出しデータをベクトルレジスタという複数ワー
ドを集めたレジスタに格納する。逆に、ベクトルストア
(以下、VSTともいう)はベクトルレジスタにある複
数のワードデータを、メモリに格納する。
〔ディスタンス(distance)〕*〔VL〕の大きなVL
D命令が発行され、それが悉くキャッシュミスする場
合、VLD1命令で数多くのキャッシュラインがリプレ
ースされてしまう。その中で、使ったばかりのラインが
存在していた場合、時間的局所性を期待してキャッシュ
に登録されているデータがキャンセルされ、再々度キャ
ッシュラインデータがリフィルされてしまうという、性
能上悲劇的状況に至る。
な従来技術の問題点を解消し、参照の局所性が厳密な意
味で保証されないプログラムであっても、キャッシュメ
モリによる性能向上効果を得ることができるキャッシュ
制御回路を提供することである。
ュメモリを有する情報処理装置のキャッシュ制御方法に
おいて、ベクトルロード命令アクセス範囲を規定する値
と、ベクトル長の値と、そしてディスタンス値と、の各
々の値を基礎として、ベクトルロード命令のデータをキ
ャッシュへ登録するかまたは非登録とするかの判定を行
い、その判定結果に従ってキャッシュへの登録または非
登録の制御を選択的に実行するキャッシュ制御方法によ
って解決される。
リを有する情報処理装置のキャッシュ制御回路におい
て、ベクトルロード命令アクセス範囲を規定する値を保
持する第1のレジスタと、ベクトル長を保持する第2の
レジスタと、ディスタンスを保持する第3のレジスタ
と、前記第1、第2及び第3のレジスタの値から、ベク
トルロード命令のデータをキャッシュへの登録または非
登録の判定を行う回路と、その結果を保持する第4のレ
ジスタと、該第4のレジスタの判定結果に従ってキャッ
シュへの登録または非登録の制御を選択的に行うミスリ
プライ制御回路と、を具備するキャッシュ制御回路によ
って解決される。
を有する情報処理装置のキャッシュ制御回路において、
キャッシュアクセスの制限使用回数を格納する第5のレ
ジスタと、キャッシュの各エントリに対応してキャッシ
ュアクセス回数の計測結果を保持する第6のレジスタ群
と、その値を更新する制御回路と、アクセスしたキャッ
シュエントリに対応する第6のレジスタ値と第5のレジ
スタ値とを比較した結果から、キャッシュへの登録また
は非登録の判定を行う制御回路と、その結果を保持する
第4のレジスタと、該第4のレジスタの判定結果にした
がって、キャッシュへの登録または非登録の制御を選択
的に行うミスリプライ制御回路と、を具備するキャッシ
ュ制御回路によって有利に解決される。
御回路によれば、ロードリクエストの性質、あるいは、
ヒットしたラインの履歴によって、キャッシュメモリに
登録させるロードにするか否かをハードウェア(以下、
HWともいう)が動的に判断する。
制限値レジスタの更新によって、判断方法をソフトウェ
ア(以下、SWともいう)が明示的に指定することがで
きる。それによって、発明の背景で説明したような問題
点を解決し、参照のローカリティが厳密な意味で保証さ
れないプログラムであっても、キャッシュメモリによる
性能向上効果を得ることができる。
にかかるキャッシュ制御装置の実施の形態を説明する。
このキャッシュ制御装置は、図1に示されているような
基本構成に適用される。スカラプロセッサユニット(以
下、SPUともいう)−1は、全命令の解読/実行指
示、及びスカラ命令の実行を行う。1次キャッシュユニ
ット−2は、スカラメモリアクセス系命令で使用するデ
ータのみを格納するものである。ベクトルプロセッサユ
ニット(以下、VPUともいう)−3は、SPU−1の
指示にしたがってベクトル命令の実行を行う。
/ベクトル系の両方で使われるデータを格納するもので
ある。アドレス変換バッファ(以下、ATBという)−
5は、論理アドレスを物理アドレスに変換するバッファ
である。また、メモリユニット−6は、メモリとメモリ
アクセス制御部とを含んでいる。IOP−7は入出力処
理を行う。
102でLDリクエストを発行し、1次キャッシュユニ
ット−2内でミスすると、ラインデータのブロックリク
エストとして信号線204を介して2次キャッシュユニ
ット−4にデータを探しにゆく。そこでもミスした場合
は、信号線405を介してATB5にメモリリクエスト
を送り、物理アドレスに変換して信号線506を介して
メモリユニット−6に送出される。メモリユニット−6
から読み出されたデータは、信号線604を介して2次
キャッシュユニット−4に戻ってきてラインデータが格
納され、信号線402を介して1次キャッシュユニット
−2に戻って、そのラインデータが登録される。その
時、最初のLD命令のターゲットデータは、信号線20
1を介してSPU−1に送られる。
前に、VLD命令の仕様について、図6に基づいて説明
する。VPU−3内にはベクトルレジスタとも呼ばれる
複数の要素データを格納できるレジスタファイルが存在
する。VLD命令は、Vxで指定されたベクトルレジス
タに、SPU−1から送られてくるRy(ディスタン
ス)とRz(開始アドレス)で規定されたVLというレ
ジスタで指定される個数のメモリロードを一括して行う
命令である。
図1のような基本構成を用いる。VLというレジスタ
は、LVLという命令によって、ソフトウェアで書き換
えられるレジスタで、VPU−3内に存在する。VLD
命令の動きを図1のブロック図にしたがって説明する。
VLD命令はSPU−1で命令デコードされ、その結
果、信号線103を介して実行指示がVPU−3に送ら
れる。VPU−3では、VLD命令が処理されるが、そ
の際、開始アドレス、ディスタンス、VL(ベクトル
長)が信号線304を介して2次キャッシュユニット−
4に送られる。
た場合、該当するラインに対するブロックリクエストに
なり、スカラLDと同様にATB−5を通過し、メモリ
ユニット−6から信号線604を介してリプライデータ
を2次キャッシュユニット−4に送る。2次キャッシュ
ユニット−4が受け取ったリプライデータは、対応する
キャッシュラインに格納されると同時に信号線403を
介してターゲットデータのみがVPU−3に送られ、ベ
クトルレジスタに格納される。このような処理がVLで
指定された数だけ実行される。しかし、2次キャッシュ
がヒットした場合は、2次キャッシュの読み出しデータ
だけが信号線403を介してVPU−3に送られる。
VLD範囲レジスタ、または、RUカウンタ制限値レジ
スタを用いたキャッシャブル判定回路によって、キャッ
シュミスした場合に必ずしもキャッシュに取り込まない
ようにする。この場合、2次キャッシュのラインサイズ
のブロックロードリクエストが発行されることはなく、
信号線405にVLDの要素毎のリクエストが発行さ
れ、信号線604を介して送られてくるリプライデ−タ
を素通りさせて、信号線403を介して、VPU−3へ
送る。
における動作について説明する。従来のベクトルメモリ
アクセスは、全てキャッシュされないものであったが、
前述のようにLSI技術の進歩によるキャッシュ容量の
大幅増加と、コンパイラによる最適化技術の進歩によっ
て、科学技術計算でもある程度のキャッシュを使って意
味のあるような参照局所性が実現できる。しかし、その
中でもどうしても局所性を維持するような最適化ができ
ない部分も時には存在する。その様子を図7に示す。
るVLD命令でベクトルオペランドデータをフェッチし
て、それを演算し、VST命令でメモリに書き戻すとい
った処理が行われ、1回VLD命令で読んだオペランド
は2回以上読み出されることはほとんどない。このよう
な場合、VLDのメモリデータをキャッシュに取り込む
ことは、無意味である。
スが128BでVLが256のケースで、キャッシュ
(ラインサイズ128B)に登録したケースについて説
明している。VLD命令の要素データは、ラインデータ
のある1部にのみ存在するため、VLD命令1つのため
に、メモリLDデータは8B×256(=2KB)しか
必要でないにもかかわらず、128B×256(=32
KB)ものブロックLDが発生し、無駄なLDリクエス
トが30KB分も行われることになる。さらに、32K
B分のキャッシュは、このVLD命令によって、図7で
示しているような参照局所性が維持されている部分で必
要とされているキャッシュデータが書きつぶされてしま
うという悲劇的状況が生まれる。
として、キャッシュメモリにデータを登録しないことを
最初から命令で明示的に指定するという方法もある。こ
の方法の利点は、アドレス・ディスタンスといった値の
着目だけでは不十分な参照の局所性についても考慮でき
ることで、より効果的なキャッシュ制御が可能となる点
である。このキャッシュに登録しないVLD命令が実行
された場合には、無条件でキャッシュ登録を行わない。
ただし、ロードすべきデータがキャッシュメモリに存在
していた場合は、当然、キャッシュメモリを読み出す。
するか否かをSW(ソフトウェア:コンパイラ)で判断
することは極めて困難であり、ある程度のHWによるサ
ポートが必要である。そのため、本発明では、VLD範
囲レジスタで、VLDのアクセスする領域の広さを局所
性の有無と判断する回路の実装によって、図8に示した
ような非効率的なキャッシュ動作を回避することができ
る。
時間的局所性に着目したキャッシュ登録制御について説
明する。時間的局所性とは、1度アクセスされたデータ
は、再びアクセスされやすい傾向があるということであ
る。このようなラインは、他のメモリアクセス時のキャ
ッシュミスによって、キャッシュから追い出されないよ
うにしなければならない。このキャッシュにおける追い
出しアルゴリズムに関しては、従来技術にあるように、
LRUアルゴリズムがある。
るキャッシュにおいて有用なものであり、ダイレクトマ
ップ構成であると、同一ラインのアクセスに関しては、
無条件に追い出されてしまう。さらに、キャッシュ容量
の巨大化の方向では、HWコストの面からダイレクトマ
ップ方式のキャッシュが一般的である。
も、キャッシュに存在している限り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カウンタ制限値レジスタを超えない場合は、
リプレース対象から外すことによって、使用される可能
性の高いラインがキャッシュに残ることになる。
る2次キャッシュの構成について、図2に基づいて説明
する。VLD範囲REG−1(値と有効ビットで構成さ
れ、有効ビットが点灯していない時、比較結果はnon
−activeである)は、乗算器−4によって計算さ
れた〔VLレジスタ−2の出力〕*〔ディスタンスレジ
スタ−3の出力〕と比較され、比較器−5の比較結果信
号によって、ミス時にキャッシュに登録するか否かを決
定する。命令コードレジスタ(OPC)−17の値から
命令デコーダ−7によって、VLD信号(信号線70
6)及びキャッシュ非登録VLD信号(信号線710)
を生成する。
るものであったことを示す信号を生成する。ANDゲー
ト−9は、RUカウンタ制限値REG−12(値と有効
ビットとで構成され、有効ビットが点灯していない時
は、比較結果はNon−activeである)とRUカ
ウンタ−30の値を比較する比較器−8の比較結果信号
より、時間的局所性の解析結果の信号が生成される。O
Rゲート−10は、Non−Cachable(キャッ
シュ非登録)の判断結果信号を出力し、その結果信号を
キャッシュ非登録指示フラグ−11が受ける。
ャッシュからのブロックロード、あるいは、VPUから
のベクトルメモリアクセス命令のリクエストが有効であ
ることを示し、2Wayセレクタ−19は命令コードレ
ジスタ(OPC)−17ヘ格納する値を選択する。
R)−14には、Aステージに存在する命令のコードと
アドレスが格納される。ORゲート−15は、1次キャ
ッシュからのブロックロード、あるいは、VPUからの
ベクトルメモリアクセス命令のリクエストが有効の出力
を生成する。
トア命令がwriteヒット時と、キャッシュミスリプ
ライのデータを書き込む時である。その2つのタイミン
グをORゲート−20で生成している。前者はキャッシ
ュヒット判定部−33から、後者はMissREQ制御
部−36からそれぞれ送られる。また、その時のアドレ
スは、1次キャッシュ、VPU、Bステ−ジのアドレス
レジスタ−26、MissREQ制御部−36から送ら
れる、各々、1次キャッシュブロックロードアドレス、
ベクトルメモリアクセス命令のアドレス、ストアwri
teヒット時のアドレス、キャッシュミスリプライのア
ドレスを、4Wayセレクタ−18で選択するものであ
る。
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ステージの情報である。
ュのラインが有効であることを示す。アドレスアレイ
(AA)−31は、対応するラインが如何なるアドレス
のデータであるかを示す。データアレイ−32は、キャ
ッシュデータを格納する。アドレス比較器−28は、A
A−31の出力を読んで、アドレスレジスタ−14の値
と比較し、キャッシュミスを判定し、その結果をキャッ
シュミスフラグ−27に格納する。
ージの制御情報を使用して、RUカウンタ−30を更新
するための制御信号を生成する。DA−32から読んだ
キャッシュデータと、メモリからのキャッシュミスリプ
ライデータとを2Wayセレクタ−34が選択し、RD
R(Read Data Register)−35に
格納する。
している2次キャッシュ構成について説明する。本実施
例では、ラインサイズ128B×256エントリ(容量
32KB)のダイレクトマップ方式を前提として説明す
る。このキャッシュの場合、AA(アドレスアレイ)及
びDA(データアレイ)から構成され、AAに格納され
るINDEXアドレスに対応するタグアドレスとリクエ
ストのアドレスが比較され、キャッシュヒットの判定が
行われる。メモリアクセスリクエストのアドレスは全体
で40bitであり、そのうち上位25ビットはTAG
アドレス、下位7ビットはラインアドレス、中間の8ビ
ットはINDEXアドレスというように構成される。
回路について、図4に基づいて説明する。RUカウンタ
−30は、キャッシュのエントリに存在し、ADR−1
4の値に応じてデコーダ143とセレクタ301で選択
され、その出力がCachable決定回路に送られ
る。
Xアドレスのデコーダ331、命令デコーダ332を使
って、RUカウンタ−30に対して、キャッシュヒット
時の状況を報告する信号を出力する。デコーダ331
は、INDEXアドレスの256ビットのデコード信号
を生成する。命令デコーダ332は、信号線3321に
キャッシュ入りロード命令デコード信号を、そして信号
線3322にキャッシュ入りストア命令デコード信号を
それぞれ生成する。信号線3330の信号は、Bステー
ジに存在する有効なメモリロード命令がヒットしたこと
を示す。信号線3331の信号は、あるキャッシュエン
トリで、Bステージに存在する有効なメモリロード命令
がヒットしたことを示す。また、ストア命令でのwri
teヒット検出信号を信号線3332に生成し、Bステ
ージの次のタイミングでWEフラグを点灯させ、キャッ
シュにストアデータを書き込む。
D命令がキャッシュヒットした場合の動作について説明
する。2次キャッシュをアクセスする命令は、Aステー
ジで命令コード、アドレスが、各々、OPC−17、A
DR−14に設定される。Bステージで、1st/2n
dリクエストが両方ヒットした場合、次のタイミングは
両方ともWステージに移行し、読み出しデータがRDR
−35を介してVPUに送られる。
ST命令がキャッシュヒットした場合の動作について説
明する。Aステージで命令コード、アドレス、ストアデ
ータが、各々、OPC−17、ADR−14、ストアデ
ータ−22に設定される。Bステージで、1st/2n
dリクエストが両方ヒットした場合、次のタイミングは
両方ともストアデータが、ストアデータ−22に格納さ
れ、WE−16が点灯して、DA−32に書き込まれ
る。
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が点灯する。この場合、
従来技術でも説明したように、後続命令の発行を止める
必要がある。
ST命令がキャッシュミスした場合の動作について説明
する。Aステージで、命令コード、アドレス、ストアデ
ータが、各々OPC−17、ADR−14、ストアデー
タ−22に設定される。Bステージで、1st/2nd
リクエストが両方ミスした場合、次のタイミングで両方
ともATBへのリクエストとして送出される。
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
の動作と異なる。
キャッシュ登録判定にかかわる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に設定される。
令及びVST命令が発生した場合の動作についてフロー
チャートとしてまとめたものである。図左側に示すフロ
ーのように、VLD命令リクエストが発生すると、キャ
ッシュヒットか否かが判定され、ヒットした場合は、キ
ャッシュを読んでVPUに返す(図9に対応するフロ
ー)。
ableか否かが判定される。Cachableである
場合には、ATBへ1ライン分のブロックLDリクエス
トを発行し、リプライターゲットデータをVPUに返し
て、キャッシュにブロックデータを書き込む(図11に
対応するフロー)。
TBへ必要なワードのみのリクエストを発行し、そして
リプライターゲットデータをVPUへ返す(図13に対
応するフロー)。
が発生すると、キャッシュヒットか否かが判定される。
ヒットした場合には、Cacheにデータの書き込みを
行う(図10に対応するフロー)。他方、ヒットしない
場合には、ATBへメモリ書き込みのリクエストを発行
する(図12に対応するフロー)。
回路によれば、ロードリクエストの性質、あるいは、ヒ
ットしたラインの履歴によって、キャッシュに登録させ
るロードにするか否かをHWが動的に判断することにな
る。
制限値レジスタの更新によって、判断方法をSWが明示
的に指定することができる。それによって、発明の背景
で説明したような問題点を解決し、参照のローカリティ
が厳密な意味で保証されないプログラムであっても、キ
ャッシュによる性能向上効果を得ることができる。
全体構成図である。
路の構成図である。
である。
した図である。
図である。
について説明した図である。
意味をなさない例を説明した図である。
した時の動作について説明した図である。
トした時の動作について説明した図である。
した時の動作について説明した図である。
した時の動作について説明した図である。
し、且つ、Noncachableとなった時の動作に
ついて説明した図である。
命令による書き込み動作について説明した図である。
VST命令の動作に関するフロー図である。
Claims (3)
- 【請求項1】 キャッシュメモリを有する情報処理装置
のキャッシュ制御方法において、ベクトルロード命令ア
クセス範囲を規定する値、ベクトル長の値、そしてディ
スタンス値、の各々の値を基礎として、ベクトルロード
命令のデータをキャッシュへ登録するかまたは非登録と
するかの判定を行い、その判定結果に従ってキャッシュ
への登録または非登録の制御を選択的に実行することを
特徴とするキャッシュ制御方法。 - 【請求項2】 キャッシュメモリを有する情報処理装置
のキャッシュ制御回路において、ベクトルロード命令ア
クセス範囲を規定する値を保持する第1のレジスタと、
ベクトル長を保持する第2のレジスタと、ディスタンス
を保持する第3のレジスタと、前記第1、第2及び第3
のレジスタの値に基づいてベクトルロード命令のデータ
をキャッシュに対して登録または非登録の判定を行う回
路と、該判定結果を保持する第4のレジスタと、該第4
のレジスタの判定結果に従って、キャッシュへの登録ま
たは非登録の制御を選択的に実行するミスリプライ制御
回路と、を具備することを特徴とするキャッシュ制御回
路。 - 【請求項3】 キャッシュメモリを有する情報処理装置
のキャッシュ制御回路において、キャッシュアクセスの
制限使用回数を格納する第5のレジスタと、キャッシュ
の各エントリに対応してキャッシュアクセス回数の計測
結果を保持する第6のレジスタ群と、その値を更新する
制御回路と、アクセスしたキャッシュエントリに対応す
る第6のレジスタ値と第5のレジスタ値とを比較した結
果から、キャッシュへの登録または非登録の判定を行う
制御回路と、その結果を保持する第4のレジスタと、該
第4のレジスタの判定結果にしたがって、キャッシュへ
の登録または非登録の制御を選択的に実行するミスリプ
ライ制御回路と、を具備することを特徴とするキャッシ
ュ制御回路。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4888839B2 (ja) | 2008-10-03 | 2012-02-29 | 日本電気株式会社 | キャッシュメモリを備えるベクトル計算機システム、及びその動作方法 |
-
2001
- 2001-02-09 JP JP2001033857A patent/JP3770091B2/ja not_active Expired - Fee Related
Cited By (7)
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 |