JPH02228761A - メモリ制御装置 - Google Patents

メモリ制御装置

Info

Publication number
JPH02228761A
JPH02228761A JP1050387A JP5038789A JPH02228761A JP H02228761 A JPH02228761 A JP H02228761A JP 1050387 A JP1050387 A JP 1050387A JP 5038789 A JP5038789 A JP 5038789A JP H02228761 A JPH02228761 A JP H02228761A
Authority
JP
Japan
Prior art keywords
cache
data
cpu
shared
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
Application number
JP1050387A
Other languages
English (en)
Inventor
Yushi Fukuchi
雄史 福地
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1050387A priority Critical patent/JPH02228761A/ja
Publication of JPH02228761A publication Critical patent/JPH02228761A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明け、マルチプロセッサシステムにおいて並列処
理を行う時に、高速にメモリアクセスを行うメモリ制旬
装置に関するものである。
〔従来の技術〕
第2図は例えば“32ビツトマイクロプロセツサの全容
″(日経マグロウヒル(株)、昭和61年12月10日
発行)に示された従来のストアイソ方式により、キャッ
シュの内容の更新と主記憶の更新を行うシステムの構成
図であり9図において、  (Ia)、(11))はそ
れぞれCPUを示し+  (2!I)*(2b)はCP
U内のCPUキャッジ:L、  (5a)。
(xb)はそれぞれCPUキャッシュ(2う)、(21
))内にあるデータのアドレス情報を持つディレクトリ
、  (4!l) 、 (4b)はそれぞれc p t
y (as) 、 (Ib)内の命令実行装置、f5)
は上記tm装青、(6)はシステム割判装置、(7)は
(ga) 、 (3b)  と同じ内容を持つディレク
トリ、  (8g)、(8b)  はCP U (15
1) 、 (Ib)に取り込むデータに関するアドレス
情報ヲcpty(1!l)、 (+1))  と命令実
行装置/(む)、(41)) の間で転送するアドレス
バス、(9)はアドレスバス(8a)(8b)より入手
し九アドレス情報がディレクトリ(7)内に存在するか
どうか判定するアドレスサーチ回路、(10う)、 (
10b) 、 (IOc)はCPUキャッシュ(29)
、(2b)  主記憶(5)の間でデータ及び、アドレ
スを転送するアドレス・データバス、cnRアト°レス
・データバス(1oa) 、 (lOb) 、 (In
c)の制(2)を行うバス制御回路、 I′[’aはア
ドレスサーチ回路(9)トバス制@回路αnの背の制@
信号線、03はフェッチするデータのアドレス情報をバ
ス制御回路αBへ送るアドレスバスである。
つぎに動作について説明するっ ここでは0PU1(la)の動作を中心に、  0PU
I(15)内の命令実行装置(4a)がデータを読み出
しにいくとき、書き込みにくい時に分けて説明する。
まず、データの読み出しをする時は、  C!PU1(
1!I)  がディレクトリ(3つ)をサーチすること
によりキャッシュ(2s)に必要なデータが存在するか
確認する。存在すれば命令実行袋+1(49)  はキ
ャッシュ(2!l) からデータを読み出す。存在しな
い時はアドレスバス(8!l)  を1更用してそのデ
ータに関するアドレス情報をシステム割判装置(6)に
送る。システム割判装置(6)は送られてきたアドレス
情報と同一のものがディレクトリ(7)内に存在するか
どうかアドレスサーチ回路(9)を用いてサーチする。
サーチの結果、同一のものが存在しない時はパス制御信
号線rizによりバス制@回路II9に対して主記憶W
Tf5+からデータをフェッチするように指示スる。フ
ェッチするデータのアドレス情報はアドレスバスTI3
によりバス制@回路+IIIK渡す、バス艶1@何路α
nuデータバス(102り、 (10c)  を用いて
主記憶装置(5)からCP U (1!I)  にデー
タを転送する。アドレスサーチ回路(9)でのサーチの
結果、ディレクトリ(7)内に同一のアドレスが存在し
乏場合(池のCPUがそのデータを持ってい念場合)は
データバス制佛信号@I′1′3によりバス制@回路α
0に対してc p ry 2 (Ib)  からデータ
をフェッチするように指示する。バス制@回路αflは
データバス(tab)、 (toち)を用いてCPTT
2(11)) からCPU1(1つ)にデータを転送す
る。フェッチするデータのアドレス情報はアドレスバス
a3によりバス制[有]回路aOに渡す。
つぎに、データの書き込みをする時は、  cpal(
1!l)  がディレクトリ(3う)をサーチするこ七
によりキャッシュ(2う)に必要なデータが存在するか
確認する。それと同時にアドレスバス(8!I)  を
使用してそのデータに関するアドレス情報をシステム情
匈装賃(6)に送り、システム装伺装電(6)は送られ
てきたアドレス情報き同一のものがディレクトリ(7)
内に存在するかどうかアドレスサーチ回路9)を用いて
す、−チする。キャッシュ(29) 内に必要なデータ
が存在し、池のCPUが同じキャシュブロックを持って
いない場合は命令実行装置(49)はキャッシュ(2!
l)  にそのままデータを書き込・む。
キャッシュ(2g)内に必要なデータが存在し、他のC
PUが同じキャッシュブロックを持ってい之場合は、池
のCP U2 (lb)  のキャッシュブロックを無
効化してから、命令実行袋・凌(4a) Fiキャッシ
ュ(29)にデータをip込む、$ヤッシュ(25)に
デー4を書き込む、キャッシュ(2う)内に必安なデー
タが存在せず、他のCPUも同じキャッシュブロックを
持っていない場合は、バス制御信号線13によりパス制
@回路αυに対して主記憶装’f +5)からデータを
フェッチするように指示する。
フェッチするデータのアドレス情報はアドレスバス11
3によりバス制@回路συに嫂すっバス?1ill @
回路αDはデータバス(IOc)、 (10!l)  
を用いて主記憶装[151からCPU(+う)にデータ
を転送し、命令実行装置(4つ)はキャッシュ(25)
にデータを書き込む、キャッシュ(2!l)内に必要な
データが存在せず、他のCPUが同じキャッシュブロッ
クを持ってい九場合はデータバス側倒信号線Uによりバ
ス割判回路[111に対してCPUz(Ib) からデ
ータをフェッチするように指示するっバス制#1回路σ
υはデータバス(IO’b) 、 (+05)を用いて
OP U (Ib)からOP U (1!l)  にデ
ータを転送する。その後他のCP U (lt+)のキ
ャッシュブロックを無効化してから、命令実行装’t(
41)はキャッシュ(2!l)にデータを書き込む。
〔発明が解決しようとする課題〕
従来の9 マルチプロセッサシステムにおけるメモリア
クセス装置は以上のように構成されているので、同じキ
ャッシュブロック内のデータにiffのCPUが続けて
書き通入にいく場合に、キャッシュの無効化とキャッシ
ュへのデータの転送が頻繁に起こることに彦り、実行速
変が低下するという問題点かあつfcつ 例えば、下記1ist  1に示すようなFORTRA
Nのプログラム(Doループによる繰り返し実行)を2
台のcptrで、工の値が2n−+ (1(= n(=
 50 )の時をCPUIが実行し、工の値が2n(1
(=n(=50)の時をC!PU2が実行するようにし
て、並列処理する場合のことを考える。
Do  100  工=  1 、 100A(1)二
B(1)+C(1)文I D(1)二A(ニー1)本S 文 2 foe  C!ONT工NUK 11et  1 例えば文1の配列Aに注目すると、配列の要素はメモリ
の連続番地におかれる之め、配列Aのデータを含むキャ
ッシュブロックにはCPU1(Ia)とcpa2(Ib
)  が交互に書き込みだい(ことになる、この時の動
作を考えて入るさ9例えば。
C!PUI(Is)  が書き込んだキャッシュブロッ
クにCPU2(lb) が書き込みにいく時にはCPU
2のキャッシュ(2t+)  内のそのキャッシュブロ
ックは無効化されているため(cptyzのキャッシュ
(2b)にそのキャッシュブロックがあるトキ)。
CPU 1 (1!l)のキャッシュ(2a)  から
該当するキャッシュブロックを読み出してきて、CPD
Iのキャッシュ(29) 内のキャッシュブロックを無
効化して書き込みを行う、つぎにCPU1(1!l)が
そのキャッシュブロックに書き込みにい(時には同様に
、C!PU1のキャッシュ(2!1)  内のそのキャ
ッシュブロックは無効化されている几め。
CPU2のキャッシュ(2b)から該当するキャッシュ
ブロックを読み吊してきて、C!PU2のキャッシュ(
2!l)  内のキャッシュブロックを無効化して書き
込みを行う、このようにキャッシュブロックの無効化と
転送を操り返すことになり、効率が悪いつ この発明は上記のような問題点を解消する乏めになされ
念もので、マルチプロセッサシステムにおいて、並列処
理を行う時に、同じキャッシュブロックに対して続けて
書き込みにいく待合に、効率の悪いキャッシュブロック
の無効化と転送の繰り返しを押さえ、効率の良いメモリ
アクセスが可能な=]1uljを得ることを目的とする
っ〔課題を解決する九めの手段〕 この発明に係る。マルチプロセッサシステムにおけるメ
モリ制@装置は、各々のcpaがもつCPUキャッシュ
の他に、そのCPUが共有してアクセスできる共有キャ
ッシュを持ち、キャッシュの側倒方式を通常モードと並
列実行モードの2通り設け、キャッシュの制菌方式を変
えるための並列実行モードフラグを設け、プログラムの
中からこの並列実行モードフラグをo n −o f 
f l、てメモリ側倒装置の実行モードを変更できるよ
うにし之ものである。並列実行モードフラグをon−o
ffする命令はコンパイラ等が同じキャッシュブロック
に対して複数のOPUが続けて書き込みにいくような場
合を判定して挿入するか9 プログラマ−が自らプログ
ラム中に挿入するようにする。
〔作用〕
この発明におけるメモリアクセス制@装置l廿。
並列実行モードフラグが立っている場合は、キャッシュ
の割判は並列実行モードで行われるユ並列実行モードで
け各々のCPUけデータアクセス時にCPUキャッシュ
を使わず、共有キャッシュから全てアクセスするように
制鴫する。
ま念この発明におけるメモリアクセス制儒装置は、並列
実行モードフラグが立っている場合は。
キャッシュの制仰は並列実行モードで行われるつ並列実
行モードでは各々のCPUけデータアクセス時に、並列
実行モード内で読み出ししか行われないキャッシュブロ
ックはCPUキャッシュからアクセスし、書き込みが行
われるキャッシュブロックは、共有キャッシュからアク
セスするように制仰するものである。つまり、データの
書き込みにいく時はCPUキャッシュ内にそのデータが
有っても必ず共有キャッシュに書き込みにいく時(この
時自分のCPUキャッシュには書き込みを行わない)、
そのときCPUキャッシュ(自分のCPUキャッシュ及
び池系のCPUキャッシュ)がそのデータを持っていた
時はそのCPUキャッシュ内の該当するキャッシュブロ
ックを無効化するっデータの読入出し時にけCPUキャ
ッシュに求めるデータがあればCPUキャッシュからデ
ータを読み出し、C!PUキャッシュに無くて共有キャ
ッシュにあれば共有キャッシュから読み出し。
CPUキャッシュにも共有キャッシュにも無く。
池のCPUのCPUキャッシュにあればそのCPUのC
PUキャッシュからキャッシュブロックを転送してきて
読み出し、どのキャッシュ中にも必要なデータが無い時
は主記憶から必要なキャッシュブロック%C!PUキャ
ッシュに転送して(共有キャッシュへは転送してもしな
(でも良い)読み出すように制罰するっ 後述の方式は前述の方式の改良であるっ前述の方式だと
並列実行モードでは全てのデータアクセス1CPUキヤ
ツシユを用いず、共有キャッシュのみから行っている九
め、一般に共有キャッシュよりも高速にアクセス可能な
CPUキャッシュが遊んでしまっているっそこで、キャ
ッシュの無効化と転送が行われるのがキャッシュに対し
て書き込みにい(時だけであることに注目し、並列実行
モード中にアクセスされるデータ(キャッシュブロック
)の種類を1)読み出ししか行われないデータ(キャッ
シュブロック)2)書き込みが行われるデータ(書き込
みのみ行われるデータ(キャッシュブロック)及び書き
込みと読み出しの両方が行われるデータ(キャッシュブ
ロック)に分けて考えると、1)の読み出ししか行われ
ないデータはキャッシュブロックの無効化や転送の要因
にはならない之め、CPUキャッシュ内からアクセスす
るようにし、2)の書き込みが行われるデータはキャッ
シュブロックの無効化や転送の要因になる可能性がある
之め共有キャッシュからアクセスするのが望ましい。こ
のように、並列実行モード中では並列実行モードの中で
読み出ししか行われないキャッシュブロックはCPUキ
ャッシュからアクセスし、書き込みが行わわるキャッシ
ュブロックは共有キャッシュからアクセスするようにし
てrl)よりも高速で効率の良いキャッシュ側倒システ
ムを構成できる。
〔発明の実施例〕
以下、この発明の一実施例を図について説明する。
第1図において、  (+!l)、(lb)  はそれ
ぞれCPUを示し、  (29)、(2b) はCPU
キャッシュ、(3ら)。
(3b)はそれぞれCPUキャッシュ(2+) 、 (
2b)内にあるデータのアドレス情報を持つディレクト
リ、(4ち)、(4b)  はそれぞれCP U (I
a)、 (lb)内の命令実行装’N、 f5)は主記
憶装嗜、Iはcpσ(+、) 、 (It+)  で共
有するこおができる共有キャッシュ、口9は共有キャッ
シュ(14内にあるデータのアドレス情報をもつディレ
クトリ、16)はシステム制@装fWI、 I”l)d
ディレクトリ(3a)、 (3b) 、 05と同じ内
容を持つディレクトリ、  (811)、 (8b) 
 けcpu(19>、 (Ib)  にmり込むデータ
に関するアドレス情f’ll ヲCP U (’ lI
) T (’ b )  (!: システム制御g 1
1 ’61の間で転送するアドレスバス、 neは共有
キャッシュ04に橢り込むデータに関するアドレス情報
を共有キャッシュIとシステム制@装置16)の間で転
送するアドレスバス、(9)はアドレスバス(89) 
、 (8b) 。
119より入手しtアドレス情報がデイレクト1月7)
内に存在するかどうか判定するアドレスサーチ回路。
(In!り 、 (+01)) 、 (10c) 、 
(IOd)けCPUキャッシュ(2!l) 、 (2b
) 、共有キャッシュ1.主記憶装?(5)の間でデー
タ及び、アドレスを転送するアドレス会データバス、 
nfliアドレス・データバス(IOa)。
(10b) 、 (IOc) 、 (lod)の制御を
行うバス制@回路。
a3はアドレスサーチ回路(9)とバス制御回路I′1
11O間の制例信号線、 +13はフェッチするデータ
のアドレス情報をバス制御回路αυへ送るアドレスバス
(17g1) 、 (17b)  はCPU内の命令実
行装置(4a)。
(4b)が共有キャツユ・I、及び共有キャッシュのデ
ィレクトリlI49にアクセスするためのアドレス・デ
ータバス、嗜はキャッシュの制御モードを変える並列実
行モードフラグであり9通常のIeはoffであり並列
実行モードの時にはOnになる。
つぎに動作だついて説明する。
この発明におけるキャッシュ制御装置はキャッシュの制
御モードを2通り設け、i#合に応じてモードを変更し
、キャッシュの制御方式を変える。
このモードの設定は、モードを変更する命令を計算機に
もtせ、コンパイラがプログラム中からモードを変更す
べき部分を見付は出してモード変更の命令を挿入するか
、ユーザーが自らプログラム中にモード変更の命令を挿
入することによって行われるっ 並列実行モードフラグがoffの時は発明「1)もf2
)も従来例と同様な動作を行う、並列モードフラグがo
nの時はキャッシュの割判は並列実行モードで行われる
っ並列実行モードでの動作は発明(1)と(2)で制御
方式が違うので別々に説明する。
発明(1) 並列実行モードの時は全てのCPUが全てのデータアク
セスをCPUキャッシュは用いス、共有キャッシュのみ
から行う、CPU1 (Ia)  に注目して読み出し
と書き込みに分けて説明する。
読み出し時は命令実行装置(4う)はディレクトリへ9
をサーチすることにより共有キャッシュIに必要なデー
タが存在するか確認する。存在すれば共有キャッシュI
からデータを読み出す、存在しないときはアドレスバス
aeを用いてそのデータに関するアドレス情報をシステ
ム側倒装纜16)に送る。
システム制御装置(6)け送られてき念アドレス情報と
同一のものがディレクトリ(7)内に存在するかどうか
アドレスサーチ回路19)を用いてサーチする。
サーチの結果、同一のものが存在しない時はバス側倒信
号@azによりバス制御回路i11に対して主記憶装置
(5)からデータをフェッチするように指示するう フェッチするデータのアドレス情報はアドレスバス口1
によりバス制@回路+Il+に嫂す。バス制(2)回路
+nlけデータバス(IOc) 、 (IOd)を用い
て主記憶装置15)から共有キャッシュ■にデータを転
送する。
アドレスサーチ回路(9)でのサーチの結果、デイレク
トIJ f7)内に同一のアドレスが存在し72tfj
+合(CPUキャッシュ(自分のCPUキャッシュ又は
他系のCPUキャッシュ)がそのデータを持ってい九場
合)はデータバス匍1倒信号線+13によりバス制@何
路111に対してC+PUキャッシュ(29)(cpv
キャッシュ(2b))カラデータをフェッチするように
指示する。バス制御回路19はデータバスCIon)、
(言Ob) 、 (+00) 、 (1od)  を用
いてCPUキャッシュから共有キにンシュ14にデータ
を転送する。フェッチするデータのアドレス情報はアド
レスバス03によりバス制@回路[111に渡す。
つぎに、データの書き込みをする?は、共有キャッシュ
I′14のディレクトリ0!9をサーチすることにより
共有キャッシュIに必要なデータが存在するか7?Ma
する。それと同時にアドレスバスf16をイ吏用してそ
のデータに関するアドレス情報をシステム制2@装償(
6)に送り、システム制御卸装置f61は送られてキ几
アドレス情報と同一のものがディレクトリ(7)内に存
在するかどうかアドレスサーチ回路(9)ヲ用いてサー
チする。共有キャッシュα4内に必要なチー41が存在
し、cptrキャッシュ(自分のCPUキャッシュ(2
a) 又は他系のCPUキャッシュ(2b)が同じキャ
ッシュブロックを持っていない場合は命令実行装・従(
4!1)  は共有キャッシュIにその一!まデータを
書き込み、同時にデータバス(Inc)を用いて主記憶
装置(5)にもデータを書き込む、共有キャッシュ+1
4内に必要なデータが存在し。
CPUキャッシュが同じキャッシュブロックヲ持ってた
場合は、そのデータを持っているCPUキャッシュ内の
そのキャッシュブロックを無効化してから、命令実行装
彎(4っけ共有中ヤツシュIにデー4を書き込み、同時
にデータバス(1G(りヲ用いて主記憶装置15)にも
データを書き込む、共有キャッシュ114内に必要なデ
ータが存在せず、他のCPUも同じキャッシュブロック
を持っていない場合け、バス制剤信号@9zによゆバス
匍1@回路[111に対して主記憶装置 :i>からデ
ータをフェッチするように指示する。フェッチするデー
タのアドレスバスはアドレスバス(1りによりパス制旬
回路旧)に渡す、バス割判回路aηはデータバス(IQ
c) 、 (lod)を用いて主記憶装置 15)から
共有キャッシュ114)にデータを転送し、命令実行装
置(411) は共有キャッジ−x−tI4にデータを
案き込み、同情にデータバス(10c)を用いて主記憶
装置で5)にもデータを書肯込む、共有キャッシュ11
41内に必要なデータが存在せ−1”、cptyキャッ
シュが同じキャッシュブロックを持って次場合はデータ
バス制御信号線a2によりバス割判回路19に対してc
 p ty (Ib)  からデータをフェッチするよ
うに指示する。バス制仰回路αDけデータパx (+0
9)、 (fob)、 (IOc)、 (lod)  
を用いてCPUキャッシュ(2う)(21))  から
共有キャッシュにデータを転送する。その後そのキャッ
シュブロックを持っていたCPUキャッシュのそのキャ
ッシュブロックを無効化してから、命令実行装”t(4
1り は共有キャッシュα4にデータを書き込み。
同時にデータバス(10c)を用いて主記憶装置15)
にもデータを書き込む。
この方式を用いて、並列実行モードで前述の1ist 
1  のプログラムを従来例の問題点の説明の例と同様
に4台のCPUで、■の晴が2n−1(1(=n(=5
0)の時をC!PU1が実行し、工の値が2n(1(=
、n (= 50 )α寺をCPU2が実行するように
して、並列処理する場合のことを配列A[対する寒き込
み動作に注目して考えて吃る。
(このループ全体が並列処理モードの範囲さして考える
。) 配列の要素はメモリの連続番地におかれるtめ。
配列Aのデータを含むキャッシュブロックにはCPU1
0ら)とaptyz(lb)  が交互に書き込みにい
くことになる。この時の動作を考えてみると1例えば、
まず雫初にOPU 1 (+a)  が配列Aのデータ
を含むキャッシュブロック(配列Aの一部分のデー41
が含まれている)に書き込みに(く。
書き込みは共有キャッシュIに対して行うっ共有キャッ
シュa4がそのデー4を持っていなければcpTIキャ
ッシュ(2ち)(又は(2b))又は主記憶装・瞠(5
)からそのキャッシュブロックヲ共有−1−ヤツシュI
へ転送する。この時CPtTキャッシュ(2り  (又
R(2b) )  カ2そのキャッシュブロックを持っ
てい九ら、そのキャッシュブロックを無効化してから書
き込む、つぎにそのキャッシュブロックにC!PTT2
(Ib)  が書き込みにいく時にはキャッシュの転送
や無効化をせずに共有キャッシュ114にそのま一!!
書き込みにいける。つぎにそのキャッシュブロックにC
PU1(+り  が書キ込みrい(時にもキャッシュの
転送や無効化をせずに共有キャッシュ(14にそのまま
書き込みにいける。このように同じキャッシュブロック
内のデータに1数のCPUがつづけて書き込みにいくよ
うな場合に従来例のようにキャッシュブロックの無効化
と転送を繰り返す必要がかくなる。
ここで配列Bと配列C及びSに注目してみると。
これらのデータは並列実行モード中で読み出ししか行わ
れていないつつオリこれらのデータへのアクセスはキャ
ッシュブロックの無効化の対象にはならないのだが祷求
項filの方法だとこれらのデータも全て共有キャッシ
ュからアクセスするようにしている。例えば、配列Bの
データfCPTJ1(+9)  が読み出す時はたとえ
共有キャッシュI内にそのデータがなくて、自分のCP
Uキャッシュ(ハ)内にそのデータがあっても自分のC
PUキャッシュ(2!l)カラ共有キャッシュIへソc
oテータを含むキャッシュブロックを転送してから読み
出しにい(こきになってしまう、まt、一般に共有キャ
ッシュよりも高速にアクセス可能なCPUキャッシュを
並列実行モード中に使わないのけ効率が悪い、そこで、
並列実行モード中で読み出ししか行われないキャッシュ
ブロックRCPU−?ヤツシュからアクセスするように
制御するのが発明12)であろう 発明イ2) 並列実行モードの時はデータの書き込みは必ず共有キャ
ッシュに対して行い、読み出しは自分のCPUキャッシ
ュ→共有キャッシュ→他のCPUのCPUキャッシュの
順にデータを捜すように制菌するう OP U (+!
I)  に注目して読み田しと書き込みに分けて説明す
る。
読み出し時は命令実行装[(4!l)  は自らのCP
Uキャッシュ内のディレクトリ(59)  をサーチす
ることによりキャッシュ(2シ)に必要なデータが存在
するか確昭する。存在すればキャッシュからデータを読
み出す。存在しないときけアドレスバス(811)  
を用いてそのデータに関するアドレス情報をシステム制
鴫装置イ6)に送る。シテスム制匍装臂イ5)は送られ
てき之アドレス情報と同一のものがディレクトリ(7)
内に存在するかどうかアドレスサーチ回路(9)を用い
てサーチする。サーチの結果、同一のものが存在しない
時はバス制御信号#a2によりバス制@回路10に吋し
て主記憶装Ri5)からデータをフェッチするように指
示するラフエッチするデータのアドレス情報はアドレス
バス113によりバス制@咽路αIl[渡す、パス制#
回路(1(lはデータパx (loc)、 (10(1
)  を用いて主記憶装[15)から共有キャッシュ1
14にキャッシュブロックを転送する。
アドレスサーチ回路(9)でのサーチの結果、ディレク
トリ(7)内に同一のアドレスが存在しt場合で。
そのデータを共有キャッシュが持っていた場合は命令実
行装’t(49) は共有キャッシュ114から直接デ
ータを読み出す、(自分のCPUキャッシュへはそのデ
ータは読み出さない)共有キャッシュは持っていないが
他のCPUキャッシュがそのデー4を持っている時はデ
ータバス制匍信号wa+13によりバス制@回路ff1
lK対してCPUキャッシュ(2b)からデータをフェ
ッチするように指示する。バス割判回路anはデータバ
ス(IQ!l) 、 (job)  を用いてCPUキ
ャッシュ(2b)  からCPUキャッシュ(2a) 
 にデータを転送するっ(この時、共有キャッシュへは
転送しても良いし、しなくても良い)フェッチするデー
タのアドレス情報はアドレスバスIIりによりバス制#
回路flllI/C渡すつつぎに、データの書き込みを
する時は、共有キャッシュのディレクトリ口9をサーチ
することにより共有キャッシュIに必要なデータが存在
するか確昭する。それと同時にアドレスバスtieを使
用してそのデータに関するアドレス情報をシステム匍1
?@装電76)に送り、システム制蜀装贋/6)は送ら
れてきたアドレス情報と同一のものがデイレクト1月7
)内に存在するかどうかアドレスサーチ回路(9)を用
いてサーチする。共有キャッシュ14内に必要なデータ
が存在し、CPt7キヤツシユ(自分のCPUキャッシ
ュ(2s)又は他系のCPUキャッシュ(2b))が同
じキャッシュブロックを持っていない場合は命令実行装
置(45I) は共有キャッシュ11着にそのままデー
タを書き込み、同時にデータバス(loc)を用いて主
記憶装置(5)にもデータを書き込む。共有キャッシュ
I内に必要なデータが存在し。
CPUキャッシュ(自分のCPUキャッシュ(2!l)
又は他系のcpaルミキャッシュ1))  )が同じキ
ャッシュブロックを持って九楊分け、そのデ Jを持っ
ているCPUキャッシュ((2s) 又R(21))又
けその両方)内のそのキャッシュブロックヲ無効化して
から、命令実行装fl(4!I) は共有キャッシュI
にデータを書き込み、同時にデータバス(+Oc)を用
いて主記憶装置(5)にもデータを書き込む。共有キャ
ッシュI内に必要なデータが存在せf、ft1xのCP
UキャッシュC自分0Cpy−pヤッシュ(2a)  
又は他系のCPUキャッシュ(2b) )も同じキャッ
シュブロックを持っていない場合は。
バス開開信号線13によりバス制′@回路a9に対して
主記1′!装’t 751からデータをフェッチするよ
うに指示するラフエッチするデータのアドレス情報はア
ドレスバスl13によりバス制@司路1111に渡す、
バスff1ll @ ’51路αυけデータバス(10
c) 、 (10d) を用いて主記憶装置1 f5)
から共有キャッシュ−+aにデータを転送し、命令実行
装置(49)は共有キャッシュ114にデータを書き込
み、同時にデータバス(i・Oc)を用いて主記憶装?
tf51にもデータを書き込むっ共有キャッシュα4内
に必要なデータが存在せず、CPUキャッシュ(自分の
CPUキャッシュ(25)又は他系のCPUキャッシュ
(2b)が同じキャッシュブロックを持ってた場合はデ
ータバス制御信号線α2によりバス側倒回路+Illに
対してそのデータを持っているcptyキャッシュから
データをフェッチするように指示する。バス制御回路α
9けデータバス(1051)、 (10(1)を用いて
(C!PU1のOPT?キャッシュ(25)がそのデー
タを持っていた時。
CPU2のCPUキャッシュが持ってい九時は(+01
:+)、 (10d)  を用いる)CPUキャッシュ
(2!I)(OPUIのCPUキャッシュ(2う)がそ
のデータを持っていた時、0PU2のCPT?キャッシ
ュが持つていt時は(2b)から共有キャッシュ114
1にデータを転送する。その後そのキャッシュブロック
を持っていf−c P T7キヤツシユの吏のキャッシ
ュブロックを無効化してから、命令実行装’t(41)
は共有キャッシュα4にデータを書き込み、 同QKデ
ータバス(lQc)を用いて主記憶装装置f51 Kも
データを壽き込むっ この方式を用いて、並列実行モードで前述の1ist 
1  のプログラム従来のものの問題点の説明の例と同
様に2台のCPUで、工のイ直が2n−1(1<=n<
=s O)  の時をCPU 1が実行し、工の値が2
n(1<=n(=50 )の時をcpσ2が実行するよ
うにして、並列処理する場合のことを考えて見ろう 書き込み時の動作は0発明if)の場合と同じであるっ 読み出し時は、並列実行モード中で書き込みが行われる
データは、そのキャッシュブロックに書き込みにいく時
点で共有キャッシュに置かれることになるので、共有キ
ャッシュからアクセスされ。
読み出ししか行われないデータは共有キャッシュ口0に
埼かれることは無いのでCPUキャッシュ(29) 、
 (2b) 内に置かれ、aptrキャッシュ(2!l
)。
(2b)からアクセスされる。つオリ、A、Dけ共有キ
ャッシュ++4)からアクセスされ、  B、  O,
5uCPUキヤツシユ(2a)、 (2b)  からア
クセスされることになる。(九だし、  B、  O,
Sのデータを含ムキャッシュブロックが他のデータも含
み、そのデータに書き込みが行われる場合はそのキャッ
シュブロックは共有キャッシュに賃かれるう )なお、
上記実施例ではCPU数が2つのマルチプロセッサ構成
を示したが、CPU数を3つ以上にしても良く、同様の
システム構成で本発明が提示し九機能を有するこきがで
き・るっ 〔発明の効果〕 以上のように、この発明によれば、同じキャッシュブロ
ック内のデータを複数のCPUがつづけて書き込みにい
くような場合に、キャッシュの制御方式を変えることに
よって、キャッシュブロックの転送と、無効化の操り返
しを避けることができ、高速のデータアクセスが可能に
なる。
【図面の簡単な説明】
第11図はこの発明の一実施例を示す構成図、第2図は
従来のストアイン方式のメモリ制@装置を示しt図であ
る。 閑において、(1う)、C11))  は各C+PU、
  (29)。 (2b) ld各CPUキャッシュ、  (39)、(
3b) は各ブイレフh I)、  (4!l)、 (
4b)  は各命令実行装置。 (5)は主記憶装置、t6)はシステム制#装置、(7
)はディレクトリのコピー、  (8a)、 (8b)
  はアドレスバス、(9)はアドレスサーチ回路、 
 (10+)、(+Ob)。 (10c) 、 (IQa)はアドレス壷データバス、
 allはバスfIiIl@回路、σ2け側倒信号線、
