JPH0991199A - 階層記憶システムにおけるデバイスアクセス方法 - Google Patents
階層記憶システムにおけるデバイスアクセス方法Info
- Publication number
- JPH0991199A JPH0991199A JP7250313A JP25031395A JPH0991199A JP H0991199 A JPH0991199 A JP H0991199A JP 7250313 A JP7250313 A JP 7250313A JP 25031395 A JP25031395 A JP 25031395A JP H0991199 A JPH0991199 A JP H0991199A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- cache
- temporary
- temporary address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
データの収納および検索を効率よく行うことにより、低
速デバイスへの平均アクセス時間を短縮する。 【解決手段】 データアドレスが互いに競合するために
同時にキャッシュに収納できない複数のデータ8に対
し、仮アドレス用エリア7を確保することにより、互い
に競合せずに同時にキャッシュに収納できる仮アドレス
10を得て、そのアドレスをデータ8のデータアドレス11
と1対1に対応づけ、その対応付けをアドレス変換バッ
ファ4に登録するとともに、データ8を仮アドレス10に
あるものとしてキャッシュに収納することにより競合を
回避し、データの効率の良い収納、検索を行う。
Description
キャッシュを介して記憶領域を有する低速デバイスにア
クセスする階層記憶システムに関し、特にキャッシュ上
のデータの効率的な収納および検索によりデータの参照
および更新処理を高速化したデバイスアクセス方法に関
するものである。
イスが何らかの記憶領域を持つ低速デバイス上のデータ
を参照または更新する(以下デバイスアクセス、または
単にアクセスという)処理が頻繁に行われるため、この
デバイスアクセスに要する時間(以下アクセス時間とい
う)の短縮が重要な課題となっている。この課題の解決
策として、記憶構造を低速デバイスと高速な一時記憶装
置であるキャッシュの階層構造とし、低速デバイスに記
憶されるデータの中から、アクセス頻度の高いデータの
みを取り出してキャッシュに収納しておく階層記憶シス
テムが知られている。この階層記憶システムは、低速デ
バイスとキャッシュ上のデータの整合性の取り方によっ
て2つの種類に分類される。一つはキャッシュ上のデー
タが更新された直後に更新内容を低速デバイス上のデー
タに反映するライトスルー方式であり、もう一つは、キ
ャッシュ上のデータが更新された時点では更新されたと
いうことを記録するに止め、キャッシュ上のデータが無
効化される直前に更新内容を低速デバイス上のデータに
反映するライトバック方式である。
スはまずキャッシュを検索し、目的のデータを発見でき
た場合はそのデータを使用し、目的のデータが発見でき
なかった場合のみ低速デバイスにアクセスする。すなわ
ち、キャッシュ上に目的のデータを発見できる確率が高
いほど、平均メモリアクセス時間が短縮されるしくみに
なっている。この確率は一般にヒット率と呼ばれている
が、このヒット率を向上するためには、必要なデータの
みをキャッシュに効率よく収納することが必要となる。
り、その各ラインに設けられたインデックスを用いて検
索を行うようになっている。このインデックスは、デー
タのアドレス(以下データアドレス)の一部であるイン
デックス部と対応しており、各データはデータアドレス
のインデックス部と同じインデックスをもつラインに収
納されるようになっている。このため従来のアクセス方
法では、インデックス部が等しいアドレスは競合し、同
時にキャッシュ上に収納することができないという問題
があった。各ラインに複数のアドレスを取り込めるよう
にすることにより、競合が発生する確率を低くすること
も可能ではあるが、ハードウェアが複雑になるため十分
な高速化は期待できない。
ュ上のデータの収納および検索を効率よく行うことによ
り、低速デバイスへの平均アクセス時間を短縮するデバ
イスアクセス方法の実現が要望されている。
換を行うことによりデータ収納時のアドレスの競合をな
くし、ハードウェアを複雑化することなくキャッシュの
利用率および検索効率を向上したデバイスアクセス方法
を提供することを目的とするものである。
め、本発明によるデバイスアクセス方法は、データアド
レスが互いに競合するために同時にキャッシュに収納で
きない複数のデータに対し、予め確保したエリア上の、
競合せずに同時にキャッシュに収納できる仮アドレスを
割り当てて、そのデータを仮アドレスにあるものとして
キャッシュに収納することにより競合を回避するもので
ある。
らキャッシュを介して記憶領域を有する低速デバイスに
アクセスする階層記憶システムにおけるデバイスアクセ
ス方法において、前記低速デバイスの前記記憶領域上に
存在する複数のデータのサイズの合計以上の合計サイズ
を有する仮アドレス用エリアを前記記憶領域上に確保
し、該記憶領域上の各データ毎に、該データと同じサイ
ズのスペースを、前記仮アドレス用エリア上の、前記キ
ャッシュに互いに競合しないで同時に収納できる仮アド
レスに割り当て、前記仮アドレスを必要に応じて前記デ
ータアドレスに変換することにより前記仮アドレスによ
る前記記憶領域上のデータへのアクセスを可能にするよ
うに、前記各仮アドレスと該仮アドレスが割り当てられ
た前記記憶領域上のデータのデータアドレスとを1対1
に対応付けて、前記アドレス変換バッファに登録すると
ともに、前記キャッシュ上に前記記憶領域上の前記複数
のデータのうち全部もしくは一部のデータを前記仮アド
レスが示す位置に存在するデータとして記憶せしめ、こ
れにより、前記アドレス変換バッファおよび前記キャッ
シュにおいて、前記仮アドレスを使用して検索を行っ
て、前記記憶領域上のデータにアクセスすることを特徴
とするものである。
バイスと低速デバイスの関係としては、例えばCPUと
メモリ、CPUと入出力デバイス、メモリとハードディ
スク、メモリとCD−ROMなどが挙げられる。さらに
キャッシュからメモリへのアクセスを別のキャッシュ
(2次キャッシュ)を介して行う場合も考えられる。
の競合を防止するために、処理を行う間、仮に定義され
るアドレスであり、仮アドレスの示す位置に実際のデー
タを配置する必要はない。通常キャッシュには、データ
アドレスとデータが収納されるが、本発明では仮アドレ
スとデータが収納され、そのデータは仮アドレスに存在
するデータのように扱われる。すなわち実際に処理を行
う際は、データアドレスではなく仮アドレスを用いる。
ータアドレスとの対応付けを登録する機能や、与えられ
た仮アドレスをデータアドレスに変換する変換機能など
を備えているものとし、さらに本発明の効果を十分に得
るためにはキャッシュと同程度またはそれ以上の速度を
有することが望ましい。
は、予め割り当てられる仮アドレスの範囲を規定してお
く方法、処理プログラムの中で所定の大きさの変数とし
て静的に定義する方法、またはプログラミング言語の機
能を利用して動的に確保する方法などがある。前述のよ
うにこのエリアには実際のデータは配置されないが、処
理の都合上各データと同じサイズ分のスペースを割り当
てておく必要がある。この際、エリアはまとまった一つ
のエリアである必然性はなく、キャッシュ収納時の競合
が発生しないようなアドレスが確保できれば、いくつか
にわけて確保してもよい。この場合は、エリアの合計サ
イズがデータの合計サイズより大きければよい。但し、
このエリアのサイズをキャッシュのサイズよりも大きく
とった場合は、対象とする全てのデータをキャッシュに
収納することは不可能であるため、本発明の効果は十分
には得られない。すなわちエリアの合計サイズはキャッ
シュのサイズと同等またはそれ以下であることが望まし
い。
付けの登録は、ソフトウェアまたはハードウェアによっ
て行われる。タイミングとしては仮アドレス用エリア確
保より後で、データにアクセスする処理が行われるより
前であればいつでもよい。例えば、プログラムの中で仮
アドレス用エリアを確保した後に、各々のデータを仮ア
ドレスに対応付け、それぞれアドレス変換バッファが提
供するアドレス登録機能を利用して登録を行う。この場
合対応づけとはアドレスの対応付けであり、データのコ
ピーを行う必要はない。なお、登録すべき対応付けの数
に比べてアドレス変換バッファが小さい場合は、行う処
理を複数の処理単位に分割し、各処理単位毎にその処理
で使用するデータのアドレス対応付けのみを登録するこ
とによりアドレス変換バッファを使い分けることもでき
る。この際、新たな対応付けでは、現在使用中の仮アド
レスを再使用することになるため、キャッシュ上の仮ア
ドレスとデータを一旦無効にする必要がある。このよう
な場合、仮アドレスに対応するデータが現在キャッシュ
上に有るか、また有る場合それは低速デバイス上のデー
タと一致しているかといった情報を、アドレスの対応付
けとともにアドレス変換バッファに登録しておけば、キ
ャッシュを検索することなく登録済みの対応付けに対す
る処理を決定することができ、新たな対応付けの登録処
理を迅速に行うことができる。
作業をより高速に行う方法を提供する。すなわち、登録
する所定数のデータアドレスが一定の増減値をもつ列を
なすとき、列の端のデータアドレスとそのデータアドレ
スに対応する仮アドレスとを、増減値とともにアドレス
変換バッファに登録すれば、端から2番目以降のデータ
アドレスの登録については、アドレス変換バッファが、
データアドレスを1つ前に登録されたデータアドレスを
基準として増減値分移動した位置のアドレスとみなし、
仮アドレスを1つ前に登録された仮アドレスを基準とし
て対応するデータアドレスが示すデータのサイズ分移動
した位置のアドレスとみなして登録を行うようにする。
これにより、登録作業が簡素化され、高速化が可能とな
る。
スに存在するデータとして記憶せしめる方法としては、
実際に仮アドレスがアクセスされた時点で、アドレス変
換バッファによりデータアドレスを得てそのデータをア
クセスされた仮アドレスとともにキャッシュ上に記憶せ
しめてもよいが、例えば、アドレス変換バッファへのア
ドレス対応付けの登録が行われた時点で、実際にそのア
ドレスがアクセスされる以前に上記と同じ方法で記憶せ
しめてもよい。前者の場合、本発明の効果が得られるの
は2回目以降のアクセスとなるが、後者の場合は最初の
アクセスから効果が得られる。
は、仮アドレスの一部の桁の値をインデックスとみなし
(以下インデックス部という)、アドレス変換バッファ
をインデックス部の種類の数と同じ数のエリアに分割
し、各エリアに対してインデックスを割り当て、仮アド
レスのインデックス部と同じインデックスが割り当てら
れたエリアに、仮アドレスの、インデックス部以外の桁
の値を前記データアドレスとともに登録しておけば、検
索時には、仮アドレスのインデックス部により、仮アド
レスが登録されているエリアを識別し、次にインデック
ス部以外の桁の値を用いて、識別したエリア内のみの検
索を行うだけでよい。これは、検索の手順としてはキャ
ッシュ検索などに利用される検索手順と同じであるが、
検索の対象がアドレス変換バッファの場合、データを各
エリアに均等に配置することが可能であるため、データ
配置が無作為に行われた場合に比べ、本検索手順の効果
は大きくなる。
ッシュの検索と並列に行い、キャッシュ上に仮アドレス
が示すデータが存在しないことがわかった時点では、既
にそのデータのデータアドレスがわかっているようにす
る。これにより、キャッシュ検索がヒットした場合もミ
スした場合も、本発明を用いないアクセス方法と同等の
時間でアクセスすることができる。すなわち、 (平均アクセス時間)=(キャッシュヒット時のアクセ
ス時間)×(ヒット率)+(キャッシュミス時のアクセ
ス時間) ×(ミス率) とした場合、ヒット時、ミス時のアクセス時間は従来と
同等のまま、ヒット率のみ向上させることになり、結果
的に平均アクセス時間を短縮することが可能となる。
ずしもアクセスする全てのデータに対して用いる必要は
なく、本発明を用いたいデータのみ、仮アドレスを割り
当ててデータアドレスとの登録付けを行えばよい。すな
わち、そのシステムの設計者が、行う処理や使用するデ
バイスの特性に合わせて本発明を使用するデータを決定
することができるため、不当に資源が消費されるといっ
たことがなく、無理のない高速化が実現できる。
方式で動作するもの、ライトバック方式で動作するもの
のいずれでも用いることができる。
れば、データアドレスが互いに競合するために同時にキ
ャッシュに収納できない複数のデータに対し、予め確保
したエリア上の、競合せずに同時にキャッシュに収納で
きる仮アドレスを割り当てて、そのデータを仮アドレス
にあるものとしてキャッシュに収納することによりキャ
ッシュ上のデータの収納および検索を効率よく行ってキ
ャッシュ検索のヒット率を高めることが可能となるの
で、低速デバイスへの平均アクセス時間を短縮すること
ができる。情報処理システムにおいては、容量、コスト
等の問題から処理速度の遅いデバイスを使わざるを得な
いことも多く、キャッシュを最大限に活用した高速デバ
イスアクセス方法の実用上の効果はきわめて大きい。
セス方法の実施の形態を図面にもとづいて説明する。
法の全体の構成を示す図である。図1に示すように、本
実施の形態ではCPU1がキャッシュ2を介してメモり
3にアクセスする階層記憶システムに、2種のアドレス
の変換を行うアドレス変換バッファ4が、CPU1、キ
ャッシュ2およびメモリ3とデータ伝達可能に接続され
ている。本実施の形態では処理の高速化を図るために、
伝達手段はデータバス5とアドレスバス6に分け、アド
レス変換バッファはアドレスバス6に接続されている
が、データバス5とアドレスバス6を物理的に同一のバ
スとし、アドレス変換バッファをそのバスに接続しても
よい。
4の作用を示すものである。本実施の形態では、メモリ
3上のデータ8のうち網掛けとなっているものについて
本発明によるデバイスアクセス方法が適用されている。
メモリ3上にはデータ8のうち網掛けとなっているもの
の合計サイズ分の仮アドレス用エリア7が確保されてい
る。仮アドレス用エリア7を確保する方法としては、予
め割り当てられる仮アドレスの範囲を規定しておく方
法、処理プログラムの中で所定の大きさの変数として静
的に定義する方法、またはプログラミング言語の機能を
利用して動的に確保する方法などがあり、本実施の形態
でも場合に応じてこれらの方法を使い分けているが、実
際にデータ8へのアクセスが行われる以前に仮アドレス
用エリア7が確保されていれば、いずれの方法でもよ
い。なお、この仮アドレス用エリア7は仮アドレスを定
義するためのものであり、スペース9にデータ8はコピ
ーされないが、プログラムの処理の都合上、例えばa[0]
とC[0], a[4]とC[1]はそれぞれサイズが等しくなるよう
に確保する必要がある。この際、C[0]のアドレスとC[1]
のアドレスはキャッシュ収納時の競合が発生しないよう
な関係にある。この場合a[0]の仮アドレスがC[0]のアド
レス、a[4]の仮アドレスがC[1]のアドレスとなる。同様
にC[2], C[3]のアドレスも割り当てられている。アドレ
ス変換バッファ4には、仮アドレス用エリアに割り当て
られた仮アドレス10と、実際のデータ8が存在する位置
を示すデータアドレス11との対応付けが登録される。す
なわち、アドレス変換バッファ4は、このようなアドレ
ス対応付け登録機能、および与えられた仮アドレスから
対応するデータアドレスを導き出す変換機能を持つ。
バッファを備えた階層記憶システムにおける本発明のデ
バイスアクセス方法の各種実施の形態を説明する。
ャッシュの構造を示す図である。図3に示すキャッシュ
2は2つのライン12からなり、各ライン毎にvalid bit
13とdirty bit 14を持つ。valid bit 13はそのラインの
データが有効か否かを示すフラグであり、dirty bit 14
は、キャッシュがライトバック方式で動作する場合に存
在するもので、そのラインのデータがCPUによって更
新されているか否かを示すフラグである。データ8はラ
イン単位で扱われるため通常メモリ上で隣接している複
数のデータが一括して収納される。キャッシュにデータ
を収納する場合には、そのデータを検索するためのアド
レスが一緒に収納される。このアドレスは通常はデータ
アドレスであるが、本発明では、仮アドレス10とデータ
アドレス11のいずれかが収納される。アドレスは図3に
示すように、通常Tag 15、Index16、Offset 17 の3つ
の部分に分けて解釈される。Index 16はライン12に対応
する。例えば、図3のようにラインが2つしかないキャ
ッシュの場合、Index 16は1ビットあればよく、1ビッ
トで表せる2種類の値、すなわち0と1がそれぞれキャ
ッシュのラインに対応する。Offset 17 は一括してライ
ンに取り込まれた複数のデータ列の中のどの位置にその
データが存在するかを示し、Tag 15はアドレスのそれ以
外の部分とみなすことができ、アドレスとしてキャッシ
ュに収納されるのはこのTag 15の部分である。このよう
なアドレスの解釈のもとで、キャッシュの検索は以下の
手順で行われる。すなわち、検索したいアドレスのInde
x 16によりラインを検索し、Tag 15の比較によりそのデ
ータがキャッシュ上に存在するか否かを判断し、さらに
そのデータが有効かどうかをvalid bit 13によって判断
し、Offset 17 によってデータをみつける。なお、本実
施の形態では、あるアドレスが与えられた場合、そのア
ドレスについてキャッシュ検索と、アドレス変換バッフ
ァ検索が同時に行われるため、図3には、アドレス変換
バッファの構造についても概要を示す。この構造によれ
ば、あるアドレスが与えられた場合、アドレス変換バッ
ファの検索結果がヒットの場合はデータアドレス11、ミ
スの場合は与えられたそのままのアドレスがメモリアク
セスアドレス18とみなされる。
ドレス変換バッファを用いた場合の本発明の効果を図4
に示す。ここでは、a[0]からa[7]までのアドレスが図4
に示す位置に存在し、さらにその中の網掛けのデータに
ついて仮アドレスを図4のように割り当てられている。
仮アドレスを用いない従来方式でデータa[0]とa[4]が収
納される場合、2つのデータのアドレスはインデックス
が同じく0のため、同時にはキャッシュに収納されな
い。よって、a[0]収納後、a[4]へのアクセスが必要にな
るとa[0]はキャッシュから追い出され、a[4]がキャッシ
ュに収納され、再びa[0]がアクセスされるとa[4]が追い
出され、a[0]がキャッシュ上に収納されることになる。
これに対し、本発明による方式では、データアドレスを
仮アドレスに置き換えることにより、a[0]とa[4]のアド
レスのインデックスが異なるものとなるため、2つのデ
ータを同時にキャッシュに収納することが可能となる。
と異なり、valid bit 13とdirty bit 14をライン毎では
なくデータ毎に持つキャッシュの構造の例を図5に示
す。この場合、データの移動や無効化はライン毎ではな
く、データ毎に行われる。このような構造を持つキャッ
シュを用いた場合、本発明では図6に示すような効果が
得られる。図6では、図のように配置されたデータのう
ち網掛けとなっているa[0], a[4], b[0][0], b[1][0]が
キャッシュに収納されている。図4の場合と同様、4つ
のデータのアドレスはインデックスが等しいため、従来
方式では、キャッシュ上には一度に一つのデータしか収
納されない。ここで図4の場合は、データの無効化や移
動がライン毎にしか行われないため、本発明を用いても
同時に2つのデータしか収納することができないが、図
5の構造を持つキャッシュの場合、データの無効化や移
動がデータ毎に行えるため、一度に4つのデータを収納
することができ、本発明の効果をさらに高めることがで
きる。
ャッシュを用いた実施の形態を中心に説明する。上記の
ように、仮アドレスを用いたアクセスを行うためには実
際のアクセスが生じるより前に、アドレス変換バッファ
にアドレスの対応付けを登録しておく必要がある。図
7、図8はこのアドレス変換バッファへのアドレス対応
付け登録処理の流れを示すものである。このうち図7は
キャッシュがライトスルー方式で動作するものの場合で
あり、図8はライトバック方式で動作するものの場合を
示す。いずれの場合も、既に登録されているエントリに
対して所定の処理を施してから登録を行わなければなら
ない。
たい仮アドレスを使用してアドレス変換バッファにアク
セスする。これは、同じ仮アドレスが既に登録済みか否
かを確認するためであり、アドレス変換バッファの検索
の結果、同じ仮アドレスが見つかった場合は、キャッシ
ュにその仮アドレスが収納されているかどうかを確認
し、収納されている場合はそのデータを無効化すること
により、その仮アドレスを使用可能にする。その仮アド
レスが登録されていなかった場合は、アドレス変換バッ
ファのエントリをリプレースするという形で登録を行う
が、この際、リプレースするエントリが使用されていな
いエントリ、すなわち無効なエントリであればそのまま
登録を行うことができる。全てのエントリが有効で空き
がない場合は、その中の一つを追い出す形で登録を行わ
なければならない。この場合、追い出すエントリについ
ては、キャッシュにそのアドレスが収納されているかど
うかを確認し、収納されている場合はそのデータを無効
化しなければならない。
バックキャッシュの場合はキャッシュに収納されている
データを無効化する前にdirty bit を確認し、dirty bi
t が1だった場合はキャッシュデータをメモリに反映し
なければならないという点である。なお、上記の処理が
図3の構造を持つキャッシュを用いた実施の形態で行わ
れる際、ライトスルー方式のキャッシュの場合の処理
は、図7と同じになるが、ライトバック方式のキャッシ
ュの場合の処理は、図9に示す処理となる。
了した状態で、データへのアクセスが行われる場合につ
いて説明する。
た場合のアクセス処理を示す。この際、図10から図12の
処理図には、アドレス変換バッファへの検索に次いでキ
ャッシュの検索が行われているように示されているが、
実際のハードウェアの処理としては図3、図5に示した
ように、検索の対象となるアドレスがアドレス変換バッ
ファとキャッシュに同時に渡されるため、検索は並列に
行われる。
について説明する。本発明のデバイスアクセス方法を使
用してアクセスを行うデータに関しては、必ずアドレス
変換バッファに登録されていることが前提となるため、
アドレス変換バッファの検索を行うことにより、検索を
行うアドレスが仮アドレスか、あるいはデータアドレス
かを識別することができる。すなわち、アドレス変換バ
ッファの検索の結果見つからなかったアドレスは、仮ア
ドレスではなくデータアドレスであり、通常のキャッシ
ュと同じ動作で処理すればよいことになる。アドレス変
換バッファの検索結果がヒットで、キャッシュの検索結
果がヒットとなる場合には、最も高速なアクセスが実現
する。アドレス変換バッファの検索結果はヒットした
が、キャッシュ検索はミスした場合については、そのア
ドレスは仮アドレスであるといえるので、アドレス変換
バッファの変換機能によりその仮アドレスに対応するデ
ータアドレスを得て、そのデータアドレスで再度キャッ
シュへのアクセスを試みる。データアドレスによる検索
結果もミスとなった場合は、メモリにアクセスしてデー
タを読み出す。データアドレスによる検索結果がヒット
となった場合については2通りの処理がある。図10から
図13に示した実施の形態はキャッシュ上に、同じデータ
が仮アドレスにあるデータとして収納されると同時に、
従来通りデータアドレスにあるデータとして収納される
ことを許さない場合の処理である。この場合、仮アドレ
スでキャッシュを検索してミスとなったものが、データ
アドレスで検索してヒットとなることは、明らかに2通
りの収納を許していることになるので、データアドレス
で収納されているデータを無効化する(19)。しかし、
2通りの収納を許す場合は、処理19においてキャッシュ
データの無効化は行わない。
するキャッシュを用いた場合のデータの書込み処理につ
いて説明する。読込処理と同様、アドレス変換バッファ
の検索結果がミスの場合は、データアドレスとみなして
通常のキャッシュと同様の処理を行う。またアドレス変
換バッファの検索結果、キャッシュの検索結果ともにヒ
ットの場合に最も高速なアクセスが実現する。この場
合、まずキャッシュのデータを更新し、さらにアドレス
変換バッファから読み出したデータアドレスを使用して
メモリのデータを更新する。アドレス変換バッファの検
索結果はヒットしたが、キャッシュ検索はミスした場合
についてもデータ読込みの場合と同様、そのアドレスは
仮アドレスであるといえるので、アドレス変換バッファ
の変換機能によりその仮アドレスに対応するデータアド
レスを得て、そのデータアドレスで再度キャッシュへの
アクセスを試みる。その結果ヒットした場合はキャッシ
ュのデータを更新した後メモリのデータを更新し、ミス
した場合は直接メモリのデータを更新する。
するキャッシュを用いた場合のデータの書込処理につい
て説明する。図11の処理に、ライトバック方式の動作に
必要なフラグ処理が加わる。なお、同じデータが仮アド
レスにあるデータとして収納されると同時に、従来通り
データアドレスにあるデータとして収納されることを許
す場合は処理20が異なる。すなわち2通りの収納を許す
場合は、キャッシュデータを無効化せずに、更新しても
よい。
るもので、ライトバック方式で動作するキャッシュにお
いて、キャッシュに新たなデータを収納する際のリプレ
ース動作を示すものである。すなわち、リプレースしよ
うとするキャッシュデータがメモリに反映すべきものか
どうかを判断するためにdirty bit を読みとる。従来方
式と異なる点は、扱うアドレスが仮アドレスか否かを判
断するためにアドレス変換バッファの検索を行い、仮ア
ドレスの場合はバッファの変換機能によりデータアドレ
スを得てメモリへの反映を行い、データアドレスの場合
にはそのアドレスを用いてメモリへの反映を行うという
点である。
セス方法の主な流れであるが、次に上記アクセス方法の
中で行われている各種処理について、さらに効果的な方
法を用いた例について説明する。
法について図14を用いて説明する。アドレス変換バッフ
ァの検索方法としては、登録されている仮アドレスを一
つ一つ検索しても良いが、図14に示す方法では、アドレ
スのビットを上位と下位の2つに分け、下位のビットを
バッファのラインの選択に使い、そのライン内のタグと
そのアドレスのタグとを比較している。これにより、比
較を行うためのハードウェアが単純化されるだけでなく
処理速度も高速化する。この方法は、検索方法としては
従来からキャッシュなどに用いられている方法である
が、アドレス変換バッファの検索に用いた場合、アドレ
スが競合が発生しないように割り当てられたものである
ことから、より大きな効果が得られる。
説明する。本実施の形態では、一定条件を満たしたアド
レスの対応付けの登録をより高速に行うために、図15、
図16に示す方式を用いることができる。すなわち、登録
するデータアドレスが、一定の増減値を持つ列をなす場
合に、図15のアドレス変換バッファ4に、仮アドレスと
データアドレスの他に、データアドレスの増減値を登録
する。一定の増減値を持たないデータアドレスは増減値
を0とすることにより同様に扱うことができる。これに
より、最初のアドレス対応付けのみを増減値とともに登
録すれば、それ以降の登録については、アドレスをその
増減値を元に割り出すことにより、一つ一つ登録しなく
ても登録を行うことができるようになる。図16に示すよ
うに、アドレス変換バッファの検索結果がヒットで、登
録されている増減値(インクリメント)が0以外の場合
に、次のデータの仮アドレスを、アクセス中の仮アドレ
スにデータサイズを加えたものとし、次のデータのデー
タアドレスをアクセス中のデータのデータアドレスにイ
ンクリメントを加えたものとし、次のデータのインクリ
メントをアクセス中のデータのインクリメントとして次
のデータの登録を行う。このような登録方法を用いた場
合の効果を図17、図18にの効果を示す。図17、図18はC
言語で書かれたプログラムの一例であり、map は一つの
対応付けを登録する命令である。本登録方法を用いない
場合(図17)、全ての対応付けについてmap 命令を発行
することにより登録を行わなければならないが、本登録
方法を用いた場合、図18に示すように最初の1つの対応
付けについてのみmap 命令を発行すればよい。
自動プリフェッチについて説明する。ここでプリフェッ
チとは、データを前もってキャッシュ上に収納しておく
ことをいう。通常キャッシュ上には最初からデータが収
納されているわけではなく、最初にデータがアクセスさ
れた際にそのデータがキャッシュ上に収納される。すな
わち、キャッシュにヒットする可能性があるのは2回目
以降のアクセスであり、1回目については、キャッシュ
の効果は期待できない。一旦キャッシュに収納されて、
他のデータ収納のために追い出された場合も同様で、次
にアクセスされるときにはキャッシュの効果は期待でき
ない。これが、図10、図11、図12で示した例の中の、ア
ドレス変換バッファの検索結果がヒットであったのにも
かかわらず、キャッシュの検索結果がミスとなる場合に
相当する。このケースが発生する確率を減らし、キャッ
シュヒット率を上げるために、本実施の形態では、図19
に示すように新たにプリフェッチコントロールユニット
を設け、アドレス変換バッファにアドレスの対応付けが
登録されたら、その仮アドレスへのアクセスを待たず
に、登録されたデータアドレスを用いてデータにアクセ
スし、登録された仮アドレスとともにキャッシュに収納
するようにする。この際、プリフェッチ処理完了前にデ
ータアクセスが行われないようにするため、図20の処理
図に示すようにプリフェッチビットを設け、キャッシュ
アクセス前にプリフェッチビットを確認し、もし0でな
ければプリフェッチ処理実行中とみなし、0になるまで
待つようにする。図21、図22、図23はプリフェッチ処理
を追加した場合のデータの読込処理、書込処理である。
仮アドレスによるキャッシュ検索結果がミスの場合に、
すぐにデータアドレスによる再検索を行う代わりにプリ
フェッチビットを確認し、もしプリフェッチ処理が行わ
れている最中、すなわちプリフェッチビットが1であれ
ば、0になるまで待って仮アドレスによる再検索を行
う。図22、図23も同様に、それぞれ図11、図12にプリフ
ェッチビット判定処理22を追加している。
情報を登録するアドレス変換バッファについて説明す
る。図24と図31は、アドレス変換バッファにアドレスの
対応付けとともに、そのアドレスに関係のあるキャッシ
ュデータが有効か、あるいは更新されているかといった
付加情報も登録できるアドレス変換バッファである。図
24と図31の異なる点は、仮アドレスにあるものとしてキ
ャッシュに収納したデータを、同時に本来のデータアド
レスにあるデータとしても収納することに関し、図24の
場合はこれを許さず、図31の場合はこれを許すという点
である。図31では、これを許したデータアクセスを実現
するため、アドレス変換バッファへの登録情報の一つと
して、データアドレスによりキャッシュに収納されてい
るデータが有効かどうかを知るためのデータアドレスva
lid bit を持つ。このようなアドレス変換バッファを用
いることにより、キャッシュにアクセスすることなくキ
ャッシュ内のデータに関する情報が得られるので、無駄
な検索処理がなくなる。またこの付加情報として、vali
d bit を追加したことにより、キャッシュが図3に示し
た構造を持つものであっても、キャッシュへの書込みや
メモリへの反映がデータ毎に行えるので、キャッシュの
利用率を著しく高めることができる。
用いた場合のアクセス方法について説明する。図25から
図30は図24のアドレス変換バッファの場合のアクセス処
理の流れで、図25はライトスルー方式キャッシュの場合
のアドレス対応付け登録処理、図26はライトバック方式
キャッシュの場合のアドレス対応付け登録処理、図27は
データ読込処理、図28はライトスルー方式キャッシュの
場合の書込処理、図29はライトバック方式キャッシュの
場合の書込処理、図30はキャッシュデータリプレース処
理を示す。キャッシュ情報をアドレス変換バッファに登
録しない場合、例えば図7の対応付け登録処理では、仮
アドレスによるアドレス変換バッファの検索結果がヒッ
トである場合にキャッシュの検索を行って、無効化すべ
きキャッシュデータがあるかどうかを調べている。これ
に対し、図25のアドレス対応付け登録処理では処理23に
示すようにアドレス変換バッファ内の情報を見るだけで
無効化すべきキャッシュデータがあるかどうかがわか
る。同様に、図32から図35は図31のアドレス変換バッフ
ァの場合のアクセス処理の流れで、図32はライトバック
方式キャッシュの場合のアドレス対応付け登録処理、図
33はデータ読込処理、図34はライトスルー方式キャッシ
ュの場合の書込処理、図35はライトバック方式キャッシ
ュの場合の書込処理を示す。これらは、図25から図30の
処理にさらにデータアドレスのvalid bit の判定処理を
加えたものである。
さらに効果的な方法を各種用いることにより、さらに高
速なメモリアクセスを実現することができる。
成を示す図
例の作用を示す図
示す図
を示す図
を示す図
を示す図
バッファへのアドレス対応付け登録処理(ライトスルー
方式キャッシュの場合)を示すフローチャート(以下、
単に「...処理」という)
バッファへのアドレス対応付け登録処理(ライトバック
方式キャッシュの場合)
バッファへのアドレス対応付け登録処理(ライトバック
方式キャッシュの場合)
込処理
込処理(ライトスルー方式の場合)
込処理(ライトバック方式の場合)
データリプレース処理
検索方法の説明図
他の例の作用を示す図(アドレスが一定間隔の場合)
対応付け処理
付け処理
応付け処理
バッファの一例の作用を示す説明図
イトスルー方式の場合)
イトバック方式の場合)
説明図(キャッシュ情報を持つ場合)
合のアドレス対応付け登録処理(ライトスルー方式キャ
ッシュの場合)
合のアドレス対応付け登録処理(ライトバック方式キャ
ッシュの場合)
のデータの読込処理
のデータの書込処理(ライトスルー方式の場合)
のデータの書込処理(ライトバック方式の場合)
のキャッシュデータリプレース処理
さらに他の例の作用を示す図(キャッシュ情報を持つ場
合)
合のアドレス対応付け登録処理(ライトバック方式キャ
ッシュの場合)
合のデータの読込処理
合のデータの書込処理(ライトスルー方式の場合)
合のデータの書込処理(ライトバック方式の場合)
Claims (8)
- 【請求項1】 高速デバイスからキャッシュを介して記
憶領域を有する低速デバイスにアクセスする階層記憶シ
ステムにおけるデバイスアクセス方法において、 2種のアドレス間の変換を行うアドレス変換バッファ
を、前記高速デバイス、前記低速デバイスおよび前記キ
ャッシュにデータ伝達可能に接続し、 前記低速デバイスの前記記憶領域上に存在する複数のデ
ータのサイズの合計以上の合計サイズを有する仮アドレ
ス用エリアを前記記憶領域上に確保し、 該記憶領域上の各データ毎に、該データと同じサイズの
スペースを、前記仮アドレス用エリア上の、前記キャッ
シュに互いに競合しないで同時に収納できる仮アドレス
に割り当て、 前記仮アドレスを必要に応じて前記データアドレスに変
換することにより前記仮アドレスによる前記記憶領域上
のデータへのアクセスを可能にするように、前記各仮ア
ドレスと該仮アドレスが割り当てられた前記記憶領域上
のデータのデータアドレスとを1対1に対応付けて、前
記アドレス変換バッファに登録するとともに、 前記キャッシュ上に前記記憶領域上の前記複数のデータ
のうち全部もしくは一部のデータを前記仮アドレスが示
す位置に存在するデータとして記憶せしめ、 これにより、前記アドレス変換バッファおよび前記キャ
ッシュにおいて、前記仮アドレスを使用して検索を行っ
て、前記記憶領域上のデータにアクセスすることを特徴
とするデバイスアクセス方法。 - 【請求項2】 前記階層記憶システムの前記高速デバイ
スがCPUであり、前記低速デバイスがメモリであるこ
とを特徴とする請求項1記載のデバイスアクセス方法。 - 【請求項3】 前記アドレス変換バッファにおける前記
仮アドレスを使用した検索を、 前記仮アドレスの一部の桁の値を識別子とみなし、 前記アドレス変換バッファを前記識別子の種類の数と同
じ数のエリアに分割し、 前記各エリアに対して前記識別子を割り当て、 前記仮アドレスの識別子と同じ識別子が割り当てられた
エリアに、前記仮アドレスの、前記識別子として用いた
桁以外の桁の値を前記データアドレスとともに登録し、 検索時に、 前記仮アドレスの前記識別子により、前記仮アドレスが
登録されているエリアを識別し、 次に前記識別子として用いた桁以外の桁の値を用いて、
前記識別したエリア内のみの検索を行うことにより行う
ことを特徴とする請求項1または2記載のデバイスアク
セス方法。 - 【請求項4】 前記アドレス変換バッファへの前記対応
付けの登録を、 登録する所定数のデータアドレスが一定の増減値をもつ
列をなすとき、 前記列の端のデータアドレスと該データアドレスに対応
する前記仮アドレスとを、前記増減値とともに前記アド
レス変換バッファに登録し、 前記アドレス変換バッファは、前記端から2番目以降の
前記データアドレスの登録に際し、 前記データアドレスを1つ前に登録されたデータアドレ
スを基準として前記増減値分移動した位置のアドレスと
みなし、 前記仮アドレスを1つ前に登録された仮アドレスを基準
として対応する前記データアドレスが示すデータのサイ
ズ分移動した位置のアドレスとみなすことにより行うこ
とを特徴とする請求項1から3のいずれか1項記載のデ
バイスアクセス方法。 - 【請求項5】 前記アドレス変換バッファに前記対応付
けが登録された後、前記高速デバイスが前記アドレス変
換バッファおよび前記キャッシュに最初にアクセスする
より前に、 前記対応付けをされたデータアドレスが示す位置に存在
するデータを、前記仮アドレスが示す位置に存在するデ
ータとして前記キャッシュ上に記憶せしめることを特徴
とする請求項1から4のいずれか1項記載のデバイスア
クセス方法。 - 【請求項6】 前記アドレス変換バッファに、前記キャ
ッシュ上のデータに関する情報を保存することを特徴と
する請求項1から5いずれか1項記載のデバイスアクセ
ス方法。 - 【請求項7】 前記キャッシュが、該キャッシュ上のデ
ータが前記高速デバイスによって更新された際に、更新
内容を直ちに前記記憶領域上のデータに反映するライト
スルー方式で動作するものであることを特徴とする請求
項1から6のいずれか1項記載のデバイスアクセス方
法。 - 【請求項8】 前記キャッシュが、該キャッシュ上のデ
ータが前記高速デバイスによって更新された際に、前記
キャッシュ上に前記更新が行われたことを記録し、前記
キャッシュ上のデータが無効化される前に、更新内容を
前記記憶領域上のデータに反映するライトバック方式で
動作するものであることを特徴とする請求項1から6の
いずれか1項記載のデバイスアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25031395A JP3709586B2 (ja) | 1995-09-28 | 1995-09-28 | 階層記憶システムにおけるデバイスアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25031395A JP3709586B2 (ja) | 1995-09-28 | 1995-09-28 | 階層記憶システムにおけるデバイスアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0991199A true JPH0991199A (ja) | 1997-04-04 |
JP3709586B2 JP3709586B2 (ja) | 2005-10-26 |
Family
ID=17206057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25031395A Expired - Fee Related JP3709586B2 (ja) | 1995-09-28 | 1995-09-28 | 階層記憶システムにおけるデバイスアクセス方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3709586B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128684A (en) * | 1997-06-30 | 2000-10-03 | Nec Corporation | Bus bridge |
WO2009110446A1 (ja) * | 2008-03-04 | 2009-09-11 | 日本電気株式会社 | メモリマッピング方法、メモリシステム |
JP5293611B2 (ja) * | 2007-12-12 | 2013-09-18 | 日本電気株式会社 | メモリ再配置システム |
-
1995
- 1995-09-28 JP JP25031395A patent/JP3709586B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128684A (en) * | 1997-06-30 | 2000-10-03 | Nec Corporation | Bus bridge |
JP5293611B2 (ja) * | 2007-12-12 | 2013-09-18 | 日本電気株式会社 | メモリ再配置システム |
WO2009110446A1 (ja) * | 2008-03-04 | 2009-09-11 | 日本電気株式会社 | メモリマッピング方法、メモリシステム |
JP5293974B2 (ja) * | 2008-03-04 | 2013-09-18 | 日本電気株式会社 | メモリマッピング方法、メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
JP3709586B2 (ja) | 2005-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
US6647466B2 (en) | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy | |
US5226133A (en) | Two-level translation look-aside buffer using partial addresses for enhanced speed | |
US5689679A (en) | Memory system and method for selective multi-level caching using a cache level code | |
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
EP0780769A1 (en) | Hybrid numa coma caching system and methods for selecting between the caching modes | |
US20040024971A1 (en) | Method and apparatus for write cache flush and fill mechanisms | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
JPH09190382A (ja) | コンピュータメモリシステムの競合キャッシュ | |
JPH06243039A (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
JPH08272682A (ja) | ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置 | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US6959363B2 (en) | Cache memory operation | |
KR100710922B1 (ko) | 캐시 관리 방법 | |
US7949833B1 (en) | Transparent level 2 cache controller | |
US5781922A (en) | Page boundary caches | |
US6598124B1 (en) | System and method for identifying streaming-data | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
JP3709586B2 (ja) | 階層記憶システムにおけるデバイスアクセス方法 | |
WO2002027498A2 (en) | System and method for identifying and managing streaming-data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050419 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050531 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050801 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |