JPH04347750A - 並列キャッシュメモリの制御方式 - Google Patents

並列キャッシュメモリの制御方式

Info

Publication number
JPH04347750A
JPH04347750A JP3120110A JP12011091A JPH04347750A JP H04347750 A JPH04347750 A JP H04347750A JP 3120110 A JP3120110 A JP 3120110A JP 12011091 A JP12011091 A JP 12011091A JP H04347750 A JPH04347750 A JP H04347750A
Authority
JP
Japan
Prior art keywords
cache
cache memory
cache block
state
processor
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.)
Withdrawn
Application number
JP3120110A
Other languages
English (en)
Inventor
Hiroya Shimura
志村 浩也
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3120110A priority Critical patent/JPH04347750A/ja
Publication of JPH04347750A publication Critical patent/JPH04347750A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の情報処理装置が
主記憶を共有するマルチプロセッサ・システムにおける
並列キャッシュの制御方式に関する。
【0002】近年、半導体技術や実装技術の進歩によっ
てプロセッサは小さく高機能になっており、複数のマイ
クロプロセッサとメモリをバス結合したシステムがコス
トパフォーマンスの高さから注目されている。現在単一
のプロセッサの処理量はほぼ限界にまで達しており、よ
り高速に処理を実行するために、処理を細かい単位に分
割し複数のプロセッサで並列に処理することが望まれて
いる。このような並列処理においては、分割された処理
の間でのデータの受け渡しは欠かせないものであり、シ
ステム性能を向上させるためには、共有するデータを効
率よくするプロセッサ間で送受することが重要である。
【0003】
【従来の技術】このような、マルチプロセッサシステム
の構成図の一例を図3に示す。共有メモリ型マルチプロ
セッサシステムでは、各プロセッサが持つキャッシュメ
モリと主記憶メモリの一貫性を保つことが問題となる。 キャッシュメモリと主記憶との一貫性を保つための方法
の1つとしてライトバック方式が用いられる。これは、
キャッシュメモリへの書き込みを行う際、キャッシュメ
モリのみ変更を行い、主記憶への書き戻しは、キャッシ
ュブロックの置き換えを行う際に一括して行う方法であ
る。
【0004】キャッシュメモリは主記憶のコピーであり
、あるアドレスの内容が変更された時にすべてのコピー
が同じであることを保証するなんらかの機構が必要であ
る。また、全体のシステム性能を上げるためにはバス・
トラフィックを最小にする必要があり、一般に並列キャ
ッシュを実現する手法として、バスのトランザクション
を監視するスヌープ・キャッシュ手法がある。
【0005】スヌープ・キャッシュ手法は、複数のプロ
セッサが主記憶を共有するシステムにおいて、キャッシ
ュがミスヒットしたときに、他のプロセッサが該当する
キャッシュブロックを保持している場合に、主記憶から
ではなく、他のプロセッサからキャッシュブロックを転
送してもらったり、書き込みを行った際に、同一のキャ
ッシュブロックを他のプロセッサが保持していればそれ
を無効化したりする手法である。無効化するのは、各プ
ロセッサのキャッシュメモリに同一内容を記憶している
場合、その1つを書き換えた場合、同一性が失なわれる
ので他のメモリの該当する内容を無効化し、同一化の原
則を貫くためである。
【0006】一般にスヌープ・キャッシュ方式において
は、キャッシュブロックの状態としてキャッシュブロッ
クが無効なことを示すInVaid状態やキャッシュブ
ロックへの書き込みが行なわれたことを示すDirty
 状態の他に、他のプロセッサが同じキャッシュブロッ