03はアドレスバス。 a4け共有キャツンユ1時は共有キャッシュのディレク
トリ、 IIGは共存キャッシュ用アト°レスバス。 (+711) 、 (17b)  は共有キャッシュ用
アドレス・デーJバス、嗜は並列実行モードフラグであ
る1図中、同一符号は同一ま念は相当部分を示す。 代叩人大岩増雄 第 図 第 図

Claims (2)

    【特許請求の範囲】
  1. (1)各々が内部に専用のCPUキャッシュおよび、そ
    のキャッシュをアクセスするためのキャッシュディレク
    トリをもつ複数のCPUと、それらのCPUによつて共
    有される主記憶装置と、複数のCPUから高速アクセス
    可能な共有キャッシュ及びその共有キャッシュをアクセ
    スするためのキャッシュディレクトリと、各CPUのキ
    ャッシュディレクトリと共有キャッシュディレクトリの
    内容をコピーとして持ち、主記憶装置とキャッシュとの
    間でCPUキャッシュに関してはストアイン方式の、共
    有キャッシュに関してはストアスルー方式の記憶域更新
    を行うシステム制御装置からなるマルチプロセッサシス
    テムにおいて、通常モードと並列実行モードというキャ
    ッシュシステムの制御モードを設け、同じキャッシュブ
    ロックに対して複数のCPUが続けて書き込みにくい時
    にはキャッシュ制御システムを並列実行モードにして、
    各々のCPUはCPUキャッシュを使わず、共有キャッ
    シュのみを使うように制御することを特徴としたメモリ
    制御装置。
  2. (2)請求項1と同様なマルチプロセッサシステムにお
    いて、並列実行モード時は、並列実行モード実行中に読
    み出ししか行われないキャッシュブロック内のデータは
    各々のCPUのCPUキヤツシュからアクセスし、書き
    込みが行われるキャッシュブロック内のデータは共有キ
    ャッシュからアクセスするように制御することを特徴と
    したメモリ制御装置。
