JPH05265970A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH05265970A JPH05265970A JP4063446A JP6344692A JPH05265970A JP H05265970 A JPH05265970 A JP H05265970A JP 4063446 A JP4063446 A JP 4063446A JP 6344692 A JP6344692 A JP 6344692A JP H05265970 A JPH05265970 A JP H05265970A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- address
- logical
- logical address
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】本発明は、ページサイズを越える深さの論理キ
ャッシュをシノニムの問題で性能低下をきたすことなく
実装可能にした。 【構成】複数のCPU11,21 に対し論理アドレスでアク
セスされるキャッシュメモリ1,2 をそれぞれ接続すると
ともに、各キャッシュメモリ1,2 に対しバス3 を介して
CPU11,21 のいずれからもアクセス可能な共有メモリ
9 を接続したもので、各キャッシュメモリ1,2 では、各
CPU11,21 より出力される論理アドレスをMMU15,2
5 で物理アドレスに変換するとともに、各CPU11,21
より出力される論理アドレスが対応するキャッシュメモ
リ1,2 内にあるか否かをCPUタグ12,22 により判定
し、さらにバス3 より入力される物理アドレスと論理ア
ドレスを監視し対応するキャッシュメモリ1,2 の内容の
一貫性保持が必要か否かをスヌープタグ13,23 を用いて
判定するようにしている。
ャッシュをシノニムの問題で性能低下をきたすことなく
実装可能にした。 【構成】複数のCPU11,21 に対し論理アドレスでアク
セスされるキャッシュメモリ1,2 をそれぞれ接続すると
ともに、各キャッシュメモリ1,2 に対しバス3 を介して
CPU11,21 のいずれからもアクセス可能な共有メモリ
9 を接続したもので、各キャッシュメモリ1,2 では、各
CPU11,21 より出力される論理アドレスをMMU15,2
5 で物理アドレスに変換するとともに、各CPU11,21
より出力される論理アドレスが対応するキャッシュメモ
リ1,2 内にあるか否かをCPUタグ12,22 により判定
し、さらにバス3 より入力される物理アドレスと論理ア
ドレスを監視し対応するキャッシュメモリ1,2 の内容の
一貫性保持が必要か否かをスヌープタグ13,23 を用いて
判定するようにしている。
Description
【0001】
【産業上の利用分野】本発明は、複数のCPUを共有メ
モリで結合する密結合マルチプロセッサに関するもので
ある。
モリで結合する密結合マルチプロセッサに関するもので
ある。
【0002】
【従来の技術】密結合マルチプロセッサにおいて、CP
U毎にキャッシュを設けることはバス上のメモリアクセ
ストラフィックを削減する上で有効であり、主メモリに
対して高速に動作するCPUにとってもメモリバンド幅
の改善効果がある。
U毎にキャッシュを設けることはバス上のメモリアクセ
ストラフィックを削減する上で有効であり、主メモリに
対して高速に動作するCPUにとってもメモリバンド幅
の改善効果がある。
【0003】ところで、キャッシュを構成する方法とし
て、アクセスの方法によって論理アドレスでアクセスす
る論理キャッシュと物理アドレスでアクセスする物理キ
ャッシュがあるが、このうちで物理キャッシュは、キャ
ッシュをアクセスするたびにアドレス変換を必要として
いる。
て、アクセスの方法によって論理アドレスでアクセスす
る論理キャッシュと物理アドレスでアクセスする物理キ
ャッシュがあるが、このうちで物理キャッシュは、キャ
ッシュをアクセスするたびにアドレス変換を必要として
いる。
【0004】そして、このようなアドレス変換サイクル
が必要な場合、ロード命令はレジスタ間の演算命令より
多くの実行サイクルを必要とすることから、パイプライ
ン計算機の場合には、パイプラインの乱れを生じ、性能
低下の原因となる。特に、Super ScalarやVLIWとい
った構成方法をとる高性能な計算機では、1サイクル中
に複数の命令を実行できるので、パイプラインの乱れに
よる損失は大きなものになる。
が必要な場合、ロード命令はレジスタ間の演算命令より
多くの実行サイクルを必要とすることから、パイプライ
ン計算機の場合には、パイプラインの乱れを生じ、性能
低下の原因となる。特に、Super ScalarやVLIWとい
った構成方法をとる高性能な計算機では、1サイクル中
に複数の命令を実行できるので、パイプラインの乱れに
よる損失は大きなものになる。
【0005】このため、これらの計算機では、論理アド
レスでアクセスする論理キャッシュを用いることが望ま
しいが、論理キャッシュにはシノニムやエイリアスを生
じることがある。
レスでアクセスする論理キャッシュを用いることが望ま
しいが、論理キャッシュにはシノニムやエイリアスを生
じることがある。
【0006】ここで、シノニムとは、キャッシュ間のデ
ータの一貫性を取る際に同じ論理アドレスのデータをマ
ッピングしている可能性のあるエントリ候補がバス上の
物理アドレスから決定できない状況であり、エイリアス
とは、同一の物理アドレスを複数の論理アドレスで共有
した場合、同じ物理アドレスのデータをマッピングして
いる可能性があるエントリ候補が複数存在する状況であ
る。
ータの一貫性を取る際に同じ論理アドレスのデータをマ
ッピングしている可能性のあるエントリ候補がバス上の
物理アドレスから決定できない状況であり、エイリアス
とは、同一の物理アドレスを複数の論理アドレスで共有
した場合、同じ物理アドレスのデータをマッピングして
いる可能性があるエントリ候補が複数存在する状況であ
る。
【0007】これらの状況下ではデータの値の一貫性を
取るべきエントリを即座に決定することができないた
め、エントリを決定するのにハードウェアとクロック数
を必要とする。
取るべきエントリを即座に決定することができないた
め、エントリを決定するのにハードウェアとクロック数
を必要とする。
【0008】一般に、ダイレクトマッピングあるいはセ
ットアソシアティブ・マッピングのキャッシュでは、ア
ドレスの下位を用いてエントリを決定し、そのエントリ
のアドレスタグから読み出された値とアドレスの上位を
比較することで検索を行なう。エントリの決定に用いる
アドレス下位のビット長はキャッシュの深さに相当す
る。ここで、キャッシュの深さとは、同時に検索するこ
とが不可能なデータ量で、キャッシュの容量をウェイ数
で割って求める。ダイレクトマッピングのキャッシュで
はキャッシュ容量に等しく、nウェイのセットアソシア
ティブでは{キャッシュ容量/n}である。
ットアソシアティブ・マッピングのキャッシュでは、ア
ドレスの下位を用いてエントリを決定し、そのエントリ
のアドレスタグから読み出された値とアドレスの上位を
比較することで検索を行なう。エントリの決定に用いる
アドレス下位のビット長はキャッシュの深さに相当す
る。ここで、キャッシュの深さとは、同時に検索するこ
とが不可能なデータ量で、キャッシュの容量をウェイ数
で割って求める。ダイレクトマッピングのキャッシュで
はキャッシュ容量に等しく、nウェイのセットアソシア
ティブでは{キャッシュ容量/n}である。
【0009】一方、論理アドレスから物理アドレスの変
換は2の冪数のバイト数を持つ固定長のページを単位と
して行なわれ、ページ内部のオフセットはアドレス変換
の対象とならず、アドレス変換の対象となるのはページ
番号の部分である。また、ページのサイズが2の冪乗に
取られることから、ページ番号とページ内オフセットは
アドレスのビットフィールドで明確に分離することがで
きる。
換は2の冪数のバイト数を持つ固定長のページを単位と
して行なわれ、ページ内部のオフセットはアドレス変換
の対象とならず、アドレス変換の対象となるのはページ
番号の部分である。また、ページのサイズが2の冪乗に
取られることから、ページ番号とページ内オフセットは
アドレスのビットフィールドで明確に分離することがで
きる。
【0010】もし、キャッシュの深さがページサイズを
越えないなら、エントリの決定に用いる下位のアドレス
はページ内オフセットまたはその一部を用いることにな
る。エントリの決定に用いる部分はアドレス変換の対象
とならず、異なる論理アドレスで共有されていても同じ
物理アドレスのデータは同じページ内オフセットになる
ので、同じエントリにマッピングされ、エイリアスの問
題は発生しない。
越えないなら、エントリの決定に用いる下位のアドレス
はページ内オフセットまたはその一部を用いることにな
る。エントリの決定に用いる部分はアドレス変換の対象
とならず、異なる論理アドレスで共有されていても同じ
物理アドレスのデータは同じページ内オフセットになる
ので、同じエントリにマッピングされ、エイリアスの問
題は発生しない。
【0011】さて、キャッシュ間の一貫性を保持するた
めには、まず、更新が行なわれたデータがキャッシュ間
で共有されているか否かを検出し、同じアドレスのデー
タがマッピングされているエントリを捜し出す必要があ
る。このために、バスを監視し、バス上のアドレスが自
分のキャッシュ中に存在するか否かを検出するスヌープ
動作が必要である。
めには、まず、更新が行なわれたデータがキャッシュ間
で共有されているか否かを検出し、同じアドレスのデー
タがマッピングされているエントリを捜し出す必要があ
る。このために、バスを監視し、バス上のアドレスが自
分のキャッシュ中に存在するか否かを検出するスヌープ
動作が必要である。
【0012】バス上のアドレスはアドレス変換を行なっ
た後の物理アドレスであるが、キャッシュの深さがペー
ジサイズを越えていなければ、キャッシュ・エントリの
決定に用いる部分はアドレス変換の対象とならず、デー
タがマッピングされる可能性のあるエントリを1つに限
定することができ、シノニムの問題を生じない。
た後の物理アドレスであるが、キャッシュの深さがペー
ジサイズを越えていなければ、キャッシュ・エントリの
決定に用いる部分はアドレス変換の対象とならず、デー
タがマッピングされる可能性のあるエントリを1つに限
定することができ、シノニムの問題を生じない。
【0013】以上のように、キャッシュの深さがページ
サイズを越えないような小容量のキャッシュメモリで
は、論理キャッシュを用いてもシノニムやエイリアスの
問題を生じることがない。
サイズを越えないような小容量のキャッシュメモリで
は、論理キャッシュを用いてもシノニムやエイリアスの
問題を生じることがない。
【0014】ところで、最近の半導体技術の進歩は目覚
ましいものがあり、キャッシュメモリの容量も増加の一
途をたどり、ページサイズを越えるキャッシュ容量を実
現することも容易になっいる。
ましいものがあり、キャッシュメモリの容量も増加の一
途をたどり、ページサイズを越えるキャッシュ容量を実
現することも容易になっいる。
【0015】このようにキャッシュの容量を増やすこと
自体はヒット率を向上させCPUの動作効率を高めるの
で歓迎すべきことであるが、キャッシュの深さがページ
サイズを越えるとエントリの決定に用いるアドレス下位
の部分にアドレス変換の対象となる部分が含まれ、この
部分は論理アドレスと物理アドレスで等しくなる保証が
ない。
自体はヒット率を向上させCPUの動作効率を高めるの
で歓迎すべきことであるが、キャッシュの深さがページ
サイズを越えるとエントリの決定に用いるアドレス下位
の部分にアドレス変換の対象となる部分が含まれ、この
部分は論理アドレスと物理アドレスで等しくなる保証が
ない。
【0016】このため、物理アドレス下位を用いて論理
キャッシュのエントリを決定するようにすると、変換の
対象となる部分のビットパターンの全ての組合せがエン
トリの候補となり、シノニムを生じる。また、異なる論
理アドレスで共有されるデータはそれらのアドレスの内
アドレス変換の対象となる部分のビットパターンが等し
くなる保証がなく、異なるエントリにマッピングされる
可能性があり、エイリアスを生じる。ここで、シノニム
やエイリアスの問題を回避する第1の方法としてアドレ
スの逆変換を用いる方法がある。
キャッシュのエントリを決定するようにすると、変換の
対象となる部分のビットパターンの全ての組合せがエン
トリの候補となり、シノニムを生じる。また、異なる論
理アドレスで共有されるデータはそれらのアドレスの内
アドレス変換の対象となる部分のビットパターンが等し
くなる保証がなく、異なるエントリにマッピングされる
可能性があり、エイリアスを生じる。ここで、シノニム
やエイリアスの問題を回避する第1の方法としてアドレ
スの逆変換を用いる方法がある。
【0017】スヌープ動作ではバス上の物理アドレスか
ら論理キャッシュを検索する必要があるため、シノニム
の問題を発生した。物理アドレスから論理アドレスへの
逆変換が可能であれば、バス上の物理アドレスを論理ア
ドレスに変換した後、論理キャッシュを探索すれば、目
的とするデータがマッピングされている可能性のあるエ
ントリを1つ決定することができる。
ら論理キャッシュを検索する必要があるため、シノニム
の問題を発生した。物理アドレスから論理アドレスへの
逆変換が可能であれば、バス上の物理アドレスを論理ア
ドレスに変換した後、論理キャッシュを探索すれば、目
的とするデータがマッピングされている可能性のあるエ
ントリを1つ決定することができる。
【0018】また、論理アドレスを一旦物理アドレスに
変換した後、再び、逆変換機構で論理アドレスに戻すこ
とで、同じ物理アドレスを共有する異なる論理アドレス
を求めることが出来るので、得られたアドレスを用いて
再び論理キャッシュをアクセスすればエイリアスの問題
も解決することができる。
変換した後、再び、逆変換機構で論理アドレスに戻すこ
とで、同じ物理アドレスを共有する異なる論理アドレス
を求めることが出来るので、得られたアドレスを用いて
再び論理キャッシュをアクセスすればエイリアスの問題
も解決することができる。
【0019】しかし、このような方法を採用してもアド
レスの逆変換を行なうハードウェアのハード量が通常の
変換機構の数倍多くなり、複数の論理空間で同一の物理
ページを共有する場合に備えて複数の論理アドレスに変
換する必要がある。しかも、逆変換が実現されたとして
も、上記の方法を行なうためには逆変換のための時間が
必要であり、論理キャッシュを採用した理由である高速
性を損なうことにもなる。
レスの逆変換を行なうハードウェアのハード量が通常の
変換機構の数倍多くなり、複数の論理空間で同一の物理
ページを共有する場合に備えて複数の論理アドレスに変
換する必要がある。しかも、逆変換が実現されたとして
も、上記の方法を行なうためには逆変換のための時間が
必要であり、論理キャッシュを採用した理由である高速
性を損なうことにもなる。
【0020】また、シノニムやエイリアスの問題を回避
する第2の方法として、二つのアドレスのキャッシュの
深さに相当する部分は同じビットパターンにするという
割当制約をソフトウェアに対して設ける方法がある。
する第2の方法として、二つのアドレスのキャッシュの
深さに相当する部分は同じビットパターンにするという
割当制約をソフトウェアに対して設ける方法がある。
【0021】エイリアスの問題は同じ物理アドレスを異
なる論理アドレスで共有する場合にのみ発生する。そこ
で、この様な共有を行なう二つの論理アドレスに上記の
割当制約を設け、エイリアスの問題を回避する方法が考
えられる。この様な制約の下では、共有を行なう二つの
論理アドレスはエントリを決定するアドレスの下位部分
が同じビットパターンなので、必ず同じエントリが割り
当てられることになる。そして同じデータが同じエント
リに割り当てられるので、エイリアスの問題を回避する
ことができる。この割当制約は、共有という限られた条
件の下での制約であり、論理アドレスはキャッシュの深
さよりも遥かに大きな範囲を取ることができるので、こ
の割当制約は比較的広く用いられる。また、シノニムの
問題に対しても、論理アドレスと物理アドレスのマッピ
ングに於いて上記の割当制約を設けることで回避するこ
とが可能であ。
なる論理アドレスで共有する場合にのみ発生する。そこ
で、この様な共有を行なう二つの論理アドレスに上記の
割当制約を設け、エイリアスの問題を回避する方法が考
えられる。この様な制約の下では、共有を行なう二つの
論理アドレスはエントリを決定するアドレスの下位部分
が同じビットパターンなので、必ず同じエントリが割り
当てられることになる。そして同じデータが同じエント
リに割り当てられるので、エイリアスの問題を回避する
ことができる。この割当制約は、共有という限られた条
件の下での制約であり、論理アドレスはキャッシュの深
さよりも遥かに大きな範囲を取ることができるので、こ
の割当制約は比較的広く用いられる。また、シノニムの
問題に対しても、論理アドレスと物理アドレスのマッピ
ングに於いて上記の割当制約を設けることで回避するこ
とが可能であ。
【0022】しかし、このような方法を採用して全ての
論理アドレスと物理アドレスのマッピングに対して割当
制約を設けることは、キャッシュ容量の増大に伴って、
マッピングの柔軟性を乏しくし、主メモリの使用効率の
低下をもたらす虞がある。
論理アドレスと物理アドレスのマッピングに対して割当
制約を設けることは、キャッシュ容量の増大に伴って、
マッピングの柔軟性を乏しくし、主メモリの使用効率の
低下をもたらす虞がある。
【0023】物理アドレスは主記憶をアクセスするため
のアドレスであるので、取り得る値は主記憶の容量によ
って決定されるのであり、論理アドレスよりは遥かに小
さい範囲である。ページサイズ越えるキャッシュ深さを
持つシステムにおいては主記憶の容量とキャッシュ深さ
の比はそんなに大きくない。もし、上記の割当制約を設
けるとなると、ある論理アドレスにマッピング出来る対
象となる物理アドレスの候補が制限され、OSの記憶割
当の柔軟性が乏しくなる。ここで問題となるのはページ
サイズとキャッシュ深さの比であり、これは、キャッシ
ュの容量が大きくなりキャッシュ深さが深くなるに従
い、マッピングの対象となる物理アドレスの候補が少な
くなってくる。
のアドレスであるので、取り得る値は主記憶の容量によ
って決定されるのであり、論理アドレスよりは遥かに小
さい範囲である。ページサイズ越えるキャッシュ深さを
持つシステムにおいては主記憶の容量とキャッシュ深さ
の比はそんなに大きくない。もし、上記の割当制約を設
けるとなると、ある論理アドレスにマッピング出来る対
象となる物理アドレスの候補が制限され、OSの記憶割
当の柔軟性が乏しくなる。ここで問題となるのはページ
サイズとキャッシュ深さの比であり、これは、キャッシ
ュの容量が大きくなりキャッシュ深さが深くなるに従
い、マッピングの対象となる物理アドレスの候補が少な
くなってくる。
【0024】また、論理空間では0番地開始のセグメン
トが多いという特徴がある。論理アドレスと物理アドレ
スのマッピングに割当制約がある場合、各セグメントの
0番地に対応できる物理ページのみが非常に良く使わ
れ、他の物理ページは余り使われないという現象が生じ
る。これは最悪の場合主メモリに空きページがあるにも
関わらず、割当制約のために空いているページを利用す
ることができないという事態に陥る。この様に、論理ア
ドレスを用いることで主記憶の有効利用を計るという本
来の目的を失う。
トが多いという特徴がある。論理アドレスと物理アドレ
スのマッピングに割当制約がある場合、各セグメントの
0番地に対応できる物理ページのみが非常に良く使わ
れ、他の物理ページは余り使われないという現象が生じ
る。これは最悪の場合主メモリに空きページがあるにも
関わらず、割当制約のために空いているページを利用す
ることができないという事態に陥る。この様に、論理ア
ドレスを用いることで主記憶の有効利用を計るという本
来の目的を失う。
【0025】また、仮想記憶を用いるシステムでは、割
当可能なページが無くなった場合、対応できる物理ペー
ジを空けるために、追い出しが発生する。他の空きペー
ジが利用できれば発生しなくてもよい追い出しが発生す
るので、処理効率が低下する欠点があった。
当可能なページが無くなった場合、対応できる物理ペー
ジを空けるために、追い出しが発生する。他の空きペー
ジが利用できれば発生しなくてもよい追い出しが発生す
るので、処理効率が低下する欠点があった。
【0026】更に、ハードウェア技術の進歩に伴ってよ
り大きなキャッシュが実装できるようになった場合、O
Sの記憶管理機構をキャッシュ容量に合わせて書き換え
る必要が生じ、本来ソフトウェアに対し透過であるべき
キャッシュの構成が明らかに見えてくるという弊害があ
った。
り大きなキャッシュが実装できるようになった場合、O
Sの記憶管理機構をキャッシュ容量に合わせて書き換え
る必要が生じ、本来ソフトウェアに対し透過であるべき
キャッシュの構成が明らかに見えてくるという弊害があ
った。
【0027】
【発明が解決しようとする課題】このように従来のキャ
ッシュ構成では、ページサイズを越える深さを持つ論理
キャッシュをハードウェアで一貫性を保持するマルチプ
ロセッサシステムに用いると、シノニムやエイリアスの
問題があり、この問題を回避するためアドレスの逆変換
やアドレス割当の制約を設ける方法が考えられている
が、逆変換を用いる方法では、膨大なハードウェアを必
要とするアドレス逆変換機構が必要であり、しかも、逆
変換の時間が論理キャッシュの高速性を損なうという問
題点があり、また、アドレス割当に制約を設ける方法で
は、エイリアスに対しては有効であるものの、シノニム
の回避を行なうには、主記憶の利用効率が低下したり、
処理性能が低下したり、キャッシュ容量の変更に対して
OSの記憶管理機構の変更が必要であったりするという
問題点があった。
ッシュ構成では、ページサイズを越える深さを持つ論理
キャッシュをハードウェアで一貫性を保持するマルチプ
ロセッサシステムに用いると、シノニムやエイリアスの
問題があり、この問題を回避するためアドレスの逆変換
やアドレス割当の制約を設ける方法が考えられている
が、逆変換を用いる方法では、膨大なハードウェアを必
要とするアドレス逆変換機構が必要であり、しかも、逆
変換の時間が論理キャッシュの高速性を損なうという問
題点があり、また、アドレス割当に制約を設ける方法で
は、エイリアスに対しては有効であるものの、シノニム
の回避を行なうには、主記憶の利用効率が低下したり、
処理性能が低下したり、キャッシュ容量の変更に対して
OSの記憶管理機構の変更が必要であったりするという
問題点があった。
【0028】また、シノニムやエイリアスの問題を避け
るため、物理キャッシュを用いるならば、アドレス変換
サイクルがパイプライン中に常に含まれ、パイプライン
の乱れを生じ、処理性能が低下する問題点が有った。
るため、物理キャッシュを用いるならば、アドレス変換
サイクルがパイプライン中に常に含まれ、パイプライン
の乱れを生じ、処理性能が低下する問題点が有った。
【0029】本発明は、上記事情に鑑みてなされたもの
で、ページサイズを越える深さの論理キャッシュをシノ
ニムの問題で性能低下をきたすことなく実装可能にした
マルチプロセッサシステムを提供することを目的とす
る。
で、ページサイズを越える深さの論理キャッシュをシノ
ニムの問題で性能低下をきたすことなく実装可能にした
マルチプロセッサシステムを提供することを目的とす
る。
【0030】
【課題を解決するための手段】本発明は、複数のプロセ
ッサに対し論理アドレスでアクセスされるキャッシュメ
モリをそれぞれ接続するとともに、各キャッシュメモリ
に対し接続手段を介して前記各プロセッサのいずれから
もアクセス可能な共有メモリを接続するようにしたマル
チプロセッサシステムにおいて、前記各キャッシュメモ
リは、前記プロセッサより出力される論理アドレスを物
理アドレスに変換する変換手段、前記プロセッサより出
力される論理アドレスが対応するキャッシュメモリ内に
あるか否かを判定する手段、前記接続手段より入力され
る物理アドレスと論理アドレスを監視し対応するキャッ
シュメモリの内容の一貫性保持が必要か否かを判定する
手段により構成されている。
ッサに対し論理アドレスでアクセスされるキャッシュメ
モリをそれぞれ接続するとともに、各キャッシュメモリ
に対し接続手段を介して前記各プロセッサのいずれから
もアクセス可能な共有メモリを接続するようにしたマル
チプロセッサシステムにおいて、前記各キャッシュメモ
リは、前記プロセッサより出力される論理アドレスを物
理アドレスに変換する変換手段、前記プロセッサより出
力される論理アドレスが対応するキャッシュメモリ内に
あるか否かを判定する手段、前記接続手段より入力され
る物理アドレスと論理アドレスを監視し対応するキャッ
シュメモリの内容の一貫性保持が必要か否かを判定する
手段により構成されている。
【0031】また、本発明は複数のプロセッサに対し論
理アドレスでアクセスされる第1のキャッシュメモリを
それぞれ接続するとともに、前記プロセッサを複数組に
分け各組のプロセッサに接続される各第1のキャッシュ
メモリに対し第1の接続手段を介して物理アドレスでア
クセスされる第2のキャッシュメモリをそれぞれ接続
し、さらに各第2のキャッシュメモリに対し第2の接続
手段を介して前記各プロセッサのいずれからもアクセス
可能な共有メモリを接続するようにしたマルチプロセッ
サシステムにおいて、前記各第1のキャッシュメモリ
は、前記プロセッサより出力される論理アドレスを物理
アドレスに変換する変換手段、前記プロセッサより出力
される論理アドレスが対応する第1のキャッシュメモリ
内にあるか否かを判定する手段、前記第1の接続手段よ
り入力される物理アドレスと論理アドレスを監視し対応
する第1のキャッシュメモリの内容の一貫性保持が必要
か否かを判定する手段を有し、前記各第2のキャッシュ
メモリは、前記第1の接続手段より入力される物理アド
レスが対応する第2のキャッシュメモリ内にあるか否か
を判定する手段、前記第2の接続手段から入力された物
理アドレスをを監視し対応する第2のキャッシュメモリ
の内容の一貫性保持が必要か否かを判定する手段により
構成されている。
理アドレスでアクセスされる第1のキャッシュメモリを
それぞれ接続するとともに、前記プロセッサを複数組に
分け各組のプロセッサに接続される各第1のキャッシュ
メモリに対し第1の接続手段を介して物理アドレスでア
クセスされる第2のキャッシュメモリをそれぞれ接続
し、さらに各第2のキャッシュメモリに対し第2の接続
手段を介して前記各プロセッサのいずれからもアクセス
可能な共有メモリを接続するようにしたマルチプロセッ
サシステムにおいて、前記各第1のキャッシュメモリ
は、前記プロセッサより出力される論理アドレスを物理
アドレスに変換する変換手段、前記プロセッサより出力
される論理アドレスが対応する第1のキャッシュメモリ
内にあるか否かを判定する手段、前記第1の接続手段よ
り入力される物理アドレスと論理アドレスを監視し対応
する第1のキャッシュメモリの内容の一貫性保持が必要
か否かを判定する手段を有し、前記各第2のキャッシュ
メモリは、前記第1の接続手段より入力される物理アド
レスが対応する第2のキャッシュメモリ内にあるか否か
を判定する手段、前記第2の接続手段から入力された物
理アドレスをを監視し対応する第2のキャッシュメモリ
の内容の一貫性保持が必要か否かを判定する手段により
構成されている。
【0032】さらに本発明は複数のプロセッサに対し論
理アドレスでアクセスされる第1のキャッシュメモリを
それぞれ接続するとともに、前記プロセッサを複数組に
分け各組のプロセッサに接続される各第1のキャッシュ
メモリに対し第1の接続手段を介して論理アドレスでア
クセスされる第2のキャッシュメモリをそれぞれ接続
し、さらに各第2のキャッシュメモリに対し第2の接続
手段を介して前記各プロセッサのいずれからもアクセス
可能な共有メモリを接続するようにしたマルチプロセッ
サシステムにおいて、前記各第1のキャッシュメモリ
は、前記プロセッサより出力される論理アドレスが対応
する第1のキャッシュメモリ内にあるか否かを判定する
手段、前記第1の接続手段より入力される論理アドレス
を監視し対応する第1のキャッシュメモリの内容の一貫
性保持が必要か否かを判定する手段を有し、前記各第2
のキャッシュメモリは、前記第1の接続手段上の論理ア
ドレスを物理アドレスに変換する変換手段、前記第1の
接続手段より入力される論理アドレスが対応する第2の
キャッシュメモリ内にあるか否かを判定する手段、前記
第2の接続手段から入力された物理アドレスと論理アド
レスを監視し対応する第2のキャッシュメモリの内容の
一貫性保持が必要か否かを判定する手段により構成され
ている。
理アドレスでアクセスされる第1のキャッシュメモリを
それぞれ接続するとともに、前記プロセッサを複数組に
分け各組のプロセッサに接続される各第1のキャッシュ
メモリに対し第1の接続手段を介して論理アドレスでア
クセスされる第2のキャッシュメモリをそれぞれ接続
し、さらに各第2のキャッシュメモリに対し第2の接続
手段を介して前記各プロセッサのいずれからもアクセス
可能な共有メモリを接続するようにしたマルチプロセッ
サシステムにおいて、前記各第1のキャッシュメモリ
は、前記プロセッサより出力される論理アドレスが対応
する第1のキャッシュメモリ内にあるか否かを判定する
手段、前記第1の接続手段より入力される論理アドレス
を監視し対応する第1のキャッシュメモリの内容の一貫
性保持が必要か否かを判定する手段を有し、前記各第2
のキャッシュメモリは、前記第1の接続手段上の論理ア
ドレスを物理アドレスに変換する変換手段、前記第1の
接続手段より入力される論理アドレスが対応する第2の
キャッシュメモリ内にあるか否かを判定する手段、前記
第2の接続手段から入力された物理アドレスと論理アド
レスを監視し対応する第2のキャッシュメモリの内容の
一貫性保持が必要か否かを判定する手段により構成され
ている。
【0033】
【作用】この結果、本発明によれば、アクセスを行なっ
たプロセッサは変換後の物理アドレスと共に変換前の論
理アドレスを接続手段上に送出し、他のプロセッサはス
ヌープ動作の際に論理アドレスを接続手段上から得てス
ヌープ動作の対象となるエントリを決定し、そして、同
じ論理アドレスは同じエントリに存在することから、こ
のようにして求めたエントリを用いて、一貫性保持のた
めの動作を行なう必要があるか否かを決定するようにで
きるので、シノニムの問題で性能低下をきたすことなく
ページサイズを越える深さの論理キャッシュを実装する
ことが可能になる。
たプロセッサは変換後の物理アドレスと共に変換前の論
理アドレスを接続手段上に送出し、他のプロセッサはス
ヌープ動作の際に論理アドレスを接続手段上から得てス
ヌープ動作の対象となるエントリを決定し、そして、同
じ論理アドレスは同じエントリに存在することから、こ
のようにして求めたエントリを用いて、一貫性保持のた
めの動作を行なう必要があるか否かを決定するようにで
きるので、シノニムの問題で性能低下をきたすことなく
ページサイズを越える深さの論理キャッシュを実装する
ことが可能になる。
【0034】
(第1の実施例)以下、図面に基づいて本発明の第1の
実施例に係わるマルチプロセッサシステムについて説明
する。
実施例に係わるマルチプロセッサシステムについて説明
する。
【0035】まず、第1の実施例に係わるマルチプロセ
ッサシステムの構成諸元を説明するが、本発明の有効性
は、この実施例に制限されるものではなくキャッシュサ
イズがページサイズより大きければ有効である。以下に
述べる性能諸元は説明を容易にし理解を助けることが目
的である。
ッサシステムの構成諸元を説明するが、本発明の有効性
は、この実施例に制限されるものではなくキャッシュサ
イズがページサイズより大きければ有効である。以下に
述べる性能諸元は説明を容易にし理解を助けることが目
的である。
【0036】第1の実施例のマルチプロセッサシステム
は、64Kバイトのキャッシュを持ち、タグ管理の単位
であるラインは16バイトのサイズである。キャッシュ
のマッピング方法はダイレクトマッピングである。この
キャッシュは4個のエントリを持ち、キャッシュのエン
トリのアクセスは12ビットのエントリ・インデックス
で行なわれる。このキャッシュは論理キャッシュなの
で、エントリ・インデックスは論理アドレスの一部から
取られる。
は、64Kバイトのキャッシュを持ち、タグ管理の単位
であるラインは16バイトのサイズである。キャッシュ
のマッピング方法はダイレクトマッピングである。この
キャッシュは4個のエントリを持ち、キャッシュのエン
トリのアクセスは12ビットのエントリ・インデックス
で行なわれる。このキャッシュは論理キャッシュなの
で、エントリ・インデックスは論理アドレスの一部から
取られる。
【0037】一方、仮想記憶の管理単位であるページは
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎に異なる論理アドレス空間を設
定するマルチ・バーチャル・システムでは、マッピング
識別子またはプロセス識別子を論理アドレスと共に用い
ることがあるが、本実施例では省略する。物理空間のサ
イズも同様に4Gバイトで、32ビットのアドレスで表
現される。実際に実装されている物理メモリの容量は数
十MB程度である。図1は、第1の実施例に係わるマル
チプロセッサシステムに用いられるキャッシュの概略構
成を示すブロック図である。
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎に異なる論理アドレス空間を設
定するマルチ・バーチャル・システムでは、マッピング
識別子またはプロセス識別子を論理アドレスと共に用い
ることがあるが、本実施例では省略する。物理空間のサ
イズも同様に4Gバイトで、32ビットのアドレスで表
現される。実際に実装されている物理メモリの容量は数
十MB程度である。図1は、第1の実施例に係わるマル
チプロセッサシステムに用いられるキャッシュの概略構
成を示すブロック図である。
【0038】この場合、キャッシュ1に入力されたCP
Uアドレスである論理アドレス101は、図2(a)に
示すようなビットフィールドに分割され、必要な構成要
素に分配される。この部分では何ら論理演算を行なわな
い。
Uアドレスである論理アドレス101は、図2(a)に
示すようなビットフィールドに分割され、必要な構成要
素に分配される。この部分では何ら論理演算を行なわな
い。
【0039】キャッシュ1は、論理アドレス101に示
されたアドレスがキャッシュ1内にあるか否かを判定す
るCPUタグ12、論理アドレス101を物理アドレス
151に変換するMMU15、この他に、バス3上に論
理ページ番号エントリ・インデックス113を出力する
論理アドレスレジスタ17、変換対象とならないページ
内オフセット110を出力するオフセットレジスタ18
を有し、さらに、主メモリの内容の一部を記憶している
データ本体14、他のキャッシュが要求したバス上のア
ドレスを監視するためのスヌープタグ13を有してい
る。図2(a)(b)(c)は、第1の実施例に用いた
論理アドレス、物理アドレスのビットフィールド区分を
示している。
されたアドレスがキャッシュ1内にあるか否かを判定す
るCPUタグ12、論理アドレス101を物理アドレス
151に変換するMMU15、この他に、バス3上に論
理ページ番号エントリ・インデックス113を出力する
論理アドレスレジスタ17、変換対象とならないページ
内オフセット110を出力するオフセットレジスタ18
を有し、さらに、主メモリの内容の一部を記憶している
データ本体14、他のキャッシュが要求したバス上のア
ドレスを監視するためのスヌープタグ13を有してい
る。図2(a)(b)(c)は、第1の実施例に用いた
論理アドレス、物理アドレスのビットフィールド区分を
示している。
【0040】この場合、ページサイズが4Kバイトであ
るので、論理アドレスと物理アドレスの下位のビット1
1〜0はページ内部のオフセットを表し、アドレス変換
の対象とならず、論理アドレスと物理アドレスで同じ値
を取る。この部分をページ内オフセットと呼ぶ。ページ
内オフセットのうち最下位のビット3〜0はラインオフ
セットと呼び、ライン内のバイト位置を指定するために
用いられる。ページ内オフセットの残りの部分であるビ
ット11〜4はページ内エントリ・インデックスと呼び
エントリ・インデックスの一部として用いられる。
るので、論理アドレスと物理アドレスの下位のビット1
1〜0はページ内部のオフセットを表し、アドレス変換
の対象とならず、論理アドレスと物理アドレスで同じ値
を取る。この部分をページ内オフセットと呼ぶ。ページ
内オフセットのうち最下位のビット3〜0はラインオフ
セットと呼び、ライン内のバイト位置を指定するために
用いられる。ページ内オフセットの残りの部分であるビ
ット11〜4はページ内エントリ・インデックスと呼び
エントリ・インデックスの一部として用いられる。
【0041】アドレス変換の対象となるビットフィール
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位のビット31
〜12で物理ページ番号と呼ぶ。論理ページ番号のう
ち、下位のビット15〜12は論理ページ番号エントリ
・インデックスと呼び、エントリ・インデックスの一部
として用いる。残りのビット31〜16を論理ページ番
号上位と呼ぶ。キャッシュのエントリをアクセスする際
に用いるエントリ・インデックスは、論理ページ番号エ
ントリ・インデックスの4ビットを上位とし、ページ内
エントリ・インデックスの8ビットを下位とする12ビ
ットの値である。図3は第1の実施例に係わるマルチプ
ロセッサシステム全体の概略構成を示すブロック図であ
る。
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位のビット31
〜12で物理ページ番号と呼ぶ。論理ページ番号のう
ち、下位のビット15〜12は論理ページ番号エントリ
・インデックスと呼び、エントリ・インデックスの一部
として用いる。残りのビット31〜16を論理ページ番
号上位と呼ぶ。キャッシュのエントリをアクセスする際
に用いるエントリ・インデックスは、論理ページ番号エ
ントリ・インデックスの4ビットを上位とし、ページ内
エントリ・インデックスの8ビットを下位とする12ビ
ットの値である。図3は第1の実施例に係わるマルチプ
ロセッサシステム全体の概略構成を示すブロック図であ
る。
【0042】この場合、CPU11はキャッシュ1に、
CPU21はキャッシュ2に、CPU41はキャッシュ
4に、CPU51は々キャッシュ5にそれぞれ接続され
ている。そして、キャッシュ1、2、4、5および主メ
モリ9はバス3に接続されている。この場合、CPU1
1、21、41、51はそれぞれ全く同じハードウェア
で、キャッシュ1、2、4、5もそれぞれ全く同じハー
ドウェアである。
CPU21はキャッシュ2に、CPU41はキャッシュ
4に、CPU51は々キャッシュ5にそれぞれ接続され
ている。そして、キャッシュ1、2、4、5および主メ
モリ9はバス3に接続されている。この場合、CPU1
1、21、41、51はそれぞれ全く同じハードウェア
で、キャッシュ1、2、4、5もそれぞれ全く同じハー
ドウェアである。
【0043】そして、各CPU11、21、41、51
は命令を実行し、メモリアクセスが必要ならばCPU論
理アドレス線にアドレスを出力し、各キャッシュ1、
2、4、5をアクセスするようにしている。
は命令を実行し、メモリアクセスが必要ならばCPU論
理アドレス線にアドレスを出力し、各キャッシュ1、
2、4、5をアクセスするようにしている。
【0044】図4は図3に示したマルチプロセッサシス
テムのうち2つのCPU11、21に接続されたキャッ
シュ1、2、バス3および主メモリ9に注目した図であ
り、以下、この図面を用いて第1の実施例を説明する。
テムのうち2つのCPU11、21に接続されたキャッ
シュ1、2、バス3および主メモリ9に注目した図であ
り、以下、この図面を用いて第1の実施例を説明する。
【0045】まず、キャッシュがヒットした時の動作を
説明する。CPU11はロード命令を実行すると要求す
るデータの論理アドレスをCPU論理アドレス線101
上に提示する。この論理アドレスのうち論理ページ番号
エントリ・インデックス部分113とページ内エントリ
・インデックス部分112はCPUエントリ・インデッ
クス102を構成し、CPUタグ12およびデータ本体
14をアクセスする。CPUタグ12は、図5(a)に
示すように、状態タグ値122と論理アドレスタグ値1
21をエントリ毎に格納しており、CPUエントリ・イ
ンデックス102で指定されたエントリのこれらの値を
読み出す。状態タグ値122はエントリの状態を示して
おり、少なくとも、そのエントリに格納されている値が
有効であるか無効であるかの情報を含む。論理アドレス
タグ値121はそのエントリに格納されているデータが
存在する主記憶上のアドレスにマッピングされる論理ア
ドレスが格納されている。なお、複数のアドレスマッピ
ングを持ち得るシステム(マルチ・バーチャル・システ
ム)では単に論理アドレスのみならずマッピング識別子
またはプロセス識別子を含むこともあるが、本実施例で
は省略する。
説明する。CPU11はロード命令を実行すると要求す
るデータの論理アドレスをCPU論理アドレス線101
上に提示する。この論理アドレスのうち論理ページ番号
エントリ・インデックス部分113とページ内エントリ
・インデックス部分112はCPUエントリ・インデッ
クス102を構成し、CPUタグ12およびデータ本体
14をアクセスする。CPUタグ12は、図5(a)に
示すように、状態タグ値122と論理アドレスタグ値1
21をエントリ毎に格納しており、CPUエントリ・イ
ンデックス102で指定されたエントリのこれらの値を
読み出す。状態タグ値122はエントリの状態を示して
おり、少なくとも、そのエントリに格納されている値が
有効であるか無効であるかの情報を含む。論理アドレス
タグ値121はそのエントリに格納されているデータが
存在する主記憶上のアドレスにマッピングされる論理ア
ドレスが格納されている。なお、複数のアドレスマッピ
ングを持ち得るシステム(マルチ・バーチャル・システ
ム)では単に論理アドレスのみならずマッピング識別子
またはプロセス識別子を含むこともあるが、本実施例で
は省略する。
【0046】CPUタグ12より読み出された論理アド
レスタグ値121はCPU論理アドレス線101のうち
の論理ページ番号上位114とアドレス比較器123で
比較される。そして、この比較結果が真(アドレスが一
致している)であり、CPUタグ12より読み出された
状態タグ値122が有効を示していればキャッシュはヒ
ットしたと判断され、データ本体14から読み出された
値141を内部バス16を経由してCPU11が読み出
す。
レスタグ値121はCPU論理アドレス線101のうち
の論理ページ番号上位114とアドレス比較器123で
比較される。そして、この比較結果が真(アドレスが一
致している)であり、CPUタグ12より読み出された
状態タグ値122が有効を示していればキャッシュはヒ
ットしたと判断され、データ本体14から読み出された
値141を内部バス16を経由してCPU11が読み出
す。
【0047】次にキャッシュがミスした時の動作を説明
する。CPU11はロード命令を実行すると要求するデ
ータの論理アドレスをCPU論理アドレス線101上に
提示する。この論理アドレスのうちCPUエントリ・イ
ンデックス102は、CPUタグ12をアクセスする。
同時に、論理アドレスのうちの論理ページ番号115
(論理ページ番号上位114と論理ページ番号エントリ
・インデックス113の連接に等しい)はMMU15に
よってアドレス変換が施される。この他、バスアクセス
に備えて、MMU15がアドレス変換を行なう間、論理
アドレスのうち論理ページ番号エントリ・インデックス
113は論理アドレスレジスタ17に、また、ページ内
オフセット110(ページ内エントリ・インデックス1
12とラインオフセット111の連接に等しい)はオフ
セットレジスタ18に、それぞれ、保持される。キャッ
シュヒットと同様にCPUタグ12より読み出された論
理アドレスタグ値121は比較器123で論理ページ番
号上位と比較され、比較結果が偽である状態タグ値12
2が無効を示していれば、キャッシュはミスしたと判断
される。
する。CPU11はロード命令を実行すると要求するデ
ータの論理アドレスをCPU論理アドレス線101上に
提示する。この論理アドレスのうちCPUエントリ・イ
ンデックス102は、CPUタグ12をアクセスする。
同時に、論理アドレスのうちの論理ページ番号115
(論理ページ番号上位114と論理ページ番号エントリ
・インデックス113の連接に等しい)はMMU15に
よってアドレス変換が施される。この他、バスアクセス
に備えて、MMU15がアドレス変換を行なう間、論理
アドレスのうち論理ページ番号エントリ・インデックス
113は論理アドレスレジスタ17に、また、ページ内
オフセット110(ページ内エントリ・インデックス1
12とラインオフセット111の連接に等しい)はオフ
セットレジスタ18に、それぞれ、保持される。キャッ
シュヒットと同様にCPUタグ12より読み出された論
理アドレスタグ値121は比較器123で論理ページ番
号上位と比較され、比較結果が偽である状態タグ値12
2が無効を示していれば、キャッシュはミスしたと判断
される。
【0048】キャッシュがミスしたと判断された時は、
CPUタグ12と同時にアクセスを行なっていたデータ
本体14から読み出された値はどこにも取り込まれず捨
てられ、CPU11は正しいデータが整うまで動作を停
止する。また、バスアクセスを行なうためバス3の調停
器30にバス要求を発行する。
CPUタグ12と同時にアクセスを行なっていたデータ
本体14から読み出された値はどこにも取り込まれず捨
てられ、CPU11は正しいデータが整うまで動作を停
止する。また、バスアクセスを行なうためバス3の調停
器30にバス要求を発行する。
【0049】また、ストア命令を実行した場合、キャッ
シュにヒットしていてもキャッシュ間で共有されたデー
タである可能性があれば一貫性保持のためにバスアクセ
スを行なう。この場合も、CPU11は一貫性保持動作
が完了するまで動作を停止する。
シュにヒットしていてもキャッシュ間で共有されたデー
タである可能性があれば一貫性保持のためにバスアクセ
スを行なう。この場合も、CPU11は一貫性保持動作
が完了するまで動作を停止する。
【0050】MMU15でアドレス変換が終了し、か
つ、バス調停器30よりバス使用許可が得られると、変
換された物理ページ番号151はオフセットレジスタ1
8に保持されていたページ内アドレスと連接され、バス
3の物理アドレスバス32に出力される。これと同時に
論理アドレスレジスタ17に保持されていた論理ページ
番号エントリ・インデックスが論理アドレスバス33に
出力される。
つ、バス調停器30よりバス使用許可が得られると、変
換された物理ページ番号151はオフセットレジスタ1
8に保持されていたページ内アドレスと連接され、バス
3の物理アドレスバス32に出力される。これと同時に
論理アドレスレジスタ17に保持されていた論理ページ
番号エントリ・インデックスが論理アドレスバス33に
出力される。
【0051】バス3にアクセスが開始されると、バス3
に接続された全てのキャッシュはスヌープ動作を開始す
る。この動作をCPU21が接続されているキャッシュ
2を例に説明する。以下に述べる動作はCPU21に限
らずCPU11を除く全てのCPUに接続されたキャッ
シュで同じ動作が行なわれる。
に接続された全てのキャッシュはスヌープ動作を開始す
る。この動作をCPU21が接続されているキャッシュ
2を例に説明する。以下に述べる動作はCPU21に限
らずCPU11を除く全てのCPUに接続されたキャッ
シュで同じ動作が行なわれる。
【0052】論理アドレスバス33上の論理ページ番号
エントリ・インデックスをスヌープ論理アドレス線29
6へ、物理アドレス32上の物理アドレスをスヌープ物
理アドレス線29へ各々取り込み、スヌープ論理アドレ
ス線296上の論理ページ番号エントリ・インデックス
とスヌープ物理アドレス線29のうちのページ内エント
リ・インデックス292を連接したスヌープ・エントリ
・インデックス203によってスヌープタグ23をアク
セスする。
エントリ・インデックスをスヌープ論理アドレス線29
6へ、物理アドレス32上の物理アドレスをスヌープ物
理アドレス線29へ各々取り込み、スヌープ論理アドレ
ス線296上の論理ページ番号エントリ・インデックス
とスヌープ物理アドレス線29のうちのページ内エント
リ・インデックス292を連接したスヌープ・エントリ
・インデックス203によってスヌープタグ23をアク
セスする。
【0053】スヌープ物理アドレス線29のうちのペー
ジ内エントリ・インデックス292はアドレス変換の対
象とならないページ内オフセットの一部であり、バスア
ドレス発行元のCPU11のキャッシュアクセスに用い
られた論理アドレス101のページ内エントリ・インデ
ックス112に等しいので、このアクセスで用いるスヌ
ープ・エントリ・インデックス203はCPU11のC
PUタグ12をアクセスしたCPUエントリ・インデッ
クス102に等しい。この様にアドレスの逆変換を行な
うこと無く発行元CPUと同じエントリ・インデックス
を得ることができる。
ジ内エントリ・インデックス292はアドレス変換の対
象とならないページ内オフセットの一部であり、バスア
ドレス発行元のCPU11のキャッシュアクセスに用い
られた論理アドレス101のページ内エントリ・インデ
ックス112に等しいので、このアクセスで用いるスヌ
ープ・エントリ・インデックス203はCPU11のC
PUタグ12をアクセスしたCPUエントリ・インデッ
クス102に等しい。この様にアドレスの逆変換を行な
うこと無く発行元CPUと同じエントリ・インデックス
を得ることができる。
【0054】スヌープタグ23は、図5(b)に示すよ
うに、状態タグ値232と物理アドレスタグ値231を
エントリ毎に格納しており、スヌープ・エントリ・イン
デックス203で指定されたエントリのこれらの値を読
み出す。状態タグ値232はそのエントリの状態を示し
ており、少なくとも、そのエントリに格納されている値
が有効であるか無効であるかの情報を含む。また、スヌ
ープタグ23の状態タグは同じキャッシュ内のCPUタ
グ22の該当するエントリの状態タグと全く同じ状態を
示しており、書換えの必要が生じた時は同じ状態を表現
するように両者に書き込みが行なわれている。一方、物
理アドレスタグ値231にはそのエントリに格納されて
いるデータに対応する主記憶上の物理アドレスが格納さ
れている。
うに、状態タグ値232と物理アドレスタグ値231を
エントリ毎に格納しており、スヌープ・エントリ・イン
デックス203で指定されたエントリのこれらの値を読
み出す。状態タグ値232はそのエントリの状態を示し
ており、少なくとも、そのエントリに格納されている値
が有効であるか無効であるかの情報を含む。また、スヌ
ープタグ23の状態タグは同じキャッシュ内のCPUタ
グ22の該当するエントリの状態タグと全く同じ状態を
示しており、書換えの必要が生じた時は同じ状態を表現
するように両者に書き込みが行なわれている。一方、物
理アドレスタグ値231にはそのエントリに格納されて
いるデータに対応する主記憶上の物理アドレスが格納さ
れている。
【0055】スヌープタグ23より読み出された物理ア
ドレス値231はスヌープ物理アドレス29のうちの論
理ページ番号295とアドレス比較器233で比較され
る。この比較結果が偽であるかスヌープタグ23より読
み出された状態タグ値232が無効を示していれば、こ
のキャッシュはバス3上に指定されたアドレスに対応す
るラインのコピーを持っていない(スヌープミス)と判
断され、一貫性保持のための動作は行なわれない。
ドレス値231はスヌープ物理アドレス29のうちの論
理ページ番号295とアドレス比較器233で比較され
る。この比較結果が偽であるかスヌープタグ23より読
み出された状態タグ値232が無効を示していれば、こ
のキャッシュはバス3上に指定されたアドレスに対応す
るラインのコピーを持っていない(スヌープミス)と判
断され、一貫性保持のための動作は行なわれない。
【0056】一方、比較器233の比較結果が真であり
スヌープタグ23より読み出された状態タグ値232が
有効を示していれば、このキャッシュ2はバス3上に示
されたアドレスに対応するラインのコピーを持っている
(スヌープヒット)と判断され、一貫性保持のための動
作が起こされる。
スヌープタグ23より読み出された状態タグ値232が
有効を示していれば、このキャッシュ2はバス3上に示
されたアドレスに対応するラインのコピーを持っている
(スヌープヒット)と判断され、一貫性保持のための動
作が起こされる。
【0057】なお、同じ物理アドレスを異なる論理アド
レスで共有する場合は、共有する論理アドレスの論理ペ
ージ番号エントリ・インデックスを同じビットパターン
にすることで、エイリアスの問題を回避する。この様な
制約を設けることで、異なる論理アドレスでアクセスさ
れても同じエントリにマッピングされるのでエイリアス
の問題を回避できる。この制約は、共有する論理アドレ
スの間に設けられる制約であり、マッピングされる物理
アドレスのページ番号は各々の論理アドレスと独立に決
定することができるので、主メモリ上の利用効率の低下
や不必要な追い出しの発生に伴う処理効率の低下の問題
を引き起こさない。なお、階層キャッシュメモリを用い
るシステムにおいては図3に示す主メモリ9に代えて2
次キャッシュを接続しても、この発明の有効性は損なわ
れない。 (第2の実施例)図6は本発明の第2の実施例に係わる
2階層キャッシュメモリを採用したマルチプロセッサシ
ステムの概略構成を示すブロック図である。
レスで共有する場合は、共有する論理アドレスの論理ペ
ージ番号エントリ・インデックスを同じビットパターン
にすることで、エイリアスの問題を回避する。この様な
制約を設けることで、異なる論理アドレスでアクセスさ
れても同じエントリにマッピングされるのでエイリアス
の問題を回避できる。この制約は、共有する論理アドレ
スの間に設けられる制約であり、マッピングされる物理
アドレスのページ番号は各々の論理アドレスと独立に決
定することができるので、主メモリ上の利用効率の低下
や不必要な追い出しの発生に伴う処理効率の低下の問題
を引き起こさない。なお、階層キャッシュメモリを用い
るシステムにおいては図3に示す主メモリ9に代えて2
次キャッシュを接続しても、この発明の有効性は損なわ
れない。 (第2の実施例)図6は本発明の第2の実施例に係わる
2階層キャッシュメモリを採用したマルチプロセッサシ
ステムの概略構成を示すブロック図である。
【0058】この場合、図6に示すマルチプロセッサ・
システムでは6台のCPU11、21、41、51、6
1、71を有し、これらCPU11、21、41、5
1、61、71はファースト・キャッシュ1、2、4、
5、6、7を1対1で接続している。これらのファース
ト・キャッシュ1、2、4、5、6、7は第1の実施例
で述べたキャッシュと同じ構成のもので、CPUからは
論理アドレスでアクセスされ、バス上に物理アドレスと
論理ページ番号エントリ・インデックスを出力する手段
と、物理アドレスと論理ページ番号エントリ・インデッ
クスを監視して一貫性保持のための動作が必要であるか
否かを決定する手段を有している。
システムでは6台のCPU11、21、41、51、6
1、71を有し、これらCPU11、21、41、5
1、61、71はファースト・キャッシュ1、2、4、
5、6、7を1対1で接続している。これらのファース
ト・キャッシュ1、2、4、5、6、7は第1の実施例
で述べたキャッシュと同じ構成のもので、CPUからは
論理アドレスでアクセスされ、バス上に物理アドレスと
論理ページ番号エントリ・インデックスを出力する手段
と、物理アドレスと論理ページ番号エントリ・インデッ
クスを監視して一貫性保持のための動作が必要であるか
否かを決定する手段を有している。
【0059】これらのCPU11、21、41、51、
61、71、キャッシュ1、2、4、5、6、7は、C
PU11、21、41とファースト・キャッシュ1、
2、4の組とCPU51、61、71とファースト・キ
ャッシュ5、6、7の組に2分割され、ファースト・キ
ャッシュ1、2、4の組にはキャッシュ・バス35によ
りセカンド・キャッシュ81が、ファースト・キャッシ
ュ5、6、7の組にはキャッシュ・バス36によりセカ
ンド・キャッシュ82がそれぞれ接続されている。ここ
で、キャッシュ・バス35、36は第1の実施例のバス
3と同じ構成のもので、物理アドレスを伝達する物理ア
ドレスバスと論理ページ番号エントリ・インデックスを
伝達する論理アドレスバスを有している。
61、71、キャッシュ1、2、4、5、6、7は、C
PU11、21、41とファースト・キャッシュ1、
2、4の組とCPU51、61、71とファースト・キ
ャッシュ5、6、7の組に2分割され、ファースト・キ
ャッシュ1、2、4の組にはキャッシュ・バス35によ
りセカンド・キャッシュ81が、ファースト・キャッシ
ュ5、6、7の組にはキャッシュ・バス36によりセカ
ンド・キャッシュ82がそれぞれ接続されている。ここ
で、キャッシュ・バス35、36は第1の実施例のバス
3と同じ構成のもので、物理アドレスを伝達する物理ア
ドレスバスと論理ページ番号エントリ・インデックスを
伝達する論理アドレスバスを有している。
【0060】そして、セカンド・キャッシュ81、82
にはメモリ・バス83により主メモリ9が接続されてい
る。ここで、メモリ・バス83も第1の実施例のバス3
と同じ構成を採り、論理ページ番号エントリ・インデッ
クスを伝達する論理アドレスバスを有している。これ
は、組に跨って一貫性保持を行なう場合に、他の組のフ
ァースト・キャッシュのスヌープタグをアクセスするた
めである。図7はセカンド・キャッシュ81の概略構成
を示している。この場合、セカンド・キャッシュ82も
図7と同じ構造である。この場合、セカンド・キャッシ
ュ81は物理キャッシュでありキャッシュ・バス35上
のアドレス変換済みの物理アドレス811が入力され
る。
にはメモリ・バス83により主メモリ9が接続されてい
る。ここで、メモリ・バス83も第1の実施例のバス3
と同じ構成を採り、論理ページ番号エントリ・インデッ
クスを伝達する論理アドレスバスを有している。これ
は、組に跨って一貫性保持を行なう場合に、他の組のフ
ァースト・キャッシュのスヌープタグをアクセスするた
めである。図7はセカンド・キャッシュ81の概略構成
を示している。この場合、セカンド・キャッシュ82も
図7と同じ構造である。この場合、セカンド・キャッシ
ュ81は物理キャッシュでありキャッシュ・バス35上
のアドレス変換済みの物理アドレス811が入力され
る。
【0061】セカンド・キャッシュ81は、キャッシュ
・バス35から要求されたアドレスがセカンド・キャッ
シュ内にあるか否かを判定するアクセス・タグ812、
主記憶のデータのコピーを格納するデータ本体813、
他のセカンド・キャッシュが要求を出したメモリ・バス
上の物理アドレスを監視するスヌープ・タグ814を有
している。また、セカンド・キャッシュ81は論理ペー
ジ番号エントリ・インデックスを使用しないが、組に跨
って一貫性保持を行なう場合、他の組のファースト・キ
ャッシュのスヌープ・タグがアクセスできる必要がある
ため、キャッシュ・バスからメモリ・バスへあるいはそ
の逆方向に論理ページ番号エントリ・インデックスを伝
達する経路816を有している。
・バス35から要求されたアドレスがセカンド・キャッ
シュ内にあるか否かを判定するアクセス・タグ812、
主記憶のデータのコピーを格納するデータ本体813、
他のセカンド・キャッシュが要求を出したメモリ・バス
上の物理アドレスを監視するスヌープ・タグ814を有
している。また、セカンド・キャッシュ81は論理ペー
ジ番号エントリ・インデックスを使用しないが、組に跨
って一貫性保持を行なう場合、他の組のファースト・キ
ャッシュのスヌープ・タグがアクセスできる必要がある
ため、キャッシュ・バスからメモリ・バスへあるいはそ
の逆方向に論理ページ番号エントリ・インデックスを伝
達する経路816を有している。
【0062】なお、このような第2の実施例のマルチプ
ロセッサシステムでは、64Kバイトのファースト・キ
ャッシュを持ち、タグ管理の単位であるラインは16バ
イトのサイズである。ファースト・キャッシュのマッピ
ング方法はダイレクトマッピングであり、4K個のエン
トリを持つ。キャッシュのエントリのアクセスは12ビ
ットのエントリ・インデックスで行なわれる。このキャ
ッシュは論理キャッシュなので、エントリ・インデック
スは論理アドレスの一部から取られる。
ロセッサシステムでは、64Kバイトのファースト・キ
ャッシュを持ち、タグ管理の単位であるラインは16バ
イトのサイズである。ファースト・キャッシュのマッピ
ング方法はダイレクトマッピングであり、4K個のエン
トリを持つ。キャッシュのエントリのアクセスは12ビ
ットのエントリ・インデックスで行なわれる。このキャ
ッシュは論理キャッシュなので、エントリ・インデック
スは論理アドレスの一部から取られる。
【0063】また、セカンド・キャッシュは1Mバイト
の容量を持ち、ラインサイズは16バイトである。セカ
ンド・キャッシュのマッピング方法は4ウェイのセット
アソシアティブであり、16K個のエントリを持ち、キ
ャッシュのエントリのアクセスは14ビットのエントリ
・インデックスで行なわれる。このキャッシュは物理キ
ャッシュなので、エントリ・インデックスは物理アドレ
スの下位から取られる。
の容量を持ち、ラインサイズは16バイトである。セカ
ンド・キャッシュのマッピング方法は4ウェイのセット
アソシアティブであり、16K個のエントリを持ち、キ
ャッシュのエントリのアクセスは14ビットのエントリ
・インデックスで行なわれる。このキャッシュは物理キ
ャッシュなので、エントリ・インデックスは物理アドレ
スの下位から取られる。
【0064】一方、仮想記憶の管理単位であるページは
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎にことなる論理アドレス空間を
設定するマルチ・バーチャル・システムでは、マッピン
グ識別子またはプロセス識別子を論理アドレスと共に用
いることがあるが、本実施例では省略する。物理空間の
サイズも同様に4Gバイトで、32ビットのアドレスで
表現される。図8(a)〜(d)は第2の実施例に用い
た論理アドレス、物理アドレスのビットフィールド区分
を示している。
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎にことなる論理アドレス空間を
設定するマルチ・バーチャル・システムでは、マッピン
グ識別子またはプロセス識別子を論理アドレスと共に用
いることがあるが、本実施例では省略する。物理空間の
サイズも同様に4Gバイトで、32ビットのアドレスで
表現される。図8(a)〜(d)は第2の実施例に用い
た論理アドレス、物理アドレスのビットフィールド区分
を示している。
【0065】この場合、ページサイズが4Kバイトであ
るので、論理アドレスと物理アドレスの下位のビット1
1〜0はページ内部のオフセットを表し、アドレス変換
の対象とならず、論理アドレスと物理アドレスで同じ値
を取る。この部分をページ内オフセットと呼ぶ。ページ
内オフセットのうち最下位のビット3〜0はラインオフ
セットと呼び、ライン内のバイト位置を指定するために
用いられる。ページ内オフセットの残りの部分であるビ
ット11〜4はページ内エントリ・インデックスと呼
び、ファーストキャッシュのエントリ・インデックスの
一部として用いられる。
るので、論理アドレスと物理アドレスの下位のビット1
1〜0はページ内部のオフセットを表し、アドレス変換
の対象とならず、論理アドレスと物理アドレスで同じ値
を取る。この部分をページ内オフセットと呼ぶ。ページ
内オフセットのうち最下位のビット3〜0はラインオフ
セットと呼び、ライン内のバイト位置を指定するために
用いられる。ページ内オフセットの残りの部分であるビ
ット11〜4はページ内エントリ・インデックスと呼
び、ファーストキャッシュのエントリ・インデックスの
一部として用いられる。
【0066】アドレス変換の対象となるビットフィール
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位ビット31〜
12で物理ページ番号と呼ぶ。
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位ビット31〜
12で物理ページ番号と呼ぶ。
【0067】論理ページ番号のうち、下位のビット15
〜12は論理ページ番号エントリ・インデックスと呼
び、ファースト・キャッシュのエントリ・インデックス
の一部として用いる。残りのビット31〜16を論理ペ
ージ番号上位と呼ぶ。
〜12は論理ページ番号エントリ・インデックスと呼
び、ファースト・キャッシュのエントリ・インデックス
の一部として用いる。残りのビット31〜16を論理ペ
ージ番号上位と呼ぶ。
【0068】ファースト・キャッシュのエントリをアク
セスする際に用いるファースト・キャッシュ・エントリ
・インデックスは、論理ページ番号エントリ・インデッ
クスの4ビットを上位とし、ページ内エントリ・インデ
ックスの8ビットを下位とする12ビットの値である。
セスする際に用いるファースト・キャッシュ・エントリ
・インデックスは、論理ページ番号エントリ・インデッ
クスの4ビットを上位とし、ページ内エントリ・インデ
ックスの8ビットを下位とする12ビットの値である。
【0069】セカンド・キャッシュでは物理アドレスの
みが用いられる。物理アドレスのうちビット17〜4の
14ビットをセカンド・キャッシュ・エントリ・インデ
ックスと呼び、セカンド・キャッシュのエントリをアク
セスする際に用いる。物理アドレスのうちビット31〜
18を物理ページ番号上位と呼びキャッシュをアクセス
する際、アドレスタグの値と比較することでヒットした
か否かを決定する。次に、第2の実施例の動作を図6に
従い説明する。
みが用いられる。物理アドレスのうちビット17〜4の
14ビットをセカンド・キャッシュ・エントリ・インデ
ックスと呼び、セカンド・キャッシュのエントリをアク
セスする際に用いる。物理アドレスのうちビット31〜
18を物理ページ番号上位と呼びキャッシュをアクセス
する際、アドレスタグの値と比較することでヒットした
か否かを決定する。次に、第2の実施例の動作を図6に
従い説明する。
【0070】いま、CPU11がメモリアクセスを行な
い、キャッシュミスを起こした場合、あるいは、ストア
命令を実行したところ共有の可能性のあるデータに対す
る書き込みであった場合、ファースト・キャッシュ1は
バス35をアクセスする。その際、ファースト・キャッ
シュ1は上述の第1の実施例と同じ方法でバス35上に
物理アドレスと論理ページ番号エントリ・インデックス
を出力する。
い、キャッシュミスを起こした場合、あるいは、ストア
命令を実行したところ共有の可能性のあるデータに対す
る書き込みであった場合、ファースト・キャッシュ1は
バス35をアクセスする。その際、ファースト・キャッ
シュ1は上述の第1の実施例と同じ方法でバス35上に
物理アドレスと論理ページ番号エントリ・インデックス
を出力する。
【0071】バス35上の他のファースト・キャッシュ
2、4は、バス35上の物理アドレスと論理ページ番号
エントリ・インデックスを用いて、上述の第1の実施例
と同じ方法で各自のキャッシュ中に一貫性保持のための
動作が必要であるか否かを判定し、必要であれば一貫性
保持のための動作を行なう。同時に、セカンド・キャッ
シュ81はバス35上の物理アドレスバスから物理アド
レスを取り込みアクセスを行なうようになる。
2、4は、バス35上の物理アドレスと論理ページ番号
エントリ・インデックスを用いて、上述の第1の実施例
と同じ方法で各自のキャッシュ中に一貫性保持のための
動作が必要であるか否かを判定し、必要であれば一貫性
保持のための動作を行なう。同時に、セカンド・キャッ
シュ81はバス35上の物理アドレスバスから物理アド
レスを取り込みアクセスを行なうようになる。
【0072】図9は図6に示したマルチプロセッサシス
テムのうち2つのセカンド・キャッシュ81,82とメ
モリ・バス83に注目した図であり、以下、この図面を
用いてセカンド・キャッシュ間に跨る一貫性保持動作を
説明する。
テムのうち2つのセカンド・キャッシュ81,82とメ
モリ・バス83に注目した図であり、以下、この図面を
用いてセカンド・キャッシュ間に跨る一貫性保持動作を
説明する。
【0073】セカンド・キャッシュ81は取り込んだ物
理アドレス811中のセカンド・キャッシュ・エントリ
・インデックス8111を用いてアクセスタグ812お
よびデータ本体813をアクセスする。
理アドレス811中のセカンド・キャッシュ・エントリ
・インデックス8111を用いてアクセスタグ812お
よびデータ本体813をアクセスする。
【0074】アクセスタグ812は図10(a)に示す
ように状態タグ値8121、8123、8125、81
27と物理アドレスタグ値8122、8124、812
6、8128をエントリ毎に格納している。これらは、
各々対をなし、各ウェイに対応し、4ウェイのセットア
ソシアティブ・エントリを構成している。
ように状態タグ値8121、8123、8125、81
27と物理アドレスタグ値8122、8124、812
6、8128をエントリ毎に格納している。これらは、
各々対をなし、各ウェイに対応し、4ウェイのセットア
ソシアティブ・エントリを構成している。
【0075】ここで、状態タグ値8121、8123、
8125、8127はそのエントリのそのウェイの状態
を示しており、少なくともそのエントリのそのウェイに
格納されている値が有効であるか無効であるかの情報を
含む。また、物理アドレスタグ値8122、8124、
8126、8128はそのエントリのそのウェイに対応
するデータ本体のデータが対応する主記憶上のアドレス
を格納している。
8125、8127はそのエントリのそのウェイの状態
を示しており、少なくともそのエントリのそのウェイに
格納されている値が有効であるか無効であるかの情報を
含む。また、物理アドレスタグ値8122、8124、
8126、8128はそのエントリのそのウェイに対応
するデータ本体のデータが対応する主記憶上のアドレス
を格納している。
【0076】そして、アクセスタグ812より読み出さ
れた物理アドレスタグ値8122、8124、812
6、8128は入力された物理アドレス811中の物理
アドレス上位8112とアドレス比較器812A、81
2B、812C、812Dと各々比較される。これらの
うち、比較結果が真(アドレスが一致している)で、対
応する状態タグ値が有効を示しているものがあれば、セ
カンド・キャッシュはヒットしたものと判断され、デー
タ本体813から対応するエントリの対応するウェイか
ら読み出された値をキャッシュバスに返す。
れた物理アドレスタグ値8122、8124、812
6、8128は入力された物理アドレス811中の物理
アドレス上位8112とアドレス比較器812A、81
2B、812C、812Dと各々比較される。これらの
うち、比較結果が真(アドレスが一致している)で、対
応する状態タグ値が有効を示しているものがあれば、セ
カンド・キャッシュはヒットしたものと判断され、デー
タ本体813から対応するエントリの対応するウェイか
ら読み出された値をキャッシュバスに返す。
【0077】一方、比較結果が偽または状態タグが無効
を示しているエントリばかりであれば、キャッシュはミ
スしたものと判断される。キャッシュがミスするか、キ
ャッシュ間で共有の可能性のあるラインへの書き込みが
行なわれた場合、メモリ・バス83にアクセスを行な
う。
を示しているエントリばかりであれば、キャッシュはミ
スしたものと判断される。キャッシュがミスするか、キ
ャッシュ間で共有の可能性のあるラインへの書き込みが
行なわれた場合、メモリ・バス83にアクセスを行な
う。
【0078】メモリ・バス83に対してアクセス要求を
出し、アクセスが許可されると、セカンド・キャッシュ
81はキャッシュ・バス35から得た物理アドレス81
1と論理ページ番号エントリ・インデックス816をメ
モリ・バス83に出力する。
出し、アクセスが許可されると、セカンド・キャッシュ
81はキャッシュ・バス35から得た物理アドレス81
1と論理ページ番号エントリ・インデックス816をメ
モリ・バス83に出力する。
【0079】メモリ・バス83のアクセスが開始される
と、メモリ・バス83に接続されているセカンド・キャ
ッシュ82はスヌープ動作を開始する。メモリバス83
上の物理アドレス833をスヌープアドレス線825に
取り込み、スヌープタグ824をアクセスする。
と、メモリ・バス83に接続されているセカンド・キャ
ッシュ82はスヌープ動作を開始する。メモリバス83
上の物理アドレス833をスヌープアドレス線825に
取り込み、スヌープタグ824をアクセスする。
【0080】スヌープタグ824は図10(b)に示す
ように状態タグ値8241、8243、8245、82
47と物理アドレスタグ値8242、8244、824
6、8248をエントリ毎に格納しており、これらは各
々対をなし、各ウェイに対応し、メモリバス83から得
た物理アドレス825中のセカンド・キャッシュ・エン
トリ・インデックス8251で指定されたエントリのこ
れらの値を読み出す。スヌープタグ824は同じセカン
ド・キャッシュ82のアクセスタグ822と同じ内容を
保持しており、書換えが行なわれる際は同じ内容となる
ように両者に書き込まれる。また、状態タグ値824
1、8243、8245、8247はそのエントリの各
ウェイの状態を示しており、少なくとも、そのエントリ
に格納されている値が有効であるか無効であるかの情報
を含む、物理アドレス値8242、8244、824
6、8248はそのエントリの各ウェイのラインが対応
する主記憶上の物理アドレスを格納している。
ように状態タグ値8241、8243、8245、82
47と物理アドレスタグ値8242、8244、824
6、8248をエントリ毎に格納しており、これらは各
々対をなし、各ウェイに対応し、メモリバス83から得
た物理アドレス825中のセカンド・キャッシュ・エン
トリ・インデックス8251で指定されたエントリのこ
れらの値を読み出す。スヌープタグ824は同じセカン
ド・キャッシュ82のアクセスタグ822と同じ内容を
保持しており、書換えが行なわれる際は同じ内容となる
ように両者に書き込まれる。また、状態タグ値824
1、8243、8245、8247はそのエントリの各
ウェイの状態を示しており、少なくとも、そのエントリ
に格納されている値が有効であるか無効であるかの情報
を含む、物理アドレス値8242、8244、824
6、8248はそのエントリの各ウェイのラインが対応
する主記憶上の物理アドレスを格納している。
【0081】スヌープタグ824より読み出された物理
アドレスタグ値8242、8244、8246、824
8は物理アドレス825中の物理ページ番号上位825
2と比較器824A、824B、824C、824Dで
各々比較される。
アドレスタグ値8242、8244、8246、824
8は物理アドレス825中の物理ページ番号上位825
2と比較器824A、824B、824C、824Dで
各々比較される。
【0082】この様に、セカンド・キャッシュ81、8
2は物理キャッシュで、物理アドレスを用いてキャッシ
ュが探索できるので、シノニムの問題やエイリアスの問
題を発生しない。
2は物理キャッシュで、物理アドレスを用いてキャッシ
ュが探索できるので、シノニムの問題やエイリアスの問
題を発生しない。
【0083】比較結果が偽または対応する状態タグ値が
無効を示しているものばかりであれば、このセカンド・
キャッシュ82にはメモリ・バス83上に示されたアド
レスに対応するラインのコピーを持っていない(スヌー
プミス)と判断され、一貫性保持のための動作は行なわ
れない。
無効を示しているものばかりであれば、このセカンド・
キャッシュ82にはメモリ・バス83上に示されたアド
レスに対応するラインのコピーを持っていない(スヌー
プミス)と判断され、一貫性保持のための動作は行なわ
れない。
【0084】一方、比較結果が真でかつ対応する状態タ
グ値が有効を示しているものが有ればそのウェイに対応
するラインのコピーが存在する(スヌープヒット)と判
断され、一貫性保持のための動作が引き起こされる。
グ値が有効を示しているものが有ればそのウェイに対応
するラインのコピーが存在する(スヌープヒット)と判
断され、一貫性保持のための動作が引き起こされる。
【0085】更に、セカンド・キャッシュ82にキャッ
シュ・バス36を介して接続されているファースト・キ
ャッシュ5、6、7に現在注目しているラインが存在す
る可能性があれば(この判定はタグメモリ824の状態
で行なうことが可能である。)、セカンド・キャッシュ
82はキャッシュ・バス36をアクセスし、ファースト
・キャッシュ5、6、7にもスヌープ動作を行なわせ
る。この際、論理アドレスで構成されているファースト
・キャッシュ5,6,7のスヌープタグをアクセスする
必要があるので、メモリバス83上の論理ページ番号エ
ントリ・インデックス833を経路816を使ってキャ
ッシュ・バス36に伝達する。なお、階層キャッシュメ
モリを用いるシステムにおいて2次キャッシュが論理キ
ャッシュであっても、この発明の有効性は損なわれな
い。 (第3の実施例)
シュ・バス36を介して接続されているファースト・キ
ャッシュ5、6、7に現在注目しているラインが存在す
る可能性があれば(この判定はタグメモリ824の状態
で行なうことが可能である。)、セカンド・キャッシュ
82はキャッシュ・バス36をアクセスし、ファースト
・キャッシュ5、6、7にもスヌープ動作を行なわせ
る。この際、論理アドレスで構成されているファースト
・キャッシュ5,6,7のスヌープタグをアクセスする
必要があるので、メモリバス83上の論理ページ番号エ
ントリ・インデックス833を経路816を使ってキャ
ッシュ・バス36に伝達する。なお、階層キャッシュメ
モリを用いるシステムにおいて2次キャッシュが論理キ
ャッシュであっても、この発明の有効性は損なわれな
い。 (第3の実施例)
【0086】図11は本発明の第3の実施例に係わる2
階層キャッシュメモリの2次キャッシュを採用したマル
チプロセッサシステムの概略構成を示すブロック図であ
る。この場合、図11に示すマルチプロセッサ・システ
ムは6台のCPU11、21、41、51、61、71
を持ち、各々のCPU11、21、41、51、61、
71はプライマリ・キャッシュL1、L2、L4、L
5、L6、L7に1対1に接続されている。各々プライ
マリ・キャッシュL1、L2、L4、L5、L6、L7
は、CPUから論理アドレスでアクセスされ、バス上に
論理アドレスを出力する手段と、バス上の論理アドレス
を監視して一貫性保持のための動作が必要であるか否か
を決定する手段を有している。論理キャッシュバス上の
アドレスは論理アドレスのみであるのでプライマリ・キ
ャッシュはアドレス変換機構を持たない。
階層キャッシュメモリの2次キャッシュを採用したマル
チプロセッサシステムの概略構成を示すブロック図であ
る。この場合、図11に示すマルチプロセッサ・システ
ムは6台のCPU11、21、41、51、61、71
を持ち、各々のCPU11、21、41、51、61、
71はプライマリ・キャッシュL1、L2、L4、L
5、L6、L7に1対1に接続されている。各々プライ
マリ・キャッシュL1、L2、L4、L5、L6、L7
は、CPUから論理アドレスでアクセスされ、バス上に
論理アドレスを出力する手段と、バス上の論理アドレス
を監視して一貫性保持のための動作が必要であるか否か
を決定する手段を有している。論理キャッシュバス上の
アドレスは論理アドレスのみであるのでプライマリ・キ
ャッシュはアドレス変換機構を持たない。
【0087】これらのCPU11、21、41、51、
61、71、プライマリ・キャッシュL1、L2、L
4、L5、L6、L7は、CPU11、21とプライマ
リ・キャッシュL1、L2の組、CPU41、51とプ
ライマリ・キャッシュL4、L5の組、CPU61、7
1とプライマリ・キャッシュL6、L7の組の3組に分
割され、このうちのプライマリ・キャッシュL1とL2
は論理キャッシュ・バスL35によりセカンダリ・キャ
ッシュS1に、プライマリ・キャッシュL4とL5は論
理キャッシュ・バスL36によりセカンダリ・キャッシ
ュS2に、プライマリ・キャッシュL6とL7は論理キ
ャッシュ・バスL37によりセカンダリ・キャッシュS
4にそれぞれ接続されている。ここでの論理キャッシュ
・バスL35、L36、L37は論理アドレスを伝達す
る手段を有している。また、セカンダリ・キャッシュS
1、S2、S4はバス3により主メモリ9に接続されて
いる。
61、71、プライマリ・キャッシュL1、L2、L
4、L5、L6、L7は、CPU11、21とプライマ
リ・キャッシュL1、L2の組、CPU41、51とプ
ライマリ・キャッシュL4、L5の組、CPU61、7
1とプライマリ・キャッシュL6、L7の組の3組に分
割され、このうちのプライマリ・キャッシュL1とL2
は論理キャッシュ・バスL35によりセカンダリ・キャ
ッシュS1に、プライマリ・キャッシュL4とL5は論
理キャッシュ・バスL36によりセカンダリ・キャッシ
ュS2に、プライマリ・キャッシュL6とL7は論理キ
ャッシュ・バスL37によりセカンダリ・キャッシュS
4にそれぞれ接続されている。ここでの論理キャッシュ
・バスL35、L36、L37は論理アドレスを伝達す
る手段を有している。また、セカンダリ・キャッシュS
1、S2、S4はバス3により主メモリ9に接続されて
いる。
【0088】セカンダリ・キャッシュS1、S2、S4
は論理キャッシュ・バスL35、L36、L37上の論
理アドレスでそれぞれアクセスされ、バス3上に物理ア
ドレスと論理ページ番号エントリ・インデックスを出力
する手段と、バス3上の物理アドレスと論理ページ番号
エントリ・インデックスを監視して一貫性保持のための
動作が必要であるか否かを決定する手段を有している。
バス3は上述した第1の実施例で用いたバス3と同じ構
成のもので、物理アドレスと論理ページ番号エントリ・
インデックスを伝達する手段を有している。図12はプ
ライマリ・キャッシュL1の概略構成を示している。他
のプライマリ・キャッシュL2、L4、L5、L6、L
7も図12と同じ構造である。
は論理キャッシュ・バスL35、L36、L37上の論
理アドレスでそれぞれアクセスされ、バス3上に物理ア
ドレスと論理ページ番号エントリ・インデックスを出力
する手段と、バス3上の物理アドレスと論理ページ番号
エントリ・インデックスを監視して一貫性保持のための
動作が必要であるか否かを決定する手段を有している。
バス3は上述した第1の実施例で用いたバス3と同じ構
成のもので、物理アドレスと論理ページ番号エントリ・
インデックスを伝達する手段を有している。図12はプ
ライマリ・キャッシュL1の概略構成を示している。他
のプライマリ・キャッシュL2、L4、L5、L6、L
7も図12と同じ構造である。
【0089】この場合、プライマリ・キャッシュL1
は、CPU11からの論理アドレスL11によってアク
セスされ、CPUタグL12でCPUが要求したアドレ
スがプライマリ・キャッシュ内にあるか否かを判定する
ようにしている。また、プライマリ・キャッシュL1
は、セカンダリ・キャッシュのデータのコピーを格納す
るデータ本体L13と他のプライマリ・キャッシュL2
が要求を出した論理キャッシュバスL35上の論理アド
レスを監視するスヌープタグL14を有している。一
方、図13はセカンダリ・キャッシュS1の概略構成を
示している。他のセカンダリ・キャッシュS2、S4も
図13と同じ構造である。
は、CPU11からの論理アドレスL11によってアク
セスされ、CPUタグL12でCPUが要求したアドレ
スがプライマリ・キャッシュ内にあるか否かを判定する
ようにしている。また、プライマリ・キャッシュL1
は、セカンダリ・キャッシュのデータのコピーを格納す
るデータ本体L13と他のプライマリ・キャッシュL2
が要求を出した論理キャッシュバスL35上の論理アド
レスを監視するスヌープタグL14を有している。一
方、図13はセカンダリ・キャッシュS1の概略構成を
示している。他のセカンダリ・キャッシュS2、S4も
図13と同じ構造である。
【0090】この場合、セカンダリ・キャッシュS1に
入力された論理アドレスS101は図14に示すような
ビットフィールドに分割され、必要な構成要素に分配さ
れる。この部分では何ら論理演算を行なわない。
入力された論理アドレスS101は図14に示すような
ビットフィールドに分割され、必要な構成要素に分配さ
れる。この部分では何ら論理演算を行なわない。
【0091】また、セカンダリ・キャッシュS1はアク
セス・タグS12を持ち、論理アドレスS101に示さ
れたアドレスがセカンダリ・キャッシュS1内にあるか
否かを判定する。また、論理アドレスS101のうちの
論理ページ番号S115はMMU S15で物理ページ
番号S151に変換される。
セス・タグS12を持ち、論理アドレスS101に示さ
れたアドレスがセカンダリ・キャッシュS1内にあるか
否かを判定する。また、論理アドレスS101のうちの
論理ページ番号S115はMMU S15で物理ページ
番号S151に変換される。
【0092】この他、メモリ・バス3上に論理ページ番
号エントリ・インデックスS113を出力するために論
理アドレスレジスタS17と変換の対象とならないペー
ジ内オフセットS110を出力するためにオフセットレ
ジスタS18、アクセスタグに示されたアドレスの主メ
モリの内容のコピーを記憶しているデータ本体S14、
他のセカンダリ・キャッシュが要求したメモリ・バス3
上のアドレスを監視するため、スヌープタグS13、セ
カンダリ・キャッシュに論理キャッシュバスを介して接
続されているプライマリ・キャッシュに一貫性保持の動
作を伝える際に必要な論理アドレスを生成するための論
理アドレス伝達経路L101を有している。 図14
(a)〜(e)は第3の実施例に用いた論理アドレス、
物理アドレスのビットフィールド区分を示している。
号エントリ・インデックスS113を出力するために論
理アドレスレジスタS17と変換の対象とならないペー
ジ内オフセットS110を出力するためにオフセットレ
ジスタS18、アクセスタグに示されたアドレスの主メ
モリの内容のコピーを記憶しているデータ本体S14、
他のセカンダリ・キャッシュが要求したメモリ・バス3
上のアドレスを監視するため、スヌープタグS13、セ
カンダリ・キャッシュに論理キャッシュバスを介して接
続されているプライマリ・キャッシュに一貫性保持の動
作を伝える際に必要な論理アドレスを生成するための論
理アドレス伝達経路L101を有している。 図14
(a)〜(e)は第3の実施例に用いた論理アドレス、
物理アドレスのビットフィールド区分を示している。
【0093】第3の実施例に係わるマルチプロセッサシ
ステムでは、64Kバイトのプライマリ・キャッシュを
持ち、タグ管理の単位であるラインは16バイトのサイ
ズである。プライマリ・キャッシュのマッピング方法は
ダイレクトマッピングであり、4K個のエントリを持
つ。キャッシュのエントリのアクセスは12ビットのエ
ントリ・インデックスで行なわれる。このキャッシュは
論理キャッシュなので、エントリ・インデックスは論理
アドレスの一部から取られる。
ステムでは、64Kバイトのプライマリ・キャッシュを
持ち、タグ管理の単位であるラインは16バイトのサイ
ズである。プライマリ・キャッシュのマッピング方法は
ダイレクトマッピングであり、4K個のエントリを持
つ。キャッシュのエントリのアクセスは12ビットのエ
ントリ・インデックスで行なわれる。このキャッシュは
論理キャッシュなので、エントリ・インデックスは論理
アドレスの一部から取られる。
【0094】また、セカンダリ・キャッシュは1Mバイ
トの容量を持ち、ラインサイズは16バイトである。セ
カンダリ・キャッシュのマッピング方法はダイレクトマ
ッピングであり、64K個のエントリを持ち、キャッシ
ュのエントリのアクセスは16ビットのエントリ・イン
デックスで行なわれる。このキャッシュは論理キャッシ
ュなので、エントリ・インデックスは論理アドレスの下
位から取られる。
トの容量を持ち、ラインサイズは16バイトである。セ
カンダリ・キャッシュのマッピング方法はダイレクトマ
ッピングであり、64K個のエントリを持ち、キャッシ
ュのエントリのアクセスは16ビットのエントリ・イン
デックスで行なわれる。このキャッシュは論理キャッシ
ュなので、エントリ・インデックスは論理アドレスの下
位から取られる。
【0095】一方、仮想記憶の管理単位であるページは
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎に異なる論理アドレス空間を設
定するマルチ・バーチャル・システムでは、マッピング
識別子またはプロセス識別子を論理アドレスと共に用い
ることがあるが、本実施例では省略する。物理空間のサ
イズも同様に4Gバイトで、32ビットのアドレスで表
現される。
4Kバイトのサイズを持つ。論理空間のサイズはプロセ
ス当たり4Gバイトで、32ビットのアドレスで表現さ
れる。なお、プロセス毎に異なる論理アドレス空間を設
定するマルチ・バーチャル・システムでは、マッピング
識別子またはプロセス識別子を論理アドレスと共に用い
ることがあるが、本実施例では省略する。物理空間のサ
イズも同様に4Gバイトで、32ビットのアドレスで表
現される。
【0096】以下、図14により論理アドレス、物理ア
ドレスのビットフィールド区分を説明すると、この場
合、ページサイズが4Kバイトであるので、論理アドレ
スと物理アドレスの下位のビット11〜0はページ内部
のオフセットを表し、アドレス変換の対象とならず、論
理アドレスと物理アドレスで同じ値を取る。この部分を
ページ内オフセットと呼ぶ。ページ内オフセットのうち
最下位のビット3〜0はラインオフセットと呼び、ライ
ン内のバイト位置を指定するために用いられる。ページ
内オフセットの残りの部分であるビット11〜4はペー
ジ内エントリ・インデックスと呼び、プライマリ・キャ
ッシュ、セカンダリ・キャッシュのエントリ・インデッ
クスの一部として用いられる。
ドレスのビットフィールド区分を説明すると、この場
合、ページサイズが4Kバイトであるので、論理アドレ
スと物理アドレスの下位のビット11〜0はページ内部
のオフセットを表し、アドレス変換の対象とならず、論
理アドレスと物理アドレスで同じ値を取る。この部分を
ページ内オフセットと呼ぶ。ページ内オフセットのうち
最下位のビット3〜0はラインオフセットと呼び、ライ
ン内のバイト位置を指定するために用いられる。ページ
内オフセットの残りの部分であるビット11〜4はペー
ジ内エントリ・インデックスと呼び、プライマリ・キャ
ッシュ、セカンダリ・キャッシュのエントリ・インデッ
クスの一部として用いられる。
【0097】アドレス変換の対象となるビットフィール
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位のビット31
〜12で物理ページ番号と呼ぶ。また、論理ページ番号
のうち、プライマリ・キャッシュでは、下位のビット1
5〜12はプライマリ・キャッシュ論理ページ番号エン
トリ・インデックスと呼び、プライマリ・キャッシュの
エントリ・インデックスの一部として用いる。そして、
残りのビット31〜16をプライマリ・キャッシュ論理
ページ番号上位と呼ぶ。
ドは、論理アドレスでは上位のビット31〜12で論理
ページ番号と呼び、物理アドレスでは上位のビット31
〜12で物理ページ番号と呼ぶ。また、論理ページ番号
のうち、プライマリ・キャッシュでは、下位のビット1
5〜12はプライマリ・キャッシュ論理ページ番号エン
トリ・インデックスと呼び、プライマリ・キャッシュの
エントリ・インデックスの一部として用いる。そして、
残りのビット31〜16をプライマリ・キャッシュ論理
ページ番号上位と呼ぶ。
【0098】一方、セカンダリ・キャッシュでは、下位
のビット19〜12はセカンダリ・キャッシュ論理ペー
ジ番号エントリ・インデックスと呼び、セカンダリ・キ
ャッシュのエントリ・インデックスの一部として用い
る。残りのビット31〜20をセカンダリ・キャッシュ
論理ページ番号上位と呼ぶ。
のビット19〜12はセカンダリ・キャッシュ論理ペー
ジ番号エントリ・インデックスと呼び、セカンダリ・キ
ャッシュのエントリ・インデックスの一部として用い
る。残りのビット31〜20をセカンダリ・キャッシュ
論理ページ番号上位と呼ぶ。
【0099】プライマリ・キャッシュのエントリをアク
セスする際に用いるプライマリ・キャッシュ・エントリ
・インデックスは、プライマリ・キャッシュ論理ページ
番号エントリ・インデックスの4ビットを上位とし、ペ
ージ内エントリ・インデックスの8ビットを下位とする
12ビットの値である。
セスする際に用いるプライマリ・キャッシュ・エントリ
・インデックスは、プライマリ・キャッシュ論理ページ
番号エントリ・インデックスの4ビットを上位とし、ペ
ージ内エントリ・インデックスの8ビットを下位とする
12ビットの値である。
【0100】セカンダリ・キャッシュのエントリをアク
セスする際に用いるセカンダリ・キャッシュ・エントリ
・インデックスは、セカンダリ・キャッシュ論理ページ
番号エントリ・インデックスの8ビットを上位とし、ペ
ージ内エントリ・インデックスの8ビットを下位とする
16ビットの値である。次に、図11を用いて第3の実
施例の動作を説明する。
セスする際に用いるセカンダリ・キャッシュ・エントリ
・インデックスは、セカンダリ・キャッシュ論理ページ
番号エントリ・インデックスの8ビットを上位とし、ペ
ージ内エントリ・インデックスの8ビットを下位とする
16ビットの値である。次に、図11を用いて第3の実
施例の動作を説明する。
【0101】いま、CPU11がメモリアクセス命令を
実行しキャッシュミスを起こした場合、あるいは、スト
ア命令を共有の可能性のあるデータに対して実行した場
合、プライマリ・キャッシュL1は論理キャッシュバス
L35をアクセスする(プライマリ・キャッシュの動作
は後述)。その際、プライマリ・キャッシュL1は論理
キャッシュバスL35上に論理アドレスを出力する。
実行しキャッシュミスを起こした場合、あるいは、スト
ア命令を共有の可能性のあるデータに対して実行した場
合、プライマリ・キャッシュL1は論理キャッシュバス
L35をアクセスする(プライマリ・キャッシュの動作
は後述)。その際、プライマリ・キャッシュL1は論理
キャッシュバスL35上に論理アドレスを出力する。
【0102】論理キャッシュバスL35上の他のプライ
マリ・キャッシュL2は、論理キャッシュバスL35上
の論理アドレスを用いて、スヌープ動作を行なう(プラ
イマリ・キャッシュのスヌープ動作は後述する)。同時
に、セカンダリ・キャッシュS1は論理キャッシュバス
L35上の論理アドレスを取り込み、アクセスを行なう
(セカンダリ・キャッシュの動作は後述する)。
マリ・キャッシュL2は、論理キャッシュバスL35上
の論理アドレスを用いて、スヌープ動作を行なう(プラ
イマリ・キャッシュのスヌープ動作は後述する)。同時
に、セカンダリ・キャッシュS1は論理キャッシュバス
L35上の論理アドレスを取り込み、アクセスを行なう
(セカンダリ・キャッシュの動作は後述する)。
【0103】セカンダリ・キャッシュS1でキャッシュ
ミスを起こしたり、共有の可能性のあるデータに書き込
みを行なった場合、セカンダリ・キャッシュS1はメモ
リ・バス3にアクセスを行なう。この際、セカンダリ・
キャッシュS1はメモリ・バス上に物理アドレス32と
セカンダリ・キャッシュ論理ページ番号エントリ・イン
デックス33を出力する。
ミスを起こしたり、共有の可能性のあるデータに書き込
みを行なった場合、セカンダリ・キャッシュS1はメモ
リ・バス3にアクセスを行なう。この際、セカンダリ・
キャッシュS1はメモリ・バス上に物理アドレス32と
セカンダリ・キャッシュ論理ページ番号エントリ・イン
デックス33を出力する。
【0104】メモリ・バス3上の他のセカンダリ・キャ
ッシュS2、S4は、メモリ・バス3上の物理アドレス
32とセカンダリ・キャッシュ論理ページ番号エントリ
・インデックス33を用いて、各自のキャッシュ中に一
貫性保持のための動作が必要であるか否かの判定を行な
い、必要であれば一貫性保持のための動作を行なう。更
に、各セカンダリ・キャッシュに接続されているプライ
マリ・キャッシュにも一貫性保持のための動作が必要で
あると判定された場合、そのセカンダリ・キャッシュは
メモリ・バス3上から得たセカンダリ・キャッシュ論理
ページ番号エントリ・インデックス33と自分の論理ア
ドレスタグの値から論理アドレスを生成し、論理キャッ
シュ・バスをアクセスし、一貫性保持のための動作が必
要である旨をプライマリ・キャッシュに伝える。プライ
マリ・キャッシュはこのセカンダリ・キャッシュのアク
セスに対してスヌープ動作を行ない、自分のキャッシュ
内のデータの値に対して一貫性動作の必要があるか否か
を判定し、必要であれば一貫性保持のための動作を行な
う。
ッシュS2、S4は、メモリ・バス3上の物理アドレス
32とセカンダリ・キャッシュ論理ページ番号エントリ
・インデックス33を用いて、各自のキャッシュ中に一
貫性保持のための動作が必要であるか否かの判定を行な
い、必要であれば一貫性保持のための動作を行なう。更
に、各セカンダリ・キャッシュに接続されているプライ
マリ・キャッシュにも一貫性保持のための動作が必要で
あると判定された場合、そのセカンダリ・キャッシュは
メモリ・バス3上から得たセカンダリ・キャッシュ論理
ページ番号エントリ・インデックス33と自分の論理ア
ドレスタグの値から論理アドレスを生成し、論理キャッ
シュ・バスをアクセスし、一貫性保持のための動作が必
要である旨をプライマリ・キャッシュに伝える。プライ
マリ・キャッシュはこのセカンダリ・キャッシュのアク
セスに対してスヌープ動作を行ない、自分のキャッシュ
内のデータの値に対して一貫性動作の必要があるか否か
を判定し、必要であれば一貫性保持のための動作を行な
う。
【0105】図15は第3の実施例の2つのプライマリ
・キャッシュL1、L2と論理キャッシュバスL35に
注目した図である。以下、図15に基づいてプライマリ
・キャッシュ内部とプライマリ・キャッシュ間に跨る一
貫性保持動作を説明する。
・キャッシュL1、L2と論理キャッシュバスL35に
注目した図である。以下、図15に基づいてプライマリ
・キャッシュ内部とプライマリ・キャッシュ間に跨る一
貫性保持動作を説明する。
【0106】CPU11より要求されたデータの論理ア
ドレスはCPU論理アドレス線L11上に提示される。
この論理アドレスL11の内、プライマリ・キャッシュ
・エントリ・インデックスL111はCPUタグL12
とデータ本体L13をアクセスする。CPUタグL12
は、図16(a)に示すように、状態タグ値L122と
論理アドレス値L121をエントリ毎に格納しており、
プライマリ・キャッシュ・エントリ・インデックスL1
11で指定されたエントリのこれらの値を読み出す。状
態タグ値L122はエントリの状態を示しており、少な
くとも、そのエントリに格納されている値が有効である
か無効であるかの情報を含む。論理アドレスタグ値L1
21はそのエントリに格納されているデータが存在する
主記憶上のアドレスにマッピングされている論理アドレ
スが格納されている。複数のアドレスマッピングを持ち
得るシステム(マルチ・バーチャル・システム)では単
に論理アドレスのみならずマッピング識別子またはプロ
セス識別子を含むこともあるが、本実施例では省略す
る。
ドレスはCPU論理アドレス線L11上に提示される。
この論理アドレスL11の内、プライマリ・キャッシュ
・エントリ・インデックスL111はCPUタグL12
とデータ本体L13をアクセスする。CPUタグL12
は、図16(a)に示すように、状態タグ値L122と
論理アドレス値L121をエントリ毎に格納しており、
プライマリ・キャッシュ・エントリ・インデックスL1
11で指定されたエントリのこれらの値を読み出す。状
態タグ値L122はエントリの状態を示しており、少な
くとも、そのエントリに格納されている値が有効である
か無効であるかの情報を含む。論理アドレスタグ値L1
21はそのエントリに格納されているデータが存在する
主記憶上のアドレスにマッピングされている論理アドレ
スが格納されている。複数のアドレスマッピングを持ち
得るシステム(マルチ・バーチャル・システム)では単
に論理アドレスのみならずマッピング識別子またはプロ
セス識別子を含むこともあるが、本実施例では省略す
る。
【0107】COUタグL12より読み出された論理ア
ドレスタグ値L121はCPU論理アドレス線L11の
うちのプライマリ・キャッシュ論理ページ番号上位L1
12とアドレス比較器L123で比較される。この比較
結果が真(アドレスが一致している)であり、CPUタ
グL12より読み出された状態タグ値L122が有効を
示していればキャッシュはヒットしたと判断され、デー
タ本体L13のアクセスは正常に終了する。
ドレスタグ値L121はCPU論理アドレス線L11の
うちのプライマリ・キャッシュ論理ページ番号上位L1
12とアドレス比較器L123で比較される。この比較
結果が真(アドレスが一致している)であり、CPUタ
グL12より読み出された状態タグ値L122が有効を
示していればキャッシュはヒットしたと判断され、デー
タ本体L13のアクセスは正常に終了する。
【0108】アドレス比較器L123の比較結果が偽で
あるか、または、CPUタグL12の状態タグ値が無効
である場合、プライマリ・キャッシュL1はミスしたと
判断される。また、比較結果が真であっても状態タグ値
が共有の可能性を示しており、かつ、データへの書き込
みであった場合は、共有している他のキャッシュとの間
でデータの一貫性保持のための動作が必要になる。これ
ら2つの場合プライマリ・キャッシュL1は、論理アド
レスL11を論理キャッシュバスL35に出力してバス
をアクセスし、CPUはアクセスを完了するまで動作を
停止する。
あるか、または、CPUタグL12の状態タグ値が無効
である場合、プライマリ・キャッシュL1はミスしたと
判断される。また、比較結果が真であっても状態タグ値
が共有の可能性を示しており、かつ、データへの書き込
みであった場合は、共有している他のキャッシュとの間
でデータの一貫性保持のための動作が必要になる。これ
ら2つの場合プライマリ・キャッシュL1は、論理アド
レスL11を論理キャッシュバスL35に出力してバス
をアクセスし、CPUはアクセスを完了するまで動作を
停止する。
【0109】プライマリ・キャッシュL2は他のプライ
マリ・キャッシュからのバスアクセスを監視し、スヌー
プ動作を行なう。論理キャッシュバスL35上の論理ア
ドレスはスヌープ論理アドレス線L25からアクセスの
度毎に取り込まれ、このうちのプライマリ・キャッシュ
・エントリ・インデックスL251でスヌープタグL2
4をアクセスする。プライマリ・キャッシュ・スヌープ
・エントリ・インデックスL251は他のプライマリ・
キャッシュ(この説明ではL1)をアクセスした論理ア
ドレスと同じ値から取り出されているので、同じエント
リをアクセスすることが出来る。
マリ・キャッシュからのバスアクセスを監視し、スヌー
プ動作を行なう。論理キャッシュバスL35上の論理ア
ドレスはスヌープ論理アドレス線L25からアクセスの
度毎に取り込まれ、このうちのプライマリ・キャッシュ
・エントリ・インデックスL251でスヌープタグL2
4をアクセスする。プライマリ・キャッシュ・スヌープ
・エントリ・インデックスL251は他のプライマリ・
キャッシュ(この説明ではL1)をアクセスした論理ア
ドレスと同じ値から取り出されているので、同じエント
リをアクセスすることが出来る。
【0110】スヌープタグL24は、図16(b)に示
すように、状態タグ値L242と論理アドレス値L24
1をエントリ毎に格納しており、プライマリ・キャッシ
ュ・スヌープ・エントリ・インデックスL251で指定
されたエントリのこれらの値を読み出す。状態タグ値L
242はそのエントリの状態を示しており、少なくと
も、そのエントリに格納されている値が有効であるか無
効であるかの情報を含む。また、スヌープタグL24の
状態タグは同じプライマリ・キャッシュL2のCPUタ
グL22の状態タグと全く同じ状態を示しており、書換
えの必要が生じた時は同じ状態を表現するように両者に
書き込みが行なわれる。スヌープタグL24の論理アド
レスも同じプライマリ・キャッシュL2のCPUタグの
論理アドレスと同じアドレスが格納されており、書換え
の必要が生じた時は同じアドレスを示すように両者を書
き換える。
すように、状態タグ値L242と論理アドレス値L24
1をエントリ毎に格納しており、プライマリ・キャッシ
ュ・スヌープ・エントリ・インデックスL251で指定
されたエントリのこれらの値を読み出す。状態タグ値L
242はそのエントリの状態を示しており、少なくと
も、そのエントリに格納されている値が有効であるか無
効であるかの情報を含む。また、スヌープタグL24の
状態タグは同じプライマリ・キャッシュL2のCPUタ
グL22の状態タグと全く同じ状態を示しており、書換
えの必要が生じた時は同じ状態を表現するように両者に
書き込みが行なわれる。スヌープタグL24の論理アド
レスも同じプライマリ・キャッシュL2のCPUタグの
論理アドレスと同じアドレスが格納されており、書換え
の必要が生じた時は同じアドレスを示すように両者を書
き換える。
【0111】スヌープタグL24より読み出された論理
アドレス値L241はスヌープ論理アドレス線L25の
うちのプライマリ・キャッシュ論理ページ番号上位L2
52とアドレス比較器L243で比較される。この比較
結果が偽であるかスヌープタグL24より読み出された
状態タグ値L242が無効を示しているかのいずれかで
あれば、プライマリ・キャッシュL2は論理キャッシュ
バスL35上に示されたアドレスに対応するデータのコ
ピーを持っていない(スヌープミス)と判定され、一貫
性保持のための動作は行なわれない。
アドレス値L241はスヌープ論理アドレス線L25の
うちのプライマリ・キャッシュ論理ページ番号上位L2
52とアドレス比較器L243で比較される。この比較
結果が偽であるかスヌープタグL24より読み出された
状態タグ値L242が無効を示しているかのいずれかで
あれば、プライマリ・キャッシュL2は論理キャッシュ
バスL35上に示されたアドレスに対応するデータのコ
ピーを持っていない(スヌープミス)と判定され、一貫
性保持のための動作は行なわれない。
【0112】一方、比較器L243の比較結果が真であ
り、スヌープタグL24より読み出された状態タグ値L
241が有効を示していれば、プライマリ・キャッシュ
L2は論理キャッシュバスL35上に示されたアドレス
に対応するデータのコピーを持っている(スヌープヒッ
ト)と判定され、一貫性保持のための動作が引き起こさ
れる。この様にスヌープ動作はCPUからのアクセスと
は別のタグを用いて並行して行なわれるので、独立に行
なうことが出来る。
り、スヌープタグL24より読み出された状態タグ値L
241が有効を示していれば、プライマリ・キャッシュ
L2は論理キャッシュバスL35上に示されたアドレス
に対応するデータのコピーを持っている(スヌープヒッ
ト)と判定され、一貫性保持のための動作が引き起こさ
れる。この様にスヌープ動作はCPUからのアクセスと
は別のタグを用いて並行して行なわれるので、独立に行
なうことが出来る。
【0113】図17は2つのセカンダリ・キャッシュS
1,S2とメモリバス3に注目した図である。以下、図
9に準じてセカンダリ・キャッシュ内部とセカンダリ・
キャッシュに跨る一貫性保持動作を説明する。
1,S2とメモリバス3に注目した図である。以下、図
9に準じてセカンダリ・キャッシュ内部とセカンダリ・
キャッシュに跨る一貫性保持動作を説明する。
【0114】論理キャッシュバスL35上に提示された
論理アドレスはアクセスの度毎にアクセス論理アドレス
線S101に取り込まれる。アクセス論理アドレスS1
01うちのセカンダリ・キャッシュ・エントリ・インデ
ックスS102はアクセス・タグS12とデータ本体S
14をアクセスする。同時にアクセス論理アドレスS1
01のうちの論理ページ番号S115はキャッシュミス
に備えてMMU S15でアドレス変換が施され、アク
セス論理アドレスS101のうち、セカンダリ・キャッ
シュ論理ページ番号エントリ・インデックスS113が
論理アドレスレジスタS17に、ページ内オフセットS
110がオフセットレジスタS18に各々格納される。
論理アドレスはアクセスの度毎にアクセス論理アドレス
線S101に取り込まれる。アクセス論理アドレスS1
01うちのセカンダリ・キャッシュ・エントリ・インデ
ックスS102はアクセス・タグS12とデータ本体S
14をアクセスする。同時にアクセス論理アドレスS1
01のうちの論理ページ番号S115はキャッシュミス
に備えてMMU S15でアドレス変換が施され、アク
セス論理アドレスS101のうち、セカンダリ・キャッ
シュ論理ページ番号エントリ・インデックスS113が
論理アドレスレジスタS17に、ページ内オフセットS
110がオフセットレジスタS18に各々格納される。
【0115】アクセス・タグS12は図18(a)に示
すように、状態タグ値S122と論理アドレスタグ値S
121をエントリ毎に格納しており、セカンダリ・キャ
ッシュ・エントリ・インデックスS102で指定された
エントリのこれらの値を読み出す。状態タグ値S122
はエントリの状態を示しており、少なくとも、そのエン
トリに格納されている値が有効であるか無効であるかの
情報を含む。論理アドレスタグ値S121はそのエント
リに格納されているデータが存在する主記憶上のアドレ
スにマッピングされている論理アドレスが格納されてい
る。複数のアドレスマッピングを持ち得るシステム(マ
ルチ・バーチャル・システム)では単に論理アドレスの
みならず、マッピング識別子またはプロセス識別子を含
むこともあるが、本実施例では省略する。
すように、状態タグ値S122と論理アドレスタグ値S
121をエントリ毎に格納しており、セカンダリ・キャ
ッシュ・エントリ・インデックスS102で指定された
エントリのこれらの値を読み出す。状態タグ値S122
はエントリの状態を示しており、少なくとも、そのエン
トリに格納されている値が有効であるか無効であるかの
情報を含む。論理アドレスタグ値S121はそのエント
リに格納されているデータが存在する主記憶上のアドレ
スにマッピングされている論理アドレスが格納されてい
る。複数のアドレスマッピングを持ち得るシステム(マ
ルチ・バーチャル・システム)では単に論理アドレスの
みならず、マッピング識別子またはプロセス識別子を含
むこともあるが、本実施例では省略する。
【0116】アクセスタグS12より読み出された論理
アドレスタグ値S121は論理アドレスS101のうち
セカンダリ・キャッシュ論理ページ番号上位S114と
アドレス比較器S123で比較される。この比較結果が
真(アドレスが一致している)であり、アクセスタグS
12より読み出された状態タグ値S122が有効を示し
ていればセカンダリ・キャッシュはヒットしたと判定さ
れ、データ本体S14へのアクセスが正常に行なわれ
る。
アドレスタグ値S121は論理アドレスS101のうち
セカンダリ・キャッシュ論理ページ番号上位S114と
アドレス比較器S123で比較される。この比較結果が
真(アドレスが一致している)であり、アクセスタグS
12より読み出された状態タグ値S122が有効を示し
ていればセカンダリ・キャッシュはヒットしたと判定さ
れ、データ本体S14へのアクセスが正常に行なわれ
る。
【0117】しかし、アドレス比較器S123の比較結
果が偽であるかまたは状態タグ値S122が無効を示し
ていれば、セカンダリ・キャッシュはミスしたと判定さ
れる。セカンダリ・キャッシュがミスしたと判定された
場合、あるいは、他のセカンダリ・キャッシュと共有の
可能性がある旨を状態タグ値S122が示しているデー
タに変更を行なう場合は、セカンダリ・キャッシュのア
クセスは終了せず、メモリバス3にアクセスを行なう。
果が偽であるかまたは状態タグ値S122が無効を示し
ていれば、セカンダリ・キャッシュはミスしたと判定さ
れる。セカンダリ・キャッシュがミスしたと判定された
場合、あるいは、他のセカンダリ・キャッシュと共有の
可能性がある旨を状態タグ値S122が示しているデー
タに変更を行なう場合は、セカンダリ・キャッシュのア
クセスは終了せず、メモリバス3にアクセスを行なう。
【0118】MMU S15でのアドレス変換が終了
し、メモリバス3の使用権が得られると、変換された物
理ページ番号S151とオフセットレジスタS18に保
持されていたページ内アドレスを連接し、メモリバス3
上に物理アドレスバス32に出力する。同時に論理アド
レスレジスタS17に保持されていたセカンダリ・キャ
ッシュ論理ページ番号エントリ・インデックスがメモリ
・バス上の論理アドレスバス33に出力される。
し、メモリバス3の使用権が得られると、変換された物
理ページ番号S151とオフセットレジスタS18に保
持されていたページ内アドレスを連接し、メモリバス3
上に物理アドレスバス32に出力する。同時に論理アド
レスレジスタS17に保持されていたセカンダリ・キャ
ッシュ論理ページ番号エントリ・インデックスがメモリ
・バス上の論理アドレスバス33に出力される。
【0119】メモリ・バス3にアクセスが開始される
と、メモリ・バス3に接続された全てのセカンダリ・キ
ャッシュはスヌープ動作を開始する。この説明ではセカ
ンダリ・キャッシュ2のスヌープ動作について説明する
が他のセカンダリ・キャッシュも同様の動作を行なう。
メモリ・バス3上の物理アドレス32と論理アドレス3
3はアクセスの度毎にスヌープ物理アドレス線S29と
スヌープ論理アドレス線S296に取り込まれる。スヌ
ープ物理アドレス線S29のうちページ内エントリ・イ
ンデックスS292とスヌープ論理アドレスS296上
のセカンダリ・キャッシュ論理ページ番号エントリ・イ
ンデックスを連接したセカンダリ・キャッシュ・スヌー
プ・エントリ・インデックスS203によってスヌープ
タグS23をアクセスする。ページ内エントリ・インデ
ックスS292はアドレス変換の対象とならないページ
内オフセットの一部であり、バスアクセスのアドレス発
行元であるセカンダリ・キャッシュS1のアクセスに用
いられた論理アドレスS101のページ内エントリ・イ
ンデックスS112に等しいので、このセカンダリ・キ
ャッシュ・スヌープ・エントリ・インデックスS203
はアドレス発行元であるセカンダリ・キャッシュ1のア
クセスタグS12をアクセスしたセカンダリ・キャッシ
ュ・エントリ・インデックスS102に等しい。この様
にアドレス逆変換を行なうこと無く発行元CPUと同じ
エントリ・インデックスを得ることが出来る。
と、メモリ・バス3に接続された全てのセカンダリ・キ
ャッシュはスヌープ動作を開始する。この説明ではセカ
ンダリ・キャッシュ2のスヌープ動作について説明する
が他のセカンダリ・キャッシュも同様の動作を行なう。
メモリ・バス3上の物理アドレス32と論理アドレス3
3はアクセスの度毎にスヌープ物理アドレス線S29と
スヌープ論理アドレス線S296に取り込まれる。スヌ
ープ物理アドレス線S29のうちページ内エントリ・イ
ンデックスS292とスヌープ論理アドレスS296上
のセカンダリ・キャッシュ論理ページ番号エントリ・イ
ンデックスを連接したセカンダリ・キャッシュ・スヌー
プ・エントリ・インデックスS203によってスヌープ
タグS23をアクセスする。ページ内エントリ・インデ
ックスS292はアドレス変換の対象とならないページ
内オフセットの一部であり、バスアクセスのアドレス発
行元であるセカンダリ・キャッシュS1のアクセスに用
いられた論理アドレスS101のページ内エントリ・イ
ンデックスS112に等しいので、このセカンダリ・キ
ャッシュ・スヌープ・エントリ・インデックスS203
はアドレス発行元であるセカンダリ・キャッシュ1のア
クセスタグS12をアクセスしたセカンダリ・キャッシ
ュ・エントリ・インデックスS102に等しい。この様
にアドレス逆変換を行なうこと無く発行元CPUと同じ
エントリ・インデックスを得ることが出来る。
【0120】スヌープ・タグS23は図18(b)に示
すように、状態タグ値S232と物理アドレスタグ値S
231をエントリ毎に格納しており、セカンダリ・キャ
ッシュ・スヌープ・エントリ・インデックスS203で
指定されたエントリのこれらの値を読み出す。状態タグ
値S232はそのエントリの状態を示しており、少なく
とも、そのエントリに格納されている値が有効であるか
無効であるかの情報を含む。また、状態タグS23は同
じセカンダリ・キャッシュS2のアクセスタグS22の
該当するエントリの状態タグと同じ状態を示しており、
書換えの必要が生じた時は同じ状態を表現するように両
者に書き込みが行なわれている。一方、物理アドレスタ
グ値S231にはそのエントリに格納されているデータ
に対応する主記憶上の物理アドレスが格納されている。
すように、状態タグ値S232と物理アドレスタグ値S
231をエントリ毎に格納しており、セカンダリ・キャ
ッシュ・スヌープ・エントリ・インデックスS203で
指定されたエントリのこれらの値を読み出す。状態タグ
値S232はそのエントリの状態を示しており、少なく
とも、そのエントリに格納されている値が有効であるか
無効であるかの情報を含む。また、状態タグS23は同
じセカンダリ・キャッシュS2のアクセスタグS22の
該当するエントリの状態タグと同じ状態を示しており、
書換えの必要が生じた時は同じ状態を表現するように両
者に書き込みが行なわれている。一方、物理アドレスタ
グ値S231にはそのエントリに格納されているデータ
に対応する主記憶上の物理アドレスが格納されている。
【0121】スヌープタグS23より読み出された物理
アドレスタグ値S231とスヌープ物理アドレスS29
のうちの物理ページ番号S295をアドレス比較器S2
33で比較する。この比較結果が偽であるかスヌープタ
グS23より読み出した状態タグ値232が無効を示し
ていれば、このセカンダリ・キャッシュS2はメモリ・
バス3上に指定されたアドレスに対応するデータのコピ
ーを持っていない(スヌーブミス)と判定され、一貫性
保持のための動作は行なわれない。
アドレスタグ値S231とスヌープ物理アドレスS29
のうちの物理ページ番号S295をアドレス比較器S2
33で比較する。この比較結果が偽であるかスヌープタ
グS23より読み出した状態タグ値232が無効を示し
ていれば、このセカンダリ・キャッシュS2はメモリ・
バス3上に指定されたアドレスに対応するデータのコピ
ーを持っていない(スヌーブミス)と判定され、一貫性
保持のための動作は行なわれない。
【0122】一方、比較器S233の比較結果が真であ
り、スヌープダグS23より読み出された状態タグの値
S232が有効を示していれば、このセカンダリ・キャ
ッシュはメモリ・バス3上に示されたアドレスに対応す
るデータのコピーを持っている(スヌープヒット)と判
定され、一貫性保持のための動作が引き起こされる。
り、スヌープダグS23より読み出された状態タグの値
S232が有効を示していれば、このセカンダリ・キャ
ッシュはメモリ・バス3上に示されたアドレスに対応す
るデータのコピーを持っている(スヌープヒット)と判
定され、一貫性保持のための動作が引き起こされる。
【0123】更に、状態タグ値S232が、セカンダリ
・キャッシュS2は論理キャッシュバスL36を介して
接続されているプライマリ・キャッシュL4、L5にも
現在スヌープの対象となっているデータが存在している
可能性がある旨を示している場合は、プライマリ・キャ
ッシュL4、L5にも一貫性保持のための動作が必要で
ある旨を伝達する。プライマリ・キャッシュL4、L5
に与えるアドレスは論理アドレスであるので、以下のよ
うに論理アドレスを生成する。
・キャッシュS2は論理キャッシュバスL36を介して
接続されているプライマリ・キャッシュL4、L5にも
現在スヌープの対象となっているデータが存在している
可能性がある旨を示している場合は、プライマリ・キャ
ッシュL4、L5にも一貫性保持のための動作が必要で
ある旨を伝達する。プライマリ・キャッシュL4、L5
に与えるアドレスは論理アドレスであるので、以下のよ
うに論理アドレスを生成する。
【0124】セカンダリ・キャッシュS2からプライマ
リ・キャッシュL4、L5へアドレスを伝達する時はセ
カンダリ・キャッシュS2への論理キャッシュバスL3
6からのアクセスが有っても終了を待たずアクセスを中
断させる。このため、セカンダリ・キャッシュS2のア
クセスタグS22がスヌープ側からアクセス可能とな
る。そこで、セカンダリ・キャッシュ・スヌープ・エン
トリ・インデックスS203でアクセスタグS22をア
クセスし、現在アクセスの対象となっているデータの論
理アドレスのセカンダリ・キャッシュ論理ページ番号上
位をアクセスタグS22の論理アドレスタグ値S221
から得る。セカンダリ・キャッシュ論理ページ番号上位
と、タグアクセスに用いたセカンダリ・キャッシュ・エ
ントリ・インデックスS203と、メモリバス3上から
得たラインオフセットS291とを連接することで、メ
モリ・バス3のアクセス発行元であるセカンダリ・キャ
ッシュS1で用いられた論理アドレスS101を生成論
理アドレスL101上に生成することができる。
リ・キャッシュL4、L5へアドレスを伝達する時はセ
カンダリ・キャッシュS2への論理キャッシュバスL3
6からのアクセスが有っても終了を待たずアクセスを中
断させる。このため、セカンダリ・キャッシュS2のア
クセスタグS22がスヌープ側からアクセス可能とな
る。そこで、セカンダリ・キャッシュ・スヌープ・エン
トリ・インデックスS203でアクセスタグS22をア
クセスし、現在アクセスの対象となっているデータの論
理アドレスのセカンダリ・キャッシュ論理ページ番号上
位をアクセスタグS22の論理アドレスタグ値S221
から得る。セカンダリ・キャッシュ論理ページ番号上位
と、タグアクセスに用いたセカンダリ・キャッシュ・エ
ントリ・インデックスS203と、メモリバス3上から
得たラインオフセットS291とを連接することで、メ
モリ・バス3のアクセス発行元であるセカンダリ・キャ
ッシュS1で用いられた論理アドレスS101を生成論
理アドレスL101上に生成することができる。
【0125】なお、同じ物理アドレスを異なる論理アド
レスで共有する場合は、共有する論理アドレスのセカン
ダリ論理ページ番号エントリ・インデックスを同じビッ
トパターンにすることで、エイリアスの問題を回避す
る。この様な制約を設けることで、異なる論理アドレス
でアクセスされても同じエントリにマッピングされるの
でエイリアスの問題を回避できる。この共有に関する制
約は、共有する論理アドレスの間に設けられる制約であ
り、マッピングされる物理アドレスのページ番号は各々
の論理アドレスと独立に決定することができるので、主
メモリ上の利用効率の低下や不必要な追い出しの発生に
伴う処理効率の低下の問題を引き起こさない。
レスで共有する場合は、共有する論理アドレスのセカン
ダリ論理ページ番号エントリ・インデックスを同じビッ
トパターンにすることで、エイリアスの問題を回避す
る。この様な制約を設けることで、異なる論理アドレス
でアクセスされても同じエントリにマッピングされるの
でエイリアスの問題を回避できる。この共有に関する制
約は、共有する論理アドレスの間に設けられる制約であ
り、マッピングされる物理アドレスのページ番号は各々
の論理アドレスと独立に決定することができるので、主
メモリ上の利用効率の低下や不必要な追い出しの発生に
伴う処理効率の低下の問題を引き起こさない。
【0126】この制約に従えば、共有を行なう論理アド
レスは論理キャッシュでは同じエントリを取り合うの
で、同じ論理キャッシュバスに接続されているセカンダ
リ・キャッシュと複数のプライマリ・キャッシュは同じ
物理アドレスであればスヌープによって同じ論理アドレ
スに統一されるので論理キャッシュバスL36上に出力
する論理アドレスは1つで良い。一方、複数のセカンダ
リ・キャッシュの間は物理アドレスで結合されているの
で、異なる論理アドレスを保持することが出来るが、生
成論理アドレスL201はセカンダリ・キャッシュS2
が保持している論理アドレスをアクセスタグS22から
生成するので、アクセス発行元のセカンダリ・キャッシ
ュS1で用いられた論理アドレスと異なる論理アドレス
をセカンダリ・キャッシュS2が保持していても正しく
スヌープ動作を行なうことができる。
レスは論理キャッシュでは同じエントリを取り合うの
で、同じ論理キャッシュバスに接続されているセカンダ
リ・キャッシュと複数のプライマリ・キャッシュは同じ
物理アドレスであればスヌープによって同じ論理アドレ
スに統一されるので論理キャッシュバスL36上に出力
する論理アドレスは1つで良い。一方、複数のセカンダ
リ・キャッシュの間は物理アドレスで結合されているの
で、異なる論理アドレスを保持することが出来るが、生
成論理アドレスL201はセカンダリ・キャッシュS2
が保持している論理アドレスをアクセスタグS22から
生成するので、アクセス発行元のセカンダリ・キャッシ
ュS1で用いられた論理アドレスと異なる論理アドレス
をセカンダリ・キャッシュS2が保持していても正しく
スヌープ動作を行なうことができる。
【0127】なお、本発明の有効性は以上の実施例に制
限されるものではなく、キャッシュサイズがページサイ
ズより大きければ有効である。その他、本発明は上記実
施例にのみ限定されず、要旨を変更しない範囲で適宜変
形して実施できる。
限されるものではなく、キャッシュサイズがページサイ
ズより大きければ有効である。その他、本発明は上記実
施例にのみ限定されず、要旨を変更しない範囲で適宜変
形して実施できる。
【0128】
【発明の効果】この発明によれば、アドレスの逆変換機
構を設けることなく、また、シノニムの回避に余分の時
間を必要とすることなく、さらには論理アドレスと物理
アドレスのマッピングに関して何ら制約を設けることな
く、ページサイズを越える深さを持つ論理キャッシュを
実装することが可能となる。また、論理キャッシュを用
いることが可能となるので、少ないクロック数でロード
命令を実行できるようになり、パイプラインの乱れが小
さいCPUを設計することが可能となる。さらに、論理
アドレスと物理アドレスのマッピングに制約がないの
で、主記憶の利用効率を損なうことなく論理アドレスキ
ャッシュを使用することもできる。
構を設けることなく、また、シノニムの回避に余分の時
間を必要とすることなく、さらには論理アドレスと物理
アドレスのマッピングに関して何ら制約を設けることな
く、ページサイズを越える深さを持つ論理キャッシュを
実装することが可能となる。また、論理キャッシュを用
いることが可能となるので、少ないクロック数でロード
命令を実行できるようになり、パイプラインの乱れが小
さいCPUを設計することが可能となる。さらに、論理
アドレスと物理アドレスのマッピングに制約がないの
で、主記憶の利用効率を損なうことなく論理アドレスキ
ャッシュを使用することもできる。
【図1】本発明の第1の実施例に係わるマルチプロセッ
サシステムのキャッシュメモリの概略構成を示すブロッ
ク図。
サシステムのキャッシュメモリの概略構成を示すブロッ
ク図。
【図2】第1の実施例に用いた論理アドレス、物理アド
レスのビットフィールド区分を示す図。
レスのビットフィールド区分を示す図。
【図3】第1の実施例の概略構成を示すブロック図。
【図4】第1の実施例の動作を説明するための図。
【図5】第1の実施例に係わるマルチプロセッサシステ
ムのキャッシュメモリのタグメモリの構成を示すブロッ
ク図。
ムのキャッシュメモリのタグメモリの構成を示すブロッ
ク図。
【図6】本発明の第2の実施例に係わるマルチプロセッ
サシステムの概略構成を示すブロック図。
サシステムの概略構成を示すブロック図。
【図7】第2の実施例に用いたセカンド・キャッシュ・
メモリの概略構成を示すブロック図。
メモリの概略構成を示すブロック図。
【図8】第2の実施例に用いた論理アドレス、物理アド
レスのビットフィールド区分を示す図。
レスのビットフィールド区分を示す図。
【図9】第2の実施例のセカンドキャッシュの動作を説
明するための図。
明するための図。
【図10】第2の実施例に用いたセカンド・キャッシュ
・メモリのタグの構成を示すブロック図。
・メモリのタグの構成を示すブロック図。
【図11】本発明の第3の実施例に係わるマルチプロセ
ッサシステムの概略構成を示すブロック図。
ッサシステムの概略構成を示すブロック図。
【図12】第3の実施例に用いたプライマリ・キャッシ
ュ・メモリの概略構成を示すブロック図。
ュ・メモリの概略構成を示すブロック図。
【図13】第3の実施例に用いたセカンダリ・キャッシ
ュ・メモリの概略構成を示すブロック図。
ュ・メモリの概略構成を示すブロック図。
【図14】第3の実施例に用いた論理アドレス、物理ア
ドレスのビットフィールド区分を示す図。
ドレスのビットフィールド区分を示す図。
【図15】第3の実施例のプライマリ・キャッシュの動
作を説明するための図。
作を説明するための図。
【図16】第3の実施例に用いたプライマリ・キャッシ
ュ・メモリの構成を示すブロック図。
ュ・メモリの構成を示すブロック図。
【図17】第3の実施例のセカンダリ・キャッシュの動
作を説明するための図。
作を説明するための図。
【図18】第3の実施例に用いたセカンダリ・キャッシ
ュ・メモリのタグの構成を示すブロック図。
ュ・メモリのタグの構成を示すブロック図。
11,21,41,51,61,71 …CPU、1, 2, 4, 5, 6, 7…キャ
ッシュメモリ、101,201 …CPU論理アドレス線、110,
210 …ページ内オフセット、111,211 …ライン内オフセ
ット、112,212 …ページ内エントリ・インデックス、11
3,213 …論理ページ番号エントリ・インデックス、114,
214 …論理ページ番号上位、115,215 …論理ページ番
号、102,202 …CPUエントリ・インデックス、12,22
…CPUタグ・メモリ、121,221 …論理アドレスタグ
値、122,222 …状態タグ値、123,223 …アドレス比較
器、103,203 …スヌープ・エントリ・インデックス、1
3, 23…スヌープ・タグ・メモリ、131,231 …物理アド
レスタグ値、132,232 …状態タグ値、133,233 …アドレ
ス比較器、14, 24 …データ本体格納メモリ、141,241
…データ値、15, 25 …MMU、151,251 …物理ページ
番号、16, 26 …内部バス、17, 27 …論理アドレスレ
ジスタ、18, 28 …オフセットレジスタ、19, 29…スヌ
ープ物理アドレス線、191,291 …ラインオフセット、19
2,292 …ページ内エントリ・インデックス、195,295 …
物理ページ番号、196,296 …スヌープ論理アドレス線、
3 …バス、30…バス調停器、31…データバス、32…物理
アドレスバス、33…論理アドレスバス、35, 36…キャッ
シュ・バス、352,362 …物理アドレスバス、353,363 …
論理アドレスバス、81, 82…セカンド・キャッシュ、81
1,821 …物理アドレス線、8111,8211 …セカンド・キャ
ッシュ・エントリ・インデックス、8112,8212 …セカン
ド・キャッシュ物理ページ番号上位、812,822 …セカン
ド・キャッシュ・アクセス タグ、8121,8123,8125,812
7 …セカンド・キャッシュ状態タグ値、8221,8223,822
5,8227 …セカンド・キャッシュ状態タグ値、8122,812
4,8126,8128 …セカンド・キャッシュ物理アドレスタグ
値、8222,8224,8226,8228 …セカンド・キャッシュ物理
アドレスタグ値、812A,812B,812C,812D…セカンド・キ
ャッシュ・アドレス比較器、822A,822B,822C,822D …セ
カンド・キャッシュ・アドレス比較器、813,823 …セカ
ンド・キャッシュ・データ本体、814,824 …セカンド・
キャッシュ・スヌープ・タグ、8141,8143,8145,8147 …
セカンド・キャッシュ状態タグ値、8241,8243,8245,824
7 …セカンド・キャッシュ状態タグ値、8142,8144,814
6,8148 …セカンド・キャッシュ物理アドレスタグ値、8
242,8244,8246,8248 …セカンド・キャッシュ物理アド
レスタグ値、814A,814B,814C,814D …セカンド・キャッ
シュ・アドレス比較器、824A,824B,824
C,824D…セカンド・キャッシュ・アドレス比較
器、815,825 …セカンド・キャッシュ・スヌー
プアドレス線、8151,8251 …セカンド・キャッシュ・エ
ントリ・インデックス、8152,8252 …セカンド・キャッ
シュ物理ページ番号上位、816,826 …論理ページ番号エ
ントリ・インデックス伝達経路、83…メモリ・バス、83
0 …バス調停器、831 …データバス、832 …物理アドレ
スバス、833 …論理アドレスバス、9 …主メモリ、L1,L
2,L4,L5,L6,L7 …プライマリ・キャッシュ、L11,L21 …
論理アドレス線、L111,L211 …プライマリ・キャッシュ
・エントリ・インデックス、L112,L212 …プライマリ・
キャッシュ論理ページ番号上位、L12,L22 …CPUタ
グ、L121,L221 …論理アドレス値、L122,L222 …状態タ
グ値、L123,L223 …アドレス比較器、L13, L23…データ
本体、L14, L24…スヌープタグ、L141,L241 …論理アド
レス、L142,L242 …状態タグ値、L143,L243 …アドレス
比較器、L15, L25…スヌープ論理アドレス線、L151,L25
1 …プライマリ・キャッシュ・スヌープ・エントリ・イ
ンデックス、L152,L252 …プライマリ・キャッシュ論理
ページ番号上位、L35, L36, L37 …論理キャッシュ・バ
ス、L350,L360,L370…バス調停器、L351,L361,L371…デ
ータ・バス、L353,L363,L373…論理アドレスバス、S1,
S2,S4…セカンダリ・キャッシュ、L101,L201 …論理ア
ドレス伝達経路、S101,S201…アクセス論理アドレス
線、S102,S202 …セカンダリ・キャッシュ・エントリ・
インデックス、S103,S203 …セカンダリ・キャッシュ・
スヌープ・エントリ・インデックス、S110,S210 …ペー
ジ内オフセット、S111,S211 …ライン内オフセット、S1
12,S212 …ページ内エントリ・インデックス、S113,S21
3 …セカンダリ・キャッシュ論理ページ番号エントリ・
インデックス、S114,S214 …セカンダリ・キャッシュ論
理ページ番号上位、S115,S215 …論理ページ番号、S12,
S22…アクセス・タグ・メモリ、S121,S221 …論理アド
レスタグ値、S122,S222 …状態タグ値、S123,S223 …ア
ドレス比較器、S13, S23…スヌープ・タグ・メモリ、S1
31,S231 …物理アドレスタグ値、S132,S232 …状態タグ
値、S133,S233 …アドレス比較器 S14, S24…データ本体格納メモリ、S141,S241 …データ
値、S15, S25…MMU、S151,S251 …物理ページ番号、
S16, S26…内部バス、S17, S27…論理アドレスレジス
タ、S18, S28…オフセットレジスタ、S19, S29…スヌー
プ物理アドレス線、S191,S291 …ラインオフセット、S1
92,S292 …ページ内エントリ・インデックス、S195,S29
5 …物理ページ番号、S196,S296 …スヌープ論理アドレ
ス線。
ッシュメモリ、101,201 …CPU論理アドレス線、110,
210 …ページ内オフセット、111,211 …ライン内オフセ
ット、112,212 …ページ内エントリ・インデックス、11
3,213 …論理ページ番号エントリ・インデックス、114,
214 …論理ページ番号上位、115,215 …論理ページ番
号、102,202 …CPUエントリ・インデックス、12,22
…CPUタグ・メモリ、121,221 …論理アドレスタグ
値、122,222 …状態タグ値、123,223 …アドレス比較
器、103,203 …スヌープ・エントリ・インデックス、1
3, 23…スヌープ・タグ・メモリ、131,231 …物理アド
レスタグ値、132,232 …状態タグ値、133,233 …アドレ
ス比較器、14, 24 …データ本体格納メモリ、141,241
…データ値、15, 25 …MMU、151,251 …物理ページ
番号、16, 26 …内部バス、17, 27 …論理アドレスレ
ジスタ、18, 28 …オフセットレジスタ、19, 29…スヌ
ープ物理アドレス線、191,291 …ラインオフセット、19
2,292 …ページ内エントリ・インデックス、195,295 …
物理ページ番号、196,296 …スヌープ論理アドレス線、
3 …バス、30…バス調停器、31…データバス、32…物理
アドレスバス、33…論理アドレスバス、35, 36…キャッ
シュ・バス、352,362 …物理アドレスバス、353,363 …
論理アドレスバス、81, 82…セカンド・キャッシュ、81
1,821 …物理アドレス線、8111,8211 …セカンド・キャ
ッシュ・エントリ・インデックス、8112,8212 …セカン
ド・キャッシュ物理ページ番号上位、812,822 …セカン
ド・キャッシュ・アクセス タグ、8121,8123,8125,812
7 …セカンド・キャッシュ状態タグ値、8221,8223,822
5,8227 …セカンド・キャッシュ状態タグ値、8122,812
4,8126,8128 …セカンド・キャッシュ物理アドレスタグ
値、8222,8224,8226,8228 …セカンド・キャッシュ物理
アドレスタグ値、812A,812B,812C,812D…セカンド・キ
ャッシュ・アドレス比較器、822A,822B,822C,822D …セ
カンド・キャッシュ・アドレス比較器、813,823 …セカ
ンド・キャッシュ・データ本体、814,824 …セカンド・
キャッシュ・スヌープ・タグ、8141,8143,8145,8147 …
セカンド・キャッシュ状態タグ値、8241,8243,8245,824
7 …セカンド・キャッシュ状態タグ値、8142,8144,814
6,8148 …セカンド・キャッシュ物理アドレスタグ値、8
242,8244,8246,8248 …セカンド・キャッシュ物理アド
レスタグ値、814A,814B,814C,814D …セカンド・キャッ
シュ・アドレス比較器、824A,824B,824
C,824D…セカンド・キャッシュ・アドレス比較
器、815,825 …セカンド・キャッシュ・スヌー
プアドレス線、8151,8251 …セカンド・キャッシュ・エ
ントリ・インデックス、8152,8252 …セカンド・キャッ
シュ物理ページ番号上位、816,826 …論理ページ番号エ
ントリ・インデックス伝達経路、83…メモリ・バス、83
0 …バス調停器、831 …データバス、832 …物理アドレ
スバス、833 …論理アドレスバス、9 …主メモリ、L1,L
2,L4,L5,L6,L7 …プライマリ・キャッシュ、L11,L21 …
論理アドレス線、L111,L211 …プライマリ・キャッシュ
・エントリ・インデックス、L112,L212 …プライマリ・
キャッシュ論理ページ番号上位、L12,L22 …CPUタ
グ、L121,L221 …論理アドレス値、L122,L222 …状態タ
グ値、L123,L223 …アドレス比較器、L13, L23…データ
本体、L14, L24…スヌープタグ、L141,L241 …論理アド
レス、L142,L242 …状態タグ値、L143,L243 …アドレス
比較器、L15, L25…スヌープ論理アドレス線、L151,L25
1 …プライマリ・キャッシュ・スヌープ・エントリ・イ
ンデックス、L152,L252 …プライマリ・キャッシュ論理
ページ番号上位、L35, L36, L37 …論理キャッシュ・バ
ス、L350,L360,L370…バス調停器、L351,L361,L371…デ
ータ・バス、L353,L363,L373…論理アドレスバス、S1,
S2,S4…セカンダリ・キャッシュ、L101,L201 …論理ア
ドレス伝達経路、S101,S201…アクセス論理アドレス
線、S102,S202 …セカンダリ・キャッシュ・エントリ・
インデックス、S103,S203 …セカンダリ・キャッシュ・
スヌープ・エントリ・インデックス、S110,S210 …ペー
ジ内オフセット、S111,S211 …ライン内オフセット、S1
12,S212 …ページ内エントリ・インデックス、S113,S21
3 …セカンダリ・キャッシュ論理ページ番号エントリ・
インデックス、S114,S214 …セカンダリ・キャッシュ論
理ページ番号上位、S115,S215 …論理ページ番号、S12,
S22…アクセス・タグ・メモリ、S121,S221 …論理アド
レスタグ値、S122,S222 …状態タグ値、S123,S223 …ア
ドレス比較器、S13, S23…スヌープ・タグ・メモリ、S1
31,S231 …物理アドレスタグ値、S132,S232 …状態タグ
値、S133,S233 …アドレス比較器 S14, S24…データ本体格納メモリ、S141,S241 …データ
値、S15, S25…MMU、S151,S251 …物理ページ番号、
S16, S26…内部バス、S17, S27…論理アドレスレジス
タ、S18, S28…オフセットレジスタ、S19, S29…スヌー
プ物理アドレス線、S191,S291 …ラインオフセット、S1
92,S292 …ページ内エントリ・インデックス、S195,S29
5 …物理ページ番号、S196,S296 …スヌープ論理アドレ
ス線。
Claims (3)
- 【請求項1】 複数のプロセッサに対し論理アドレスで
アクセスされるキャッシュメモリをそれぞれ接続すると
ともに、各キャッシュメモリに対し接続手段を介して前
記各プロセッサのいずれからもアクセス可能な共有メモ
リを接続するようにしたマルチプロセッサシステムにお
いて、 前記各キャッシュメモリは、前記プロセッサより出力さ
れる論理アドレスを物理アドレスに変換する変換手段、
前記プロセッサより出力される論理アドレスが対応する
キャッシュメモリ内にあるか否かを判定する手段、前記
接続手段より入力される物理アドレスと論理アドレスを
監視し対応するキャッシュメモリの内容の一貫性保持が
必要か否かを判定する手段を具備したことを特徴とする
マルチプロセッサシステム。 - 【請求項2】 複数のプロセッサに対し論理アドレスで
アクセスされる第1のキャッシュメモリをそれぞれ接続
するとともに、前記プロセッサを複数組に分け各組のプ
ロセッサに接続される各第1のキャッシュメモリに対し
第1の接続手段を介して物理アドレスでアクセスされる
第2のキャッシュメモリをそれぞれ接続し、さらに各第
2のキャッシュメモリに対し第2の接続手段を介して前
記各プロセッサのいずれからもアクセス可能な共有メモ
リを接続するようにしたマルチプロセッサシステムにお
いて、 前記各第1のキャッシュメモリは、前記プロセッサより
出力される論理アドレスを物理アドレスに変換する変換
手段、前記プロセッサより出力される論理アドレスが対
応する第1のキャッシュメモリ内にあるか否かを判定す
る手段、前記第1の接続手段より入力される物理アドレ
スと論理アドレスを監視し対応する第1のキャッシュメ
モリの内容の一貫性保持が必要か否かを判定する手段を
有し、 前記各第2のキャッシュメモリは、前記第1の接続手段
より入力される物理アドレスが対応する第2のキャッシ
ュメモリ内にあるか否かを判定する手段、前記第2の接
続手段から入力された物理アドレスをを監視し対応する
第2のキャッシュメモリの内容の一貫性保持が必要か否
かを判定する手段を有することを特徴とするマルチプロ
セッサシステム。 - 【請求項3】 複数のプロセッサに対し論理アドレスで
アクセスされる第1のキャッシュメモリをそれぞれ接続
するとともに、前記プロセッサを複数組に分け各組のプ
ロセッサに接続される各第1のキャッシュメモリに対し
第1の接続手段を介して論理アドレスでアクセスされる
第2のキャッシュメモリをそれぞれ接続し、さらに各第
2のキャッシュメモリに対し第2の接続手段を介して前
記各プロセッサのいずれからもアクセス可能な共有メモ
リを接続するようにしたマルチプロセッサシステムにお
いて、 前記各第1のキャッシュメモリは、前記プロセッサより
出力される論理アドレスが対応する第1のキャッシュメ
モリ内にあるか否かを判定する手段、前記第1の接続手
段より入力される論理アドレスを監視し対応する第1の
キャッシュメモリの内容の一貫性保持が必要か否かを判
定する手段を有し、 前記各第2のキャッシュメモリは、前記第1の接続手段
上の論理アドレスを物理アドレスに変換する変換手段、
前記第1の接続手段より入力される論理アドレスが対応
する第2のキャッシュメモリ内にあるか否かを判定する
手段、前記第2の接続手段から入力された物理アドレス
と論理アドレスを監視し対応する第2のキャッシュメモ
リの内容の一貫性保持が必要か否かを判定する手段を有
することを特徴とするマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4063446A JPH05265970A (ja) | 1992-03-19 | 1992-03-19 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4063446A JPH05265970A (ja) | 1992-03-19 | 1992-03-19 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05265970A true JPH05265970A (ja) | 1993-10-15 |
Family
ID=13229486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4063446A Pending JPH05265970A (ja) | 1992-03-19 | 1992-03-19 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05265970A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805576B2 (en) | 2006-08-17 | 2010-09-28 | Fujitsu Limited | Information processing system, information processing board, and method of updating cache tag and snoop tag |
JP2010282520A (ja) * | 2009-06-08 | 2010-12-16 | Nec Corp | コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法 |
AU2015260602B2 (en) * | 2014-05-13 | 2016-05-12 | Sumitomo Metal Mining Co., Ltd. | Method for neutralizing sulfuric acid acidic solution and hydrometallurgical method for nickel oxide ore |
-
1992
- 1992-03-19 JP JP4063446A patent/JPH05265970A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805576B2 (en) | 2006-08-17 | 2010-09-28 | Fujitsu Limited | Information processing system, information processing board, and method of updating cache tag and snoop tag |
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 |
AU2015260602B2 (en) * | 2014-05-13 | 2016-05-12 | Sumitomo Metal Mining Co., Ltd. | Method for neutralizing sulfuric acid acidic solution and hydrometallurgical method for nickel oxide ore |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372777B2 (en) | Memory interface between physical and virtual address spaces | |
US6647466B2 (en) | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy | |
KR100194253B1 (ko) | 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 | |
JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
US5197139A (en) | Cache management for multi-processor systems utilizing bulk cross-invalidate | |
JP3924206B2 (ja) | 不均一メモリ・アクセス(numa)データ処理システム | |
US6751720B2 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
US5379394A (en) | Microprocessor with two groups of internal buses | |
US7669011B2 (en) | Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor | |
US6438653B1 (en) | Cache memory control circuit including summarized cache tag memory summarizing cache tag information in parallel processor system | |
JP4065660B2 (ja) | 機能が並列に分散された変換索引バッファ | |
US20170177484A1 (en) | Region probe filter for distributed memory system | |
US20080046736A1 (en) | Data Processing System and Method for Reducing Cache Pollution by Write Stream Memory Access Patterns | |
US6751705B1 (en) | Cache line converter | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
WO2024066195A1 (zh) | 缓存管理方法及装置、缓存装置、电子装置和介质 | |
US5987544A (en) | System interface protocol with optional module cache | |
JP2930071B2 (ja) | 情報処理装置およびプロセッサ | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
US20030225980A1 (en) | Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status | |
US5905999A (en) | Cache sub-array arbitration | |
JPH05265970A (ja) | マルチプロセッサシステム |