JPH05210585A - キャッシュ管理システム - Google Patents

キャッシュ管理システム

Info

Publication number
JPH05210585A
JPH05210585A JP3047446A JP4744691A JPH05210585A JP H05210585 A JPH05210585 A JP H05210585A JP 3047446 A JP3047446 A JP 3047446A JP 4744691 A JP4744691 A JP 4744691A JP H05210585 A JPH05210585 A JP H05210585A
Authority
JP
Japan
Prior art keywords
information
memory
cache
address
cache memory
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
Application number
JP3047446A
Other languages
English (en)
Other versions
JP3239218B2 (ja
Inventor
Anthony Masterson
アンソニイ・マスターソン
Mark Krueger
マーク・クリューガー
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of JPH05210585A publication Critical patent/JPH05210585A/ja
Application granted granted Critical
Publication of JP3239218B2 publication Critical patent/JP3239218B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 コンピュータシステムの動作速度を改善する
キャッシュ管理システム。 【構成】 中央処理装置(12)と、主メモリ(15)
と、キャッシュメモリ(18)とを有するコンピュータ
システムのキャッシュ管理システムであって、ページサ
イズの情報のブロックを転送する記憶管理装置(32)
と、主メモリから情報を読み取る装置(37)と、キャ
ッシュメモリに情報を書き込む装置(38)と、主メモ
リからの情報の読み取りの間にキャッシュメモリへの情
報の書き込みを重複して発生させる装置(34)とを具
備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
関し、特に、改良されたキャッシング構成によってコン
ピュータシステムの動作速度を改善する方法及び装置に
関する。
【0002】
【従来の技術】代表的な汎用コンピュータは、その様々
な素子の中でも特に主なものを挙げると、制御機能,論
理機能及び演算機能を実行するためにプログラム命令の
下で動作する中央処理装置と;通常、中央処理装置が使
用するための命令及びデータを記憶するランダムアクセ
スメモリから構成される主メモリと;補助長期メモリ
と;外部とコンピュータとの間で情報を移動させる入出
力制御装置と;表示モニターのように動作の結果を表示
する何らかの構成とを具備する。コンピュータは、プロ
グラム(複数組の命令)及びデータをメモリに記憶し、
それらの命令やデータを中央処理装置により操作させる
ために選択的に検索することによって、中央処理装置を
介して動作する。
【0003】コンピュータの動作をスピードアップし且
つコンピュータが処理できる情報の量と複雑さを増すこ
とにより、コンピュータの能力は一層向上する。これを
実行する主な方法は、中央処理装置とメモリを高速化す
ると共に、メモリスペースを広げることである。残念な
がら、メモリを大型化すればそれだけコスト高になり、
メモリを高速化すれば尚一層コスト高に拍車をかけるこ
とになる。そこで、キャッシュ構成が開発された。キャ
ッシュはプログラムの中で最も高い頻度で利用される命
令とデータを記憶することによりコンピュータシステム
の動作を改善するために、システムの中央処理装置と主
メモリとの間で使用される相対的に容量の小さい高速メ
モリである。正しく設計されたキャッシュ構成は、通
常、(時間の90パーセントにわたって)中央処理装置
がシークする情報を記憶している。すなわち、中央処理
装置は普通は高速のキャッシュメモリと共に動作してい
るので、システム全体としての動作速度は増す。
【0004】コンピュータシステムの動作をスピードア
ップするために設計されたキャッシュ構成には数多くの
種類がある。通常、キャッシュメモリは関連するタグメ
モリを利用し、タグメモリには、キャッシュに記憶され
ている情報の主メモリアドレスを保持する。特定のアド
レスの情報を求めてメモリに要求が送られてきたときに
は、そのアドレスをタグメモリ内のアドレスと比較す
る。タグメモリにアドレスがある場合は、キャッシュメ
モリから情報をアクセスするが、タグメモリにアドレス
がなければ、その情報を求めて主メモリをアクセスす
る。タグメモリは小型であるが、非常に高価である。
【0005】キャッシュメモリは主メモリのアクセスご
とに32バイト程度の少量の情報を受信するのが普通で
ある。そのような少量の情報を転送するために必要な時
間は比較的重大な問題とはならない。ところが、情報を
さらに高速で、たとえば、一度に1キロバイト、2キロ
バイト又は4キロバイトずつのブロックとして受信する
ようにキャッシュを構成することも可能である。そのよ
うなキャッシュを利用して主メモリからの転送を実行す
るのに要する時間はシステム全体の動作からいってかな
り重大である。さらに、キャッシュメモリにミス(情報
を利用できない)があるときには、中央処理装置は主メ
モリからキャッシュメモリへ情報を移動し、次に、利用
に備えてキャッシュの情報をアクセスしなければならな
い。この情報転送プロセスは、キャッシュを大きな増分
ごとに充填するシステムでは、相当の長さの時間を要す
る。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、コンピュータシステムの動作速度を増すことであ
る。本発明の別の目的は、キャッシュメモリを利用する
コンピュータシステムの動作速度を増すことである。本
発明の別のさらに特定した目的は、相対的に大きな増分
ごとに充填されるキャッシュメモリを利用するコンピュ
ータシステムの動作速度を増すことである。
【0007】
【課題を解決するための手段】本発明のこれらの目的及
びその他の目的は、主メモリの1ページ分に相当するブ
ロックごとに主メモリから充填されるキャッシュメモリ
を利用し、キャッシュメモリのアクセスを実行するため
にタグメモリではなく、記憶管理装置を利用し、キャッ
シュミスの後に主メモリのアクセス中にキャッシュメモ
リに情報を順次書き込むためのカウンタを含み、キャッ
シュ充填を実行するのに相当の回数の主メモリアクセス
をなくすために、記憶管理構成を制御する新規な構成を
利用するコンピュータシステムにおいて実現される。
【0008】本発明のこれらの目的及び特徴と、その他
の目的及び特徴は、添付の図面に関連する以下の詳細な
説明を参照することによりさらに良く理解されるであろ
う。図面中、いくつかの図を通して同じ素子は同一の図
中符号により示される。
【表記法及び用語】
【0009】以下の詳細な説明の中には、コンピュータ
メモリの内部におけるデータビットについての動作をア
ルゴリズム及び記号によって表示している部分がある。
そのようなアルゴリズムによる説明や表示は、データ処
理技術に熟達した人がその分野の他の当業者にその作業
の内容を最も有効に伝達するために利用する手段であ
る。ここでは、また、一般的にも、アルゴリズムは所望
の結果に至る首尾一貫したステップのシーケンスである
と考えられる。それらのステップは、物理的な量の物理
的な操作を要求するステップである。
【0010】通常、それらの量は記憶,転送,組み合わ
せ,比較及びその他の方法による操作が可能である電気
的信号又は磁気信号の形態をとるが、必ずしもそうであ
る必要はない。場合によっては、主に一般に利用されて
いる用語であるという理由により、それらの信号をビッ
ト,値,要素,記号,文字,項,数などと呼ぶと好都合
であることがわかっている。しかしながら、これらの用
語及びそれに類する用語は、全て、適切な物理的な量と
関連させるべきであり、単に、便宜上、それらの量に付
されたラベルであるにすぎないということを忘れてはな
らない。
【0011】さらに、実行される操作は、一般にオペレ
ータが実行する知的動作と関連する加算又は比較などの
用語で呼ばれることが多い。本発明の一部を成す、ここ
に説明する動作のいずれにおいても、そのようなオペレ
ータの能力は不要であるか又は多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
の同様な装置がある。いずれの場合にも、コンピュータ
を動作させる際の方法動作と、計算それ自体の方法との
区別に留意すべきである。本発明は、電気的信号又はそ
の他の物理的(たとえば、機械的,化学的)信号を処理
して、他の所望の物理的信号を発生するときにコンピュ
ータを動作させる装置及び方法過程に関する。
【実施例】
【0012】図1は、従来の技術による代表的な汎用コ
ンピュータシステム10をブロック線図の形態で示す。
システム10は中央処理装置12と、入出力回路13
と、主メモリ15と、出力表示装置16と、入出力装置
20とを含む。システム10は、中央処理装置12と主
メモリ15との間に配置されたキャッシュメモリ18を
さらに含む。システム10の動作中、主メモリ15には
様々なプログラムがそれに関連するデータと共に記憶さ
れる。どの特定のプログラムの命令及びデータも、その
プログラムの動作中に、中央処理装置12により主メモ
リ15からアクセスされる。システム10の動作をスピ
ードアップするため、キャッシュメモリ18と関連する
タグメモリ19は、主メモリ15のアクセスにより要求
された情報のアドレスを検閲する。所望のアドレスの情
報がキャッシュメモリ18にあれば、その情報は主メモ
リ15ではなく、キャッシュメモリ18においてアクセ
スされる。
【0013】これに対し、所望の情報をキャッシュメモ
リ18で利用できない場合には、コンピュータシステム
10は主メモリ15の要求されたアドレスにある情報を
キャッシュメモリ18へ転送すると共に、そのアドレス
のコピーをタグメモリ19に記憶する。そのアドレスが
次にアクセスされたときには、タグメモリ19は、アク
セスされたアドレスの情報がキャッシュメモリ18にあ
ることを指示し、情報はキャッシュメモリ18からアク
セスされる。キャッシュメモリ18が、通常、主メモリ
15のデバイスより高速で動作するデバイスから構成さ
れていることを第1の理由として、上記の動作によりシ
ステム10の動作がスピードアップされることは理解さ
れるであろう。
【0014】先に指摘したように、このような従来のシ
ステムの第1の問題点は、タグメモリ19を構成してい
るデバイスがきわめて高価であるために、キャッシュメ
モリ18が大型化し、そこに記憶されるアドレスの数が
増すのに伴って、タグメモリ19の価格はシステム全体
のコストの大部分を占めるようになることである。従来
のシステム10のタグメモリ19で使用されるデバイス
のコストを低減し且つキャッシュ充填動作中に大きな情
報ブロックを転送するシステムの動作をスピードアップ
するために、図2に示すシステム30が考案された。こ
のシステム30は中央処理装置12と、キャッシュメモ
リ18と、主メモリ15とを含む。図1のシステム10
には示されている入出力回路,出力表示装置及びその他
の装置もシステム30に含まれているのではあるが、そ
れらの装置は本発明の説明には関連をもたないので、図
2には示していない。
【0015】システム30は、キャッシュメモリ18の
情報のアクセスを実行するために、図1に示す従来の高
価なタグメモリ19を利用するのではなく、記憶管理装
置32を利用する。通常、記憶管理装置は、さらに高度
なプロセッサを数多く含むプロセッサチップの一部とし
て入手できるデバイスである。このような記憶管理装置
は仮想メモリシステムで使用されるのが普通である。た
とえば、この装置は、Advanced Micro Devices 製造の
AM29000プロセッサに含まれている。
【0016】仮想メモリシステムは、それが主メモリの
一部であるかのようにプログラマーがシステムメモリの
全てをアドレスできるようなシステムである。プログラ
マーはアドレス(仮想アドレスと呼ばれる)を供給し、
記憶管理装置は仮想アドレスの情報が実際に記憶されて
いる場所を制御する。情報は主メモリにある場合もあ
り、ハードディスク等の何らかの補助記憶装置にある場
合も考えられる。通常の場合には、記憶管理装置と中央
処理装置とは共動して、情報をアクセスしなければなら
ないときに仮想アドレスを物理メモリアドレスに変換す
る(また、物理メモリアドレスを仮想アドレスに変換す
る)ための1組のルックアップテーブルを作成する。こ
のような仮想メモリシステムを利用すれば、ランダムア
クセスメモリよりはるかに大きなアドレススペースをも
ってコンピュータシステムを構成することができ、高価
なランダムアクセスメモリの使用を維持する。
【0017】仮想メモリシステムでは、アクセスされた
が、主メモリにはない情報をページと呼ばれるブロック
の形で主メモリへ転送し、そのようなページサイズ単位
で主メモリに記憶する。ページは、システムが様々なプ
ログラムを実行してゆく中で、必要に応じて主メモリへ
スワップイン,スワップアウトされる。ページはどのよ
うな大きさであっても良いが、一般には1キロバイトか
ら8キロバイトの大きさである。通常、ページはそのペ
ージ番号と、ページ内部のオフセットとによりアドレス
される。図3は、好ましい実施例のシステムにおいて使
用する32ビット仮想アドレスの構成を示す。アドレス
の最下位の2ビットは使用されない。次の8ビットはメ
モリの1つのページの中の語アドレスを含む。さらに次
の5ビットは2進コード行アドレスを含み、上位の17
ビットはメモリ内の情報のページアドレスを示す。
【0018】本発明においては、キャッシュメモリ18
に対してアクセスを実行するために記憶管理装置32を
利用する。キャッシュメモリ18は、主メモリ15の同
じ情報をアドレスするために使用される仮想アドレスに
よってアドレスされるということから、仮想キャッシュ
と呼ばれる。キャッシュメモリ18は64キロバイトの
情報を記憶することができる。好ましい実施例では、キ
ャッシュメモリ18を充填するとき、情報は1キロバイ
トごとのページサイズブロックとしてキャッシュメモリ
18に記憶される。
【0019】キャッシュメモリ18に情報を記憶すると
きには、その情報の仮想アドレスと、物理アドレスとを
記憶管理装置32により記憶する。ある特定の仮想アド
レスの情報がアクセスされると、記憶管理装置32は、
キャッシュメモリ18にその情報が記憶されていること
を示すその情報に関する仮想アドレスを記憶しているか
否かを見る。記憶管理装置32に仮想アドレスが記憶さ
れていれば、キャッシュメモリ18で情報をアクセス
し、主メモリ15をアクセスする必要はない。これによ
り、タグメモリを使用したときとほぼ同じように、タグ
メモリの高価な素子を使用する必要なくシステムの動作
はスピードアップする。
【0020】しかしながら、記憶管理装置は主として仮
想メモリシステムで利用されるために相対的に量の多い
情報を転送するように設計されている。一般に、転送し
うる最小ページサイズは1キロバイトである。このた
め、記憶管理装置をキャッシュの制御に使用するときに
は、キャッシュミスの場合にキャッシュメモリ18を充
填する時間が必要とされるために問題が生じる。代表的
なキャッシュシステムでは主メモリ15から転送すべき
情報の量は少ないので、転送ごとの時間はさほどの意味
をもたないが、充填時間の長いシステムにおけるキャッ
シュミスは転送ごとにはるかに長い時間を要求する。
【0021】さらに、従来の代表的な仮想キャッシュシ
ステムでは、キャッシュミスが起こると、まず、1つの
情報ブロックを主メモリ15から転送し、次にキャッシ
ュメモリ18に書き込み、最後に、アクセスされたアド
レスの情報を中央処理装置12へ転送して利用する。す
なわち、キャッシュ充填時間が長いときには、1回のキ
ャッシュミスできわめて多くの時間が費やされるのであ
る。
【0022】この問題を克服するために、記憶管理装置
32と関連させて、システム30の動作に必要な時間を
さらに短縮する構成を設ける。代表的なシステムでは、
1回のキャッシュ充填に、主メモリ15の読み取り時間
と、キャッシュメモリ18に書き込むために必要な時間
と、さらには中央処理装置がキャッシュメモリ18に書
き込むために必要とする時間とを要求する。
【0023】本発明の構成によれば、情報はそれが主メ
モリ15でアクセスされているのと同じ期間の中でキャ
ッシュメモリ18に書き込まれるので、従来のシステム
を使用してキャッシュメモリ18を充填するために必要
な時間をかなり短縮することになる。そこで、主メモリ
15を読み取ると共にキャッシュメモリ18を充填する
という動作に、主メモリ15を読み取るために必要な時
間のみがあれば良いという効果が得られる。
【0024】この構成は、図2に示すゲートアレイ34
の中に含まれている。ゲートアレイ34は、キャッシュ
ミスの場合にコピーすべき開始キャッシュアドレスを中
央処理装置12から受信するカウンタ35を含む。キャ
ッシュミスが起こり、主メモリ15で情報がアクセスさ
れると、中央処理装置12はゲートアレイをキャッシュ
コピーモードにし、マルチプレクサ39にカウンタ35
からのキャッシュアドレス出力をイネーブルさせる。主
メモリにおける不在ページのアドレスは、主メモリ15
をアドレッシングするために使用される主メモリ(DR
AM)制御装置37に供給される。主メモリ15でキャ
ッシュページがアクセスされると、DRAM制御装置3
7は出力イネーブル信号を主メモリ15に供給すると共
に、キャッシュメモリ制御装置38にキャッシュメモリ
書き込みイネーブル信号を発生させる。
【0025】次に、中央処理装置12により供給された
主メモリ15のアドレスを使用して主メモリ15の情報
がアクセスされるのにつれて、出力をキャッシュメモリ
18に書き込む。同時に、カウンタ35は増分した行ア
ドレスをマルチプレクサ39を介して記憶管理装置32
に供給する。このシステムは主メモリ15の読み取りア
クセスと、キャッシュメモリ18の書き込みアクセスと
を重複させている。本発明の好ましい実施例では、キャ
ッシュを充填するための時間は、中央処理装置12がコ
ピー動作を実行するのに要する時間の半分よりさらに短
くなっている。このことは、キャッシュメモリ18を一
度に1キロバイトごとの情報のブロックとして充填する
ような構成の場合に特に重要である。
【0026】本発明の構成を最適化によってさらに高速
で動作させることができる。図4は、本発明の好ましい
実施例で利用する記憶管理装置32の構成をさらに詳細
な形で示す。この特定の記憶管理装置32は変換索引バ
ッファと呼ばれることが多い比較的単純な形態のもので
ある。この特定の変換索引バッファは2つのセクション
A及びBと、多数の記憶行とを含む。変換索引バッファ
の各行は、セクションAと、セクションBとについて1
組ずつ、合わせて2組のアドレスを記憶することができ
る。すなわち、このバッファは本質的には二方向セット
連想記憶装置である。各組のアドレスは、アクセスすべ
き特定の情報の仮想アドレスと、物理アドレスとを含
む。変換索引バッファのどの行にあるアドレスの組も、
キャッシュメモリ18に保持されている情報のアドレス
である。
【0027】キャッシュメモリ18に記憶されている情
報の任意のページに関する1組のアドレスは、変換索引
バッファの、アドレスの中の行番号を指定している5つ
のビットにより指定された行に記憶される。5ビットの
2進情報は32の異なる行を指定することができる。特
定の行番号をもつアドレスの情報をキャッシュメモリ1
8に導入するときには、仮想アドレスをキャッシュ内の
その物理アドレスと共に変換索引バッファのその行番号
の場所に記憶する。
【0028】どの行番号についても2組アドレスしか入
力できないので、キャッシュメモリ18で同じ行番号を
もつ3つ以上のアドレスがアクセスされ、記憶される場
合には、通常の記憶管理装置はキャッシュメモリ18か
ら1ページ分の情報を除去し、それに対応するアドレス
の組を変換索引バッファから除去し、それらを新たなペ
ージ、新たなアドレスとそれぞれ置き換える。同じ行ア
ドレスをもつ3つの特定の情報を頻繁に使用するのであ
れば、キャッシュメモリ18からごく高い頻度で多数の
情報のページを除去しなければならない。ページはキャ
ッシュメモリ18の中で物理的には互いに32キロバイ
ト離れていることになっているのであるが、このような
状況は、プログラマーが呼び出しプロセスのアドレスを
1つの行のエントリの一方に記入し、呼び出されるプロ
セスを他方のエントリに記入するときには通常よく起こ
る。
【0029】この場合、1つのプログラムのプロセス相
互間で急速な切り換えが行われる。ページをキャッシュ
メモリ18にできる限り速くコピーさせるためにページ
サイズを1キロバイトに縮小すると、全て同じ行アドレ
スを伴う3つのルーチンが現れることが時折起こる。仮
想アドレスがその行に記憶されている仮想アドレスのい
ずれとも整合しない場合には、通常、プロセッサは情報
をキャッシュメモリ18にコピーしなければならない。
これはシステムの動作速度という点では不利であり、キ
ャッシュメモリ18を命令を記憶するために使用する時
間の約15パーセントでそのような状況が起こることが
統計によりわかっている。
【0030】本発明によれば、この問題を克服するため
に、変換索引バッファの行ごとに、その行についてそれ
までアドレッシングされた、現在キャッシュメモリに記
憶されている情報のページの連係リストを作成する。プ
ロセッサが飛び越しを実行するときには、プロセッサの
ハードウェアはその飛び越しの目標となる行を行アドレ
スから確定する。ハードウェアは、その行番号に基づい
て、その行の2つのページのどちらかが正しいページで
あるか否かを知るために検査を実行する。ページアドレ
スが整合すれば、仮想アドレスはキャッシュメモリ18
の、情報を記憶する物理アドレスに変換される。
【0031】変換索引バッファの適切な行アドレスに仮
想ページアドレスが記憶されていないためにキャッシュ
ミスが起こると、ミスによって例外が発生し、それはシ
ークしたアドレスと共にオペレーティングシステムへ送
られる。オペレーティングシステムは仮想アドレスの行
アドレス部分を使用して、その特定の行についてそれま
でアドレッシングされた、まだキャッシュメモリ18に
記憶されているページのリストをアクセスする。リスト
にページがあれば、その仮想アドレスは変換索引バッフ
ァの適切な行に導入され、また、変換索引バッファの特
定の行に関するリストに置き換えたアドレスが追加され
る。
【0032】これを実行するために、変換索引バッファ
のアドレッシングされた行の複数組のアドレスのうち最
も使用されない組を無効化し、新たな組のアドレスを変
換索引バッファの無効の組に重ねてコピーし、元の組の
アドレスの変換索引バッファエントリをその行番号に関
する連係リストに追加する。その後は、キャッシュミス
が起こるたびに、ページがまだキャッシュメモリ18に
あるか否かを知るために、その行のリストを検査する。
【0033】仮想アドレスがリストのページのいずれか
と整合すれば、変換索引バッファのその行のアドレスの
組のうち最も使用されない組をアクセスされているアド
レスの組と置き換える。キャッシュの情報はそのままに
保たれる。リストを参照して、ページがリストに載って
いないときには、キャッシュの全てのページが使用中で
あるか否かを判定する。全てのページが使用中であれ
ば、無作為に1つのページを無効化し、主メモリから新
たなページを無効ページに重ねてコピーし、そのアドレ
スを変換索引バッファと、その行に関するページのリス
トに追加する。
【0034】キャッシュメモリ18に、主メモリ15か
らの別のページを入れる余地がまだ残っている場合に
は、変換索引バッファのアクセスされた行にアドレスが
現在記憶されている情報のページを無効化するのではな
く、旧ページアドレスをその行に関する連係リストに追
加し、キャッシュメモリの未使用ページの1つから新た
なページを割り当てる。主メモリ15からのデータを新
たなページにコピーし、そのアドレスを変換索引バッフ
ァと、連係ページリストとに追加する。その後、次にそ
のアドレスがアクセスされるときには、連係リストを参
照する。ページがまだキャッシュメモリ18にあれば、
変換索引バッファのアドレスを変更するが、データは移
動しない。
【0035】このように、変換索引バッファのエントリ
のみが変更され、その間、キャッシュメモリ18の情報
は同じままである。この動作を他の動作と重複させて、
ページを置き換えなければならない場合にキャッシュメ
モリ18を充填するために必要な時間とは対照的に、シ
ステム30の動作中に全くクロック時間を費やさないよ
うにしても良い。
【0036】基本的には、システムは現在キャッシュメ
モリ18にある全てのページの連係リストを保持してい
る。キャッシュミスが起こったときには、そのリストを
参照する。ページがまだキャッシュメモリ18にあれ
ば、連係リストを修正するが、データは移動しない。シ
ステムは、単に、変換索引バッファの物理アドレスを、
まだキャッシュメモリ18にある余分のページの物理ア
ドレスと置き換えるだけである。本発明は、キャッシュ
メモリ18のデータをスラッシングするのではなく、変
換索引バッファに記憶されているごく少量のアドレス情
報を置き換えるように動作する。
【0037】この最適化動作はハードウェアにより実行
されても良いが、本発明の好ましい実施例ではソフトウ
ェアを利用する。この特定の動作を実現するためにC言
語原始コードを使用するとよい。
【0038】以上、本発明を好ましい一実施例により説
明したが、当業者により本発明の趣旨から逸脱せずに様
々な変形や変更を実施しうることは理解されるであろ
う。従って、本発明は特許請求の範囲によって評価され
るべきである。
【図面の簡単な説明】
【図1】システムの動作速度を増すためにキャッシュメ
モリを有する従来の技術の代表的なコンピュータシステ
ムを示すブロック図。
【図2】本発明に従って構成されたコンピュータシステ
ムのブロック図。
【図3】システムの好ましい一実施例における1つのア
ドレスの中の2進情報の個々のビットの配列構成図。
【図4】図2に示すコンピュータシステムの記憶管理装
置の内部における情報の配列構成図。
【符号の説明】
12 中央処理装置 15 主メモリ 18 キャッシュメモリ 32 記憶管理装置 34 ゲートアレイ 35 カウンタ 37 主メモリ制御装置 38 キャッシュメモリ制御装置 39 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・クリューガー アメリカ合衆国 95014 カリフォルニア 州・カッパチーノ・アルパイン ドライブ ナンバー3・10210

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置と、主メモリと、キャッシ
    ュメモリとを有するコンピュータシステムのキャッシュ
    管理システムにおいて、ページサイズの情報のブロック
    を転送する記憶管理装置と、主メモリから情報を読み取
    る手段と、キャッシュメモリに情報を書き込む手段と、
    主メモリからの情報の読み取りの間にキャッシュメモリ
    への情報の書き込みを重複して発生させる手段とを具備
    するコンピュータシステムのキャッシュ管理システム。
  2. 【請求項2】 主メモリからの情報の読み取りの間にキ
    ャッシュメモリへの情報の書き込みを重複して発生させ
    る手段はカウンタと、カウンタにアドレス情報を導入す
    る手段と、キャッシュメモリに情報が書き込まれるにつ
    れてアドレス情報を増分する手段とを具備する請求項1
    記載のコンピュータシステムのキャッシュ管理システ
    ム。
  3. 【請求項3】 記憶管理装置からアドレスが除去されて
    いるキャッシュメモリ内の情報のページのリストを提供
    する手段と、キャッシュメモリミスのときにアドレスに
    関してリストを検査する手段と、シークしたアドレスが
    リストにある場合に記憶管理装置の1つのエントリのア
    ドレスをシークしたアドレスと置き換える手段とをさら
    に具備する請求項1記載のコンピュータシステムのキャ
    ッシュ管理システム。
JP04744691A 1990-02-21 1991-02-21 キャッシュ管理システム Expired - Lifetime JP3239218B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/482,790 US5073851A (en) 1990-02-21 1990-02-21 Apparatus and method for improved caching in a computer system
US482790 1990-02-21

Publications (2)

Publication Number Publication Date
JPH05210585A true JPH05210585A (ja) 1993-08-20
JP3239218B2 JP3239218B2 (ja) 2001-12-17

Family

ID=23917471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04744691A Expired - Lifetime JP3239218B2 (ja) 1990-02-21 1991-02-21 キャッシュ管理システム

Country Status (2)

Country Link
US (1) US5073851A (ja)
JP (1) JP3239218B2 (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289581A (en) * 1990-06-29 1994-02-22 Leo Berenguel Disk driver with lookahead cache
US5420994A (en) * 1990-08-06 1995-05-30 Ncr Corp. Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
JP2678527B2 (ja) * 1991-01-08 1997-11-17 三菱電機株式会社 キャッシュメモリ装置
US5386538A (en) * 1991-04-30 1995-01-31 Texas Instruments Incorporated Data cache access for signal processing systems
US5649232A (en) * 1991-06-14 1997-07-15 Integrated Device Technology, Inc. Structure and method for multiple-level read buffer supporting optimal throttled read operations by regulating transfer rate
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
US5636358A (en) * 1991-09-27 1997-06-03 Emc Corporation Method and apparatus for transferring data in a storage device including a dual-port buffer
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
JP3451099B2 (ja) * 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
CA2166464C (en) * 1993-07-09 2002-01-01 Louis A. Kamentsky Computerized microscope specimen encoder
US5586270A (en) * 1993-09-30 1996-12-17 Intel Corporation Method and apparatus for upgrading a central processing unit and existing memory structure in a computer system
US6003120A (en) * 1993-12-30 1999-12-14 Intel Corporation Method and apparatus for performing variable length processor write cycles
DE69530720T2 (de) * 1994-03-09 2003-11-27 Sun Microsystems Inc Verzögertes Cachespeicherschreiben eines Speicherungsbefehls
US6129458A (en) * 1994-03-23 2000-10-10 At&T Global Information Solutions Company Cache optimization method
US5535360A (en) * 1994-08-31 1996-07-09 Vlsi Technology, Inc. Digital computer system having an improved direct-mapped cache controller (with flag modification) for a CPU with address pipelining and method therefor
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
FR2732134B1 (fr) * 1995-03-23 1997-06-06 Suisse Electronique Microtech Systeme informatique avec memoires hierarchisees
US5708783A (en) * 1995-04-28 1998-01-13 Apple Computer, Inc. Data bus arbiter for pipelined transactions on a split bus
US6256710B1 (en) 1995-04-28 2001-07-03 Apple Computer, Inc. Cache management during cache inhibited transactions for increasing cache efficiency
US5812815A (en) * 1995-04-28 1998-09-22 Apple Computer, Inc. Address tenure control for cache management wherein bus master addresses are internally latched in a cache controller
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
US5758182A (en) * 1995-05-15 1998-05-26 Nvidia Corporation DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5991855A (en) * 1997-07-02 1999-11-23 Micron Electronics, Inc. Low latency memory read with concurrent pipe lined snoops
US6018792A (en) * 1997-07-02 2000-01-25 Micron Electronics, Inc. Apparatus for performing a low latency memory read with concurrent snoop
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
US6647546B1 (en) 2000-05-03 2003-11-11 Sun Microsystems, Inc. Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US6910107B1 (en) * 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US7010636B1 (en) * 2000-09-29 2006-03-07 Fluke Networks, Inc. Method and apparatus for rapid data transfer between dis-similar devices
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US8688662B2 (en) * 2004-09-28 2014-04-01 International Business Machines Corporation Copy on access to locked objects
US7930514B2 (en) * 2005-02-09 2011-04-19 International Business Machines Corporation Method, system, and computer program product for implementing a dual-addressable cache
US8145749B2 (en) 2008-08-11 2012-03-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8141102B2 (en) * 2008-09-04 2012-03-20 International Business Machines Corporation Data processing in a hybrid computing environment
US8230442B2 (en) * 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
US8527734B2 (en) * 2009-01-23 2013-09-03 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system
US9286232B2 (en) * 2009-01-26 2016-03-15 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses
US8843880B2 (en) 2009-01-27 2014-09-23 International Business Machines Corporation Software development for a hybrid computing environment
US8255909B2 (en) * 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
US9170864B2 (en) * 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment
US20100191923A1 (en) * 2009-01-29 2010-07-29 International Business Machines Corporation Data Processing In A Computing Environment
US8180972B2 (en) 2009-08-07 2012-05-15 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
US9417905B2 (en) * 2010-02-03 2016-08-16 International Business Machines Corporation Terminating an accelerator application program in a hybrid computing environment
US8578132B2 (en) * 2010-03-29 2013-11-05 International Business Machines Corporation Direct injection of data to be transferred in a hybrid computing environment
US9015443B2 (en) 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
US9880783B2 (en) * 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10241924B2 (en) * 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4126894A (en) * 1977-02-17 1978-11-21 Xerox Corporation Memory overlay linking system
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4245304A (en) * 1978-12-11 1981-01-13 Honeywell Information Systems Inc. Cache arrangement utilizing a split cycle mode of operation
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
EP0189944B1 (en) * 1985-02-01 1993-05-12 Nec Corporation Cache memory circuit capable of processing a read request during transfer of a data block
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US4912631A (en) * 1987-12-16 1990-03-27 Intel Corporation Burst mode cache with wrap-around fill

Also Published As

Publication number Publication date
JP3239218B2 (ja) 2001-12-17
US5073851A (en) 1991-12-17

Similar Documents

Publication Publication Date Title
JP3239218B2 (ja) キャッシュ管理システム
US4928239A (en) Cache memory with variable fetch and replacement schemes
EP0674267B1 (en) Sub-line cache coherent write transactions
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
US5442571A (en) Method and apparatus for cache miss reduction by simulating cache associativity
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US5293622A (en) Computer system with input/output cache
US5287482A (en) Input/output cache
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JPH04102948A (ja) データ処理システム及び方法
US4757447A (en) Virtual memory system having identity marking for common address space
US7949833B1 (en) Transparent level 2 cache controller
CA1279731C (en) Cache memory with variable fetch and replacement schemes
US5835945A (en) Memory system with write buffer, prefetch and internal caches
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
US5737753A (en) Least recently used block replacement for four block cache logic system
JP3006204B2 (ja) 情報処理装置
EP0407053B1 (en) Small, fast, look-aside data cache memory
JP2507721B2 (ja) バツフアメモリ装置
Knowles et al. The MU6-G virtual address cache
EP0362366A4 (en) Instruction cache flush-on-rei control

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010814

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071012

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081012

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081012

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081012

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 8

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091012

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101012

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111012

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111012

Year of fee payment: 10