JP1050387A 1989-03-02 1989-03-02 メモリ制御装置 Pending JPH02228761A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1050387A JPH02228761A (ja) 1989-03-02 1989-03-02 メモリ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1050387A JPH02228761A (ja) 1989-03-02 1989-03-02 メモリ制御装置

Publications (1)

Publication Number Publication Date
JPH02228761A true JPH02228761A (ja) 1990-09-11

Family

ID=12857460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1050387A Pending JPH02228761A (ja) 1989-03-02 1989-03-02 メモリ制御装置

Country Status (1)

Country Link
JP (1) JPH02228761A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130097602A1 (en) * 2008-12-01 2013-04-18 Vincent Hanquez Systems and methods for facilitating virtualization of a heterogeneous processor pool

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130097602A1 (en) * 2008-12-01 2013-04-18 Vincent Hanquez Systems and methods for facilitating virtualization of a heterogeneous processor pool
US8943512B2 (en) * 2008-12-01 2015-01-27 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool

Similar Documents

Publication Publication Date Title
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
Katz et al. Implementing a cache consistency protocol
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
CA1306312C (en) Write-shared cache circuit for multiprocessor system
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
US6151663A (en) Cluster controller for memory and data cache in a multiple cluster processing system
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US20050021913A1 (en) Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges
US7475190B2 (en) Direct access of cache lock set data without backing memory
EP0358863A2 (en) Load/store with write-intent for write-back caches
JPH03219345A (ja) 多ポートキャッシュメモリ制御装置
KR100293594B1 (ko) 공유메모리로의배타적액세스를실행하는멀티프로세서시스템
EP0616709A1 (en) SEMAPHORUS BYPASS SYSTEM.
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5615167A (en) Method for increasing system bandwidth through an on-chip address lock register
JP4179677B2 (ja) マルチプロセッサ装置
JPH01269142A (ja) 計算機システム
US5701422A (en) Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
EP0555680A1 (en) A method and apparatus for determining instruction execution ordering in a data processing system
JPH07152647A (ja) 共有メモリマルチプロセッサ
JPH02228761A (ja) メモリ制御装置
JPH0511337B2 (ja)
WO1999032976A1 (en) Risc processor with concurrent snooping and instruction execution
US20040177224A1 (en) Local memory with ownership that is transferrable between neighboring processors
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system