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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped 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
キャッシュ管理システム。 【構成】 中央処理装置(12)と、主メモリ(15)
と、キャッシュメモリ(18)とを有するコンピュータ
システムのキャッシュ管理システムであって、ページサ
イズの情報のブロックを転送する記憶管理装置(32)
と、主メモリから情報を読み取る装置(37)と、キャ
ッシュメモリに情報を書き込む装置(38)と、主メモ
リからの情報の読み取りの間にキャッシュメモリへの情
報の書き込みを重複して発生させる装置(34)とを具
備する。
Description
関し、特に、改良されたキャッシング構成によってコン
ピュータシステムの動作速度を改善する方法及び装置に
関する。
な素子の中でも特に主なものを挙げると、制御機能,論
理機能及び演算機能を実行するためにプログラム命令の
下で動作する中央処理装置と;通常、中央処理装置が使
用するための命令及びデータを記憶するランダムアクセ
スメモリから構成される主メモリと;補助長期メモリ
と;外部とコンピュータとの間で情報を移動させる入出
力制御装置と;表示モニターのように動作の結果を表示
する何らかの構成とを具備する。コンピュータは、プロ
グラム(複数組の命令)及びデータをメモリに記憶し、
それらの命令やデータを中央処理装置により操作させる
ために選択的に検索することによって、中央処理装置を
介して動作する。
つコンピュータが処理できる情報の量と複雑さを増すこ
とにより、コンピュータの能力は一層向上する。これを
実行する主な方法は、中央処理装置とメモリを高速化す
ると共に、メモリスペースを広げることである。残念な
がら、メモリを大型化すればそれだけコスト高になり、
メモリを高速化すれば尚一層コスト高に拍車をかけるこ
とになる。そこで、キャッシュ構成が開発された。キャ
ッシュはプログラムの中で最も高い頻度で利用される命
令とデータを記憶することによりコンピュータシステム
の動作を改善するために、システムの中央処理装置と主
メモリとの間で使用される相対的に容量の小さい高速メ
モリである。正しく設計されたキャッシュ構成は、通
常、(時間の90パーセントにわたって)中央処理装置
がシークする情報を記憶している。すなわち、中央処理
装置は普通は高速のキャッシュメモリと共に動作してい
るので、システム全体としての動作速度は増す。
ップするために設計されたキャッシュ構成には数多くの
種類がある。通常、キャッシュメモリは関連するタグメ
モリを利用し、タグメモリには、キャッシュに記憶され
ている情報の主メモリアドレスを保持する。特定のアド
レスの情報を求めてメモリに要求が送られてきたときに
は、そのアドレスをタグメモリ内のアドレスと比較す
る。タグメモリにアドレスがある場合は、キャッシュメ
モリから情報をアクセスするが、タグメモリにアドレス
がなければ、その情報を求めて主メモリをアクセスす
る。タグメモリは小型であるが、非常に高価である。
とに32バイト程度の少量の情報を受信するのが普通で
ある。そのような少量の情報を転送するために必要な時
間は比較的重大な問題とはならない。ところが、情報を
さらに高速で、たとえば、一度に1キロバイト、2キロ
バイト又は4キロバイトずつのブロックとして受信する
ようにキャッシュを構成することも可能である。そのよ
うなキャッシュを利用して主メモリからの転送を実行す
るのに要する時間はシステム全体の動作からいってかな
り重大である。さらに、キャッシュメモリにミス(情報
を利用できない)があるときには、中央処理装置は主メ
モリからキャッシュメモリへ情報を移動し、次に、利用
に備えてキャッシュの情報をアクセスしなければならな
い。この情報転送プロセスは、キャッシュを大きな増分
ごとに充填するシステムでは、相当の長さの時間を要す
る。
は、コンピュータシステムの動作速度を増すことであ
る。本発明の別の目的は、キャッシュメモリを利用する
コンピュータシステムの動作速度を増すことである。本
発明の別のさらに特定した目的は、相対的に大きな増分
ごとに充填されるキャッシュメモリを利用するコンピュ
ータシステムの動作速度を増すことである。
びその他の目的は、主メモリの1ページ分に相当するブ
ロックごとに主メモリから充填されるキャッシュメモリ
を利用し、キャッシュメモリのアクセスを実行するため
にタグメモリではなく、記憶管理装置を利用し、キャッ
シュミスの後に主メモリのアクセス中にキャッシュメモ
リに情報を順次書き込むためのカウンタを含み、キャッ
シュ充填を実行するのに相当の回数の主メモリアクセス
をなくすために、記憶管理構成を制御する新規な構成を
利用するコンピュータシステムにおいて実現される。
の目的及び特徴は、添付の図面に関連する以下の詳細な
説明を参照することによりさらに良く理解されるであろ
う。図面中、いくつかの図を通して同じ素子は同一の図
中符号により示される。
メモリの内部におけるデータビットについての動作をア
ルゴリズム及び記号によって表示している部分がある。
そのようなアルゴリズムによる説明や表示は、データ処
理技術に熟達した人がその分野の他の当業者にその作業
の内容を最も有効に伝達するために利用する手段であ
る。ここでは、また、一般的にも、アルゴリズムは所望
の結果に至る首尾一貫したステップのシーケンスである
と考えられる。それらのステップは、物理的な量の物理
的な操作を要求するステップである。
せ,比較及びその他の方法による操作が可能である電気
的信号又は磁気信号の形態をとるが、必ずしもそうであ
る必要はない。場合によっては、主に一般に利用されて
いる用語であるという理由により、それらの信号をビッ
ト,値,要素,記号,文字,項,数などと呼ぶと好都合
であることがわかっている。しかしながら、これらの用
語及びそれに類する用語は、全て、適切な物理的な量と
関連させるべきであり、単に、便宜上、それらの量に付
されたラベルであるにすぎないということを忘れてはな
らない。
ータが実行する知的動作と関連する加算又は比較などの
用語で呼ばれることが多い。本発明の一部を成す、ここ
に説明する動作のいずれにおいても、そのようなオペレ
ータの能力は不要であるか又は多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
の同様な装置がある。いずれの場合にも、コンピュータ
を動作させる際の方法動作と、計算それ自体の方法との
区別に留意すべきである。本発明は、電気的信号又はそ
の他の物理的(たとえば、機械的,化学的)信号を処理
して、他の所望の物理的信号を発生するときにコンピュ
ータを動作させる装置及び方法過程に関する。
ンピュータシステム10をブロック線図の形態で示す。
システム10は中央処理装置12と、入出力回路13
と、主メモリ15と、出力表示装置16と、入出力装置
20とを含む。システム10は、中央処理装置12と主
メモリ15との間に配置されたキャッシュメモリ18を
さらに含む。システム10の動作中、主メモリ15には
様々なプログラムがそれに関連するデータと共に記憶さ
れる。どの特定のプログラムの命令及びデータも、その
プログラムの動作中に、中央処理装置12により主メモ
リ15からアクセスされる。システム10の動作をスピ
ードアップするため、キャッシュメモリ18と関連する
タグメモリ19は、主メモリ15のアクセスにより要求
された情報のアドレスを検閲する。所望のアドレスの情
報がキャッシュメモリ18にあれば、その情報は主メモ
リ15ではなく、キャッシュメモリ18においてアクセ
スされる。
リ18で利用できない場合には、コンピュータシステム
10は主メモリ15の要求されたアドレスにある情報を
キャッシュメモリ18へ転送すると共に、そのアドレス
のコピーをタグメモリ19に記憶する。そのアドレスが
次にアクセスされたときには、タグメモリ19は、アク
セスされたアドレスの情報がキャッシュメモリ18にあ
ることを指示し、情報はキャッシュメモリ18からアク
セスされる。キャッシュメモリ18が、通常、主メモリ
15のデバイスより高速で動作するデバイスから構成さ
れていることを第1の理由として、上記の動作によりシ
ステム10の動作がスピードアップされることは理解さ
れるであろう。
ステムの第1の問題点は、タグメモリ19を構成してい
るデバイスがきわめて高価であるために、キャッシュメ
モリ18が大型化し、そこに記憶されるアドレスの数が
増すのに伴って、タグメモリ19の価格はシステム全体
のコストの大部分を占めるようになることである。従来
のシステム10のタグメモリ19で使用されるデバイス
のコストを低減し且つキャッシュ充填動作中に大きな情
報ブロックを転送するシステムの動作をスピードアップ
するために、図2に示すシステム30が考案された。こ
のシステム30は中央処理装置12と、キャッシュメモ
リ18と、主メモリ15とを含む。図1のシステム10
には示されている入出力回路,出力表示装置及びその他
の装置もシステム30に含まれているのではあるが、そ
れらの装置は本発明の説明には関連をもたないので、図
2には示していない。
情報のアクセスを実行するために、図1に示す従来の高
価なタグメモリ19を利用するのではなく、記憶管理装
置32を利用する。通常、記憶管理装置は、さらに高度
なプロセッサを数多く含むプロセッサチップの一部とし
て入手できるデバイスである。このような記憶管理装置
は仮想メモリシステムで使用されるのが普通である。た
とえば、この装置は、Advanced Micro Devices 製造の
AM29000プロセッサに含まれている。
一部であるかのようにプログラマーがシステムメモリの
全てをアドレスできるようなシステムである。プログラ
マーはアドレス(仮想アドレスと呼ばれる)を供給し、
記憶管理装置は仮想アドレスの情報が実際に記憶されて
いる場所を制御する。情報は主メモリにある場合もあ
り、ハードディスク等の何らかの補助記憶装置にある場
合も考えられる。通常の場合には、記憶管理装置と中央
処理装置とは共動して、情報をアクセスしなければなら
ないときに仮想アドレスを物理メモリアドレスに変換す
る(また、物理メモリアドレスを仮想アドレスに変換す
る)ための1組のルックアップテーブルを作成する。こ
のような仮想メモリシステムを利用すれば、ランダムア
クセスメモリよりはるかに大きなアドレススペースをも
ってコンピュータシステムを構成することができ、高価
なランダムアクセスメモリの使用を維持する。
が、主メモリにはない情報をページと呼ばれるブロック
の形で主メモリへ転送し、そのようなページサイズ単位
で主メモリに記憶する。ページは、システムが様々なプ
ログラムを実行してゆく中で、必要に応じて主メモリへ
スワップイン,スワップアウトされる。ページはどのよ
うな大きさであっても良いが、一般には1キロバイトか
ら8キロバイトの大きさである。通常、ページはそのペ
ージ番号と、ページ内部のオフセットとによりアドレス
される。図3は、好ましい実施例のシステムにおいて使
用する32ビット仮想アドレスの構成を示す。アドレス
の最下位の2ビットは使用されない。次の8ビットはメ
モリの1つのページの中の語アドレスを含む。さらに次
の5ビットは2進コード行アドレスを含み、上位の17
ビットはメモリ内の情報のページアドレスを示す。
に対してアクセスを実行するために記憶管理装置32を
利用する。キャッシュメモリ18は、主メモリ15の同
じ情報をアドレスするために使用される仮想アドレスに
よってアドレスされるということから、仮想キャッシュ
と呼ばれる。キャッシュメモリ18は64キロバイトの
情報を記憶することができる。好ましい実施例では、キ
ャッシュメモリ18を充填するとき、情報は1キロバイ
トごとのページサイズブロックとしてキャッシュメモリ
18に記憶される。
きには、その情報の仮想アドレスと、物理アドレスとを
記憶管理装置32により記憶する。ある特定の仮想アド
レスの情報がアクセスされると、記憶管理装置32は、
キャッシュメモリ18にその情報が記憶されていること
を示すその情報に関する仮想アドレスを記憶しているか
否かを見る。記憶管理装置32に仮想アドレスが記憶さ
れていれば、キャッシュメモリ18で情報をアクセス
し、主メモリ15をアクセスする必要はない。これによ
り、タグメモリを使用したときとほぼ同じように、タグ
メモリの高価な素子を使用する必要なくシステムの動作
はスピードアップする。
想メモリシステムで利用されるために相対的に量の多い
情報を転送するように設計されている。一般に、転送し
うる最小ページサイズは1キロバイトである。このた
め、記憶管理装置をキャッシュの制御に使用するときに
は、キャッシュミスの場合にキャッシュメモリ18を充
填する時間が必要とされるために問題が生じる。代表的
なキャッシュシステムでは主メモリ15から転送すべき
情報の量は少ないので、転送ごとの時間はさほどの意味
をもたないが、充填時間の長いシステムにおけるキャッ
シュミスは転送ごとにはるかに長い時間を要求する。
ステムでは、キャッシュミスが起こると、まず、1つの
情報ブロックを主メモリ15から転送し、次にキャッシ
ュメモリ18に書き込み、最後に、アクセスされたアド
レスの情報を中央処理装置12へ転送して利用する。す
なわち、キャッシュ充填時間が長いときには、1回のキ
ャッシュミスできわめて多くの時間が費やされるのであ
る。
32と関連させて、システム30の動作に必要な時間を
さらに短縮する構成を設ける。代表的なシステムでは、
1回のキャッシュ充填に、主メモリ15の読み取り時間
と、キャッシュメモリ18に書き込むために必要な時間
と、さらには中央処理装置がキャッシュメモリ18に書
き込むために必要とする時間とを要求する。
モリ15でアクセスされているのと同じ期間の中でキャ
ッシュメモリ18に書き込まれるので、従来のシステム
を使用してキャッシュメモリ18を充填するために必要
な時間をかなり短縮することになる。そこで、主メモリ
15を読み取ると共にキャッシュメモリ18を充填する
という動作に、主メモリ15を読み取るために必要な時
間のみがあれば良いという効果が得られる。
の中に含まれている。ゲートアレイ34は、キャッシュ
ミスの場合にコピーすべき開始キャッシュアドレスを中
央処理装置12から受信するカウンタ35を含む。キャ
ッシュミスが起こり、主メモリ15で情報がアクセスさ
れると、中央処理装置12はゲートアレイをキャッシュ
コピーモードにし、マルチプレクサ39にカウンタ35
からのキャッシュアドレス出力をイネーブルさせる。主
メモリにおける不在ページのアドレスは、主メモリ15
をアドレッシングするために使用される主メモリ(DR
AM)制御装置37に供給される。主メモリ15でキャ
ッシュページがアクセスされると、DRAM制御装置3
7は出力イネーブル信号を主メモリ15に供給すると共
に、キャッシュメモリ制御装置38にキャッシュメモリ
書き込みイネーブル信号を発生させる。
主メモリ15のアドレスを使用して主メモリ15の情報
がアクセスされるのにつれて、出力をキャッシュメモリ
18に書き込む。同時に、カウンタ35は増分した行ア
ドレスをマルチプレクサ39を介して記憶管理装置32
に供給する。このシステムは主メモリ15の読み取りア
クセスと、キャッシュメモリ18の書き込みアクセスと
を重複させている。本発明の好ましい実施例では、キャ
ッシュを充填するための時間は、中央処理装置12がコ
ピー動作を実行するのに要する時間の半分よりさらに短
くなっている。このことは、キャッシュメモリ18を一
度に1キロバイトごとの情報のブロックとして充填する
ような構成の場合に特に重要である。
で動作させることができる。図4は、本発明の好ましい
実施例で利用する記憶管理装置32の構成をさらに詳細
な形で示す。この特定の記憶管理装置32は変換索引バ
ッファと呼ばれることが多い比較的単純な形態のもので
ある。この特定の変換索引バッファは2つのセクション
A及びBと、多数の記憶行とを含む。変換索引バッファ
の各行は、セクションAと、セクションBとについて1
組ずつ、合わせて2組のアドレスを記憶することができ
る。すなわち、このバッファは本質的には二方向セット
連想記憶装置である。各組のアドレスは、アクセスすべ
き特定の情報の仮想アドレスと、物理アドレスとを含
む。変換索引バッファのどの行にあるアドレスの組も、
キャッシュメモリ18に保持されている情報のアドレス
である。
報の任意のページに関する1組のアドレスは、変換索引
バッファの、アドレスの中の行番号を指定している5つ
のビットにより指定された行に記憶される。5ビットの
2進情報は32の異なる行を指定することができる。特
定の行番号をもつアドレスの情報をキャッシュメモリ1
8に導入するときには、仮想アドレスをキャッシュ内の
その物理アドレスと共に変換索引バッファのその行番号
の場所に記憶する。
力できないので、キャッシュメモリ18で同じ行番号を
もつ3つ以上のアドレスがアクセスされ、記憶される場
合には、通常の記憶管理装置はキャッシュメモリ18か
ら1ページ分の情報を除去し、それに対応するアドレス
の組を変換索引バッファから除去し、それらを新たなペ
ージ、新たなアドレスとそれぞれ置き換える。同じ行ア
ドレスをもつ3つの特定の情報を頻繁に使用するのであ
れば、キャッシュメモリ18からごく高い頻度で多数の
情報のページを除去しなければならない。ページはキャ
ッシュメモリ18の中で物理的には互いに32キロバイ
ト離れていることになっているのであるが、このような
状況は、プログラマーが呼び出しプロセスのアドレスを
1つの行のエントリの一方に記入し、呼び出されるプロ
セスを他方のエントリに記入するときには通常よく起こ
る。
互間で急速な切り換えが行われる。ページをキャッシュ
メモリ18にできる限り速くコピーさせるためにページ
サイズを1キロバイトに縮小すると、全て同じ行アドレ
スを伴う3つのルーチンが現れることが時折起こる。仮
想アドレスがその行に記憶されている仮想アドレスのい
ずれとも整合しない場合には、通常、プロセッサは情報
をキャッシュメモリ18にコピーしなければならない。
これはシステムの動作速度という点では不利であり、キ
ャッシュメモリ18を命令を記憶するために使用する時
間の約15パーセントでそのような状況が起こることが
統計によりわかっている。
に、変換索引バッファの行ごとに、その行についてそれ
までアドレッシングされた、現在キャッシュメモリに記
憶されている情報のページの連係リストを作成する。プ
ロセッサが飛び越しを実行するときには、プロセッサの
ハードウェアはその飛び越しの目標となる行を行アドレ
スから確定する。ハードウェアは、その行番号に基づい
て、その行の2つのページのどちらかが正しいページで
あるか否かを知るために検査を実行する。ページアドレ
スが整合すれば、仮想アドレスはキャッシュメモリ18
の、情報を記憶する物理アドレスに変換される。
想ページアドレスが記憶されていないためにキャッシュ
ミスが起こると、ミスによって例外が発生し、それはシ
ークしたアドレスと共にオペレーティングシステムへ送
られる。オペレーティングシステムは仮想アドレスの行
アドレス部分を使用して、その特定の行についてそれま
でアドレッシングされた、まだキャッシュメモリ18に
記憶されているページのリストをアクセスする。リスト
にページがあれば、その仮想アドレスは変換索引バッフ
ァの適切な行に導入され、また、変換索引バッファの特
定の行に関するリストに置き換えたアドレスが追加され
る。
のアドレッシングされた行の複数組のアドレスのうち最
も使用されない組を無効化し、新たな組のアドレスを変
換索引バッファの無効の組に重ねてコピーし、元の組の
アドレスの変換索引バッファエントリをその行番号に関
する連係リストに追加する。その後は、キャッシュミス
が起こるたびに、ページがまだキャッシュメモリ18に
あるか否かを知るために、その行のリストを検査する。
と整合すれば、変換索引バッファのその行のアドレスの
組のうち最も使用されない組をアクセスされているアド
レスの組と置き換える。キャッシュの情報はそのままに
保たれる。リストを参照して、ページがリストに載って
いないときには、キャッシュの全てのページが使用中で
あるか否かを判定する。全てのページが使用中であれ
ば、無作為に1つのページを無効化し、主メモリから新
たなページを無効ページに重ねてコピーし、そのアドレ
スを変換索引バッファと、その行に関するページのリス
トに追加する。
らの別のページを入れる余地がまだ残っている場合に
は、変換索引バッファのアクセスされた行にアドレスが
現在記憶されている情報のページを無効化するのではな
く、旧ページアドレスをその行に関する連係リストに追
加し、キャッシュメモリの未使用ページの1つから新た
なページを割り当てる。主メモリ15からのデータを新
たなページにコピーし、そのアドレスを変換索引バッフ
ァと、連係ページリストとに追加する。その後、次にそ
のアドレスがアクセスされるときには、連係リストを参
照する。ページがまだキャッシュメモリ18にあれば、
変換索引バッファのアドレスを変更するが、データは移
動しない。
のみが変更され、その間、キャッシュメモリ18の情報
は同じままである。この動作を他の動作と重複させて、
ページを置き換えなければならない場合にキャッシュメ
モリ18を充填するために必要な時間とは対照的に、シ
ステム30の動作中に全くクロック時間を費やさないよ
うにしても良い。
モリ18にある全てのページの連係リストを保持してい
る。キャッシュミスが起こったときには、そのリストを
参照する。ページがまだキャッシュメモリ18にあれ
ば、連係リストを修正するが、データは移動しない。シ
ステムは、単に、変換索引バッファの物理アドレスを、
まだキャッシュメモリ18にある余分のページの物理ア
ドレスと置き換えるだけである。本発明は、キャッシュ
メモリ18のデータをスラッシングするのではなく、変
換索引バッファに記憶されているごく少量のアドレス情
報を置き換えるように動作する。
されても良いが、本発明の好ましい実施例ではソフトウ
ェアを利用する。この特定の動作を実現するためにC言
語原始コードを使用するとよい。
明したが、当業者により本発明の趣旨から逸脱せずに様
々な変形や変更を実施しうることは理解されるであろ
う。従って、本発明は特許請求の範囲によって評価され
るべきである。
モリを有する従来の技術の代表的なコンピュータシステ
ムを示すブロック図。
ムのブロック図。
ドレスの中の2進情報の個々のビットの配列構成図。
置の内部における情報の配列構成図。
Claims (3)
- 【請求項1】 中央処理装置と、主メモリと、キャッシ
ュメモリとを有するコンピュータシステムのキャッシュ
管理システムにおいて、ページサイズの情報のブロック
を転送する記憶管理装置と、主メモリから情報を読み取
る手段と、キャッシュメモリに情報を書き込む手段と、
主メモリからの情報の読み取りの間にキャッシュメモリ
への情報の書き込みを重複して発生させる手段とを具備
するコンピュータシステムのキャッシュ管理システム。 - 【請求項2】 主メモリからの情報の読み取りの間にキ
ャッシュメモリへの情報の書き込みを重複して発生させ
る手段はカウンタと、カウンタにアドレス情報を導入す
る手段と、キャッシュメモリに情報が書き込まれるにつ
れてアドレス情報を増分する手段とを具備する請求項1
記載のコンピュータシステムのキャッシュ管理システ
ム。 - 【請求項3】 記憶管理装置からアドレスが除去されて
いるキャッシュメモリ内の情報のページのリストを提供
する手段と、キャッシュメモリミスのときにアドレスに
関してリストを検査する手段と、シークしたアドレスが
リストにある場合に記憶管理装置の1つのエントリのア
ドレスをシークしたアドレスと置き換える手段とをさら
に具備する請求項1記載のコンピュータシステムのキャ
ッシュ管理システム。
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)
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)
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 |
-
1990
- 1990-02-21 US US07/482,790 patent/US5073851A/en not_active Expired - Lifetime
-
1991
- 1991-02-21 JP JP04744691A patent/JP3239218B2/ja not_active Expired - Lifetime
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 |