JPH06175981A - キャッシュメモリを用いた排他制御方法および排他制御システム - Google Patents

キャッシュメモリを用いた排他制御方法および排他制御システム

Info

Publication number
JPH06175981A
JPH06175981A JP5061869A JP6186993A JPH06175981A JP H06175981 A JPH06175981 A JP H06175981A JP 5061869 A JP5061869 A JP 5061869A JP 6186993 A JP6186993 A JP 6186993A JP H06175981 A JPH06175981 A JP H06175981A
Authority
JP
Japan
Prior art keywords
data
processing unit
cache memory
access
block
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
JP5061869A
Other languages
English (en)
Inventor
Tsunemichi Shiozawa
恒道 塩澤
Eiji Ishikawa
英治 石川
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 JP5061869A priority Critical patent/JPH06175981A/ja
Publication of JPH06175981A publication Critical patent/JPH06175981A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 キャッシュメモリを用いた排他制御を効率良
く行ない、マルチプロセッサやシングルプロセッサシス
テムの実効的な処理性能を向上させる。 【構成】 マルチプロセッサシステムにおいて、キャッ
シュメモリは、処理ユニットがデータへのアクセス時に
出力するロック指示情報をブロックに対応付けて登録
し、他の処理ユニットのこのデータへのアクセス時に、
この処理ユニットが出力するロック指示情報と、登録済
みのロック指示情報とに基づき、このアクセスの可否を
判定し、処理ユニットからのアクセスに対応する制御を
行ない、また、シングルプロセッサシステムにおいて
は、処理ユニットが指定する共通データに対してのみ、
メインメモリへのアクセスを行なう。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを用
いたデータ転送技術に係わり、特に、複数の処理ユニッ
トやタスクが、同時に並列にアクセスする共通データの
矛盾の発生に効率良く対処するのに好適なキャッシュメ
モリを用いた排他制御方法および排他制御システムに関
するものである。
【0002】
【従来の技術】高性能な計算機システムを、比較的に少
ない費用で構成するものに、例えば、社団法人 電子情
報通信学会編「電子情報通信ハンドブック」(1988
年、株式会社 オーム社発行)のpp.1618〜16
22に記載のマルチプロセッサがある。このマルチプロ
セッサは、複数の処理ユニット(プロセッサ)で仕事を
分散して処理を進めることにより、処理性能を向上させ
ることができる。しかし、複数の処理ユニットがメイン
メモリを共有して使用するマルチプロセッサにおいて
は、各処理ユニットが、共通データに、読み出しや書き
換えを行なう場合、他の処理ユニットとの間に矛盾が発
生する可能性がある。
【0003】例えば、処理ユニットAと、処理ユニット
Bが、メインメモリのアドレスXに格納している値
「x」に「1」を加算する場合を考える。本来、処理ユ
ニットA、および、処理ユニットBの処理が矛盾なく行
なわれると、アドレスXの値は「x+2」となる。しか
し、処理ユニットAが、アドレスXの値「x」を読み出
してからアドレスXに値「x+1」を書き込む間に、処
理ユニットBが、アドレスXの値「x」を読み出すと、
処理ユニットBも、アドレスXを、「x+1」に書き換
えることになる。
【0004】このような、他の処理ユニットとの間に矛
盾が発生しないようにするためには、共通データにアク
セスする前に、共通データへのアクセス権の獲得を行な
う。そして、アクセス権の獲得が成功した場合に、共通
データへのアクセスを行なう。また、共通データへのア
クセス終了後に、アクセス権を開放する。このアクセス
権は、共通データ毎に設けられ、同時には、1台のプロ
セッサのみにアクセス権が与えられるように制御する。
【0005】このように、マルチプロセッサにおいて
は、共通データにアクセスする前に、アクセス権を獲得
し、他の処理ユニットからの共通データへのアクセスを
抑止し、アクセス終了後には、アクセス権を開放する排
他制御が必要である。排他制御が必要となるアクセスの
組み合わせとしては、自処理ユニットの読み出しアクセ
スに対する他の処理ユニットの書き換えアクセスを禁止
するリードロックや、自処理ユニットの書き換えアクセ
スに対する他の処理ユニットの書き換えや読み出しアク
セスを禁止するライトロックがある。しかし、この技術
では、各処理ユニットが、同時に並列にアクセスする共
通データ毎に、アクセス権の確保と開放の処理を行なう
必要があり、このための処理量が増加する欠点がある。
【0006】従来、このような問題を解決するために、
同時並列にアクセスしないデータと、共通データとを厳
密に分けずに、アクセス権の確保と開放を、複数の共通
データに対して、一括して行なうことにより、アクセス
権の確保と開放回数を減らす技術がある。しかし、複数
の共通データに対して、一括してアクセス権の確保と開
放を行なうと、共通データに対して、不要な排他制御を
行なうこととなる。そのために、アクセス権の確保時間
が長くなり、複数の処理ユニットで同時並列に可能な処
理の実行が阻害される確率が大きくなる。
【0007】また、一つの処理ユニットとメインメモ
リ、および、キャッシュメモリで構成されるシングルプ
ロセッサシステムにおいて、処理ユニットで実行される
複数の処理(タスク)がアクセスする共通データで障害
(読み出しエラー等)が発生した場合、障害が、複数の
処理に影響を与えるため、高信頼化を図ることが要求さ
れる。一般に、キャッシュメモリは、メインメモリに比
べて高価であるが、処理ユニットから高速アクセスが可
能である。このキャッシュメモリに、処理ユニットから
のアクセス頻度の高いメインメモリの内容の一部を格納
することにより、処理ユニットの平均的なアクセス時間
を短くすることができる。しかし、メインメモリは、キ
ャッシュメモリに比べて、記憶するデータ内容に対する
信頼性が高い。また、データ内容が破壊されている場合
の検出能力は、キャッシュメモリ、メインメモリ共に同
程度である。
【0008】このような、処理ユニットから高速アクセ
スが可能なキャッシュメモリと、低速であるが信頼性の
高いメインメモリで、上述のシングルプロセッサシステ
ムを構成する場合、従来の技術では、高信頼化を図るこ
とが要求される共通データへのアクセスと、通常のデー
タへのアクセスとを区別することができない。そのため
に、共通データに対する高信頼化を図るには、全てのア
クセスをメインメモリに対して行なうことが必要とな
り、高速アクセスが可能なキャッシュメモリを用いるこ
とによるアクセス時間短縮のメリットがなくなる。
【0009】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の、マルチプロセッサシステムで同時並列に
アクセスする共通データ毎にアクセス権の確保と開放の
処理を行なう排他制御技術では、処理量が増加する欠点
があり、また、アクセス権の確保と開放を、複数の共通
データに対して一括して行なう排他制御技術では、アク
セス権の確保と開放の処理回数を減らすことができる
が、共通データに対して不要な排他制御を行なうことと
なり、アクセス権の確保時間が長くなってしまう点であ
り、さらに、シングルプロセッサシステムでの共通デー
タの高信頼化を図るための技術では、キャッシュメモリ
によるアクセス時間短縮のメリットがなくなってしまう
点である。本発明の目的は、これら従来技術の課題を解
決し、マルチプロセッサシステムにおいて、共通データ
への各処理ユニットのアクセス権の確保と開放に係わる
処理量を軽減し、各処理ユニットの実効的な処理性能を
向上させることを可能とすると共に、シングルプロセッ
サシステムにおいて、高信頼なデータを高速にアクセス
することを可能とするキャッシュメモリを用いた排他制
御方法および排他制御システムを提供することである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明のマルチプロセッサの排他制御方法は、
(1)複数の処理ユニットと、この複数の処理ユニット
で共有され、各処理ユニットからのアクセス対象となる
データを格納するメインメモリと、このメインメモリに
格納されているデータをブロック単位で格納し、複数の
処理ユニットからのアクセスを受ける複数の処理ユニッ
トで共有されるキャッシュメモリとからなるマルチプロ
セッサの、複数の処理ユニットの同一データへのアクセ
スを制御してデータの矛盾を回避する排他制御方法にお
いて、処理ユニットは、メインメモリに格納されたデー
タへのアクセス時に、このデータへの他のアクセスを制
御するロック指示情報を出力し、キャッシュメモリは、
処理ユニットが出力するロック指示情報の内容を、この
データを含むブロックに対応付けて登録し、このロック
指示情報の内容を登録したブロックに含まれるデータへ
の任意の処理ユニットからのアクセス時には、このアク
セスしてきた処理ユニットが出力するロック指示情報の
内容と、登録済みのロック指示情報の内容とに基づき、
この処理ユニットのデータへのアクセスの可否を判定
し、この可否の判定結果に対応して、アクセスしてきた
処理ユニットのアクセスを制御することを特徴とする。
また、(2)上記(1)に記載のマルチプロセッサの排
他制御方法において、キャッシュメモリは、ロック指示
情報の内容に基づき、アクセスしてきた処理ユニットの
アクセスがデータの矛盾を発生させると判定した場合に
は、アクセスしてきた処理ユニットに対して、アクセス
が禁止されているブロックのデータにアクセスを行なっ
た旨を通知することを特徴とする。また、(3)上記
(1)、もしくは、(2)のいずれかに記載のマルチプ
ロセッサの排他制御方法において、キャッシュメモリ
は、処理ユニットからのアクセス時に、アクセスの対象
となるデータを含むブロックがない場合には、ロック指
示情報の内容との対応付けがなされていないブロックを
選択し、この選択したブロックを、アクセスの対象とな
るデータを含むブロックと入れ換えることを特徴とす
る。また、(4)上記(1)から(3)のいずれかに記
載のマルチプロセッサの排他制御方法において、キャッ
シュメモリは、任意の処理ユニットからの指示に基づ
き、各々のブロックに対応付けて登録した全てのロック
指示情報の内容を削除することを特徴とする。また、
(5)本発明のマルチプロセッサの排他制御システム
は、複数の処理ユニットと、この複数の処理ユニットで
共有され、各処理ユニットからのアクセス対象となるデ
ータを格納するメインメモリと、このメインメモリに格
納されているデータをブロック単位で格納する複数のエ
ントリからなるキャッシュメモリとを具備し、このキャ
ッシュメモリにより、複数の処理ユニットからのエント
リ内の同一データへのアクセスを制御して、データの矛
盾を回避するマルチプロセッサの排他制御システムにお
いて、キャッシュメモリの各々のエントリに、処理ユニ
ットがメインメモリに格納されたデータへのアクセス時
に出力するこのデータへの他のアクセスを制御するロッ
ク指示情報の内容を登録するロック状態部を設け、キャ
ッシュメモリは、任意の処理ユニットからのメインメモ
リに格納されているデータへのアクセス時に、このアク
セスの対象となるデータを格納するエントリのロック状
態部の登録内容と、アクセスしてきた処理ユニットが出
力するロック指示情報の内容とに基づき、処理ユニット
のアクセスの可否を判定し、この可否の判定結果に対応
して、アクセスしてきた処理ユニットのアクセスを制御
することを特徴とする。また、(6)メインメモリへア
クセスして処理を実行する処理ユニットにおいて、処理
ユニットで実行される複数の処理の間で共通にアクセス
される共通データへのアクセス時には、この共通データ
へのアクセスであることを示す識別信号を出力すること
を特徴とする。また、(7)上記(6)に記載の処理ユ
ニットがアクセスするメインメモリのデータを格納し、
処理ユニットからのアクセスに対して高速なデータ転送
制御を行なうキャッシュメモリを用いた排他制御方法に
おいて、処理ユニットから、データの書き換え依頼と共
に識別信号が出力された場合には、キャッシュメモリお
よびメインメモリの各々のデータを書き換えることを特
徴とする。また、(8)上記(7)に記載のキャッシュ
メモリを用いた排他制御方法において、キャッシュメモ
リは、共通データの転送制御中での障害の検出時に、メ
インメモリに格納されている共通データを使用して、障
害を受けた共通データの回復処理を行なうことを特徴と
する。
【0011】
【作用】本発明においては、マルチプロセッサシステム
の各処理ユニットは、共通データにアクセスする際に、
当該データに対してアクセスするための情報と共に、当
該データに対する他の処理ユニットからのアクセスを禁
止するロック指示情報を出力する。そして、各処理ユニ
ットから共通にアクセスされるキャッシュメモリは、こ
のロック指示情報に基づき、当該データを含むブロック
をロック状態として管理し、他の処理ユニットから、ロ
ック状態のブロックへのアクセスおよび矛盾したロック
指示が発生した場合には、矛盾が発生した旨の通知をし
て、他の処理ユニットで実行中の処理を中断、または、
無効化(中止)させる。このことにより、各処理ユニッ
トが同時並列にアクセスする共通データへのアクセス権
の確保と開放に係わる処理量の増加を軽減でき、処理ユ
ニットの実効的な処理性能の低下を回避することが可能
となる。また、シングルプロセッサシステムのキャッシ
ュメモリは、処理ユニットからのアクセスが、各タスク
の共通データに対する書き換えであれば、キャッシュメ
モリのエントリとメインメモリのブロックを書き換え
る。このように、高信頼化が要求される共通データへの
書き換えアクセスの場合には、メインメモリの書き換え
も行ない、キャッシュメモリの障害に対処する。また、
共通データのみに対して、メインメモリへのアクセスを
行なうので、高信頼化のために生じる処理ユニットのア
クセス時間の増加を削減することができる。
【0012】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1および図2は、本発明のキャッシュメモ
リを用いた排他制御方法の第1の実施例を示すフローチ
ャートであり、図3は、その実施に使用するマルチプロ
セッサシステムの本発明に係わる構成を示すブロック図
である。図3において、1〜3は、それぞれ分散して処
理を行なう処理ユニット、4は、各処理ユニット1〜3
で共有されるメインメモリ、5は、各処理ユニット1〜
3で共有され、本発明に係わる排他制御を行なうキャッ
シュメモリ、6は、メインメモリ4とキャッシュメモリ
5を接続するメモリバス、7は、各処理ユニット1〜3
とキャッシュメモリ5を接続するキャッシュバス、8
は、各処理ユニット1〜3のバスの使用権を制御するバ
スマスタコントローラ、9〜14は、それぞれ、各処理
ユニット1〜3とバスマスタコントローラを接続する信
号線である。
【0013】また、キャッシュバス7は、各処理ユニッ
ト1〜3から送出されるアドレスを伝達するためのアド
レスバス71と、各処理ユニット1〜3とキャッシュメ
モリ5の間でやり取りされるデータを伝達するためのデ
ータバス72と、各処理ユニット1〜3から送出される
アクセスの内容を伝達するためのアクセス種別バス73
と、各処理ユニット1〜3から送出されるロック指示情
報を伝達するためのロック指示バス74と、各処理ユニ
ット1〜3から送出されるロックの開放指示情報を伝達
するためのアンロック指示バス75と、各処理ユニット
1〜3から送出されるロック指示の種別を伝達するため
のロック種別バス76と、キャッシュメモリ5から送出
される各処理ユニット1〜3からのアクセスに対応する
制御結果を伝達するための転送応答バス77、および、
矛盾応答バス78とからなる。
【0014】また、メインメモリ4は、同じ大きさのブ
ロックに分割され、メモリバス6を介して、ブロック単
位に、メモリの内容を、キャッシュメモリ5に転送す
る。キャッシュメモリ5は、複数のエントリからなり、
各エントリは、ブロックのアドレスを格納するアドレス
情報部51と、ブロックを格納するブロックデータ部5
2と、本発明に係わり、ロック指示情報に基づくロック
状態を示すロック状態部(図中、Lと記載)53と、エ
ントリに格納されている内容が有効であるか無効である
かを示すバリッド部(図中、Bと記載)54と、アドレ
ス情報部51に格納されているブロックアドレスで指定
されるメインメモリ上のブロックの内容が、ブロックデ
ータ部52に格納されているブロックの内容と一致して
いるか否かを示すモディファイ部(図中、Mと記載)5
5からなる。尚、キャッシュメモリ5の各エントリのロ
ック状態部53は、ロック状態リセット指示信号56で
強制的にリセットされる。
【0015】以下、メインメモリ5のアドレスaで指定
されるデータを含むブロックをBaとし、処理ユニット
1が、このブロックBaをアクセスする場合の動作を説
明する。処理ユニット1は、アドレスaで指定されるデ
ータの読み出し、または、書き換えアクセスを行なうと
き、信号線9を介して、キャッシュバス4の使用要求
を、バスマスタコントローラ8に通知する。バスマスタ
コントローラ8は、予め定められた手続きに従い、一つ
の処理ユニットにのみ、キャッシュバス4の使用許可を
与える。すなわち、信号線10を介して、キャッシュバ
ス4の使用許可を、処理ユニット1に与える。このよう
にして、キャッシュバス4の使用許可が与えられたと
き、処理ユニット1は、アドレスaを、アドレスバス7
1に出力し、読み出し、または、書き換えの種別を、ア
クセス種別バス73に出力する。
【0016】ここで、書き換えの場合には、書き換えデ
ータをデータバス72に出力し、さらに、ロック指示を
行なう場合には、ロック指示バス74を「オン」とし、
また、アンロック指示を行なう場合には、アンロック指
示バス75を、「オン」とし、ロック/アンロックのロ
ック種別(値「0」は、リードロックを示し、値「1」
は、ライトロックを示す)を、ロック種別バス76に出
力する。
【0017】このような情報をキャッシュバス7を介し
て入力したキャッシュメモリ5の本発明に係わる処理動
作を、図1、および、図2のフローチャートを用いて説
明する。まず、図1における処理の説明を行なう。図3
の処理ユニット1が、図3のメインメモリ4のa番地の
ブロックBaにアクセスしたならば、図3のアドレスバ
ス71に出力されているアドレスaを入力し(ステップ
101)、アドレスaのデータを含むブロックBaを格
納するエントリEが存在し、かつ、そのエントリEのバ
リッド部が「1(有効)」であるか否かをチェックする
(ステップ102)。ブロックBaを格納するエントリ
Eが存在する場合には、そのまま、図2に示す処理に移
る。しかし、ブロックBaを格納するエントリEが存在
しない場合には、図3のロック状態部53の値が「0
(ロック状態でない)」であるエントリEを選択し(ス
テップ103)、このエントリEの図3におけるモディ
ファイ部55の値が「1(エントリEの図3におけるブ
ロックデータ部52とアドレス情報部51で指定される
図3のメインメモリ4のブロックが不一致)」であるか
否かをチェックする(ステップ104)。
【0018】ここで、選択したエントリEの図3におけ
るモディファイ部55の値が「1」であれば、ブロック
Baの最新の内容は、図3のキャッシュメモリ5に存在
するので、図3のキャッシュメモリ5は、図3のメモリ
バス6を介して、選択したエントリEの図3におけるブ
ロックデータ部52のブロックの内容で、図3における
アドレス情報部51で指定される図3のメインメモリ4
のブロックを書き換え、図3におけるモディファイ部5
5を「0(エントリEの図3におけるブロックデータ部
52と、アドレス情報部51で指定される図3のメイン
メモリ4のブロックが一致)」とする(書き戻し)(ス
テップ105)。次に、図3のメモリバス6を介して、
図3のメインメモリ4からブロックBaを転送し(ステ
ップ106)、ブロックBaを選択したエントリEの図
3におけるブロックデータ部52に、また、図3のアド
レスバス71から入力したアドレスを図3のアドレス情
報部51に、さらに、バリッド部54に「1(エントリ
Eが有効)」を格納する(ステップ107)。そして、
次の図2に示す処理に移る。
【0019】以下、図2における処理の説明を行なう。
図3のロック種別バス76で入力される処理ユニットか
らの指示が、図3のアクセス種別バス73を介してのキ
ャッシュメモリへの読みだし指示(リードロック)か、
書き換え指示(ライトロック)かをチェックする(ステ
ップ108)。ここで、リードロックが指示されている
場合には、図3のロック指示バス74が「オン」で(ス
テップ109)、かつ、エントリEの図3におけるロッ
ク状態部53の値が「3」の場合は(ステップ11
0)、図3の矛盾応答バス78に「オン」を出力して、
図3の処理ユニット1に矛盾(ライトロック中のブロッ
クに対してリードロックを要求)が発生したことを通知
する(ステップ111)。
【0020】しかし、ステップ110において、図3の
ロック状態部53の値が「3」より小さい場合は、エン
トリEの図3におけるロック状態部53の値を1加算し
(ステップ112)、エントリEの図3におけるブロッ
クデータ部52に格納されているブロック内のアドレス
aで指定されるデータを、図3のデータバス72に出力
する(ステップ113、114)。尚、この時、図3の
転送応答バス77に「オン」を出力して、図3の処理ユ
ニット1に要求されたデータを転送したことを通知する
(ステップ122)。
【0021】ステップ109において、図3のアンロッ
ク指示バス75が「オン」の場合は、エントリEの図3
におけるロック状態部53の値を1減算し(ステップ1
15)、また、図3のロック指示バス74、および、ア
ンロック指示バス75が「オフ」の場合はそのまま、ス
テップ113、114の処理に移り、要求されたデータ
を転送したことを図3の処理ユニット1に通知する(ス
テップ122)。また、ステップ108において、図3
のロック種別バス76にライトロックが指示されている
場合には、図3のロック指示バス74が「オン」で(ス
テップ116)、かつ、エントリEの図3におけるロッ
ク状態部53の値が「0」でない場合は(ステップ11
7)、ステップ111に進み、図3の矛盾応答バス78
に「オン」を出力して、図3の処理ユニット1に矛盾
(リードロック、または、ライトロック中のブロックに
対してライトロックを要求)が発生したことを通知す
る。
【0022】ステップ117において、エントリEの図
3におけるロック状態部53の値が「0」の場合は、こ
のロック状態部の値を「3」とし(ステップ118)、
エントリEの図3におけるブロックデータ部52に格納
されているブロックBa内のアドレスaで指定されるデ
ータを、図3のデータバス72に出力されている内容で
書き換え(ステップ113、119)、図3のモディフ
ァイ部55の値を「1(エントリEの図3におけるブロ
ックデータ部52のブロックBaと、図3のメインメモ
リ4のブロックBaが不一致)」とする(ステップ12
0)。その後、図3の転送応答バス77に「オン」を出
力して、図3の処理ユニット1の指示でデータを書き換
えたことを通知する(ステップ122)。尚、ステップ
118において、ロック状態部の値を「3」とするの
は、図3に示す本実施例の処理ユニット1〜3の数
「3」に対応するものである。
【0023】また、ステップ117において、図3のア
ンロック指示バス75が「オン」の場合は、エントリE
の図3におけるロック状態部53の値を「0」とし(ス
テップ121)、上述のステップ113、119、12
0の処理を行ない、図3の転送応答バス77に「オン」
を出力して、図3の処理ユニット1の指示でデータを書
き換えたことを通知する(ステップ122)。尚、ステ
ップ111における図3の処理ユニット1に矛盾が発生
したことの通知や、ステップ114における要求された
データを図3の処理ユニット1に転送したことの通知、
または、ステップ120における図3の処理ユニット1
の指示でデータを書き換えたことの通知を受けた図3の
処理ユニット1は、図3の信号線9を介して、図3のキ
ャッシュバス7の使用を終了したことをバスマスタコン
トローラ6に知らせる。
【0024】また、ステップ111において、図3の矛
盾応答バス78を介して矛盾が発生したことが通知され
ると、図3の処理ユニット1は、実行中の処理を中断し
て、予め定められた時間が経過した後に処理を再開する
か、または、実行中の処理が書き換えた図3のメインメ
モリ4の内容を、実行の開始する時点の内容に戻す処
理、および、ロックしたブロックのアンロック指示を行
なって実行中の処理を中止し、予め定められた時間を経
過した後に処理を最初から実行する。このようにするこ
とにより、図3の各処理ユニット1〜3が同時に並列に
アクセスする共通データアクセス権の確保/開放の処理
を、各処理ユニットが、共通データにアクセスする処理
と同時に行なうことが可能となり、共通データのアクセ
ス権の確保と開放に係わる各処理ユニットの処理量の増
加が生じず、処理ユニットの実効的な処理性能の低下を
防ぐことができる。
【0025】尚、上述の処理において、図3の全ての処
理ユニット1〜3で実行中の処理について、共通データ
へのアクセスを禁止することが不要となったとき、いず
れかの処理ユニットが、図3のキャッシュメモリ5に対
して、ロック状態の解除を通知する。この通知に基づ
き、図3のキャッシュメモリ5は、図3に示すエントリ
のロック状態リセット指示信号56をオンとし、全ての
エントリのロック状態部の値を「0」とする。これによ
り、処理ユニットの障害により誤ってロック状態となっ
た共通データへのロックを解除する場合において、ロッ
クを解除するためのアクセス(アンロック指示と共に、
当該ブロックへのアクセスを行なう)を、共通データを
格納しているブロック毎に行なうことが不要となり、ロ
ック解除のための処理ユニットからのアクセス回数を削
減できる。
【0026】上述の第1の実施例では、マルチプロセッ
サシステムにおける排他制御技術の説明を行なったが、
次に、図4〜図6を用いて、シングルプロセッサシステ
ムに関しての説明を行なう。図4および図5は、本発明
のキャッシュメモリを用いた排他制御方法の第2の実施
例を示すフローチャートであり、図6は、その実施に使
用するシングルプロセッサシステムの本発明に係わる構
成を示すブロック図である。図6において、61は、複
数のタスクを分割して並列に処理する処理ユニット、6
2は、処理ユニット61がアクセスするデータを格納す
るメインメモリ、63は、メインメモリ62に格納され
ているブロック単位のデータを、各エントリ64〜65
に格納し、このエントリ64〜65を介して、処理ユニ
ット61からのアクセスに対するデータの転送制御を行
なう本発明に係わるキャッシュメモリ、66は、処理ユ
ニット61とキャッシュメモリ63とを接続するキャッ
シュバス、そして、67は、キャッシュメモリ63とメ
インメモリ62を接続するメモリバスである。
【0027】キャッシュバス66は、処理ユニット61
から送出されるアドレスを伝達するためのアドレスバス
66aと、処理ユニット61とキャッシュメモリ63間
でやり取りされるデータを伝達するためのデータバス6
6bと、処理ユニット1から送出されるアクセスの内容
を伝達するためのアクセス種別バス66cと、処理ユニ
ット61から送出される共通データへのアクセス情報を
伝達するための共通データバス66dと、キャッシュメ
モリ63から送出される処理ユニット1からのアクセス
に対応する制御結果を伝達するための転送応答バス66
eとからなる。メインメモリ62は、同じ大きさのブロ
ックに分割され、メモリバス67を介して、ブロック単
位に、メモリの内容をキャッシュメモリ63に転送す
る。
【0028】本発明に係わるキャッシュメモリ63は、
複数のエントリ64〜65と、処理中に発生する障害を
検出する障害検出部68からなり、各エントリ64〜6
5は、エントリ64で示すように、ブロックのアドレス
を格納するアドレス情報部641と、ブロックを格納す
るブロックデータ部642と、エントリ64に格納され
ている内容が有効であるか無効であるかを示すバリッド
部643と、アドレス情報部641に格納されているブ
ロックアドレスで指定されるメインメモリ62上のブロ
ックの内容が、ブロックデータ部642に格納されてい
るブロックの内容と一致しているか否かを示すモディフ
ァイ部644と、信号線69に入力されたブロックアド
レスとアドレス情報部641との内容とを比較し、一致
している場合に出力を「オン」とする比較器645と、
この比較器645の出力が「オン」で、かつ、バリッド
部643の値が「1(有効)」の場合に、信号線70に
「オン」を出力するアンドゲート646とにより構成さ
れている。また、障害検出部66は、の内部での処理に
おいて発生した障害を検出し、この障害の内容に応じ
て、キャッシュメモリ63は、自律的に、特定のエント
リ、または、キャッシュメモリ63の全てのエントリを
無効化し、必要に応じて、キャッシュメモリ63のエン
トリ64〜65へのアクセスを行なわず、処理ユニット
61からの全てのアクセスをメインメモリ62に対して
行なう。
【0029】以下、メインメモリ62のアドレスaで指
定されるデータを含むブロックをBaとし、処理ユニッ
ト61が、このブロックBaをアクセスする場合の動作
を説明する。処理ユニット61は、アドレスaで指定さ
れるデータの読み出し、または、書き換えアクセスを行
なうとき、アドレスaをアドレスバス66aに出力し、
「読み出し」または「書き換え」の種別をアクセス種別
バス65cに出力し、書き換えの場合には、書き換えデ
ータをデータバス66bに出力し、共通データへのアク
セスであれば、共通データバス65dに「オン」を出力
する。このような情報をキャッシュバス65を介して入
力したキャッシュメモリ63の本発明に係わる処理動作
を、図4、および、図5のフローチャートを用いて説明
する。
【0030】まず、図4における処理の説明を行なう。
図6の処理ユニット61が、図6のメインメモリ62の
a番地のブロックBaにアクセスしたならば、図6のア
ドレスバス66aに出力されているアドレスaを入力し
(ステップ401)、アドレスaのデータを含むブロッ
クBaを格納するエントリEが存在し、かつ、そのエン
トリEのバリッド部が「1」であるか否かをチェックす
る(ステップ402)。ブロックBaを格納するエント
リEが存在する場合には、そのまま、図5に示す処理に
移る。しかし、ブロックBaを格納するエントリEが存
在しない場合には、予め定められた手続きにより、エン
トリEを選択する(ステップ403)。選択したエント
リEの図6におけるモディファイ部644の値が「1
(エントリEの図6におけるブロックデータ部642と
アドレス情報部641で指定される図6のメインメモリ
62のブロックが不一致)」であるか否かをチェックす
る(ステップ404)。
【0031】ここで、選択したエントリEの図6におけ
るモディファイ部644の値が「1」であれば、ブロッ
クBaの最新の内容は、図6のキャッシュメモリ63に
存在するので、図6のキャッシュメモリ63は、図6の
メモリバス67を介して、選択したエントリEの図6に
おけるブロックデータ部642のブロックの内容で、図
6におけるアドレス情報部641で指定される図6のメ
インメモリ62のブロックを書き換え、図6におけるモ
ディファイ部644を「0(エントリEの図6における
ブロックデータ部642と、アドレス情報部641で指
定される図6のメインメモリ62のブロックが一致)」
とする(書き戻し)(ステップ405)。次に、図6の
メモリバス67を介して、図6のメインメモリ62から
ブロックBaを転送し(ステップ406)、ブロックB
aを、選択したエントリEの図6におけるブロックデー
タ部642に、また、図6のアドレスバス66aから入
力したアドレスを、図6のアドレス情報部641に、さ
らに、バリッド部643に「1(エントリEが有効)」
を格納する(ステップ407)。そして、次の図5に示
す処理に移る。
【0032】以下、図5における処理の説明を行なう。
図6の共通データバス65dが「オン(共通データへの
アクセス)」か「オフ(個別データへのアクセス)」か
ら判別する(ステップ408)。図6の共通データバス
65dが「オフ」で、図6のアクセス種別バス65cに
「読み出し」が出力されている場合(ステップ40
9)、エントリEの図6のブロックデータ部642に格
納されているブロック内のアドレスaで指定されるデー
タを、図6のデータバス66bに出力する(ステップ4
10)。そして、図6の転送応答バス65eに「オン」
を出力して、要求されたデータを転送したことを、図6
の処理ユニット61に通知する(ステップ411)。
【0033】また、ステップ409で、図6のアクセス
種別バス65cに「書き換え」が出力されている場合、
エントリEの図6のブロックデータ部642に格納され
ているブロック内のアドレスaで指定されるデータを、
図6のデータバス66bに出力されている内容で書き換
える(ステップ412)。そして、エントリEの図6の
モディファイ部644に「1(エントリEの図6のブロ
ックデータ部642とエントリEのアドレス情報部64
1で指定される図6のメインメモリ62のブロックが不
一致)」を設定して(ステップ413)、ステップ41
1に進み、図6の転送応答バス65eに「オン」を出力
して、要求されたデータを転送したことを、図6の処理
ユニット61に通知する。
【0034】また、ステップ408で、図6の共通デー
タバス65dが「オン(共通データへのアクセス)」
で、図6のアクセス種別バス65cに「読み出し」が出
力されている場合(ステップ414)、ステップ41
0、411の処理を行ない、エントリEに格納している
アドレスaで指定されるデータを、図6の処理ユニット
61に転送する。しかし、ステップ414で、図6のア
クセス種別バス65cに「書き換え」が出力されている
場合、エントリEの図6のブロックデータ部642に格
納されているブロック内のアドレスaで指定されるデー
タを、図6のデータバス66bに出力されている内容で
書き換える(ステップ415)と共に、図6のメモリバ
ス67を介して、図6のメインメモリ62のアドレスa
で指定されるデータを、図6のデータバス65bに出力
されている内容で書き換える(ステップ416)。そし
て、ステップ411に進み、図6の転送応答バス65e
に「オン」を出力して、図6の処理ユニット61にアク
セスの完了を通知する。
【0035】このように、共通データの書き換えアクセ
スに対しては、メインメモリの内容も書き換える。この
ことにより、図6のキャッシュメモリ63は、図6の障
害検出部68で、処理中に障害を検出した場合、障害と
なったエントリ、または、全てのエントリを無効化して
も、共通データの最新の内容は、図6のメインメモリ6
2に格納されており、障害時には、これらのデータを使
用することにより、容易に回復処理および処理の継続を
行なうことができる。また、高信頼化のために生じる図
6の処理ユニット61からのアクセス時間の増加を削減
することが可能となる。
【0036】以上、図1〜図6を用いて説明したよう
に、本第1、第2の実施例のキャッシュメモリを用いた
排他制御技術では、マルチプロセッサシステム、およ
び、シングルプロセッサシステムのそれぞれにおいて、
効率の良い排他制御を行なうことができる。例えば、第
1の実施例のマルチプロセッサシステムでの排他制御で
は、各処理ユニットから共通にアクセスされるキャッシ
ュメモリは、処理ユニットがアクセス中のデータを含む
ブロックをロック状態として管理し、他の処理ユニット
から、ロック状態のブロックへのアクセスが発生した場
合、この処理ユニットに矛盾が発生した旨の通知をし
て、他の処理ユニットで実行中の処理を中断、または、
無効化(中止)させる。このようにすることにより、各
処理ユニットのデータへのアクセスと同時に、アクセス
権の確保と開放の処理を行なうことができ、アクセス権
の確保および開放のための処理ユニットのオーバヘッド
を回避でき、処理ユニットの実効的な性能を向上させる
ことができる。また、一般に、排他制御の対象となる共
通データを含むブロックは、メインメモリ全体のブロッ
クに比べて少ない。本実施例では、排他制御のためのロ
ック情報を、メインメモリの全てのブロック毎に管理せ
ず、キャッシュメモリに格納しているブロックについて
のみ管理するので、ロック情報を格納するための記憶容
量を大幅に削減することが可能となる。
【0037】また、第2の実施例のシングルプロセッサ
システムでの排他制御では、高信頼化が必要な共通デー
タの書き換えのみを選択的に高信頼なメインメモリに対
して行ない、他のアクセスはキャッシュメモリに対して
のみ行なうことにより、共通データに対する高信頼性を
損なうことなく、キャッシュメモリによる高速なデータ
転送を行なうことができる。
【0038】尚、本発明は、図1〜図6を用いて説明し
た実施例に限定されるものではなく、その要旨を逸脱し
ない範囲において種々変更可能である。例えば、第1の
実施例では、マルチプロセッサシステムを、3つの処理
ユニットからなる構成で示したが、本発明は、このよう
な3つの処理ユニットからなるマルチプロセッサに限定
されるものではなく、例えば、4つの処理ユニットを用
いる場合にも、ロック状態部の値を「4」とすることに
より適用可能である。
【0039】
【発明の効果】本発明によれば、マルチプロセッサシス
テムにおいて、共通データへの各処理ユニットのアクセ
ス権の確保と開放に係わる処理量を軽減でき、各処理ユ
ニットの実効的な処理性能を向上させ、マルチプロセッ
サシステムの性能を向上させることが可能であると共
に、シングルプロセッサシステムにおいて、メインメモ
リへのアクセスを、共通データへのアクセスに対しての
みに限定することができ、共通データを高信頼に保った
ままでの、キャッシュメモリによる高速なデータ転送が
可能である。
【図面の簡単な説明】
【図1】本発明のキャッシュメモリを用いた排他制御方
法の第1の実施例を示すフローチャートの一部である。
【図2】本発明のキャッシュメモリを用いた排他制御方
法の第1の実施例を示すフローチャートの残りの部分で
ある。
【図3】本発明のキャッシュメモリを用いた排他制御に
使用するマルチプロセッサシステムの本発明に係わる構
成を示すブロック図である。
【図4】本発明のキャッシュメモリを用いた排他制御方
法の第2の実施例を示すフローチャートの一部である。
【図5】本発明のキャッシュメモリを用いた排他制御方
法の第2の実施例を示すフローチャートの残りの部分で
ある。
【図6】本発明のキャッシュメモリを用いた排他制御に
使用するシングルプロセッサシステムの本発明に係わる
構成を示すブロック図である。
【符号の説明】
1〜3 処理ユニット 4 メインメモリ 5 キャッシュメモリ 6 メモリバス 7 キャッシュバス 8 バスマスタコントローラ 9〜14 信号線 51 アドレス情報部 52 ブロックデータ部 53 ロック状態部 54 バリッド部 55 モディファイ部 56 ロック状態リセット指示信号 61 処理ユニット 62 メインメモリ 63 キャッシュメモリ 64〜65 エントリ 66 キャッシュメモリバス 66a アドレスバス 66b データバス 66c アクセス種別バス 66d 共通データバス 66e 転送応答バス 67 メモリバス 68 障害検出部 69、70 信号線 71 アドレスバス 72 データバス 73 アクセス種別バス 74 ロック指示バス 75 アンロック指示バス 76 ロック種別バス 77 転送応答バス 78 矛盾応答バス 641 アドレス情報部 642 ブロックデータ部 643 バリッド部 644 モディファイ部 645 比較器 646 アンドゲート

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数の処理ユニットと、該複数の処理ユ
    ニットで共有され、各処理ユニットからのアクセス対象
    となるデータを格納するメインメモリと、該メインメモ
    リに格納されているデータをブロック単位で格納し、上
    記複数の処理ユニットからのアクセスを受ける上記複数
    の処理ユニットで共有されるキャッシュメモリとからな
    るマルチプロセッサの、上記複数の処理ユニットの同一
    データへのアクセスを制御して、データの矛盾を回避す
    る排他制御方法において、上記処理ユニットは、上記メ
    インメモリに格納されたデータへのアクセス時に、該デ
    ータへの他のアクセスを制御するロック指示情報を出力
    し、上記キャッシュメモリは、上記処理ユニットが出力
    する上記ロック指示情報の内容を、該データを含むブロ
    ックに対応付けて登録し、該ロック指示情報の内容を登
    録したブロックに含まれるデータへの任意の処理ユニッ
    トからのアクセス時には、該アクセスしてきた処理ユニ
    ットが出力するロック指示情報の内容と、上記登録済み
    のロック指示情報の内容とに基づき、該処理ユニットの
    上記データへのアクセスの可否を判定し、該可否の判定
    結果に対応して、上記アクセスしてきた処理ユニットの
    アクセスを制御することを特徴とするキャッシュメモリ
    を用いた排他制御方法。
  2. 【請求項2】 請求項1に記載のキャッシュメモリを用
    いた排他制御方法において、上記キャッシュメモリは、
    上記ロック指示情報の内容に基づき、上記アクセスして
    きた処理ユニットのアクセスが上記データの矛盾を発生
    させると判定した場合には、上記アクセスしてきた処理
    ユニットに対して、アクセスが禁止されているブロック
    のデータにアクセスを行なった旨を通知することを特徴
    とするキャッシュメモリを用いた排他制御方法。
  3. 【請求項3】 請求項1、もしくは、請求項2のいずれ
    かに記載のキャッシュメモリを用いた排他制御方法にお
    いて、上記キャッシュメモリは、上記処理ユニットから
    のアクセス時に、アクセスの対象となるデータを含むブ
    ロックがない場合には、上記ロック指示情報の内容との
    対応付けがなされていないブロックを選択し、該選択し
    たブロックを、上記アクセスの対象となるデータを含む
    ブロックと入れ換えることを特徴とするキャッシュメモ
    リを用いた排他制御方法。
  4. 【請求項4】 請求項1から請求項3のいずれかに記載
    のキャッシュメモリを用いた排他制御方法において、上
    記キャッシュメモリは、上記任意の処理ユニットからの
    指示に基づき、上記各々のブロックに対応付けて登録し
    た全てのロック指示情報の内容を削除することを特徴と
    するキャッシュメモリを用いた排他制御方法。
  5. 【請求項5】 複数の処理ユニットと、該複数の処理ユ
    ニットで共有され、各処理ユニットからのアクセス対象
    となるデータを格納するメインメモリと、該メインメモ
    リに格納されているデータをブロック単位で格納する複
    数のエントリからなるキャッシュメモリとを具備し、該
    キャッシュメモリにより、上記複数の処理ユニットから
    の上記エントリ内の同一データへのアクセスを制御し
    て、データの矛盾を回避するキャッシュメモリを用いた
    排他制御システムにおいて、上記キャッシュメモリの各
    々のエントリに、上記処理ユニットが上記メインメモリ
    に格納されたデータへのアクセス時に出力する該データ
    への他のアクセスを制御するロック指示情報の内容を登
    録するロック状態手段を設け、上記キャッシュメモリ
    は、任意の処理ユニットからの上記メインメモリに格納
    されているデータへのアクセス時に、該アクセスの対象
    となるデータを格納するエントリのロック状態手段の登
    録内容と、上記アクセスしてきた処理ユニットが出力す
    るロック指示情報の内容とに基づき、該処理ユニットの
    アクセスの可否を判定し、該可否の判定結果に対応し
    て、上記アクセスしてきた処理ユニットのアクセスを制
    御することを特徴とするキャッシュメモリを用いた排他
    制御システム。
  6. 【請求項6】 メインメモリへアクセスして処理を実行
    する処理ユニットにおいて、該処理ユニットで実行され
    る複数の処理の間で共通にアクセスされる共通データへ
    のアクセス時には、該共通データへのアクセスであるこ
    とを示す識別信号を出力することを特徴とする処理ユニ
    ット。
  7. 【請求項7】 請求項6に記載の処理ユニットがアクセ
    スするメインメモリのデータを格納し、上記処理ユニッ
    トからのアクセスに対して高速なデータ転送制御を行な
    うキャッシュメモリを用いた排他制御方法において、上
    記処理ユニットから、データの書き換え依頼と共に上記
    識別信号が出力された場合には、上記キャッシュメモリ
    および上記メインメモリの各々のデータを書き換えるこ
    とを特徴とするキャッシュメモリを用いた排他制御方
    法。
  8. 【請求項8】 請求項7に記載のキャッシュメモリを用
    いた排他制御方法において、上記キャッシュメモリは、
    上記共通データの転送制御中での障害の検出時には、上
    記メインメモリに格納されている共通データを使用し
    て、該障害を受けた共通データの回復処理を行なうこと
    を特徴とするキャッシュメモリを用いた排他制御方法。