クのコピーを持つことを示すShared状態を有する
。さらに、バス・トラフィックを小さくするために他の
プロセッサがコピーを持たないことを示すOwned 
状態を持つこともある。
【0007】
【発明が解決しようとする課題】従来の手法では、同一
キャッシュブロックに対して異なるプロセッサが同時期
にアクセスを行い、特に書き込みを実行するプロセッサ
がある場合には、共有バスの負荷が著しく増大していた
。例えば、キャッシュブロックの大きさを64バイト、
書き込みと読み出しを1バイトづつ別々のプロセッサが
実行するとし、同一のキャッシュブロックに対して1つ
のプロセッサがブロックの先頭から書き込みを行い、別
のプロセッサが先頭から読み出しを交互に行うような最
悪な状態では、ブロックの無効化および64バイトのブ
ロック転送を64回も行う必要がある。このため、共有
バスの負荷が非常に重くなり、システム性能を大幅に低
下させる原因となる。
【0008】本発明は、上述の問題点に鑑みてなされた
もので、同一キャッシュブロックへのアクセスが同時期
に行なわれた際のバスの負荷を低減する並列キャッシュ
メモリの制御方式を提供することを目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するため
、それぞれキャッシュメモリを有する複数のプロセッサ
が主記憶を共有し、ライトバック方式により主記憶を更
新する並列キャッシュメモリの制御方式において、ある
キャッシュメモリに書き込みを行う際、所定の書き込み
位置まで書き込み後、他のキャッシュメモリに転送する
ようにしたものである。
【0010】また、あるキャッシュメモリへ書き込み中
は他のキャッシュメモリへの転送を保留する書込および
保留命令を設け、所定位置まで書き込んだことを検出後
、前記書込みおよび保留命を解放するようにしたもので
ある。
【0011】また、あるキャッシュメモリへ書き込む連
続領域をあらかじめ指定し、その連続領域への書き込み
終了後、他のキャッシュメモリへ転送するようにしたも
のである。
【0012】
【作用】あるキャッシュメモリに書き込みを行う際、所
定の位置まで書き込み後、他のキャッシュメモリに転送
することによりまとまって転送できるので、バスの負荷
が軽減される。
【0013】その際、所定の位置までの書き込み中は他
のキャッシュメモリへの転送を保留する命令を設け、そ
の位置まで書き込んだことを検出後、この転送の保留を
解放するようにして、バスの負荷を軽減する。
【0014】また、あるキャッシュメモリへ書き込む連
続領域を予め指定しておきその連続領域への書き込み終
了後、他のキャッシュメモリへ転送するようにしてバス
の負荷を軽減する。
【0015】以下、本発明の実施例を図面を参照して説
明する。図1は本発明の第1実施例の構成を示すブロッ
ク図である。本図は主記憶を共有するプロセッサの1つ
を示し、各プロセッサはそれぞれキャッシュメモリを有
する。全体構成は図3と同じである。1はCPUであり
、2はアドレスの一部を記憶するタグ、3はこのタグが
表わす位置のキャッシュメモリの内容の状態を表わすス
テータス、4はアドレスバス、5はタグ3が表わすアド
レスの一部とCUP1から指定されたアドレスやアドレ
スバス4を介して他のプロセッサから入力されたアドレ
スの一部とを比較して、一致しないときはキャッシュ・
ミスであると判定する比較器である。
【0016】タグ2,ステータス3、比較器5は2重に
設けられている。キャッシュのタグ2とステータス3は
、現在プロセッサがキャッシュブロックを保持している
かどうかの情報を記録するために用いる。並列キャッシ
ュでは一般にタグとステータスを記録するためにdua
l port (読み出しを2つの口から行える)RA
Mで構成する。従ってメモリアクセス処理中のプロセッ
サが自分のキャッシュを調べるための比較器と他のプロ
セッサからの要求に答えるか判定するために比較器5は
2重系にしている。
【0017】6はブロック解散判定回路で、CPU1か
らのWrite &Hold信号(書き込みを行った後
に該当キャッシュブロックを保持する命令)と書き込み
を行うアドレスおよびステータス3の表わす書き込みを
行うキャッシュブロックの状態から該当するキャッシュ
ブロックを他のプロセッサに転送するか否かを判定する
【0018】7は他プロセッサの要求判定回路で、他の
プロセッサがミスヒットしたときに出す要求を、アドレ
スバス4を監視して把握し、他のプロセッサの要求に応
ずるか否かを判定する。つまり、プロセッサがメモリの
アクセスを行ってキャッシュがミスヒットした時には、
アドレスバスにミスヒットしたアドレスを乗せ、制御線
に要求信号を出すので、他のプロセッサはこの要求信号
とアドレスバスを監視しており、もし該当するキャッシ
ュブロックを保持していれば、その要求に答えてキャッ
シュブロックの転送を行う。なお、あるプロセッサがあ
るアドレスに対して該当するキャッシュブロックを保持
しているかどうかの判定条件としては、キャッシュのタ
グ2にアドレス登録されており、かつステータス3がI
nValid (無効)でないことが必要である。また
、他のプロセッサの要求に応じるか否かの判定は、単一
プロセッサにおいてキャッシュのヒット/ミスヒットの
判定と同一の方法で行う。
【0019】8はキャッシュブロック送出制御回路で、
他のプロセッサからの要求に答えてキャッシュブロック
の転送を制御すると共に、キャッシュブロックの転送を
行った後次に示すようにステータス3の変更を行う。 Dirty 状態→Shared状態(他プロセッサが
read)Dirty 状態→Invalid 状態(
他プロセッサがwrite )Shared状態→In
valid 状態(他プロセッサがwrite )
【0
020】次に動作について説明する。まずステータス3
の表わすキャッシュブロックの状態を次のように定める
。 InValid     無効(ミスヒットと同じ扱い
)Owned       所有(自分だけが持ってい
る)Shared      共有(他のプロセッサも
同じものを持っている) Dirty       書き込みが行なわれた(自分
だけがもっている) Hold        所有および保持(書き込みが
あり自分だけが持っている) Request     要求(他のプロセッサからの
転送の要求であとで転送する) InValid からDirty まではスヌープキャ
ッシュで一般に使用されているが、HoldとRequ
est は本実施例で設けたものである。
【0021】キャッシュブロックの状態はWrite 
&Hold命令によって従来のWrite 操作と殆ん
ど同じ動作を行う。従来、状態をDirty にしてい
たところをHold状態にするところが異なる。Hol
d状態は自分のプロセッサから見た場合はDirty 
状態と全く同様に扱われる。つまりこのときは自分のプ
ロセッサなら書き込みを行うことができる。
【0022】他のプロセッサからキャッシュブロックの
要求がきた場合は、ブロックの状態がHold状態また
はRequest 状態であれば、他のプロセッサへの
キャッシュブロック転送を行なわず、キャッシュブロッ
クの状態をRequest 状態に遷移する。Requ
est 状態とはWrite &Hold命令等により
Hold状態になったキャッシュブロックに他のプロセ
ッサから要求がきたとき、いつかはそのキャッシュブロ
ックを要求元のプロセッサに転送しなければならない状
態をいう。キャッシュブロックの解放を行った際にブロ
ックの転送を行うか否かを判断するためにHold状態
とRequest状態の2つの状態を設け、Hold状
態であれば転送する必要なく、Request 状態で
あれば転送を行う。
【0023】Write &Hold命令がキャッシュ
ブロックの最後のアドレスに対して書き込みを行ったこ
とをブロック解放判定回路6が検出し、このとき、Re
quest 状態であればキャッシュブロックの転送を
行いShared状態に遷移し、Hold状態であれば
、Dirty 状態に遷移する。Dirty 状態に遷
移するのは、Hold状態では他のプロセッサがそのキ
ャッシュブロックにアクセスすることができないので他
のプロセッサの読み書きを可能にするために通常のDi
rty 状態にする必要があるからである。
【0024】あるプロセッサが書き込みを行う時に、自
分のキャッシュメモリがミスヒットして他のプロセッサ
がそのキャッシュブロックを保持している場合、そのキ
ャッシュブロックを転送してもらった後、書き換え等を
行う場合、他のプロセッサが持っている同一内容のキャ
ッシュブロックを無効化する必要がある。並列キャッシ
ュ・システムではこのキャッシュブロック要求と無効化
を同時に行うが、キャッシュの状態としてReques
t &InValid 状態を1つ増やし、この場合に
キャッシュブロックの解放を行い他のプロセッサがアク
セス可能とする時にRequest &InValid
 状態から、InValid 状態に遷移させればよい
