JPH06202949A - マルチプロセッサ・キャッシュ制御装置 - Google Patents

マルチプロセッサ・キャッシュ制御装置

Info

Publication number
JPH06202949A
JPH06202949A JP5000695A JP69593A JPH06202949A JP H06202949 A JPH06202949 A JP H06202949A JP 5000695 A JP5000695 A JP 5000695A JP 69593 A JP69593 A JP 69593A JP H06202949 A JPH06202949 A JP H06202949A
Authority
JP
Japan
Prior art keywords
cache
memory
data
number table
copy
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
Application number
JP5000695A
Other languages
English (en)
Inventor
Hidetoshi Aihara
秀俊 相原
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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP5000695A priority Critical patent/JPH06202949A/ja
Publication of JPH06202949A publication Critical patent/JPH06202949A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】キャッシュ・ミスの際に発生するメモリとキャ
ッシュ間のデータ転送を最小限に抑え、システム・バス
のトラフィックを大幅に削減する。 【構成】複数のプロセッサと複数のキャッシュ・メモリ
を一定の優先度を持ってすべてのプロセッサがすべての
キャッシュ・メモリをアクセスできるように接続するク
ロスバ・スイッチと、キャッシュ・テーブルとデータ部
から構成され、キャッシュ・テーブルの各エントリーは
そのメモリ・ブロックのコピーがどのキャッシュ・メモ
リに存在するかを示し、データ部はキャッシュ・ライン
を構成する複数バイトから成るメモリ・ブロックに分割
されて成るメイン・メモリを備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサ・シ
ステムにおけるキャッシュ制御方式の改善に関するもの
である。
【0002】
【従来の技術】コンピュータ・システムにおいては、従
来からプロセッサとメモリ・システムの性能のバランス
をとるためにキャッシュ・メモリを搭載する方式がとら
れている。これは、プロセッサの性能に見合った十分な
容量の高速メモリを実装することが経済的でない場合に
採用する手法であり、小容量で高速かつ高ビット価格メ
モリ(例えばSRAM)と、大容量で低速かつ低ビット
価格メモリ(例えばDRAM)とを組み合わせて階層的
にメモリ・システムを構成する手法である。
【0003】マルチプロセッサ・システムにおいても複
数のプロセッサが効率よく共有メモリをアクセスするこ
とができるように、また複数のプロセッサが同時に共有
メモリをアクセスする際のバスのトラフィックを削減す
るために、プロセッサごとにキャッシュ・メモリを持た
せる手法がとられてきた。
【0004】
【発明が解決しようとする課題】しかしながら、共有メ
モリを介して密結合されたマルチプロセッサ・システム
においては、システムのキャッシュ間のデータの一致性
を保証しなければならず、そのための複雑なハードウェ
アを実装する必要があった。さらに、データの一致性を
維持するためにシステム・バスを利用してデータの無効
化あるいは更新を行なっており、そのためバスのトラフ
ィックが増大するという問題もあった。
【0005】本発明の目的は、このような点を解消する
もので、キャッシュの一致性(コヒーレンシー)を維持
するための従来のような複雑なハードウェアは全く必要
とせず、キャッシュ・ミスの際に発生するメモリとキャ
ッシュ間のデータ転送を最小限に抑え、システム・バス
のトラフィックを大幅に削減することのできるマルチプ
ロセッサ・キャッシュ制御装置を提供することにある。
【0006】
【課題を解決するための手段】このような目的を達成す
るために本発明は、複数のプロセッサと複数のキャッシ
ュ・メモリを一定の優先度を持ってすべてのプロセッサ
がすべてのキャッシュ・メモリをアクセスできるように
接続するクロスバ・スイッチと、キャッシュ番号テーブ
ルとデータ部から構成され、キャッシュ番号テーブルの
各エントリーはそのメモリ・ブロックのコピーがどのキ
ャッシュ・メモリに存在するかを示し、データ部はキャ
ッシュ・ラインを構成する複数バイトから成るメモリ・
ブロックに分割されて成るメイン・メモリを備え、ある
特定のメモリ・ブロックがシステム内のただひとつのキ
ャッシュ・メモリにのみ存在するようにしてキャッシュ
・コヒーレンシーを維持するためのバス・トラフィック
を削減できるように構成したことを特徴とする。
【0007】
【作用】クロスバ・スイッチを用い複数のプロセッサが
複数のキャッシュ・メモリを一定の優先度を持ってアク
セスできるように接続する。メイン・メモリをキャッシ
ュ番号テーブルとデータ部で構成し、キャッシュ・テー
ブルの各エントリーにはそのメモリ・ブロックのコピー
が存在するキャッシュ・メモリの番号が登録され、デー
タ部はキャッシュ・ラインを構成する複数バイトから成
るメモリ・ブロックに分割された構成とする。キャッシ
ュ・ミスがあった場合、プロセッサはキャッシュ番号テ
ーブルをチェックし、その返値に応じて適宜の処理を行
う。特にリード・アクセスの場合、キャッシュ・ミスの
際に実際のデータ転送を伴わない。システム内のいずれ
かのキャッシュ・メモリに目的のメモリ・ブロックのコ
ピーが存在する限りプロセッサはそのキャッシュ・メモ
リから直接データをリードする。このようにした結果、
キャッシュ・ミスの際に発生するメイン・メモリとキャ
ッシュ・メモリ間のデータ転送を最小限に抑えることが
できる。
【0008】
【実施例】以下本発明を詳細に説明する。図1は本発明
に係るマルチプロセッサ・キャッシュ制御装置の一実施
例を示す構成図である。なお実施例は4個のマイクロプ
ロセッサより構成される場合を例にとって示してある。
図において、10〜40は中央処理装置(以下CPUと
いう)である。各CPUは同一構成であり、それぞれプ
ロセッサ11、キャッシュ・メモリを制御するためのキ
ャッシュ・コントローラ12、システム・バス70に接
続するためのバス・インタフェース13から構成され
る。
【0009】5〜8は、キャッシュ・メモリであり、主
記憶の部分的なコピーを格納するためのメモリである。
50はクロスバー・スイッチであり、S0〜S11の1
2個のスイッチにより4×3のマトリクスを形成したス
イッチ網で構成され、CPUとキャッシュ・メモリを接
続するためのバスが形成されている。各CPUは一定の
優先度を持ってすべてのキャッシュ・メモリに相互に接
続されるようになっている。通過するスイッチの個数が
最も少ない経路が最も高い優先度を持つ。例えば、CP
U10はキャッシュ・メモリ5(C0)に最も高い優先
度で接続され、キャッシュ・メモリ8(C3)に最も低
い優先度で接続される。逆にCPU40はキャッシュ・
メモリ8(C3)に最も高い優先度で接続され、キャッ
シュ・メモリ5(C0)に最も低い優先度で接続され
る。
【0010】メイン・メモリ60は図2に示すようにキ
ャッシュ・テーブル61とデータ部62から構成されて
いる。キャッシュ・テーブル61の各エントリーは、そ
のメモリ・ブロックのコピーがどのキャッシュに存在す
るかを示し、データ部62はキャッシュ・ラインを構成
する複数バイトから成るメモリ・ブロックに分割されて
いる。
【0011】このような構成における動作を次に説明す
る。共有メモリ方式のマルチプロセッサ・システムにお
いては、メモリへのすべての参照に対して、どのプロセ
ッサで更新されたにせよ、最も最新のデータが得られる
ことが重要である。本発明においてはもちろん最も最新
のデータが得られるようになっている。また本発明の装
置によれば、従来のマルチプロセッサ・システムにおい
て不可欠であったキャッシュの一致性のための制御も不
要である。
【0012】以下リード・アクセスとライト・アクセス
に分けて説明する。なお本発明の装置ではコピーバック
・キャッシュを前提としている。 (1) リード・アクセス プロセッサから出力されたメモリのアドレスがキャッシ
ュ・コントローラに受け取られ、キャッシュ・メモリの
アクセスが開始される。この時アクセスされるキャッシ
ュは、最も高い優先度を持つキャッシュ・メモリのみで
ある。すなわち図1において、CPU0の場合はキャッ
シュ・メモリC0、CPU1の場合はキャッシュ・メモ
リC1、CPU2の場合はキャッシュ・メモリC2、C
PU3の場合はキャッシュ・メモリC3である。以下キ
ャッシュ・ヒットとキャッシュ・ミスの場合について述
べる。
【0013】(a) キャッシュ・ヒット キャッシュ・ヒットの場合は、キャッシュ・メモリから
プロセッサに対してデータが読み込まれ、リードのため
のプロセスは終了する。
【0014】(b) キャッシュ・ミス キャッシュ・ミスの場合は、システム・バス70を介し
てメイン・メモリ60に対するアクセスが開始される。
メイン・メモリ60はキャッシュ・ラインを構成するメ
モリ・ブロックに分割され、各ブロックごとにそのブロ
ックのコピーを持つキャッシュの番号を保持するキャッ
シュ番号テーブルが付加されている。このテーブルは、
CPUからリード要求を受けてそのブロックのデータを
返した時に、そのCPUが最も高い優先度を持つキャッ
シュの番号が登録される。どのキャッシュ・メモリにも
コピーが存在しないメモリ・ブロックのキャッシュ番号
テーブルには、"Not copied"の状態が記録されている。
換言すれば、初期値は"Not copied"の状態である。
【0015】キャッシュ・ミスの結果としてメイン・メ
モリ60がリード・アクセスされた時、キャッシュ・コ
ントローラは最初にキャッシュ番号テーブル61をアク
セスし、要求されたブロックのコピーがいずれかのキャ
ッシュ・メモリに存在するかどうかをチェックする。キ
ャッシュ番号テーブルのエントリが"Not copied"の場合
はそのブロック全体のデータがレスポンスとして返され
ると同時に、キャッシュ番号テーブルにそのデータがロ
ードされるキャッシュ番号が登録される。また、いずれ
かのキャッシュ・メモリにコピーが存在する場合、すな
わちキャッシュ番号テーブルにキャッシュ番号が登録さ
れている場合には、そのキャッシュ番号がレスポンスと
して返される。この場合キャッシュ番号テーブルのエン
トリの値は不変である。
【0016】メイン・メモリ60からのレスポンスを受
け取ったCPUのキャッシュ・コントローラは、そのレ
スポンスがデータであった場合、要求されたデータをプ
ロセッサに返すと共に、ブロック全体のデータを最も高
い優先度を持つキャッシュ・メモリに書き込む。またメ
イン・メモリからのレスポンスがコピーを有するキャッ
シュを示すキャッシュ番号であった場合は、そのキャッ
シュに対するアクセスを開始する。この場合のキャッシ
ュ・アクセスは、クロスバ・スイッチ50のスイッチ網
を経て行なわれる。例えばCPU0からキャッシュ・メ
モリC1に対してアクセスする場合は、S9→S5→S
1というスイッチ経由のアクセス経路が形成される。
【0017】本発明の最大の特徴は、キャッシュ・ミス
の際に実際のデータ転送を伴わないことである。システ
ム内のいずれかのキャッシュ・メモリに目的のメモリ・
ブロックのコピーが存在する限りプロセッサはそのキャ
ッシュ・メモリから直接データを読み込むことができ
る。
【0018】(2)ライト・アクセス リード・アクセスの場合と同様にプロセッサから出力さ
れたメモリのアドレスがキャッシュ・コントローラに受
け取られ、最も高い優先度を持つキャッシュ・メモリに
対してアクセスが開始される。 (a) キャッシュ・ヒット キャッシュ・ヒットの場合はデータ書き込みが行なわれ
る。この際、従来のマルチプロセッサ・システムにおけ
るキャッシュ制御の場合は他のプロセッサのキャッシュ
が保持する同一ロケーションのデータを無効化あるいは
更新する必要があるが、本発明では同一メモリブロック
のコピーはシステム内でただひとつのキャッシュにしか
存在しないためそのような無効化あるいは更新を必要と
しない。
【0019】(b) キャッシュ・ミス キャッシュ・ミスの場合、リード・ミスの場合と同様に
メイン・メモリ60に対するリード・アクセスが開始さ
れる。要求されたリード・アクセスに対してキャッシュ
・コントローラは最初にキャッシュ番号テーブルをアク
セスし、要求されたブロックのコピーがいずれかのキャ
ッシュ・メモリに存在するかどうかがチェックされる。
その結果により次の(b1),(b2)の2通りの処理に分かれ
る。
【0020】(b1)キャッシュ番号テーブルのエントリ
が"Not copied"の場合 そのブロック全体のデータがレスポンスとして返される
と同時にキャッシュ番号テーブルにそのデータがコピー
されるキャッシュの番号が登録される。メイン・メモリ
60からのレスポンス・データを受け取ったCPUのキ
ャッシュ・コントローラは、プロセッサからのライト・
データをデータ・ブロックにマージし、ブロック全体の
データを最も高い優先度を持つキャッシュ・メモリに書
き込む。
【0021】(b2)いずれかのキャッシュ・メモリにコピ
ーが存在する場合 キャッシュ番号テーブルに保持されているキャッシュ番
号がレスポンスとしてメイン・メモリより返される。キ
ャッシュ番号テーブルのエントリの値は不変である。レ
スポンスを受け取ったCPUのキャッシュ・コントロー
ラは、スイッチ網を経てそのキャッシュに対するライト
・アクセスを開始する。
【0022】以上述べたように本発明によれば、リード
・ミスおよびライト・ミスの際に発生するメイン・メモ
リとキャッシュ間のデータ転送を最小限に抑えることが
できる。さらにキャッシュ・コヒーレンシーも維持され
るため、複雑なメカニズムも必要としない。また、メイ
ン・メモリに対してライトバックが発生するのは、キャ
ッシュ・ミスが発生した場合にそのミスしたキャッシュ
・ラインがダーティの状態(キャッシュに対してデータ
の書き込みが行なわれ、メイン・メモリの内容とデータ
が一致していない状態)であり、しかもキャッシュ番号
テーブルのエントリが"Notcopied" の場合のみに限られ
る。この場合はメイン・メモリからのメモリ・ブロック
のデータがキャッシュにロードされる前にダーティなラ
インのメイン・メモリへのライトバックが発生する。
【0023】
【発明の効果】以上説明したように本発明によれば、キ
ャッシュ・ミスの際に発生するメイン・メモリとキャッ
シュ間のデータ転送を最小限に抑制することができ、シ
ステム・バスのトラフィックを大幅に削減することがで
きる。
【図面の簡単な説明】
【図1】本発明に係るマルチプロセッサ・キャッシュ制
御装置の一実施例を示す構成図である。
【図2】メイン・メモリの構成を示す構成図である。
【符号の説明】
5,6,7,8 キャッシュ・メモリ 10,20,30,40 CPU 11 プロセッサ 12 キャッシュ・コントローラ 13 バス・インタフェース 50 クロスバ・スイッチ 60 メイン・メモリ 70 システム・バス

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと複数のキャッシュ・メ
    モリを一定の優先度を持ってすべてのプロセッサがすべ
    てのキャッシュ・メモリをアクセスできるように接続す
    るクロスバ・スイッチと、 キャッシュ・テーブルとデータ部から構成され、キャッ
    シュ・テーブルの各エントリーはそのメモリ・ブロック
    のコピーがどのキャッシュ・メモリに存在するかを示
    し、データ部はキャッシュ・ラインを構成する複数バイ
    トから成るメモリ・ブロックに分割して成るメイン・メ
    モリを備え、ある特定のメモリ・ブロックがシステム内
    のただひとつのキャッシュ・メモリにのみ存在するよう
    に制御されることを特徴とするマルチプロセッサ・キャ
    ッシュ制御装置。
