JPH0495145A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH0495145A
JPH0495145A JP2207585A JP20758590A JPH0495145A JP H0495145 A JPH0495145 A JP H0495145A JP 2207585 A JP2207585 A JP 2207585A JP 20758590 A JP20758590 A JP 20758590A JP H0495145 A JPH0495145 A JP H0495145A
Authority
JP
Japan
Prior art keywords
register
data
main memory
program
cache memory
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
JP2207585A
Other languages
English (en)
Other versions
JPH0754482B2 (ja
Inventor
Shigenori Kaneko
茂則 金子
Tomoaki Nakamura
智明 中村
Ryokichi Yoshizawa
吉沢 亮吉
Takeshi Miyao
健 宮尾
Shinichiro Yamaguchi
伸一朗 山口
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2207585A priority Critical patent/JPH0754482B2/ja
Publication of JPH0495145A publication Critical patent/JPH0495145A/ja
Publication of JPH0754482B2 publication Critical patent/JPH0754482B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はキャッシュメモリ装置及び計算機システムに係
り、特にキャッシュメモリのヒツト率を向上させたキャ
ッシュメモリ装置及び計算機システムに関する。
[従来の技術] 今日の計算機システムでは、その性能向上のため、はと
んどのシステムでキャッシュメモリを備えるようになっ
ており、このキャッシュメモリを有効活用するために、
ヒツト率の向上、データ置き換えの極小化を行うキャッ
シュメモリ制御方式が検討されている。例えば特開昭6
1−151756号公報に開示された技術では、キャッ
シュメモリの1ブロツクサイズを可変とし、ユーザプロ
グラムに最適なブロックサイズを選択できるようにして
いる。
[発明が解決しようとする課題] 上記従来技術は、ブロックサイズを変化させてプログラ
ムを走らせることにより、効率のよいブロックサイズで
キャッシュメモリを用いることができる。しかし、プロ
グラムのテキスト、データ、共有データ等は主メモリ上
のアドレス配置の関係から同一キャッシュブロックにコ
ピーされる場合が多い。この場合にはミスヒツトによる
キャッシュメモリのデータ書き換えが多発し性能が低下
するという問題点は解決されていない。また、ニーザブ
ログラムによっては、データの書き込みを行って後すぐ
参照する処理が多いものと、書き込みを行ってもすぐ・
にはそのデータを参照しない処理が多いものがある。特
に大量データのコピー時は、書き込まれるデータがすへ
てすぐ参照されることは希であり、キャッシュメモリへ
の書き込みは行われないことが望ましい。しかし、従来
技術ではこのようなプログラム対応で最適なキャッシュ
メモリ制御を行うことはできなかった。
本発明の目的は、主メモリ上のアドレスのキャッシュメ
モリへのマツピング方法が不適当なためのヒツト率の低
下、ミスヒツト時のプログラム動作特性に合わないデー
タ書き換えのための効率低下をなくし、プログラムごと
にその動作特性に適したキャッシュメモリの制御を行え
るようにしたキャッシュメモリ装置及び計算機システム
を提供するにある。
[課題を解決するための手段] 上記の目的は、アクセスされた主メモリアドレスから、
その主メモリ内容のコピーが持たれるキャッシュメモリ
内のブロックアドレスと、主メモリアドレスのデータが
保持されているか否かの判定に使用するタグとを切り出
すためのマスクパターンがプログラムから設定されたと
きこれを記憶する第1のレジスタとこのレジスタに設定
されたマスクパターンとアクセスされた主メモリアドレ
スとからキャッシュメモリをアクセスするためのブロッ
クアドレス及びタグを生成する生成手段とを設けること
により達成され、またライト動作時にミスヒツトが発生
した場合に、このライトデータを含む主メモリの内容を
キャッシュメモリの対応ブロックヘオンキャッシュする
か否かを示すオンキャッシュ信号がプログラムから設定
されたときにこれを記憶する第2のレジスタを設けるこ
とにより達成され、またリード動作時にミスヒツトが発
生した場合に、ミスヒツトしたデータを含む主メモリの
内容と、これと主メモリ上で連続したアドレスのデータ
とをキャッシュメモリの対応ブロックへそれぞれオンキ
ャッシュするための先読みブロック数がプログラムから
設定されたときこれを記憶する第3のレジスタを設ける
ことにより達成され、さらにデータのメモリライト/リ
ートの回数及びそのキャッシュメモリのヒツト回数また
はミスヒツト回数を計測してヒツト率を算出するヒツト
率検出手段と、該手段により検出されたヒツト率がより
大きくなるように第1〜第3のレジスタの設定内容を自
動的に変更するパラメータ自動設定手段を設けることに
より達成される。
[作用コ 第1のレジスタに設定されるマスクパターンに応じて、
キャッシュメモリの各ブロックに対応する主メモリのア
ドレス領域を変えることができるから、大量のデータを
扱うプログラムの場合によく使用するデータ同志がキャ
ッシュメモリ上で同一ブロックに格納されないようにマ
スクパターンを設定すればヒツト率を向上させることが
でき。
また複数のプログラムが並行動作する場合に、それぞれ
のプログラムが別のキャッシュメモリエリアに格納され
るようにマスクパターンを設定すればプログラム間でキ
ャッシュメモリの同一プロツクを競合して使用すること
を防止できる。また大量データのコピー等の、書き込み
後にすぐアクセスしない処理を行うプログラムの場合に
は、第2のレジスタのオンキャッシュ信号をオフに設定
すれば、むだなキャッシュメモリの書き換えを防止でき
る。また、第3のレジスタに先読みブロックを適切に設
定しておけば、リートのミスヒツト時に引続きリードさ
れる可能性の強いデータを複数ブロックにわたってキャ
ッシュメモリヘー度に転送できるから、その後のリード
アクセスを効率よく行える。さらにパラメータ自動設定
手段により、第1〜第3のレジスタへの設定内容を、ヒ
ツト率検出手段によりヒツト率を検出しながら徐々に変
化させてより高いヒツト率になるように自動的に決定し
、これを当該プログラムに記憶させることにより、プロ
グラム毎の各レジスタへの設定を自動設定することがで
きる。
[実施例] 以下、本発明を実施例により詳細に説明する。
第2図は、本発明のキャッシュメモリ装置を持つ計算機
システムのハードウェア構成例を示すもので、演算プロ
セッサ601からデータのり一ド/ライト要求とその論
理アドレスが出力されると、まずアドレス変換機構60
2で論理アドレスが主メモリアドレス(物理アドレス)
に変換され、キャッシュメモリ装置603に渡される。
キャッシュメモリ装置603では、入力されたアドレス
に対するヒツト/ミスヒツトの判定とその結果に対応し
たキャッシュメモリ内のデータアクセス及び必要なとき
の主メモリ600へのバス605を介してのアクセスを
行う。この詳細は後述するが、本発明の特徴とする動作
を行うために、キャッシュメモリ装置内603には第3
図に示したようなレジスタ群604が設けられており、
これらにはプログラムからパラメータを可変設定できる
。レジスタ群604は制御レジスタとヒツト率測定用レ
ジスタから成っているが、これらについても以下で説明
する。
第1図は本発明のキャッシュメモリ装置の一実施例を示
すもので、アドレス変換機構602から入力された物理
アドレスをセットするアドレスレジスタ8、アドレスレ
ジスタ8のアドレスをタグとしての使用部分とブロック
アドレスとしての使用部分に分けるためのレジスタ9(
、IPM;インデックス・マスクパターン・レジスタ)
、上記2つのレジスタ8.9の内容に応じて物理アドレ
スからタグ値とブロックアドレス値とを生成する生成回
路2,3、これらの生成回路2.3により求められたタ
グ値とブロックアドレスを持つデータがデータ記憶部1
内に有るか否か(ヒツト/ミスヒツト)を調入るための
比較機11及びAND回路13、ヒツト/ミスヒツトの
結果に応じたキャッシュメモリ装置の動作を制御するキ
ャッシュ制御回路5等から成っている。ここで本発明の
特徴とするのは、上述のレジスタ9、データライトのミ
スヒツト時にオンキャッシュするか否かを決定するため
のレジスタ7(WTCR;ライトコントロールレジスタ
)、データリードのミスヒツト時に主メモリからのキャ
ッシュメモリへの先行リード回数を制御するレジスタ6
(BSS;ブロック・サイズ・スケール・レジスタ)で
ある。第3図に示したこの他のレジスタは第1図では省
略されているが、このうちレジスタ701 (CCTL
)はキャッシュメモリ全体の使用/不使用や、データ記
憶部1内のデータを無効化するためのもので、これは従
来技術でも用いられているものである。
第4図はタグ生成回路2の構成を示すもので、本実施例
ではタグとして11ビツト、ブロックアドレスとして1
3ビツトを使用するものとする。
レジスタ9にセットされるマスクパターンは、タグ値と
して使用するビット位置に111 II、ブロックアド
レス値として使用するビット位置に′0″をもち、従っ
てマスクパターンのit OIT、tt 1 tpの個
数はそれぞれ13個、11個であるとする。
エンコーダ101〜111 (DTCH)は、レジスタ
9にセットされたマスクパターンの第4〜27ビツト(
これをマスクパターンiMとする)の各ビットを調べ、
エンコーダ1i(i=01〜11)はマスクパターンi
Mの中の左から(上位ビットから)i番目のtt I 
IIの位置を出力する。マスクパターンのiM以外はす
べてII OIIとされ。
またマスクパターン中の111 IIの個数は11個で
あったから11個のエンコーダ101〜111がその各
位置を出力する。選択回路121〜131は、レジスタ
8の物理アドレス中の第4〜27ビツトの内の、エンコ
ーダ101〜111が出力したビット位置の値をタグア
ドレスの各ビットTG(10)〜TG (0)として取
り出し出力する。
第S図はブロックアドレス生成回路3の構成を示すもの
で、エンコーダ201〜213及び選択回路221〜2
23はそれぞれ13個°づつあり、各回路の機能は第4
図のものと同じである。エンコーダ201〜213への
入力はマスクパターンiM(7)“OIIとtt 17
1をインバータ31により反転したもので、この構成に
よりマスクパターン中の110”の位置にある物理アド
レス中の13個のビットBA(12)〜BA (0)が
取り出され、ブロックアドレスとして出力される。以上
の第4図及び第5図で示したように、キャッシュメモリ
装置のタグ及びブロックアドレスを物理アドレスのどの
ビットと対応づけるかがレジスタ9にセットされたマス
クパターンで決まるから、これをプログラムから可変設
定することにより、後に動作例で示すように、プログラ
ム毎に最適な対応付けでキャッシュメモリを用いること
ができる。なお、タグ及びブロックアドレスのビット数
は本実施例で13及び11ビツトとしたが、これを可変
とすることもできる。しかしそのときはキャッシュメモ
リのブロック数も可変とする必要があるため装置が複雑
になるので、ここでは各ビット数を固定としている。こ
の場合、プログラムからマスクパターンをセットすると
きに(/ I IIまたはII OIIの個数をチェッ
クするためのソフトあるいはハード手段を設けておけは
、誤ったマスクパターンの設定を防止することができる
次にレジスタ7を用いた制御方法を第6図に示す。これ
はデータライト時に用いられるもので、制御回路5(第
1図)により実行される。まずステップ401にてデー
タライト時のANDゲート13出力を調べ、これがヒツ
トを示しているときはステップ403,404でキャッ
シュメモリへのライト処理と主メモリへのライト処理を
行う。
一方ミスヒノトを示しているときはステップ402にて
レジスタ7を調へ、その値が“1″であったならライト
ミスヒツト時にオンキャッシュが指定されているものと
して、まずステップ403でキャッシュメモリへのデー
タライト要求信号を出し、これによりキャッシュメモリ
装置が主メモリから1ブロック分のデータをリードする
と、その中に当該ライトデータをマージしてキャッシュ
メモリへ書き込み、さらにステップ404にてそのブロ
ックデータを主メモリへ書き込む。レジスタ7に110
 IIがセットされているときは、ステップ404で主
メモリへのデータライトだけが行われる。このようにし
て、ライトミスヒツト時のデータオンキャッシュの有無
を制御することができる。
次にレジスタ6 (BSS)を用いた制御を第7図に示
す。これはデータリード時に用いられるもので、やはり
制御回路5により実行される。レジスタ6には予め先読
みするブロック数が設定されているとする。まずステッ
プ501にてデータリード時のANDゲート13出力を
調べ、ミスヒツトの時のみステップ502にてミスヒツ
トの発生したブロックのデータを主メモリからリードし
、次にステップ503.504.505に示す処理によ
って、レジスタ6に設定されたブロック数分のデータを
主メモリからキャッシュメモリへ先行リードする。
以上で第1図の実施例の特徴とするレジスタ6.7.9
を用いた個々の動作を述べたが、これらのレジスタへの
パラメータ(キャッシュ制御情報)の設定は次のように
して行われる。第8図は第2図のシステムのソフトウェ
アの全体的な構成を示すもので、ディスク802(図示
を省略)に格納されているプログラム812 (UPR
G)は、実行時に論理空間801に対応付けられる。こ
こでの他に、キャッシュ制御情報の格納テーブル807
をもっており、これに対して論理空間上の命令列803
、データ804(これらはユーザ領域にある)と、シス
テム領域のO8用のプロセス管理テーブル809内に設
けられたテーブル81Qがそれぞれ対応付けられる。
次に、プログラム実行時に、キャッシュ制御レジスタ6
.7.9にデータを設定する方法を説明する。まずキャ
ッシュ制御情報の設定方法は、プログラム属性としてプ
ログラム作成時に指定する必要がある。このため、第9
図に示したような処理により指定する。即ち、従来のプ
ログラム作成処理(ステップ901)を実行した後、オ
ペレータによりキャッシュ制御指定が行われたかどうか
を判定しくステップ9.02)、もし指定無しの場合は
キャッシュ制御無しをプログラム属性としてテーブル8
07ヘセツトする(ステップ904)、。
指定有りの場合は、制御情報の指定の有無を判定しくス
テップ903)、指定有りの場合は指定された情報をプ
ログラム属性としてテーブル807ヘセツトしくステッ
プ905)、制御情報指定無しの場合は、自動キャッシ
ュ制御モードをプログラム属性としてテーブル807ヘ
セツトする(ステップ906)。このように本実施例で
は3つのキャッシュ制御属性が存在する。なおキャッシ
ュ制御情報の求め方、および自動キャッシュ制御方式に
ついては後述する。
次に、このようにしてキャッシュ制御属性がセットされ
たプログラムの実行時の動作を第10図に示す。まずデ
ィスク上に作成されたプログラムが、プロセス生成処理
により主メモリ上の論理空間に対応付けられる。これは
第8図の命令例803、データ804の生成である(ス
テップ1001)。次にテーブル807を調べてキャッ
シュ制御情報の有無を判定しくステップ1002)、制
御指定有りの場合は、その制御情報をテーブル807か
ら読みだし、プロセス管理テーブル内のキャッシュ属性
テーブル810ヘセツトする(ステップ1003)。ま
た制御指定無しの場合は、システムにおけるデフォルト
値をテーブル810ヘセツトする(ステップ1004)
。このように生成されたプロセスは、プロセススイッチ
処理を経て実際に実行されるが、このプロセススイッチ
処理直後にテーブル810にセットされた制御情報が第
1図で示したレジスタ6.7.9にセットされて、第4
図〜第7図で説明したキャッシュメモリ装置の制御が実
行される。
次に、最適なキャッシュ制御情報の決定方法を説明する
。ここで第3図で述べたヒツト率測定レジスタ702〜
705が用いられる。ここでレジスタ702 (CRD
ACC)及びレジスタ703(CWRACC)は、演算
プロセッサ601がデータリード要求及びデータライト
要求を出した回数の記録用であり、レジスタ704 (
CRDHIT)及びレジスタ705 (CWRHTI)
は、データリード要求及びデータライト要求がそれぞれ
キャッシュメモリでヒツトした回数の記録用である。
第11図及び第12図はプロセススイッチ処理及びヒツ
ト率モニタプロセスのフローチャートである。まずヒツ
ト率モニタプロセス1201において、被測定プログラ
ム1102をヒツト率測定モードで実行し始めると(ス
テップ1103)、これ以前に実行されていたプログラ
ムは被測定モ−ドではないので、まずスイッチ処理の第
11図のステップ1101からステップ1102へ進み
、ここで従来のスイッチ処理1103が実行されてこれ
から測定するプログラムに論理空間割り当てが行われる
。次いでステップ1104でキャッシュ制御情報をレジ
スタ6.7.9ヘセツトし、ステップ1105の判定を
行う。今の場合ヒツト率測定モードであるからステップ
1106でヒツト率測定レジスタ702〜705のリセ
ットを行う。
こうして被測定プログラムが実行されると、その実行中
のデータアクセス回数及びヒツト回数がレジスタ702
〜705にカウントされて行く。被測定プロセスの1回
の実行時間が終了すると(−般にマルチプロセスシステ
ムでは各プロセスが時分割で実行されるから)、再びプ
ロセススイッチ処理に戻ってくるが、このときはヒツト
率測定モードであるからステップ1102で被測定プロ
セス1202の測定データエリアへレジスタ702〜7
05の各値についての測定結果がそれぞれ加算される。
この測定データエリアは、プロセス実行時にクリアして
おき、被測定プロセスが実行されるごとのカウント値を
加算することにより、マルチプロセスにより被測定プロ
セスが何回にも分けて実行されても全体のポリ定結果が
このエリアに記憶される。こうして被測定プロセス12
02が実行終了すると、第12図のヒツト率モニタプロ
セス1201が実行再開し、ステップ1205にて測定
結果を収集する。
以上のようにして、リード、ライトごとのアクセス回数
とヒツト回数が求められるから、これらから被測定プロ
セス1202のキャツシュヒツト率を知ることができる
。従ってキャッシュ制御情報を変更しながらヒツト率を
測定するという動作を繰り返せば、被測定プロセスに最
適なキャッシュ制御情報を得ることができる。
なお、第11図、第12図の実施例では、ソフトウェア
によりキャッシュメモリのヒツト率を計算しているが、
これをハードウェアですべて処理することもできる。ま
た、制御情報の設定とそれに対するヒツト率の測定結果
の判定、最適制御情報のサーチ等は人手によるものとし
て説明したが、これを自動化することもできる。第13
図はそのための処理を示すフローチャートで、これは一
定周期で入ってくるタイマ割り込みにより起動されるも
のとする。同図において、まず従来のタイマ割り込み処
理1301を行い、次に、現在実行中のプロセスがキャ
ッシュ自動制御モードであるかを判定する(ステップ1
302)。この判定は、第9図のプログラム作成処理の
ステップ906でテーブル807へ設定さ九、プログラ
ム実行時の第10図ステップ1003でテーブル810
ヘセツトされた情報を調べて行われる。この判定結果が
自動制御モードであったなら、ヒツト率測定レジスタ7
02〜705より前回タイマ割り込みから今回タイマ割
り込みまでの間のアクセス回数及びヒツト回数を収集す
る(ステップ1303)。
この収集結果を前回の収集結果と比較しくステップ13
04)、今回の結果の方がよい値であったなら、今回の
キャッシュ制御情報を記憶しくステップ1307)、別
の新制御情報を選択してプロセス管理テーブル内キャッ
シュ属性テーブル810ヘセントするとともにレジスタ
6.7,9にライトした後(ステップ1308)、ヒツ
ト率測定レジスタ702〜705のリセットを行い(ス
テップ1309)、次のタイマ割り込みまでの間のヒツ
ト率測定を行う。もしステップ1304の判定で前回の
結果の方がよい値であったなら、ステップ1307で記
憶した前回のキャッシュ制御情報をテーブル810ヘセ
ツトするとともにキャッシュ制御レジスタ6.7.9へ
もセットする(ステップ1305)。さ、らにテーブル
810内の自動制御指定をクリアしくステップ1306
)、それ以降はキャッシュ制御情報をステップ1305
でセットした内容に固定してプロセスを実行する。
ここでステップ1308における新制御情報の選択方法
としては、予め優先度をつけた制御情報の並びをデータ
ベースとして用意しておき、これを順次使用して行く方
法や、乱数を発生させて決定する方法等がある。以上の
自動制御モードでは、ヒツト率が単調増加している間だ
け処理され、度でも減少した場合は打ち切るようにして
いる。
これはタイマ割り込み処理のオーバヘッドを減らすため
である。このような簡単化は、自動制御モードが第11
図、第12図で説明した方法の簡易化を目的としたもの
で、性能上の多少の制約はあるが、十分に実用価値があ
る。
最後に、キャッシュ制御情報の具体的な選択例を説明す
る。まず、インデックス・マスクパターン・レジスタ9
へ設定するマスクパターンの例を第14図及び第15図
に示す。第14図の例は、1ページ=4096バイトの
ページング処理を行っている計算機システムにおいて、
比較的小さなプログラムが動作する場合に適したもので
、同図(a)に示すようにマスクパターンi M a 
= ” feoofo” (16進)の場合である。1
6進数のf、e、Oを2進数で示すとそれぞれ” 11
111j、”1110”、” o o o o”である
。この2進数で見たときのi M aの1′″はタグ(
11ビツト)、“′0”はブロックアドレス(13ビツ
ト)を指定するのは前述の通りであり、これをレジスタ
9ヘセツトしたときの主メモリ60.0とキャッシュメ
モリのデータ記憶部1との間の関係は、第14図(b)
に示すように、主メモリアドレスの0〜4095バイト
までが、キャッシュメモリの先頭の256バイトヘオン
キヤツシユし、4096〜8191バイトまでがキャッ
シュメモリの次の256バイトヘオンキヤツシユし、以
下同様である。またキャッシュメモリのブロックアドレ
ス0ヘオンキヤツシユする主メモリアドレスは、0.2
56,512バイトと、256バイトおきのデータであ
る。図中、の矢印は、同一キャッシュメモリを使用する
主メモリアドレスとキャッシュメモリのブロックアドレ
スの関係を示している。
このような主メモリとキャッシュメモリとの対応付けを
マスクパターンi M aで行うと、各ページ即ち主メ
モリの4096バイト単位のエリアを先頭から256バ
イト以内しか使用しないような小さいプログラムが実行
された場合、そのプログラム実行中にキャッシュメモリ
上での主メモリデータの競合が生じることはなく、最初
にオンキャッシュしたデータが追い出されずにヒツト率
が向上する。
第15図の例は複数のプロセスが並行して動作した場合
に、あるプロセス内でのキャッシュメモリ使用の競合は
あきらめるが、他のプロセスの動作によって、自プロセ
スのオンキャッシュしているデータがキャッシュから追
い出されるような競合は防ぎたいという場合に有効なマ
スクパターンの例を示している。このときのマスクパタ
ーンjMaは同図(a)に示すように16進で” f 
O1fco”であり、f、0は第14図と同じ、1、C
は2進で示すと” OOO1”、1100 ”である。
これをレジスタ9ヘセツトしたときの主メモリ600と
データ記憶部1との関係は、第15図(b)に示したよ
うに、128キロバイト毎の主メモリエリアが64ブロ
ツク毎のキャッシュメモリエリアへ割り当てられるよう
になる。このため、プロセスやジョブ毎に128キロバ
イトの主メモリエリアを割り当てれば、プロセスやジョ
ブ間でのキャッシュメモリ使用の競合は発生しなくなる
次にレジスタ7 (WTCR)の設定情報について説明
する。まず、ライトデータミスヒツト時にオンキャッシ
ュした方が良い場合というのは、ライトした後すぐにリ
ードすることが多い場合である。このような処理の典型
的な例には、サブルーチンコール時の引き数の受は渡し
がある。このため、サブルーチンコールが頻繁に行われ
かつその引き数が多いプログラムでは、ライトミスヒツ
ト時にオンキャッシュした方が良く、レジスタ7にu 
1 uをセットする。。
これと逆に、大量のデータコピーをする処理があるプロ
グラムでは、このデータコピーによるキャッシュメモリ
への外乱を少なくするため、ライトミスヒツト時のオン
キャッシュはしない方が良い。即ちレジスタ7に“0″
をセットする。
次に、レジスタ6(BSS)の使用方法としては、次の
ようなものがある。固定長のテーブル操作が多いプログ
ラムであって、そのテーブルを操作するときは必ず先頭
から行うようなものであった場合、レジスタ6にセット
する先行リードサイズをこのテーブル長にあわせておけ
ば、このテーブル操作時のキャッシュミスヒツト回数は
高々1回となる。即ち、先行リードにより当該テーブル
の全データが一度にオンキャッシュされるから、その後
のテーブル操作時にミスヒツトはなくなり、処理性能が
向上する。
なお、以上ではプログラム単位にキャッシュ制御レジス
タを書き換える例を示してきたが、システム−括で立ち
上げ時にキャッシュ制御情報を設定し、それ以降は書き
換えないという使い方もできることはいうまでもない。
[発明の効果コ 本発明によれば、主メモリとキャッシュメモリの対応付
けを行うマスクパターンと、ライトミスヒツト時のオン
キャッシュするか否かの情報と、リードミスヒツト時の
先行リートブロック数とから成るキャッシュ制御情報を
プログラムから可変設定可能とし、またキャッシュメモ
リのヒツト率測定をプログラムから行えるようにしたこ
とにより、各プログラムに対してヒツト率を最高とする
ようなキャッシュメモリの制御が実現でき、処理性能を
大幅に向上することができる。また、ヒツト率の測定と
キャッシュ制御情報の選択を自動的に行えるようにする
ことで、ユーザの負担なしに処理性能の向上をはかれる
という効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
キャッシュメモリ装置を用いた計算機システムの構成例
を示す図、第3図は本発明で用いられる各種レジスタを
、示す図、第4図及び第5図はマスクパターンからキャ
ッシュメモリのタグ及びブロックアドレスを生成する回
路の説明図、第6図はデータライト時のキャッシュ制御
回路の動作を示すフローチャート、第7図はデータリー
ド時のキャッシュ制御回路の動作を示すフローチャート
、第8図は本発明の装置を使用するためのソフトウェア
構成例を示す図、第9図はプログラム作成処理のフロー
チャート、第10図はプログラム実行処理のフローチャ
ート、第11図はプロセススイッチ処理のフローチャー
ト、第12図はプログラム実行中にキャツシュヒツト率
を測定するプロセスのフローチャート、第13図はキャ
ッシュ制御情報を自動調整するためのタイマ割り込み処
理のフローチャート、第14図(a)、(b)及び第1
5 図(a)、 (b)はマスクパターンの例とその各
側における主メモリとキャッシュメモリとの対応を示す
図である。 1・・・キャッシュメモリ、2・・・タグ生成回路、3
・ブロックアドレス生成回路、5・・・キャッシュ制御
回路、6・・・ブロック・サイズ・スケールレジスタ、
7・・・ライト制御レジスタ、9・・・インデックス・
マスクパターン・レジスタ、600・・・主メモリ、6
04・・・キャッシュ内レジスタ、807・・制御情報
格納テーブル、810・・・キャッシュ属性テーブル 
。 第 1 図 代理人 弁理士 秋 本 正 実 第 図 第 物理アドレス(27 タグ(11ビツト) 図 4M 第 図 第 図 ブロックアドレス(13ビツト) 第 G 図 データライト時のキャッシュ制御処理 箱 図 / 第 図 データリード時のキャッシュ制御処理 箱 図 プログラム作成処理 第 10図 プログラム実行処理 第 12図 ヒツト率モニタプロセス 第 図 プロセス・スイッチ処理 第 14図 第 図 第 図

Claims (1)

  1. 【特許請求の範囲】 1、ブロックアドレスと各ブロックの中に存在するデー
    タを示すタグとから成るディレクトリと、該ディレクト
    リの内容に対応した主メモリアドレスのデータのコピー
    を格納するデータ記憶部と、アクセスされた主メモリア
    ドレスのコピーが上記データ記憶部に存在するか否かを
    チェックするヒットチェック手段と、該手段によるチェ
    ックの結果に応じて動作を制御する制御手段とを有する
    キャッシュメモリ装置において、アクセスされた主メモ
    リのどのビットを用いて上記ブロックアドレスを生成し
    かつどのビットを用いて上記タグを生成するかを指定す
    るマスクパターンをプログラムから任意に設定可能な第
    1のレジスタと、該レジスタに設定されたマスクパター
    ンを用いて上記アクセスされた主メモリアドレスから上
    記ブロックアドレス及びタグを生成する生成回路とを設
    けるとともに、上記ヒットチェック手段は上記生成回路
    により生成されたブロックアドレス及びタグによってヒ
    ットチェックを行うことにを特徴とするキャッシュメモ
    リ装置。 2、ブロックアドレスと各ブロックの中に存在するデー
    タを示すタグとから成るディレクトリと、該ディレクト
    リの内容に対応した主メモリアドレスのデータのコピー
    を格納するデータ記憶部と、アクセスされた主メモリア
    ドレスのコピーが上記データ記憶部に存在するか否かを
    チェックするヒットチェック手段と、該手段によるチェ
    ックの結果に応じて動作を制御する制御手段とを有する
    キャッシュメモリ装置において、オン信号またはオフ信
    号をプログラムから可変設定可能な第2のレジスタを設
    けるとともに、上記制御手段は、主メモリへのライトア
    クセス時に上記ヒットチェック手段によりミスヒットが
    検出されたときに主メモリへ当該データを書き込み、さ
    らに上記第2のレジスタにオン信号が設定されていれば
    上記データを上記データ記憶部へも書き込み、オフ信号
    が設定されていれば上記データを上記データ記憶部へ書
    き込まれないように制御することを特徴とするキャッシ
    ュメモリ装置。 3、ブロックアドレスと各ブロックの中に存在するデー
    タを示すタグとから成るディレクトリと、該ディレクト
    リの内容に対応した主メモリアドレスのデータのコピー
    を格納するデータ記憶部と、アクセスされた主メモリア
    ドレスのコピーが上記データ記憶部に存在するか否かを
    チェックするヒットチェック手段と、該手段によるチェ
    ックの結果に応じて動作を制御する制御手段とを有する
    キャッシュメモリ装置において、先読みブロック数をプ
    ログラムから可変設定可能な第3のレジスタを設けると
    ともに、上記制御手段は、主メモリへのリードアクセス
    時に上記ヒットチェック手段によりミスヒットが検出さ
    れたときに、当該アクセスデータを含む主メモリ上のブ
    ロックを上記データ記憶部へコピーし、さらに上記第3
    のレジスタに設定された先読みブロック数が0でなけれ
    ばその先読みブロック数に相当する個数のブロックを上
    記コピーされたブロックに続いて主メモリから読み出し
    、上記データ記憶部へコピーするように制御することを
    特徴とするキャッシュメモリ装置。 4、ブロックアドレスと各ブロックの中に存在するデー
    タを示すタグとから成るディレクトリと、該ディレクト
    リの内容に対応した主メモリアドレスのデータのコピー
    を格納するデータ記憶部と、アクセスされた主メモリア
    ドレスのコピーが上記データ記憶部に存在するか否かを
    チェックするヒットチェック手段と、該手段によるチェ
    ックの結果に応じて動作を制御する制御手段とを有する
    キャッシュメモリ装置において、プログラム実行中のメ
    モリアクセス回数とそのアクセス時に上記ヒットチェッ
    ク手段により検出されたヒットまたはミスヒットの回数
    とをカウントし記憶するカウント手段と、該手段に記憶
    されたアクセス回数とヒットまたはミスヒット回数とを
    プログラムにより読み出すためのリード手段とを設けた
    ことを特徴とするキャッシュメモリ装置。 5、請求項1記載の第1のレジスタ及び生成回路、ある
    いは請求項2記載の第2のレジスタ及び該レジスタの設
    定値を用いた制御手段の制御機能、あるいは請求項3記
    載の第3のレジスタ及び該レジスタの設定値を用いた制
    御手段の制御機能、あるいは請求項4記載のカウント手
    段及びリード手段のうちの複数を具備したことを特徴と
    するキャッシュメモリ装置。 6、請求項1記載の第1のレジスタ及び生成回路、ある
    いは請求項2記載の第2のレジスタ及び該レジスタの設
    定値を用いた制御手段の制御機能、あるいは請求項3記
    載の第3のレジスタ及び該レジスタの設定値を用いた制
    御手段の制御機能の内の1または複数を具備しかつ請求
    項4記載のカウント手段を具備するとともに、上記第1
    、第2、第3のレジスタの内の上記具備されたレジスタ
    群に設定するための情報を複数組格納した第1のテーブ
    ルと、該テーブルに格納された情報の1組を上記レジス
    タ群に設定してプログラムのテスト処理を実行したとき
    の上記カウント手段に記憶された値を読み出し、その値
    から得た今回ヒット率が前回上記レジスタ群に設定した
    情報により得た前回ヒット率より大きいときにはさらに
    上記第1のテーブルより新しい情報の1組を取り出して
    上記上記レジスタ群に設定して、上記プログラムのテス
    ト処理を繰り返し、上記今回ヒット率が上記前回ヒット
    率より小さいときは該前回ヒット率を上記レジスタ群に
    設定して上記プログラムのテスト処理を終了する自動設
    定手段とを備えたことを特徴とする計算機システム。 7、請求項1記載の第1のレジスタ及び生成回路、ある
    いは請求項2記載の第2のレジスタ及び該レジスタの設
    定値を用いた制御手段の制御機能、あるいは請求項3記
    載の第3のレジスタ及び該レジスタの設定値を用いた制
    御手段の制御機能の内の1または複数を具備し、上記第
    1、第2、第3のレジスタの内の上記具備されたレジス
    タ群の各々のレジスタに設定するための情報が与えられ
    たときにこれを格納する第2のテーブルと、プログラム
    実行時に上記第2のテーブルに格納された情報を上記レ
    ジスタ群の各レジスタに設定する設定機構とを備えたこ
    とを特徴とする計算機システム。 8、請求項7記載の計算機システムにおいて、請求項4
    記載のカウント手段を付加し、該手段を用いて得られた
    ヒット率が大きくなるような情報を前記レジスタ群の各
    々への情報として前記第2のテーブルへ格納することを
    特徴とする計算機システム。
JP2207585A 1990-08-07 1990-08-07 計算機システム Expired - Lifetime JPH0754482B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2207585A JPH0754482B2 (ja) 1990-08-07 1990-08-07 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2207585A JPH0754482B2 (ja) 1990-08-07 1990-08-07 計算機システム

Publications (2)

Publication Number Publication Date
JPH0495145A true JPH0495145A (ja) 1992-03-27
JPH0754482B2 JPH0754482B2 (ja) 1995-06-07

Family

ID=16542202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2207585A Expired - Lifetime JPH0754482B2 (ja) 1990-08-07 1990-08-07 計算機システム

Country Status (1)

Country Link
JP (1) JPH0754482B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500897A (ja) * 2003-07-31 2007-01-18 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるプリフェッチ制御
CN110554976A (zh) * 2018-06-01 2019-12-10 苹果公司 用于图形处理的存储器高速缓存管理
JP2020197830A (ja) * 2019-05-31 2020-12-10 ファナック株式会社 加工制御システム及び加工システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60175143A (ja) * 1984-02-21 1985-09-09 Nec Corp マイクロプログラム制御装置
JPS6242247A (ja) * 1985-08-20 1987-02-24 Fujitsu Ltd キヤツシユメモリ制御方式
JPH01121956A (ja) * 1987-11-05 1989-05-15 Mitsubishi Electric Corp キャッシュメモリ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60175143A (ja) * 1984-02-21 1985-09-09 Nec Corp マイクロプログラム制御装置
JPS6242247A (ja) * 1985-08-20 1987-02-24 Fujitsu Ltd キヤツシユメモリ制御方式
JPH01121956A (ja) * 1987-11-05 1989-05-15 Mitsubishi Electric Corp キャッシュメモリ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007500897A (ja) * 2003-07-31 2007-01-18 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるプリフェッチ制御
JP4875981B2 (ja) * 2003-07-31 2012-02-15 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるプリフェッチ制御
CN110554976A (zh) * 2018-06-01 2019-12-10 苹果公司 用于图形处理的存储器高速缓存管理
JP2020197830A (ja) * 2019-05-31 2020-12-10 ファナック株式会社 加工制御システム及び加工システム

Also Published As

Publication number Publication date
JPH0754482B2 (ja) 1995-06-07

Similar Documents

Publication Publication Date Title
EP0077453B1 (en) Storage subsystems with arrangements for limiting data occupancy in caches thereof
EP0301211B1 (en) Cache management for a peripheral data storage subsystem
US6678795B1 (en) Method and apparatus for memory prefetching based on intra-page usage history
US6442585B1 (en) Method for scheduling contexts based on statistics of memory system interactions in a computer system
US7010555B2 (en) System and method for compacting a computer system heap
US6237059B1 (en) Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US5930807A (en) Apparatus and method for fast filtering read and write barrier operations in garbage collection system
US5233702A (en) Cache miss facility with stored sequences for data fetching
EP0077452B1 (en) Data promotion in storage subsystems
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
JP4371452B2 (ja) コンピュータメモリシステムにおいて空間的及び時間的サンプリングを行う装置
US6581142B1 (en) Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
US5991847A (en) Data pattern caching for speeding up write operations
JPH0364890B2 (ja)
US20070130237A1 (en) Transient cache storage
EP0919920B1 (en) Method for estimating statistics of properties of memory system transactions
JPH06100981B2 (ja) 記憶階層制御方式
WO2017165520A1 (en) Adaptive extension of leases for entries in a translation lookaside buffer
JPH09101916A (ja) マルチプロセス処理装置
CN114297101A (zh) 一种记录内存访问来源的方法及系统
JPH0495145A (ja) 計算機システム
EP0058846B1 (en) Multiprocessing system with variably shared paging storage
JPH08328959A (ja) ディスクキャッシュ制御装置
JP3020512B2 (ja) フアイルデータ管理方法
JP2504394B2 (ja) 記憶階層制御方法