JP5061869A 1992-10-05 1993-03-22 キャッシュメモリを用いた排他制御方法および排他制御システム Pending JPH06175981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5061869A JPH06175981A (ja) 1992-10-05 1993-03-22 キャッシュメモリを用いた排他制御方法および排他制御システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP26522792 1992-10-05
JP4-265227 1992-10-05
JP5061869A JPH06175981A (ja) 1992-10-05 1993-03-22 キャッシュメモリを用いた排他制御方法および排他制御システム

Publications (1)

Publication Number Publication Date
JPH06175981A true JPH06175981A (ja) 1994-06-24

Family

ID=26402955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5061869A Pending JPH06175981A (ja) 1992-10-05 1993-03-22 キャッシュメモリを用いた排他制御方法および排他制御システム

Country Status (1)

Country Link
JP (1) JPH06175981A (ja)

Similar Documents

Publication Publication Date Title
US6122712A (en) Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US7861095B2 (en) Data processing apparatus security
JPH06243035A (ja) コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶
JPH0576060B2 (ja)
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
WO2010097925A1 (ja) 情報処理装置
JP3814521B2 (ja) データ処理方法および装置
JPH04155465A (ja) ファイル共用方法
JP3381079B2 (ja) キャッシュメモリを用いた排他制御システム
JP3381086B2 (ja) 排他制御可能なマルチプロセッサシステム
JPH06175981A (ja) キャッシュメモリを用いた排他制御方法および排他制御システム
JPH06139206A (ja) マルチプロセッサシステムにおける排他制御方式
JPH04305746A (ja) キャッシュメモリ制御装置
JP3381080B2 (ja) 処理の中断が可能な排他制御方式
JPS6153747B2 (ja)
JPS6113261B2 (ja)
JP2504323B2 (ja) システムバス制御方法
CN116685958A (zh) 一种访问数据的方法和装置
JPH04140860A (ja) マルチプロセッサにおけるバス制御方法
JPS6250863B2 (ja)
JPH0635866A (ja) マルチプロセッサシステム
JPH07262089A (ja) ロックアクセス制御方法および情報処理装置
JPS6138504B2 (ja)
JP2710475B2 (ja) メモリ制御回路