JPH04239352A - 適応セグメント制御方法及び装置 - Google Patents
適応セグメント制御方法及び装置Info
- Publication number
- JPH04239352A JPH04239352A JP3027277A JP2727791A JPH04239352A JP H04239352 A JPH04239352 A JP H04239352A JP 3027277 A JP3027277 A JP 3027277A JP 2727791 A JP2727791 A JP 2727791A JP H04239352 A JPH04239352 A JP H04239352A
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- control method
- adaptive segment
- segment control
- segmentation level
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はマルチ・セグメント・キ
ャッシュ・メモリ用の適応セグメント制御方法及び装置
に関する。特に、本発明はホスト・コンピュータから受
け取るメモリ命令に基づき、仮想キャッシュ・テーブル
上のヒット比シミュレーションを実行する適応セグメン
ト制御方法及び装置に関する。
ャッシュ・メモリ用の適応セグメント制御方法及び装置
に関する。特に、本発明はホスト・コンピュータから受
け取るメモリ命令に基づき、仮想キャッシュ・テーブル
上のヒット比シミュレーションを実行する適応セグメン
ト制御方法及び装置に関する。
【0002】
【従来の技術】キャッシュ・メモリはコンピュータ記憶
装置内で用いられる。例えば、磁気記憶装置では、キャ
ッシュ・メモリが磁気ディスク・ドライブの動作を制御
するディスク制御装置内に配置される。このディスク制
御装置は、例えばスモール・コンピュータ・システム・
インタフェース(SCSI)のようなデータ・バスを介
してホスト・コンピュータに接続するように構成されて
いる。このディスク制御装置は、ホスト・コンピュータ
が発生したメモリ命令即ちコマンドに応答して磁気ディ
スク・ドライブとホスト・コンピュータとの間でデータ
を授受する。
装置内で用いられる。例えば、磁気記憶装置では、キャ
ッシュ・メモリが磁気ディスク・ドライブの動作を制御
するディスク制御装置内に配置される。このディスク制
御装置は、例えばスモール・コンピュータ・システム・
インタフェース(SCSI)のようなデータ・バスを介
してホスト・コンピュータに接続するように構成されて
いる。このディスク制御装置は、ホスト・コンピュータ
が発生したメモリ命令即ちコマンドに応答して磁気ディ
スク・ドライブとホスト・コンピュータとの間でデータ
を授受する。
【0003】磁気ディスク・ドライブは回転磁気ディス
ク面にデータを記憶する。この回転磁気ディスク面には
、全体が同心円状の複数のデータ・トラックが設けられ
ている。各データ・トラックは複数のセクタ即ちブロッ
クに分割される。典型的な一磁気ディスク・ドライブで
は、各データ・トラツクが35ブロックに分割され、各
ブロックには512バイトのデータが記憶される。
ク面にデータを記憶する。この回転磁気ディスク面には
、全体が同心円状の複数のデータ・トラックが設けられ
ている。各データ・トラックは複数のセクタ即ちブロッ
クに分割される。典型的な一磁気ディスク・ドライブで
は、各データ・トラツクが35ブロックに分割され、各
ブロックには512バイトのデータが記憶される。
【0004】メモリ命令はディスク制御装置に磁気ディ
スク・ドライブ内で読み出し/書き込み動作を開始させ
る。各メモリ命令には、スタート・アドレス、ブロック
長(所要ブロック数)、及び読み出し又は書き込みのよ
うな命令形式が含まれる。例えば、ディスク制御装置が
読み出し命令を受け取ると、ディスク制御装置は磁気デ
ィスク・ドライブに信号を送出して開始アドレスから始
まる所要ブロック数を読み出すようにする。ディスク制
御装置は、データを読み出した後、このデータをホスト
・コンピュータに転送する。
スク・ドライブ内で読み出し/書き込み動作を開始させ
る。各メモリ命令には、スタート・アドレス、ブロック
長(所要ブロック数)、及び読み出し又は書き込みのよ
うな命令形式が含まれる。例えば、ディスク制御装置が
読み出し命令を受け取ると、ディスク制御装置は磁気デ
ィスク・ドライブに信号を送出して開始アドレスから始
まる所要ブロック数を読み出すようにする。ディスク制
御装置は、データを読み出した後、このデータをホスト
・コンピュータに転送する。
【0005】キャッシュ・メモリは、ディスク制御装置
が磁気ディスクにデータを読み出しに行くのに必要とす
る回数を減少させることにより、記憶装置のパフォーマ
ンスを改善する。このキャッシュ・メモリはランダム・
アクセス・メモリ(RAM)が最後にアクセスしたデー
タを格納する。ホスト・コンピュータが特定のソフトウ
エア・アプリケーションを実行する場合に、ディスク制
御装置が見る入出力パターンは反復する傾向がある。従
って、磁気ディスク・ドライブから得たデータが再び用
いられる可能性は高い。ホスト・コンピュータがキャッ
シュ・メモリ内にあるデータの読み出しを要求した場合
に、ディスク制御装置は磁気ディスク・ドライブから情
報を読み出す必要はなく、キャッシュ・メモリから直接
その情報を読み出せばよい。キャッシュ・メモリはデー
タのアクセス時間が磁気ディスク・ドライブよりもはる
かに速いので、キャッシュ・メモリから直接データを読
み出すと、ホスト・コンピュータから見たデータのアク
セス時間がかなり減少する。
が磁気ディスクにデータを読み出しに行くのに必要とす
る回数を減少させることにより、記憶装置のパフォーマ
ンスを改善する。このキャッシュ・メモリはランダム・
アクセス・メモリ(RAM)が最後にアクセスしたデー
タを格納する。ホスト・コンピュータが特定のソフトウ
エア・アプリケーションを実行する場合に、ディスク制
御装置が見る入出力パターンは反復する傾向がある。従
って、磁気ディスク・ドライブから得たデータが再び用
いられる可能性は高い。ホスト・コンピュータがキャッ
シュ・メモリ内にあるデータの読み出しを要求した場合
に、ディスク制御装置は磁気ディスク・ドライブから情
報を読み出す必要はなく、キャッシュ・メモリから直接
その情報を読み出せばよい。キャッシュ・メモリはデー
タのアクセス時間が磁気ディスク・ドライブよりもはる
かに速いので、キャッシュ・メモリから直接データを読
み出すと、ホスト・コンピュータから見たデータのアク
セス時間がかなり減少する。
【0006】キャッシュ・メモリは、キャッシュ・バッ
ファ及びキャッシュ・テーブルを有する。一実施例にお
いて、キャッシュ・バッファは最大192Kバイトのデ
ータを格納することができる。キャッシュ・テーブルは
、磁気ディスクから読み出したデータの開始アドレスを
記録することによりキャッシュ・バッファに存在するデ
ータのリストを保持している。ディスク制御装置は、キ
ャッシュ・メモリに存在するアドレスに対応する書き込
み命令を受け取ると、キャッシュ・テーブルを更新して
キャッシュ・バッファ内にはデータが存在することを以
後表示しないようにする。これは、キャッシュ・バッフ
ァから古いデータを読み出すのを阻止する。
ファ及びキャッシュ・テーブルを有する。一実施例にお
いて、キャッシュ・バッファは最大192Kバイトのデ
ータを格納することができる。キャッシュ・テーブルは
、磁気ディスクから読み出したデータの開始アドレスを
記録することによりキャッシュ・バッファに存在するデ
ータのリストを保持している。ディスク制御装置は、キ
ャッシュ・メモリに存在するアドレスに対応する書き込
み命令を受け取ると、キャッシュ・テーブルを更新して
キャッシュ・バッファ内にはデータが存在することを以
後表示しないようにする。これは、キャッシュ・バッフ
ァから古いデータを読み出すのを阻止する。
【0007】ディスク制御装置は、読み出し命令を受け
取ると、キャッシュ・テーブルを参照して要求されたデ
ータがキャッシュ・バッファにあるか否かを判断する。 このデータがキャッシュ・バッファに存在しないときは
(キャッシュ・ミス)、ディスク制御装置は磁気ディス
クからデータを読み出し、このデータをホスト・コンピ
ュータに転送する。更に、ディスク制御装置はキャッシ
ュ・バッファにデータをロードして、キャッシュ・テー
ブルも更新する。キャッシュ・ヒットは、ホスト・コン
ピュータが要求したデータがキャッシュ・バッファに存
在しているときに発生する。この場合に、ディスク制御
装置はキャッシュ・バッファから情報を直接読み出し、
このデータをホスト・コンピュータに転送する。キャッ
シュ・ヒットとキャッシュ・ミスとの比は、キャッシュ
・メモリ・パフォーマンスの評価基準である。
取ると、キャッシュ・テーブルを参照して要求されたデ
ータがキャッシュ・バッファにあるか否かを判断する。 このデータがキャッシュ・バッファに存在しないときは
(キャッシュ・ミス)、ディスク制御装置は磁気ディス
クからデータを読み出し、このデータをホスト・コンピ
ュータに転送する。更に、ディスク制御装置はキャッシ
ュ・バッファにデータをロードして、キャッシュ・テー
ブルも更新する。キャッシュ・ヒットは、ホスト・コン
ピュータが要求したデータがキャッシュ・バッファに存
在しているときに発生する。この場合に、ディスク制御
装置はキャッシュ・バッファから情報を直接読み出し、
このデータをホスト・コンピュータに転送する。キャッ
シュ・ヒットとキャッシュ・ミスとの比は、キャッシュ
・メモリ・パフォーマンスの評価基準である。
【0008】マルチ・セグメント・キャッシュにおいて
、キャッシュ・バッファは複数のセグメントに分割され
る。キャッシュ・メモリにおけるセグメント数はセグメ
ンテーション・レベルとして知られている。キャッシュ
・バッファをセグメント化することにより、制御装置は
全セグメントを満たすために余分なブロックを読み出す
ことにより、「ルック・アヘッド」処理を実行すること
が可能となる。メモリ処理は反復的な、かつある程度予
測可能なパターンを形成する傾向があるので、ホスト・
コンピュータは連続する次のブロックからデータを要求
する可能性がある。セグメンテーション・レベルは各セ
グメントにおけるブロック数を決定し、従って読み出さ
れる余分なブロック数を決定する。セグメンテーション
・レベルが大きければ、それだけ各セグメントにおける
ブロック数が小さくなる。キャッシュ・メモリのパフォ
ーマンスは、読み出し動作中に読み出される余分なブロ
ック数を制御することにより、制御することができる。
、キャッシュ・バッファは複数のセグメントに分割され
る。キャッシュ・メモリにおけるセグメント数はセグメ
ンテーション・レベルとして知られている。キャッシュ
・バッファをセグメント化することにより、制御装置は
全セグメントを満たすために余分なブロックを読み出す
ことにより、「ルック・アヘッド」処理を実行すること
が可能となる。メモリ処理は反復的な、かつある程度予
測可能なパターンを形成する傾向があるので、ホスト・
コンピュータは連続する次のブロックからデータを要求
する可能性がある。セグメンテーション・レベルは各セ
グメントにおけるブロック数を決定し、従って読み出さ
れる余分なブロック数を決定する。セグメンテーション
・レベルが大きければ、それだけ各セグメントにおける
ブロック数が小さくなる。キャッシュ・メモリのパフォ
ーマンスは、読み出し動作中に読み出される余分なブロ
ック数を制御することにより、制御することができる。
【0009】
【発明が解決しようとする課題】最適なセグメンテーシ
ョン・レベルはホスト・コンピュータ上で実行する特定
のソフトウエア・アプリケーションによる。ホスト・コ
ンピュータは種々のアプリケーション間で頻繁に切換え
をするので、選択したセグメンテーション・レベルが広
範囲のアプリケーションにわたって所望のパフォーマン
スを達成することができない。従って、適用セグメント
制御を有するキャッシュが望ましい。
ョン・レベルはホスト・コンピュータ上で実行する特定
のソフトウエア・アプリケーションによる。ホスト・コ
ンピュータは種々のアプリケーション間で頻繁に切換え
をするので、選択したセグメンテーション・レベルが広
範囲のアプリケーションにわたって所望のパフォーマン
スを達成することができない。従って、適用セグメント
制御を有するキャッシュが望ましい。
【0010】発見的なプログラミングはセグメンテーシ
ョン・レベルを制御する一方法である。統計的なパフォ
ーマンス分析はキャッシュ・メモリ上で実行され、これ
らの結果は一組の規則に適用される。この規則に適用さ
れる変数には、特に各読み出しにおいてキャッシュ・ヒ
ットであるブロック数と、キャッシュ・ミスであるブロ
ック数とが含まれる。しかし、過去の統計的なパフォー
マンスに好ましいセグメンテーション・レベルを予測す
るのに十分な情報は存在しないだけである。規則には多
くの例外があるので、発見的なプログラミングでは信頼
できる正確な結果が得られない。従って、セグメント制
御を改善したマルチ・セグメント・キャッシュに関する
要求が依然としてある。
ョン・レベルを制御する一方法である。統計的なパフォ
ーマンス分析はキャッシュ・メモリ上で実行され、これ
らの結果は一組の規則に適用される。この規則に適用さ
れる変数には、特に各読み出しにおいてキャッシュ・ヒ
ットであるブロック数と、キャッシュ・ミスであるブロ
ック数とが含まれる。しかし、過去の統計的なパフォー
マンスに好ましいセグメンテーション・レベルを予測す
るのに十分な情報は存在しないだけである。規則には多
くの例外があるので、発見的なプログラミングでは信頼
できる正確な結果が得られない。従って、セグメント制
御を改善したマルチ・セグメント・キャッシュに関する
要求が依然としてある。
【0011】
【課題を解決するための手段】本発明は、記憶装置にお
けるマルチ・セグメント・キャッシュのパフォーマンス
を制御する適応セグメント制御である。適応セグメント
制御はホスト・コンピュータが送出し、かつ記憶装置が
受け取るメモリ命令を監視する。このマルチ・セグメン
ト・キャッシュは選択された初期の作業セグメンテーシ
ョン・レベルで動作するように構成される。複数の仮想
キャッシュ・テーブルは監視したりメモリ命令を受け取
るように接続されると共に、一方のテーブルが作業セグ
メンテーション・レベルで動作するように構築され、他
方のテーブルは異なるセグメンテーション・レベルで動
作する。監視したりメモリ命令は、それぞれのセグメン
テーション・レベルによりいずれの仮想キャッシュ・テ
ーブルが最大ヒット比を得るかを判断するために用いら
れる。作業セグメンテーション・レベルは、最大ヒット
比シミュレーションを有する仮想キャッシュ・テーブル
のセグメンテーション・レベルに等しくなるように調整
される。
けるマルチ・セグメント・キャッシュのパフォーマンス
を制御する適応セグメント制御である。適応セグメント
制御はホスト・コンピュータが送出し、かつ記憶装置が
受け取るメモリ命令を監視する。このマルチ・セグメン
ト・キャッシュは選択された初期の作業セグメンテーシ
ョン・レベルで動作するように構成される。複数の仮想
キャッシュ・テーブルは監視したりメモリ命令を受け取
るように接続されると共に、一方のテーブルが作業セグ
メンテーション・レベルで動作するように構築され、他
方のテーブルは異なるセグメンテーション・レベルで動
作する。監視したりメモリ命令は、それぞれのセグメン
テーション・レベルによりいずれの仮想キャッシュ・テ
ーブルが最大ヒット比を得るかを判断するために用いら
れる。作業セグメンテーション・レベルは、最大ヒット
比シミュレーションを有する仮想キャッシュ・テーブル
のセグメンテーション・レベルに等しくなるように調整
される。
【0012】本発明により任意数の仮想キャッシュ・テ
ーブルを用いることができる。一実施例では、適応セグ
メント制御が第1及び第2の仮想キャッシュ・テーブル
を備えている。第1の仮想キャッシュ・テーブルは、選
択した作業セグメンテーション・レベルで動作するよう
にセグメント化される。第2の仮想キャッシュ・テーブ
ルは、作業セグメンテーション・レベルと異なる選択し
た試験セグメンテーション・レベルで動作するようにセ
グメント化される。この試験セグメンテーション・レベ
ルは、選択可能な全てのセグメンテーション・レベルを
含むルックアップ・テーブル内のエントリ間でインデッ
クスをすることにより選択される。好ましい実施例では
、選択可能なセグメンテーション・レベルは1から16
までの範囲にある。
ーブルを用いることができる。一実施例では、適応セグ
メント制御が第1及び第2の仮想キャッシュ・テーブル
を備えている。第1の仮想キャッシュ・テーブルは、選
択した作業セグメンテーション・レベルで動作するよう
にセグメント化される。第2の仮想キャッシュ・テーブ
ルは、作業セグメンテーション・レベルと異なる選択し
た試験セグメンテーション・レベルで動作するようにセ
グメント化される。この試験セグメンテーション・レベ
ルは、選択可能な全てのセグメンテーション・レベルを
含むルックアップ・テーブル内のエントリ間でインデッ
クスをすることにより選択される。好ましい実施例では
、選択可能なセグメンテーション・レベルは1から16
までの範囲にある。
【0013】一実施例において、適応セグメント制御は
記憶装置が受け取ったメモリ命令を格納する命令キュー
を備えている。命令キューに格納された命令は現在のも
のであり、かつホスト・コンピュータが実行しているア
プリケーションを表わしていることを確保するために、
格納した命令数が30命令のようなキュー限界値に等し
くなると、命令キューはフラシュされる。命令キューが
フラシュされると、適応セグメント制御は記憶装置に転
送される命令の格納を続ける。
記憶装置が受け取ったメモリ命令を格納する命令キュー
を備えている。命令キューに格納された命令は現在のも
のであり、かつホスト・コンピュータが実行しているア
プリケーションを表わしていることを確保するために、
格納した命令数が30命令のようなキュー限界値に等し
くなると、命令キューはフラシュされる。命令キューが
フラシュされると、適応セグメント制御は記憶装置に転
送される命令の格納を続ける。
【0014】ヒット比シミュレーションは、命令キュー
に格納された選択数の複数命令を実行することにより第
1及び第2の仮想キャッシュ・テーブル上で実行される
。記憶装置は、命令キューにおける全ての命令をシミュ
レーションしたときにアイドル状態に戻り、かつ次に受
け取った命令を命令キューに格納した後、ヒット比シミ
ュレーションを再開する。この処理は、選択した命令数
を第1及び第2の仮想キャッシュ・テーブル上で実行さ
れるまで、反復される。一実施例では、ヒット比シミュ
レーションにおいて100命令が模擬される。
に格納された選択数の複数命令を実行することにより第
1及び第2の仮想キャッシュ・テーブル上で実行される
。記憶装置は、命令キューにおける全ての命令をシミュ
レーションしたときにアイドル状態に戻り、かつ次に受
け取った命令を命令キューに格納した後、ヒット比シミ
ュレーションを再開する。この処理は、選択した命令数
を第1及び第2の仮想キャッシュ・テーブル上で実行さ
れるまで、反復される。一実施例では、ヒット比シミュ
レーションにおいて100命令が模擬される。
【0015】ヒット比値はヒット比シミュレーション中
で第1及び第2の仮想キャッシュ・テーブル用に保持さ
れる。このヒット比値は、格納された選択数の複数命令
を実行した後に比較される。第2の仮想キャッシュ・テ
ーブルのヒット比値が第1の仮想キャッシュ・テーブル
のヒット比値より大きいときは、作業セグメンテーショ
ン・レベルが試験セグメンテーション・レベルに等しく
なるように調整される。キャッシュ・ミスは新しい作業
セグメンテーション・レベルで動作するように再構築さ
れる。その後、適応セグメント制御装置は、新しい作業
セグメンテーション・レベルによりヒット比シミュレー
ションを再開し、新しいセグメンテーション・レベルを
選択する。
で第1及び第2の仮想キャッシュ・テーブル用に保持さ
れる。このヒット比値は、格納された選択数の複数命令
を実行した後に比較される。第2の仮想キャッシュ・テ
ーブルのヒット比値が第1の仮想キャッシュ・テーブル
のヒット比値より大きいときは、作業セグメンテーショ
ン・レベルが試験セグメンテーション・レベルに等しく
なるように調整される。キャッシュ・ミスは新しい作業
セグメンテーション・レベルで動作するように再構築さ
れる。その後、適応セグメント制御装置は、新しい作業
セグメンテーション・レベルによりヒット比シミュレー
ションを再開し、新しいセグメンテーション・レベルを
選択する。
【0016】一実施例において、ヒット比シミュレーシ
ョンは、記憶装置がアイドル状態にあるときにのみ実行
される。記憶装置がホスト・コンピュータからメモリ命
令を受け取ると、要求したメモリ処理を実行している間
はビジー状態で動作する。格納した個々の命令のシミュ
レーションは、ホスト・コンピュータから命令を受け取
ると中断される。これは、ヒット比シミュレーションを
メモリ処理による干渉を防止する。メモリ処理の終了後
、記憶装置はアイドル状態に戻る。その後、中断された
シミュレーションはメモリ処理の終了により再開される
。従って、適応セグメント制御により付加されるオバー
ヘッドは、記憶装置がアイドル状態のときにのみ実行さ
れるので、最小となる。
ョンは、記憶装置がアイドル状態にあるときにのみ実行
される。記憶装置がホスト・コンピュータからメモリ命
令を受け取ると、要求したメモリ処理を実行している間
はビジー状態で動作する。格納した個々の命令のシミュ
レーションは、ホスト・コンピュータから命令を受け取
ると中断される。これは、ヒット比シミュレーションを
メモリ処理による干渉を防止する。メモリ処理の終了後
、記憶装置はアイドル状態に戻る。その後、中断された
シミュレーションはメモリ処理の終了により再開される
。従って、適応セグメント制御により付加されるオバー
ヘッドは、記憶装置がアイドル状態のときにのみ実行さ
れるので、最小となる。
【0017】本発明の適応セグメント制御は、ホスト・
コンピュータから受け取った命令パターンを解析するこ
とにより、マルチ・セグメント・キャッシュのパフォー
マンスを改善するものである。命令パターンはホスト・
コンピュータが実行しているアプリケーションを表わし
ているので、適応セグメント制御はキャッシュのセグメ
ンテーション・レベルを適応させて現在アプリケーショ
ンに合わせる。従って、本発明は広い範囲のソフトウエ
ア・アプリケーションにおいて正確であると共に、信頼
性のある適応セグメント制御を提供する。
コンピュータから受け取った命令パターンを解析するこ
とにより、マルチ・セグメント・キャッシュのパフォー
マンスを改善するものである。命令パターンはホスト・
コンピュータが実行しているアプリケーションを表わし
ているので、適応セグメント制御はキャッシュのセグメ
ンテーション・レベルを適応させて現在アプリケーショ
ンに合わせる。従って、本発明は広い範囲のソフトウエ
ア・アプリケーションにおいて正確であると共に、信頼
性のある適応セグメント制御を提供する。
【0018】
【実施例】本発明は、メモリ制御装置においてマルチ・
セグメント・キャッシュ用の適応セグメント制御装置(
ASCU)である。ASCUはヒット比シミュレーショ
ンを仮想キャッシュ・テーブル上で実行して、接続され
ているホスト・コンピュータ上で実行中のソフトウエア
・アプリケーションに一致するキャッシュ・メモリ・セ
グメンテーション・レベルを判断する。ヒット比シミュ
レーションはホスト・コンピュータから受け取った実際
の命令を仮想キャッシュ・テーブル上で実行する。
セグメント・キャッシュ用の適応セグメント制御装置(
ASCU)である。ASCUはヒット比シミュレーショ
ンを仮想キャッシュ・テーブル上で実行して、接続され
ているホスト・コンピュータ上で実行中のソフトウエア
・アプリケーションに一致するキャッシュ・メモリ・セ
グメンテーション・レベルを判断する。ヒット比シミュ
レーションはホスト・コンピュータから受け取った実際
の命令を仮想キャッシュ・テーブル上で実行する。
【0019】第1図はホスト・コンピュータ4と記憶装
置6との間に接続されたメモリ制御装置2のブロック図
である。メモリ制御装置2及び記憶装置6はホスト・コ
ンピュータ4用の記憶装置を形成している。ホスト・コ
ンピュータ4はメモリ命令をデータ・バス8を介してメ
モリ制御装置2に転送する。データ・バス8は、スモー
ル・コンピュータ・システム・インタフェース(SCS
I)のような公知の任意の通信インタフェースであれば
よい。メモリ制御装置2は、読み出し専用メモリ(RO
M)11、ランダム・アクセス・メモリ(RAM)12
、キャッシュ・メモリ13及び適応セグメント制御装置
(ASCU)14を有する。ROM11はデータ及びア
ドレス・ライン15を介してマイクロプロセッサ10に
接続されている。ROM11は、ホスト・コンピュータ
4から受け取ったメモリ命令に応答してメモリ処理を実
行するように、マイクロプロセッサ10を動作させるコ
ントローラ・ソフトウエアを保持している。RAM12
はデータ及びアドレス・ライン16を介してマイクロプ
ロセッサ10に接続されている。キャッシュ・メモリ1
3はデータ及びアドレス・ライン17を介してマイクロ
プロセッサ10に接続されている。適応セグメント制御
装置14はデータ及びアドレス・ライン18を介してマ
イクロプロセッサ10に接続されている。コントローラ
・ソフトウエアはマイクロプロセッサ10を動作させて
キャッシュ・メモリ13及び適応セグメント制御装置1
4の動作を制御する。
置6との間に接続されたメモリ制御装置2のブロック図
である。メモリ制御装置2及び記憶装置6はホスト・コ
ンピュータ4用の記憶装置を形成している。ホスト・コ
ンピュータ4はメモリ命令をデータ・バス8を介してメ
モリ制御装置2に転送する。データ・バス8は、スモー
ル・コンピュータ・システム・インタフェース(SCS
I)のような公知の任意の通信インタフェースであれば
よい。メモリ制御装置2は、読み出し専用メモリ(RO
M)11、ランダム・アクセス・メモリ(RAM)12
、キャッシュ・メモリ13及び適応セグメント制御装置
(ASCU)14を有する。ROM11はデータ及びア
ドレス・ライン15を介してマイクロプロセッサ10に
接続されている。ROM11は、ホスト・コンピュータ
4から受け取ったメモリ命令に応答してメモリ処理を実
行するように、マイクロプロセッサ10を動作させるコ
ントローラ・ソフトウエアを保持している。RAM12
はデータ及びアドレス・ライン16を介してマイクロプ
ロセッサ10に接続されている。キャッシュ・メモリ1
3はデータ及びアドレス・ライン17を介してマイクロ
プロセッサ10に接続されている。適応セグメント制御
装置14はデータ及びアドレス・ライン18を介してマ
イクロプロセッサ10に接続されている。コントローラ
・ソフトウエアはマイクロプロセッサ10を動作させて
キャッシュ・メモリ13及び適応セグメント制御装置1
4の動作を制御する。
【0020】記憶装置6は制御ライン19及びデータ・
バス20を介してマイクロプロセッサ10に接続されて
いる。マイクロプロセッサ10はホスト・コンピュータ
4から受け取るメモリ命令に応答してメモリ処理を実行
するように記憶装置6を動作させる。読み出し動作では
、ホスト・コンピュータ4が読み出し命令を発生し、マ
イクロプロセッサ10がこの読み出し命令をデコードす
る。マイクロプロセッサ10は制御ライン19を介して
記憶装置6に制御信号を転送し、これに要求したデータ
を読み出させる。マイクロプロセッサ10はデータ・バ
ス20を介してデータを受け取り、データ・バス8を介
してホスト・コンピュータ4にデータを戻す。同様に、
書き込み動作では、ホスト・コンピュータ4が書き込み
命令を発生し、この書き込み命令がマイクロプロセッサ
10によりデコードされる。マイクロプロセッサ10は
書き込みデータをデータ・バス20を介して記憶装置6
に転送する。マイクロプロセッサ10は、制御ライン1
9を介して記憶装置6を動作させて記憶装置6内の所望
格納位置にデータを書き込ませる。
バス20を介してマイクロプロセッサ10に接続されて
いる。マイクロプロセッサ10はホスト・コンピュータ
4から受け取るメモリ命令に応答してメモリ処理を実行
するように記憶装置6を動作させる。読み出し動作では
、ホスト・コンピュータ4が読み出し命令を発生し、マ
イクロプロセッサ10がこの読み出し命令をデコードす
る。マイクロプロセッサ10は制御ライン19を介して
記憶装置6に制御信号を転送し、これに要求したデータ
を読み出させる。マイクロプロセッサ10はデータ・バ
ス20を介してデータを受け取り、データ・バス8を介
してホスト・コンピュータ4にデータを戻す。同様に、
書き込み動作では、ホスト・コンピュータ4が書き込み
命令を発生し、この書き込み命令がマイクロプロセッサ
10によりデコードされる。マイクロプロセッサ10は
書き込みデータをデータ・バス20を介して記憶装置6
に転送する。マイクロプロセッサ10は、制御ライン1
9を介して記憶装置6を動作させて記憶装置6内の所望
格納位置にデータを書き込ませる。
【0021】第2図はメモリ制御装置2のブロック図で
ある。メモリ制御装置2はキャッシュ・メモリ13及び
適応セグメント制御装置14を有する。キャッシュ・メ
モリ13は記憶装置6からアクセスした最新のデータを
格納する。ホスト・コンピュータ4が発生した命令パタ
ーンは、それが特定のソフトウエア・アプリケーション
を実行している間に反復させる傾向があるので、キャッ
シュ・メモリ13に格納されたデータはホスト・コンピ
ュータが再び用いる可能性がある。このデータがホスト
・コンピュータ4から再び要求されると、このデータを
記憶装置6からでなく、キャッシュ・メモリ13から直
接読み出される。データは、記憶装置6から読み出すよ
りもはるかに速くキャッシュ・メモリ13から読み出す
ことができるので、キャッシュ・メモリは平均データ・
アクセス時間を減少させることにより、記憶装置のパフ
ォーマンスをかなり増加させることができる。
ある。メモリ制御装置2はキャッシュ・メモリ13及び
適応セグメント制御装置14を有する。キャッシュ・メ
モリ13は記憶装置6からアクセスした最新のデータを
格納する。ホスト・コンピュータ4が発生した命令パタ
ーンは、それが特定のソフトウエア・アプリケーション
を実行している間に反復させる傾向があるので、キャッ
シュ・メモリ13に格納されたデータはホスト・コンピ
ュータが再び用いる可能性がある。このデータがホスト
・コンピュータ4から再び要求されると、このデータを
記憶装置6からでなく、キャッシュ・メモリ13から直
接読み出される。データは、記憶装置6から読み出すよ
りもはるかに速くキャッシュ・メモリ13から読み出す
ことができるので、キャッシュ・メモリは平均データ・
アクセス時間を減少させることにより、記憶装置のパフ
ォーマンスをかなり増加させることができる。
【0022】キャッシュ・メモリ13はキャッシュ・バ
ッファ26及びキャッシュ・テーブル28を有する。キ
ャッシュ・バッファ26は記憶装置6から読み出したデ
ータを格納する複数の格納位置40及び42を有する。 一実施例において、キャッシュ・バッファ26は最大1
92Kバイトまでのデータを格納することができる。キ
ャッシュ・メモリ13はマルチ・セグメント・キャッシ
ュである。換言すれば、キャッシュ・バッファ26は複
数のセグメントに分割される。セグメント数はセグメン
テーション・レベルとして知られている。例えば第2図
に示す実施例では、キャッシュ・メモリ13が2のセグ
メンテーション・レベルを有する。キャッシュ・バッフ
ァ26はセグメント30及び32に分割される。セグメ
ント30は格納位置40を有する。同様に、セグメント
32は格納位置42を有する。キャッシュ・メモリ13
は任意のセグメンテーション・レベルにより構成され得
る。
ッファ26及びキャッシュ・テーブル28を有する。キ
ャッシュ・バッファ26は記憶装置6から読み出したデ
ータを格納する複数の格納位置40及び42を有する。 一実施例において、キャッシュ・バッファ26は最大1
92Kバイトまでのデータを格納することができる。キ
ャッシュ・メモリ13はマルチ・セグメント・キャッシ
ュである。換言すれば、キャッシュ・バッファ26は複
数のセグメントに分割される。セグメント数はセグメン
テーション・レベルとして知られている。例えば第2図
に示す実施例では、キャッシュ・メモリ13が2のセグ
メンテーション・レベルを有する。キャッシュ・バッフ
ァ26はセグメント30及び32に分割される。セグメ
ント30は格納位置40を有する。同様に、セグメント
32は格納位置42を有する。キャッシュ・メモリ13
は任意のセグメンテーション・レベルにより構成され得
る。
【0023】記憶装置6(第1図に示す)は複数のブロ
ック即ちセクタ内のデータを読み出す。一実施例では、
ブロックは512バイトのデータを有する。ホスト・コ
ンピュータ4が発生する読み出し命令には、開始アドレ
スと、要求したブロック数が含まれる。マイクロプロセ
ッサ10は、各読み出し命令に応答して、記憶装置6か
ら要求した数の複数のブロックのデータ、及び付加的な
、かつ十分な複数のブロックを開始アドレスから開始し
て読み出し、キャッシュ・バッファ26の全セグメント
を満たす。キャッシュ・バッファ26の各格納位置40
及び42には1ブロックのデータを格納することができ
る。セグメンテーション・レベルは各セグメントにおけ
るブロック数を判断する。付加的な複数ブロックの読み
出しは「ルック・アヘッド」動作として知られている。 ホスト・コンピュータ4により実行される特定のアプリ
ケーションはあるパターンの読み出し及び書き込み命令
を形成する傾向があるので、キャッシュ・バッファ26
に格納された付加的な複数ブロックは比較的に高い使用
確率を有する。従って、ルック・アヘッド処理は、記憶
装置の平均データ・アクセス時間を更に減少させる。
ック即ちセクタ内のデータを読み出す。一実施例では、
ブロックは512バイトのデータを有する。ホスト・コ
ンピュータ4が発生する読み出し命令には、開始アドレ
スと、要求したブロック数が含まれる。マイクロプロセ
ッサ10は、各読み出し命令に応答して、記憶装置6か
ら要求した数の複数のブロックのデータ、及び付加的な
、かつ十分な複数のブロックを開始アドレスから開始し
て読み出し、キャッシュ・バッファ26の全セグメント
を満たす。キャッシュ・バッファ26の各格納位置40
及び42には1ブロックのデータを格納することができ
る。セグメンテーション・レベルは各セグメントにおけ
るブロック数を判断する。付加的な複数ブロックの読み
出しは「ルック・アヘッド」動作として知られている。 ホスト・コンピュータ4により実行される特定のアプリ
ケーションはあるパターンの読み出し及び書き込み命令
を形成する傾向があるので、キャッシュ・バッファ26
に格納された付加的な複数ブロックは比較的に高い使用
確率を有する。従って、ルック・アヘッド処理は、記憶
装置の平均データ・アクセス時間を更に減少させる。
【0024】キャッシュ・テーブル28はキャッシュ・
バッファ26に存在するデータのリストを保持している
。キャッシュ・テーブル28はキャッシュ・バッファ2
6に格納した各セグメントのデータの開始アドレスを格
納する複数の格納位置44を有する。更に、キャッシュ
・テーブル28はキャッシュ・バッファ26における各
セグメント内に複数ブロックのデータの番号も格納する
。マイクロプロセッサ10は、各セグメント(又はセグ
メンテーション・レベル)における開始アドレス及びブ
ロック番号を調べることにより、特定のブロックのデー
タがキャッシュ・バッファ26に存在するか否かをキャ
ッシュ・テーブル28から判断することができる。セグ
メンテーション・レベルが2の場合は、キャッシュ・テ
ーブル28は格納位置44に2つの開始アドレスを有す
る。セグメンテーション・レベルが3の場合に(図示な
し)、キャッシュ・テーブル28は3つの開始アドレス
を有する。
バッファ26に存在するデータのリストを保持している
。キャッシュ・テーブル28はキャッシュ・バッファ2
6に格納した各セグメントのデータの開始アドレスを格
納する複数の格納位置44を有する。更に、キャッシュ
・テーブル28はキャッシュ・バッファ26における各
セグメント内に複数ブロックのデータの番号も格納する
。マイクロプロセッサ10は、各セグメント(又はセグ
メンテーション・レベル)における開始アドレス及びブ
ロック番号を調べることにより、特定のブロックのデー
タがキャッシュ・バッファ26に存在するか否かをキャ
ッシュ・テーブル28から判断することができる。セグ
メンテーション・レベルが2の場合は、キャッシュ・テ
ーブル28は格納位置44に2つの開始アドレスを有す
る。セグメンテーション・レベルが3の場合に(図示な
し)、キャッシュ・テーブル28は3つの開始アドレス
を有する。
【0025】マイクロプロセッサ10は、読み出し命令
を受け取ると、キャッシュ・テーブル28を参照して要
求したデータが既にキャッシュ・バッファ26に存在す
るか否かを判断する。要求したデータがキャッシュ・バ
ッファ26内に存在するのであれば(キャッシュ・ヒッ
ト)、メモリ制御装置2はキャッシュ・バッファ26か
ら要求したデータを読み出し、このデータをデータ・バ
ス8を介してホスト・コンピュータ4に転送する。キャ
ッシュ・テーブル28が要求したデータがキャッシュ・
バッファ26内に存在しないことを示したときは(キャ
ッシュ・ミス)、マイクロプロセッサ10は要求したデ
ータをデータ・バス20を介して記憶装置6を読み出す
。マイクロプロセッサ10は、データを読み出した後、
キャッシュ・バッファ26にデータを格納し、かつキャ
ッシュ・テーブル28を更新する。
を受け取ると、キャッシュ・テーブル28を参照して要
求したデータが既にキャッシュ・バッファ26に存在す
るか否かを判断する。要求したデータがキャッシュ・バ
ッファ26内に存在するのであれば(キャッシュ・ヒッ
ト)、メモリ制御装置2はキャッシュ・バッファ26か
ら要求したデータを読み出し、このデータをデータ・バ
ス8を介してホスト・コンピュータ4に転送する。キャ
ッシュ・テーブル28が要求したデータがキャッシュ・
バッファ26内に存在しないことを示したときは(キャ
ッシュ・ミス)、マイクロプロセッサ10は要求したデ
ータをデータ・バス20を介して記憶装置6を読み出す
。マイクロプロセッサ10は、データを読み出した後、
キャッシュ・バッファ26にデータを格納し、かつキャ
ッシュ・テーブル28を更新する。
【0026】第2図に示す実施例の場合、第1の読み出
し命令は、この命令により指定された開始アドレスから
開始して、キャッシュ・バッファ26のセグメント30
を記憶装置6からの複数ブロックのデータにより満たす
。第2の読み出し命令は、この第2の読み出し命令によ
り指定された開始アドレスから開始して、セグメント3
2を満たす。各読み出し命令のための開始アドレスは、
キャッシュ・テーブル28内にセグメンテーション・レ
ベルと共に格納されている。
し命令は、この命令により指定された開始アドレスから
開始して、キャッシュ・バッファ26のセグメント30
を記憶装置6からの複数ブロックのデータにより満たす
。第2の読み出し命令は、この第2の読み出し命令によ
り指定された開始アドレスから開始して、セグメント3
2を満たす。各読み出し命令のための開始アドレスは、
キャッシュ・テーブル28内にセグメンテーション・レ
ベルと共に格納されている。
【0027】適応セグメント制御装置14はキャッシュ
・バッファ26のセグメンテーション・レベルをダイナ
ミックに調整することによりキャッシュ・メモリのパフ
ォーマンスを改善する。最適セグメンテーション・レベ
ルは、ホスト・コンピュータ4が実行中の特定のソフト
ウエア・アプリケーションに従って変化する。ホスト・
コンピュータ4は種々のソフトウエア・アプリケーショ
ンを実行するので、選択したセグメンテーション・レベ
ルは全てのアプリケーションにとり最適とならないこと
がある。適応セグメント制御装置14はマイクロプロセ
ッサ10が受け取る命令を監視して、キャッシュ・メモ
リ13のセグメンテーション・レベルを適応させてホス
ト・コンピュータ4から受け取る命令のパターンに合わ
せる。
・バッファ26のセグメンテーション・レベルをダイナ
ミックに調整することによりキャッシュ・メモリのパフ
ォーマンスを改善する。最適セグメンテーション・レベ
ルは、ホスト・コンピュータ4が実行中の特定のソフト
ウエア・アプリケーションに従って変化する。ホスト・
コンピュータ4は種々のソフトウエア・アプリケーショ
ンを実行するので、選択したセグメンテーション・レベ
ルは全てのアプリケーションにとり最適とならないこと
がある。適応セグメント制御装置14はマイクロプロセ
ッサ10が受け取る命令を監視して、キャッシュ・メモ
リ13のセグメンテーション・レベルを適応させてホス
ト・コンピュータ4から受け取る命令のパターンに合わ
せる。
【0028】適応セグメント制御装置14は命令キュー
50及び仮想キャッシュ・テーブル52及び54を備え
ている。命令キュー50はそれぞれホスト・コンピュー
タ4から受け取った命令を格納する複数の格納位置56
を備えている。一実施例において、命令キュー50は連
続して受け取る三十(30)命令まで格納することがで
きる。メモリ制御装置2がアイドル状態にあるときは、
適応セグメント制御装置14は格納した命令に基づいて
、ヒット比シミュレーションを仮想キャッシュ・テーブ
ル52及び54上で実行する。ヒット比シミュレーショ
ンの結果は、キャッシュ・メモリ13の作業セグメンテ
ーション・レベルを調整するために用いられてホスト・
コンピュータ4が実行中の現在ソフトウエア・アプリケ
ーションを合せる。
50及び仮想キャッシュ・テーブル52及び54を備え
ている。命令キュー50はそれぞれホスト・コンピュー
タ4から受け取った命令を格納する複数の格納位置56
を備えている。一実施例において、命令キュー50は連
続して受け取る三十(30)命令まで格納することがで
きる。メモリ制御装置2がアイドル状態にあるときは、
適応セグメント制御装置14は格納した命令に基づいて
、ヒット比シミュレーションを仮想キャッシュ・テーブ
ル52及び54上で実行する。ヒット比シミュレーショ
ンの結果は、キャッシュ・メモリ13の作業セグメンテ
ーション・レベルを調整するために用いられてホスト・
コンピュータ4が実行中の現在ソフトウエア・アプリケ
ーションを合せる。
【0029】仮想キャッシュ・テーブル52は、ヒット
比シミュレーションを実行する前に、キャッシュ・メモ
リ13のセグメンテーション・レベルにセグメント化さ
れる。第2図に示した実施例では、キャッシュ・メモリ
13の作業セグメンテーション・レベルが2に等しい。 従って、仮想キャッシュ・テーブル52は、2つの開始
アドレスを格納するための2つの格納位置60を有する
。同様に、仮想キャッシュ・テーブル54は開始アドレ
スを格納する複数の格納位置62を有する。仮想キャッ
シュ・テーブル54は、作業セグメンテーション・レベ
ルと異なる選択した試験セグメンテーション・レベルに
セグメント化される。
比シミュレーションを実行する前に、キャッシュ・メモ
リ13のセグメンテーション・レベルにセグメント化さ
れる。第2図に示した実施例では、キャッシュ・メモリ
13の作業セグメンテーション・レベルが2に等しい。 従って、仮想キャッシュ・テーブル52は、2つの開始
アドレスを格納するための2つの格納位置60を有する
。同様に、仮想キャッシュ・テーブル54は開始アドレ
スを格納する複数の格納位置62を有する。仮想キャッ
シュ・テーブル54は、作業セグメンテーション・レベ
ルと異なる選択した試験セグメンテーション・レベルに
セグメント化される。
【0030】ヒット比シミュレーションは、選択した数
の格納命令(シミュレーション・カウント)を仮想キャ
ッシュ・テーブル52及び54上で模擬することにより
実行される。これらの命令の模擬をしている間に、適応
セグメント制御装置14はキャッシュ・ビット数のカウ
ント及び各仮想キャッシュ・テーブル52及び54につ
いてのキャッシュ・ミス数を保持する。仮想キャッシュ
・テーブル52及び54は異なったセグメンテーション
・レベルにセグメント化されているので、命令を模擬し
た後では、各テーブルのヒット比(キャッシュ・ヒット
/キャッシュ・ミス)が異なったものとなる。シミュレ
ーション・カウント後に仮想キャッシュ・テーブル54
のヒット比が仮想キャッシュ・テーブル52より大きい
ときは、キャッシュ・メモリ13の作業セグメンテーシ
ョン・レベルが試験セグメンテーション・レベルと等し
くなるように調整される。ヒット比シミュレーションが
終了すると、仮想キャッシュ・テーブル52は新しいセ
グメンテーション・レベルに再構築され、仮想キャッシ
ュ・テーブル54も新しい試験セグメンテーション・レ
ベルに再構築される。次いで、このヒット比シミュレー
ションが新しい格納した現在命令セットにより反復され
る。
の格納命令(シミュレーション・カウント)を仮想キャ
ッシュ・テーブル52及び54上で模擬することにより
実行される。これらの命令の模擬をしている間に、適応
セグメント制御装置14はキャッシュ・ビット数のカウ
ント及び各仮想キャッシュ・テーブル52及び54につ
いてのキャッシュ・ミス数を保持する。仮想キャッシュ
・テーブル52及び54は異なったセグメンテーション
・レベルにセグメント化されているので、命令を模擬し
た後では、各テーブルのヒット比(キャッシュ・ヒット
/キャッシュ・ミス)が異なったものとなる。シミュレ
ーション・カウント後に仮想キャッシュ・テーブル54
のヒット比が仮想キャッシュ・テーブル52より大きい
ときは、キャッシュ・メモリ13の作業セグメンテーシ
ョン・レベルが試験セグメンテーション・レベルと等し
くなるように調整される。ヒット比シミュレーションが
終了すると、仮想キャッシュ・テーブル52は新しいセ
グメンテーション・レベルに再構築され、仮想キャッシ
ュ・テーブル54も新しい試験セグメンテーション・レ
ベルに再構築される。次いで、このヒット比シミュレー
ションが新しい格納した現在命令セットにより反復され
る。
【0031】試験セグメンテーション・レベルはルック
アップ・テーブル(図示なし)から選択される。このル
ックアップ・テーブルには選択可能な全てのセグメンテ
ーション・レベルが含まれている。一実施例において、
選択可能なセグメンテーション・レベルは1から16ま
での範囲にある。適応セグメント制御装置14はルック
アップ・テーブルにおける要素間で一つのヒット比シミ
ュレーションから次のものへインデックスを行なう。エ
ントリは、予め選択された順序により、又はランダムな
順序によりインデックスされてもよい。
アップ・テーブル(図示なし)から選択される。このル
ックアップ・テーブルには選択可能な全てのセグメンテ
ーション・レベルが含まれている。一実施例において、
選択可能なセグメンテーション・レベルは1から16ま
での範囲にある。適応セグメント制御装置14はルック
アップ・テーブルにおける要素間で一つのヒット比シミ
ュレーションから次のものへインデックスを行なう。エ
ントリは、予め選択された順序により、又はランダムな
順序によりインデックスされてもよい。
【0032】他の実施例において、適応セグメント制御
装置14は破線64により示すように、複数の仮想キャ
ッシュ・テーブルを備えている。この実施例では、各テ
ーブルは異なるセグメンテーション・レベルに構築され
る。シミュレーションが終了すると、キャッシュ・メモ
リ13は最高のヒット比を有する仮想キャッシュ・テー
ブルのセグメンテーション・レベルに等しいセグメンテ
ーション・レベルに再構築される。
装置14は破線64により示すように、複数の仮想キャ
ッシュ・テーブルを備えている。この実施例では、各テ
ーブルは異なるセグメンテーション・レベルに構築され
る。シミュレーションが終了すると、キャッシュ・メモ
リ13は最高のヒット比を有する仮想キャッシュ・テー
ブルのセグメンテーション・レベルに等しいセグメンテ
ーション・レベルに再構築される。
【0033】第3a図及び第3b図は、接合させると、
メモリ制御装置2の動作を詳細に示す一つのフローチャ
ートを形成する。ステップ70において、データ・バス
8を介してホスト・コンピュータ4から一つの命令を受
け取る。ステップ72において、マイクロプロセッサ1
0はこの命令を開始アドレス、ブロック長及び命令型式
にデコードする。異なる型式の命令には、とりわけ読み
出し命令及び書き込み命令が含まれている。
メモリ制御装置2の動作を詳細に示す一つのフローチャ
ートを形成する。ステップ70において、データ・バス
8を介してホスト・コンピュータ4から一つの命令を受
け取る。ステップ72において、マイクロプロセッサ1
0はこの命令を開始アドレス、ブロック長及び命令型式
にデコードする。異なる型式の命令には、とりわけ読み
出し命令及び書き込み命令が含まれている。
【0034】ステップ74において、適応セグメント制
御装置14は、命令キュー50が一杯であるか否かを判
断する。ノーのときは、ステップ76において受け取っ
た命令を命令キュー50に格納する。次にステップ78
において、マイクロプロセッサ10は受け取った命令の
実行をメモリ処理を実行することにより行なう。マイク
ロプロセッサ10は、受け取った命令を実行していると
きの適応セグメント制御装置14の動作による干渉を防
止するために、ビジー状態(通常動作)で動作する。
御装置14は、命令キュー50が一杯であるか否かを判
断する。ノーのときは、ステップ76において受け取っ
た命令を命令キュー50に格納する。次にステップ78
において、マイクロプロセッサ10は受け取った命令の
実行をメモリ処理を実行することにより行なう。マイク
ロプロセッサ10は、受け取った命令を実行していると
きの適応セグメント制御装置14の動作による干渉を防
止するために、ビジー状態(通常動作)で動作する。
【0035】ステップ74において命令キュー50がフ
ル(一杯の)状態にあるときは、適応セグメント制御装
置14はステップ80において命令キューをフラシュす
る(流す)。好ましいものとして、個々の命令は、マイ
クロプロセッサ10がアイドル状態にあるときに、実行
される。マイクロプロセッサ10がビジー状態にあり、
命令シミュレーションを処理できないときは、命令キュ
ー50はキュー限界まで満たされることになる。命令キ
ュー50がフル状態にあるときに命令キュー50をフラ
シュすることにより、適応セグメント制御装置14は、
命令キュー50に格納されている命令が現在のものであ
り、かつホスト・コンピュータ4が実行中の特定のアプ
リケーションを表示するものであることを確認する。
ル(一杯の)状態にあるときは、適応セグメント制御装
置14はステップ80において命令キューをフラシュす
る(流す)。好ましいものとして、個々の命令は、マイ
クロプロセッサ10がアイドル状態にあるときに、実行
される。マイクロプロセッサ10がビジー状態にあり、
命令シミュレーションを処理できないときは、命令キュ
ー50はキュー限界まで満たされることになる。命令キ
ュー50がフル状態にあるときに命令キュー50をフラ
シュすることにより、適応セグメント制御装置14は、
命令キュー50に格納されている命令が現在のものであ
り、かつホスト・コンピュータ4が実行中の特定のアプ
リケーションを表示するものであることを確認する。
【0036】命令キュー50をフラシュした後、マイク
ロプロセッサ10は受け取った命令をステップ78にお
いて実行する。選択した数の命令(待機カウント)を続
いて受け取って命令キュー50を再度満たし始めるまで
、適応セグメント制御装置14は待機をする。これは、
マイクロプロセッサ10を相対的な不動作状態に復帰さ
せてから受け取った命令を格納して更に命令キュー50
における命令が現在であることを確認させる。マイクロ
プロセッサ10を相対的な不動作状態に復帰させる。
ロプロセッサ10は受け取った命令をステップ78にお
いて実行する。選択した数の命令(待機カウント)を続
いて受け取って命令キュー50を再度満たし始めるまで
、適応セグメント制御装置14は待機をする。これは、
マイクロプロセッサ10を相対的な不動作状態に復帰さ
せてから受け取った命令を格納して更に命令キュー50
における命令が現在であることを確認させる。マイクロ
プロセッサ10を相対的な不動作状態に復帰させる。
【0037】ステップ82において、適応セグメント制
御装置14はステップ90において命令シミュレーショ
ンが前に中断されたか否かを判断する。ノーのときは、
マイクロプロセッサ10はステップ84においてアイド
ル・ループに戻って、アイドル状態で動作する。マイク
ロプロセッサ10は、アイドル・ループにあるときにホ
スト・コンピュータ4から命令を受け取ると、ステップ
72に戻り、受け取った命令のデコードをする。
御装置14はステップ90において命令シミュレーショ
ンが前に中断されたか否かを判断する。ノーのときは、
マイクロプロセッサ10はステップ84においてアイド
ル・ループに戻って、アイドル状態で動作する。マイク
ロプロセッサ10は、アイドル・ループにあるときにホ
スト・コンピュータ4から命令を受け取ると、ステップ
72に戻り、受け取った命令のデコードをする。
【0038】ホスト・コンピュータ4から命令を受け取
っていないときは、適応セグメント制御装置14は、命
令キュー50にシミュレーションする命令があるか否か
を判断する(ステップ86)。命令キュー50が空のと
きは、マイクロプロセッサ10はステップ84において
アイドル・ループに戻り、ホスト・コンピュータ4から
の命令を待機する。命令キュー50が空でなく、かつマ
イクロプロセッサ10がアイドル状態にあるときは、適
応セグメント制御装置14はキューに格納された命令の
うちの一つを仮想キャッシュ・テーブル52及び54上
でシミュレーションする(ステップ88)。適応セグメ
ント制御装置14は一つの命令のシミュレーションをし
た後、仮想キャッシュ・テーブル52及び54に関する
シミュレーション結果のキャッシュ・ヒット及びキャッ
シュ・ミス情報を格納する(ステップ89)。マイクロ
プロセッサ10はステップ86に戻り、命令キュー50
に残っている命令が未だあるか否かを判断する。イエス
のときは、ステップ88において次の命令のシミュレー
ションを行う。この処理はシミュレーションした命令数
が例えば100のようなシミュレーション・カウントに
等しくなるまで反復される。
っていないときは、適応セグメント制御装置14は、命
令キュー50にシミュレーションする命令があるか否か
を判断する(ステップ86)。命令キュー50が空のと
きは、マイクロプロセッサ10はステップ84において
アイドル・ループに戻り、ホスト・コンピュータ4から
の命令を待機する。命令キュー50が空でなく、かつマ
イクロプロセッサ10がアイドル状態にあるときは、適
応セグメント制御装置14はキューに格納された命令の
うちの一つを仮想キャッシュ・テーブル52及び54上
でシミュレーションする(ステップ88)。適応セグメ
ント制御装置14は一つの命令のシミュレーションをし
た後、仮想キャッシュ・テーブル52及び54に関する
シミュレーション結果のキャッシュ・ヒット及びキャッ
シュ・ミス情報を格納する(ステップ89)。マイクロ
プロセッサ10はステップ86に戻り、命令キュー50
に残っている命令が未だあるか否かを判断する。イエス
のときは、ステップ88において次の命令のシミュレー
ションを行う。この処理はシミュレーションした命令数
が例えば100のようなシミュレーション・カウントに
等しくなるまで反復される。
【0039】マイクロプロセッサ10は格納した命令の
シミュレーション中にホスト・コンピュータ4から命令
を受け取ると、ステップ90においてシミュレーション
を中断する。適応セグメント制御装置14はシミュレー
ションの状態をセーブすることにより、受け取った命令
を実行した後、そのシミュレーションを再開することが
できる。マイクロプロセッサ10はステップ72に戻り
、受け取った命令をデコードして実行する。適応セグメ
ント制御装置14は、ステップ78において命令を実行
した後、ステップ82において、シミュレーションが中
断された否かを判断する。ステップ90において格納さ
れたシミュレーションの状態は、ステップ92において
復帰され、ステップ88においてシミュレーションが再
開される。このようにして、通常の命令実行には最高の
優先度が与えられるので、応答時間は適応セグメント制
御装置14の動作により影響されることはない。適応セ
グメント制御装置14のシミュレーションにより付加さ
れたオバーヘッドは最小化される。
シミュレーション中にホスト・コンピュータ4から命令
を受け取ると、ステップ90においてシミュレーション
を中断する。適応セグメント制御装置14はシミュレー
ションの状態をセーブすることにより、受け取った命令
を実行した後、そのシミュレーションを再開することが
できる。マイクロプロセッサ10はステップ72に戻り
、受け取った命令をデコードして実行する。適応セグメ
ント制御装置14は、ステップ78において命令を実行
した後、ステップ82において、シミュレーションが中
断された否かを判断する。ステップ90において格納さ
れたシミュレーションの状態は、ステップ92において
復帰され、ステップ88においてシミュレーションが再
開される。このようにして、通常の命令実行には最高の
優先度が与えられるので、応答時間は適応セグメント制
御装置14の動作により影響されることはない。適応セ
グメント制御装置14のシミュレーションにより付加さ
れたオバーヘッドは最小化される。
【0040】第4図は適応セグメント制御装置14が実
行するシミュレーション・ルーチンの動作を詳細に説明
するフローチャートである。ステップ100において、
キャッシュ・メモリ13は選択された作業セグメンテー
ション・レベルにセグメント化される。更に、仮想キャ
ッシュ・テーブル52も作業セグメンテーション・レベ
ルにセグメント化される(ステップ102)。ステップ
104において、適応セグメント制御装置14はルック
アップ・テーブルから試験セグメンテーション・レベル
を選択する。ステップ106において、仮想キャッシュ
・テーブル54は試験セグメンテーション・レベルにセ
グメント化される。次に、適応セグメント制御装置14
は100命令のシミュレーションを仮想キャッシュ・テ
ーブル52及び54上で行なう(ステップ108)。
行するシミュレーション・ルーチンの動作を詳細に説明
するフローチャートである。ステップ100において、
キャッシュ・メモリ13は選択された作業セグメンテー
ション・レベルにセグメント化される。更に、仮想キャ
ッシュ・テーブル52も作業セグメンテーション・レベ
ルにセグメント化される(ステップ102)。ステップ
104において、適応セグメント制御装置14はルック
アップ・テーブルから試験セグメンテーション・レベル
を選択する。ステップ106において、仮想キャッシュ
・テーブル54は試験セグメンテーション・レベルにセ
グメント化される。次に、適応セグメント制御装置14
は100命令のシミュレーションを仮想キャッシュ・テ
ーブル52及び54上で行なう(ステップ108)。
【0041】これらの命令は、命令キュー50から格納
した命令を除去すること、かつ当該命令を仮想キャッシ
ュ・テーブル52及び54上で処理することによりシミ
ュレーションを行なう。例えば、適応セグメント制御装
置14は、読み出し命令により、各仮想キャッシュ・テ
ーブル52及び54において要求したブロックのデータ
のうちのいくつがキャッシュ・ヒットとなり、またいく
つがキャッシュ・ミスとなったかを判断する。更に、書
き込み命令も仮想キャッシュ・テーブル52及び54上
で処理される。各キャッシュ・テーブルにおいて書き込
み命令により書き込まれたアドレスはフラシュされる。 キャッシュ・ヒット数及びキャッシュ・ミス数は100
命令のシミュレーション・カウントについて総和が取ら
れる。
した命令を除去すること、かつ当該命令を仮想キャッシ
ュ・テーブル52及び54上で処理することによりシミ
ュレーションを行なう。例えば、適応セグメント制御装
置14は、読み出し命令により、各仮想キャッシュ・テ
ーブル52及び54において要求したブロックのデータ
のうちのいくつがキャッシュ・ヒットとなり、またいく
つがキャッシュ・ミスとなったかを判断する。更に、書
き込み命令も仮想キャッシュ・テーブル52及び54上
で処理される。各キャッシュ・テーブルにおいて書き込
み命令により書き込まれたアドレスはフラシュされる。 キャッシュ・ヒット数及びキャッシュ・ミス数は100
命令のシミュレーション・カウントについて総和が取ら
れる。
【0042】シミュレーションが終了すると、ステップ
110において仮想キャッシュ・テーブル52のキャッ
シュ・ヒット対キャッシュ・ミスの比率(ヒット比値H
R1)が仮想キャッシュ・テーブル54のもの(ヒット
比値HR2)と比較される。ヒット比値HR2がヒット
比値HR1より大きいときは、ステップ112において
作業セグメンテーション・レベルが試験セグメンテーシ
ョン・レベルと等しくするように調整される。次いで、
このシミュレーション・ルーチンはステップ100及び
102に戻り、キャッシュ・メモリ13及び仮想キャッ
シュ・テーブル52を新しい作業セグメンテーション・
レベルにセグメント化させる。新しい試験セグメンテー
ション・レベルはステップ104においてルックアップ
・テーブルから選択される。仮想キャッシュ・テーブル
54はステップ106において新しい試験セグメンテー
ション・レベルに再構築される。
110において仮想キャッシュ・テーブル52のキャッ
シュ・ヒット対キャッシュ・ミスの比率(ヒット比値H
R1)が仮想キャッシュ・テーブル54のもの(ヒット
比値HR2)と比較される。ヒット比値HR2がヒット
比値HR1より大きいときは、ステップ112において
作業セグメンテーション・レベルが試験セグメンテーシ
ョン・レベルと等しくするように調整される。次いで、
このシミュレーション・ルーチンはステップ100及び
102に戻り、キャッシュ・メモリ13及び仮想キャッ
シュ・テーブル52を新しい作業セグメンテーション・
レベルにセグメント化させる。新しい試験セグメンテー
ション・レベルはステップ104においてルックアップ
・テーブルから選択される。仮想キャッシュ・テーブル
54はステップ106において新しい試験セグメンテー
ション・レベルに再構築される。
【0043】ヒット比値HR2がヒット比値HR1より
大きくないときは、作業セグメンテーション・レベルは
変更されない。キャッシュ・メモリ13及び仮想キャッ
シュ・テーブル52は前の作業セグメンテーション・レ
ベルに留まる。新しい試験セグメンテーション・レベル
はステップ104においてルックアップ・テーブルから
選択され、また仮想キャッシュ・テーブル54はステッ
プ106において新しい試験セグメンテーション・レベ
ルに再構築される。
大きくないときは、作業セグメンテーション・レベルは
変更されない。キャッシュ・メモリ13及び仮想キャッ
シュ・テーブル52は前の作業セグメンテーション・レ
ベルに留まる。新しい試験セグメンテーション・レベル
はステップ104においてルックアップ・テーブルから
選択され、また仮想キャッシュ・テーブル54はステッ
プ106において新しい試験セグメンテーション・レベ
ルに再構築される。
【0044】第4図に示すシミュレーション・サブルー
チンが連続的に反復されるので、ホスト・コンピュータ
4が発生した命令パターンが変化すれば、本発明の適応
セグメント制御は作業セグメンテーション・レベルを調
整することになる。その結果、ホスト・コンピュータ4
が実行中の特定のソフトウエア・アプリケーションにも
係わらず、キャッシュ・メモリ13のパフォーマンスが
改善される。更に、本発明は予め選択した統計的な規則
よりも実際に、現在命令上でのシミュレーション方法を
用いるので、本発明の適応セグメント制御は発見的なプ
ログラムのような他のセグメント制御方法より正確であ
り、かつ信頼性もある。更に、シミュレーションはメモ
リ制御装置がアイドル状態にあるときに実行され、かつ
ホスト・コンピュータからのアテンションを必要としな
いので、本発明により付加されたオバーヘッドは最小の
ものとなる。
チンが連続的に反復されるので、ホスト・コンピュータ
4が発生した命令パターンが変化すれば、本発明の適応
セグメント制御は作業セグメンテーション・レベルを調
整することになる。その結果、ホスト・コンピュータ4
が実行中の特定のソフトウエア・アプリケーションにも
係わらず、キャッシュ・メモリ13のパフォーマンスが
改善される。更に、本発明は予め選択した統計的な規則
よりも実際に、現在命令上でのシミュレーション方法を
用いるので、本発明の適応セグメント制御は発見的なプ
ログラムのような他のセグメント制御方法より正確であ
り、かつ信頼性もある。更に、シミュレーションはメモ
リ制御装置がアイドル状態にあるときに実行され、かつ
ホスト・コンピュータからのアテンションを必要としな
いので、本発明により付加されたオバーヘッドは最小の
ものとなる。
【0045】本発明は好ましい実施例を参照して説明さ
れたが、当該技術分野に習熟する者は、本発明の精神及
び範囲を逸脱することなく、形式及び詳細な点で変更が
可能なことを確認するであろう。
れたが、当該技術分野に習熟する者は、本発明の精神及
び範囲を逸脱することなく、形式及び詳細な点で変更が
可能なことを確認するであろう。
【図1】第1図は本発明によってホスト・コンピュータ
と記憶装置との間に接続されたメモリ制御装置のブロッ
ク図。
と記憶装置との間に接続されたメモリ制御装置のブロッ
ク図。
【図2】第2図は本発明によって適応セグメント制御装
置を含む第1図に示すメモリ制御装置のブロック図。
置を含む第1図に示すメモリ制御装置のブロック図。
【図3】第3a図は第1図及び第2図に示すメモリ制御
装置の動作を示すフローチャートを形成する図。
装置の動作を示すフローチャートを形成する図。
【図4】第3b図は第1図及び第2図に示すメモリ制御
装置の動作を示すフローチャートを形成する図。
装置の動作を示すフローチャートを形成する図。
【図5】第4図は第2図に示す適応セグメント制御が実
行するシミュレーション・ルーチンのフローチャート。
行するシミュレーション・ルーチンのフローチャート。
2 メモリ制御装置
10 マイクロプロセッサ
11 ROM
12 RAM
13 キャッシュ・メモリ
Claims (41)
- 【請求項1】 記憶装置におけるキャッシュのパフォ
ーマンスを制御する適応セグメント制御方法において、
前記方法は、選択した作業セグメンテーション・レベル
で動作するように前記キャッシュをセグメント化するス
テップと、ホスト・コンピュータが送出し、かつ前記記
憶装置が受け取る複数の命令を監視するステップと、一
方のテーブルが前記作業セグメンテーション・レベルで
動作し、かつ他方のテーブルが異なるセグメンテーショ
ン・レベルで動作するように、複数の仮想キャッシュ・
テーブルをセグメント化するステップと、監視される命
令の関数としていずれの仮想キャッシュ・テーブルがそ
のセグメンテーション・レベルにより最高のヒット比シ
ミュレーションを獲得するのかを判断するステップと、
最高のヒット比を有する前記仮想キャッシュ・テーブル
のセグメンテーション・レベルと等しくするように前記
作業セグメンテーション・レベルを調整するステップと
を備えていることを特徴とする適応セグメント制御方法
。 - 【請求項2】 請求項1記載の適応セグメント制御方
法において、前記複数の命令を監視するステップは命令
キューに複数の命令を格納するステップを備えているこ
とを特徴とする適応セグメント制御方法。 - 【請求項3】 請求項2記載の適応セグメント制御方
法において、前記複数の命令を格納するステップは連続
的に受け取る複数の命令を格納するステップを備えてい
ることを特徴とする適応セグメント制御方法。 - 【請求項4】 請求項2記載の適応セグメント制御方
法において、更に、格納した命令数がキュー限界に等し
くなった後は前記命令キューをフラシュするステップと
、前記命令キューをフラシュするステップを実行した後
は前記複数の命令を格納するステップを反復するステッ
プとを備えていることを特徴とする適応セグメント制御
方法。 - 【請求項5】 請求項4記載の適応セグメント制御方
法において、更に、前記ホスト・コンピュータから続い
て受け取った命令数が待機カウントに等しくなるまで、
前記複数の命令を格納するステップを反復させるように
待機するステップを備えていることを特徴とする適応セ
グメント制御方法。 - 【請求項6】 請求項2記載の適応セグメント制御方
法において、前記命令を格納するステップは、各命令用
の開始アドレスを格納するステップと、各命令が必要と
し、前記開始アドレスから開始する連続的なブロック数
を表わしたブロック長を格納するステップと、各命令に
ついての命令型式を格納するステップとを備えているこ
とを特徴とする適応セグメント制御方法。 - 【請求項7】 請求項1記載の適応セグメント制御方
法において、前記複数の仮想キャッシュ・テーブルをセ
グメント化するステップは、選択した作業セグメンテー
ション・レベルで動作するように第1の仮想キャッシュ
・テーブルをセグメント化するステップと、選択した作
業セグメンテーション・レベルで動作するように第2の
仮想キャッシュ・テーブルをセグメント化すると共に、
前記試験セグメンテーション・レベルが前記作業セグメ
ンテーション・レベルと異なっているステップとを備え
ていることを特徴とする適応セグメント制御方法。 - 【請求項8】 請求項7記載の適応セグメント制御方
法において、前記第2の仮想キャッシュ・テーブルをセ
グメント化するステップはルックアップ・テーブル内の
エントリから試験セグメンテーション・レベルを選択す
るステップを備え、前記テーブルは選択可能な全てのセ
グメンテーション・レベルを備えていることを特徴とす
る適応セグメント制御方法。 - 【請求項9】 請求項8記載の適応セグメント制御方
法において、前記試験セグメンテーション・レベルを選
択するステップはルックアップ・テーブル内のエントリ
間でインデックスするステップを備えていることを特徴
とする適応セグメント制御方法。 - 【請求項10】 請求項8記載の適応セグメント制御
方法において、前記選択可能なセグメンテーション・レ
ベルは1から16までの範囲にあることを特徴とする適
応セグメント制御方法。 - 【請求項11】 請求項7記載の適応セグメント制御
方法において、前記複数の命令を監視するステップは命
令キュー内に複数の命令を格納するステップを備え、か
ついずれの仮想キャッシュ・テーブルが前記最高のヒッ
ト比を得るものであるかを判断するステップは、前記命
令キューに格納された選択数の複数命令を実行すること
によりヒット比シミュレーションを前記第1及び第2の
仮想キャッシュ・テーブル上で実行するステップと、前
記第1及び第2の仮想キャッシュ・テーブルのために第
1及び第2のヒット比値を保持するステップと、前記格
納された選択数の複数命令を実行した後に前記第1及び
第2のヒット比値を比較するステップと、を備えている
ことを特徴とする適応セグメント制御方法。 - 【請求項12】 請求項11記載の適応セグメント制
御方法において、前記作業セグメンテーション・レベル
を調整するステップは、前記第2のヒット比値が前記第
1のヒット比値より大きいときは、前記試験セグメンテ
ーション・レベルと等しくなるように前記作業セグメン
テーション・レベルを調整するステップを備えているこ
とを特徴とする適応セグメント制御方法。 - 【請求項13】 請求項11記載の適応セグメント制
御方法において、更に、前記命令を格納するステップ、
前記第1及び第2の仮想キャッシュ・テーブルをセグメ
ント化するステップ、ヒット比シミュレーションを実行
するステップ、第1及び第2のヒット比値を保持するス
テップ、前記第1及び第2のヒット比値を比較するステ
ップ、及び前記作業セグメンテーション・レベルを調整
するステップを反復させるステップを備えていることを
特徴とする適応セグメント制御方法。 - 【請求項14】 請求項11記載の適応セグメント制
御方法において、更に、前記ホスト・コンピュータから
受け取る各命令に応答してメモリ処理を前記記憶装置上
で実行するステップと、各メモリ処理を実行している間
は前記記憶装置をビジー状態で動作させるステップと、
各メモリ処理の終了後は前記記憶装置をアイドル状態に
復帰させるステップとを備えていることを特徴とする適
応セグメント制御方法。 - 【請求項15】 請求項14記載の適応セグメント制
御方法において、前記ヒット比シミュレーションを実行
するステップは、前記記憶装置が前記アイドル状態にあ
るときに実行されると共に、前記命令キューが少なくと
も一つの格納した命令を含み、かつ前記記憶装置がアイ
ドル状態にあるときに、前記複数の格納命令のうちの一
つを前記第1及び第2の仮想キャッシュ・テーブル上で
実行するステップと、前記格納された選択数の複数命令
を実行するまで、前記格納された複数命令のうちの一つ
を実行するステップを反復させるステップと、前記命令
キューが空のときは、前記記憶装置を前記アイドル状態
に復帰させるステップとを備えていることを特徴とする
適応セグメント制御方法。 - 【請求項16】 請求項14記載の適応セグメント制
御方法において、更に、前記ホスト・コンピュータから
一つの命令の受け取りにより前記格納され複数命令のう
ちの一つを実行するステップの実行を中止させるステッ
プと、前記受け取った命令に応答してメモリ処理を実行
するステップを実行させるステップと、前記メモリ処理
の終了により前記格納した複数命令のうちの一つを実行
するステップの実行を再開させるステップとを備えてい
ることを特徴とする適応セグメント制御方法。 - 【請求項17】 ディスク・ドライブ制御装置におけ
るキャッシュのパフォーマンスを制御する制御方法にお
いて、選択した作業セグメンテーション・レベルで動作
するように前記キャッシュをセグメント化するステップ
と、ホスト・コンピュータが送出した命令を受け取るス
テップと、受け取った前記命令に応答して前記ディスク
・ドライブ制御装置によりメモリ処理を実行するステッ
プと、前記受け取った命令を命令キューに格納するステ
ップと、前記選択した作業セグメンテーション・レベル
で動作するように第1の仮想キャッシュ・テーブルをセ
グメント化するステップと、選択した試験セグメンテー
ション・レベルで動作するように第2の仮想キャッシュ
・テーブルをセグメント化すると共に、前記試験セグメ
ンテーション・レベルが前記作業セグメンテーション・
レベルと異なっているステップと、格納された選択数の
複数命令を実行することによりヒット比シミュレーショ
ンを前記第1及び第2の仮想キャッシュ・テーブル上で
実行するステップと、第1及び第2のヒット比値を前記
第1及び第2の仮想キャッシュ・テーブル用に保持する
ステップと、前記格納された選択数の複数命令を実行し
た後に前記第1及び第2のヒット比値を比較するステッ
プと、前記第2のヒット比値が前記第1のヒット比値よ
り大きいときは、前記試験セグメンテーション・レベル
と等しくなるように前記作業セグメンテーション・レベ
ルを調整するステップと、前記受け取った命令を格納す
るステップ、前記第1及び第2の仮想キャッシュ・テー
ブルをセグメント化するステップ、ヒット比シミュレー
ションを実行するステップ、第1及び第2のヒット比値
を保持するステップ、及び前記作業セグメンテーション
・レベルを調整するステップの終了後に、前記第1及び
第2のヒット比値を比較するステップを反復させるステ
ップとを備えていることを特徴とする制御方法。 - 【請求項18】 請求項17記載の制御方法において
、前記連続的に受け取った命令を格納するステップは連
続的に受け取る命令を格納するステップを備えているこ
とを特徴とする制御方法。 - 【請求項19】 請求項17記載の制御方法において
、更に、前記格納された命令数がキュー限界値に等しく
なった後は前記命令キューをフラシュするステップと、
前記命令キューをフラシュするステップを実行した後は
前記受け取った命令を格納するステップを反復させるス
テップとを備えていることを特徴とする制御方法。 - 【請求項20】 請求項19記載の制御方法において
、更に、前記ホスト・コンピュータから受け取った命令
数が待機カウントに等しくなるまで、前記受け取った命
令を格納するステップを反復させるように待機するステ
ップを備えていることを特徴とする制御方法。 - 【請求項21】 請求項17記載の制御方法において
、前記命令を受け取るステップは、各命令のための開始
アドレスを受け取るステップと、各命令により要求され
たブロック長を受け取るステップと、各命令のための命
令型式を受け取るステップとを備えていることを特徴と
する制御方法。 - 【請求項22】 請求項17記載の制御方法において
、前記第2の仮想キャッシュ・テーブルをセグメント化
するステップはルックアップ・テーブル内のエントリか
ら前記試験セグメンテーション・レベルを選択するステ
ップを備え、前記エントリは選択可能な全てのセグメン
テーション・レベルを備えていることを特徴とする制御
方法。 - 【請求項23】 請求項17記載の制御方法において
、前記試験セグメンテーション・レベルを選択するステ
ップは前記ルックアップ・テーブル内のエントリ間でイ
ンデックスを行なうステップを備えていることを特徴と
する制御方法。 - 【請求項24】 請求項22記載の制御方法において
、前記選択可能なセグメンテーション・レベルは1から
16までの範囲にあることを特徴とする制御方法。 - 【請求項25】 請求項17記載の制御方法において
、前記受け取った命令に応答してメモリ処理を実行する
ステップは、アイドル状態からディスク・ドライブ制御
装置を除外させるステップと、各メモリ処理を実行する
間は前記ディスク・ドライブ制御装置をビジー状態で動
作させるステップと、各メモリ処理の終了後は前記ディ
スク・ドライブ制御装置を前記アイドル状態に復帰させ
るステップとを備えていることを特徴とする制御方法。 - 【請求項26】 請求項25記載の制御方法において
、前記ヒット比シミュレーションを実行するステップは
、前記命令キューが少なくとも一つの格納した命令を含
み、かつ前記ディスク・ドライブ制御装置がアイドル状
態にあるときは、前記格納した複数命令のうちの一つを
前記第1及び第2の仮想キャッシュ・テーブル上で実行
するステップと、前記格納された選択数の複数命令を実
行するまで、前記格納した複数命令のうちの一つを実行
するステップを反復するステップとを備えていることを
特徴とする制御方法。 - 【請求項27】 請求項26記載の制御方法において
、前記ヒット比シミュレーションを実行するステップは
、更に、前記命令キューが空きであるときに前記記憶装
置を前記アイドル状態に復帰させるステップを備えてい
ることを特徴とする制御方法。 - 【請求項28】 請求項26記載の制御方法において
、更に、前記ホスト・コンピュータから一つの命令を受
け取った後に、前記格納した複数命令のうちの一つを実
行するステップの実行を中止させるステップと、前記受
け取った命令に応答してメモリ処理を実行するステップ
を実行させるステップと、前記メモリ処理の終了後に前
記格納した複数命令のうちの一つを実行するステップの
実行を再開させるステップとを備えていることを特徴と
する適応セグメント制御方法。 - 【請求項29】 記憶装置におけるマルチ・セグメン
ト・キャッシュのパフォーマンスを制御する適応セグメ
ント制御アッセンブリにおいて、前記適応セグメント制
御アッセンブリは、選択した作業セグメンテーション・
レベルで前記キャッシュをセグメント化する手段と、ホ
スト・コンピュータが送出し、前記記憶装置が受け取る
命令を監視する監視手段と、前記監視手段と接続された
複数の仮想キャッシュ・テーブルと、一方のテーブルが
作業セグメンテーション・レベルで動作し、他方のテー
ブルが異なるセグメンテーション・レベルで動作するよ
うに、前記複数の仮想キャッシュ・テーブルをセグメン
ト化する手段と、前記監視された命令の関数としていず
れの仮想キャッシュ・テーブルがそのセグメンテーショ
ン・レベルにより最高のヒット比を得るのかを判断する
手段と、前記最高のヒット比を有する前記仮想キャッシ
ュ・テーブルのセグメンテーション・レベルと等しくな
るように前記作業セグメンテーション・レベルを調整す
る手段とを備えていることを特徴とする適応セグメント
制御アッセンブリ。 - 【請求項30】 請求項29記載の適応セグメント制
御アッセンブリにおいて、前記命令を監視する監視手段
は前記受け取った命令を格納する命令キューを備えてい
ることを特徴とする適応セグメント制御アッセンブリ。 - 【請求項31】 請求項30記載の適応セグメント制
御アッセンブリにおいて、更に、前記格納した命令の数
がキュー限界値に等しくなった後に前記命令キューをフ
ラシュさせる手段とを備え、前記命令を監視する監視手
段は前記命令キューがフラシュされた後は命令の格納を
継続することを特徴とする適応セグメント制御アッセン
ブリ。 - 【請求項32】 請求項31記載の適応セグメント制
御アッセンブリにおいて、更に、前記ホスト・コンピュ
ータから続いて受け取った命令の数が待機カウントに等
しくなるまで、前記命令の格納を遅延させる手段を備え
ていることを特徴とする適応セグメント制御アッセンブ
リ。 - 【請求項33】 請求項29記載の適応セグメント制
御アッセンブリにおいて、前記複数の仮想キャッシュ・
テーブルに、第1及び第2の仮想キャッシュ・テーブル
を備え、前記適応セグメント制御アッセンブリは、更に
、前記選択した作業セグメンテーション・レベルで前記
第1の仮想キャッシュ・テーブルをセグメント化する手
段と、選択した試験セグメンテーション・レベルで第2
の仮想キャッシュ・テーブルをセグメント化すると共に
、前記試験セグメンテーション・レベルが前記作業セグ
メンテーション・レベルと異なっている手段とを備えて
いることを特徴とする適応セグメント制御アッセンブリ
。 - 【請求項34】 請求項33記載の適応セグメント制
御アッセンブリにおいて、前記第2の仮想キャッシュ・
テーブルをセグメント化する手段は複数のエントリを有
するルックアップ・テーブルを備え、前記複数のエント
リは選択可能な全てのセグメンテーション・レベルを備
えていることを特徴とする適応セグメント制御アッセン
ブリ。 - 【請求項35】 請求項34記載の適応セグメント制
御アッセンブリにおいて、前記第2の仮想キャッシュ・
テーブルをセグメント化する手段は、更に、前記ルック
アップ・テーブル内のエントリ間でインデックスを行な
う手段を備えていることを特徴とする適応セグメント制
御アッセンブリ。 - 【請求項36】 請求項34記載の適応セグメント制
御アッセンブリにおいて、前記選択可能なセグメンテー
ション・レベルは1から16までの範囲にあることを特
徴とする適応セグメント制御アッセンブリ。 - 【請求項37】 請求項33記載の適応セグメント制
御アッセンブリにおいて、前記命令を監視する監視手段
は前記受け取った命令を格納する命令キューを備え、か
ついずれの仮想キャッシュ・テーブルが最高のヒット比
を得るのかを判断する手段は、前記命令キューに格納さ
れた選択数の複数命令を実行することにより、前記第1
及び第2の仮想キャッシュ・テーブル上のヒット比シミ
ュレーションを実行する手段と、第1及び第2のヒット
比値をそれぞれ前記第1及び第2の仮想キャッシュ・テ
ーブルのために保持する手段と、前記格納された選択数
の複数命令の実行後は前記第1及び第2のヒット比値を
比較する手段とを備えていることを特徴とする適応セグ
メント制御アッセンブリ。 - 【請求項38】 請求項37記載の適応セグメント制
御アッセンブリにおいて、前記作業セグメンテーション
・レベルを調整する手段は、前記第2のヒット比値が前
記第1のヒット比値よりも大きいときは、前記セグメン
テーション・レベルと等しくなるように前記作業セグメ
ンテーション・レベルを調整する手段を備えていること
を特徴とする適応セグメント制御アッセンブリ。 - 【請求項39】 請求項37記載の適応セグメント制
御アッセンブリにおいて、更に、前記ホスト・コンピュ
ータから受け取った各命令に応答してメモリ処理を前記
記憶装置上で実行する手段と、各メモリ処理を実行する
間は前記記憶装置をビジー状態で動作させる手段と、各
メモリ処理の終了後は前記記憶装置をアイドル状態に復
帰させる手段とを備えていることを特徴とする適応セグ
メント制御アッセンブリ。 - 【請求項40】 請求項39記載の適応セグメント制
御アッセンブリにおいて、前記ヒット比シミュレーショ
ンを実行する手段は、前記命令キューが少なくとも一つ
の格納した命令を有し、かつ前記記憶装置が前記アイド
ル状態にあるときに、前記格納された選択数の複数命令
のうちの一つを前記第1及び第2の仮想キャッシュ・テ
ーブル上で実行する手段と、前記命令キューが空である
ときは、前記記憶装置を前記アイドル状態に復帰させる
手段とを備えていることを特徴とする適応セグメント制
御アッセンブリ。 - 【請求項41】 請求項39記載の適応セグメント制
御アッセンブリにおいて、前記ホスト・コンピュータか
ら命令を受け取ることにより格納した命令の実行を中断
させる手段と、前記受け取った命令に応答してメモリ処
理を実行する手段と、前記メモリ処理の終了により前記
格納した命令の実行を再開させる手段とを備えているこ
とを特徴とする適応セグメント制御アッセンブリ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US568962 | 1990-08-17 | ||
| US07/568,962 US5247653A (en) | 1990-08-17 | 1990-08-17 | Adaptive segment control and method for simulating a multi-segment cache |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04239352A true JPH04239352A (ja) | 1992-08-27 |
Family
ID=24273494
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3027277A Pending JPH04239352A (ja) | 1990-08-17 | 1991-02-21 | 適応セグメント制御方法及び装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5247653A (ja) |
| EP (1) | EP0471434B1 (ja) |
| JP (1) | JPH04239352A (ja) |
| DE (1) | DE69132449T2 (ja) |
| SG (1) | SG47743A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012533832A (ja) * | 2009-07-20 | 2012-12-27 | カリンゴ・インコーポレーテッド | ストレージ・クラスタにおける適応的な電力節約の方法 |
| WO2019155861A1 (ja) * | 2018-02-06 | 2019-08-15 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および情報処理システム |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2664719A1 (fr) * | 1990-07-10 | 1992-01-17 | Philips Electronique Lab | Dispositif de controle pour une memoire tampon a partitionnement reconfigurable. |
| US5630097A (en) * | 1991-06-17 | 1997-05-13 | Digital Equipment Corporation | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses |
| GB2273179A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache indexing in interative processes. |
| US5551000A (en) * | 1993-03-18 | 1996-08-27 | Sun Microsystems, Inc. | I/O cache with dual tag arrays |
| US5392408A (en) * | 1993-09-20 | 1995-02-21 | Apple Computer, Inc. | Address selective emulation routine pointer address mapping system |
| JP2665718B2 (ja) * | 1993-11-10 | 1997-10-22 | 日本電気エンジニアリング株式会社 | 情報処理装置のキャッシュメモリテスト方法 |
| US5845310A (en) * | 1993-12-15 | 1998-12-01 | Hewlett-Packard Co. | System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses |
| US5649153A (en) * | 1995-06-19 | 1997-07-15 | International Business Machines Corporation | Aggressive adaption algorithm for selective record caching |
| JP3898782B2 (ja) * | 1996-08-23 | 2007-03-28 | オリンパス株式会社 | 情報記録再生装置 |
| US6553476B1 (en) * | 1997-02-10 | 2003-04-22 | Matsushita Electric Industrial Co., Ltd. | Storage management based on predicted I/O execution times |
| US6058456A (en) * | 1997-04-14 | 2000-05-02 | International Business Machines Corporation | Software-managed programmable unified/split caching mechanism for instructions and data |
| US6141728A (en) * | 1997-09-29 | 2000-10-31 | Quantum Corporation | Embedded cache manager |
| US6542861B1 (en) | 1999-03-31 | 2003-04-01 | International Business Machines Corporation | Simulation environment cache model apparatus and method therefor |
| SG90745A1 (en) * | 1999-08-27 | 2002-08-20 | Seagate Technology Llc | Adaptable cache for disc drive |
| US7539608B1 (en) * | 2002-05-10 | 2009-05-26 | Oracle International Corporation | Techniques for determining effects on system performance of a memory management parameter |
| US20040064300A1 (en) * | 2002-09-26 | 2004-04-01 | Mathiske Bernd J.W. | Method and apparatus for starting simulation of a computer system from a process checkpoint within a simulator |
| US20050047768A1 (en) * | 2003-08-29 | 2005-03-03 | Valeo Electrical Systems, Inc. | Fluid heater with integral heater element ground connections |
| US7464250B2 (en) * | 2004-03-11 | 2008-12-09 | International Business Machines Corporation | Method to reduce disk access time during predictable loading sequences |
| US20060236032A1 (en) * | 2005-04-13 | 2006-10-19 | Campbell Brian K | Data storage system having memory controller with embedded CPU |
| US20070136726A1 (en) * | 2005-12-12 | 2007-06-14 | Freeland Gregory S | Tunable processor performance benchmarking |
| US8572325B2 (en) * | 2010-12-07 | 2013-10-29 | International Business Machines Corporation | Dynamic adjustment of read/write ratio of a disk cache |
| US8572323B2 (en) * | 2010-12-30 | 2013-10-29 | Freescale Semiconductor, Inc. | Cache result register for quick cache information lookup |
| US20210055954A1 (en) * | 2018-02-02 | 2021-02-25 | Dover Microsystems, Inc. | Systems and methods for post cache interlocking |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4315312A (en) * | 1979-12-19 | 1982-02-09 | Ncr Corporation | Cache memory having a variable data block size |
| US4489378A (en) * | 1981-06-05 | 1984-12-18 | International Business Machines Corporation | Automatic adjustment of the quantity of prefetch data in a disk cache operation |
| EP0066766B1 (en) * | 1981-06-05 | 1988-08-10 | International Business Machines Corporation | I/o controller with a dynamically adjustable cache memory |
| JPS58147879A (ja) * | 1982-02-26 | 1983-09-02 | Toshiba Corp | キヤツシユメモリ制御方式 |
| US4947319A (en) * | 1988-09-15 | 1990-08-07 | International Business Machines Corporation | Arbitral dynamic cache using processor storage |
| US5131087A (en) * | 1988-12-29 | 1992-07-14 | Storage Technology Corporation | Computer system having apparatus for automatically redistributing data records stored therein |
| US5133060A (en) * | 1989-06-05 | 1992-07-21 | Compuadd Corporation | Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter |
| US5148538A (en) * | 1989-10-20 | 1992-09-15 | International Business Machines Corporation | Translation look ahead based cache access |
-
1990
- 1990-08-17 US US07/568,962 patent/US5247653A/en not_active Expired - Fee Related
-
1991
- 1991-02-21 JP JP3027277A patent/JPH04239352A/ja active Pending
- 1991-06-11 EP EP91305239A patent/EP0471434B1/en not_active Expired - Lifetime
- 1991-06-11 DE DE69132449T patent/DE69132449T2/de not_active Expired - Fee Related
- 1991-06-11 SG SG1996004135A patent/SG47743A1/en unknown
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012533832A (ja) * | 2009-07-20 | 2012-12-27 | カリンゴ・インコーポレーテッド | ストレージ・クラスタにおける適応的な電力節約の方法 |
| US8726053B2 (en) | 2009-07-20 | 2014-05-13 | Caringo, Inc. | Method for processing a request by selecting an appropriate computer node in a plurality of computer nodes in a storage cluster based on a calculated bid value in each computer node |
| US8938633B2 (en) | 2009-07-20 | 2015-01-20 | Caringo, Inc. | Adaptive power conservation in storage clusters |
| US9348408B2 (en) | 2009-07-20 | 2016-05-24 | Caringo, Inc. | Adaptive power conservation in storage clusters |
| WO2019155861A1 (ja) * | 2018-02-06 | 2019-08-15 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および情報処理システム |
| JPWO2019155861A1 (ja) * | 2018-02-06 | 2021-04-08 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および情報処理システム |
Also Published As
| Publication number | Publication date |
|---|---|
| SG47743A1 (en) | 1998-04-17 |
| EP0471434A2 (en) | 1992-02-19 |
| EP0471434B1 (en) | 2000-10-18 |
| US5247653A (en) | 1993-09-21 |
| DE69132449D1 (de) | 2000-11-23 |
| DE69132449T2 (de) | 2001-03-22 |
| EP0471434A3 (en) | 1992-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04239352A (ja) | 適応セグメント制御方法及び装置 | |
| EP0848321B1 (en) | Method of data migration | |
| JP2637290B2 (ja) | キャッシュ管理を動的に制御するためのシステム及び方法 | |
| US6381677B1 (en) | Method and system for staging data into cache | |
| US6408357B1 (en) | Disk drive having a cache portion for storing write data segments of a predetermined length | |
| US6327644B1 (en) | Method and system for managing data in cache | |
| US6944717B2 (en) | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom | |
| JP3254429B2 (ja) | データ転送/管理システム及び方法 | |
| JPH0687224B2 (ja) | ディスクベースコンピュータシステムにおけるデータキャッシングを最適化する方法及びシステム | |
| KR20080017886A (ko) | 메모리 접근 제어 장치 및 방법 | |
| GB2368160A (en) | Demoting data from cache memory | |
| US10628331B2 (en) | Demote scan processing to demote tracks from cache | |
| US20030061444A1 (en) | Method and system for cache management algorithm selection | |
| JPH05303528A (ja) | ライトバック式ディスクキャッシュ装置 | |
| US7512753B2 (en) | Disk array control apparatus and method | |
| CN111309257A (zh) | 恒定速率读文件的预读方法、装置及计算机可读存储介质 | |
| HK1013152A (en) | Methods and apparatus for controlling a multi-segment cache memory | |
| JP2854667B2 (ja) | ディスク・キャッシュ制御方式 | |
| JP2854668B2 (ja) | ディスク・キャッシュ制御方式 | |
| JP3083530B2 (ja) | キャッシュメモリのデータ管理方法およびキャッシュ制御装置 | |
| JP2011008315A (ja) | キャッシュ制御方法 | |
| JPS63106849A (ja) | キヤツシユメモリの制御方法 | |
| JPH0754482B2 (ja) | 計算機システム | |
| JPH04225444A (ja) | データバッファの読出し/書込み制御方式 | |
| JPH10187540A (ja) | キャッシュ・データの掃き出し制御方法 |