JP2504323B2 - システムバス制御方法 - Google Patents

システムバス制御方法

Info

Publication number
JP2504323B2
JP2504323B2 JP2291206A JP29120690A JP2504323B2 JP 2504323 B2 JP2504323 B2 JP 2504323B2 JP 2291206 A JP2291206 A JP 2291206A JP 29120690 A JP29120690 A JP 29120690A JP 2504323 B2 JP2504323 B2 JP 2504323B2
Authority
JP
Japan
Prior art keywords
processing unit
block
bus
unit
system 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.)
Expired - Lifetime
Application number
JP2291206A
Other languages
English (en)
Other versions
JPH04163658A (ja
Inventor
恒道 塩澤
勝行 岡田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2291206A priority Critical patent/JP2504323B2/ja
Publication of JPH04163658A publication Critical patent/JPH04163658A/ja
Application granted granted Critical
Publication of JP2504323B2 publication Critical patent/JP2504323B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、システムバスにより結合されたマルチプロ
セッサシステムにおいて、データ転送待ち状態の複数の
プロセッサに対し、システムバスへのアクセスを減少さ
せて、全体の性能を向上させることが可能なシステムバ
ス制御方法に関する。
〔従来の技術〕
従来より、システムの信頼性、装置利用の融通性、処
理能力の増大を図るためのシステムとして、マルチプロ
セッサシステムが用いられている。これは、複数のプロ
セッサがメモリユニットを共有し、1つの管理プログラ
ムの下に、各プロセッサの負荷が均等になるように処理
が割当てられるシステムである。
マルチプロセッサシステムのバス制御に関する文献と
しては、例えば、VME MEMBER『VMEbusアーキテクチャ
・マニュアルRevision C.1』(CQ出版)がある。
第3図は、従来のマルチプロセッサシステムのブロッ
ク構成図であり、第4図は、第3図におけるキャッシュ
メモリとメモリユニットの説明図である。
第3図において、4は共通のシステムバス、1,2,3は
共通のシステムバスに接続された複数の処理ユニット、
5は共通のシステムバスに接続されたメモリユニット、
6はバスマスタコントロール(ハスアービタ)、10,20,
30は各処理ユニット1,2,3内のプロセッサ、11,21,31は
各処理ユニット1,2,3内のキャッシュメモリである。
ここで、メモリユニット5は、第4図(c)に示すよ
うに、複数のブロックに分割されている。
例えば、セットアソシアティブ方式では、メモリユニ
ット5内のnブロック置きにグループ化し、i番目のグ
ループをカラムiと呼ぶ。これに対して、第4図(b)
に示すように、キャッシュメモリ11,21,31もそれぞれn
個のカラムに分割される。キャッシュメモリ11,21,31
は、メモリユニット5のブロックを格納するカラム単位
の複数のエントリを備える。メモリユニット5からキャ
ッシュメモリ11,21,31へのブロック転送は、必ず同一カ
ラム間で行われ、メモリユニット5のあるカラム内のブ
ロックは、キャッシュメモリ11,21,31の対応するカラム
内の任意のブロックに入れられる。また、第4図(a)
に示すように、キャッシュメモリ11,21,31の各ブロック
に対応してタグ部11−1が設けられる。そのタグ部11−
1には、メモリユニット5内のどのブロックが現在取り
込まれているか、つまりブロックを識別するメモリユニ
ット5のアドレス情報が記憶されている。
メモリユニット5へのアクセス要求が出されると、そ
のアドレスからカラム番号を知り、そのカラムに対応す
るタグ部内のブロック番号と照合することにより、キャ
ッシュメモリ11,21,31内に存在するか否かを判定する。
キャッシュメモリのタグ部11−1には、アドレス格納
部の他に、タグ部11−1に格納している情報が有効
(『1』)であるか、無効(『0』)であるかを示すバ
リッド部V、メモリユニット5のブロックの内容を書き
換えずに、キャッシュメモリ11,21,31に格納されている
ブロックの内容のみを書き換えたか(『1』)、または
書き換えていないか(『0』)を示すモディファイ部M
から構成される。第4図(b)のキャッシュメモリのデ
ータ部には、メモリユニット5のブロックの内容が格納
されている。さらに、図示省略されているが、キャッシ
ュメモリ11,12,13には、一定周期で値が+1されるリト
ライタイマ118を具備している。
ここで、モディファイ部Mに格納される情報は、プロ
セッサ10,20,30からのブロックの書き換えをキャッシュ
メモリ上のブロックに対してのみ行い、メモリユニット
5上の同一ブロックを書き換えない場合に値が『1』と
なる。ここで、バリッド部Vの値にかかわらず、モディ
ファイ部Mの値が『1』である場合にも、タグ部11−1
に格納されている情報は有効であるものとする。
各処理ユニット1,2,3内のプロセッサ10,20,30から見
たとき、メモリユニット5上の同一のブロックの内容
は、キャッシュメモリ11,21,31相互間で一致している必
要があるので、あるキャッシュメモリ内でモディファイ
部Mが『1』であるブロックが存在した時には、他のキ
ャッシュメモリにおいては、同一のブロックを格納して
いるエントリは存在しない。もし、このようなブロック
が存在すると、各プロセッサ10,20,30が同一のブロック
を読み出しても、各プロセッサ10,20,30のキャッシュメ
モリ11,21,31から異なる内容を読み出すことになるため
に、矛盾が生じる。
一例として、プロセッサ10がメモリユニット5のアド
レスaで指定されるブロックaにアクセスする場合につ
いて述べる。
第3図において、プロセッサ10がチップバス100を介
してキャッシュメモリ11にブロックaの読み出し、また
は書き換えを指示する。
キャッシュメモリ11は、キャッシュメモリ内のエント
リを検索して、ブロックアドレスaとタグ部11−1に格
納されているアドレス情報とが一致し、かつバリッド部
Vに格納されている値が『1』であるエントリが存在し
たとき(ヒット)、プロセッサ10からのアクセスが読み
出し要求であれば、そのエントリのデータ部Dに格納し
てあるブロックを、チップバス100を介してプロセッサ1
0に転送して、プロセッサ10からの読み出し要求処理を
完了する。
一方、ヒットしたブロックaに対するプロセッサ10か
らのアクセスが書き換え要求であり、かつモディファイ
部Mの値が『1』であれば、そのエントリのデータ部D
に格納してあるブロックをチップバス100から入力した
値に書き換え、プロセッサ10からの書き換え要求処理を
終了する。
また、ヒットしたブロックaに対するプロセッサ10か
らのアクセスが書き換え要求であり、かつモディファイ
部Mの値が『0』であれば、キャッシュメモリ11は、信
号線101を介してシステムバス4の使用要求をバスマス
タコントローラ6に送出する。バスマスタコントローラ
6は、予め定められた手続きに従って、1つのキャッシ
ュメモリに対してのみシステムバス4の使用許可を与え
る。信号線102を介してシステムバス4の使用許可がキ
ャッシュメモリ11に与えられると、キャッシュメモリ11
は、リトライタイマ118の値を『0』にリセットして、
書き換えるブロックのアドレスaをアドレスバス40に出
力し、書き換えるデータをデータバス41に出力し、メモ
リユニット5に対する書き換え指示をリード/ライトバ
ス42に出力し、アクセススタート指示バス43にアクセス
の開始を指示する。
メモリユニット5およびその他の処理ユニット2,3
は、アクセススタート指示バス43からの指示を受け取
り、同時に処理ユニット1が出力した書き換え指示、書
き換えるべきブロックのアドレス、および書き換えるべ
きデータを受け取る。
メモリユニット5は、リード/ライトバス42から書き
換え指示を受け取り、アドレスバス40から入力したアド
レスで指定されるブロックaをデータバス41から入力し
た内容に書き換える。
他方、処理ユニット2,3は、下記の動作を行う。な
お、処理ユニット2と3の動作は、いずれも同一である
ため、一方(処理ユニット2)だけの動作を説明する。
処理ユニット2のキャッシュメモリ21は、処理ユニッ
ト1がアドレスバス40に出力したアドレスaを入力し
て、キャッシュメモリ21のエントリを検索し、ブロック
アドレスaとタグ部11−1に格納されているアドレス情
報とが一致し、かつモディファイ部Mに格納されている
値が『1』であるエントリが存在した時は、中断指示バ
ス47に中断を指示する信号を出力して、メモリユニット
5に中断を指示する。すなわち、プロセッサ10からのア
クセスが読み出し要求のときには、メモリユニット5か
ら誤ったデータを読み出してしまうので、これを阻止す
る。また、リード/ライトバス42により書き換えが指示
されている場合、ブロックアドレスaとタグ部11−1に
格納されているアドレス情報とが一致し、かつバリッド
部Vに格納されている値が『1』であるエントリが存在
するときには、そのエントリのバリッド部Vの内容を
『0』としてブロックを無効化する。
メモリユニット5は、処理ユニット2または3から中
断指示バス47を介して中断が指示されなかった場合に
は、応答バス45に応答を出力中であることを示す信号を
出力し、処理ユニット1からの書き換え要求を完了す
る。一方、メモリユニット5は、処理ユニット2または
3(ここでは、処理ユニット2)から中断指示バス47を
介して中断が指示されると、ブロックの最新情報は処理
ユニット2または3(ここでは、処理ユニット2)のキ
ャッシュメモリ内に存在するので、リトライバス46にリ
トライを指示する信号を出力すると同時に、応答バス45
に応答を出力中であることを示す信号を出力する。
処理ユニット1は、リトライバス46を介してリトライ
指示を受け取ると、リトライタイマ118の値が予め定め
られた値(オーバフロー値)になったことを契機とし
て、再度、前述と同じようにしてシステムバス4の使用
権を獲得し、メモリユニット5のブロックaを書き換え
る処理を繰り返す。通常は、処理ユニット1のリトライ
タイマ118がオーバフロー値になる前に、処理ユニット
2からのシステムバス使用要求がバスマスタコントロー
ラ6に送出される。
処理ユニット1からのブロックaの書き換えに対し
て、中断指示を出力した処理ユニット2のキャッシュメ
モリ21は、信号線202を介してシステムバス4の使用要
求をバスマスタコントローラ6に送出する。システムバ
ス4の使用許可が信号線201を介してキャッシュメモリ2
1に与えられたとき、キャッシュメモリ21は、メモリユ
ニット5に対する書き換え指示をリード/ライトバス42
に、また書き換えるブロックaのアドレスをアドレスバ
ス40に、またブロックaをデータバス41に、それぞれ出
力し、同時にアクセス開始を指示する信号をアクセスス
タート指示バス43に出力する。
メモリユニット5は、リード/ライトバス42から書き
換え指示を受け取り、アドレスバス40からブロックアド
レスaで指定されるメモリユニット上の内容を、データ
バス41から入力した内容に書き換えた後、正常に書け換
えが完了すれば、応答バス45に応答を出力中であること
を示す信号を出力する。
処理ユニット2のキャッシュメモリ21は、応答バス45
を介して正常に書き換えが完了したことを知ると、ブロ
ックaを格納していたエントリのモディファイ部の値を
『1』から『0』に書き換えて処理を終了する。このよ
うに、処理ユニット2が行う書き換え処理を特に『書き
戻し』と呼ぶ。処理ユニット1が行うリトライ処理は、
処理ユニット2からの書き戻しが完了した後に行われる
読み出しまでの間、繰り返し行われる。
一方、プロセッサ10からメモリユニット5へのアクセ
スが読み出し要求であり、かつヒットしなかった場合に
は、キャッシュメモリ11は、信号線101を介してシステ
ムバスの使用要求をバスマスタコントローラ6に送出す
る。バスマスタコントローラ6は、予め定められた手続
に従って1つのキャッシュメモリにのみシステムバス4
の使用許可を与える。信号線102を介してシステムバス
4の使用許可がキャッシュメモリ11に与えられたとき、
キャッシュメモリ11は、リトライタイマ118の値を
『0』にリセットし、読み出すブロックのアドレスaを
アドレスバス40に出力し、メモリユニット5に対する読
み出し指示をリード/ライトバス42に出力し、またプロ
セッサ10からの要求が書き換え要求であれば、書き換え
予約指示バス44に書き換え予約指示信号を出力し、かつ
アクセススタート指示バス43にアクセスの開始指示を出
力する。
処理ユニット2,3およびメモリユニット5は、アクセ
ススタート指示バス43により与えられた指示で、処理ユ
ニット1が出力したシステムバス4上の値を受け取る。
メモリユニット5は、リード/ライトバス42から読み
出し指示を受け取り、アドレスバス40からブロックアド
レスaを入力して、ブロックaのデータを読み出す。他
方、処理ユニット2および3は以下の処理を行う。な
お、処理ユニット2と3は、同一の動作であるので、こ
こでは処理ユニット2のみの動作を述べる。
処理ユニット2のキャッシュメモリ21は、処理ユニッ
ト2がアドレスバス40に出力したアドレスaを入力し、
キャッシュメモリ21のエントリを検索し、ブロックアド
レスaとタグ部に格納されているタグ部内容が一致し、
かつモディファイ部Mに格納されている値が『1』であ
るエントリが存在したときには、中断指示バス47に中断
を指示する信号を出力し、メモリユニット5に中断を指
示する。また、書き換え予約バス44により書き換え予約
が指示されているか、またはリード/ライトバス42によ
り書き換えが指示されている場合には、ブロックアドレ
スaとタグ部に格納されている内容とが一致し、かつバ
リッド部Vに格納されている値が『1』であるエントリ
が存在するときには、そのエントリのバリッド部Vの内
容を『0』としてブロックを無効化する。
メモリユニット5は、処理ユニット2または3から中
断指示バス47を介して中断が指示されなければ、ブロッ
クaの最新の内容はメモリ上に存在するので、ブロック
aのデータを読み出す。そして、読み出したブロックa
のデータをデータバス41に出力し、かつ応答バス45に応
答を出力中であることを示す信号を出力して、処理ユニ
ット1からの読み出し要求に対する処理を終了する。
一方、メモリユニット5は、処理ユニット2または3
(ここでは、処理ユニット2)から中断指示バス47を介
して中断が指示されたときには、ブロックの最新情報は
処理ユニット2または3(ここでは、処理ユニット2)
のキャッシュメモリ内に存在するので、ブロックaの読
み出しを中断し、リトライバス46にリトライを指示する
信号を出力すると同時に、応答バス45に応答を出力中で
あることを示す信号を出力する。
処理ユニット1は、リトライバス46を介してリトライ
指示を受け取ると、リトライタイマ118の値が予め定め
られた値(オーバフロー値)となる時点を契機として、
前述のようにバスの使用無を獲得し、メモリユニット5
からブロックaを読み出す処理を繰り返し行う。
処理ユニット1からのブロックaの読み出しに対し
て、中断指示を出力した処理ユニット2のキャッシュメ
モリ21は、前述のように、ブロックaの書き戻し処理を
行う。処理ユニット1が行うリトライ処理は、処理ユニ
ット2からの書き戻しが完了した後に行われる読み出し
までの間、繰り返し行われる。
〔発明が解決しようとする課題〕
マルチプロセッサにおいては、各処理ユニットから発
生するシステムバスでの競合が全体の性能を決定するの
で、各処理ユニットにキャッシュメモリを設けることに
より、システムバスへのアクセス回数を削減し、システ
ムバスでの競合を減少させて、全体の性能を向上させて
いる。
処理ユニットからのブロック読み出し要求に対して、
リトライが指示されると、リトライ応答を受信した処理
ユニットは予め定められた時間(リトライ時間)が経過
すると再びバスの使用権を獲得して、システムバスに読
み出し要求を出力すると同時に、アドレス等を出力す
る。このように、一般にリトライは複数回実行されるた
め、システムバスに不要なアクセスを行うことになり、
他の処理ユニットによるシステムバスの使用を妨げると
いう問題があった。
そこで、本発明者は、処理ユニット1が要求したブロ
ックが処理ユニット2からメモリユニット5に書き戻さ
れる時、メモリユニット5へ書き戻されるブロックを処
理ユニット1が自キャッシュメモリ内に取り込む(これ
をスチールと呼ぶ)ことによりリトライを不要にして、
システムバスに複数回のリトライのためのアクセス発生
をなくす方法を提案した(平成2年10月2日出願の『マ
ルチプロセッサにおけるバス制御方法』明細書および図
面参照)。
しかしながら、単純にスチールを実行すると、以下に
述べるように、各処理ユニットに格納されるブロックの
内容に矛盾が発生してしまう。
すなわち、処理ユニット1において、プロセッサ10か
ら読み出し要求されたブロックaがミスヒットして、メ
モリユニット5からブロックaを読み出す場合、処理ユ
ニット2のキャッシュメモリ21にブロックaがモディフ
ァイブロックとして登録されていれば処理ユニット2は
中断指示を行い、処理ユニット1は処理ユニット2から
のブロックaの書き戻しを待つ。一方、処理ユニット2
からのブロックaの書き戻しが行われる前に、処理ユニ
ット3においてプロセッサ30から書き換え要求されたブ
ロックがミスヒットして、メモリユニット5からブロッ
クaの読み出し(書き換え予約指示を伴った読み出し)
を行うと、処理ユニット2は中断指示を行い、処理ユニ
ット3は処理ユニット2からのブロックaの書き戻しを
待つ。
処理ユニット1および処理ユニット3が処理ユニット
2からのブロックaの書き戻し待ちの状態で処理ユニッ
ト2がブロックaの書き戻しを行うと、処理ユニット1
および処理ユニット3の両方がスチールを行い、2つの
処理ユニット2,3のキャッシュメモリ21,31に同一ブロッ
クが格納されることになる。この時、処理ユニット3で
は、プロセッサ30からの書き換え要求に対して、スチー
ルにより格納されたブロックaに対して、書き換えが行
われるので、処理ユニット1および処理ユニット3に格
納されているブロックaの内容に不一致が生じることに
なる。
上記のような矛盾は、一般に、2つ以上の処理ユニッ
トにより同一ブロックaをスチールし、そのうちの1つ
の処理ユニットが書き換え予約付きのブロックアクセス
である時に発生する。
このように、スチールを行うことにより、リトライの
ためにシステムバスに生じる不要なアクセスを削減する
ことができるが、各キャッシュメモリに格納されるブロ
ックに矛盾が発生するという問題があった。
本発明の目的は、このような従来の課題を解決し、シ
ステムバスへの不要なアクセスを減少させるためのスチ
ールを矛盾なく実行することができ、マルチプロセッサ
全体の性能を向上させることが可能なシステムバス制御
方法を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のシステムバス制御
方法は、任意の処理ユニットは、自処理ユニットが第1
の他処理ユニットあるいはメモリユニットから転送待ち
のブロックと同一のブロックを、第2の他処理ユニット
が上記システムバスを介して要求した時、同一のブロッ
クを要求した第2の他処理ユニットに対して、自処理ユ
ニットが受信するブロックを同時に受信することを許可
するか否かを、第2の他処理ユニットに対して通知する
ことに特徴がある。
〔作用〕
本発明においては、自処理ユニットが他処理ユニット
またはメモリユニットから転送待ちしているブロックと
同一のブロックを、さらに他の処理ユニットが要求した
場合、そのブロックアクセス要求に対して、スチールを
許可または禁止する信号を設けることにより、システム
バスへのアクセスを減少させると同時に、スチールを矛
盾なく実行することができる。すなわち、他処理ユニッ
トからのアクセスに対して、(イ)他処理ユニットの書
き換え予約付き読み出しに対するアクセス、または自処
理ユニットが書き換え予約付き読み出し中のブロックに
対するアクセス、のそれぞれに対して他処理ユニットの
スチールを禁止する。また、(ロ)自処理ユニットが書
き換え予約付き読み出し中のブロックに対するアクセス
に対しても、他処理ユニットのスチールを禁止する。さ
らに、(ハ)自処理ユニットが読み出し中のブロックに
対するアクセスに対して、他処理ユニットからのスチー
ルを禁止する。上記(イ)(ロ)(ハ)以外は、スチー
ルを許可する。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明す
る。
第1図は、本発明の一実施例を示すキャッシュメモリ
のシステムバス制御方法の説明図であり、第2図は第1
図における動作フローチャートである。
第1図において、111〜122はキャッシュメモリ11内の
バス制御部分を示している。111はプロセッサがチップ
バス100を介してアクセス要求中のブロックアドレスを
格納するブロックアドレス格納部、112はブロックアド
レス格納部111とアドレスバス40上の値が一致した時
に、その出力を『1』とする一致検出回路、113は自処
理ユニットからのアクセスに対して他処理ユニットが出
力したスチール禁止バス48上の値を格納するスチール状
態管理部、114,115,116および117はAND回路、118はシス
テムバスの使用権が与えられることにより値が『0』と
なり、一定周期で値が+1されるリトライタイマ、119
はリトライタイマ118の値が予め定められた値(オーバ
フロー値)となったことを検出するリトライタイマオー
バフロー検出回路、120はOR回路、121はシステム制御
部、122はリトライ待ち状態またはリトライ実行状態で
あるか(『1』)、またはそれ以外の状態であるか
(『0』)を示すリトライ状態管理部である。
先ず、第2図に示すように、プロセッサ10からのアク
セス要求により、要求されたブロックアドレスをブロッ
クアドレス格納部にセットする(ステップ101)。
プロセッサ10からのアクセスがヒットしなかった場
合、システムバス制御部121は、信号線101を介してシス
テムバス4の使用要求をバスマスタコントローラ6に送
出する(ステップ102)。信号線102を介してシステムバ
ス4の使用許可がシステムバス制御部121に与えられた
ならば(ステップ103)、リトライタイマ118をリセット
する(ステップ104)。このとき、同時に、スチール状
態管理部113にもバスマスタコントローラ6から信号が
入力されるので、スチール状態管理部113に値『0』が
セットされてスチール禁止状態となる。システムバス制
御部121は、メモリユニット5から読み出すブロックa
のアドレスをアドレスバス40に出力し、メモリユニット
5に対する読み出し指示をリード/ライトバス42に出力
し、プロセッサ10からの要求が書き換え要求であれば、
書き換え予約指示バス44に書き換えの予約を指示する信
号を出力し、アクセススタート指示バス43にアクセスの
開始を指示する(ステップ105)。
システムバス制御部121は、自キャッシュメモリ11か
らのアクセス要求に対して応答バス45およびリトライバ
ス46を介してリトライ応答を受信すると(ステップ10
6)、リトライ状態管理部122にリトライ状態であること
を示す値『1』をセットする(ステップ108)。また、
リトライ応答が無い場合には、メモリユニット5からブ
ロックaのデータを読み出して、処理を完了する(ステ
ップ107)。
次に、他の処理ユニットがスチール禁止バス48にスチ
ール禁止の指示を出力しなければステップ109)、スチ
ール状態管理部113に値『1』をセットしてスチール許
可状態とする(ステップ111)。これにより、いずれか
の処理ユニットがシステムバス4を介してブロックアド
レス格納部111に格納されているブロックアドレスで指
定されるブロックを書き換えた時、AND回路114の出力が
『1』となる。その結果、システムバス制御部121は、
データバス41上に出力されているブロックaを自処理ユ
ニット内のキャッシュメモリ11に格納する(スチール)
(ステップ111)。その間に、リトライタイマ118がオー
バフローすると(ステップ110,112)、リトライ状態管
理部122に値『0』をセットして、リトライ状態を解除
するとともに、スチール状態管理部113の値もリセット
する(ステップ113)。そして、ステップ102に戻り、再
度、バスマスタコントローラ6にバス使用権を要求す
る。
リトライタイマ118がオーバフローする前に、ブロッ
クアドレス格納部111にセットされているブロックを、
他の処理ユニットがアクセスした場合には(ステップ11
4)、それが書き換え要求であるか否かを判断する(ス
テップ115)。もし、書き換え要求であれば、他の処理
ユニットが書き換えたブロックを、システムバス制御部
121はキャッシュメモリに格納する(スチール)(ステ
ップ118)。そして、リトライ状態管理部122およびスチ
ール状態管理部113の値をリセットする(ステップ11
9)。
一方、他の処理ユニットが行ったアクセスが書き換え
要求でないときには(つまり、読み出し要求のとき)、
書き換え予約の指示が有るか否かを判断する(ステップ
116)。書き換え予約指示がなければ、そのままリトラ
イタイマ118のオーバフローを待つ(ステップ112)。書
き換え予約指示があれば、アクセス中の処理ユニットに
スチール禁止を指示する(ステップ117)。そして、リ
トライタイマ118のオーバフローを待つ(ステップ11
2)。書き換え予約指示があれば、システムバスの書き
換え予約バス44が『1』となるため、AND回路116がONと
なり、OR回路120の出力によりスチール禁止バス48を
『1』にする。
他の処理ユニットがスチール禁止バス48にスチール禁
止の指示を出力した場合には、スチール状態管理部113
の値を『0』のままとしてスチール禁止状態とする。ま
た、リトライ状態管理部122には『1』がセットされて
いるので、リトライタイマ118が予め定められた値とな
り、リトライタイムオーバフロー検出回路119の出力が
『1』となったとき、AND回路117の出力が『1』となっ
て、システムバス制御部121はシステムバス4の使用権
を獲得してブロックaに対する上記動作を行う(102〜1
06)。
システムバス制御部121は、メモリユニット5からリ
トライ以外の応答を受信すると、リトライ状態管理部12
2に値『0』をセットして、リトライ状態を解除する。
他方、リトライ状態の処理ユニットは、バスマスタコ
ントローラ6から自ユニットに対してシステムバス4の
使用権が与えられていない場合、つまり許可信号線102
が『0』のとき、他の処理ユニットからのメモリユニッ
ト5に対するアクセスに対して、以下の動作を行う。
すなわち、リトライでアクセスするブロックのアドレ
スと他の処理ユニットがアクセスするブロックのアドレ
スとが一致した場合で、かつ自処理ユニットからリトラ
イでアクセスするブロックがプロセッサからの書き換え
によるものであるか(つまり、AND回路115の出力が
『1』であるか)、または他処理ユニットからのアクセ
スが書き換え予約付きのアクセスである(つまり、AND
回路116の出力が『1』である)ならば、OR回路120の出
力が『1』となって、スチール禁止バス48上にスチール
を禁止する指示を出力する。
このように、本発明においては、2つ以上の処理ユニ
ットによりスチールが行われる場合で、かつ少なくとも
1つの処理ユニットが書き換え予約付きのブロックアク
セスである場合には、システムバスを介して遅れてブロ
ックを要求した処理ユニットのスチールが禁止されるの
で、スチールを行うことにより生じる矛盾を解消するこ
とができる。なお、遅れてブロックを要求した処理ユニ
ットのアクセスは、リトライにより行われる。
他処理ユニットからのアクセスに対して、スチール禁
止を指示する方法の例としては、以下の方法がある。
(イ)他処理ユニットの書き換え予約付き読み出しに対
するアクセス、または自処理ユニットが書き換え予約付
き読み出し中のブロックに対するアクセスに対して、他
処理ユニットのスチールを禁止する(上記実施例の場
合)。
(ロ)自処理ユニットが書き換え予約付き読み出し中の
ブロックに対するアクセスに対して、他処理ユニットの
スチールを禁止する。
(ハ)自処理ユニットが読み出し中のブロックに対する
アクセスに対して、他処理ユニットからのスチールを禁
止する。
〔発明の効果〕
以上説明したように、本発明によれば、スチール動作
を矛盾なく実行させることができるので、システムバス
への不要なアクセスを減少させることにより、マルチプ
ロセッサにおける全体の性能を向上できる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すキャッシュメモリのシ
ステムバス制御回路の構成図、第2図は第1図における
動作フローチャート、第3図は従来のマルチプロセッサ
システムのブロック構成図、第4図は第3図におけるキ
ャッシュメモリとメモリユニットとの対応関係図であ
る。 1,2,3:処理ユニット、4:システムバス、5:メモリユニッ
ト、6:バスマスタコントローラ、10,20,30:プロセッ
サ、11,21,31:キャッシュメモリ、111:ブロックアドレ
ス格納部、112:一致検出回路、113:スチール状態管理
部、114,115,116,117,124:AND回路、118:リトライタイ
マ、119:リトライタイマオーバフロー検出回路、120:OR
回路、121:システムバス制御部、122:リトライ状態管理
部、123:インバータ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】アドレス空間が複数ブロックに分割された
    メモリユニットと、該メモリユニットを共有し、かつ共
    通のシステムバスで接続されたマルチプロセッサシステ
    ムにおいて、任意の処理ユニットは、自処理ユニットが
    第1の他処理ユニットあるいは上記メモリユニットから
    転送待ちのブロックと同一のブロックを、第2の他処理
    ユニットが上記システムバスを介して要求した時、該同
    一のブロックを要求した第2の他処理ユニットに対し
    て、自処理ユニットが受信するブロックを同時に受信す
    ることを許可するか否かを、該第2の他処理ユニットに
    対して通知することを特徴とするシステムバス制御方
    法。
