JPH05509189A - コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 - Google Patents

コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置

Info

Publication number
JPH05509189A
JPH05509189A JP5500873A JP50087392A JPH05509189A JP H05509189 A JPH05509189 A JP H05509189A JP 5500873 A JP5500873 A JP 5500873A JP 50087392 A JP50087392 A JP 50087392A JP H05509189 A JPH05509189 A JP H05509189A
Authority
JP
Japan
Prior art keywords
address
cache
page
memory
main 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
JP5500873A
Other languages
English (en)
Other versions
JPH07104816B2 (ja
Inventor
シテス リチャード エル
Original Assignee
ディジタル イクイプメント コーポレイション
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 ディジタル イクイプメント コーポレイション filed Critical ディジタル イクイプメント コーポレイション
Publication of JPH05509189A publication Critical patent/JPH05509189A/ja
Publication of JPH07104816B2 publication Critical patent/JPH07104816B2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 キャッシュの連想特性を模擬することによるコンピュータ性能の改良 2朋p分野 本発明は、コンピュータのオペレーションに係り、より詳細には、仮想メモリを 用いたコンピュータに直接マツプ式のキャッシュを使用してセット連想キャッシ ュの性能を模擬する方法に係る。
先行技術 プロセッサの速度が高くなるにつれてコンピュータシステムに高速キャッシュメ モリを使用することが益々重要になってきた。例えば、カナダ公開公報第2゜0 45.833−0号に開示された形式の高速RISCプロセッサは、CPUのサ イクルタイムである5ナノ秒で動作し、各サイクル中に命令を実行するように構 成される(減少命令セットコンピュータ(RISC)の概念を実施することによ って)。メインメモリのサイクルタイムが300ナノ秒の場合に、CPUは、現 在一般的となったキャツシュヒツト(当たり)率を用いてメモリを待機するのに その時間の95%を費やすことが計算できる。メモリの性能をCPUにより近づ けるために、キャッシュメモリは、第1、第2そしである場合には第3レベルの キャッシュを構成するようなハイアラーキ構成とされ、当然ながら、キャッシュ メモリの速度が高められると共に、経済性も増大される。しかし、これらの高速 CPUにとって受け入れられる性能を得るためには、キャッシュのヒツト率を高 めなければならない。
キャッシュメモリは、直接マツプ式アーキテクチャか又はNウェイ連想式がのい ずれかで構成される。直接マツプ式キャッシュは、所与のデータ項目がキャッシ ュ内の1つの場所にしか記憶できず、ヒツト率は低いが、回路が簡単で高速であ るという利点がある。Nウェイ連想キャッシュは、所与のデータ項目をキャッシ ュ内のN個の異なる場所のいずれにも記憶でき、同じサイズの直接マツプ式キャ ッシュよりも高いヒツト率を生じさせる。Nウェイ連想キャッシュの高いヒツト 率は、キャッシュ内での情報配置の融通性が高いことによるものである。
直接マツプ式キャッシュの速度と構造簡易性から高性能コンピュータシステムに この形式のキャッシュを使用し、しかも、Nウェイ連想キャッシュに本来あるの と同様の高いキャツシュヒツト率を達成できることか望まれている。
穴型9要旨 本発明は、その広い観点において、 a)メインメモリ及び直接マツプ式キャッシュをアクセスするCPUを備えてい て、データが上記メインメモリにページで記憶され、b)更に、キャッシュミス (外れ)を生じるアクセスに対し上記メインメモリのアドレスを検出する手段と 、 C)上記アドレスを含むページの上記メインメモリ内の位置を上記メインメモリ 内の別の位置に変更する手段とを備えたコンピュータシステム及びその動作方法 に関する。
本発明の一実施例によれば、直接マツプ式キャッシュを有するコンピュータシス テムは、セット連想キャッシュの作用を模擬するように動作される。この方法は 、データがページで取り扱われそしてキャッシュが物理アドレスによってアクセ スされるような仮想メモリ型オペレーティングシステムを実行するCPUにおい て有用である。この方法は、キャッシュミスを検出し、その検出されたキャッシ ュミスのアドレスを含むメインメモリのページを再マツピングし、スラッシング を生じるメモリ参照がキャッシュにも共存し得るようにすることを含む。異なる 物理ページフレーム内にあるがキャッシュ内の同じ位置にマツプされる2つのメ モリアドレスは、直接マツプ式キャッシュに同時に存在しないことがあり、CP Uで実行されるタスクによりこれら2つのアドレスを交互に参照すると、スラッ シングを招く。しかしながら、メインメモリ内のこれらアドレスの1つの位置が 変更された場合には、これらのアドレスを有するデータ項目がキャッシュにも共 存でき、スラッシングはもはや生じないので、性能は著しく向上される。仮想メ モリオペレーティングシステムを実行するCPUの場合は、データ又は命令のペ ージを異なる物理ページフレームに移動できるが、同じ仮想アドレスのままにす ることができる。これは、単にページの新たな物理位置を反映するようにページ マツプテーブルを更新しそして古いページフレームから新たなページフレームへ データをコピーするだけで達成される。キャッシュミスアドレスをラッチし、そ のラッチを周期的にサンプリングし、そしてこのサンプリングの際に見つかった アドレスを含むページを再マツピングすることにより、スラッシング状態が検出 されて動的に修正される。直接マツプ式キャッシュは、2つ以上のページを保持 するに充分な大きさでなければならない。4ページより多くのページを実質的に 保持するキャッシュの場合には、本発明の模擬技術は、ハードウェアを組み込む ための典型的な経済性よりも高い連想特性を生み出すことができる。
添付図面を参照した好ましい実施例の以下の詳細な説明より本発明を更に良く理 解することができよう。
区面p簡単μ説朋 図1は、本発明の一実施例の特徴を使用することのできるコンピュータシステム の電気ブロック図である。
図2は、図1のシステムに使用することのできる仮想メモリ機構に対するメモリ マツピングを示す図である。
図3は、図1のシステムに使用される本発明のキャッシュメモリの電気回路図で ある。
図4は、本発明の一実施例によりページ番号スワツピング動作を実行するときの メインメモリマツプの一部分を示す図である。
図5a及び5bは、本発明を用いた1つのシステムと本発明を用いない別のシス テムについて、キャッシュアドレス対時間のグラフにキャッシュミスを示した図 である。
女ましい 流側の詳 な説日 図1には、本発明のキャッシュ連想方法を使用することのできるコンピュータシ ステムが示されている。CPUl0は、キャッシュコントローラ12及びCPU バス13を経てシステムバス11へ接続される。メインメモリ14はシステムバ ス11に接続されてこれによりアクセスされ、キャッシュメモリ15はキャッシ ュコントローラ12に接続されてCPUバス13により直接アクセスされるよう になッテイる。CPUl0は、UNIX(登録商標)又はVAX/VSM (登 録商標)オペレーティングシステムによって与えられるような仮想メモリマネー ジメントシステムを実施するものであり、従って、メインメモリ14により与え られる物理的なメモリと、ディスク〕6の形態の一次記憶装置との間でデータの ページがスワップされる。VAXアーキテクチャは、参考と]7てここに取りL げるレビー氏及びエフハウス氏著の「コンピュータプログラミング及びアーキテ クチャー:デーV A X (Computer PrograII量ing  and Architecture: The VAX) l@。
第2版、デジタル・プレス、1989年に掲載されている。CPUl0は、1ノ ビ−氏等の文献又は本発明の譲受人であるデジタル・イクイ・ソプメント・コー ポレ−ションに譲渡されたサンダー、ウーラー及びブラウン氏の米国特許第5, 006.980号に開示されたVAX(登録商標)形式のものであってもよいが 、同じくデジタル・イクイップメント・コーポレーションに譲渡されたカナダ公 開公報第2.045.833−0号に開示された高度な64ビアトRISC形式 のものであるのが好ま1.い。
CPUl0は、先ず、図2に示す全アドレス範囲17内のアドレスを表す仮想ア ドレスであってオペレーティングシステムによって許されるコンピュータ又はそ の一部分の゛アーキテクチャ仕様により定められた仮想アドレスを形成I7、次 いで、その仮想アトしミスを、メインメモリ14のサイズによって制限されたア ドレスマツプ18の物理アドレスに変換することにより、メモリレファレンスを 発生する。上記の変換はページによって行われ、従って、仮想メモリマツプ17 のページ19に対Aる仮想ページアドレスか物理メモリマツプ18のページに対 する物理アドレス19′ に変換される。仮想アドレスと物理アドレスとの間の 変換を行うためにメモリにはページテーブルが維持され、そして通常は図1に示 す変換バッファ20かCI)UIOに含まれていて最も最近使用された変換を保 持し、これにより、データレファレンスを行う前に変換を得るのにメモリ14内 のテーブルを参照する必要がないようになっている。現在実行されているタスク (及びオペレーティングシステムそれ自体)によって使用されるページのみか所 与の時間に物理メモリ14内におそらく入れられ、即ちアドレス19′への変換 はページテーブル内において実際に存在するページのみに対するものである。C PTJIOによって参照されるページか物理メモリ14に存在しないと分かった ときには、ページ欠陥か実行されてスワップ動作を開始し、物理メモリ14から のページがディスクメモリ16に維持された所望のページとスワップされ、この スワップはオペレーティングシステムの制御のもとで行われる。
又、図1のcputoは、前記カナダ公開公報に開示されたように命令キヤ・ソ シュ即ち■キャッシュ21と、データキャッシュ即ちDキャッシュ22とを備え た内部キャッシュメモリも有L7ているが、これらは本発明のこの実施例による 直接マツプ式キャッシュ15の動作には関係しない。従って、図1のコンピュー タシステムによって使用されるメモリは、最も高速のものが内部キヤ・ソシュ2 1.22で、次に高速のものがキャッシュ−15で、次いで、メインメモリ14 で、最後にディスク16のスワップスペースであるような/Xイアラーキ構成の ものである。最も高速のものと低速のものとの間の速度の差は何桁もある。内部 キヤ、7シユとキャッジ1.15は数CPUサイクル内にアクセスされ、一方、 メインメモリ14はおそらく10ないし100又はそれ以上のCPUサイクルで アクセスされそ(7てディスク16のページスワップは数百又は数千のCPUサ イクルを必要とする。従って、システムの性能は、現在使用されている命令及び データがキヤ・ノシュに維持されているかどうかによって大きく左右される。物 理メモリ14内のデータのサブセット(図2の18にマツプされた)は、所与の 時間にキャッシュ15にあり、キャッシュ15内のデータのサブセットは内部キ ャッシュ21及び22にある。
キャッシュメモリ15は直接マツプ式のものであり、図3に示すように構成され る。データは、行24のアレイ23として示されたメモリチップのアレイに記憶 され、各行は多数のブロック25を有している。各ブロック25は、例えば、6 4バイト即ち8クオドワードのデータを含む。キャッシュ15(又はメインメモ リ14)をアクセスするのに使用されるCPUバス13上の物理アドレス26は 、ブロック25内のバイト(又はワード)を選択する下位フィールド27と、行 24内のブロック25を選択するフィールド28と、行を選択するフィールド2 9と、タグフィールド30とを含んでいる。フィールド28は、行内のブロック を選択するためにデコーダ31へ送られ、そ[7てフィールド29は行デコーダ 32へ送られて行が選択され、それがデコーダ31へ出力される。フィールド2 7のアドレスの下位ビットはデコーダ33へ送られてブロック内のバイト又はワ ードが選択され、CPUバス13のデータバスに接続される。キャッシュコント ローラ12においては、タグ記憶部34かブロック25の個数に対応4−るた数 のタグを保持し、CPUバス13のアドレスノくスのアドレス26からのフィー ルド28及び29は、行及び列デコーダ35によ−]て使用されて、1つのタグ が選択され、タグ比較回路36へ送られる。タグ比較回路36の他方の入力はア ト1ノス26からのタグフィールド30である。デコーダ35によつC選択され た記憶されたタグとタグフィールド30とか合致した場合には、タグのヒ・アト が出力37によって信号され、データアレイ23からの出力38のデータか使用 されるが、さもなくば、ミスか信号されてデータ出力か廃棄される。ニスか生ド たときは、メモ1月4へのレファレンスを行わねばならず、従って、アドレスは ギャツンユコントローラ12を経てシステムバス11へ通される。
図3のキャッシュ15は、フィールド28及び29に所与の値のアト1ノスビ・ アトを有する第1のデータ項目を、キャラシュア【ノイ23の1一つのそして1 つだけの位置(ブロック25)に記憶しなければならないという点で直接マ・ツ ブ式である。フィールド28及び29に同じ値のアドレスビットを有する第2の メモリ位置に対してメモリ参照がなされた場合には、これがその参照された第1 デーク項目と同じ位置にマツプされ、従って、第1のものは第2のものによ−2 てオーバー−ライトされねばならない。例えば、CPUl0で実行し7ているタ スクが一7仁−ルド28及び29に同じアドレスビットを有する2つの異なるペ ージに対して同じインデックスを参照する場合には、2つのページからのこの、 イ゛/デ・ソクスを含むブロックがキャッジ、において繰り返し、オーバーライ ドされ、スラッシング状態を招く。これに対(7、セット連想キャッシュでは、 所与の7ドしス値をキヤ・ソソユアレイ内の2つ以−1−の位置にマツプするこ とかでき、従−)1、等1−.いビ・71・の対応セットを有す−る児なるペー ジからの2つのアドレスが↓ヤツンコ内に同時に存在することかできる。1.か じながら、図3に示す直接マツプ式4−ヤツシ、を実施するハードウェアは、セ ット連想キャッシュに比して動作が迅速である。というのは、比較回路36にお いで1一つのタグ比較動作しか必要とされないからである。セット連想キャッシ ュの場合には、タグアドレスを多数の考えられZ1合致について比較し、次いで 、対応するデータも選択しなければならない(タグ比較が完了した後に)。この 付加的な段階が当然ながら動作を低速なものにする。。
例えば、図1のコンピュータシステムで実行される仮想メモリシステムのページ サイズがIKバイトであり、10ピントアドレス値の後に下位ノ(イトアドレス (2進)が繰り返されると仮定する。又、キヤ・ソシュ15の構成か2 K/< イトであって、このキャッシュは図2の物理メモリマ・ツブ18の部分を合計2  Kt<イトまでマツプし1、これらの部分は所与の時間に異なるページ(但し 、全部で2ページ)からの多数のブロックで構成されると仮定する。2進アドレ スでビ・アト〈10:0〉がゼロの境界において物理アドレスが始まるデータ項 目が常にキャッシュ15の第1ブロツクにマツプされる。従って、物理アドレス 0000.2048.4096等はキャッシュ内の同じ場所にマツプされ、即ち 、フィールド28及び29は、例えば、アドレス26のビット<10:4>が同 じであるものを含む。それ故、物理位置0000及び2048を交互にアクセス するタスクは、図3の直接マツプ式キャッシュ15において常にキャッシュミス を生じることになる。、、れに対し、2ウエイ連想キヤツシユ(又はより高い連 想特性のもの)においては、2一つのデータ項目を同時にキャッシュ内に維持す ることができ、従ってこれら2つの物理アドレスを交互に繰り返しアクセスする ことによりキヤ・ソシコヒットが得られる。繰り返し7ミスを生じそしてキヤ・ ソシコ、から互いに変位し7ている2つ以上の位置を「スラッシングIと称する 。
ここに開示するように、キャッシュ15が、CPTJ]、0で実行している仮想 メモリ管理環境においてNページを保持するに充分な大きさである場合には、N ウェイ連想特性の作用を得るようにページが再マツプされる。キャッシュ15が 2つのIKバイトページを保持できるような図4の例では、オペレーティングシ ステムが仮想ページをメLす14(メモリマツプ18)の物理ページに再マ・ツ ブして、2・′7エ1′連想特性を模擬′4″るという所望の作用を得ることが できる。仮想アドレスoooo及び2048は異な一ンた仮想アドレスページに あり、キャッジ。
15内の同じ位置にマツプされる2つの物理ページ(ページフレーム番号301 及び303のような)にマツプすることができる。このよ・うなマツピングの場 合に、直接マツプ式キャッシュ15は、仮想アドレス0000及び2048へ繰 す返しアクセスがなされたときにスラ・・lシングを生じる。異なる仮想−物理 ″:?ツピング(ページフレーム番号(PFN)301及び303ではなく ” rベージフレーム番号301及び302を指定するような)では、2にバイトキ ャッシュ15において両りのページが同時に存在することができ、キャッシュは 2ウエイ連想キヤツシユの作用をりえる4、ページフレーム番号PFN303に あ−った同じデータは物理メモリ」4内のPFN302に再書き込みされ、従っ て”、キャッシュ15内の同じ位置に既にマツプされている一対のブロックが今 度は異なるブロック・位置にマツプされる。2一つの項目に対する物理アドレス 26のアドレスビットのセットは今度はフィールド28及び29に異なるビット をもつことになる。
オペレーティングシステムによりデータをコピーしそして仮想ページに指定され たページフレーム番号を再マツプするのは簡単なタスクである(この機能は、不 良メモリブロック、即ちソフトのエラー等を示すブロックを再マツプするための UNIX又はVAX/VMSに既に存在する)。しかしながら、先ず、スラッシ ングを生じるようなデータ項目を検出しなければならない。これら項目の有無は 、もちろん、データに依存すると共にアプリケーションソフトウェアに依存する ものであり、従って、実行時間の前にいっその状態が生じるかを予想することは 実質上不可能であり、又、ソフトウェアが別に呼び出されたときには、スラッシ ングの実例がおそらくプログラム内の別の時間及び場所で生じるであろう。その 当該ソフトウェアは、その状態が生じたかどうか分かる前であって且つその状態 の各実例の位置か分かる前に実行していなければならない。実行時間中にスラッ シング状態を検出する1つの方法は、キャッシュミスを生じるアドレスのサブセ ット(例えば、6ビツトのミスカウンタ40によって制御される1オブ64のよ うな)をラッチしくメモリ又は図3のレジスタ39に)、そしてタイマー割り込 みルーチンによりこのラッチ39のアドレスを周期的に読み取ることである。
このように実施される方法では、ミスアドレスの流れのこのサンプルに基ついで ページ番号を選択的に再マツピングしく図4のように)、スラッシングを減少さ せる。ミスアドレス流のサブセットをサンプリングする目的は、タイマー割り込 みルーチンがミスアドレスラッチ39においてタイマー割り込みルーチンそわ自 体のアドレスを常時見い出すのを回避するためである。ミスラッチ39及びカウ ンタ40は、キャッシュコントa−ラ12又は(j)UlOの一部分として構成 することもできるし、或いはCPUバス13に接続された個別のハードウェアで あってもよい。
使用することのできるjつの再マツビニ/グアルゴリズムは、ミスラッチ39か ら1秒当たり100ないし1000のサンプルを取り出しそしてそのサンプリン グされた各ページを図4に示−4ように異なる物理メモリ位置(異なるページ7 1ノーム)へと再マツピングすることである。新たなPFNを選択するアルゴリ ズムは、mに既存のPFNを減少しそして変位したPFNを増加するだけでよい 。もう1つのアルゴリズムは、オペレーティングシステムが追跡する物理メモリ 内の「非割り当てベージノの1つを使用し、即ち、移動されるべきページフレー ムに未使用のページフレーム番号の1つを与え、これにより、切り換えねばなら ないような変位したページがないようにすることである。このように、新たな番 号が指定された後に、この方法では、1ページ又は2ページを物理メモリ14内 の新たな位置に移動する必要がある。実際にスラッシングを生じる位置は、高い 確率で、サンプリングされ移動されて終了となる。又、スラッシングページは、 高い確率で(少なくとも数回のこのような移動の後に)、ハードウェアNウェイ 連想キャッシュ(Nは直接マツプ式キャッシュ15が保持できるページ数である )に等価なキャッシュ構成に到達し、スラッシングが減少される。
本発明の方法を使用する効果を実証するものとして、キャッシュミスの記録を図 53に示した。これは本発明の改良を使用しない場合である。このグラフの座標 は、図において上から下へ延びる時間と、左から右へ延びるキャッシュメモリア ドレスであり、各マークがキャッシュミスで、マークの密度がスラッシングの程 度を示しており、全くマークがないのが理想的な状態である。この例では、キャ ッシュを約1ページのレベルまで満たし、次いでゼロまで戻ると思われるパター ンをたどりそして同じ一般的なパターンを再びたどり始めるようなミスを示すア プリケーションプログラムが実行される。キャッシュの第2ページは、たとえ存 在I、でも、このトレースには使用されないか又は少なくともほとんどミスが現 れないと思われる。図5aには、時間に伴う性能の改善が見られず、最初のパタ ーンが不定に繰り返されると考えられる。これに対し、図5bでは、キャッシュ のサイズは同じであるが、本発明の方法が使用されている。ここでは、最初のパ ターンは、図のに部において図53と同じであり、次いで、第2のパターンは、 キャッシュの第2ページを満たし始めると思われ、そしてミスの回数(マークの 密度)はプログラムの実行か続くにつれて徐々に減少され、やがて、グラフの下 部において、その密度か著しく低下する。このグラフの全時間は、上から下まで 約2秒である。本発明を用いる特徴は、プログラムの実行が時間と共に変化する ことであり、即ちアドレス動作のパターンが上記の現象によりスラッシングを生 じるようなものである場合に性能が向上することである。し力化ながら、あるプ ログラムでは、アドレス動作が著しくランダムなものとなり、図5a及び5bに 示すような効果が生じない。全くランダムなアドレスを発生する実験では、本発 明の方法を用いても全く改善は与えられず、実際には、ランダムなスラッシング を検出した後にページを移動する時間が必要なために僅かに性能上不利益がある ことが示される。しかしながら、はとんど全てのプログラムは、一般にはループ であることが多いのでランダムなアドレスパターンはほとんど示さず、従って、 大部分のプログラムは、本発明の方法を使用したときには時間に伴う性能の改善 をもたらす。
本発明の方法によってもたらされる改良された動作は、高速で簡単な構造の直接 マツプ式キャッシュメモリデバイスを使用できるようにする一方、低速で複雑な Nウェイ連想キャッシュハードウェアにほぼ匹敵するキャツシュヒツト性能を達 成できるようにする。速度の点からの全性能は、セット連想キャッシュを使用し た場合より優れている。というのは、セット連想キャッシュに本来あるハードウ ェア遅延が存在しないからである。
特定の実施例について本発明を説明したが、本発明をこれに限定するものではな い。当業者であれば、ここに開示した実施例の種々の変更や別の実施例が明らか となろう。それ故、本発明の範囲内に入るこれらの変更や別の実施例は本発明の 請求の範囲内に包含されるものとする。
要 約 書 0 1K 2K OIK 2に 国際調査報告 、。工/US 92104□81−1−−1〜−m1mN・

