JPH0754482B2 - 計算機システム - Google Patents
計算機システムInfo
- Publication number
- JPH0754482B2 JPH0754482B2 JP2207585A JP20758590A JPH0754482B2 JP H0754482 B2 JPH0754482 B2 JP H0754482B2 JP 2207585 A JP2207585 A JP 2207585A JP 20758590 A JP20758590 A JP 20758590A JP H0754482 B2 JPH0754482 B2 JP H0754482B2
- Authority
- JP
- Japan
- Prior art keywords
- main memory
- data
- control register
- hit
- program
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明はキャッシュメモリ装置を備えた計算機システム
に係り、特にキャッシュメモリのヒット率を向上させた
計算機システムに関する。
に係り、特にキャッシュメモリのヒット率を向上させた
計算機システムに関する。
[従来の技術] 今日の計算機システムでは、その性能向上のため、ほと
んどのシステムでキャッシュメモリを備えるようになっ
ており、このキャッシュメモリを有効活用するために、
ヒット率の向上、データ置き換えの極小化を行うキャッ
シュメモリ制御方式が検討されている。例えば特開昭61
−151756号公報に開示された技術では、キャッシュメモ
リの1ブロックサイズを可変とし、ユーザプログラムに
最適なブロックサイズを選択できるようにしている。
んどのシステムでキャッシュメモリを備えるようになっ
ており、このキャッシュメモリを有効活用するために、
ヒット率の向上、データ置き換えの極小化を行うキャッ
シュメモリ制御方式が検討されている。例えば特開昭61
−151756号公報に開示された技術では、キャッシュメモ
リの1ブロックサイズを可変とし、ユーザプログラムに
最適なブロックサイズを選択できるようにしている。
[発明が解決しようとする課題] 上記従来技術は、ブロックサイズを変化させてプログラ
ムを走らせることにより、効率のよいブロックサイズで
キャッシュメモリを用いることができる。しかし、プロ
グラムのテキスト、データ、共有データ等は主メモリ上
のアドレス配置の関係から同一キャッシュブロックにコ
ピーされる場合が多い。この場合にはミスヒットによる
キャッシュメモリのデータ書き換えが多発し性能が低下
するという問題点は解決されていない。また、ユーザプ
ログラムによっては、データの書き込みを行って後すぐ
参照する処理が多いものと、書き込みを行ってもすぐに
はそのデータを参照しない処理が多いものである。特に
大量データのコピー時は、書き込まれるデータがすべて
すぐ参照されることは希であり、キャッシュメモリへの
書き込みは行われないことが望ましい。しかし、従来技
術ではこのようなプログラム対応で最適なキャッシュメ
モリ制御を行うことができなかった。
ムを走らせることにより、効率のよいブロックサイズで
キャッシュメモリを用いることができる。しかし、プロ
グラムのテキスト、データ、共有データ等は主メモリ上
のアドレス配置の関係から同一キャッシュブロックにコ
ピーされる場合が多い。この場合にはミスヒットによる
キャッシュメモリのデータ書き換えが多発し性能が低下
するという問題点は解決されていない。また、ユーザプ
ログラムによっては、データの書き込みを行って後すぐ
参照する処理が多いものと、書き込みを行ってもすぐに
はそのデータを参照しない処理が多いものである。特に
大量データのコピー時は、書き込まれるデータがすべて
すぐ参照されることは希であり、キャッシュメモリへの
書き込みは行われないことが望ましい。しかし、従来技
術ではこのようなプログラム対応で最適なキャッシュメ
モリ制御を行うことができなかった。
本発明の目的は、主メモリ上のアドレスのキャッシュメ
モリへのマッピング方法が不適当なためのヒット率の低
下、ミスヒット時のプログラム動作特性に合わないデー
タ書き換えのための効率低下をなくし、プログラムごと
にその動作特性に適したキャッシュメモリの制御を行え
るようにした計算機システムを提供するにある。
モリへのマッピング方法が不適当なためのヒット率の低
下、ミスヒット時のプログラム動作特性に合わないデー
タ書き換えのための効率低下をなくし、プログラムごと
にその動作特性に適したキャッシュメモリの制御を行え
るようにした計算機システムを提供するにある。
[課題を解決するための手段] 上記目的は、ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンをプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するためのマスクパターンを複
数種類格納したテーブルと、 該テーブルに格納されたマスクパターンの1つを前記制
御レジスタに設定してプログラムのテスト処理を実行し
たときの前記カウント手段に記憶された値を読み出し、
その値から得た今回ヒット率が前回前記制御レジスタに
設定したマスクパターンにより得た前回ヒット率より大
きいときにはさらに前記テーブルより新しいマスクパタ
ーンを取り出して前記制御レジスタに設定して前記プロ
グラムのテスト処理を繰り返し、前記今回ヒット率が前
記前回ヒット率より小さいときは前回のマスクパターン
を前記制御レジスタに設定して前記プログラムのテスト
処理を終了する自動設定手段と を備えることで、達成される。
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンをプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するためのマスクパターンを複
数種類格納したテーブルと、 該テーブルに格納されたマスクパターンの1つを前記制
御レジスタに設定してプログラムのテスト処理を実行し
たときの前記カウント手段に記憶された値を読み出し、
その値から得た今回ヒット率が前回前記制御レジスタに
設定したマスクパターンにより得た前回ヒット率より大
きいときにはさらに前記テーブルより新しいマスクパタ
ーンを取り出して前記制御レジスタに設定して前記プロ
グラムのテスト処理を繰り返し、前記今回ヒット率が前
記前回ヒット率より小さいときは前回のマスクパターン
を前記制御レジスタに設定して前記プログラムのテスト
処理を終了する自動設定手段と を備えることで、達成される。
上記目的はまた、ブロックアドレスと各ブロックの中に
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及びオンキャッシュ
するか否かを示す信号からなる制御情報をプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御する制御手段と、 プログラム実行中のメモリアクセス回路とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及びオンキャッシュ
するか否かを示す信号からなる制御情報をプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御する制御手段と、 プログラム実行中のメモリアクセス回路とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
上記目的はまた、ブロックアドレスと各ブロックの中に
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及び先読みブロック
数からなる制御情報をプログラムから可変設定可能な制
御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのリードアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに、当該アクセス
データを含む主メモリ上のブロックを前記データ記憶部
へコピーし、さらに前記制御レジスタに設定された先読
みブロック数に相当する個数のブロックを前記コピーさ
れたブロックに続いて主メモリから読み出し、前記デー
タ記憶部へコピーするように制御する制御手段と、 プログラム実行中のメモリアクセス回路とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及び先読みブロック
数からなる制御情報をプログラムから可変設定可能な制
御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのリードアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに、当該アクセス
データを含む主メモリ上のブロックを前記データ記憶部
へコピーし、さらに前記制御レジスタに設定された先読
みブロック数に相当する個数のブロックを前記コピーさ
れたブロックに続いて主メモリから読み出し、前記デー
タ記憶部へコピーするように制御する制御手段と、 プログラム実行中のメモリアクセス回路とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
上記目的はまた、ブロックアドレスと各ブロックの中に
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 オンキャッシュするか否かを示す信号及び先読みブロッ
ク数からなる制御情報をプログラムから可変設定可能な
制御レジスタと、 アクセスされた主メモリアドレスのコピーが前記データ
記憶部に存在するか否かをチェックするヒットチェック
手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
存在するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 オンキャッシュするか否かを示す信号及び先読みブロッ
ク数からなる制御情報をプログラムから可変設定可能な
制御レジスタと、 アクセスされた主メモリアドレスのコピーが前記データ
記憶部に存在するか否かをチェックするヒットチェック
手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
上記目的はまたは、ブロックアドレスと各ブロックの中
に存在するデータを示すタグとから成るディレクトリ
と、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンと、オンキャッ
シュするか否かを示す信号と、先読みブロック数とから
なる制御情報をプログラムから可変設定可能な制御レジ
スタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
に存在するデータを示すタグとから成るディレクトリ
と、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンと、オンキャッ
シュするか否かを示す信号と、先読みブロック数とから
なる制御情報をプログラムから可変設定可能な制御レジ
スタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えることで、達成される。
制御レジスタに設定されるマスクパターンに応じてキャ
ッシュメモリの各ブロックに対応する主メモリのアドレ
ス領域を変更できるので、大量のデータを扱うプログラ
ムの場合に、よく使用するデータ同士がキャッシュメモ
リ上で同一ブロックに格納されないようにマスクパター
ンを変更設定すれば、ヒット率を向上させることができ
る。また、複数のプログラムが別のキャッシュメモリエ
リアに格納されるようにマスクパターンを設定すれば、
複数のプログラムがキャッシュメモリの同一ブロックを
競合して使用するという事態を回避できる。
ッシュメモリの各ブロックに対応する主メモリのアドレ
ス領域を変更できるので、大量のデータを扱うプログラ
ムの場合に、よく使用するデータ同士がキャッシュメモ
リ上で同一ブロックに格納されないようにマスクパター
ンを変更設定すれば、ヒット率を向上させることができ
る。また、複数のプログラムが別のキャッシュメモリエ
リアに格納されるようにマスクパターンを設定すれば、
複数のプログラムがキャッシュメモリの同一ブロックを
競合して使用するという事態を回避できる。
また、大量データのコピー等の、書き込み後にすぐアク
セスしない処理を行うプログラムの場合には、制御レジ
スタに設定するオンキャッシュ信号をオフに設定すれ
ば、むだなキャッシュメモリの書き換えを防止できる。
また、制御レジスタに先読みブロック数を適切に設定し
ておけば、リードのミスヒット時に引続きリードされる
可能性の強いデータを複数ブロックにわたってキャッシ
ュメモリへ一度に転送できるから、その後のリードアク
セスを効率よく行うことができる。
セスしない処理を行うプログラムの場合には、制御レジ
スタに設定するオンキャッシュ信号をオフに設定すれ
ば、むだなキャッシュメモリの書き換えを防止できる。
また、制御レジスタに先読みブロック数を適切に設定し
ておけば、リードのミスヒット時に引続きリードされる
可能性の強いデータを複数ブロックにわたってキャッシ
ュメモリへ一度に転送できるから、その後のリードアク
セスを効率よく行うことができる。
[実施例] 以下、本発明を実施例により詳細に説明する。第2図
は、本発明のキャッシュメモリ装置を持つ計算機システ
ムのハードウェア構成例を示すもので、演算プロセッサ
601からデータのリード/ライト要求とその論理アドレ
スが出力されると、まずアドレス変換機構602で論理ア
ドレスが主メモリアドレス(物理アドレス)に変換さ
れ、キャッシュメモリ装置603に渡される。キャッシュ
メモリ装置603では、入力されたアドレスに対するヒッ
ト/ミスヒットの判定とその結果に対応したキャッシュ
メモリ内のデータアクセス及び必要なときの主メモリ60
0へのバス605を介してのアクセスを行う。この詳細は後
述するが、本発明の特徴とする動作を行うために、キャ
ッシュメモリ装置内603には第3図に示したようなレジ
スタ群604設けられており、これらにはプログラムから
パラメータを可変設定できる。レジスタ群604は制御レ
ジスタとヒット率測定用レジスタから成っているが、こ
れらについても以下で説明する。
は、本発明のキャッシュメモリ装置を持つ計算機システ
ムのハードウェア構成例を示すもので、演算プロセッサ
601からデータのリード/ライト要求とその論理アドレ
スが出力されると、まずアドレス変換機構602で論理ア
ドレスが主メモリアドレス(物理アドレス)に変換さ
れ、キャッシュメモリ装置603に渡される。キャッシュ
メモリ装置603では、入力されたアドレスに対するヒッ
ト/ミスヒットの判定とその結果に対応したキャッシュ
メモリ内のデータアクセス及び必要なときの主メモリ60
0へのバス605を介してのアクセスを行う。この詳細は後
述するが、本発明の特徴とする動作を行うために、キャ
ッシュメモリ装置内603には第3図に示したようなレジ
スタ群604設けられており、これらにはプログラムから
パラメータを可変設定できる。レジスタ群604は制御レ
ジスタとヒット率測定用レジスタから成っているが、こ
れらについても以下で説明する。
第1図は本発明のキャッシュメモリ装置の一実施例を示
すもので、アドレス変換機構602から入力された物理ア
ドレスをセットするアドレスレジスタ8、アドレスレジ
スタ8のアドレスをタグとしての使用部分とブロックア
ドレスとしての使用部分に分けるためのレジスタ9(IP
M;インデックス・マスクパターン・レジスタ)、上記2
つのレジスタ8、9の内容に応じて物理アドレスからタ
グ値とブロックアドレス値とを生成する生成回路2、
3、これらの生成回路2、3により求められたタグ値と
ブロックアドレスを持つデータがデータ記憶部1内に有
るか否か(ヒット/ミスヒット)を調べるための比較器
11及びAND回路13、ヒット/ミスヒットの結果に応じた
キャッシュメモリ装置の動作を制御するキャッシュ制御
回路5等から成っている。ここで本発明の特徴とするの
は、上述のレジスタ9、データライトのミスヒット時に
オンキャッシュするか否かを決定するためのレジスタ7
(WTCR;ライトコントロールレジスタ)、データリード
のミスヒット時に主メモリからのキャッシュメモリへの
先行リード回数を制御するレジスタ6(BSS;ブロック・
サイズ・スケール・レジスタ)である。第3図に示した
この他のレジスタは第1図では省略されているが、この
うちレジスタ701(CCTL)はキャッシュメモリ全体の使
用/不使用や、データ記憶部1内のデータを無効化する
ためのもので、これは従来技術でも用いられているもの
である。
すもので、アドレス変換機構602から入力された物理ア
ドレスをセットするアドレスレジスタ8、アドレスレジ
スタ8のアドレスをタグとしての使用部分とブロックア
ドレスとしての使用部分に分けるためのレジスタ9(IP
M;インデックス・マスクパターン・レジスタ)、上記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ビット、ブロックアドレスとして13ビ
ットを使用するものとする。レジスタ9にセットされる
マスクパターンは、タグ値として使用するビット位置に
“1"、ブロックアドレス値として使用するビット位置に
“0"をもち、従ってマスクパターンの“0"、“1"の個数
はそれぞれ13個、11個であるとする。エンコーダ101〜1
11(DTCH)は、レジスタ9にセットされたマスクパター
ンの第4〜27ビット(これをマスクパターンiMとする)
の各ビットを調べ、エンコーダ1i(i=01〜11)はマス
クパターンiMの中の左から(上位ビットから)i番目の
“1"の位置を出力する。マスクパターンのiM以外はすべ
て“0"とされ、またマスクパターン中の“1"の個数は11
個であったから11個のエンコーダ101〜111がその各位置
を出力する。選択回路121〜131は、レジスタ8の物理ア
ドレス中の第4〜27ビットの内の、エンコーダ101〜111
が出力したビット位置の値をタグアドレスの各ビットTG
(10)〜TG(0)として取り出し出力する。
ではタグとして11ビット、ブロックアドレスとして13ビ
ットを使用するものとする。レジスタ9にセットされる
マスクパターンは、タグ値として使用するビット位置に
“1"、ブロックアドレス値として使用するビット位置に
“0"をもち、従ってマスクパターンの“0"、“1"の個数
はそれぞれ13個、11個であるとする。エンコーダ101〜1
11(DTCH)は、レジスタ9にセットされたマスクパター
ンの第4〜27ビット(これをマスクパターンiMとする)
の各ビットを調べ、エンコーダ1i(i=01〜11)はマス
クパターンiMの中の左から(上位ビットから)i番目の
“1"の位置を出力する。マスクパターンのiM以外はすべ
て“0"とされ、またマスクパターン中の“1"の個数は11
個であったから11個のエンコーダ101〜111がその各位置
を出力する。選択回路121〜131は、レジスタ8の物理ア
ドレス中の第4〜27ビットの内の、エンコーダ101〜111
が出力したビット位置の値をタグアドレスの各ビットTG
(10)〜TG(0)として取り出し出力する。
第5図はブロックアドレス生成回路3の構成を示すもの
で、エンコーダ201〜213及び選択回路221〜223はそれぞ
れ13個づつあり、各回路の機能は第4図のものと同じで
ある。エンコーダ201〜213への入力はマスクパターンiM
の“0"と“1"をインバータ31により反転したもので、こ
の構成によりマスクパターン中の“0"の位置にある物理
アドレス中の13個のビットBA(12)〜BA(0)が取り出
され、ブロックアドレスとして出力される。以上の第4
図及び第5図で示したように、キャッシュメモリ装置の
タグ及びブロックアドレスを物理アドレスのどのビット
と対応づけるかがレジスタ9にセットされたマスクパタ
ーンで決まるから、これをプログラムから可変設定する
ことにより、後に動作例で示すように、プログラム毎に
最適な対応付けでキャッシュメモリを用いるとができ
る。なお、タグ及びブロックアドレスのビット数は本実
施例で13及び11ビットとしたが、これを可変とすること
もできる。しかしそのときはキャッシュメモリのブロッ
ク数も可変とする必要があるため装置が複雑になるの
で、ここでは各ビット数を固定としている。この場合、
プログラムからマスクパターンをセットするときに“1"
または“0"の個数をチェックするためのソフトあるいは
ハード手段を設けておけば、誤ったマスクパターンの設
定を防止することができる。
で、エンコーダ201〜213及び選択回路221〜223はそれぞ
れ13個づつあり、各回路の機能は第4図のものと同じで
ある。エンコーダ201〜213への入力はマスクパターンiM
の“0"と“1"をインバータ31により反転したもので、こ
の構成によりマスクパターン中の“0"の位置にある物理
アドレス中の13個のビットBA(12)〜BA(0)が取り出
され、ブロックアドレスとして出力される。以上の第4
図及び第5図で示したように、キャッシュメモリ装置の
タグ及びブロックアドレスを物理アドレスのどのビット
と対応づけるかがレジスタ9にセットされたマスクパタ
ーンで決まるから、これをプログラムから可変設定する
ことにより、後に動作例で示すように、プログラム毎に
最適な対応付けでキャッシュメモリを用いるとができ
る。なお、タグ及びブロックアドレスのビット数は本実
施例で13及び11ビットとしたが、これを可変とすること
もできる。しかしそのときはキャッシュメモリのブロッ
ク数も可変とする必要があるため装置が複雑になるの
で、ここでは各ビット数を固定としている。この場合、
プログラムからマスクパターンをセットするときに“1"
または“0"の個数をチェックするためのソフトあるいは
ハード手段を設けておけば、誤ったマスクパターンの設
定を防止することができる。
次にレジスタ7を用いた制御方法を第6図に示す。これ
はデータライト時に用いられるもので、制御回路5(第
1図)により実行される。まずステップ401にてデータ
ライト時のANDゲート13出力を調べ、これがヒットを示
しているときはステップ403、404でキャッシュメモリへ
のライト処理と主メモリへのライト処理を行う。一方ミ
スヒットを示しているときはステップ402にてレジスタ
7を調べ、その値が“1"であったならライトミスヒット
時にオンキャッシュが指定されているものとして、まず
ステップ403でキャッシュメモリへのデータライト要求
信号を出し、これによりキャッシュメモリ装置が主メモ
リから1ブロック分のデータをリードすると、その中に
当該ライトデータをマージしてキャッシュメモリへ書き
込み、さらにステップ404にてそのブロックデータを主
メモリへ書き込む。レジスタ7に“0"がセットされてい
るときは、ステップ404で主メモリへのデータライトだ
けが行われる。このようにして、ライトミスヒット時の
データオンキャッシュの有無を制御することができる。
はデータライト時に用いられるもので、制御回路5(第
1図)により実行される。まずステップ401にてデータ
ライト時のANDゲート13出力を調べ、これがヒットを示
しているときはステップ403、404でキャッシュメモリへ
のライト処理と主メモリへのライト処理を行う。一方ミ
スヒットを示しているときはステップ402にてレジスタ
7を調べ、その値が“1"であったならライトミスヒット
時にオンキャッシュが指定されているものとして、まず
ステップ403でキャッシュメモリへのデータライト要求
信号を出し、これによりキャッシュメモリ装置が主メモ
リから1ブロック分のデータをリードすると、その中に
当該ライトデータをマージしてキャッシュメモリへ書き
込み、さらにステップ404にてそのブロックデータを主
メモリへ書き込む。レジスタ7に“0"がセットされてい
るときは、ステップ404で主メモリへのデータライトだ
けが行われる。このようにして、ライトミスヒット時の
データオンキャッシュの有無を制御することができる。
次にレジスタ6(BSS)を用いた制御を第7図に示す。
これはデータリード時に用いられるもので、やはり制御
回路5により実行される。レジスタ6には予め先読みす
るブロック数が設定されているとする。まずステップ50
1にてデータリード時のANDゲート13出力を調べ、ミスヒ
ットの時のみステップ502にてミスヒットの発生したブ
ロックのデータを主メモリからリードし、次にステップ
503、504、505に示す処理によって、レジスタ6に設定
されたブロック数分のデータを主メモリからキャッシュ
メモリへ先行リードする。
これはデータリード時に用いられるもので、やはり制御
回路5により実行される。レジスタ6には予め先読みす
るブロック数が設定されているとする。まずステップ50
1にてデータリード時のANDゲート13出力を調べ、ミスヒ
ットの時のみステップ502にてミスヒットの発生したブ
ロックのデータを主メモリからリードし、次にステップ
503、504、505に示す処理によって、レジスタ6に設定
されたブロック数分のデータを主メモリからキャッシュ
メモリへ先行リードする。
以上で第1図の実施例の特徴とするレジスタ6、7、9
を用いた個々の動作を述べたが、これらのレジスタへの
パラメータ(キャッシュ制御情報)の設定は次のように
して行われる。第8図は第2図のシステムのソフトウェ
アの全体的な構成を示すもので、ディスク802(図示を
省略)に格納されているプログラム812(UPRG)は、実
行時に論理空間801に対応付けられる。ここでの他に、
キャッシュ制御情報の格納テーブル807をもっており、
これに対して論理空間上の命令列803、データ804(これ
らはユーザ領域にある)と、システム領域のOS用のプロ
セス管理テーブル809内に設けられたテーブル810がそれ
ぞれ対応付けられる。
を用いた個々の動作を述べたが、これらのレジスタへの
パラメータ(キャッシュ制御情報)の設定は次のように
して行われる。第8図は第2図のシステムのソフトウェ
アの全体的な構成を示すもので、ディスク802(図示を
省略)に格納されているプログラム812(UPRG)は、実
行時に論理空間801に対応付けられる。ここでの他に、
キャッシュ制御情報の格納テーブル807をもっており、
これに対して論理空間上の命令列803、データ804(これ
らはユーザ領域にある)と、システム領域のOS用のプロ
セス管理テーブル809内に設けられたテーブル810がそれ
ぞれ対応付けられる。
次に、プログラム実行時に、キャッシュ制御レジスタ6,
7,9にデータを設定する方法を説明する。まずキャッシ
ュ制御情報の設定方法は、プログラム属性としてプログ
ラム作成時に指定する必要がある。このため、第9図に
示したような処理により指定する。即ち、従来のプログ
ラム作成処理(ステップ901)を実行した後、オペレー
タによりキャッシュ制御指定が行われたかどうかを判定
し(ステップ902)、もし指定無しの場合はキャッシュ
制御無しをプログラム属性としてテーブル807へセット
する(ステップ904)。指定有りの場合は、制御情報の
指定の有無を判定し(ステップ903)、指定有りの場合
は指定された情報をプログラム属性としてテーブル807
へセットし(ステップ905)、制御情報指定無しの場合
は、自動キャッシュ制御モードをプログラム属性として
テーブル807へセットする(ステップ906)。このように
本実施例では3つのキャッシュ制御属性が存在する。な
おキャッシュ制御情報の求め方、および自動キャッシュ
制御方式については後述する。
7,9にデータを設定する方法を説明する。まずキャッシ
ュ制御情報の設定方法は、プログラム属性としてプログ
ラム作成時に指定する必要がある。このため、第9図に
示したような処理により指定する。即ち、従来のプログ
ラム作成処理(ステップ901)を実行した後、オペレー
タによりキャッシュ制御指定が行われたかどうかを判定
し(ステップ902)、もし指定無しの場合はキャッシュ
制御無しをプログラム属性としてテーブル807へセット
する(ステップ904)。指定有りの場合は、制御情報の
指定の有無を判定し(ステップ903)、指定有りの場合
は指定された情報をプログラム属性としてテーブル807
へセットし(ステップ905)、制御情報指定無しの場合
は、自動キャッシュ制御モードをプログラム属性として
テーブル807へセットする(ステップ906)。このように
本実施例では3つのキャッシュ制御属性が存在する。な
おキャッシュ制御情報の求め方、および自動キャッシュ
制御方式については後述する。
次に、このようにしてキャッシュ制御属性がセットされ
たプログラムの実行時の動作を第10図に示す。まずディ
スク上に作成されたプログラムが、プロセス生成処理に
より主メモリ上の論理空間に対応付けられる。これは第
8図の命令例803、データ804の生成である(ステップ10
01)。次にテーブル807を調べてキャッシュ制御情報の
有無を判定し(ステップ1002)、制御指定有りの場合
は、その制御情報をテーブル807から読みだし、プロセ
ス管理テーブル内のキャッシュ属性テーブル810へセッ
トする(ステップ1003)。また制御指定無しの場合は、
システムにおけるデフォルト値をテーブル810へセット
する(ステップ1004)。このように生成されたプロセス
は、プロセススイッチ処理を経て実際に実行されるが、
このプロセススイッチ処理直後にテーブル810にセット
された制御情報が第1図で示したレジスタ6、7、9に
セットされて、第4図〜第7図で説明したキャッシュメ
モリ装置の制御が実行される。
たプログラムの実行時の動作を第10図に示す。まずディ
スク上に作成されたプログラムが、プロセス生成処理に
より主メモリ上の論理空間に対応付けられる。これは第
8図の命令例803、データ804の生成である(ステップ10
01)。次にテーブル807を調べてキャッシュ制御情報の
有無を判定し(ステップ1002)、制御指定有りの場合
は、その制御情報をテーブル807から読みだし、プロセ
ス管理テーブル内のキャッシュ属性テーブル810へセッ
トする(ステップ1003)。また制御指定無しの場合は、
システムにおけるデフォルト値をテーブル810へセット
する(ステップ1004)。このように生成されたプロセス
は、プロセススイッチ処理を経て実際に実行されるが、
このプロセススイッチ処理直後にテーブル810にセット
された制御情報が第1図で示したレジスタ6、7、9に
セットされて、第4図〜第7図で説明したキャッシュメ
モリ装置の制御が実行される。
次に、最適なキャッシュ制御情報の決定方法を説明す
る。ここで第3図で述べたヒット率測定レジスタ702〜7
05が用いられる。ここでレジスタ702(CRDACC)及びレ
ジスタ703(CWRACC)は、演算プロセッサ601がデータリ
ード要求及びデータライト要求を出した回数の記録用で
あり、レジスタ704(CRDHIT)及びレジスタ705(CWRHT
I)は、データリード要求及びデータライト要求がそれ
ぞれキャッシュメモリでヒットした回数の記録用であ
る。
る。ここで第3図で述べたヒット率測定レジスタ702〜7
05が用いられる。ここでレジスタ702(CRDACC)及びレ
ジスタ703(CWRACC)は、演算プロセッサ601がデータリ
ード要求及びデータライト要求を出した回数の記録用で
あり、レジスタ704(CRDHIT)及びレジスタ705(CWRHT
I)は、データリード要求及びデータライト要求がそれ
ぞれキャッシュメモリでヒットした回数の記録用であ
る。
第11図及び第12図はプロセススイッチ処理及びヒット率
モニタプロセスのフローチャートである。まずヒット率
モニタプロセス1201において、被測定プログラム1102を
ヒット率測定モードで実行し始めると(ステップ110
3)、これ以前に実行されていたプログラムは被測定モ
ードではないので、まずスイッチ処理の第11図のステッ
プ1101からステップ1102へ進み、ここで従来のスイッチ
処理1103が実行されてこれから測定するプログラムに論
理空間割り当てが行われる。次いでステップ1104でキャ
ッシュ制御情報をレジスタ6、7、9へセットし、ステ
ップ1105の判定を行う。今の場合ヒット率測定モードで
あるからステップ1106でヒット率測定レジスタ702〜705
のリセットを行う。こうして被測定プログラムが実行さ
れると、その実行中のデータアクセス回数及びヒット回
数がレジスタ702〜705にカウントされて行く。被測定プ
ロセスの1回の実行時間が終了すると(一般にマルチプ
ロセスシステムでは各プロセスが時分割で実行されるか
ら)、再びプロセススイッチ処理に戻ってくるが、この
ときはヒット率測定モードであるからステップ1102で被
測定プロセス1202の測定データエリアへレジスタ702〜7
05の各値についての測定結果がそれぞれ加算される。こ
の測定データエリアは、プロセス実行時にクリアしてお
き、被測定プロセスが実行されるごとのカウント値を加
算することにより、マルチプロセスにより被測定プロセ
スが何回にも分けて実行されても全体の測定結果がこの
エリアに記憶される。こうして被測定プロセス1202が実
行終了すると、第12図のヒット率モニタプロセス1201が
実行再開し、ステップ1205にて測定結果を収集する。
モニタプロセスのフローチャートである。まずヒット率
モニタプロセス1201において、被測定プログラム1102を
ヒット率測定モードで実行し始めると(ステップ110
3)、これ以前に実行されていたプログラムは被測定モ
ードではないので、まずスイッチ処理の第11図のステッ
プ1101からステップ1102へ進み、ここで従来のスイッチ
処理1103が実行されてこれから測定するプログラムに論
理空間割り当てが行われる。次いでステップ1104でキャ
ッシュ制御情報をレジスタ6、7、9へセットし、ステ
ップ1105の判定を行う。今の場合ヒット率測定モードで
あるからステップ1106でヒット率測定レジスタ702〜705
のリセットを行う。こうして被測定プログラムが実行さ
れると、その実行中のデータアクセス回数及びヒット回
数がレジスタ702〜705にカウントされて行く。被測定プ
ロセスの1回の実行時間が終了すると(一般にマルチプ
ロセスシステムでは各プロセスが時分割で実行されるか
ら)、再びプロセススイッチ処理に戻ってくるが、この
ときはヒット率測定モードであるからステップ1102で被
測定プロセス1202の測定データエリアへレジスタ702〜7
05の各値についての測定結果がそれぞれ加算される。こ
の測定データエリアは、プロセス実行時にクリアしてお
き、被測定プロセスが実行されるごとのカウント値を加
算することにより、マルチプロセスにより被測定プロセ
スが何回にも分けて実行されても全体の測定結果がこの
エリアに記憶される。こうして被測定プロセス1202が実
行終了すると、第12図のヒット率モニタプロセス1201が
実行再開し、ステップ1205にて測定結果を収集する。
以上のようにして、リード、ライトごとのアクセス回数
とヒット回数が求められるから、これらから被測定プロ
セス1202のキャッシュヒット率を知ることができる。従
ってキャッシュ制御情報を変更しながらヒット率を測定
するという動作を繰り返せば、被測定プロセスに最適な
キャッシュ制御情報を得ることができる。
とヒット回数が求められるから、これらから被測定プロ
セス1202のキャッシュヒット率を知ることができる。従
ってキャッシュ制御情報を変更しながらヒット率を測定
するという動作を繰り返せば、被測定プロセスに最適な
キャッシュ制御情報を得ることができる。
なお、第11図、第12図の実施例では、ソフトウェアによ
りキャッシュメモリのヒット率を計算しているが、これ
をハードウェアですべて処理することもできる。また、
制御情報の設定とそれに対するヒット率の測定結果の判
定、最適制御情報のサーチ等は人手によるものとして説
明したが、これを自動化することもできる。第13図はそ
のための処理を示すフローチャートで、これは一定周期
で入ってくるタイマ割り込みにより起動されるものとす
る。同図において、まず従来のタイマ割り込み処理1301
を行い、次に、現在実行中のプロセスがキャッシュ自動
制御モードであるかを判定する(ステップ1302)。この
判定は、第9図のプログラム作成処理のステップ906で
テーブル807へ設定され、プログラム実行時の第10図ス
テップ1003でテーブル810へセットされた情報を調べて
行われる。この判定結果が自動制御モードであったな
ら、ヒット率測定レジスタ702〜705より前回タイマ割り
込みから今回タイマ割り込みまでの間のアクセス回数及
びヒット回数を収集する(ステップ1303)。この収集結
果を前回の収集結果と比較し(ステップ1304)、今回の
結果の方がよい値であったなら、今回のキャッシュ制御
情報を記憶し(ステップ1307)、別の新制御情報を選択
してプロセス管理テーブル内キャッシュ属性テーブル81
0へセットするとともにレジスタ6、7、9にライトし
た後(ステップ1308)、ヒット率測定レジスタ702〜705
のリセットを行い(ステップ1309)、次のタイマ割り込
みまでの間のヒット率測定を行う。もしステップ1304の
判定で前回の結果の方がよい値であったなら、ステップ
1307で記憶した前回のキャッシュ制御情報をテーブル81
0へセットするとともにキャッシュ制御レジスタ6、
7、9へもセットする(ステップ1305)。さらにテーブ
ル810内の自動制御指定をクリアし(ステップ1306)、
それ以降はキャッシュ制御情報をステップ1305でセット
した内容に固定してプロセスを実行する。ここでステッ
プ1308における新制御情報の選択方法としては、予め優
先度をつけた制御情報の並びをデータベースとして用意
しておき、これを順次使用して行く方法や、乱数を発生
させて決定する方法等がある。以上の自動制御モードで
は、ヒット率が単調増加している間だけ処理され、一度
でも減少した場合は打ち切るようにしている。これはタ
イマ割り込み処理のオーバヘッドを減らすためである。
このような簡単化は、自動制御モードが第11図、第12図
で説明した方法の簡易化を目的としたもので、性能上の
多少の制約はあるが、十分に実用価値がある。
りキャッシュメモリのヒット率を計算しているが、これ
をハードウェアですべて処理することもできる。また、
制御情報の設定とそれに対するヒット率の測定結果の判
定、最適制御情報のサーチ等は人手によるものとして説
明したが、これを自動化することもできる。第13図はそ
のための処理を示すフローチャートで、これは一定周期
で入ってくるタイマ割り込みにより起動されるものとす
る。同図において、まず従来のタイマ割り込み処理1301
を行い、次に、現在実行中のプロセスがキャッシュ自動
制御モードであるかを判定する(ステップ1302)。この
判定は、第9図のプログラム作成処理のステップ906で
テーブル807へ設定され、プログラム実行時の第10図ス
テップ1003でテーブル810へセットされた情報を調べて
行われる。この判定結果が自動制御モードであったな
ら、ヒット率測定レジスタ702〜705より前回タイマ割り
込みから今回タイマ割り込みまでの間のアクセス回数及
びヒット回数を収集する(ステップ1303)。この収集結
果を前回の収集結果と比較し(ステップ1304)、今回の
結果の方がよい値であったなら、今回のキャッシュ制御
情報を記憶し(ステップ1307)、別の新制御情報を選択
してプロセス管理テーブル内キャッシュ属性テーブル81
0へセットするとともにレジスタ6、7、9にライトし
た後(ステップ1308)、ヒット率測定レジスタ702〜705
のリセットを行い(ステップ1309)、次のタイマ割り込
みまでの間のヒット率測定を行う。もしステップ1304の
判定で前回の結果の方がよい値であったなら、ステップ
1307で記憶した前回のキャッシュ制御情報をテーブル81
0へセットするとともにキャッシュ制御レジスタ6、
7、9へもセットする(ステップ1305)。さらにテーブ
ル810内の自動制御指定をクリアし(ステップ1306)、
それ以降はキャッシュ制御情報をステップ1305でセット
した内容に固定してプロセスを実行する。ここでステッ
プ1308における新制御情報の選択方法としては、予め優
先度をつけた制御情報の並びをデータベースとして用意
しておき、これを順次使用して行く方法や、乱数を発生
させて決定する方法等がある。以上の自動制御モードで
は、ヒット率が単調増加している間だけ処理され、一度
でも減少した場合は打ち切るようにしている。これはタ
イマ割り込み処理のオーバヘッドを減らすためである。
このような簡単化は、自動制御モードが第11図、第12図
で説明した方法の簡易化を目的としたもので、性能上の
多少の制約はあるが、十分に実用価値がある。
最後に、キャッシュ制御情報の具体的な選択例を説明す
る。まず、インデックス・マスクパターン・レジスタ9
へ設定するマスクパターンの例を第14図及び第15図に示
す。第14図の例は、1ページ=4096バイトのページング
処理を行っている計算機システムにおいて、比較的小さ
なプログラムが動作する場合に適したもので、同図
(a)に示すようにマスクパターンiMa=“fe00f0"(16
進)の場合である。16進数のf,e,0を2進数で示すとそ
れぞれ“1111"、“1110"、“0000"である。この2進数
で見たときのiMaの“1"はタグ(11ビット)、“0"はブ
ロックアドレス(13ビット)を指定するのは前述の通り
であり、これをレジスタ9へセットしたときの主メモリ
600とキャッシュメモリのデータ記憶部1との間の関係
は、第14図(b)に示すように、主メモリアドレスの0
〜4095バイトまでが、キャッシュメモリの先頭の256バ
イトへオンキャッシュし、4096〜8191バイトまでがキャ
ッシュメモリの次の256バイトへオンキャッシュし、以
下同様である。またキャッシュメモリのブロックアドレ
ス0へオンキャッシュする主メモリアドレスは、0、25
6、512バイトと、256バイトおきのデータである。図中
の矢印は、同一キャッシュメモリを使用する主メモリア
ドレスとキャッシュメモリのブロックアドレスの関係を
示している。このような主メモリとキャッシュメモリと
の対応付けをマスクパターンiMaで行うと、各ページ即
ち主メモリの4096バイト単位のエリアを先頭から256バ
イト以内しか使用しないような小さいプログラムが実行
された場合、そのプログラム実行中にキャッシュメモリ
上での主メモリデータの競合が生じることはなく、最初
にオンキャッシュしたデータが追い出されずにヒット率
が向上する。
る。まず、インデックス・マスクパターン・レジスタ9
へ設定するマスクパターンの例を第14図及び第15図に示
す。第14図の例は、1ページ=4096バイトのページング
処理を行っている計算機システムにおいて、比較的小さ
なプログラムが動作する場合に適したもので、同図
(a)に示すようにマスクパターンiMa=“fe00f0"(16
進)の場合である。16進数のf,e,0を2進数で示すとそ
れぞれ“1111"、“1110"、“0000"である。この2進数
で見たときのiMaの“1"はタグ(11ビット)、“0"はブ
ロックアドレス(13ビット)を指定するのは前述の通り
であり、これをレジスタ9へセットしたときの主メモリ
600とキャッシュメモリのデータ記憶部1との間の関係
は、第14図(b)に示すように、主メモリアドレスの0
〜4095バイトまでが、キャッシュメモリの先頭の256バ
イトへオンキャッシュし、4096〜8191バイトまでがキャ
ッシュメモリの次の256バイトへオンキャッシュし、以
下同様である。またキャッシュメモリのブロックアドレ
ス0へオンキャッシュする主メモリアドレスは、0、25
6、512バイトと、256バイトおきのデータである。図中
の矢印は、同一キャッシュメモリを使用する主メモリア
ドレスとキャッシュメモリのブロックアドレスの関係を
示している。このような主メモリとキャッシュメモリと
の対応付けをマスクパターンiMaで行うと、各ページ即
ち主メモリの4096バイト単位のエリアを先頭から256バ
イト以内しか使用しないような小さいプログラムが実行
された場合、そのプログラム実行中にキャッシュメモリ
上での主メモリデータの競合が生じることはなく、最初
にオンキャッシュしたデータが追い出されずにヒット率
が向上する。
第15図の例は複数のプロセスが並行して動作した場合
に、あるプロセス内でのキャッシュメモリ使用の競合は
あきらめるが、他のプロセスの動作によって、自プロセ
スのオンキャッシュしているデータがキャッシュから追
い出されるような競合は防ぎたいという場合に有効なマ
スクパターンの例を示している。このときのマスクパタ
ーンiMaは同図(a)に示すように16進で“f01fc0"であ
り、f、0は第14図と同じ、1、cは2進で示すと“00
01"、“1100"である。これをレジスタ9へセットしたと
きの主メモリ600とデータ記憶部1との関係は、第15図
(b)に示したように、128キロバイト毎の主メモリエ
リアが64ブロック毎のキャッシュメモリエリアへ割り当
てられるようになる。このため、プロセスやジョブ毎に
128キロバイトの主メモリエリアを割り当てれば、プロ
セスやジョブ間でのキャッシュメモリ使用の競合は発生
しなくなる。
に、あるプロセス内でのキャッシュメモリ使用の競合は
あきらめるが、他のプロセスの動作によって、自プロセ
スのオンキャッシュしているデータがキャッシュから追
い出されるような競合は防ぎたいという場合に有効なマ
スクパターンの例を示している。このときのマスクパタ
ーンiMaは同図(a)に示すように16進で“f01fc0"であ
り、f、0は第14図と同じ、1、cは2進で示すと“00
01"、“1100"である。これをレジスタ9へセットしたと
きの主メモリ600とデータ記憶部1との関係は、第15図
(b)に示したように、128キロバイト毎の主メモリエ
リアが64ブロック毎のキャッシュメモリエリアへ割り当
てられるようになる。このため、プロセスやジョブ毎に
128キロバイトの主メモリエリアを割り当てれば、プロ
セスやジョブ間でのキャッシュメモリ使用の競合は発生
しなくなる。
次にレジスタ(WTCR)の設定情報について説明する。ま
ず、ライトデータミスヒット時にオンキャッシュした方
が良い場合というのは、ライトした後すぐにリードする
ことが多い場合である。このような処理の典型的な例に
は、サブルーチンコール時の引き数の受け渡しがある。
このため、サブルーチンコールが頻繁に行われかつその
引き数が多いプログラムでは、ライトミスヒット時にオ
ンキャッシュした方が良く、レジスタ7に“1"をセット
する。
ず、ライトデータミスヒット時にオンキャッシュした方
が良い場合というのは、ライトした後すぐにリードする
ことが多い場合である。このような処理の典型的な例に
は、サブルーチンコール時の引き数の受け渡しがある。
このため、サブルーチンコールが頻繁に行われかつその
引き数が多いプログラムでは、ライトミスヒット時にオ
ンキャッシュした方が良く、レジスタ7に“1"をセット
する。
これと逆に、大量のデータコピーをする処理があるプロ
グラムでは、このデータコピーによるキャッシュメモリ
への外乱を少なくするため、ライトミスヒット時のオン
キャッシュはしない方が良い。即ちレジスタ7に“0"を
セットする。
グラムでは、このデータコピーによるキャッシュメモリ
への外乱を少なくするため、ライトミスヒット時のオン
キャッシュはしない方が良い。即ちレジスタ7に“0"を
セットする。
次に、レジスタ6(BSS)の使用方法としては、次のよ
うなものがある。固定長のテーブル操作が多いプログラ
ムであって、そのテーブルを操作するときは必ず先頭か
ら行うようなものであった場合、レジスタ6にセットす
る先行リードサイズをこのテーブル長にあわせておけ
ば、このテーブル操作時のキャッシュミスヒット回数は
高々1回となる。即ち、先行リードにより当該テーブル
の全データが一度にオンキャッシュされるから、その後
のテーブル操作時にミスヒットはなくなり、処理性能が
向上する。
うなものがある。固定長のテーブル操作が多いプログラ
ムであって、そのテーブルを操作するときは必ず先頭か
ら行うようなものであった場合、レジスタ6にセットす
る先行リードサイズをこのテーブル長にあわせておけ
ば、このテーブル操作時のキャッシュミスヒット回数は
高々1回となる。即ち、先行リードにより当該テーブル
の全データが一度にオンキャッシュされるから、その後
のテーブル操作時にミスヒットはなくなり、処理性能が
向上する。
なお、以上ではプログラム単位にキャッシュ制御レジス
タを書き換える例を示してきたが、システム一括で立ち
上げ時にキャッシュ制御情報を設定し、それ以降は書き
換えないという使い方もできることはいうまでもない。
タを書き換える例を示してきたが、システム一括で立ち
上げ時にキャッシュ制御情報を設定し、それ以降は書き
換えないという使い方もできることはいうまでもない。
[発明の効果] 本発明によれば、ライトミスヒット時のオンキャッシュ
するか否かの情報と、リードミスヒット時の先行リード
ブロック数とから成るキャッシュ制御情報をプログラム
から可変設定可能とし、またキャッシュメモリのヒット
率測定をプログラムから行えるようにしたことにより、
各プログラムに対してヒット率を最高とするようなキャ
ッシュメモリの制御が実現でき、処理性能を大幅に向上
することができる。また、ヒット率の測定とキャッシュ
制御情報の選択を自動的に行えるようにすることで、ユ
ーザの負担なしに処理性能の向上をはかれるという効果
がある。
するか否かの情報と、リードミスヒット時の先行リード
ブロック数とから成るキャッシュ制御情報をプログラム
から可変設定可能とし、またキャッシュメモリのヒット
率測定をプログラムから行えるようにしたことにより、
各プログラムに対してヒット率を最高とするようなキャ
ッシュメモリの制御が実現でき、処理性能を大幅に向上
することができる。また、ヒット率の測定とキャッシュ
制御情報の選択を自動的に行えるようにすることで、ユ
ーザの負担なしに処理性能の向上をはかれるという効果
がある。
第1図は本発明の一実施例を示すブロック図、第2図は
キャッシュメモリ装置を用いた計算機システムの構成例
を示す図、第3図は本発明で用いられる各種レジスタを
示す図、第4図及び第5図はマスクパターンからキャッ
シュメモリのタグ及びブロックアドレスを生成する回路
の説明図、第6図はデータライト時のキャッシュ制御回
路の動作を示すフローチャート、第7図はデータリード
時のキャッシュ制御回路の動作を示すフローチャート、
第8図は本発明の装置を使用するためのソフトウェア構
成例を示す図、第9図はプログラム作成処理のフローチ
ャート、第10図はプログラム実行処理のフローチャー
ト、第11図はプロセススイッチ処理のフローチャート、
第12図はプログラム実行中にキャッシュヒット率を測定
するプロセスのフローチャート、第13図はキャッシュ制
御情報を自動調整するためのタイマ割り込み処理のフロ
ーチャート、第14図(a),(b)及び第15図(a),
(b)はマスクパターンの例とその各例における主メモ
リとキャッシュメモリとの対応を示す図である。 1……キャッシュメモリ、2……タグ生成回路、3……
ブロックアドレス生成回路、5……キャッシュ制御回
路、6……ブロック・サイズ・スケールレジスタ、7…
…ライト制御レジスタ、9……インデックス・マスクパ
ターン・レジスタ、600……主メモリ、604……キャッシ
ュ内レジスタ、807……制御情報格納テーブル、810……
キャッシュ属性テーブル。
キャッシュメモリ装置を用いた計算機システムの構成例
を示す図、第3図は本発明で用いられる各種レジスタを
示す図、第4図及び第5図はマスクパターンからキャッ
シュメモリのタグ及びブロックアドレスを生成する回路
の説明図、第6図はデータライト時のキャッシュ制御回
路の動作を示すフローチャート、第7図はデータリード
時のキャッシュ制御回路の動作を示すフローチャート、
第8図は本発明の装置を使用するためのソフトウェア構
成例を示す図、第9図はプログラム作成処理のフローチ
ャート、第10図はプログラム実行処理のフローチャー
ト、第11図はプロセススイッチ処理のフローチャート、
第12図はプログラム実行中にキャッシュヒット率を測定
するプロセスのフローチャート、第13図はキャッシュ制
御情報を自動調整するためのタイマ割り込み処理のフロ
ーチャート、第14図(a),(b)及び第15図(a),
(b)はマスクパターンの例とその各例における主メモ
リとキャッシュメモリとの対応を示す図である。 1……キャッシュメモリ、2……タグ生成回路、3……
ブロックアドレス生成回路、5……キャッシュ制御回
路、6……ブロック・サイズ・スケールレジスタ、7…
…ライト制御レジスタ、9……インデックス・マスクパ
ターン・レジスタ、600……主メモリ、604……キャッシ
ュ内レジスタ、807……制御情報格納テーブル、810……
キャッシュ属性テーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮尾 健 茨城県日立市大みか町5丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 山口 伸一朗 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (56)参考文献 特開 平1−121956(JP,A) 特開 昭62−42247(JP,A) 特開 昭60−175143(JP,A)
Claims (5)
- 【請求項1】ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンをプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するためのマスクパターンを複
数種類格納したテーブルと、 該テーブルに格納されたマスクパターンの1つを前記制
御レジスタに設定してプログラムのテスト処理を実行し
たときの前記カウント手段に記憶された値を読み出し、
その値から得た今回ヒット率が前回前記制御レジスタに
設定したマスクパターンにより得た前回ヒット率より大
きいときにはさらに前記テーブルより新しいマスクパタ
ーンを取り出して前記制御レジスタに設定して前記プロ
グラムのテスト処理を繰り返し、前記今回ヒット率が前
記前回ヒット率より小さいときは前回のマスクパターン
を前記制御レジスタに設定して前記プログラムのテスト
処理を終了する自動設定手段と を備えたことを特徴とする計算機システム。 - 【請求項2】ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及びオンキャッシュ
するか否かを示す信号からなる制御情報をプログラムか
ら可変設定可能な制御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御する制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えたことを特徴とする計算機システム。 - 【請求項3】ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを示すマスクパターン及び先読みブロック
数からなる制御情報をプログラムから可変設定可能な制
御レジスタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのリードアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに、当該アクセス
データを含む主メモリ上のブロックを前記データ記憶部
へコピーし、さらに前記制御レジスタに設定された先読
みブロック数に相当する個数のブロックを前記コピーさ
れたブロックに続いて主メモリから読み出し、前記デー
タ記憶部へコピーするように制御する制御手段と、 プログラム実行中のメモリアクセス回路とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えたことを特徴とする計算機システム。 - 【請求項4】ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 オンキャッシュするか否かを示す信号及び先読みブロッ
ク数からなる制御情報をプログラムから可変設定可能な
制御レジスタと、 アクセスされた主メモリアドレスのコピーが前記データ
記憶部に存在するか否かをチェックするヒットチェック
手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えたことを特徴とする計算機システム。 - 【請求項5】ブロックアドレスと各ブロックの中に存在
するデータを示すタグとから成るディレクトリと、 該ディレクトリの内容に対応した主メモリアドレスのデ
ータのコピーを格納するデータ記憶部と、 アクセスされた主メモリのどのビットを用いて前記ブロ
ックアドレスを生成し且つどのビットを用いて前記タグ
を生成するかを指定するマスクパターンと、オンキャッ
シュするか否かを示す信号と、先読みブロック数とから
なる制御情報をプログラムから可変設定可能な制御レジ
スタと、 該制御レジスタに設定されたマスクパターンを用い、前
記アクセスされた主メモリアドレスから前記ブロックア
ドレス及びタグアドレスを生成する生成回路と、 該生成回路により生成されたブロックアドレス及びタグ
により、アクセスされた主メモリアドレスのコピーが前
記データ記憶部に存在するか否かをチェックするヒット
チェック手段と、 主メモリへのライトアクセス時に前記ヒットチェック手
段によりミスヒットが検出されたときに主メモリへ当該
データを書き込み、さらに前記制御レジスタにオンキャ
ッシュ信号が設定されていれば前記データを前記データ
記憶部へも書き込み、キャッシュオフ信号が設定されて
いれば前記データが前記データ記憶部へ書き込まれない
ように制御し、主メモリへのリードアクセス時に前記ヒ
ットチェック手段によりミスヒットが検出されたとき
に、当該アクセスデータを含む主メモリ上のブロックを
前記データ記憶部へコピーし、さらに前記制御レジスタ
に設定された先読みブロック数に相当する個数のブロッ
クを前記コピーされたブロックに続いて主メモリから読
み出し、前記データ記憶部へコピーするように制御する
制御手段と、 プログラム実行中のメモリアクセス回数とそのアクセス
時に前記ヒットチェック手段により検出されたヒットま
たはミスヒットの回数とをカウントし記憶するカウント
手段と、 前記制御レジスタに設定するための制御情報を複数組格
納したテーブルと、 該テーブルに格納された制御情報の1組を前記制御レジ
スタに設定してプログラムのテスト処理を実行したとき
の前記カウント手段に記憶された値を読み出し、その値
から得た今回ヒット率が前回前記制御レジスタに設定し
た制御情報により得た前回ヒット率より大きいときには
さらに前記テーブルより新しい制御情報の1組を取り出
して前記制御レジスタに設定して前記プログラムのテス
ト処理を繰り返し、前記今回ヒット率が前記前回ヒット
率より小さいときは前回の制御情報を前記制御レジスタ
に設定して前記プログラムのテスト処理を終了する自動
設定手段と を備えたことを特徴とする計算機システム。
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 JPH0495145A (ja) | 1992-03-27 |
JPH0754482B2 true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200719B2 (en) * | 2003-07-31 | 2007-04-03 | Freescale Semiconductor, Inc. | Prefetch control in a data processing system |
US10672099B2 (en) * | 2018-06-01 | 2020-06-02 | Apple Inc. | Memory cache management for graphics processing |
JP7294891B2 (ja) * | 2019-05-31 | 2023-06-20 | ファナック株式会社 | 加工制御システム及び加工システム |
Family Cites Families (3)
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 | キヤツシユメモリ制御方式 |
JPH06100980B2 (ja) * | 1987-11-05 | 1994-12-12 | 三菱電機株式会社 | キャッシュメモリ |
-
1990
- 1990-08-07 JP JP2207585A patent/JPH0754482B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0495145A (ja) | 1992-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7917701B2 (en) | Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation | |
EP0301211B1 (en) | Cache management for a peripheral data storage subsystem | |
US5600817A (en) | Asynchronous read-ahead disk caching using multiple disk I/O processes adn dynamically variable prefetch length | |
US5630097A (en) | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses | |
US6484239B1 (en) | Prefetch queue | |
JP3618385B2 (ja) | データをバッファリングする方法およびそのシステム | |
US5233702A (en) | Cache miss facility with stored sequences for data fetching | |
US5134563A (en) | Sequentially processing data in a cached data storage system | |
KR100810781B1 (ko) | 캐시 메모리를 구비한 데이터 프로세서 | |
JPH06100981B2 (ja) | 記憶階層制御方式 | |
JPH0364890B2 (ja) | ||
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
EP0077453A2 (en) | Storage subsystems with arrangements for limiting data occupancy in caches thereof | |
JPH0512116A (ja) | キヤツシユメモリ制御装置 | |
JPH0588888A (ja) | アドレス生成機構及びデータの事前取り出し方法 | |
JP2008502069A (ja) | メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法 | |
JPH11316711A (ja) | メモリシステムトランザクションの特性の統計値を推定する方法 | |
JPH07104816B2 (ja) | コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 | |
US6922753B2 (en) | Cache prefetching | |
TWI260503B (en) | Memory accelerator for arm processors | |
JPH0754482B2 (ja) | 計算機システム | |
CN1165000C (zh) | 动态索引的微处理器高速缓存方法 | |
JPS60214060A (ja) | 外部記憶キヤツシユ制御方式 | |
EP0058846B1 (en) | Multiprocessing system with variably shared paging storage | |
JPH08328959A (ja) | ディスクキャッシュ制御装置 |