。また、上記の場合、キャッシュブロックの解放は、連
続領域におけるキャッシュブロックの境界への書き込み
によって行なわれるが、解放する手段としてCPU1に
解放命令を用意してもよい。
【0025】次に第2実施例を図2を用いて説明する。 本実施例は、第1実施例に対し連続書き込み領域のアド
レスの設定をするレジスタ9と、この設定したアドレス
とCPU1が書き込みを行うアドレスの上位何ビットか
が一致するかを比較して検出する比較器10を設けたも
のである。このようにすることにより、CPU1がWr
ite &Hold命令を持つ代わりに、Write 
命令のアドレスを、レジスタ9に設定したアドレスと比
較することでWrite &Hold命令を持つ場合と
同様にキャッシュのステータスを制御する。
【0026】以上により、連続した領域に書き込みを行
う場合には、Hold状態を設定し、その状態にあるキ
ャッシュブロックを他のプロセッサが要求してもそれに
応じて転送を行なわず、ブロックの境界に書き込んだと
きHold状態を解除する。つまりブロック全体を更新
するまで転送を行なわず、更新後一括して転送するので
共有バスの負荷を低減することができる。
【0027】
【発明の効果】以上の説明から明らかなように、本発明
によれば共有データを複数のプロセッサで同時にアクセ
スした場合次の効果を有する。■  連続領域に書き込
みを行っているプロセッサのキャッシュブロックは、他
のプロセッサによって横取りされないため、転送回数が
大幅に削減でき、処理を高速化できる。■  転送回数
が削減されるため、バスのトラフィックが減少しシステ
ム性能が向上する。■  連続的なデータを供給、消費
するような処理において、これを供給と消費する処理に
プロセッサで分割することで、パイプライン的な処理の
実現が容易となる。
【図面の簡単な説明】
【図1】本発明の第1実施例の構成を示すブロック図で
ある。
【図2】本発明の第2実施例の構成を示すブロック図で
ある。
【図3】マルチプロセッサシステムの構成図である。
【符号の説明】
1  CPU 2  タグ 3  ステータス 4  アドレスバス 5,10  比較器 6  ブロック解放判定回路 7  他プロセッサの要求判定回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  それぞれキャッシュメモリを有する複
    数のプロセッサが主記憶を共有し、ライトバック方式に
    より主記憶を更新する並列キャッシュメモリの制御方式
    において、あるキャッシュメモリに書き込みを行う際、
    所定の書き込み位置まで書き込み後、他のキャッシュメ
    モリに転送するようにしたことを特徴とする並列キャッ
    シュメモリの制御方式。
  2. 【請求項2】  あるキャッシュメモリへ書き込み中は
    他のキャッシュメモリへの転送を保留する書込および保
    留命令を設け、所定位置まで書き込んだことを検出後、
    前記書込みおよび保留命を解放するようにしたことを特
    徴とする請求項1記載の並列キャッシュメモリの制御方
    式。
  3. 【請求項3】  あるキャッシュメモリへ書き込む連続
    領域をあらかじめ指定し、その連続領域への書き込み終
    了後、他のキャッシュメモリへ転送するようにしたこと
    を特徴とする請求項1記載の並列キャッシュメモリの制
    御方式。