Claims (12)

    【特許請求の範囲】
  1. 1.CPU、メモリ及び直接マップ式キャッシュを有する形式のコンピュータシ ステムを動作する方法において、 a)上記キャッシュをアクセスするときのミスのアドレスを検出し、そしてb) 上記アドレスを含む上記メモリ内のページの位置を上記メモリの別のページ位置 に変更する、 という段階を備えたことを特徴とする方法。
  2. 2.上記CPUは仮想メモリシステムを実行し、そして上記直接マップ式キャッ シュは、仮想アドレスではなくて物理アドレスによりアクセスされる請求項1に 記載の方法。
  3. 3.上記直接マップ式キャッシュは上記ページのうちの少なくとも2つを保持し 、上記検出段階はキャッシュミスのアドレスをラッチすることを含み、そして上 記検出段階はそのラッチされたアドレスを周期的にサンプリングすることを含む 請求項1に記載の方法。
  4. 4.a)データがページで記憶されるメインメモリと、直接マップ式キャッシュ とをアクセスするCPUと、 b)キャッシュミスを生じるアクセスに対し上記メインメモリのアドレスを検出 する手段と、 c)上記アドレスを含むページの上記メインメモリ内の位置を上記メインメモリ 内の別の位置に変更する手段と、 を備えたことを特徴とするコンピュータシステム。
  5. 5.上記CPUは仮想メモリシステムを実行し、上記直接マップ式キャッシュは 仮想アドレスではなくて物理アドレスによりアクセスされ、そして上記ページは 、仮想メモリシステムを実行する際に、上記メインメモリとディスクメモリとの 間でスワップされる請求項4に記載のシステム。
  6. 6.上記直接マップ式キャッシュは上記ページのうちの少なくとも2つを保持し 、上記検出手段は、キャッシュミスのアドレスを保持するラッチと、該ラッチを 周期的にサンプリングする手段とを含む請求項4に記載のシステム。
  7. 7.コンピュータシステムを動作する方法において、a)CPUで実行している タスクによって使用されるデータをメインメモリのページに記憶し、 b)上記メインメモリのデータの上記ページのサブセットを直接マップ式キャッ シュに記憶し、 c)上記タスクを実行しながら上記CPUに仮想アドレスを発生し、d)上記仮 想アドレスを物理アドレスに変換して上記キャッシュ及び上記メインメモリをア クセスし、 e)上記メインメモリ内にページを配置するためにページ番号をアドレスの各ペ ージに指定し、 f)上記キャッシュにミスを生じたメモリアクセスの物理アドレスを検出し、そ して g)上記キャッシュミスを生じたページに異なるページ番号を再指定し、この異 なるページ番号に対応する上記メインメモリ内の異なる位置に上記ページを再配 置する、 という段階を備えたことを特徴とする方法。
  8. 8.上記CPUは仮想メモリシステムを実行し、上記メインメモリとディスクメ モリとの間でページがスワップされ、上記ページのうちの少なくとも2つを上記 直接マップ式キャッシュに記憶することを含み、そして上記検出段階はキャッシ ュミスのアドレスをラッチすることを含む請求項7に記載の方法。
  9. 9.上記検出段階は、上記ラッチされたアドレスを周期的にサンプリングするこ とを含み、上記再指定は、上記周期的サンプリングからのキャッシュミスアドレ スを使用することを含む請求項8に記載の方法。
  10. 10.a)仮想メモリシステムを実行するCPUと、b)上記仮想メモリシステ ムのもとで上記CPUで実行されるタスクによって使用されるデータのページを 記憶するメインメモリと、c)上記メインメモリに記憶されたデータの上記ペー ジのサブセットを記憶する直接マップ式キャッシュとを備え、 d)上記CPUは上記タスクを実行しながら上記CPUに仮想アドレスを発生し 、 e)上記キャッシュ及び上記メインメモリをアクセスするために上記仮想アドレ スを物理アドレスに変換する手段と、f)上記メインメモリ内にページを配置す るためにページ番号をアドレスの各ページに指定する手段と、 g)上記キャッシュにミスを生じたメモリアクセスの物理アドレスを検出する手 段と、 h)上記キャッシュミスを生じたページに異なるページ番号を再指定しそしてこ の異なるページ番号に対応する上記メインメモリ内の異なる位置に上記ページを 再配置する手段とを備えたことを特徴とするコンピュータシステム。
  11. 11.上記ページは、上記メインメモリとディスクメモリとの間でスワップされ 、上記直接マップ式キャッシュは上記ページのうちの少なくとも2つを記憶しそ して上記検出手段はキャッシュミスのアドレスを保持するを含む請求項10に記 載のシステム。
  12. 12.上記検出手段は上記ラッチを周期的にサンプリングする手段を備え、そし て上記再指定手段は上記サンプリング手段に応答する請求項11に記載のシステ ム。
