JPS6324337A - キャッシュ・メモリ管理方式 - Google Patents

キャッシュ・メモリ管理方式

Info

Publication number
JPS6324337A
JPS6324337A JP62163828A JP16382887A JPS6324337A JP S6324337 A JPS6324337 A JP S6324337A JP 62163828 A JP62163828 A JP 62163828A JP 16382887 A JP16382887 A JP 16382887A JP S6324337 A JPS6324337 A JP S6324337A
Authority
JP
Japan
Prior art keywords
cache memory
tlb
cache
memory
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.)
Pending
Application number
JP62163828A
Other languages
English (en)
Inventor
Esu Uoorii Jiyunia Uiriamu
ウイリアム・エス・ウオーリイ.ジユニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Publication of JPS6324337A publication Critical patent/JPS6324337A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は仮想アドレスを用いるコンピュータ・システム
釦おいて、キャッシュ−メモリへのアクセス時間を改良
するキャッシュ・メモリ管理方式〔従来技術およびその
問題点〕 たいていの現代のコンピュータ・システムは中央処理装
置(CPU)と主メモリを含む。CPUが命令をデコー
ドし実行してデータを処理できるスピードは、このとこ
ろ長いこと、命令およびオペランドを主メモリからCP
Uへ転送できるスピードを越えていた。この不一致によ
って生じる問題を解決させようとして、多くのコンピュ
ータはCPUと主メモリの間にキャッシュ・メモリつま
りバッファを投げている。
キャッシュ・メモリは小型の高速バッファメモリで、C
PUによって近い将来用いられると思われる、主メモリ
の内容の部分を一時的に保持することに用いるものであ
る。キャッシュ・メモリの主目的は、データや命令のフ
ェッチのためのメモリ・アクセスを実行するのに必要な
時間を短縮することである。キャッシュ・メモリに置か
れた情報は主メモリに置かれたものよりずっと少ない時
間でアクセスできる。したがって、キャッシュ・メモリ
をもったCPUば、命令およびオペランドがフェッチさ
れたり、記憶されたりするのを待つのにかなり短かい時
間しか消費する必安がない。
たとえば、典型的な大規模なコンビエータでは、主メモ
リは300〜600ナノ秒でアクセスできるが、他方、
キャッシュ・メモリからは情報は50〜100ナノ秒で
得ることができる。このよっな機絨では、キャッシュ・
メモリは実行速度をかなり向上させる。
キャッシュ・メモリは1つまたはそれ以上のデータ語か
らなる多くのブロックから構成され、各ブロックにはそ
のブロックが主メモリのどのブロックのコピーであるか
を一義的に決定するアドレス・タグが関連付けられてい
る。プロセッサがメモリ参照をなす毎に、キャッシュ・
メモリは自分が要求されているデータのコピーを有する
かどうかを調べる。コピーが有る場合はキャッシュ・メ
モリがデータを供給し、有しない場合は主メモリからデ
ータを検索してキャッシュ・メモリ内に格納されたデー
タ・ブロックの1つを置換え、そのデータをプロセッサ
に供給する。
キャッシュ・メモリの性能を向上させることができるひ
とつのやυ方は、主メモリの更新や多キャ7シュ整合性
(multicache consistency )
を維持するだめのオーバーヘッドを最小にすることであ
る。
情報は通常、キャッシュから検索して、キ≠≠#“ヒツ
ト”かどうかを連想的に判別する。しかし、大容量の連
想メモリは非常に高価でかつやや低速である。初期のキ
ャッシュ・メモリでは、CPtJからの要求がある毎に
全ての要素が連想的に探索された。CPUに遅れないで
ついていくために必要なアクセス時間を与えるために、
キャッシュ・メモリの大きさは限定され、これによって
ヒツト率もやや低かりた。
キャッシュ・メモリはまた、各々がセット・サイズと呼
ばれるある個数のロケーションを含むセットと呼ぶ小さ
な連想メモリの複数のグループに編成することかできる
。L個のセットに分割されたサイズmのキャッシュ・メ
モリでは、各セットに、s=m/L  個のロケーショ
ンが存在する。主メモリ内のアドレスがキャックユ・メ
モIJ 内にマツプされると、そのアドレスばL(固の
セットのいずれにも現われることが可能である。所与の
サイズのキャッシュ・メモリに対して、各セットを並列
に探索するとL倍だけアクセス時間を向上させることが
できる。しかし、要求された連想サーチを完了させる時
間はそれでもなお好ましくない程長い。
上述のように、キャッシュ・メモリが複数のセットを有
する場合、キャッシュ・ミスが起ったとキハ、キャッシ
ュ・メモリは、情報ブロックのうちのどれをスワップ・
アウトして主メモリから検索されている新ブロックのだ
めの領域を空けるべきかを決定しなげればならない。ど
のブロックがみ 丈ワップ・アウトされるのかを決定するために、それぞ
れのキャッシュ・メモリは各種の方式を用Recent
ly Used)法である。LRU置換方式によれば、
ある特定のインデックスにある各ブロック・グループに
対して、キャッシュは、これらのブロックが最後にアク
セスされた順序をたどるいくつかのビットの状態を維持
する。ブロックの1つがアクセスされる毎に、それは最
も最近に用いられたとマークされ、それに応じて他のブ
ロックが調整される。キャッシュ・ミスが起った場合は
、主メモリから検索されているブロックのための領域を
つくるためにスワップ・アウトされるブロックは最後に
用いられた時点が最も以前であるブロックである。
利用される他の置換法は先入れ先出しくFIFO)方式
およびランダム置換方式等である。
キャッジ−争メモリ・アーキテクチャは、仮想アドレス
を用いるシステム用のキャッシュ聯メモリをアクセスす
る際に複雑化するが、しかしその際キャッシュ−アクセ
スは2段階プロセスとなる。
すなわち、まず要求された仮想アドレスは物理アドレス
に変換され、キャッシュ・メモリがその物理アドレスに
対してサーチなされなければならない。この変換ステッ
プは通常、変換索引バッファ(TLI:! )によって
なされる。TLBはそれ自身、最近用いられた仮想アド
レス/物理アドレス変換を記憶する特別の型式のキャノ
ン−である。このキャッシュ・メモリ・アクセス参プロ
セスは2つの直列なステップを含む。その結果、キャッ
シュ・メモリ・アクセス時間がTLBのアクセス時間だ
け長くなってしまう(もっともやり方によってはアクセ
スの多くを並列に行なうことができるのではあるが)。
この問題を解決する1つの方法は、CPUによって与え
られた仮想アドレスの物理オフセット部だけを用いてキ
ャッシュ・メモリをアクセスすることである。物理オフ
セットは仮想メモリ変換によっては変化しないから、変
換遅延が除去されることになる。しかし、このやり方に
は、キャッシュ・メモリのサイズを物理ページのナイズ
×キャッシュ・メモリのセット数に限定する欠点を有し
ている。
別の方法は仮想アドレスでアドレシングされたキャッシ
ュ・メモリを用いることである。直接仮想アドレス拳キ
ヤノンュeメモリ・アクセスは、変換が必要ないから高
速ではあるが、いくつかの問題が生じる。すなわち、キ
ャッシュ・ミスが起った場合に主メモリへのアクセスを
行なうために、物理アドレスへの変換を扱うのにTLB
がなお必要である。また、キャッシュ・メモリ内に記憶
されたデータに関連付けられたタグとして、物理タグに
加えて仮想タグも必要となるが故に長くなる。
したがって、より多くのメモリ−ハードウェアが必要と
なシ、キャッシュ・メモリはより高価になる。
仮に、物理タグが仮想アドレスでアクセスされるキャッ
シュ・メモリ内に記憶されていないとすれば、たとえば
、2つまたはそれ以上の仮想アドレスが同じ物理アドレ
スにマクピングされ、そのためコードまたはデータを共
有するとき、しばしば反転マツピング(つまり物理アド
レスから仮想アドレスへの変換)が必要になる。もしあ
る仮想アドレスでキャッシュ・ミスが起った場合は、そ
のアドレスを物理アドレスに変換して主メモリをアクセ
スしなければならない。その際、この物理アドレスは反
転マツピングされ、キャッシュ・メモリ内にこの物理ア
ドレスに関連した他の仮想アドレスがあるか指摘するの
に用いられる。このようなアドレスがキャッシュ・メモ
リ内に存在する場合は、その名前を変更して、新しい仮
想アドレス・ロケーションに移動しなければならない。
こうして、仮想アドレスでアドレシングされるキャッシ
ュ・メモリは通常、付加的なハードウェアと費用が必要
となる。
同様の問題は、プロセスが終了したとき、そのプロセス
に関連していた物理アドレスを再使用する必要から生じ
る。仮想アドレスから物理アドレスへのマツピングが変
更される毎に、従来技術によれば、旧マツピングに対応
した全てのキャッシュ・セットからいらなくなったデー
タをパージするためのステップがとられる。
〔発明の目的〕
本発明は、TLBにおける物理アドレス−仮想アドレス
・マツピングの変化に際して、キャッシュ・アクセス時
間の増加を伴なうことになる、キャッシュ・メモリから
の失効データのパージ動作を避けることができるキャッ
シュ・メモリ管理方式を提供することを目的とする。
〔発明の概要〕
本発明の一実施例によれば、仮想/物理アドレス・マツ
ピング情報の一部として、ページ世代番号が与えられる
。命令あるいけデータのいずれに関しても、キャッシュ
・ラインがキャッシュ・メモリにロードされる毎に、イ
ンクリメントされたページ世代番号がそのキャッシュ・
ラインに対するタグ内に入れられる。キャッシュ・メモ
リ内のデータに対する全てのアクセスに対して、TLB
内のページ世代番号が選択されたキャッシュ・ラインに
対応したページ世代番号と一致するか否か確認される。
両者が一致しない場合は、失効データを含むキャッシュ
−ラインはキャッシュ−メモリからパージされ、正しい
データブロフク(これはインクリメントされたページ世
代番号を含む)が主メモリから取出され、キャッシュ・
メモリ内に置かれる。
〔実施例の説明〕
第1図に見られるように、コンピュータ・システムは、
バス17を介して主メモリ13および入力/出力チャン
ネル(Ilo)15と連絡するCPUIIを含む。CP
UIIは命令をフェッチし、デコードし、実行してデー
タを処理するプロセッサ19を含む。コンピュータ・シ
ステムによって用いられる命令およびデータを全てCP
UII内に記憶することは実際的でないから、それらの
データ、および命令は主メモリ13に記憶し、それらが
プログラムまたはルーチンの実行中に要求されるときプ
ロセッサ19に転送し、そのプログラムまたはルーチン
が完了した後に、主メモリ13に戻される。
主メモリ13へのアクセスはプロセッサ19の動作に比
べると比較的低速である。命令またはデータが必要とさ
れた毎にプロセy”j 19が主メモリ・アクセスの完
了を待たなければならないとすれば、その実行速度は大
きく減少してしまうことになるだろう。プロセッサ19
の必要とするものに、より密接に適合するアクセス時間
を得るために、バッファ・メモリつまりキャッンユ・メ
モリ21は限定された数の命令およびデー〉を記憶する
。
キ’rノシュ・メモリ21は主メモリ13よりずっと小
さいから、より速いアクセス速度をもつように、経済的
に作り上げることができる。それにもかかわらず、キャ
ッシュ・メモリに対するアクセス時間とキャッシュ・メ
モリのサイズの間にはなおトレードオフが存在する。上
述したように、キャッシュ・メモリが大きくなれにつれ
て、キャッシュ・メモリはより高価になシまたこれへの
アクセス時間は増大する。したがって、キャッシュ・メ
モリ21がヒツト率を上げるために非常に大きくされた
場合、主メモリ13への参照が非常に少なくなるのだけ
れども、プロセッサのスピードは、キャッシュ・メモリ
によくヒツトするようになってもメモリ・アクセス時間
が増加することにより低下することがある。したがって
、キャッシュ・メモリへのアクセス時間をできるだけ減
少させるのが望ましい。
第1図に示されたコンピュータ・システムは仮想アドレ
スを用いて主メモリ13にアクセスする変換器(図示せ
ず)はその仮想アドレスを、要求された命令またはデー
タを検索するに必要な物理アドレスに変換する。変換を
実現するために変換器に必要な情報は、主メモリ13に
配置されたページ・ディレクトリPDIRに記憶される
。高速小型メモリであるTLB23は、PDIRによっ
て与えられた、限定された数の最近用いられた仮想アド
レス、/物理アドレス変換情報を記憶する。
TLB23は、それが記憶しているアドレス・マツピン
グに対応する変換ステップについてはメモリ・アクセス
の都度−々実行する必要をなくすことによって、主メモ
リ13に対するアクセス時間を減少できる。TLB23
には要求された仮想アドレスが含まれていない場合、変
換器が呼出さベアドレス対をTLBに戻す。TLBは将
来の使用のため現存するあるTLBエントリをこれに置
換する。
本発明の方式をよシ完全に理解するためには、キャッシ
ュ・メモリ21およびTLB23の構造および編成の理
解が必要である。TLB23の構造は第2図に示される
。キャッシュ・メモリ21の構造は第3図に示される。
第2図にみられるように、TLB23は仮想アドレス/
物理アドレス対を保持するロケーションのアレイを含む
。各ロケーションはインデクス30でラベル付けされて
いる。このインデクス3oは仮想アドレスから導き出す
ことができる。仮想アドレス・エントリ32は、プロセ
ラ+j19によって用いられる仮想アドレスの仮想ペー
ジ番号である。物理アドレス・エントリ34は、主メモ
リ(3内のアドレスの物理ページ・ロケーションすなわ
ち、仮想ページ番号を変換したものを表わす。完全な物
理アドレスは、物理ページ番号および物理オフセントか
ら成る。物理オフセントは仮想アドレスの下位部分から
直接数られる。
第3図に示されるように、キャッシュ・メモリ21は主
メモリ13からのデータを保持できるロケーションのア
レイを含む。各ロケーションは、TLB23のインデク
ス30と同様のインデクス31でラベル付けされ、物理
アドレス33およびデータ35を含む。物理アドレス3
3は、データ35が主メモリ13に記憶されている物理
ページ番号に対応する。
本発明によれば、変換器によって発生され、TLB23
に与えられた各仮想アドレス/物理アドレス・マツピン
グ情報は更にTLBページ世代番号(Page gen
eration  number、 PGN)を入れる
フィールド36を含む。各キャッジ!’エントリもTL
B  PGNフィールド36を含む。各キャッシュ・エ
ントリはキャッシュPGNフィールド37を含む。仮想
アドレス/物理アドレス・マツピングを変更する、すな
わち、現存する仮想アドレス、/物理アドレス変換対の
仮想アドレスを変更する必要がある毎に、そのマツピン
グはPIOR内で変更され、新しい変換対のPGNはP
DIR内で増加され、TLBから旧変換がパージされる
。
「パージ」という用語は、主メモリの更新なしにこの時
点で、旧い変換時に対応している失効(stale)デ
ータはなおキャッシュ・メモリ内に存在していいかもし
れない。しかし、従来行なわれていたように(これはオ
ーバヘッド時間を必要とする)キャッシュ・メモリをパ
ージするのではなく、失効データがキャッシュ・メモリ
内に留まることを許しておく。
プロセッサが次に新しい仮想アドレス/物理アドレス・
マツピングに対して仮想アドレスを与えたとき、TLB
23、キャッシュ210両者はこの仮想アドレスとそれ
ぞれ対応付けられたTLBおよびキャッシュ・メモリ・
データ・ブロック内の仮想アドレス/物理アドレス・マ
ツピングを識別するためにアクセスされる。しかし、旧
変換対ViTLB23からパージされているから、TL
Bミスが起る。そこで新変換対が、そのインクリメント
されたPGNとともに、変換器によってPDIRから検
索され、4LLB23に与えられる。
第4図に示すように、本発明によれば、キャッジ−・ヒ
ツトかどうか調べるため、通常の物理アドレス比較に加
えて、新たに検索されたTLBエントリとキャッジ−・
ライン中のPGNも比較される。この仮想アドレスに関
連したキャッシュ・ラインはインクリメントされていた
いPGNを含むから、キャッシュ・ミスが生じる。これ
によって、失効キャッジ−・ラインのパージおよび主メ
モリからの新データ・ブロックの検索が生じる。
インクリメントされたPGNおよび新キャッシュ・ブロ
ックに対する物理アドレス・フィールドがTLBによっ
てキャッシュ・メモリに与えられ、この仮想アドレスに
関連したTLBエントリおよびキャンシー・ラインの両
者を対応させる。
ページ世代番号の一義性を維持するために、仮想アドレ
スと関連したキャッシュおよびTLBエントリは、1つ
のエントリに対するページ世代番号の値がラップした(
循環する)ときはいつでもフラッジ−させなければなら
ない。「フラッジ−」という用語はキャッシュ・メモリ
内のエントリの無効化を意味する。エン) IJが汚れ
て℃・れば(つまり書込みが行なわれていれば)、それ
は主メモリに書き戻される。これが起るのはマツピング
の変化よりずっと少なく、システム・オーバヘッドが低
くなる。
〔発明の効果〕
以上説明したように、本発明によればページ世代番号を
導入することにより、キャッシュ・メモリ管理上のオー
バーヘッドを低減することができる。
【図面の簡単な説明】
第1図は本発明が適用されるコンピュータ・システムの
ブロック図、第2図は本発明の一実施例で用いられるキ
ャッシュ・メモリの構成を説明する図、第3図は本発明
の一実施例で用いられるTLBの構成を説明する図、第
4図は本発明の一実施例におけるページ世代番号のチェ
ククを説明する図である。 エエ:CPU。 13:主メモリ、 19:プロセンサ、 21:キャソシュ拳メモリ 23:TLB 30.31:インデクス、 32:仮想アドレス・エントリ、 33:物理アドレス、 34:物理アドレス・エントリ、 35:データ、 36 : TLB  PGNフィールド、37:キヤツ
シユPGNフィールド。

