JPH09167116A - コンピュータキャッシュシステム - Google Patents
コンピュータキャッシュシステムInfo
- Publication number
- JPH09167116A JPH09167116A JP8315894A JP31589496A JPH09167116A JP H09167116 A JPH09167116 A JP H09167116A JP 8315894 A JP8315894 A JP 8315894A JP 31589496 A JP31589496 A JP 31589496A JP H09167116 A JPH09167116 A JP H09167116A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- block
- memory
- bus
- data block
- 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/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
ト、効率および自由度の間の適当な妥協点を提供する外
部キャッシュ構成を提供する。 【解決手段】本発明は、プロセッサ10と、データブロ
ックを記憶するための大量記憶サブシステム16と、そ
の一部が前記のデータブロックのうちの選択されたもの
を一時記憶するためのアドレス指定可能な位置を有する
キャッシュメモリとして構成されるシステムメモリ11
と、キャッシュマネージャ30と、プロセッサが接続さ
れているローカルバス12と、システムメモリが接続さ
れているメモリバス13と、キャッシュマネージャと大
量記憶サブシステムが接続されている周辺装置バス15
と、ローカルバス、メモリバス、周辺装置バスを相互接
続するバス間インターフェース14を備えたバスシステ
ム、とを備えるコンピュータを提供する
Description
ュシステムに関する。
ク)に記憶されたデータへの有効アクセス時間を低減す
ることによってシステム性能を向上させるためにコンピ
ュータのプロセッサユニットの外部にキャッシュを設け
ることは周知である。
置のデータの一部をはるかに高速なメモリ(キャッシュ
メモリ)に記憶するというものである。必要なデータが
すでにキャッシュにあれば(キャッシュヒット)、アク
セス時間が低減され、システム性能が向上する。データ
がキャッシュメモリにない場合(キャッシュ“ミ
ス”)、この時点では効果はないが、キャッシュメモリ
が新しいデータで更新され次にそのデータが要求された
ときキャッシュ“ヒット”が発生する。
ト)に対するアクセス時間が10ミリ秒である512メ
ガバイトの大量記憶装置と1データブロックに対するア
クセス時間が10マイクロ秒である4メガバイトのキャ
ッシュメモリとを有するコンピュータの場合について考
察する。要求されるデータが常にキャッシュメモリにあ
る(キャッシュヒット率=100%)場合、キャッシュ
メモリによってアクセス性能は1000倍向上する。よ
り現実的には、キャッシュヒット率は50%程度であ
り、この場合性能は2倍に向上する。
を明らかに示すものであるが、かかる効果の程度を見積
もることはそれが次のような多くのパラメータによって
決まるため非常に困難である。 1.オペレーティングシステム 2.ソフトウエアアプリケーション 3.大量記憶ディスク上のファイルの割り当て 4.キャッシュのサイズとアーキテクチャ 5.各種バスの帯域幅 6.キャッシュ管理によるオーバヘッド 一般的には、キャッシュヒット率はパラメータ1〜4に
よって決まり、ある特定のヒット率におけるキャッシュ
効率はパラメータ5および6によって決まる。
サキャッシュ等の他の種類のキャッシングも用いられ
る。しかし、本発明はプロセッサユニットの外部に設け
られるキャッシュサブシステムに関する。添付の図1お
よび図2を参照して外部キャッシュシステムの2つの既
知の形態について簡単に説明する。
ムメモリ11を有するシステムプロセッサ10を有する
既知のコンピュータシステムを示し、プロセッサ10は
システムメモリ11に記憶されたそのオペレーティング
システム18を含むプログラムを実行する。プロセッサ
10はプロセッサローカルバス12およびメモリバス1
3を介してシステムメモリ11に接続され、これらのバ
スはバス間インターフェース14を介して相互接続され
ている。また、インターフェース14には周辺装置バス
15が他のバスとの通信が可能な態様で接続されてい
る。大量記憶周辺装置16が周辺装置コントローラ17
を介して周辺装置バス15に接続されている。
キャッシュサブシステムが設けられている。より詳細に
は、システムメモリ11の部分19がキャッシュメモリ
として用いられ、システムメモリに永久的にロードされ
たキャッシュ管理ソフトウエア20を用いてキャッシュ
メモリの制御および管理が行なわれる。キャッシュメモ
リ11のサイズはハードウエアの変更を行なうことなく
変更することができ、実際にキャッシュサイズは動的に
変更することができる。
ィングシステム18がデータブロックの読み出しあるい
は書き込みを行ないたい場合にオペレーティングシステ
ム18によって呼び出され、プロセッサ10が実際にキ
ャッシュ管理ソフトウエア20を実行する。図1のキャ
ッシュサブシステムの基本的な動作は次の通りである。
ウエア20に1つのデータブロックの読み出しを行ない
たいことを示す要求を送る。キャッシュマネージャ20
は要求されたブロックがキャッシュメモリ19に存在す
るかどうかをチェックする。 −存在しない場合(読み出しミス)、要求は周辺装置コ
ントローラ17に伝えられ、周辺装置コントローラ17
は要求されたブロックを大量記憶周辺装置16からキャ
ッシュメモリに返す。キャッシュマネージャ20はこの
データブロックをオペレーティングシステムによって指
定されたシステムメモリ内の位置にコピーする。 −存在する場合(読み出しヒット)、要求は周辺装置コ
ントローラ17には送られず、キャッシュマネージャ2
0がこのデータブロックをキャッシュメモリ19からシ
ステムメモリ内の指定された位置にコピーする。
ウエア20に1つのデータブロックの書き込みを行ない
たいことを示す要求を送る。キャッシュマネージャ20
は要求されたブロックがキャッシュメモリ19に存在す
るかどうかをチェックする。 −存在しない場合(書き込みミス)、要求は周辺装置コ
ントローラ17に伝えられ、その後そのデータブロック
が大量記憶周辺装置16に送られる。 −存在する場合(書き込みヒット)、要求は周辺装置コ
ントローラ17には送られず、キャッシュメモリ19内
のそのデータブロックが更新される。
ットの場合はシステムメモリからシステムメモリへと向
かい、またキャッシュミスの場合は周辺装置とシステム
メモリの間で流れる。システムメモリバスが最も高い帯
域幅を持つことが多いため、キャッシュヒット転送が最
も高い性能を持つことになる。周辺装置コントローラ1
7がDMA(MASTER)機能を有する場合、周辺装
置とシステムメモリの間での転送はこのコントローラに
よって行なうことができ、それによってプロセッサはこ
のタスクを免除されるが、プロセッサは依然としてキャ
ッシュ管理を実行することに注意されたい。
ハードウエアに影響を与えず、コストのかからない方法
であり(ハードウエアの追加がない)、キャッシュサイ
ズが自由であり、キャッシュ管理ソフトウエアは通常オ
ペレーティングシステムとともに供給されるという利点
がある。問題点としては、キャッシュ管理を実行するた
めのソフトウエアが性能に影響を与えること、またヒッ
ト率が最高となるアーキテクチャ(たとえば多数のキャ
ッシュエントリを持つ完全な連想性を有するキャッシ
ュ)の中には過大な管理オーバーヘッドを生じるものが
あるという点がある。
ムに適用された他の既知のキャッシュ構成を示す。図2
の構成では、キャッシュ管理はシステムプロセッサ10
によってではなく、周辺装置コントローラの一部である
専用のハードウエアキャッシュコントローラ26によっ
て実行される。キャッシュメモリ25もキャッシュ動作
専用のものであり、システムメモリ11とは物理的に別
に設けられている。図2のキャッシュ構成の基本的な動
作は次の通りである。
17に1つのデータブロックの読み出しを行ないたいこ
とを示す要求を送る。キャッシュコントローラ26は要
求されたブロックがキャッシュメモリ25に存在するか
どうかをチェックする。 −存在しない場合(読み出しミス)、要求されたデータ
ブロックは大量記憶周辺装置16からキャッシュメモリ
25およびシステムメモリ11に転送される。 −存在する場合(読み出しヒット)、キャッシュコント
ローラ26はこのデータブロックをキャッシュメモリ2
5からシステムメモリ11に送る。
17に1つのデータブロックの書き込みを行ないたいこ
とを示す要求を送る。キャッシュコントローラ26は要
求されたブロックがキャッシュメモリ25に存在するか
どうかをチェックする。 −存在しない場合(書き込みミス)、そのデータブロッ
クがシステムメモリ11から周辺装置16に送られる。 −存在する場合(書き込みヒット)、キャッシュメモリ
内のそのデータブロックがシステムメモリ11から更新
される。
ローは周辺装置バスを通り、このバスは(PCIバスの
ように)高い帯域幅を有するものであっても、他の周辺
装置に共用されることが多い(たとえば、通常のシステ
ムは同じバス上にVIDEO、IDE、SCSIおよび
LANの各インターフェースを有する)ためネックにな
ることがある。
トウエアのオーバーヘッドがないこと(キャッシュ管理
は専用ハードウエアで行なわれる)、キャッシュ効率が
高いこと(図1の構成と異なり、キャッシュ構成に制限
がない)、駆動装置の必要がなくこの構成のオペレーテ
ィングシステムを独立したものとすることができる、と
いった利点がある。問題点としては、キャッシュサイズ
に自由度がないこと、高コストであること(専用DRA
MおよびDRAMコントローラ)、すべてのキャッシュ
転送に周辺装置バスが用いられ同じバスを共用する他の
装置に問題を生じさせる可能性があること等がある。
のシステムの問題点を最小限にし、低コスト、効率およ
び自由度の間の適当な妥協点を提供する外部キャッシュ
構成を提供することである。
と、データブロックを記憶するための大量記憶サブシス
テム(一般的には大量記憶周辺装置および周辺装置コン
トローラ)と、その一部が前記のデータブロックのうち
の選択されたものを一時記憶するためのアドレス指定可
能な位置を有するキャッシュメモリとして構成されるシ
ステムメモリと、キャッシュマネージャと、プロセッサ
が接続されているローカルバスと、システムメモリが接
続されているメモリバスと、キャッシュマネージャと大
量記憶サブシステムが接続されている周辺装置バスと、
ローカルバス、メモリバス、周辺装置バスを相互接続す
るバス間インターフェースを備えたバスシステム、とを
備えるコンピュータを提供するものである。ここで、プ
ロセッサはバスシステム上に送出される要求によってキ
ャッシュマネージャに特定のデータブロックが現在キャ
ッシュメモリにあるかどうかを質問するプログラムを実
行する動作をし、キャッシュマネージャは、 −識別子によってそれぞれ同定されるキャッシュメモリ
のアドレス指定可能な位置を現在そこに記憶されている
任意のデータブロックに対応付ける対応付け手段と、 −対応付け手段に対するチェック要求に応じて前記の特
定のデータブロックが現在キャッシュメモリに存在する
かどうかを調べるチェック手段と、 −チェック手段が前記の特定のデータブロックがキャッ
シュメモリに存在することを発見したとき、バスシステ
ムを介してプログラムに“キャッシュ内にあり”標識を
返す動作をする報告手段、とを備える。
ッシュメモリに用いることができ、キャッシュサイズの
自由度を得ることができ、同時にキャッシュ効率が上が
り、またプロセッサは多くのキャッシュ管理タスクを免
除される。
スインターフェースあるいは大量記憶サブシステムと同
じインターフェースを介して周辺装置バスに接続され
る。
所定のキャッシュ位置に記憶することのできる直接マッ
プされた構成で動作する場合、このプログラムはこの位
置を自ら判定するように構成することができる。データ
ブロックを2つあるいはそれ以上の可能なキャッシュ位
置のうちの任意の1つに記憶することのできる他のキャ
ッシュ構成の場合、報告手段は一般的にはさらに、チェ
ック手段によって前記の特定のデータブロックがキャッ
シュメモリに存在することが判明した場合前記の特定の
データブロックが現在記憶されているキャッシュ位置の
識別子をプログラムに返す動作をする。
定のデータブロックに対する要求に応じてチェック手段
がこの特定のデータブロックがキャッシュメモリに存在
しないことを発見すると、報告手段は“キャッシュ内に
なし”標識を前記の特定のデータブロックの記憶に用い
るべきキャッシュ位置の識別子とともにプログラムに返
す動作をする。報告手段からのこの“キャッシュ内にな
し”標識と識別子を受け取ると、プログラムはこの特定
のデータブロックを大量記憶サブシステムからこの識別
子によって同定されるキャッシュ位置に転送させる。
バスシステム上のデータブロックの転送を制御するため
のブロック転送制御手段を有し、キャッシュマネージャ
と大量記憶サブシステムが動作可能に直接相互接続さ
れ、前記のバスシステムへの共通のインターフェースを
共用する。この場合、読み出すべきある特定のデータブ
ロックに対する要求に応じてチェック手段がこの特定の
データブロックがキャッシュメモリに存在しないことを
発見すると、キャッシュマネージャが大量記憶サブシス
テムのブロック転送手段に対してこの特定のデータブロ
ックをある所定のキャッシュ位置に転送するように直接
命令するように構成される。すると、報告手段はプログ
ラムにその所定のキャッシュ位置に対応する識別子を返
す。
テクチャの一般的構成を図1および図2に示すものと同
様のコンピュータシステムにおいて説明する。図3のコ
ンピュータシステムはしたがってシステムプロセッサ1
0と、システムメモリ11と、コントローラ17によっ
て制御される大量記憶周辺装置16からなる大量記憶サ
ブシステムと、プロセッサローカルバス12、メモリバ
ス13、周辺装置バス15(PCIバス等)およびバス
間インターフェース14から構成されるバスシステムと
からなる。プロセッサ10はそのオペレーティングシス
テム18をシステムメモリ11から実行する。
キャッシュメモリとして構成されたシステムメモリ11
の一部分19、プロセッサあるいはシステムメモリをバ
スシステムに接続するものとは異なるインターフェース
を介してバスシステムに接続された専用キャッシュマネ
ージャ回路30、およびオペレーティングシステム固有
の駆動装置31の形態で設けられる。キャッシュマネー
ジャ30は好適には(図3に示すような)自己のインタ
ーフェースを介して周辺装置バスに接続されるか、ある
いは周辺装置コントローラ17に一体化されてコントロ
ーラ17と同じインターフェースを介して周辺装置バス
にインターフェースする。キャッシュマネージャ30は
異なるバスに接続することもできる。
通りである。
て)ある特定のデータブロックへの読み出しアクセスを
要求する。この要求は常にキャッシュマネージャ30に
送られ、キャッシュマネージャ30は内部ルックアップ
テーブルをチェックしてこのブロックがキャッシュメモ
リ19に存在するかどうかを調べる。 −存在しない場合(読み出しミス)、要求されたデータ
ブロックが(オペレーティングシステムあるいは周辺装
置コントローラの制御のもとに)大量記憶周辺装置16
からキャッシュメモリ19に転送され、オペレーティン
グシステムはキャッシュメモリ19からこのデータブロ
ックを必要な位置にコピーする。 −存在する場合(読み出しヒット)、キャッシュマネー
ジャはキャッシュメモリ内のこのデータブロックが記憶
された位置を報告し、オペレーティングシステムはそれ
を必要な位置にコピーする。
て)ある特定のデータブロックへの書き込みアクセスを
要求する。この要求は常にキャッシュマネージャ30に
送られ、キャッシュマネージャ30はその内部ルックア
ップテーブルを用いてこのブロックがキャッシュメモリ
11に存在するかどうかをチェックする。 −存在しない場合(書き込みミス)、このデータブロッ
クがオペレーティングシステムあるいは周辺装置コント
ローラ17の制御のもとにシステムメモリから大量記憶
周辺装置に送られる。 −存在する場合(書き込みヒット)、キャッシュマネー
ジャ30はキャッシュメモリ内のこのデータブロックの
存在する位置を報告し、オペレーティングシステムはキ
ャッシュメモリ内のそのブロックを更新する。
ータフローはシステムメモリのある部分から他の部分へ
と向かい、この転送はプロセッサ10によって行なわれ
る。キャッシュミスの場合、データフローは周辺装置バ
ス上で発生し、(オペレーティングシステムの制御のも
とに)プロセッサによって行なわれるか、あるいは周辺
装置コントローラによって行なわれる(後者はDMAあ
るいはMASTERが可能なものである)。
してより詳細に説明する。
ックを含む(ここで、例えば1ブロックは1024バイ
ト、Mは1024 Kである)。キャッシュメモリ19
は最大でN個のブロックを保持するように構成される
(Nは4K)。大量記憶周辺装置16内のM個のブロッ
クのそれぞれは独自のID番号を持ち、図4にはかかる
番号を用いてシステムメモリ11のキャッシュメモリ領
域19内の最初の3つのアドレス位置40(番号(#)
“1”、“2”および“3”)の配置態様を示す。した
がって、キャッシュアドレス“1”にはブロック“2
3”、アドレス“2”にはブロック“100”、アドレ
ス“3”にはブロック“67”が保持される。
連想性”を有する。これは、大量記憶周辺装置からの任
意のデータブロックを任意のキャッシュ位置に記憶でき
ることを意味する。
主要機能ブロックを示す。より詳細には、キャッシュマ
ネージャ30はキャッシュマネージャ30を周辺装置バ
ス15、キャッシュマネージャコントローラ51、およ
びキャッシュテーブルサブシステム52にインターフェ
ースするバスインターフェース50を有する。
ム52の一部を成すキャッシュテーブル53であり、図
5の下部にこれを詳細に示す。テーブル53はアドレス
で同定されるキャッシュメモリのアドレス指定可能な各
位置に対するエントリを含む。各エントリはその位置ア
ドレスを含むと共に、そのアドレスに最後に保持されて
いたデータブロックのID番号と次のようなそのブロッ
クの現状を示す状態フラグを含む。 V=キャッシュ内のそのブロックは有効である。 U=キャッシュ内のそのブロックは無効である。 C=キャッシュ内のそのブロックは大量記憶周辺装置内
の対応するブロックと一致する。 M=キャッシュ内のそのブロックは大量記憶周辺装置内
の対応するブロックに対して変更されている。
に、データブロックの書き込みが、そのブロックがキャ
ッシュにある場合に、オペレーティングシステムがブロ
ック書き込みを実行する際にキャッシュ内のそのブロッ
クのコピーのみが変更されるという態様で実行されると
きに必要なものである。その結果、キャッシュに記憶さ
れたブロックと大量記憶周辺装置16に記憶されたブロ
ックの間に、そのブロックがキャッシュから周辺装置に
書き込まれるまでの間不一致が生じる。この動作態様は
“ライトバック”として知られている。オペレーティン
グシステムのブロック書き込みが実行されるとき常にキ
ャッシュと大量記憶周辺装置の両方への書き込みを実行
するこれに代わる構成としては、“ライトスルー”動作
として知られるものがある。この動作態様は、キャッシ
ュと大量記憶周辺装置との間の一致を保証するものでは
あるが、書き込み中のシステム性能を高速化することは
ない(ただし、更新されたブロックがキャッシュ内で読
み出し可能となることはもちろんである)。
の各例は次のように解釈される。 アドレス“1”エントリ − アドレス位置“1”は有
効で周辺装置16と一致するブロック23を保持する。 アドレス“2”エントリ − アドレス位置“2”は有
効であるが周辺装置16に対して変更されているブロッ
ク100を保持する。 アドレス“3”エントリ − アドレス位置“3”は無
効なブロック67を保持する。
シュテーブルサブシステム52は読み出し/書き込み要
求に応じてこのテーブルをチェックして、ある特定のデ
ータブロックがキャッシュに存在するかどうか、また存
在する場合それが有効であるかどうか、またその位置を
確認するためのテーブルチェックブロック54と、キャ
ッシュテーブル53に変更を加えるためのテーブル更新
ブロック56と、キャッシュ位置使用状況モニター55
とを有する。このモニターはキャッシュマネージャコン
トローラがキャッシュに新たなブロックを入れるべきと
の判定をしたとき次に使用すべきアドレスを供給するは
たらきをする。モニター55はまず無効ブロックを有す
るアドレス位置を探し、それがなければ、アクセスされ
なかった時間の最も長いブロックを有するキャッシュ位
置のアドレスを供給する(他の位置を再使用する方法も
可能であることは理解されよう)。モニター55の動作
を容易にするために、テーブル中の各エントリに最終使
用時タイムスタンプのためのフィールドをさらに持たせ
ることも可能である。
ついては、その機能は以下に図6のフローチャートを参
照して行なうキャッシュマネージャの動作の説明から最
良の理解が得られるであろう。しかし、以下の機能ブロ
ックには特に注意すべきであろう。すなわち。入ってき
た要求が読み出し動作の要求であるか書き込み動作の要
求であるかを判定するパーサブロック57とオペレーテ
ィングシステムに要求の結果をフラグ場合によってはキ
ャッシュアドレスの形で返す報告ブロック58である。
ュマネージャがオペレーティングシステム18からブロ
ック要求を受け取ると(ステップ60)、パーサ57が
それが読み出し要求であるか書き込み要求であるかを判
定する(ステップ61)。読み出し要求である場合、コ
ントローラ51がテーブルチェックブロック54にテー
ブル53を参照して要求されたブロックがキャッシュに
存在するかどうかをチェックさせる(ステップ62およ
び63)。キャッシュテーブルがこのブロックに対する
有効エントリを有する場合、コントローラ51に対して
その旨を表示し、それを関係するキャッシュアドレスに
送り、報告ブロック58がこのキャッシュアドレスを
“キャッシュ内にあり”フラグとともにオペレーティン
グシステムに出力する(ステップ67)。同時に、コン
トローラ51は位置モニター55を要求されたブロック
が直前に使用されたものとして更新する。オペレーティ
ングシステムはキャッシュアドレスを受け取るとキャッ
シュから要求されたブロックを読み出す。
結果要求されたブロックがキャッシュに存在しない(あ
るいは有効ではない)場合、コントローラ51はモニタ
ー55にこのブロックの記憶に使用できるキャッシュア
ドレスの供給を要求する(ステップ64)。モニター5
5はテーブル53をチェックして無効ブロックを発見す
ると、それに対応するアドレスを報告ブロック58に渡
し(ステップ65、68)、このアドレスがオペレーテ
ィングシステムに返される。同時に、報告ブロック58
は要求されたブロックは大量記憶周辺装置16から読み
出すべきことを示す“キャッシュ内になし”フラグをオ
ペレーティングシステムに返す。オペレーティングシス
テム(駆動装置31)はこのブロック自体を受け取った
キャッシュアドレスに転送するか、あるいは、周辺装置
コントローラがDMA(MASTER)の可能なもので
ある場合、周辺装置コントローラにこのタスクの実行を
命令する。次に、オペレーティングシステムはキャッシ
ュからこのブロックを読み出す。一方、キャッシュマネ
ージャコントローラ51はテーブル更新ブロック56に
キャッシュテーブルをこの新たなブロックのIDと
“V、C”の状態フラグを反映するように更新させる
(ステップ69)。さらに、位置使用状況モニターはこ
の新たなブロックの使用状況を記録する(ステップ7
0)。
おいて無効ブロックを発見できなかった場合、最も長い
時間使用されなかったブロックを有するキャッシュ位置
を選択する。このブロックに対応する状態フラグがこの
ブロックが変更されていない(したがって周辺装置16
内の対応するブロックと一致している)ことを示してい
る場合、処理は無効ブロックのエントリの場合について
の上の説明と同様に進められる(ステップ68、69、
70)。しかし、状態フラグがこのブロックに変更が加
えられていることを示している場合、対応するキャッシ
ュ位置を再使用する前にこれを周辺装置16に書き戻さ
ねばならない。したがって、キャッシュマネージャコン
トローラ51が使用状況モニターから使用すべき新たな
アドレスおよびそのアドレスが現在有効な変更されたブ
ロックを有することを知らせられると、報告ブロック5
8はそのアドレスを“キャッシュ内になし”フラグおよ
び“ライトバック”フラグとともにオペレーティングシ
ステムに出力する。これらのフラグは要求されたブロッ
クを周辺装置からこの与えられたキャッシュ位置に転送
すべきことだけではなく、この動作に先だってこの与え
られたキャッシュアドレスの既存の内容の周辺装置への
書き戻しを行なわなければならないことを示す(ステッ
プ66)。オペレーティングシステム(駆動装置31)
は必要な転送を自ら制御するかあるいは周辺装置コント
ローラ17の任意のDMA(MASTER)機能を用い
て実行しなければならない。一方、キャッシュマネージ
ャコントローラ51はテーブル53と位置使用状況モニ
ターを適宜更新する。
あると判定すると、処理は図6の右側に示すように進行
する。したがって、やはりテーブル53がまずチェック
され、要求されたブロックがキャッシュに存在し有効で
あるかどうかが確認される(ステップ71)。このブロ
ックが存在しないかあるいは無効である場合(ステップ
72)、報告ブロック58が、そのブロックを大量記憶
周辺装置に直接書き込むべきことを示す“キャッシュ内
になし”フラグを返す(ステップ73)。次に、オペレ
ーティングシステムはこの書き込みを自ら制御するか、
あるいは周辺装置コントローラ17がDMA(MAST
ER)機能を有する場合これにこの転送を実行させる。
キャッシュメモリに存在し有効であることがわかった場
合、報告ブロック58はオペレーティングシステムに対
応するキャッシュアドレスと“キャッシュ内にあり”フ
ラグを返し(ステップ74)、オペレーティングシステ
ムは周辺装置への書き込みを行なうことなくキャッシュ
内のこのブロックを更新する。キャッシュマネージャコ
ントローラ51はキャッシュテーブルをこのブロックが
変更されたことを示すように更新する(ステップ7
5)。
出し要求がある場合、アドレス“1”でキャッシュヒッ
トが起こり、このアドレスが返され、このブロックの状
態は変化しない。同じブロックに対する書き込み要求が
ある場合、やはりこのアドレスが返されるが、この場
合、このブロックの状態は“V、M”に変わり、このブ
ロックが変更されたことを示す。
くの変更態様が可能である。たとえば、キャッシュマネ
ージャは“ライトスルー”モードで動作するように構成
することができる。このモードは上述したように常に書
き込み要求のブロック主体の周辺装置16への書き戻し
を行なうものである。また、キャッシュマネージャは、
書き込みミスが発生したとき問題のブロックが周辺装置
に書き込まれるだけでなくキャッシュ内の新たに割り当
てられた位置にも書き込まれる“書き込み時割り当て”
原理に基づいて動作することができる。“書き込み時割
り当て”は通常“読み出し時割り当て”に替わるものと
してではなくそれに加えて実行されるものである(図3
の実施例には“読み出し時割り当て”が用いられている
ことが理解されよう)。
能である。これは、読み出しミスが発生すると、問題の
ブロックだけではなくそれに続く隣接ブロック(複数の
ブロックである場合もある)をキャッシュに移動するも
のである。
0を周辺装置コントローラ17の一部として、周辺装置
コントローラ17と同じインターフェースを介してバス
15とインターフェースするようにすることができる。
この場合、コントローラ17がDMA(MASTER)
機能を有する場合、キャッシュマネージャはキャッシュ
メモリとの間のブロック転送が必要である場合にその実
行をコントローラ17に直接命令することができる。
ス14にDMA(MASTER)機能を持たせてプロセ
ッサ10を、キャッシュメモリ19と大量記憶周辺装置
16との間およびキャッシュメモリ19とシステムメモ
リ11の他の部分との間の(双方向の)転送を実行する
タスクから解放することができる。
ッシュ構成を前提としたものであるが、他の構成もまた
可能である。たとえば、直接マップされた構成を用いる
ことができ、この構成では大量記憶周辺装置のあるデー
タブロックは1つの特定のキャッシュ位置にしか転送す
ることができない(各キャッシュ位置と周辺装置のデー
タブロックの間には複数対1のマッピングが存在す
る)。かかる構成を用いると、キャッシュマネージャは
オペレーティングシステム駆動装置にアドレスを返す必
要がない。これは駆動装置をある所望のブロックがキャ
ッシュのどこにあるかがわかるように設定することがで
きるためである。キャッシュマネージャは依然としてこ
の所望のブロックが有効であり、キャッシュメモリに存
在することを示さなければならないことはいうまでもな
い。完全な連想性を有するキャッシュ構成と直接マップ
されたキャッシュ構成を両極端とすると、その中間で、
データブロックを2つの所定のキャッシュ位置のいずれ
かに入れることのできる2ウェイ連想性キャッシュ等の
他の方法が可能である。この場合、キャッシュマネージ
ャはやはりオペレーティングシステムに完全なキャッシ
ュアドレスを返す必要がなく、単にそのブロックがキャ
ッシュに存在するかどうか、存在する場合2つの可能な
位置のうちのどちらに存在するかを示す標識を返すだけ
でよい。
様については、当業者には完全に専用とされるハードウ
エアを用いる方法あるいはASIC設計等の多数の方法
でこれを実施することが可能であることは明らかであろ
う。また、マイクロコントローラによる方法を用いるこ
ともできる。キャッシュアドレスとブロックIDとの対
応付けは(通常RAMに保持される)ルックアップテー
ブルによって行なわれるものとして説明したが、他の任
意の適当なデータ構造を用いることができる。さらに、
各キャッシュ位置の同定は必ずしもそのアドレスによっ
て行なう必要はなく、(操作あるいはなんらかの検索構
成によって)キャッシュ位置アドレスを得られるもので
あれば他のなんらかの識別子を用いることも可能であ
る。
が、以下、本発明の各実施態様の例を示す。
ックを記憶するための大量記憶サブシステムと、前記の
データブロックのうちの選択されたものを一時記憶する
ためのアドレス指定可能な位置を備えるキャッシュメモ
リとして構成されるシステムメモリと、前記のプロセッ
サが接続されるローカルバス、前記のシステムメモリが
接続されるメモリバス、前記のキャッシュマネージャと
大量記憶サブシステムが接続される周辺装置バス、およ
び前記のローカルバス、メモリバス、周辺装置バスを相
互接続するバス間インターフェースを備えるバスシステ
ムを有するコンピュータであって、前記のプロセッサは
前記のバスシステム上に送出される要求によって前記の
キャッシュマネージャに特定のデータブロックが現在前
記のキャッシュメモリにあるかどうかを質問するプログ
ラムを実行する動作をし、前記のキャッシュマネージャ
は、 −識別子によってそれぞれ同定される前記のキャッシュ
メモリのアドレス指定可能な位置を現在そこに記憶され
ている任意の前記のデータブロックに対応付ける対応付
け手段と、 −前記の対応付け手段に対するチェック要求に応じて前
記の特定のデータブロックが現在前記のキャッシュメモ
リに存在するかどうかを調べるチェック手段と、 −前記のチェック手段が前記の特定のデータブロックが
キャッシュメモリに存在することを発見したとき、前記
のバスシステムを介して前記のプログラムに“キャッシ
ュ内にあり”標識を返す動作をする報告手段を有するこ
とを特徴とするコンピュータ。
ャおよび大量記憶サブシステムは前記の周辺装置バスへ
の同じインターフェースを共用することを特徴とする実
施態様1に記載のコンピュータ。
ャおよび大量記憶サブシステムは前記の周辺装置バスへ
のそれぞれのインターフェースを有することを特徴とす
る実施態様1に記載のコンピュータ。
前記のチェック手段が前記の特定のデータブロックが前
記のキャッシュメモリに存在することを発見したとき、
前記の特定のデータブロックが現在記憶されているキャ
ッシュ位置の識別子を前記のプログラムに返す動作をす
ることを特徴とする実施態様1に記載のコンピュータ。
ータブロックに対する要求に応じて前記のチェック手段
が前記の特定のデータブロックが前記のキャッシュメモ
リに存在しないことを発見すると、前記の報告手段は
“キャッシュ内になし”標識を前記の特定のデータブロ
ックの記憶に用いるべきキャッシュ位置の識別子ととも
に前記のプログラムに返す動作をし、前記の報告手段か
らの前記の“キャッシュ内になし”標識と前記の識別子
を受け取ると、前記のプログラムは前記の特定のデータ
ブロックを前記の大量記憶サブシステムから前記の識別
子によって同定されるキャッシュ位置に転送させること
を特徴とする実施態様1に記載のコンピュータ。
ムが前記のバスシステム上のデータブロックの転送を制
御するためのブロック転送制御手段を有し、前記のキャ
ッシュマネージャと大量記憶サブシステムが動作可能に
直接相互接続され、前記のバスシステムへの共通のイン
ターフェースを共用し、前記のキャッシュマネージャ
は、読み出すべきある特定のデータブロックに対する要
求に応じて前記のチェック手段が前記の特定のデータブ
ロックが前記のキャッシュメモリに存在しないことを発
見すると、前記の大量記憶サブシステムの前記のブロッ
ク転送手段に対して前記の特定のデータブロックを転送
開始手段によって指定されるある所定のキャッシュ位置
に転送するように直接命令する動作をする転送開始手段
を有し、前記の報告手段はさらに前記のプログラムに前
記の所定のキャッシュ位置に対応する前記の識別子を返
す動作をすることを特徴とする実施態様1に記載のコン
ピュータ。
のシステムの問題点を最小限にし、低コスト、効率およ
び自由度の間の適当な妥協点を提供する外部キャッシュ
構成を提供することができる。
メモリをキャッシュメモリに用いることができ、キャッ
シュサイズの自由度を得ることができ、同時にキャッシ
ュ効率が上がり、またプロセッサは多くのキャッシュ管
理タスクを免除される。
のブロック図である。
のブロック図である。
のブロック図である。
るキャッシュメモリ位置へのデータブロックの割り当て
を示す図である。
ブロック図である。
ー図である。
レス位置 50:バスインターフェース 51:キャッシュマネージャコントローラ 52:キャッシュテーブルサブシステム 53:キャッシュテーブル 54:テーブルチェックブロック 55:キャッシュ位置使用状況モニター 56:テーブル更新ブロック 57:パーサブロック 58:報告ブロック 60、61、62、63、64、65、66、67、6
8、69、70、71、72、73、74、75:キャ
ッシュマネージャ動作ステップ C、M、U、V:状態フラグ
Claims (1)
- 【請求項1】プロセッサと、 データブロックを記憶するための大量記憶サブシステム
と、 前記のデータブロックのうちの選択されたものを一時記
憶するためのアドレス指定可能な位置を備えるキャッシ
ュメモリとして構成されるシステムメモリと、 前記のプロセッサが接続されるローカルバス、前記のシ
ステムメモリが接続されるメモリバス、前記のキャッシ
ュマネージャと大量記憶サブシステムが接続される周辺
装置バス、および前記のローカルバス、メモリバス、周
辺装置バスを相互接続するバス間インターフェースを備
えるバスシステムを有するコンピュータであって、 前記のプロセッサは前記のバスシステム上に送出される
要求によって前記のキャッシュマネージャに特定のデー
タブロックが現在前記のキャッシュメモリにあるかどう
かを質問するプログラムを実行する動作をし、前記のキ
ャッシュマネージャは、 −識別子によってそれぞれ同定される前記のキャッシュ
メモリのアドレス指定可能な位置を現在そこに記憶され
ている任意の前記のデータブロックに対応付ける対応付
け手段と、 −前記の対応付け手段に対するチェック要求に応じて前
記の特定のデータブロックが現在前記のキャッシュメモ
リに存在するかどうかを調べるチェック手段と、 −前記のチェック手段が前記の特定のデータブロックが
キャッシュメモリに存在することを発見したとき、前記
のバスシステムを介して前記のプログラムに“キャッシ
ュ内にあり”標識を返す動作をする報告手段を有するこ
とを特徴とするコンピュータ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR95410138.2 | 1995-12-01 | ||
| EP95410138A EP0777183B1 (en) | 1995-12-01 | 1995-12-01 | Computer cache system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09167116A true JPH09167116A (ja) | 1997-06-24 |
| JPH09167116A5 JPH09167116A5 (ja) | 2004-08-12 |
Family
ID=8221568
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8315894A Pending JPH09167116A (ja) | 1995-12-01 | 1996-11-27 | コンピュータキャッシュシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5933848A (ja) |
| EP (1) | EP0777183B1 (ja) |
| JP (1) | JPH09167116A (ja) |
| DE (1) | DE69527634T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011141657A (ja) * | 2010-01-06 | 2011-07-21 | Yokogawa Electric Corp | データ処理装置 |
| JP2018537765A (ja) * | 2015-11-09 | 2018-12-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ストレージ書き込みキャッシュ管理用のハードウェア・アクセラレータの実装のためのデータ・ストレージ・システム、方法、および設計構造 |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6574682B1 (en) * | 1999-11-23 | 2003-06-03 | Zilog, Inc. | Data flow enhancement for processor architectures with cache |
| JP4097883B2 (ja) * | 2000-07-04 | 2008-06-11 | 松下電器産業株式会社 | データ転送装置および方法 |
| US7177912B1 (en) | 2000-12-22 | 2007-02-13 | Datacore Software Corporation | SCSI transport protocol via TCP/IP using existing network hardware and software |
| US20030033476A1 (en) * | 2001-08-07 | 2003-02-13 | Toshiba Tec Kabushiki Kaisha | Image forming apparatus and hard disc drive data transfer method for image forming apparatus |
| TWI229260B (en) * | 2001-08-23 | 2005-03-11 | Via Tech Inc | Driving method for data storage device |
| US6687793B1 (en) * | 2001-12-28 | 2004-02-03 | Vignette Corporation | Method and system for optimizing resources for cache management |
| US6981123B2 (en) * | 2003-05-22 | 2005-12-27 | Seagate Technology Llc | Device-managed host buffer |
| US7526608B2 (en) | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
| US7590803B2 (en) * | 2004-09-23 | 2009-09-15 | Sap Ag | Cache eviction |
| US20060143398A1 (en) * | 2004-12-23 | 2006-06-29 | Stefan Rau | Method and apparatus for least recently used (LRU) software cache |
| US20060143256A1 (en) | 2004-12-28 | 2006-06-29 | Galin Galchev | Cache region concept |
| US7539821B2 (en) | 2004-12-28 | 2009-05-26 | Sap Ag | First in first out eviction implementation |
| US7318127B2 (en) * | 2005-02-11 | 2008-01-08 | International Business Machines Corporation | Method, apparatus, and computer program product for sharing data in a cache among threads in an SMT processor |
| US8862813B2 (en) | 2005-12-29 | 2014-10-14 | Datacore Software Corporation | Method, computer program product and appartus for accelerating responses to requests for transactions involving data operations |
| US7752386B1 (en) | 2005-12-29 | 2010-07-06 | Datacore Software Corporation | Application performance acceleration |
| US9852073B2 (en) | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
| US9311240B2 (en) | 2012-08-07 | 2016-04-12 | Dell Products L.P. | Location and relocation of data within a cache |
| US9495301B2 (en) | 2012-08-07 | 2016-11-15 | Dell Products L.P. | System and method for utilizing non-volatile memory in a cache |
| US9367480B2 (en) | 2012-08-07 | 2016-06-14 | Dell Products L.P. | System and method for updating data in a cache |
| US9549037B2 (en) | 2012-08-07 | 2017-01-17 | Dell Products L.P. | System and method for maintaining solvency within a cache |
| CN107408071A (zh) * | 2015-08-21 | 2017-11-28 | 华为技术有限公司 | 一种内存访问方法、装置和系统 |
| TWI604373B (zh) * | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01281545A (ja) * | 1988-05-09 | 1989-11-13 | Fujitsu Ltd | キャッシュメモリ制御方式 |
| EP0439507B1 (en) * | 1988-10-20 | 1996-04-24 | CHUNG, David Siu Fu | Memory structure and method of utilization |
| US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
| US5289581A (en) * | 1990-06-29 | 1994-02-22 | Leo Berenguel | Disk driver with lookahead cache |
| US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
| US5420984A (en) * | 1992-06-30 | 1995-05-30 | Genroco, Inc. | Apparatus and method for rapid switching between control of first and second DMA circuitry to effect rapid switching beween DMA communications |
-
1995
- 1995-12-01 DE DE69527634T patent/DE69527634T2/de not_active Expired - Lifetime
- 1995-12-01 EP EP95410138A patent/EP0777183B1/en not_active Expired - Lifetime
-
1996
- 1996-11-08 US US08/735,056 patent/US5933848A/en not_active Expired - Lifetime
- 1996-11-27 JP JP8315894A patent/JPH09167116A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011141657A (ja) * | 2010-01-06 | 2011-07-21 | Yokogawa Electric Corp | データ処理装置 |
| JP2018537765A (ja) * | 2015-11-09 | 2018-12-20 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ストレージ書き込みキャッシュ管理用のハードウェア・アクセラレータの実装のためのデータ・ストレージ・システム、方法、および設計構造 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69527634D1 (de) | 2002-09-05 |
| EP0777183A1 (en) | 1997-06-04 |
| EP0777183B1 (en) | 2002-07-31 |
| US5933848A (en) | 1999-08-03 |
| DE69527634T2 (de) | 2002-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH09167116A (ja) | コンピュータキャッシュシステム | |
| US5537575A (en) | System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information | |
| JP2819982B2 (ja) | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム | |
| JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
| US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
| JPS58118083A (ja) | 多重処理システムにおけるキヤツシユ制御機構 | |
| JPH09223118A (ja) | スヌープキャッシュメモリ制御システム | |
| US6260118B1 (en) | Snooping a variable number of cache addresses in a multiple processor system by a single snoop request | |
| US5678025A (en) | Cache coherency maintenance of non-cache supporting buses | |
| JPH06110844A (ja) | 分散共有メモリ型マルチプロセッサシステム | |
| JPH06222992A (ja) | キャッシュシステムおよびキャッシュコントローラを制御するための方法 | |
| KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
| JPH09179779A (ja) | コンピュータシステムおよびデータ転送方法 | |
| KR970029072A (ko) | 이중 디렉토리 가상 캐쉬 및 그 제어 방법 | |
| JP3626609B2 (ja) | マルチプロセッサシステム | |
| US5546560A (en) | Device and method for reducing bus activity in a computer system having multiple bus-masters | |
| US6862659B1 (en) | Utilizing disk cache as part of distributed cache | |
| JP3507314B2 (ja) | メモリコントローラおよびコンピュータシステム | |
| JPH0784879A (ja) | キャッシュメモリ装置 | |
| JPH10254775A (ja) | 共有キャッシュメモリを有するメモリコントローラ | |
| JPH07152650A (ja) | キャッシュ制御装置 | |
| JP2689899B2 (ja) | 情報処理装置 | |
| JPH0553912A (ja) | キヤツシユメモリの制御方法 | |
| JPH02226447A (ja) | コンピユータ・システムおよびその記憶装置アクセス方法 | |
| JPH10320278A (ja) | メモリコントローラ及びコンピュータシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070104 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070109 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070320 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070326 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070404 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070713 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071109 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071116 |
|
| A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20071214 |