JP3120110A 1991-05-24 1991-05-24 並列キャッシュメモリの制御方式 Withdrawn JPH04347750A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3120110A JPH04347750A (ja) 1991-05-24 1991-05-24 並列キャッシュメモリの制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3120110A JPH04347750A (ja) 1991-05-24 1991-05-24 並列キャッシュメモリの制御方式

Publications (1)

Publication Number Publication Date
JPH04347750A true JPH04347750A (ja) 1992-12-02

Family

ID=14778186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3120110A Withdrawn JPH04347750A (ja) 1991-05-24 1991-05-24 並列キャッシュメモリの制御方式

Country Status (1)

Country Link
JP (1) JPH04347750A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793220A (ja) * 1993-09-20 1995-04-07 Agency Of Ind Science & Technol 仮想記憶管理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793220A (ja) * 1993-09-20 1995-04-07 Agency Of Ind Science & Technol 仮想記憶管理方式

Similar Documents

Publication Publication Date Title
EP0777184B1 (en) Cache coherency method and system
TWI432963B (zh) 加速器之低成本快取一致
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5148533A (en) Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US6519685B1 (en) Cache states for multiprocessor cache coherency protocols
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
EP0301354A2 (en) Cache consistency protocol for multiprocessor system
US8015364B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5987544A (en) System interface protocol with optional module cache
JP2000330965A (ja) マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
WO1997004392A1 (en) Shared cache memory device
US6021466A (en) Transferring data between caches in a multiple processor environment
JPH04347750A (ja) 並列キャッシュメモリの制御方式
JPH06110785A (ja) キャッシュメモリ同期方式
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width
JPH0962580A (ja) マルチプロセッサ装置
JPH0744459A (ja) キャッシュ制御方法およびキャッシュ制御装置
JP3887036B2 (ja) コンピュータシステムおよびそのプロセッサの外部キャッシュに記憶したデータブロックを無効化する方法
JP3782178B2 (ja) 情報処理装置
KR0145454B1 (ko) 분산된 공유 메모리를 갖는 다중 프로세서
JP2625351B2 (ja) キャッシュメモリ同期方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980806