Claims (1)

  1. 【特許請求の範囲】 仮想アドレス方式を用いたシステムのキャッシュ・メモ
    リ管理方式において、 仮想アドレス/物理アドレス変換対情報に当該変換対情
    報の更新に応答して更新される世代番号を付加し、 前記世代番号はTLBおよびキャッシュ・メモリに与え
    られ、 前記キャッシュ・メモリへのアクセス時にはキャッシュ
    ・メモリから読出された世代番号と前記TLBから読出
    された世代番号の一致を確認することを特徴とするキャ
    ッシュ・メモリ管理方式。
JP62163828A 1986-07-01 1987-06-30 キャッシュ・メモリ管理方式 Pending JPS6324337A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88085286A 1986-07-01 1986-07-01
US880852 1986-07-01

Publications (1)

Publication Number Publication Date
JPS6324337A true JPS6324337A (ja) 1988-02-01

Family

ID=25377263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62163828A Pending JPS6324337A (ja) 1986-07-01 1987-06-30 キャッシュ・メモリ管理方式

Country Status (1)

Country Link
JP (1) JPS6324337A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287124B2 (en) 2003-11-26 2007-10-23 Microsoft Corporation Lazy flushing of translation lookaside buffers
US7788464B2 (en) 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287124B2 (en) 2003-11-26 2007-10-23 Microsoft Corporation Lazy flushing of translation lookaside buffers
US7788464B2 (en) 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines

Similar Documents

Publication Publication Date Title
KR960001946B1 (ko) 우선 변환 참조버퍼
US5787494A (en) Software assisted hardware TLB miss handler
US5724538A (en) Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US6145064A (en) Method of efficiently updating hashed page tables
EP0674267B1 (en) Sub-line cache coherent write transactions
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
EP0215544B1 (en) Virtual memory address fetching
JP3666689B2 (ja) 仮想アドレス変換方法
US6014732A (en) Cache memory with reduced access time
US5060137A (en) Explicit instructions for control of translation lookaside buffers
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JP2603476B2 (ja) データ取り出し方法
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
JP2013065325A (ja) アドレス変換方法及び装置
US5539892A (en) Address translation lookaside buffer replacement apparatus and method with user override
EP0365117B1 (en) Data-processing apparatus including a cache memory
US5737575A (en) Interleaved key memory with multi-page key cache
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US4757447A (en) Virtual memory system having identity marking for common address space
EP0173909B1 (en) Look-aside buffer least recently used marker controller
EP0212129B1 (en) Method of updating information in a translation lookaside buffer
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
EP0486154B1 (en) Method of operating a virtual memory system