JPH03220644A - コンピユータ装置 - Google Patents

コンピユータ装置

Info

Publication number
JPH03220644A
JPH03220644A JP2337008A JP33700890A JPH03220644A JP H03220644 A JPH03220644 A JP H03220644A JP 2337008 A JP2337008 A JP 2337008A JP 33700890 A JP33700890 A JP 33700890A JP H03220644 A JPH03220644 A JP H03220644A
Authority
JP
Japan
Prior art keywords
virtual
cache
memory
information
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2337008A
Other languages
English (en)
Other versions
JP3493409B2 (ja
Inventor
Edmund Kelly
エドムンド・ケリイ
Michel Cekleov
ミシエル・セクレオ
Michel Dubois
ミシエル・デユボア
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH03220644A publication Critical patent/JPH03220644A/ja
Application granted granted Critical
Publication of JP3493409B2 publication Critical patent/JP3493409B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/1063Address 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 virtually addressed

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)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はコンピュータメモリ装置に関するもであり、更
に詳しくいえば、共通バス相互接続を介して接続される
多重処理コンピュータ装置におけるキャッシュに含まれ
ているデータの整合性を維持する仮想メモリ装置におけ
る装置に関するもである。
[従来の技術] コンピュータ装置におけるメモリを最も有利に使用する
ため、および明らかに非常に大容量のランダムアクセス
メモリ(RAM)をプログラマが使用できるようにする
ために、仮想メモリを使用することが一般的になってき
た。仮想メモリ装置は、ランダムアクセスメモリ中に存
在する実際のメモリよりもアドレス可能なメモリを提供
する。
仮想メモリ装置は非常に多数の仮想アドレスを提供する
。仮想アドレスは、ランダムアクセスメモリに現れるよ
うであるが、実際には長期メモリを含むシステム中のメ
モリの任意の部分とすることができる。
これは、ランダムアクセスメモリを同じサイズのいくつ
かの固定ブロックに分割することにより、要求時ページ
ングされる仮想メモリ装置において行われる。ジeブが
メモリに置かれると、それのアドレス空間がブロックと
同じサイズのページに分割され、それらのページは物理
的ブロックに格納される。それから、ブロックは物理的
に隣接することがあり、あるいは隣接しないことがある
が、アドレスはメモリ管理装置より論理的に隣接するも
のとして維持される。
これは物理的メモリの各ブロックに仮想アドレスを割当
てることにより行われる。メモリ管理装置は、通常は一
連のルックアップテーブルを介して、物理的アドレスと
仮想アドレスの関係を保つ。
プログラムの動作のために情報が要求される時に、それ
の仮想アドレスがメモリ管理装置によって物理的メモリ
位置へ変換される。プロセスの動作にとって現在必要な
情報(既にそこにないとしても)がランダムアクセスメ
モリ(RAM)ヘコピーされる。プロセスにより求めら
れる付加情報が必要な時にRAMへ呼出される。
コンピュータ装置の動作速度を向上させるために、コン
ピュータ装置はキャッシュを長い開用いてきた。キャッ
シング装置においては、主メモリから情報から呼出され
て使用されると、その情報はそれのアドレスとともに、
キャッシュと呼ばれるとくに高速のメモリの小さい部分
に格納される。
新しい読出し指令と新しい書込み指令が出されると、情
報が高速メモリキャッシュに存在するかどうか知るため
に、コンピュータ装置はそのキャッシュを調べる。希望
のアドレスとキャッシュメモリ内のアドレスの比較が行
われる。キャッシュメモリ内のアドレスが求められてい
るアドレスに−致しとすると、ヒツトが存在する(情報
をキャッシュにおいて利用できる)。それから、主メモ
リに対するアクセスが求められないように情報がキャッ
シュにおいてアクセスされ、その指令がはるかに迅速に
処理される。キャッシュにおいて情報を利用できないと
すると、主メモリから新しいデータがコピーされ、使用
のためにキャッシュに格納もされる。
メモリ管理装置を介する必要なしにキャッシュを直接ア
ドレスできる時にそのキャッシュは極めて迅速に動作す
る。仮想メモリ装置に用いられるキャッシュは、情報の
仮想アドレスを用いて一層効率よくアドレスできる。そ
の理由は、情報をキャッシュ内で見つけることができる
前は、仮想アドレスを物理アドレスへ変換する必要がな
いからである。仮想キャッシュの問題は、アドレス別名
、5 すなわち、共通物理アドレスヘマッピングする2個の仮
想アドレス、に関連するデータの整合性または「新しく
ないデータ」である、すなわち、2つの仮想アドレスが
共通の物理アドレスヘマッピングする。
多数のプロセッサを使用するコンピュータ装置が設計さ
れている。多数のプロセッサを使用することにより、全
体の装置の情報処理能力が高められるように、1つの中
央処理装置(CPU)以外のプロセッサにより各種の機
能またはプロセスを取扱うことができる。ある装置に多
数のプロセッサが用いられると、各プロセッサによる動
作の速度を向上させるために、そのプロセッサに個々の
キャッシュを利用することがしばしば有利である。
多数のプロセッサ装置により得られる1つの特殊な利益
は、プロセッサが同じ物理的メモリをアドレスできるか
ら、それらのプロセッサは同じデータを共用できる。し
かし、多数のプロセッサにより用いられる多数のキャッ
ジ−がデータを共用すると、特定の任意のプロセッサが
物理メモリで6− データを注意する時に、キャッシュにおける動作が2つ
のプロセッサにより共用される物理的メモリにおいて反
映されな〜)ことがあるから、データの整合性の問題が
起る。含まれている仮想キャッシュと、実際に装置の全
てのメモリとが個々のプロセッサに特有のキャッシュで
あるとそのプロセッサにより考えられるから、それはと
くに困難な問題である。1つのプロセッサに対する仮想
アドレスは、異なる仮想キャッシュに関連する別のプロ
セッサに対して、何の意味も持たない。これは、同じ物
理メモリからの同じデータを保持するキャッシュをそれ
ら2つのプロセッサが利用したとしてもそうである。し
たがって、仮想キャッシュを利用する多重プロセッサコ
ンピュータ装置は、従来技術に対した非常に困難な整合
性の問題をつきつけたことになる。
多重プロセッサコンピュータ装置に仮想キャッシュを使
用することにより生じるデータの整合性の問題に対する
従来の解決法は、ハードウェアを極めて多数使用する傾
向にあり、その結果として装置の動作が遅くなることが
しばしばであった。
[発明が解決しようとする課題] したがって、本発明の目的は、仮想キャッシングを利用
する多重プロセッサ装置においてデータの整合性の問題
をなくすことである。
本発明の別の問題は、仮想キャッシングを利用する多重
プロセッサコンピュータ装置におけるアドレッシングが
複雑なことを減少することである。
本発明の更に別の目的は、仮想キャッシングを利用する
多重プロセッサ装置におけるデータ整合性の問題を、そ
のコンピュータ装置のコストや複雑さを大幅に増大させ
ることなしになくすことである。
[課題を解決するための手段] 仮想キャッシュメモリをおのおの有する第1のプロセッ
サおよび第2のプロセッサと、主メモリと、この主メモ
リとプロセッサを結合するバスと、各プロセッサに関連
するキャッシュをアドレッシングする手段と、各プロセ
ッサに関連するメモリ管理装置と、情報のキャッシュ内
の位置を示すインデックスを含む仮想キャッシュへ書込
むべき情報の仮想アドレスを指示するために、各メモリ
管理装置ヘアドレッシング情報を転送する手段と、情報
の仮想キャッシュ内の位置を示す仮想オフセットインデ
ックスと物理アドレスを仮想アドレスから発生する手段
と、他の任意の仮想キャッシュが同じ物理的メモリ位置
からの情報を含むかどうかを物理アドレスから判定する
手段と、を含み、キャッシュをアドレッシングする前記
手段は、主メモリ内の同じ物理的場所からの情報を格納
する各仮想キャッシュ内の情報を、各仮想キャッシュ内
の同じインデックス位置にするインデックス手段を含む
コンピュータ装置において本発明のそれらの目的および
諸特徴が実現される。
[実施例コ 以下に行う詳細な説明は、コンピュータメモリ内のデー
タビットについてのオペレーションのアルゴリズムおよ
び記号表現をある程度用いて行う。
それらのアルゴリズム記述および表現は、データ処理技
術の専門家が自己の業績を他の専門家へ最も効果的に伝
えるために用いられる手段である。
ここではアルゴリズムのことを、希望の結果へ導く自己
整合した一連の過程であると一般的に解する。それらの
過程は物理量の物理的取扱いを必要とするもである。通
常は、それらの量は、格納、転送、組合わせ、比較およ
びその他の取扱いができる電気信号または磁気信号の形
をとるが、必ずしもそうする必要はない。主として一般
的な使用という理由から、それらの信号をビット、値、
素子、記号、文字、名辞、番号等と呼ぶ方が時には便利
なことが判明している。しかし、それらの名辞および類
似の名辞の全ては、適切な物理に関連づけるべきである
こと、およびそれらの名辞はそれらの量に付けけられた
単なる便利なラベルであることを記憶しておくべきであ
る。
更に、実行される操作は加算または比較のような名称で
しばしば呼ばれる。それらの操作は人により行われる精
神的な作業に一般的に関連づけられる。本発明の部分を
構成するここで説明する操作のいずれにおいても、はと
んどの場合に人がそ0 のようなことを行えることは不要であり、望ましくもな
い。本発明の操作を行うために有用な装置は汎用デジタ
ルコンピュータまたは他゛の類似の装置を含む。あらゆ
る場合に、コンピュータを動作させる方法と、処理方法
自体を記憶しておくべきである。本発明は、電気信号ま
たは他の物理的信号(たとえば機械的信号または化学的
信号)を処理して他の希望の物理的信号を発生させる際
に、コンピュータを動作させる装置および方法に関する
もである。
歴史的には、特定のプロセスがコンピュータ装置により
実行される時は、全体のプロセスがランダムアクセスメ
モリに置かれ、中央処理装置は命令と、ランダムアクセ
スメモリに全て存在するそのプロセスのデータとに対し
て動作する。プロセスが大規模になると、ますます多く
のランダムアクセスメモリを要求されるから、そのプロ
セスを実行するための費用がますますかかる。ランダム
アクセスメモリは他の種類のメモリより高いから、仮想
メモリを利用する装置が開発された。
仮想メモリ装置においては、非常に多数の明かななラン
ダムアクセスメモリをアドレスできる。
このランダムアクセスメモリの全てに仮想アドレスが割
当てられる。しかし、仮想アドレスにおいて利用できる
情報を、長期間メモリを含んでいる装置の任意の場所に
格納できる。情報はそれの仮想アドレスによりアドレス
され、メモリ管理装置(MMU)と通常呼ばれている回
路によりそのアドレスは物理アドレスへ翻訳される。こ
の翻訳のた゛めおよび更新された情報を物理的メモリに
保持するために、中央処理装置に組合わされるメモリ管
理装置が設けられる。実際のランダムアクセスメモリに
おいて利用できない情報がプロセスにより必要とされな
いと、その情報は長期間メモリから呼出されて、ランダ
ムアクセスメモリに置かれる。現在の機能で必要なプロ
セス部分だけをランダムアクセスメモリに置く必要があ
るから、そのような装置においては必要なランダムアク
セスメモリは少な〜1゜プロセスの他の部分が必要にな
るとそれらの部分をランダムアクセスメモリに加え、要
求があればそのプロセスまたは他のプロセスの使用しな
い部分をランダムアクセスメモリからなくして空間をつ
くる。それらのなくされた部分は必要に応じて再び呼出
すために副メモリに残る。
一般に、仮想メモリ装置においては情報は物理的メモリ
の等し〜)大きさの部分に格納される。それらの部分の
ことをページと呼ぶことができる。
典型的なページの大きさはメモリの1キロバイトから8
キロバイトの範囲である。情報が副次メモリからランダ
ムアクセスメモリへ転送されると、ページの大きさのブ
ロックが通常転送される。通常の装置においては、メモ
リ管理装置とオペレーティングシステムが一緒に動作し
てページマツプ表を作成する。それらのページマツプ表
をメモリに格納して、仮想メモリアドレスと、それらの
アドレスに等しい物理的メモリアドレスとの間の対応性
を保持する。
コンピュータ装置の動作速度を高くするために、コンピ
ュータ装置はキャッシングも用いる。典型的な構成にお
いては、キャッシュメモリのために13− 利用される物理的メモリ回路は通常のランダムアクセス
メモリよりも速く動作できるから、ランダムアクセスメ
モリの主な部分のために利用される回路よりも費用がか
かる。たとえば、キャッシュメモリはスタチックランダ
ムアクセスメモリチップを利用できる。それらのチップ
は一層高価ではあるが、従来のメモリで利用されるダイ
ナミックランダムアクセスメモリチップより高速で動作
する。
装置の全体の動作速度をキャッシュメモリの動作速度に
近くするために、中央処理装置の行う任意の特定の動作
に対して情報が主メモリから要求されると、その情報は
キャッシュメモリに格納される。情報を読み出すための
何らかの企てが行われると、最初に中央処理装置はその
情報が関連するキャッシュメモリにあるその情報を探す
。その情報がキャッシュメモリにあるもとすると、主メ
モリに対するアクセスは求められない。これでキャッシ
ュの速度が達成される。その情報がキャッシュにないと
すると、その情報を次の読出し時に4 もっとアクセスしやすいように、その情報は主メモリか
らそこヘコビーされる。
仮想メモリを使用するコンピュータ装置においてキャッ
シング装置がしばしば用いられる。そのような装置にお
いては、仮想アドレスから物理アドレスへ翻訳するため
に要する時間をなくすことができるように、仮想アドレ
スを用いることによりキャッシュをアドレスできる。そ
の装置においては、メモリへの書込みがキャッシュレベ
ルにおいて起ると、キャッシュ内の更新されたデータを
最終的に主メモリへ書戻さなければならない。
多数のプロセッサを用いる装置が良く知られている。多
数のプロセッサを用いることにより、全体の装置の処理
能力が向上するように、1つの中央処理装置以外のもに
より各種の機能を取扱うことができる。ある装置に多数
のプロセッサが用いられると、各プロセッサによる動作
速度を高くするためには、そのプロセッサに個々のキャ
ッシュを利用すると特に有利である。これにより、多数
のキャッシュが利用されると、プロセッサは同じ物理的
メモリをアドレスするから、プロセッサは同じデータを
共用できる。しかし、多数のプロセッサにより用いられ
る多数の仮想キャッシュが同じデータを共用する状況に
おいては、キャッシュにおけるオペレージロンが、特定
の任意のキャッシュが物理的メモリでデータを探す時に
、多数のプロセッサにより共用される物理的メモリにお
いて反映されることがないから、データの整合性の問題
が起こる。たとえば、主メモリ内の情報が直ちに更新さ
れないもである場合には、それは書戻しキャッシング装
置において起る。主メモリがバスを介してプロセッサに
よりアクセスされるような装置は、トラフィックを装置
にできるだけ遅く保持する傾向があるから、書戻しキャ
ッシング装置はそのような装置においてとくに有利であ
る。
それは、仮想メモリを利用しているコンピュータ装置に
おいてはとくに困難な問題である。そのコンピュータ装
置においては、含まれているキャッシュは、個々のプロ
セスにとっての特有のもであるために、他のプロセッサ
で実行しているプロセスにとっては未知である仮想アド
レスによってアドレスされる。1つのプロセッサに関連
するプロセスにより用いられる仮想キャッシュに格納さ
れている情報に対する仮想アドレスは、情報が同じ物理
的メモリから得られるとしても、別のプロセッサにより
実行されるプロセスにより用いられる仮想キャッシュ内
の情報の仮想アドレスに対する対応性を持たないことが
ある。したがって、仮想キャッシュを利用する多重プロ
セッサコンピュータ装置は、従来技術において極めて困
難なデータ整合性の問題をひき起している。
本発明の装置においては、利用されるキャッシュは直接
マツプされ、仮想アドレスされるキャッシュである。直
接マツプされるキャッシュは、キャッシュメモリの本質
的に類似するページサイズのブロックヘマップされる主
メモリのページを有するキャッシュである。キャッシュ
メモリのページサイズの各ブロックはメモリの行を有す
る。各メモリ行は、それら情報を転送できるような主メ
モリのページの行が格納するのと同じ量の情報を7 格納できる。そのようなキャッシュにおいては、主メモ
リ内の情報のページからの行が、主メモリ内のページと
同じ行番号を有するキャッシュ内のページサイズのブロ
ックの行へ典型的にマツプされる。そのようなキャッシ
ュにおいては、キャッシュに格納されている、主メモリ
の任意のページからの情報は、物理的メモリのページで
その情報が存在する行と、キャッシュ内のページサイズ
のブロック内の同じ行に存在する。
従来の装置においては、仮想キャッシュのサイズを64
〜256にバイトにし、主メモリのページを4〜8バイ
トにできることが普通である。したがって、従来の装置
においては、キャッシュは主メモリの8〜64ページの
余地を持つことがあり、したがつって、情報の特定の行
はキャッシュの、少なければ8つの位置に、多ければ6
4の位置に存在する。そのようなキャッシュにおいて情
報をアクセスすることと、データの整合性(または「エ
イリアス」)の問題を避けることは、一致が認められる
までキャッシュの各ページサイズ領+8 域と比較することを要する。したがって、64個所の位
置の任意の位置に存在することがあるそのようなキャッ
シュ内の情報をアクセスするには、長いシステム時間と
、多数のハードウェアを要する。
本発明の装置は、主メモリ内の同じ物理アドレスからの
情報を、各仮想キャッシュ内の8つの位置の1つまたは
64の位置の1つではなくて、同一の位置に存在せねば
ならない。これは、キャッシュ内の特定のページサイズ
の区域を指示するために十分な仮想アドレスの一部をシ
ステムバスへ供給することにより行われる。通常は、キ
ャッシュのページサイズ区域内のオフセットを示す仮想
アドレスの下位ビットは、物理アドレスのページ内のオ
フセットを示す下位ビットと同じである。
好適な装置においては、仮想アドレスは32ビツトを含
むことができる。それらのビットのうち、下位の13ビ
ツトはページサイズブロック内のオフセットを示し、上
位19ビツトは物理的ページアドレスへ翻訳される。し
かし、上位19ビツトのうちの下位5ビツトまたは6ビ
ツト(キャッシュサイズに依存する)が、キャッシュの
どのページサイズブロックに情報が存在するかを定める
ことにより、任意のキャッシュ内の情報の位置を明確に
定める。典型的には、下位13ビツトはメモリ管理装置
により翻訳されず、プロセッサからバスへ直接送られる
。それに加えて、情報が位置させられる仮想キャッシュ
のページサイズ区域を示すために、十分な数の仮想アド
レスビット(次に上位の5ビツトまたは6ビツト)もプ
ロセッサからバスへ直接送られ、それからその情報を物
理アドレスで用いて、他の各仮想キャッシュ内の可能な
各ページ位置をチエツクする必要なしに、他の任意の仮
想キャッシュ内の情報の場所を明確に決定する。
したがって、ページサイズが8キロバイトで、キャッシ
ュサイズが256キロバイトであるとすると、更に5ビ
ツトの仮想アドレスを必要とする。
この数はキャッシュ内の32個の可能なページサイズ位
置を指定するために十分である。次にそれらの仮想アド
レスの付加5ビツトは正常なオフセットでバスへ直接送
られ、ページサイズブロックを示す同じ5ビツトを含む
仮想アドレスの上側部分がメモリ管理装置へ送られ、物
理アドレスへ翻訳される。この行とページオフセット情
報および物理アドレスを用いて、複数の異なる仮想キャ
ッシュに存在する物理的メモリの同じ行からの情報をあ
るキャッシュ内の総オフセットにできるだけである。そ
の総オフセットは情報を共用できる他の任意の仮想キャ
ッシュに対して同じである。あるキャッシュ内の総オフ
セットはページサイズ区域内のオフセットと、仮想アド
レスの付加ビット(「オフセットインデックス」と呼ば
れる)とにより定められる。
したがって、好適な実施例においては、直接マツプされ
る仮想キャッシュをアドレスするために用いられる仮想
アドレスの下位18ビツトに仮想アドレスが整合した場
合だけ、2種類の仮想アドレスを共通の物理アドレスへ
マツプできる。仮想キャッシュに対する情報のアドレッ
ッシングにこ1 の制約を課すことにより、同じ物理的メモリ位置からの
情報を有する2つの仮想キャッシュが、各仮想キャッシ
ュ内の同一の位置にその情報を格納する。同じ物理的メ
モリからの同じデータを保持する2つの仮想キャッシュ
は、種々の仮想アドレスにその情報を格納できすが、特
定の各情報片は各仮想キャッシュ内の同じ行に同じバイ
トで、同じ総オフセット(ここでは「仮想インデックス
」と呼ぶ)で格納する。これにより、データを共用する
時にキャッシュのサイズの単位で物理アドレスを主メモ
リにマツプするという効果が得られる。
これは装置の動作速度を極めて増大させ、かつそれの複
雑さを減少する。その理由は、キャッシュ内の多くの異
なるページ中の特定の行を探すために探索を行う必要が
ないからである。
これが第1図に示されている。第1図は物理的メモリP
のキャッシュサイズブロックと、AおよびBとして示さ
れている2つの個々の仮想キャッシュとを示す。本発明
の好適な実施例においては、たとえば仮想キャッシュは
256キロバイトの情2− 報を含むことができる。したがって、共用される情報が
多数の仮想キャッシュメモリに格納されると、個々のキ
ャッシュの仮想アドレスタグが異なるとしても、各キャ
ッシュ内の特定の任意の情報に対する総オフセット(仮
想インデックス)を同じにして、アドレスされるキャッ
シュ行が各キャッシュ内の同じ位置に確実にあるように
するために、キャッシュの正しいページサイズ区域がア
ドレスされるようにする。
たとえば、仮想キャッシュAにXと記されている位置に
格納される情報は、仮想キャッシュBにXと記されてい
る位置に格納される情報と同じである。その情報は、物
理的メモリ内のXと記されている位置から各仮想キャッ
シュにより引き出される情報である。したがって、任意
のキャッシュに対する仮想キャッシュアドレスが既知で
あるとすると、共用が起きたのであれば各キャッシュに
対してインデックスは同じである。
装置がある時間動作しており、主メモリ内の物理的メモ
リPからコピーされた情報が仮想キャッシュAとBに格
納されていると仮定すると、中央処理装置が仮想キャッ
シュBへ書込んだ時に、主メモリとキャッシュメモリA
内のその位置における情報は、キャッシュBに格納され
ている情報とはもはや同じではないことがある。したが
って、キャッシュBから主メモリへ新しい情報を書込む
こと、および中央処理装置が古い情報で動作しないよう
に、キャッシュBに書込まれた材料を反映するために、
仮想キャッシュA内の情報を無効にし、または更新する
必要がある。
次に、コンピュータ装置10が示されている第2図を参
照する。このコンピュータ装置10は第1の中央処理装
置(CPU)12と、このCPU12に関連する第1の
メモリ管理装置(MMU)I4と、第2のCPU1 B
と、とのCPU1Bに関連する第2のMMU 18と、
CPU12に関連するキャッシュメモリ20と、CPU
16に関連するキャッシュメモリ21と、主メモリ22
とを含む。第2図にはスヌービータグ登録簿30132
と、装置の要素を一緒に結合するバス34も示されてい
る。
中央処理装置12が、たとえば、特定のプロセスの動作
のために主メモリ22からの情報を要求する時には、そ
の情報は仮想アドレスを用いてメモリ管理装置14を介
して求められる。メモリ管理装置14は中央処理装置1
2により供給された仮想アドレスを情報が存在する主メ
モリ22の物理アドレスへ翻訳し、その情報を主メモリ
22から呼出し、その情報をキャッシュメモリ20のキ
ャッシュ位置に置く。そのキャッシュ位置は、その情報
が存在するキャッシュのページサイズブロックを指示す
るために十分な下位オフセットビットプラス付加ビット
(オフセットインデックス)により示される。したがっ
て、特定の情報は、仮想キャッシュ内の仮想インデック
スにより決定される独特の位置に存在する。
各仮想キャッシュのメモリには、仮想キャッシュに格納
されている情報の仮想登録簿が格納される。仮想登録簿
は、その特定のキャッシュに格納されている情報の仮想
アドレスを含む。その情報5 は、その情報に関連する許可についてのある情報ととも
に格納される。
スヌービータグ登録簿30と32は第2の登録簿であっ
て、それが関連させられる仮想キャッシュに格納されて
いる情報の物理的メモリ内のページのアドレスをおのお
の格納する。登録簿30と32は、各ページ内のオフセ
ットを含む仮想インデックスと、情報が配置される関連
する仮想キャッシュのページサイズ部分を定めるオフセ
ットインデックスビットも格納する。したがって、仮想
キャッシュに格納されている特定の任意の情報片に対し
て、二重登録簿が存在する。仮想登録簿は仮想アドレス
の表を作成し、スヌービー登録簿は情報の仮想アドレス
に関連する物理アドレスの表を作成する。
中央処理装置が情報を仮想キャッシュへ書込むと、キャ
ッシュ自体、他のキャッシュと物理的メモリを更新また
は無効にして、同じ物理的メモリをアクセスしている別
のキャッシュに状態情報が供給されないようにせねばな
れない。スヌーピー6− 登録簿を使用することにより、中央処理装置により更新
される情報を含むキャッシュメモリをコンピュータ装置
110は迅速に更新できる。中央処理装置によって書込
み信号が仮想キャッシュへ送られると、仮想アドレスタ
グはそのキャッシュに関連するメモリ管理装置へ送られ
、仮想オフセットインデックスを含んでいる仮想インデ
ックスがバス34へ直接送られる。メモリ管理装置は仮
想アドレスを物理アドレスへ翻訳し、その物理アドレス
を仮想オフセットインデックスとともにバスを介して全
てのスヌービータグ登録簿へ放送する。
それらの各登録簿において、比較器86のような比較器
がバス34から物理的インデックスを受け、下位物理ビ
ットと仮想オフセットインデックスにより登録簿がアド
レスされる。物理アドレスと仮想オフセットインデック
スの組み合わせにより、その物理アドレスにおける情報
が、そのスヌービータダ登録簿に関連する仮想キャッシ
ュに含まれているかどうかを明確に判定できる。物理的
メモリの同じ部分に関連する情報を含んでいる登録簿に
おいてのみ、仮想キャッジjが更新または無効にされる
。スヌービータグ登録簿を用いていることにより、バス
の使用が少くされ、装置の動作速度が向上する。
共用目的のために仮想アドレスのサイズを「モジメロ」
であるようにキャッシュサイズを制限することにより、
仮想キャッシュタグと物理(スヌープ)キャッシュタグ
をインデックスするために同じ仮想インデックスビット
を用いることが可能である。
再び第2図を参照して、書込み信号がキャッシュBへ送
られると、データを書込むべき格納位置の仮想インデッ
クスを含む仮想アドレスを示す信号がメモリ管理装置1
8へ送られる。メモリ管理装置18は、従来技術におい
て周知のやり方で、仮想アドレスを物理アドレスへ翻訳
し、その物理アドレスを仮想オフセットインデックス(
プロセッサ16により述べられた仮想アドレスから取出
される、仮想キャッシュ内の情報の1つを定めるために
必要な仮想アドレスの下位ビット)とともにバス34に
置く。このアドレス情報は各スヌービータグ登録簿30
と32へ供給される。各スヌービータグ登録簿において
は、スヌービータダは、ページオフセットと仮想オフセ
ットインデックスで構成されている仮想インデックスに
よりインデックスされ、同じ物理アドレスが関連する仮
想キャッシュに格納されているかどうかを判定するため
に比較が行われる。上記の例においては、物理アドレス
と仮想インデックスは仮想キャッシュA1Bに対して同
じであるから、スメーピータグ登録簿30は、キャッシ
ュメモリAの特定の位置における情報が古くて、書き換
えるか、無視せねばならないことをコンピュータ装置1
0に指示する。
含まれている特定の装置に応じて、主メモリ位置の書き
換えを直ちに行うことができ、または装置は時間損失が
課されない便利な時刻まで遅らせることができる。
このコンピュータ装置を実現するためには、物理アドレ
スと仮想オフセットインデックスをバスに同時に置くこ
とができるようにするために、数29− 本(たとえば5本または6本)の線をバス34に付加す
る必要があることが、当業者にはわかるであろう。それ
ら5本または6本の余分な線は、仮想キャッシュ内の正
確なページサイズ寸法を指示するために十分な数である
。同じ物理的メモリをアドレッツシングする複数の仮想
キャッシュにより生じさせられた問題を解決するために
、それはハードウェアの比較的少ない増加である。
【図面の簡単な説明】
第1図は本発明の装置にメモリを使用している様子を示
し、第2図は本発明を含むコンピュータ装置を示すブロ
ック図である。 10・・・・コンピュータ装置、12.18・・−・中
央処理装置、14.18・・・・メモリ管理装置、20
,21・・・・キャッシュメモリ、22・・・・主メモ
リ、36・e・・比較器。 代  理  人   山  川   政   樹30− トーー−←1 ■ 「IG。 厘 手 続 補 正 書 (方式〉 ■、事件の表示 平成2年特許願第337008号 2、発明の名称 コンピュータ装置 3、補正をする者 事件との関係 特 許 出 願 人 6、補正の対象 以上

Claims (2)

    【特許請求の範囲】
  1. (1)第1のプロセッサおよび第2のプロセッサと、各
    プロセッサに組合わされた直接マップされた仮想キャッ
    シュメモリと、主メモリと、仮想アドレスを物理的アド
    レスへ翻訳するために各プロセッサに組合わされるメモ
    リ管理手段と、主メモリ内の同じ物理的アドレスからの
    各キャッシュ内の情報が各キャッシュ内の同じオフセッ
    ト内に存在しなければならないように、各プロセッサに
    組合わされているキャッシュを、仮想インデックスを含
    んでいる仮想アドレスによりアドレッシングする手段と
    、任意の他の仮想キャッシュが同じ物理的メモリ位置か
    らの情報を含むかどうかを判定する手段とを含むコンピ
    ュータ装置。
  2. (2)第1のプロセッサおよび第2のプロセッサと、1
    つのそのプロセッサにおのおの組合わされた第1の仮想
    的にアドレス可能な直接マップされるキャッシュメモリ
    および第2の仮想的にアドレス可能な直接マップされる
    キャッシュメモリと、主メモリと、システムバスと、主
    メモリ内の同じ物理的アドレスからの各キャッシュ内の
    情報が各キャッシュ内の同じオフセットに存在するよう
    に、1つのそのようなプロセッサに組合わされているキ
    ャッシュを制御するために、そのようなプロセッサにお
    のおの組合わされている第1のメモリ管理手段および第
    2のメモリ管理手段とを備えるコンピュータ装置。
JP33700890A 1990-01-05 1990-11-30 コンピユータ装置 Expired - Fee Related JP3493409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46122590A 1990-01-05 1990-01-05
US461,225 1990-01-05

Publications (2)

Publication Number Publication Date
JPH03220644A true JPH03220644A (ja) 1991-09-27
JP3493409B2 JP3493409B2 (ja) 2004-02-03

Family

ID=23831689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33700890A Expired - Fee Related JP3493409B2 (ja) 1990-01-05 1990-11-30 コンピユータ装置

Country Status (6)

Country Link
US (1) US5361340A (ja)
JP (1) JP3493409B2 (ja)
KR (1) KR930004430B1 (ja)
CA (1) CA2026224C (ja)
GB (1) GB2239724B (ja)
HK (1) HK53994A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282520A (ja) * 2009-06-08 2010-12-16 Nec Corp コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318174A (ja) * 1992-04-29 1994-11-15 Sun Microsyst Inc キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JPH06290076A (ja) * 1993-04-05 1994-10-18 Nec Ic Microcomput Syst Ltd デバッグ装置
JPH09506988A (ja) * 1993-09-30 1997-07-08 アップル コンピュータ,インコーポレイテッド コンピュータの仮想メモリにおける補助記憶の分散制御システム
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
US5584007A (en) * 1994-02-09 1996-12-10 Ballard Synergy Corporation Apparatus and method for discriminating among data to be stored in cache
US5588129A (en) * 1994-02-09 1996-12-24 Ballard; Clinton L. Cache for optical storage device and method for implementing same
SE515718C2 (sv) * 1994-10-17 2001-10-01 Ericsson Telefon Ab L M System och förfarande för behandling av minnesdata samt kommunikationssystem
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5787476A (en) 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
JPH0926945A (ja) * 1995-07-10 1997-01-28 Toshiba Corp 情報処理装置
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US6041396A (en) * 1996-03-14 2000-03-21 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5991819A (en) * 1996-12-03 1999-11-23 Intel Corporation Dual-ported memory controller which maintains cache coherency using a memory line status table
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
WO1999008191A1 (en) * 1997-08-11 1999-02-18 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
CN100392618C (zh) * 1997-08-11 2008-06-04 全斯美达有限公司 保护计算机内存储器被写入的***、方法和设备
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6148387A (en) 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법
US6275872B1 (en) * 1998-10-20 2001-08-14 Bellsouth Intellectual Property Corporation Method for performing migration of uninitialized entries from a storage to a repository within an intelligent peripheral in an advanced intelligent network
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US6549959B1 (en) * 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
US6469705B1 (en) * 1999-09-21 2002-10-22 Autodesk Canada Inc. Cache addressing
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US7502901B2 (en) * 2003-03-26 2009-03-10 Panasonic Corporation Memory replacement mechanism in semiconductor device
JP4783229B2 (ja) * 2006-07-19 2011-09-28 パナソニック株式会社 キャッシュメモリシステム
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses
US11550455B2 (en) * 2016-06-07 2023-01-10 Palo Alto Research Center Incorporated Localized visual graph filters for complex graph queries
US10747679B1 (en) * 2017-12-11 2020-08-18 Amazon Technologies, Inc. Indexing a memory region

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB232526A (en) * 1924-09-22 1925-04-23 Progression Sa Improvements relating to change speed gearing
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
GB8814076D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data processing system
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282520A (ja) * 2009-06-08 2010-12-16 Nec Corp コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
US8578103B2 (en) 2009-06-08 2013-11-05 Nec Corporation Coherency control system, coherency control apparatus and coherency control method

Also Published As

Publication number Publication date
CA2026224C (en) 1995-10-10
US5361340A (en) 1994-11-01
KR910014814A (ko) 1991-08-31
GB9018686D0 (en) 1990-10-10
HK53994A (en) 1994-06-03
CA2026224A1 (en) 1991-07-06
KR930004430B1 (ko) 1993-05-27
JP3493409B2 (ja) 2004-02-03
GB2239724A (en) 1991-07-10
GB2239724B (en) 1993-11-24

Similar Documents

Publication Publication Date Title
JPH03220644A (ja) コンピユータ装置
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
EP1096385B1 (en) A method and apparatus for forming an entry address
EP0945805B1 (en) A cache coherency mechanism
US8451281B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US6658538B2 (en) Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
EP0817059B1 (en) Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
US5088026A (en) Method for managing a data cache using virtual external storage addresses as arguments
US5003459A (en) Cache memory system
US20040117587A1 (en) Hardware managed virtual-to-physical address translation mechanism
US20070283108A1 (en) Memory Management System
US20040117588A1 (en) Access request for a data processing system having no system memory
JPH0628262A (ja) ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US6073226A (en) System and method for minimizing page tables in virtual memory systems
US10733111B2 (en) Memory management
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US7017024B2 (en) Data processing system having no system memory
US5463750A (en) Method and apparatus for translating virtual addresses in a data processing system having multiple instruction pipelines and separate TLB's
US20050055528A1 (en) Data processing system having a physically addressed cache of disk memory
JP3295436B2 (ja) マイクロプロセッサキャッシュの一貫性
JPH01108651A (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
US20230103230A1 (en) Translation lookaside buffer entry allocation system and method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees