JPH0222757A - マルチプロセッサのメモリシステム - Google Patents

マルチプロセッサのメモリシステム

Info

Publication number
JPH0222757A
JPH0222757A JP63171777A JP17177788A JPH0222757A JP H0222757 A JPH0222757 A JP H0222757A JP 63171777 A JP63171777 A JP 63171777A JP 17177788 A JP17177788 A JP 17177788A JP H0222757 A JPH0222757 A JP H0222757A
Authority
JP
Japan
Prior art keywords
bus
memory
shared
system bus
data
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
JP63171777A
Other languages
English (en)
Inventor
Michio Morioka
道雄 森岡
Tadaaki Bando
忠秋 坂東
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63171777A priority Critical patent/JPH0222757A/ja
Publication of JPH0222757A publication Critical patent/JPH0222757A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、複数の演算処理装置により共有される主記憶
装置とその管理手段を含めた。マルチプロセッサシステ
ムのメモリシステムに関するものである。
〔従来の技術〕
最近の計算機システムでは、高信頼化、高性能化の両者
を満たす解として、複数の演算処理装置から成るマルチ
プロセッサシステムの開発が盛んである。マルチプロセ
ッサシステムの構成には、種々のものがあるが、最も容
易なものとして、複数の演算処理装置が1つの主記憶を
共有する共有メモリ型のマルチプロセッサ構成が主流と
なっている。
共有メモリ型マルチプロセッサシステムでは、各演算処
理装置が、1つの主記憶をアクセスするため、何らかの
対策がないと主記憶へのアクセスが競合し、各演算処理
装置が十分な性能を発揮できない。このため、一般に各
演算処理装置毎に共有メモリの一部を保持するキャッシ
ュメモリが設けられる。キャッシュメモリは、高速小容
量のローカルメモリであるが、メモリアクセスの局所性
から十分なヒツト率が得られ、共有メモリへのアクセス
負荷を軽減すると供に、メモリアクセス時間の大幅な削
減を可能とする。
このように、各演算処理装置にキャッシュメモリを付加
した分散キャッシュメモリ方式は、共有メモリ型マルチ
プロセッサシステムでは常套手段であるが、この分散キ
ャッシュメモリ方式における重要な問題として、各キャ
ッシュメモリ内容の一致保証問題がある。例えば、共有
メモリ上のあるデータが、AとBの演算処理装置のキャ
ッシュメモリ上に存在している場合を考える。演算処理
装置ifAが共有されているデータを更新し、その事実
を演算処理袋[Bのキャッシュメモリに報告しなかった
場合、演算処理装置Bがそのデータに対してアクセスす
ると、自キャッシュメモリがヒツトし、更新される前の
誤ったデータが読込まれる。
この問題を解決するためには、各演算処理装置は、デー
タを更新した事実を他の演算処理装置毎てに報告しなけ
ればならない、各演算処理装置は、データ更新報告を監
視する手段を有し1分散キャッシュメモリの一致保証を
管理する必要がある。
分散キャッシュメモリの一致保証プロトコルとして、最
も簡単な方式は、ストアスル一方式のキャッシュメモリ
を用いることによって実現される。
即ち、演算処理装置からのライトアクセスは、該当する
キャッシュメモリへ書込まれると共に、共有メモリへも
同時に書込まれる。この時、共有メモリへ書込みは他の
全ての演算処理装置に報告される。他の演算処理装置は
、共有メモリの更新を検出すると、そのアドレスに対応
するデータが自キャッシュメモリ内に存在するかどうか
を検査する。対応するデータが存在すれば、それを含む
ブロックを無効化する。このストアスル一方式は、例え
ばシーケント(Sequent)社のバランス(Ba−
11ance) 8000シリーズのマルチプロセッサ
で採用されている。ストアスル一方式を基本とした一致
保証方式は、制御は容易であるが、ライトアクセスの度
に共有メモリへのアクセスが伴うため、共有メモリバス
への負荷が比較的高い。
ライトアクセスによる共有メモリバス負荷を軽減する手
段として、ストアスワップ方式のキャッシュメモリを基
本とした一致保証プロトコルがある。これには種々のプ
ロトコルが提案されているが、ここではグツドマン(G
oodman)によって提案された1例を示す。
キャッシュメモリ内のブロックには、以下の3状態があ
りうる。即ち。
(L) 5hared・・・共有メモリの内容と一致し
ており且つ、複数のキャッシュメモリに共有されている
(2) Exclusj、ve・・・主メモリの内容と
一致しており、且つ唯一のキャッシュメモリ内に存在す
る。
(3) Owned・・・主メモリの内容と一致してお
らず且つ、唯一のキャッシュメモリ内に存在する。
次に、演算処理装置が各状態のブロックにアクセスする
場合の処理を筒部に述べる。
(i)リードヒツト ブロックの状態に関わらず、データを読出す。
(ii)リードミスヒツト 共有メモリにブロック転送を要求する。この時、他のキ
ャッシュメモリに転送中のブロックが存在するかどうか
検査し、存在すれば、5haredブロツクとして、又
、存在しなければExclusiveブロックとして、
自キャッシュメモリ内に書込む。その後、中断していた
リードアクセスを再開する。
(正)ライトヒツト 5haredブロツクに対する書込みでは、当該キャッ
シュメモリに書込むとともに、他のキャッシュメモリに
共有バスを通じてデータの変更を報告する。その後、ブ
ロックの状態はOwnedとなる。又、Exclusi
ve、 Ownedブロックに対する書込では、他のキ
ャッシュメモリに報告する義務はない。
(i−)ライトミスヒツト 共有メモリにブロック転送を要求する。この詩仙のキャ
ッシュメモリに転送中のブロックが存在するかどうか検
査し、存在すれば5haredブロツクとして、又、存
在しなければ、Exclusi、veブロックとして、
自キャッシュメモリ内に書込む。その後、中断していた
ライトアクセスを再開する。
又、各演算処理装置は、共有メモリバス上のトランザク
ションを監視し、以下の処理を行なう。
(i)共有メモリバス上にブロック転送トランザクショ
ンを検出した場合。
対応するブロックが自キャッシュメモリ内に存在し、且
つブロックの状態がO%+nedであれば、共有メモリ
バス上のブロック転送要求をアボートし、自キャッシュ
内のO%+nedブロックを共有メモリへライトバック
して当該ブロックをExclusiveとする。その後
、中断されていたブロック転送要求が再開される。又、
対応するブロックの状態が5haredあるいはExc
lusiveであった場合、共有バスを通じて、該当ブ
ロックが自キャッシュメモリ内に存在することを報告す
る。その後、ブロックの状態は5haredとなる。
(n)共有バス上にデータ変更報告を検出した場合。
対応するブロックが自キャッシュメモリ内に存在すれば
、そのブロックを無効化する。
以上のプロトコルにより、ストアスワップ方式を採用し
た場合のキャッシュメモリの一致が保証できる。ストア
スワップ方式における分散キャッシュメモリの一致保証
方式は、ここで示した方式の他、文献ビー スウイージ
ー アンド エージニー スミス(P、Sweazey
 and A、J、Sm1th)、 rアクラス オブ
 コンパチブル キャッシュ コンシスチンシイ プロ
トコルス アンド ゼア サポート バイ ザ アイイ
ーイーイー ヒユーチャーバスJ  (” A C1a
ss of Compatibl、e CacheCo
nsistency Protocols and t
heir 5upport、 bythe IEEE 
Futurebus、 ”)、プロシーディング、サー
ティーンス アニュアル インタナショナルシンポジュ
ーム オン コンピューター アーキテクチャ (Pr
oc、 13th Ann、 Int、 Symp、 
on Co−mp、 Arch、 )、 pp414−
423.1986.6に詳しく示されている。
次に、共有メモリ型マルチプロセッサシステムにおける
従来の共有メモリバス制御方式について述べる。以下、
共有メモリバスをシステムバスと称す。前述した分散キ
ャッシュメモリ方式を採用した場合、システムバス上の
アクセスは、以下の3種類である。
(1)共有メモリから、各キャッシュメモリへのブロッ
ク転送。
(2)キャッシュメモリ内の変更されたブロックを共有
メモリへ転送するコピーバック処理(3)他キャッシュ
メモリ内のデータの無効化を要求するブロードキャスト
処理 各プロセッサからのシステムバスアクセスは、特公昭6
1−233858に示される様に、システムバスを時分
割に利用する。即ち、1つのプロセッサが共有メモリを
アクセスする時に、共有スモリへの起動から、データ転
送の終了までシステムバスに占有するのではなく、起動
時、及びデータ転送時のみシステムバスを使用する。こ
れによって複数プロセッサからの共有メモリアクセスを
、高いスループットで処理することが可能となる。
〔発明が解決しようとする課題〕
上記従来技術は、複数のプロセッサが1つのシステムバ
スを共用するため、アクセス競合は避けられない。更に
、今後、単体プロセッサの性能向上に伴って、メモリア
クセス頻度が増大する傾向にある。又、プロセッサ数も
増加する傾向にあり。
システムバスの競合がネックとなって、十分な台数効果
が得られないという問題がある。
一方、システムバスの競合を避けるため、各プロセッサ
ごとに専用バスを設ける方法もある。これは主に大型計
算機にて採用される。しかし、本方式では、プロセッサ
台数の増加にともなってハード量の増大が著しい。
本発明の第1の目的は、複数の演算処理装置からのアク
セスが、システムバスで競合することに起因する性能低
下を解消し、少量のハードウェアで高いスループットを
有するマルチプロセッサのメモリシステムを提供するこ
とにある。
本発明の第2の目的は、命令フェッチに伴うシステムバ
スへのアクセスと、オペランドフェッチに伴うシステム
バスへのアクセスとが競合することに起因する性能低下
を解消し、少量のハードウェアで高いメモリスルーブツ
トを有するマルチプロセッサのメモリシステムを提供す
ることにある。
〔課題を解決するための手段〕
上記第1の目的は、システムバスを、複数のアドレスバ
ス及び複数のデータバスで構成し、複数バスの利用状況
を管理してシステムバスの使用許可を与えるシステムバ
ス制御装置を設ける6更に、各演算処理装置には、前記
複数のバスを選択して使用する手段を設けることによっ
て達成される。
又、上記第2の目的は、システムバスを、命令フェッチ
に関連するデータ転送に用いられる命令専用共有バスと
、オペランドの読出し、書込みに関連するデータ転送に
用いられるオペランド専用共有バスによって構成する。
更に、命令専用共有バスの制御を行なう命令共有バス制
御装置と、オペランド専用共有バスの制御を行なうオペ
ランド共有バス制御装置とを設けることによって達成さ
れる。
〔作用〕
本発明において、演算処理装置のキャッシュメモリでミ
スヒツトが発生した場合、システムバス制御装置に対し
て、バス占有要求を行なう。システムバス制御装置は、
システムバスの利用状況を管理しており、複数バスの内
、使用されていないチャネルを、バス占有要求元に与え
る。これによって、複数の演算処理装置がシステムバス
を使用する場合でも、競合が発生せず、高いメモリスル
ープットを実現できる。
又、本発明において、演算処理装置の命令読出しが、命
令専用キャッシュメモリでミスヒツトした場合、命令共
有バス制御装置に要求して、命令専用共有バスを占有し
、データ転送を行なう。
方、演算処理装置のオペランド読出し、書込みが、オペ
ランド専用キャッシュメモリでミスヒツトした場合、オ
ペランド共有バス制御装置に要求して、オペランド専用
共有バスを占有し、データ転送を行なう。これらの動作
は独立に行なわれ、これによって、高いメモリスルーブ
ツトを実現できる。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。第1
図は、本発明が適用されるデータ処理装置の一例を示し
ている。同図において、演算処理装置(PE) 100
.200は、システムバス1000を介して共有メモリ
制御装置(MSC)800.および共有メモリ(MS)
900を共有する。メモリ管理装置(MMU) 300
.400は、キャッシュメモリおよびアドレス変換装置
を有し、演算処理装置100゜200からのメモリアク
セス要求を受け付け、これを処理する。もし、キャッシ
ュメモリ内に所望のデータが存在しない場合は、システ
ムバス1000を介して、共有メモリ900より所望の
データを得る。
システムバス監視袋[(B M) 500.600は、
システムバス1000に接続され、システムバスのアド
レスバス1100及びアドレスバス1200を監視し、
もし必要であるならば、メモリ管理装置300.400
内のキャッシュデータを変更あるいは無効化する。シス
テムバス1000は、2本のアト1ノスバス1100゜
1200及び2本のデータバス1300.1400から
成る。
アドレスバスの幅は32ビツトであり、データバスの幅
は32ビツトあるいは64ビツトが可能である。
アドレスバス1100とデータバス1300の組をチャ
ネルAと称し、アドレスバス1200とデータバス14
00の組をチャネルBと称する。これら複数のバスは、
システムバス制御表[700によって制御される。
共有メモリ制御表!1800は、システムバス1000
に接続され、各演算処理袋[100,200からの共有
メモリアクセス要求を受け取り、これをFIFOバッフ
ァ(ファーストインファーストアウトバッファの略、キ
ューとも呼ばれる)に蓄積し、到着順に、共有メモリ9
00へのアクセスを行なう、メモリ管理装置300.4
00は、共有メモリ900へのアクセスが必要となった
時、システムバス制御装置700に対して、バス占有要
求を行なう、システムバス制御装置は、システムバスの
2本のチャネルの内、空いている方をバス占有要求元に
報告し、使用を許可する。
次に、第2図を用いて、システムバスの占有制御方式に
ついて説明を加える。システムバス制御装置700は、
各演算処理装置とインタフェース信号線701〜706
によって接続される。各信号線の接続形態及び意味を以
下に示す。
(1) BUSREQ 701 本信号は、各演算処理装置のメモリ管理装置300、4
00及び、共有メモリ制御装置1800からのシステム
バス占有要求であり、個別の信号として接続される。即
ち、本信号は、メモリ管理装置300又は400におい
てキャッシュミスヒツトが発生し、共有メモリとの間で
ブロック転送が必要となった時(変更されたブロックの
コピーパック処理も含む)、あるいは5harad状態
のブロックに書込みが発生し、ブロードキャス1−が必
要となった時にアサートされる。又、共有メモリ制御装
置800が要求ブロックを要求元へ転送する場合も、本
信号がアサートされる。
(2)CPYBKREQ 702 本信号は、バス監視装置500.600からのシステム
バス占有要求であり、個別の信号として接続される。本
信号は、バス監視装置500.600がシステムバス上
のブロック転送要求を検出し、自キャッシュメモリ内を
検索した結果、最新のデータが存在し、これを共有メモ
リヘコピーバックする時に7サートされる。
(3)BUSACK  703 共有バス制御装置700から、各演算処理装置のメモリ
管理装置300.400、及び共有メモリ制御装置80
0への共有バス使用許可信号であり、各装置に対して個
別に接続される。本信号は、CHN 。
信号705と共に用いられ、各装置に対して、使用可能
なチャネルを知らせる。
(4) CPYBKAC:K 704 共有バス制御装置700から、各演算処理装置のバス監
視装置に対する共有バス使用許可信号であり、各装置に
対して個別に接続される。本信号は、CHNo信号70
5と共に用いられ、各装置に対して、使用可能なチャネ
ルを知らせる。
(5) CHNo 705 本信号は、BUSACK703.CPYBKACK70
4と共に用いられ、使用可能なチャネル番号を示す。
(6) BUSBSY 706 各演算処理装置のメモリ管理装置300.400、バス
監視装置500,600、及び共有メモリ制御装置80
0からのバス使用中であることを示す信号であり、各チ
ャネル毎に、バス構成でシステムバス制御装置に接続さ
れる。
第2図のシステムバス割当て論理710は、各演算処理
装置からのシステムバス占有要求701.702と、シ
ステムバスの各チャネルの使用状況を示すバス使用中信
号706を入力として優先判定を行ない、システムバス
要求元に適切なチャネルを割当てる。第3図に、システ
ムバス割当て論理710の状態遷移を示した。この例で
は、システムバスが2つのチャネルから成る場合を示し
た。システムバスは、第3図に示すようにA、Bチャネ
ルの使用状態に応じて4つの状態711〜714を取り
つる。
状態遷移の原因としては、システムバス占有要求、およ
び各チャネルの使用終了報告がある。
第4図は、システムバスが2つのチャネルA。
Bから成る場合を例にとって、バス動作を示した。
期間t1では、演算処理装置PEOのブロック転送起動
と、演算処理装置PEIのブロードキャスト処理が同時
に実行されている。期間t2では、演算処理装置PE3
のブロック転送起動と、演算処理装置PE2のブロック
転送起動が同時に実行されている。チャネルAの期間t
3〜t6は、期rJjt1に起動された演算処理装置P
EOのブロック転送のため占められている。このとき、
チャネルBでは、期間t2にチャネルAを使用して起動
された演算処理装置PE3のブロック転送が並行して実
行され、演算処理装置!PEOのブロック転送終了を待
つ必要はない。
次に、本実施例に適用されるメモリ管理装置300およ
びシステムバス監視装置500について、第5図を用い
て詳細に説明する。メモリ管理装置300は、演算処理
装置からの命令フェッチを処理する機構として、命令用
アドレス変換バッファ(I−TLB)310、命令専用
キャッシュデータ部(I−CACHE)3I2と、この
データに対応する物理アドレスタグを保持する命令用タ
グメモリ(I−D i R) 311.および命令用キ
ャッシュメモリの制御を行なう命令キャッシュ制御装置
(I−CONT)314から成る。また、演算処理装置
からのオペランドフェッチを処理する機構として、オペ
ランド用アドレス変換バッファ(D−TLB)320、
オペランドキャッシュデータ部(D−CACHE)32
4、およびこのデータに対応する物理アドレスタグを保
持するオペランド用タグメモリ(D−D i R) 3
21、キャッシュ内の各ブロックの有効性を示すVビッ
ト322、各ブロックの状態を示すステータス部(ST
AT)323、およびオペランド用キャッシュ制御装置
(D−CONT)326から成るいここで、ステータス
部323は2ビット幅で、ブロックの状態を5hare
d、 Exc−1usive、 0vnedの3状態に
区別する。
オペランド用キャッシュメモリは、データの更新がある
ため、他の演算処理装置内のキャッシュメモリとのデー
タの一致を保証する必要がある。
このため命令用キャッシュメモリよりもかなり制御が複
雑になる。そこで、オペランドフェッチに対するアクセ
ス処理を、第5図を用いて以下に示す。
(1)  リードヒツト時 演算処理装置の送出するオペランドの論理アドレスを、
オペランド用アドレス変換バッファ320により、物理
アドレスに変換する。この物理アドレスの下位は、イン
デクスアドレスとして、オペランド用タグメモリ321
.データ部324をアクセスする。オペランド用タグメ
モリ321より読出されたタグ情報は、前記物理アドレ
スの上位と、比較器325によって比較され、該当デー
タの有無が検証される。検証の結果、要求データが存在
すれば該当データは、オペランドリードデータ305と
して、演算処理装置に供給される。
(2)リードミスヒツト時 キャッシュメモリの一致検証の動作は前述と同様である
。一致検証の結果、もし、ミスヒツトであれば、オペラ
ンド用アドレス変換バッファ320より送出された物理
アドレスは、セレクタ331を経て、アドレスレジスタ
330にセットされる。この時、同時にブロックのステ
ータス情報323の内容がキャッシュ制御装置326に
入力され、リプレースすべきブロックの状態がチエツク
される。その結果0νned状態であれば、コピーパッ
クのために、リプレースブロックの物理アドレスがコピ
ーパックアドレスレジスタ337にセットされる。
今、リプレース処理が不要な場合をまず説明すると、キ
ャッシュ制御装置326は、システムバス制御装置70
0に対してバス占有要求701をアサートする・その後
、システムバス制御装置700より、バス使用許可信号
703と、使用可能チャネル番号705を受け、その情
報に従って、アドレスレジスタ330の内容を、アドレ
スバス1100又は、アドレスバス1200に送出し、
共有メモリ900に対して、ブロック転送を要求する。
この要求に対し、他のキャッシュメモリ内に該当データ
が存在し、かつその状態がOwnedであることを示す
報告があった場合、その要求を中断し、共有メモリが最
新情報に更新された後リトライする。又、他のキャッシ
ュメモリ内に該当データが存在し、かつその状態が5h
aredかExclusiveであった場合、これを記
憶しておき、ブロック転送終了後、ブロックの状態を5
haredとする。他のキャッシュメモリ内に該当デー
タが存在しなかった場合は、ブロック転送終了後、ブロ
ックの状態を1Exclusiveとする。共有メモリ
よりブロックデータがデータバスA(B)経由で転送さ
れてきた場合、データレジスタ334(333)に−旦
データを取込む、そして、セレクタ332、328を経
て、オペランド用キャシュデータ部324に書込む。
次にブロック転送に先立って、リプレースブロックのコ
ピーパックが必要な場合には、キャッシュ制御装置32
6は、システムバスの2つのチャネルのどちらかを占有
し、占有したチャネルのアドレスバス(1100又は、
1200)に対してコピーパックアドレスレジスタ33
7の内容を送出し、共有メモリにコピーパック要求を発
効する。該要求が受付けられると、オペランド用キャッ
シュデー5部324内のリプレースブロックを、共有メ
モリライトデータレジスタ336を経て、占有したチャ
ネルのデータバス(1300又は、1400) &己送
出し、共有メモリへ転送する。コピーパック処理が終了
すると、前述と同じ手順で要求データのブロック転送を
行なう。
(3)ライトヒツト キャッシュメモリの一致検証の動作は、リードヒツト時
と同様である。この時該当ブロックの状態を示すステー
タス部323がキャッシュ制御装置326に入力される
。その結果、キャツシュヒツトで、且つ該当ブロックの
状態がOwned又はIExclu−siveである場
合は、オペランドライトデータ304がセレクタ328
で選択され、キャッシュデータ部;324に書込まれる
。一方、該ブロックの状態が5haredであれば、ラ
イトデータ304は、キャシュデータ部324に書込ま
れるとともに、セレタク335を経て、ライトデータレ
ジスタ336にセットされる。この時、物理アドレスも
セレクタ327.331を経て、アドレスレジスタ33
0にセットされる。その後、キャッシュ制御装置326
は、システムバス制御装置700に対してバス占有要求
をアサートし。
使用を許可されたチャネルに対して、アドレスレジスタ
330、及びライトデータレジスタ336の内容を送出
し、ブロードキャスト要求によって、他キャッシュに変
更あるいは無効化要求を発効する。
(4)ライトミスヒツト時 キャシュミスヒツトに伴うブロック転送手順は。
リードミスヒツト時と同様になる。ブロック転送終了後
のライト手順は、ライトヒツト時の処理と同様になる。
次にシステムバス監視装置500について第5図を用い
て説明する。システムバス監視装置500は、システム
バスの各チャネルより、アドレス及びデータを取込み、
該アドレスに対応するデータが。
オペランド用キャッシュメモリ324に存在するかどう
かを検出し、必要であればこれを更新、あるいは無効化
するものである。監視用タグメモリ501、及びその有
効性を示す有効ビット502は、オペランド用タグメモ
リ321.有効ビット322のコピーであり、オペラン
ド用タグメモリ321とは独立にアクセス可能である。
監視制御装置504は、システムバスからの情報の取込
み及び、監視用タグメモリ501のアクセスを制御する
。以下、システムバス監視装置500の動作を示す。
(1)ブロードキャスト検出時 システムバス上にブロードキャスト要求を検出した場合
、チャネルに応じて、アドレスをそれぞれ監視アドレス
レジスタ506.507に、データをそれぞれ監視デー
タレジスタ509.510に取込む。−般にブロードキ
ャスト要求は無効化要求であるため、データは不要であ
る。しかし、特殊な制御方式としては、オペレーティン
グシステムのデータに関してのみ、ブロードキャストに
よって、他キャッシュ内の該当データを更新する方式も
可能である。監視制御装置504は、監視アドレスレジ
スタ506.507のどちらかをセレクタ505で選択
し、監視用タグメモリ501をアクセスし、比較器50
3によって、該当データの一致検証を行なう。もし該当
データが存在する場合、監視制御装置504は、オペラ
ンド用キャッシュ制御装w326に割込をかけ、セレク
タ327を介してセレクタ505からの監視アドレスに
よって、キャッシュタグメモリ321の該当する有効ビ
ット322をクリアする。データの更新を行なう場合に
は、監視データレジスタ509゜510のどちらかをセ
レクタ508で選択し、セレクタ328を経て、キャッ
シュデータ部324に書込む。
(2)ブロック転送起動検出時 システムバス上にブロック転送起動を検出した場合、チ
ャネルに応じて、アドレスを、監視アドレスレジスタ5
06または507に取込む。その後、監視用タグメモリ
501をアクセスし、該当データの一致検証を行なう。
もし該当データが存在した場合ブロック転送起動元にデ
ータの存在を知らせるとともに、オペランド用キャッシ
ュ制御装置326に割込をかけ、セレクタ327を介し
て監視アドレスでオペランド用キャッシュのステータス
部323をアクセスする。その内容に従って、以下の処
理を行なう、該当ブロックの状態が5haredであれ
ば、ノーオペレーション。Exclusiveの場合は
、5ha−red状態に変更する。又、0νned状態
であった場合には、ブロック転送起動元に報告し、該ブ
ロック転送要求をアボートすると共に、0νned状態
のブロックを、共有メモリにコピーバックし、Excl
u−sive状態に変更する。
次に本実流゛例に適用される共有メモリ制御装置800
について第6図を用いて詳細に説明する。共有メモリ制
御装置8ooは、複数の演算処理装置からのブロック転
送要求、コピーパック要求、及びブロードキャストに伴
うデータ更新要求を受付け。
これを処理する機能を有する。起動キュー820は、各
演算処理装置からのアクセス要求をバッファリングする
FIFOバッファであり、起動元プロセッサ番号821
.リード/ライトの区別822.ブロック転送/単発ア
クセスの識別情報823、アクセスアドレス824、及
び、ライトデータ825から成る。
ライトデータ825は、コピーパック要求ではブロック
データであり、単発のライトアクセス要求では、1ワー
ドのデータとなる。又、応答キュー830は、共有メモ
リ900からのリードデータをバッファリングするFI
FOバッファであり、アクセス要求元プロセッサ番号8
31、及び、リードデータ832から成る。コントロー
ラとしては、システムバスから、アクセス要求を受取る
レシーブコントローラ840、リードデータを、アクセ
ス要求元へ転送するセントコントローラ841及び、共
有メモリのアクセスを制御するアクセスコントローラ8
42がある。以下動作について説明する。
レシーブコントローラ840は、演算処理装置からのア
クセス要求、及び使用チャネル情報に従って、システム
バス1000上のアドレス及びアクセス情報をアドレス
レジスタ801.802に取り込む。又、ライトアクセ
スであれば、同時にライトデータを、ライトデータレジ
スタ803.804に取り込む。その後、アドレス及び
アクセス情報は、セレクタ810を経て、起動キュー8
20に登録される。又、ライトアクセスであればライト
データがセレクタ811を経て、起動キュー820に登
録される。ライトアクセスでも、ブロックのコピーパッ
ク要求である場合、演算処理装置から連続的に送られて
来るデータが、ライトデータレジスタ803.804.
セレクタ811を経て、起動キューのライトデータ部8
25に連続的に書込まれる。アクセスコントローラ84
2は、起動キュー820に登録されているアクセスを、
そのアクセス情報(リード/ライト、ブロック転送/単
発ライト)に従って、インタリーブ化された共有メモリ
900へ転送する。ブロック転送要求の場合は、起動キ
ューのプロセッサ番号821を、応答キューのプロセッ
サ番号831に転送する。共有メモリ900より読出さ
れたデータは、リードデータレジスタ808を経て、応
答キューのデータ部832に格納される。センドコント
ローラ841は、応答キュー830に転送すべきブロッ
クデータが存在するならば、システムバス制御装置70
0に対して、バス占有要求701を発効する。システム
バス制御装置700から、バス使用許可703及び、使
用すべきチャネル番号705を受けとると、リードデー
タ832を、リードデータレジスタ805を介してデー
タバス1300又は1400に送出する。この時、応答
キューの起動元プロセッサ番号831に従って、起動元
プロセッサに、ブロックデータを送ったことを報告する
この実施例によれば、各演算処理装置は、システムバス
のチャネルA、Bどちらも選択的に使用可能であり、又
、チャネルA、Bが、同時に動作可能であることから、
複数の共有メモリアクセスが、同時に処理できる。これ
により、システムバスのスループットを大幅に改善でき
る。
以上で述べた実施例は、命令フェッチ、オペランドフェ
ッチの区別なく、多重化されたシステムバスを選択する
方式であったが、本発明は、第7図に示す様に、命令フ
ェッチ用及びオペランドフェッチ用にシステムバスを分
割し、並列に動作させる構成にも当然適用できる。第1
図との比較にて異なる部分について以下説明を加える。
第1図におけるメモリ管理装置300は、ここでは命令
用メモリ管理袋[300aと、オペランド用メモリ管理
装置300bとして示されており、それぞれ、命令用、
オペランド用のキャッシュメモリ及びアドレス変換装置
を含む。システムバス1000は、命令用とオペランド
用に分割され、命令用アドレス1200(4バイト幅)
及び命令用データ1210(8バイト幅)は、演算処理
装置の命令用メモリ管理装置300a 。
400aに接続される。オペランド用システムバスは、
2本のアドレスバス1300.1310 (各4バイト
幅)、2本のライトデータバス1320.1330 (
各4バイト幅)、1本のリードデータバス1340(8
バイト幅)から成る。共有メモリ900からの読出しは
、ブロックデータのみであるため、8バイト幅のデータ
バス1340の1本としている。一方、共有メモリへの
書込みについては、ブロックデータ、8バイト単発ライ
ト、4バイト単発ライトがあり、アクセスサイズに応じ
て、2本のライトデータバス1320゜1330を使い
分ける。特に4バイト単発ライトの輝度が高いことから
、アドレスバス及びライトデータバスを、A、Bの2チ
ヤネルを構成とし、4バイト単発ライトであれば同時に
処理可能とし、競合による待ち時間を削減する。
次に、本実施例におけるシステムバス制御装置700を
第8図に示す。システムバス制御袋[700は。
命令共有バス制御装置750と、オペランド共有バス制
御袋@760から成る。命令共有バス制御装置750は
、各演算処理装置の命令用メモリ管理装置300a、 
400aと、インタフェース信号線751〜753によ
って接続される。各信号の接続形態及び意味を以下に示
す。
(1) I −B U S RE Q751本信号は、
各演算処理装置の命令用メモリ管理装置300a、 4
00aからの命令共有バス占有要求である。本信号は、
命令用メモリ管理装置においてキャッシュミスヒツトが
発生し、共有メモリからのブロック転送が必要となった
時にアサートされる。
(2)I−BUSACK752 命令共有バス制御装置750から、各演算処理装置の命
令用メモリ管理装置への命令共有バス使用許可信号であ
り、各装置に対して個別に接続される。
(3) ■ −BUSBSY753 各命令用メモリ管理装置からのバス使用中を示す信号で
あり、バス構成で命令共有バス制御装置に接続される。
命令共有バス制御装置750は、各命令用メモリ管理装
置からのバス占有要求751と、命令共有バスの使用状
況を示すバス使用中信号753を入力として、優先判定
を行ない、使用許可信号752によリバス使用許可を与
える。
又、オペランド共有バス制御装置760は、各演算処理
装置のオペランド用メモリ管理装置300b 。
400b及び、システムバス監視装置500.600と
、インタフェース信号線761〜766によって接続さ
れる。
各信号の接続形態及び意味を以下に示す。
(1)D−BUSREQ76L 本信号は、各演算処理装置のオペランド用メモリ管理装
[300b、 400bからのオペランド共有バス占有
要求であり、個別の信号として接続される。
(2)D−CPYBKREQ762 本信号は、各演算処理装置のバス監視装置500゜60
0からのオペランド共有バス占有要求であり、個別の信
号として接続される。
(3)D−BUSACK763 オペランド共有バス制御装置760から、各演算処理装
置のオペランド用メモリ管理装置への共有バス使用許可
信号であり、各装置に対して個別に接続される。本信号
は、D−CHN○信号765と共に用いられ、各装置に
対して使用可能なチャネルを知られる。
(4)D−CPYBKACK764 オペランド共有バス制御装置760から、各演算処理装
置のバス監視装置に対する共有バス使用許可信号であり
、各装置に対して個別に接続される。
本信号は、D−CHNO信号765と共に用いられ。
各装置に対して使用可能なチャネルを知らせる。
(5) D−CHNO 本信号、D−BUSACK763.D−CPYBK A
 CK764と共に用いられ、使用可能なチャネル番号
を示す。
(6) D−BUS B S Y766各演算処理装置
のオペランド用メモリ管理装置。
バス監視装置からの、バス使用中であることを示す信号
であり、各チャネル毎に、バス構成でオペランド共有バ
ス制御装置に接続される。
オペランド共有バス制御装置760は、各演算処理装置
からのオペランド共有バス占有要求761゜762と、
オペランド共有バスの使用状況を示すバス使用中信号7
66とを入力として優先判定を行ない、バス要求・元に
適切なチャネルを割当てる。又、共有メモリ900から
各演算処理装置へのブロックデータ転送は、オペランド
リードデータバス1340を介して転送される。この時
、データ転送先のプロセッサ番号は識別子として保持さ
れているため、アドレスバスは使用しない。すなわち、
ブロックデータの転送では、ライトアクセスやブロック
転送要求との競合は発生せず、要求があった時に即座に
転送される。
第9図には、オペランド共有バス制御装置760におけ
る共有バス割り当ての状態遷移を示した。
この例では、オペランド共有バスが2つのチャネルから
成るものとしている。競合制御の対象となるバスとして
は、アドレスバス1300 (AD−A)、1310 
(AD−B) 、およびライトブタ−バス1320(W
D−A)、1330 (WD−B)があり、各バスの使
用状況に応じて7状搗770〜776を取りうる。
バス使用要求としては、ブロックリード要求、単発ライ
ト要求(4バイト幅、8バイト幅)、コピーパック要求
がある。
第10図には、オペランド用システムバスの動作例を示
している。期間t1では、プロセッサPEOが、アドレ
スバスA、ライトデータバスAのバスを使用し、4バイ
トのデータを共有メモリに書き込んでいる。期間t3で
はプロセッサPE2がアドレスAを用いて、ブロック転
送起動すると同時に、プロセッサPE3がアドレスバス
B、ライトデータバスBを使用し、4バイトの書き込み
行っている。期間t4〜t7では、プロセッサPEOが
アドレスバスAとライトデータバスA、Bを用いて、共
有メモリに対してブロックデータのコピーバック処理を
行っている。ライトデータバス2本を用いることにより
、ブロックデータの転送スルーブツトを向上させる。こ
の処理とオーバラップして、期間t6〜t9では、リー
ドデータバスを用いてプロセッサPE2にブロックデー
タの転送が行われている。期間t8では、プロセッサP
EI、PEOがそれぞれチャネルA、Bを用いて、4バ
イトの書き込みを同時に行っている。また、期間t9で
は、プロセッサPE3が、アトレスバスAと、ライトデ
ータバスA、Bを使用し、8バイトのライトアクセスを
行っている。
〔発明の効果〕
本発明によれば、複数の演算処理装置が、同時にシステ
ムバスを使用することが可能となり、又、命令フェッチ
、オペランドフェッチに関するシステムバスアクセスを
同時に実行することも可能である。これによって、シス
テムバスアクセスの競合による待ち時間を削減すること
ができ、システムバスのスループッ1−及び、マルチプ
ロセッサシステム全体の性能を大幅に向上できる効果が
ある。
【図面の簡単な説明】
第1図は本発明の第1の実施例の全体構成を示すブロッ
ク図、第2図および第3図は第1図のシステムバス制御
装置の扱う信号名およびバス割り当てアルゴリズムを示
す図、第4図は第1図の実施例におけるシステムバスの
動作説明図、第5図および第6図は第1図のメモリ管理
装置および共有メモリ制御装置の詳細な構成を示す図、
第7図は本発明の第2の実施例の全体構成を示すブロッ
ク図、第8図は第7図のシステムバス制御装置の構成お
よび扱う信号を示す図、第9図は第8図のオヘランド共
有バス制御装置によるバス割り当てアルゴリズムを示す
図、第10図は第7図の実施例におけるオペランド用シ
ステムバスの動作説明図である。 100、200・・・演算処理装置、300.400・
・・メモリ管理装置、500.600・・・システムバ
ス監視装置、700・・・システムバス制御装置、80
0・・・共有メモリ制御装置、900・・・共有メモリ
、1000・・・システムバス。 代理人弁理士  秋  本  正  実稟 図 業 + 図 tr蘭 71+ 端 図 纂 図 ’713

Claims (1)

  1. 【特許請求の範囲】 1、複数の演算処理装置に共有される共有メモリと、該
    共有メモリと複数の演算処理装置とを連絡するための、
    複数のアドレスバスおよび複数のデータバスより成るシ
    ステムバスと、該システムバスの利用状況を監視し、各
    演算処理装置からの要求に対して空いている上記アドレ
    スバスまたはデータバスを割り当てるシステムバス制御
    装置と、システムバスからのアクセス要求を受け付け、
    共有メモリのアクセス制御を行う共有メモリ制御装置と
    、各演算処理装置に付加され、共有メモリの情報の一部
    をその内部のキャッシュメモリに格納し、演算処理装置
    からのメモリアクセスを管理するためのメモリ管理装置
    と、各演算処理装置に付加され、システムバス上のトラ
    ンザクションを監視し、その監視結果により必要であれ
    ば前記キャッシュメモリに保持される情報の変更あるい
    は無効化を行うバス監視装置とから成ることを特徴とす
    るマルチプロセッサのメモリシステム。 2、前記共有メモリ制御装置は、ファーストインファー
    ストアウトバッファを内蔵し、複数のバスより成る前記
    システムバスより同時に複数の共有メモリアクセス要求
    を受け取ったときには該要求を上記ファーストインファ
    ーストアウトバッファへ一旦登録し、該バッファから順
    次共有メモリへのアクセス要求を取りだして共有メモリ
    アクセスを行わせることを特徴とする請求項1記載のマ
    ルチプロセッサのメモリシステム。 3、前記複数のアドレスバスおよび複数のデータバッフ
    ァの各々は、命令読み出しのための命令専用共有バスと
    、オペランド読みだしおよび書き込みのためのオペラン
    ド専用共有バスから成ることを特徴とする請求項1記載
    のマルチプロセッサのメモリシステム。 4、前記メモリ管理装置の各々は、命令を格納する命令
    キャッシュメモリと、オペランドを格納するオペランド
    キャッシュメモリと、上記命令キャッシュメモリに所望
    の情報が存在しない時に前記命令専用共有バスを介して
    共有メモリをアクセスする手段と、上記オペランドキャ
    ッシュメモリに所望の情報が存在しない時に前記オペラ
    ンド専用共有バスを介して共有メモリをアクセスする手
    段とを有することを特徴とする請求項3記載のマルチプ
    ロセッサのメモリシステム。 5、前記バス監視装置の各々は、前記オペランド専用共
    有バスのみを監視することを特徴とする請求項3記載の
    マルチプロセッサのメモリシステム。 6、前記システムバス制御装置は、前記命令専用共有バ
    スの利用要求を制御する手段と、前記オペランド専用共
    有バスの利用要求を制御する手段とから成ることを特徴
    とする請求項3記載のマルチプロセッサのメモリシステ
    ム。
JP63171777A 1988-07-12 1988-07-12 マルチプロセッサのメモリシステム Pending JPH0222757A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63171777A JPH0222757A (ja) 1988-07-12 1988-07-12 マルチプロセッサのメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63171777A JPH0222757A (ja) 1988-07-12 1988-07-12 マルチプロセッサのメモリシステム

Publications (1)

Publication Number Publication Date
JPH0222757A true JPH0222757A (ja) 1990-01-25

Family

ID=15929485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63171777A Pending JPH0222757A (ja) 1988-07-12 1988-07-12 マルチプロセッサのメモリシステム

Country Status (1)

Country Link
JP (1) JPH0222757A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784877A (ja) * 1993-08-27 1995-03-31 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法
US6253290B1 (en) 1998-09-04 2001-06-26 Mitsubishi Denki Kabushiki Kaisha Multiprocessor system capable of circumventing write monitoring of cache memories
JP2007500886A (ja) * 2003-07-25 2007-01-18 ラザ マイクロエレクトロニクス,インク. 最新型プロセッサ
WO2013061369A1 (en) 2011-10-26 2013-05-02 Hitachi, Ltd. Information system and control method of the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS586571A (ja) * 1981-07-03 1983-01-14 Nec Corp デ−タ処理装置
JPS5864690A (ja) * 1981-10-14 1983-04-18 Hitachi Ltd キヤツシユメモリ制御方法
JPS58176762A (ja) * 1982-04-09 1983-10-17 Omron Tateisi Electronics Co 並列処理システム
JPS60150139A (ja) * 1984-01-13 1985-08-07 Nippon Telegr & Teleph Corp <Ntt> デ−タフロ−プロセツサ
JPS6120172A (ja) * 1984-07-06 1986-01-28 Nec Corp マルチマイクロプロセツサシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS586571A (ja) * 1981-07-03 1983-01-14 Nec Corp デ−タ処理装置
JPS5864690A (ja) * 1981-10-14 1983-04-18 Hitachi Ltd キヤツシユメモリ制御方法
JPS58176762A (ja) * 1982-04-09 1983-10-17 Omron Tateisi Electronics Co 並列処理システム
JPS60150139A (ja) * 1984-01-13 1985-08-07 Nippon Telegr & Teleph Corp <Ntt> デ−タフロ−プロセツサ
JPS6120172A (ja) * 1984-07-06 1986-01-28 Nec Corp マルチマイクロプロセツサシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784877A (ja) * 1993-08-27 1995-03-31 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるコヒーレンシィ制御装置及び維持方法
US6253290B1 (en) 1998-09-04 2001-06-26 Mitsubishi Denki Kabushiki Kaisha Multiprocessor system capable of circumventing write monitoring of cache memories
JP2007500886A (ja) * 2003-07-25 2007-01-18 ラザ マイクロエレクトロニクス,インク. 最新型プロセッサ
JP2010079921A (ja) * 2003-07-25 2010-04-08 Rmi Corp プロセッサ
WO2013061369A1 (en) 2011-10-26 2013-05-02 Hitachi, Ltd. Information system and control method of the same
US8874965B2 (en) 2011-10-26 2014-10-28 Hitachi, Ltd. Controlling program code execution shared among a plurality of processors

Similar Documents

Publication Publication Date Title
US11907528B2 (en) Multi-processor bridge with cache allocate awareness
US5265235A (en) Consistency protocols for shared memory multiprocessors
US5924119A (en) Consistent packet switched memory bus for shared memory multiprocessors
US5440698A (en) Arbitration of packet switched busses, including busses for shared memory multiprocessors
US6954844B2 (en) Microprocessor architecture capable of supporting multiple heterogeneous processors
US7533197B2 (en) System and method for remote direct memory access without page locking by the operating system
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
EP0856796A2 (en) Variable-grained memory sharing for clusters of symmetric multi-processors
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
US6502168B1 (en) Cache having virtual cache controller queues
JPH0272452A (ja) 無効要求を選別する方法及び装置
JPH0612325A (ja) プロセス親和スケジュール法およびその装置
CA2051209C (en) Consistency protocols for shared memory multiprocessors
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
JPH0635953A (ja) スカラ/ベクトル複合処理システムのための相互問い合わせ法およびその装置
EP0531003A1 (en) Data processing with bidirectional data bus reservation priority controls
US5623626A (en) Logical cache memory for multi-processor system
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
JPH07152647A (ja) 共有メモリマルチプロセッサ
JPH0222757A (ja) マルチプロセッサのメモリシステム
US6904474B1 (en) Using write request queue to prevent bottlenecking on slow ports in transfer controller with hub and ports architecture
US5361368A (en) Cross interrogate synchronization mechanism including logic means and delay register
JPH0816474A (ja) マルチプロセッサシステム
JP2002024007A (ja) プロセッサシステム