JP5000695A 1993-01-06 1993-01-06 マルチプロセッサ・キャッシュ制御装置 Pending JPH06202949A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5000695A JPH06202949A (ja) 1993-01-06 1993-01-06 マルチプロセッサ・キャッシュ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5000695A JPH06202949A (ja) 1993-01-06 1993-01-06 マルチプロセッサ・キャッシュ制御装置

Publications (1)

Publication Number Publication Date
JPH06202949A true JPH06202949A (ja) 1994-07-22

Family

ID=11480906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5000695A Pending JPH06202949A (ja) 1993-01-06 1993-01-06 マルチプロセッサ・キャッシュ制御装置

Country Status (1)

Country Link
JP (1) JPH06202949A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011517219A (ja) * 2009-02-13 2011-05-26 アップル インコーポレイテッド マルチポート型メモリスーパーセル及びデータ経路スイッチング回路を伴う集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011517219A (ja) * 2009-02-13 2011-05-26 アップル インコーポレイテッド マルチポート型メモリスーパーセル及びデータ経路スイッチング回路を伴う集積回路

Similar Documents

Publication Publication Date Title
CA1306312C (en) Write-shared cache circuit for multiprocessor system
JP2662603B2 (ja) 無効要求を選別する方法及び装置
EP0735480B1 (en) Cache coherent computer system that minimizes invalidation and copyback operations
JP2540517B2 (ja) 階層キヤツシユメモリ装置および方法
US5434993A (en) Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
US6049851A (en) Method and apparatus for checking cache coherency in a computer architecture
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH06208508A (ja) キャッシュタグメモリ
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US6345320B1 (en) DMA address buffer and cache-memory control system
US7325102B1 (en) Mechanism and method for cache snoop filtering
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
US5987544A (en) System interface protocol with optional module cache
US6226718B1 (en) Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
WO1997004392A1 (en) Shared cache memory device
JPH10232832A (ja) 重複タグ・システム維持方法
JPH0511337B2 (ja)
JPH0532776B2 (ja)
JPH06202949A (ja) マルチプロセッサ・キャッシュ制御装置
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width