JP5500873A 1991-06-17 1992-05-21 コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置 Expired - Lifetime JPH07104816B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71639791A 1991-06-17 1991-06-17
US716,397 1991-06-17
PCT/US1992/004281 WO1992022867A1 (en) 1991-06-17 1992-05-21 Improving computer performance by simulated cache associativity

Publications (2)

Publication Number Publication Date
JPH05509189A true JPH05509189A (ja) 1993-12-16
JPH07104816B2 JPH07104816B2 (ja) 1995-11-13

Family

ID=24877837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5500873A Expired - Lifetime JPH07104816B2 (ja) 1991-06-17 1992-05-21 コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置

Country Status (12)

Country Link
US (1) US5442571A (ja)
EP (1) EP0543991B1 (ja)
JP (1) JPH07104816B2 (ja)
KR (1) KR960005443B1 (ja)
AU (1) AU658914B2 (ja)
CA (1) CA2088779C (ja)
DE (1) DE69229667T2 (ja)
IE (1) IE921691A1 (ja)
IL (1) IL102001A (ja)
MX (1) MX9202907A (ja)
TW (1) TW219986B (ja)
WO (1) WO1992022867A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2688612A1 (fr) * 1992-03-13 1993-09-17 Inst Nat Rech Inf Automat Dispositif d'antememoire.
US5732409A (en) * 1994-03-21 1998-03-24 Legend Research Limited Caching disk controller implemented by hardwired logic
US6129458A (en) * 1994-03-23 2000-10-10 At&T Global Information Solutions Company Cache optimization method
US6223255B1 (en) 1995-02-03 2001-04-24 Lucent Technologies Microprocessor with an instruction level reconfigurable n-way cache
US5845106A (en) * 1996-01-26 1998-12-01 Advanced Micro Devices, Inc. Method for simulating cache operation
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US6301641B1 (en) * 1997-02-27 2001-10-09 U.S. Philips Corporation Method for reducing the frequency of cache misses in a computer
KR100231707B1 (ko) * 1997-08-04 2000-01-15 정선종 통신 장비의 디엠에이 처리 방법 및 그 장치
US6209062B1 (en) * 1997-11-24 2001-03-27 Intel Corporation Method for holding cache pages that are not invalidated within normal time duration for a second access or that are likely to be accessed again soon
US6446170B1 (en) * 1999-01-19 2002-09-03 International Business Machines Corporation Efficient store machine in cache based microprocessor
US6408368B1 (en) 1999-06-15 2002-06-18 Sun Microsystems, Inc. Operating system page placement to maximize cache data reuse
US6366994B1 (en) * 1999-06-22 2002-04-02 Sun Microsystems, Inc. Cache aware memory allocation
JP2001109661A (ja) 1999-10-14 2001-04-20 Hitachi Ltd キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
US6523092B1 (en) 2000-09-29 2003-02-18 Intel Corporation Cache line replacement policy enhancement to avoid memory page thrashing
US6947052B2 (en) * 2001-07-13 2005-09-20 Texas Instruments Incorporated Visual program memory hierarchy optimization
GB2381886B (en) * 2001-11-07 2004-06-23 Sun Microsystems Inc Computer system with virtual memory and paging mechanism
US7366871B2 (en) 2004-11-18 2008-04-29 Sun Microsystems, Inc. Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table
US7373480B2 (en) * 2004-11-18 2008-05-13 Sun Microsystems, Inc. Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table
JP2007272691A (ja) * 2006-03-31 2007-10-18 Fujitsu Ltd プロセッサ装置およびスラッシング回避方法
US8806461B2 (en) * 2007-06-21 2014-08-12 Microsoft Corporation Using memory usage to pinpoint sub-optimal code for gaming systems
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US10310811B2 (en) 2017-03-31 2019-06-04 Hewlett Packard Enterprise Development Lp Transitioning a buffer to be accessed exclusively by a driver layer for writing immediate data stream
CN111666230B (zh) * 2020-05-27 2023-08-01 江苏华创微系统有限公司 在组相联tlb中支持巨页的方法
US20220206946A1 (en) * 2020-12-28 2022-06-30 Advanced Micro Devices, Inc. Method and apparatus for managing a cache directory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US5210843A (en) * 1988-03-25 1993-05-11 Northern Telecom Limited Pseudo set-associative memory caching arrangement
JPH02273843A (ja) * 1989-04-14 1990-11-08 Nec Corp スワッピング装置
US5101485B1 (en) * 1989-06-29 1996-12-10 Frank L Perazzoli Jr Virtual memory page table paging apparatus and method