JP2291206A 1990-10-29 1990-10-29 システムバス制御方法 Expired - Lifetime JP2504323B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2291206A JP2504323B2 (ja) 1990-10-29 1990-10-29 システムバス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2291206A JP2504323B2 (ja) 1990-10-29 1990-10-29 システムバス制御方法

Publications (2)

Publication Number Publication Date
JPH04163658A JPH04163658A (ja) 1992-06-09
JP2504323B2 true JP2504323B2 (ja) 1996-06-05

Family

ID=17765835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2291206A Expired - Lifetime JP2504323B2 (ja) 1990-10-29 1990-10-29 システムバス制御方法

Country Status (1)

Country Link
JP (1) JP2504323B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091588A (ja) * 1996-09-13 1998-04-10 Nec Ic Microcomput Syst Ltd データ転送装置
JP3391315B2 (ja) 1999-10-20 2003-03-31 日本電気株式会社 バス制御装置

Also Published As

Publication number Publication date
JPH04163658A (ja) 1992-06-09

Similar Documents

Publication Publication Date Title
US5649157A (en) Memory controller with priority queues
US6199144B1 (en) Method and apparatus for transferring data in a computer system
US5237694A (en) Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor
KR100274327B1 (ko) 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US6438660B1 (en) Method and apparatus for collapsing writebacks to a memory for resource efficiency
WO1999035578A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
JP3236287B2 (ja) マルチプロセッサシステム
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JPH06222993A (ja) キャッシュメモリシステムおよびそれを実現するための方法
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6526480B1 (en) Cache apparatus and control method allowing speculative processing of data
JP2504323B2 (ja) システムバス制御方法
JP2002202960A (ja) データ処理方法および装置
US5793986A (en) Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system
JPH0511337B2 (ja)
JPH04140860A (ja) マルチプロセッサにおけるバス制御方法
JPH06309231A (ja) キャッシュメモリ制御方法
JP3187446B2 (ja) キャッシュメモリ制御装置
JP3381086B2 (ja) 排他制御可能なマルチプロセッサシステム
JP2961663B2 (ja) キャッシュメモリ制御方法
JPH06139206A (ja) マルチプロセッサシステムにおける排他制御方式
JP3381080B2 (ja) 処理の中断が可能な排他制御方式
JPH03172943A (ja) キャッシュメモリ制御方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 15