JPH0421043A - 1チップキャッシュメモリ - Google Patents
1チップキャッシュメモリInfo
- Publication number
- JPH0421043A JPH0421043A JP2124963A JP12496390A JPH0421043A JP H0421043 A JPH0421043 A JP H0421043A JP 2124963 A JP2124963 A JP 2124963A JP 12496390 A JP12496390 A JP 12496390A JP H0421043 A JPH0421043 A JP H0421043A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- cache memory
- memory
- cpu
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、1チツプキヤシユメモリのフェッチ方式に
関するものである。
関するものである。
第2図は従来の1チツプキヤツシユ・メモリμPD43
608Rにおけるメモリブロック全体の構成を示すブロ
ック図である0例えば「1チツプ・キャッシュ・メモリ
μPD43608Rの概要と活用法」 (インターフェ
ース、CQ出版社、AUG、1987、p241−2.
57)を抜粋したものである。また、第3図は第2図に
示された1チップキャッシュメモリμPD43608R
におけるメモリブロックの構成を示す図である。
608Rにおけるメモリブロック全体の構成を示すブロ
ック図である0例えば「1チツプ・キャッシュ・メモリ
μPD43608Rの概要と活用法」 (インターフェ
ース、CQ出版社、AUG、1987、p241−2.
57)を抜粋したものである。また、第3図は第2図に
示された1チップキャッシュメモリμPD43608R
におけるメモリブロックの構成を示す図である。
第2図において、2はCPUアドレス、3はCPUデー
タ、4はデータブロック、5はディレクトリ、6はブロ
ックアドレスジェネレータ、7は入力ラッチ、8はブロ
ックロードバッファ、9はバイパスバッファ、10はプ
リフェッチャ、12はシステムバスインターフェース、
13はCPUバスインターフェース、14はLRUであ
る。
タ、4はデータブロック、5はディレクトリ、6はブロ
ックアドレスジェネレータ、7は入力ラッチ、8はブロ
ックロードバッファ、9はバイパスバッファ、10はプ
リフェッチャ、12はシステムバスインターフェース、
13はCPUバスインターフェース、14はLRUであ
る。
次に1チップキャッシュメモリブロック全体の動作につ
いて説明する。
いて説明する。
1チップキャッシュメモリは、CPUからの要求に応じ
てメインメモリのデータを記憶し、CPUからのアクセ
スに対しメインメモリに代わって、そのデータの読み出
し/書き込みを高速に9テう。
てメインメモリのデータを記憶し、CPUからのアクセ
スに対しメインメモリに代わって、そのデータの読み出
し/書き込みを高速に9テう。
CPUからのメモリアクセスには局所性があり、CPU
からの要求でキャッシュメモリに記憶されたデータは、
近い将来再びアクセスされる可能性が高い、また、アク
セスされたデータにお番する近傍のデータが再びアクセ
スされる可能性も高し)。
からの要求でキャッシュメモリに記憶されたデータは、
近い将来再びアクセスされる可能性が高い、また、アク
セスされたデータにお番する近傍のデータが再びアクセ
スされる可能性も高し)。
そのため、いったんアクセスされたデータとその近傍の
データをキャッシュメモリに記憶することでCPUの高
速メモリアクセスを実現すること力くできる。CPUが
1チツプキヤ・ンシュメモリをアクセスしたとき、デー
タが存在すればキヤ・ノシュヒット、存在しない場合を
キヤ・νシュミスと言う。
データをキャッシュメモリに記憶することでCPUの高
速メモリアクセスを実現すること力くできる。CPUが
1チツプキヤ・ンシュメモリをアクセスしたとき、デー
タが存在すればキヤ・ノシュヒット、存在しない場合を
キヤ・νシュミスと言う。
キャツシュヒツトの場合、キャッシュメモリから高速に
データが読み出される。キャッシュミスの場合、CPU
が要求するワードを含むデータのかたまりをメインメモ
リからキヤ・ンシュメモリGこ取り込み(フェッチ動作
)、次回からのCPUアクセスに備える。
データが読み出される。キャッシュミスの場合、CPU
が要求するワードを含むデータのかたまりをメインメモ
リからキヤ・ンシュメモリGこ取り込み(フェッチ動作
)、次回からのCPUアクセスに備える。
ここで、このキャッシュメモリとメインメモリの情報転
送の単位であるデータのかたまりをブロックと呼び、そ
の大きさをブロックサイズと言う。
送の単位であるデータのかたまりをブロックと呼び、そ
の大きさをブロックサイズと言う。
この情報転送時におけるキャッシュメモリの動作はキャ
ッシュメモリ中にそのブロックを記憶する空きスペース
がない場合、現在ある古いブロックのどれかを追い出す
(リプレース動作)。
ッシュメモリ中にそのブロックを記憶する空きスペース
がない場合、現在ある古いブロックのどれかを追い出す
(リプレース動作)。
次に従来の1チップキャッシュメモリのメモリ構成と動
作について説明する。第3図はデータブロック4、ディ
レクトリ5、LRU14の3ブロツクよりなる4ウエイ
セツトアソシアテイブのメモリ構成を示す。データブロ
ック4はメインメモリのデータを保持するメモリ部であ
る。ディレクトリ5は、データブロックの各データに対
応するアドレスの格納場所であるアドレスタグと、格納
データが有効か無効かを示すバリッドビットより成る。
作について説明する。第3図はデータブロック4、ディ
レクトリ5、LRU14の3ブロツクよりなる4ウエイ
セツトアソシアテイブのメモリ構成を示す。データブロ
ック4はメインメモリのデータを保持するメモリ部であ
る。ディレクトリ5は、データブロックの各データに対
応するアドレスの格納場所であるアドレスタグと、格納
データが有効か無効かを示すバリッドビットより成る。
LRU14は4ウエイの各データがCPUからアクセス
された古さの情報を格納する。
された古さの情報を格納する。
CPUはメモリブロック中のアドレスでアクセスする。
第3図に示されるようにアクセスアドレスタグ、セット
セレクト、ワードセレクトの3部分に分けられる。アク
セスアドレスのセ・ントセレクトによって、アドレスタ
グとバリッドビットがディレクトリから選択されて読み
だされる。同じくデータブロックからはブロックが選択
されて読みだされる。
セレクト、ワードセレクトの3部分に分けられる。アク
セスアドレスのセ・ントセレクトによって、アドレスタ
グとバリッドビットがディレクトリから選択されて読み
だされる。同じくデータブロックからはブロックが選択
されて読みだされる。
ここで、4ウ工イセツトアソシアテイブ方式について述
べる。一般にアクセスアドレスの上位部であるアドレス
タグは、セットセレクトで選択されたディレクトリ中の
アドレスタグ部の内容と比較される。ゆえに上記の方式
では、一つのセ・ントセレクトに対して最大4個までの
アドレスタグが同時に記憶される。従って、ヒ・ノド/
ミス判定時にはあるセットセレクトに対して同時に4個
のアドレスタグを参照比較することになる。また、ノく
リッドビットは記憶している各アドレスタグの有効性を
示し、ヒツト/ミス判定時に有効かどうかのチエツクを
行う、4つのウェイは並行して同じ動作を行い、ディレ
クトリから読みだされたアドレスタグとアクセスアドレ
スのアドレスタグ部との比較を4ウ工イ同時に行いヒツ
ト/ミス判定を行う。
べる。一般にアクセスアドレスの上位部であるアドレス
タグは、セットセレクトで選択されたディレクトリ中の
アドレスタグ部の内容と比較される。ゆえに上記の方式
では、一つのセ・ントセレクトに対して最大4個までの
アドレスタグが同時に記憶される。従って、ヒ・ノド/
ミス判定時にはあるセットセレクトに対して同時に4個
のアドレスタグを参照比較することになる。また、ノく
リッドビットは記憶している各アドレスタグの有効性を
示し、ヒツト/ミス判定時に有効かどうかのチエツクを
行う、4つのウェイは並行して同じ動作を行い、ディレ
クトリから読みだされたアドレスタグとアクセスアドレ
スのアドレスタグ部との比較を4ウ工イ同時に行いヒツ
ト/ミス判定を行う。
一方、読みだされたデータブロックはワードセレクトに
よってワードが選択され、最後にヒ・ント判定からどの
ウェイがヒツトしたかを示すウェイ選択信号をもらい、
一つのワードが決定される。
よってワードが選択され、最後にヒ・ント判定からどの
ウェイがヒツトしたかを示すウェイ選択信号をもらい、
一つのワードが決定される。
次にフェッチ方式について説明する。1チップキャッシ
ュメモリではオン・デマンド方式と、プリフェッチ・オ
ン・ミス方式のフエ・ンチアルゴリズムをサポートして
いる。
ュメモリではオン・デマンド方式と、プリフェッチ・オ
ン・ミス方式のフエ・ンチアルゴリズムをサポートして
いる。
オン・デマンド方式はあるブロックが必要となった時点
(キャッシュミスした時点)で1チ・ノブキャッシュメ
モリにメインメモリ内容をプロ・ツク単位でフェッチす
る。
(キャッシュミスした時点)で1チ・ノブキャッシュメ
モリにメインメモリ内容をプロ・ツク単位でフェッチす
る。
一方、プリフェッチ・オン・ミス方式では、キャッシュ
ミス発生時にアクセスされたブロックをフェッチした後
、アクセスされたブロックにおける次のフ゛ロックのキ
ヤ・ンシュミスをチエ・ツクする。
ミス発生時にアクセスされたブロックをフェッチした後
、アクセスされたブロックにおける次のフ゛ロックのキ
ヤ・ンシュミスをチエ・ツクする。
次のブロックがキャッシュミスであればそのブロックも
フェッチする。
フェッチする。
一般にキャッシュメモリの性能を示すには、ヒツト率が
使われる。ヒツト率とは、CPUからのメモリアクセス
に対し、キャッシュメモリ内にそのアクセスデータが存
在する確率である。
使われる。ヒツト率とは、CPUからのメモリアクセス
に対し、キャッシュメモリ内にそのアクセスデータが存
在する確率である。
従来の1チップキャッシュメモリは以上のように構成さ
れているので、プリフェッチするブロック数は1つと固
定であるが、ヒツト率向上に対するプリフェッチ数の効
果はアプリケーションにより異なる。データのアドレス
連続性が高いアプリケーションプログラムではプリフェ
ッチ数を増やすと高いヒツト率を得ることができるが、
データのアドレスが離散的であればプリフェッチ数を増
やしてもヒツト率は向上しない。プリフェッチ数が固定
では、すべてのアプリケーションプログラムに対して高
ヒツト率を得ることは期待できない。
れているので、プリフェッチするブロック数は1つと固
定であるが、ヒツト率向上に対するプリフェッチ数の効
果はアプリケーションにより異なる。データのアドレス
連続性が高いアプリケーションプログラムではプリフェ
ッチ数を増やすと高いヒツト率を得ることができるが、
データのアドレスが離散的であればプリフェッチ数を増
やしてもヒツト率は向上しない。プリフェッチ数が固定
では、すべてのアプリケーションプログラムに対して高
ヒツト率を得ることは期待できない。
従って、システムパフォーマンスを最高にするためには
、高ヒツト率を得るプリフェッチブロック数をアプリケ
ーションプログラムに対応して選択する必要がある。
、高ヒツト率を得るプリフェッチブロック数をアプリケ
ーションプログラムに対応して選択する必要がある。
この発明は上記のような問題点を解消するためになされ
たもので、アプリケーションプログラムに応じて、それ
ぞれ最も高いヒツト率が得られるlチップキャッシュメ
モリを得ることを目的とする。
たもので、アプリケーションプログラムに応じて、それ
ぞれ最も高いヒツト率が得られるlチップキャッシュメ
モリを得ることを目的とする。
この発明に係る1チップキャッシュメモリはプリフェッ
チブロック数を設定するプリフェッチ数設定レジスタと
、設定された回数プリフェッチを実行するプリフェッチ
ヤとを備えたものである。
チブロック数を設定するプリフェッチ数設定レジスタと
、設定された回数プリフェッチを実行するプリフェッチ
ヤとを備えたものである。
(作用〕
この発明においては、プリフェッチブロック数をアプリ
ケーションプログラムに対応して最適に設定することに
より高ヒツト率を得ることができる。
ケーションプログラムに対応して最適に設定することに
より高ヒツト率を得ることができる。
[実施例〕
以下、この発明の一実施例を図について説明する。
第1図は本発明の一実施例による1チップキャッシュメ
モリの図である。
モリの図である。
図において、1は1チップキャッシュメモリ、2はCP
Uアドレス、3はCPUデータ、4はデータブロック、
5はディレクトリ、6はフ゛口・ツクアドレスジェネレ
ータ、7は入力ラッチ、8はブロックロードバッファ、
9はバイパスバッファ、10はブリフエツチャ、11は
プリフェッチ数設定レジスタ、12はシステムバスイン
ターフェース、13はcpuバスインターフェース、1
4はLRUである。
Uアドレス、3はCPUデータ、4はデータブロック、
5はディレクトリ、6はフ゛口・ツクアドレスジェネレ
ータ、7は入力ラッチ、8はブロックロードバッファ、
9はバイパスバッファ、10はブリフエツチャ、11は
プリフェッチ数設定レジスタ、12はシステムバスイン
ターフェース、13はcpuバスインターフェース、1
4はLRUである。
次に1チップキャッシュメモリ1のリードアクセス動作
について説明する。1チップキャッシュメモリ1は、C
PUアドレス2によりディレクトリ5およびブロックロ
ードバッファ8を参照し、ここでキャツシュヒツトすれ
ばデータブロック4からデータをCPUデータバス3に
出力する。
について説明する。1チップキャッシュメモリ1は、C
PUアドレス2によりディレクトリ5およびブロックロ
ードバッファ8を参照し、ここでキャツシュヒツトすれ
ばデータブロック4からデータをCPUデータバス3に
出力する。
ここで、ブロックロードバッファ8を参照する理由につ
いて述べる。ブロックロードバッファ8に1ブロツクデ
ータがそろった時点でデータブロック4に書き込まれる
ため、データブロック4にデータがなくてもブロックロ
ードバッファ8には存在する可能性があるためである。
いて述べる。ブロックロードバッファ8に1ブロツクデ
ータがそろった時点でデータブロック4に書き込まれる
ため、データブロック4にデータがなくてもブロックロ
ードバッファ8には存在する可能性があるためである。
キャッシュミスすればシステムバスインターフェース1
2を通しメモリバスの使用を要求し、メモリバスの使用
が許可されるとバスアクセスを開始してブロックアドレ
スジェネレータ6が生成したアドレスによりメインメモ
リからデータをフェッチする。メインメモリからのフェ
ッチデータは入力ラッチ7からブロックロードバッファ
8とバイパスバッファ9に渡される。バイパスバッファ
9はそのデータをCPUデータバス3に出力し、CPU
にデータ出力完了を通知する。ブロックロードバッファ
8はlブロック分のデータフェッチを完了するとブロッ
クアドレスジェネレータ6が発生するアドレスによりキ
ャッシュデータ更新を行う、またメモリバスをアクセス
している間にプリフェッチャ10はディレクトリ50次
のブロックを参照する。
2を通しメモリバスの使用を要求し、メモリバスの使用
が許可されるとバスアクセスを開始してブロックアドレ
スジェネレータ6が生成したアドレスによりメインメモ
リからデータをフェッチする。メインメモリからのフェ
ッチデータは入力ラッチ7からブロックロードバッファ
8とバイパスバッファ9に渡される。バイパスバッファ
9はそのデータをCPUデータバス3に出力し、CPU
にデータ出力完了を通知する。ブロックロードバッファ
8はlブロック分のデータフェッチを完了するとブロッ
クアドレスジェネレータ6が発生するアドレスによりキ
ャッシュデータ更新を行う、またメモリバスをアクセス
している間にプリフェッチャ10はディレクトリ50次
のブロックを参照する。
キャツシュヒツトであれば何もしないが、キャッシュミ
スであればシステムバスインターフェース12にバス使
用要求を出し、次のブロックのフェッチを行う。プリフ
ェッチブロック数設定レジスタ11に設定された回数だ
けこのプリフェッチを行う。最終的に、キャッシュミス
したブロックと引き続く設定されたプリフェッチブロッ
ク数分のブロックがフェッチされデータブロックに書き
込まれる。プリフェッチ終了後、再び1チップキャッシ
ュメモリはアクセスを受は付ける状態となりリードアク
セス、ライトアクセスを受は付ける。
スであればシステムバスインターフェース12にバス使
用要求を出し、次のブロックのフェッチを行う。プリフ
ェッチブロック数設定レジスタ11に設定された回数だ
けこのプリフェッチを行う。最終的に、キャッシュミス
したブロックと引き続く設定されたプリフェッチブロッ
ク数分のブロックがフェッチされデータブロックに書き
込まれる。プリフェッチ終了後、再び1チップキャッシ
ュメモリはアクセスを受は付ける状態となりリードアク
セス、ライトアクセスを受は付ける。
なお、プリフェッチ数設定レジスタ11の設定は、リセ
ット後の内部レジスタ設定時に行う。
ット後の内部レジスタ設定時に行う。
またプリフェッチ設定レジスタを用いず、1チフブキヤ
ツシユメモリの信号ビンに外部より与える信号によって
プリフェッチ数が設定される構成とすることも可能であ
る。このようにすれば1チップキャッシュメモリの初期
設定時、プログラムがプリフェッチブロック設定レジス
タを設定する必要が無いので、1チップキャッシュメモ
リ無しのプログラムを変更なしに使うことが出来る。
ツシユメモリの信号ビンに外部より与える信号によって
プリフェッチ数が設定される構成とすることも可能であ
る。このようにすれば1チップキャッシュメモリの初期
設定時、プログラムがプリフェッチブロック設定レジス
タを設定する必要が無いので、1チップキャッシュメモ
リ無しのプログラムを変更なしに使うことが出来る。
〔発明の効果]
以上のように、この発明に係る1チップキャッシュメモ
リによれば、プリフェッチブロック数を設定するプリフ
ェッチ数設定レジスタを設けるとともに、設定された回
数プリフェッチを実行するプリフェッチャを設けたので
、各アプリケーションプログラム毎に最も高いヒツト率
が得られる効果がある。
リによれば、プリフェッチブロック数を設定するプリフ
ェッチ数設定レジスタを設けるとともに、設定された回
数プリフェッチを実行するプリフェッチャを設けたので
、各アプリケーションプログラム毎に最も高いヒツト率
が得られる効果がある。
第1図はこの発明の一実施例による1チツプメモリのブ
ロック構成図、第2図は従来の1チップキャッシュメモ
リのブロック構成図、第3図は第2図に示した1チツプ
キ中ツシユメモリのメモリ構成図である。 図において、1は1チップキャッシュメモリ、2はCP
Uアドレス、3はCPUデータ、4はデータブロック、
5はディレクトリ、6はブロックアドレスジェネレータ
、7は入力ラッチ、8はブロックロードバッファ、9は
バイパスバッファ、10はプリフェッチャ、11はプリ
フェッチ数設定レジスタ、12はシステムバスインター
フェース、13はCPUバスインターフェース、14は
LRUである。 なお図中同一符号は同一または相当部分を示す。
ロック構成図、第2図は従来の1チップキャッシュメモ
リのブロック構成図、第3図は第2図に示した1チツプ
キ中ツシユメモリのメモリ構成図である。 図において、1は1チップキャッシュメモリ、2はCP
Uアドレス、3はCPUデータ、4はデータブロック、
5はディレクトリ、6はブロックアドレスジェネレータ
、7は入力ラッチ、8はブロックロードバッファ、9は
バイパスバッファ、10はプリフェッチャ、11はプリ
フェッチ数設定レジスタ、12はシステムバスインター
フェース、13はCPUバスインターフェース、14は
LRUである。 なお図中同一符号は同一または相当部分を示す。
Claims (1)
- (1)CPUのアクセスアドレスを保持する手段と、 該アクセスアドレス中における第1のセットセレクトを
インクリメントして第2のセットセレクトを得る手段と
を有する1チップキャッシュメモリにおいて、 該第2のセットセレクトによりキャッシュメモリアクセ
スを行い、ヒットあるいはミスであるかを判定し、ミス
判定時メインメモリよりデータをフェッチするプリフェ
ッチャと、 該第2のセットセレクトをインクリメントする回数を設
定するプリフェッチ数設定レジスタとを備えたことを特
徴とする1チップキャッシュメモリ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2124963A JPH0421043A (ja) | 1990-05-14 | 1990-05-14 | 1チップキャッシュメモリ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2124963A JPH0421043A (ja) | 1990-05-14 | 1990-05-14 | 1チップキャッシュメモリ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0421043A true JPH0421043A (ja) | 1992-01-24 |
Family
ID=14898555
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2124963A Pending JPH0421043A (ja) | 1990-05-14 | 1990-05-14 | 1チップキャッシュメモリ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0421043A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999034356A3 (en) * | 1997-12-30 | 1999-10-07 | Genesis One Technologies Inc | Disk cache enhancer with dynamically sized read request based upon current cache hit rate |
-
1990
- 1990-05-14 JP JP2124963A patent/JPH0421043A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999034356A3 (en) * | 1997-12-30 | 1999-10-07 | Genesis One Technologies Inc | Disk cache enhancer with dynamically sized read request based upon current cache hit rate |
| US6085287A (en) * | 1997-12-30 | 2000-07-04 | Genesis One Technologies, Inc. | Method and apparatus for enhancing the disk cache process by dynamically sizing prefetch data associated with read requests based upon the current cache hit rate |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5586295A (en) | Combination prefetch buffer and instruction cache | |
| KR100278328B1 (ko) | 캐시 미스 버퍼 | |
| JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
| US5499355A (en) | Prefetching into a cache to minimize main memory access time and cache size in a computer system | |
| US5603004A (en) | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system | |
| JP3016575B2 (ja) | 複数キャッシュ・メモリ・アクセス方法 | |
| RU2212704C2 (ru) | Структура совместно используемого кэша для временных и невременных команд | |
| JP3587591B2 (ja) | キャッシュ・ミスを制御する方法およびその計算機システム | |
| US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
| EP0637800B1 (en) | Data processor having cache memory | |
| US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
| US5251310A (en) | Method and apparatus for exchanging blocks of information between a cache memory and a main memory | |
| CN108874691B (zh) | 数据预取方法和内存控制器 | |
| US5471602A (en) | System and method of scoreboarding individual cache line segments | |
| US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
| US5287512A (en) | Computer memory system and method for cleaning data elements | |
| WO2002027498A2 (en) | System and method for identifying and managing streaming-data | |
| US6081853A (en) | Method for transferring burst data in a microprocessor | |
| JPH0421043A (ja) | 1チップキャッシュメモリ | |
| JPH0516061B2 (ja) | ||
| JPH0421044A (ja) | 1チップキャッシュメモリ | |
| JP2000148584A (ja) | プリフェッチ方法および装置 | |
| CN111198827B (zh) | 页表预取方法及装置 | |
| JPH02301843A (ja) | プリフェッチ制御方法およびプリフェッチ制御装置 | |
| JPH06243037A (ja) | データ先読み装置 |