Also Published As

Publication number Publication date
WO1992022867A1 (en) 1992-12-23
AU2247492A (en) 1993-01-12
JPH07104816B2 (ja) 1995-11-13
TW219986B (ja) 1994-02-01
IE921691A1 (en) 1992-12-30
DE69229667T2 (de) 2000-02-10
CA2088779A1 (en) 1992-12-18
MX9202907A (es) 1993-03-01
CA2088779C (en) 1998-09-01
DE69229667D1 (de) 1999-09-02
IL102001A (en) 1996-01-31
IL102001A0 (en) 1992-12-30
EP0543991A1 (en) 1993-06-02
EP0543991B1 (en) 1999-07-28
KR960005443B1 (ko) 1996-04-25
AU658914B2 (en) 1995-05-04
US5442571A (en) 1995-08-15

Similar Documents

Publication Publication Date Title
JPH05509189A (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
Moraru et al. Consistent, durable, and safe memory management for byte-addressable non volatile main memory
KR100959014B1 (ko) Tlb 록 표시자
JP3239218B2 (ja) キャッシュ管理システム
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
KR102645481B1 (ko) 상위 계층 캐시의 항목을 기반으로 하위 계층 캐시로의 유입을 로깅함으로써 트레이스 기록
US7472253B1 (en) System and method for managing table lookaside buffer performance
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
EP1869557B1 (en) Global modified indicator to reduce power consumption on cache miss
Moraru et al. Persistent, protected and cached: Building blocks for main memory data stores
US20200192800A1 (en) An apparatus and method for managing capability metadata
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
US7549035B1 (en) System and method for reference and modification tracking
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
TW201933111A (zh) 多個保護標籤設定指令
JP7245842B2 (ja) デバイスをデバッグするときにメタデータにアクセスするための装置及び方法
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
CN111742304B (zh) 当调试要在处理电路上执行的程序时访问元数据的方法
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
JP2000215104A (ja) Way別hit/missカウンタおよびそのカウント方法
JPH06266618A (ja) エラー訂正・検出機能付きの主記憶コントローラを備えた情報処理装置
JP3260466B2 (ja) メモリ更新方式
JP2791319B2 (ja) データ処理装置
JP2021525415A (ja) アクションをトリガするための装置及び方法
JPH07168760A (ja) キャッシュ制御装置