JPH07262089A - ロックアクセス制御方法および情報処理装置 - Google Patents

ロックアクセス制御方法および情報処理装置

Info

Publication number
JPH07262089A
JPH07262089A JP6047039A JP4703994A JPH07262089A JP H07262089 A JPH07262089 A JP H07262089A JP 6047039 A JP6047039 A JP 6047039A JP 4703994 A JP4703994 A JP 4703994A JP H07262089 A JPH07262089 A JP H07262089A
Authority
JP
Japan
Prior art keywords
data
lock
unit
address
predetermined area
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
JP6047039A
Other languages
English (en)
Inventor
Nobuyuki Suzuki
信行 鈴木
Tetsuya Morioka
哲哉 森岡
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 JP6047039A priority Critical patent/JPH07262089A/ja
Publication of JPH07262089A publication Critical patent/JPH07262089A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 本発明は、複数の処理装置と処理装置間で共
有する記憶装置とを有してなるストアイン方式の情報処
理装置において用いられるロックアクセス制御方法およ
びこの情報処理装置に関し、ストアイン方式のロックア
クセスを行なえるようにするほか、システムの性能低下
を最小限に抑止することを目的とする。 【構成】 各データ処理部1が主記憶部2の所定領域の
データに対してアクセスする際には、所定領域のデータ
を自データ処理部1のバッファ記憶部3に排他的に保持
させ、主記憶部2上で所定領域に対する他データ処理部
1からのアクセスを禁止するとともに、所定領域のデー
タに対するアクセスを完了するまで、所定領域のデータ
についてのアドレスをロックアドレスとして自データ処
理部1に保持し、ロックアドレスが自データ処理部1に
保持されている間、所定領域のデータのバッファ記憶部
3からの解放を禁止するように構成する。

Description

【発明の詳細な説明】
【0001】(目次) 産業上の利用分野 従来の技術(図8,図9) 発明が解決しようとする課題 課題を解決するための手段(図1) 作用(図1) 実施例(図2〜図7) 発明の効果
【0002】
【産業上の利用分野】本発明は、複数の処理装置とこの
複数の処理装置間で共有する記憶装置とを有してなるス
トアイン方式の情報処理装置において用いられるロック
アクセス制御方法およびこのロックアクセス制御を行な
う情報処理装置に関する。
【0003】
【従来の技術】一般的に、複数の中央処理装置(CP
U)を有する情報処理装置において、複数のCPUが主
記憶装置(MSU)上のデータを共有して、MSUを効
率的に利用することが行なわれている。また、MSU上
のデータを共有するためには、自CPUが、ある記憶領
域に対する他CPUからのデータアクセスをある一定期
間禁止し、その間に自CPUが前記記憶領域に対する取
り出し及び格納を行なうロックアクセスと呼ばれる処理
が必要である。
【0004】また、入出力命令の実行において、各種入
出力制御情報を格納するハードウェア専用領域をMSU
上に設け、命令実行時に前記領域に対する他装置のアク
セスを禁止するためにもロックアクセスが用いられるよ
うになっている。さらに、ロックアクセスでは複数のC
PUが共有するデータの一致、排他処理を必要とするた
め、通常のアクセスよりも多くの時間を要するので、装
置の処理速度の高速化を図るべく、低速,大容量の記憶
素子を用いたMSUに対して、CPUに、高速,小容量
の記憶素子を用いたバッファ記憶部(以下BS)を設け
ることにより記憶装置を階層的な構成とし、BSにMS
U上のデータを細分化したブロックの写しを保持するこ
とにより、CPUからMSUに対する見かけ上のアクセ
スを高速化する手法が広く用いられている。
【0005】ところで、BSの制御には、大きく分けて
ストアスルー方式とストアイン方式の2つがある。スト
アスルー方式では、CPUの演算制御ユニットからBS
に対して読み出しアクセスを行なう場合に、対象データ
がBSに無かった場合は、下位の記憶装置(MSU)か
らBSに当該ブロックを読み込み(ムーブイン)、読み
出しアクセスを行なうとともに、書き込みアクセスを行
なう場合には、BSにストア先のデータがあればBSと
MSUの両者に書き込みを行ない、書き込み先のデータ
がなければMSUのみに書き込みを行なうようになって
いる。
【0006】また、ストアイン方式では、読み出しアク
セスまたは書き込みアクセスのいずれにおいても、BS
に対象データが無かった場合は、MSUからのムーブイ
ンを行ない、また、書き込みアクセスの時はBSへのみ
書き込みを行なうようになっている。また、ムーブイン
の際の読み込みデータにより置き換えられるBS上のブ
ロックが、過去に書き込みの行なわれたブロックであっ
た場合、あるいはMSU上でデータを共有する他のCP
Uが、未だストア(書き込み処理)が反映されていない
ブロックを必要とした場合、当該ブロックをBSからM
SUへ書き出す(ムーブアウト)ようになっている。
【0007】一般的に、ロックアクセスは、例えば「TE
ST AND SET(テストアンドセット)命令」や「COMPARE
AND SWAP(コンペアアンドスワップ)命令」の幾つかの
特殊命令等で行なわれるようになっており、「TEST AND
SET命令」等においては、まず、MSUの読み出しを行
なうが、この際、ロックアクセスの指示をすることによ
りロックを設定し、その後、同じMSUへ書き込みを行
なった後、ロックの解除を行なうようになっている。
【0008】ここで、上記のようなロック設定から解除
までの間、他CPUからのデータアクセスをある一定期
間禁止するための手段としては、ストアスルー方式の情
報処理装置においては、例えば特開平3−19049号
公報にて開示された技術があり、ストアイン方式の情報
処理装置においては、例えば、特開昭57−15808
1号公報にて開示された技術がある。
【0009】ここで、特開平3−19049号公報にて
開示された技術にかかるロックアクセス方式を、図8に
示すブロック図を用いて以下に説明する。即ち、この図
8に示す情報処理装置は、CPU(♯0)101,CP
U(♯1)102,記憶制御装置(MCU)103及び
主記憶装置(MSU)104をそなえて構成されてい
る。
【0010】CPU(♯0)101,CPU(♯1)1
02はともに並列に情報処理を行なうことができるもの
であり、CPU(♯0)101は演算制御ユニット(I
U)105と記憶制御ユニット(SU)106とをそな
え、CPU(♯1)102は演算制御ユニット(IU)
109と記憶制御ユニット(SU)110とをそなえて
いる。
【0011】ここで、演算制御ユニット105,109
は、それぞれ、記憶制御ユニット106,110との間
でデータの読み出し/書き込みアクセスを行ない、この
データについての演算処理等を行なうものである。ま
た、記憶制御ユニット106はデータバッファ(BS)
107とロックアドレスレジスタ(LKAR)108と
をそなえ、記憶制御ユニット110はデータバッファ
(BS)111とロックアドレスレジスタ(LKAR)
112とをそなえている。
【0012】データバッファ107,111は、演算制
御ユニット105,109における演算処理を行なうた
めの主記憶装置104に格納されているブロック単位の
データの写しを格納しておくものである。また、ロック
アドレスレジスタ108は、演算制御ユニット105が
現在ロックアクセスを要求しているデータにおけるアド
レスを登録し、ロックが獲得できたら当該アドレスでデ
ータバッファ107をアクセスするようになっており、
ロックアドレスレジスタ112についても同様にアドレ
スを登録し、ロックが獲得できたら当該アドレスでデー
タバッファ111をアクセスするようになっている。
【0013】さらに、MCU103は、主記憶装置10
4に格納されているデータとバッファ107,111と
の間のデータの送受を制御するものであり、上記のロッ
クアドレスレジスタ108,112にアドレスが登録さ
れると、それぞれのロックアドレスレジスタ108,1
12にて登録されているアドレスを格納するロックアド
レスレジスタ113,114をそなえている。
【0014】従って、このロックアドレスレジスタ11
3,114に格納されているアドレス情報に基づいて、
他のCPUでは、アクセスが禁止されているアドレスを
判別できるようになっている。このような構成により、
図5に示す情報処理装置のロックアクセス処理は、以下
に示すようにして行なわれている。
【0015】即ち、CPU101の演算制御ユニット1
05が、データアクセスを行なう際には、演算制御ユニ
ット105は記憶制御ユニット106に対してロックア
クセス要求を送出する。記憶制御ユニット106におい
ては、バッファ107を検索し、ロックすべきアドレス
にかかるデータがバッファ107に有る場合は、ロック
獲得要求をMSU104に送出し、ロックアドレスを記
憶制御ユニット106内のロックアドレスレジスタ10
8に保持する。
【0016】また、MCU103においては、CPU1
01,102がロック中のロックアドレスをロックアド
レスレジスタ113,114にて保持されており、記憶
制御ユニット106からのロック獲得要求を受けると、
このロック獲得を要求されたアドレスと、ロックアドレ
スレジスタ114にて保持されているCPU102がロ
ック中のロックアドレスとを比較し、一致している場合
は、CPU102がロックを解除するまで、ここで要求
されたCPU101のロック獲得要求を待機させる。
【0017】そして、CPU101から要求されていた
ロックを獲得できたら、MCU103はCPU101の
ロック要求アドレスをロックアドレスレジスタ113に
セットし、ロック要求元のCPU101に対してロック
確認信号を送出する。同時に、CPU102に対して、
ロックアドレスを含むブロックの無効化要求を送出する
ことにより、CPU102によるロック領域の参照を禁
止する。
【0018】そして、ロック要求元のCPU101の記
憶制御ユニット106は、MCU103からロック確認
信号が送られてくると、ロックアドレスレジスタ108
に保持されているロック要求アドレスを用いて再びバッ
ファ107を検索し、データを読み出す。その後、CP
U101の演算制御ユニット105において、必要な処
理を終えた後、ロック解除要求をMCU103へ送出
し、MCU103においてはロックアドレスレジスタ1
13を無効化することで、ロックを解除する。
【0019】なお、演算制御ユニット105における処
理によって、データが更新された場合は、バッファ10
7及びMSU104に格納されている当該データが更新
されている。また、一般的なストアイン方式の情報処理
装置においては、複数のCPUが同一アドレスに同時に
ストアすることを防止するためにCPUにおけるバッフ
ァに格納されている各ブロックに対して、共有型又は排
他型かのどちらかの属性を与え、書き込みは排他型ブロ
ックにのみ可能としている。
【0020】即ち、このストアイン方式の情報処理装置
は、共有型ブロックを複数のCPUが同時に持つことは
許されるが、排他型ブロックを複数のCPUが同時に持
つことは許されない。即ち、あるCPUが排他型ブロッ
クで保持している領域を、他のCPUがアクセスできな
いようになっている。また、ストアイン方式で、あるC
PUが排他型ブロックのムーブインを要求した場合、要
求ブロックの最新のデータが他CPUのBSにしか存在
しない場合があるため、他CPUのBSの状態を検索す
る。即ち、要求ブロックの最新のデータが、他CPUの
共有型ブロックに保持されている場合、そのブロックを
無効化する。また、他CPUの排他型のブロックに保持
され、かつ、その内容が更新されていた場合、そのブロ
ックをムーブアウトし、ムーブアウトデータを要求元C
PUへ転送するとともに、他CPUが保持していたブロ
ックを無効化することが行なわれている。
【0021】ところで、特開昭57−158081号公
報にて開示された技術によれば、ストアイン方式のBS
における排他型ブロックには他CPUから参照出来ない
という点に着目し、図9に示すように、BSのディレク
トリであるTAGにロックビットを設けることにより、
ロックアクセス処理が行なえるようになっている。即
ち、この図9に示すTAGエントリー120において、
アドレス125はBSの関連するブロックの絶対アドレ
スを示すものであり、V(有効)ビット121はブロッ
クが有効であるかどうかを示すものであり、E(排他)
ビット122はブロックが排他的か共有型かを示すもの
であり、C(変更)ビット123はブロックが更新され
たかどうかを示すものであり、L(ロック)ビット12
4はブロックがロックされていることを示すために追加
されたものである。
【0022】ここで、ロックの設定が指示された場合
は、要求アドレスを含むブロックを排他型でBSに保持
した状態で、Lビット124を「1」とし、ロックの解
除はLビット124をリセットすることにより行なわれ
る。また、BSをアクセスする1つのラインアドレスに
関連する複数のブロックの中の1つが任意に選択される
ようなセットアソシアティブ方式のBSを適用する場合
においては、置換するブロックを選択するために、LR
U(least recentlyused) アレイ中にブロックの使用順
序がLRUコードとして記録されるようになっている。
【0023】さらに、通常のLRUコード制御に加え、
Lビットが「1」であるようなブロックが置換対象とな
らないようにLRUコードを修正する制御装置を設ける
ことにより、ロックされたブロックがムーブアウトされ
ることを防止している。
【0024】
【発明が解決しようとする課題】しかしながら、上述の
特開平3−3−19049号公報にて開示された、スト
アスルー方式でロックアクセスを行なう技術において
は、最新のデータが下位の記憶装置にあるため、BS内
のブロックを無効化するだけでエラー時の処理を行なう
ことができるが、CPUがBSに書き込みを行なう度
に、MSUに対するストアアクセスを行なわなければな
らず、MSUを共有するCPUの数が増えると、共有す
るMSUに対するアクセス待ち時間が増大するという課
題がある。
【0025】また、特開昭57−158081号公報に
て開示された、ストアイン方式でロックアクセスを行な
う技術においては、自CPUがロック領域を含むブロッ
クを排他型で保持していた場合、Lビットのセット,リ
セットのみでロックの設定,解除を行なえるため、スト
アスルー方式に比べて迅速にロックアクセスを完了する
ことができるが、通常のTAGアレイとは別にロックア
レイを設けなければならず、Lビットの状態によって、
LRUコードを修正し、置換選択ブロックを変更する
等、制御が複雑で、ハードウェアの増加量も大きい。
【0026】また、ハードウェアエラーの発生によりア
クセスが完了しなかった場合、あるいはCPUがチェッ
ク停止状態になった場合など、長い間、Lビットがリセ
ットされずセットされたままの状態になってしまうと、
他CPUがロック領域をアクセスできず、システム全体
の性能が低下するなどの課題もある。本発明はこのよう
な課題に鑑み創案されたもので、簡易な構成および制御
により、ストアイン方式のロックアクセスを行なえるよ
うにするほか、自CPUがロックを設定した後、ハード
ウェアエラーが発生してCPUがチェック停止状態にな
った場合、ロックを直ちに解除し、BSに保持されたブ
ロックを速やかに解放できるようにして、システムの性
能低下を最小限に抑止した、ロックアクセス制御方法及
び情報処理装置を提供することを目的とする。
【0027】
【課題を解決するための手段】図1は本発明の原理ブロ
ック図で、この図1において、1はデータ処理部、2は
複数のデータ処理部1により共用される主記憶部で、こ
れらのデータ処理部1および主記憶部2により情報処理
装置が構成されている。ここで、データ処理部1には、
バッファ記憶部3,ロックアドレス保持部4,解放禁止
制御部5および無効化制御部6がそなえられている。
【0028】バッファ記憶部3は、主記憶部2の一部の
データの写しをストアイン方式で保持するものであり、
ロックアドレス保持部4は、バッファ記憶部3のデータ
のうちロックアクセス対象になるもののアドレスをロッ
クアドレスとして保持するものである。また、解放禁止
制御部5は、ロックアドレス保持部4のロックアドレス
に対応するデータをバッファ記憶部3から解放すること
を禁止するものであり、無効化制御部6は、ロックアド
レス保持部4のロックアドレスを無効化するものであ
る。
【0029】各データ処理部1が主記憶部2の所定領域
のデータに対してアクセスする際には、自データ処理部
1のバッファ記憶部3に、前記所定領域のデータを排他
的に保持して、主記憶部2上で前記所定領域に対する他
データ処理部1からのアクセスを禁止するとともに、前
記所定領域のデータについてのアドレスをロックアドレ
スとして自データ処理部1のロックアドレス保持部4に
保持し、解放禁止制御部5により前記所定領域のデータ
をバッファ記憶部3から解放することを禁止する。
【0030】そして、前記所定領域のデータに対するア
クセスを完了すると、無効化制御部6によりロックアド
レスを無効化し、解放禁止制御部5による前記所定領域
のデータに対する解放禁止状態を解除する(以上、請求
項1,3,4)。なお、自データ処理部1が前記所定領
域のデータに対するアクセスを中断した場合には、無効
化制御部6によりロックアドレスを無効化し、解放禁止
制御部5による前記所定領域のデータに対する解放禁止
状態を解除してもよい(請求項2,5)。
【0031】また、解放禁止制御部5は、前記所定領域
のデータのアクセス中に受けたバッファ記憶部3のデー
タに対する解放要求対象アドレスとロックアドレス保持
部4のロックアドレスとを比較する比較部と、この比較
部による比較の結果、解放要求対象アドレスとロックア
ドレスとが一致した場合に当該解放要求を中断させる解
放要求中断処理部とから構成することができる(請求項
6)。
【0032】
【作用】上述の本発明のロックアクセス制御方法および
情報処理装置では、各データ処理部1が該主記憶部2の
所定領域のデータに対してアクセスする際には、前記所
定領域のデータを自データ処理部1の該バッファ記憶部
3に排他的に保持することにより、主記憶部2上で前記
所定領域に対する他データ処理部1からのアクセスが禁
止されるとともに、前記所定領域のデータについてのア
ドレスをロックアドレスとして自データ処理部1のロッ
クアドレス保持部4に保持することで、前記所定領域の
データのバッファ記憶部3からの解放(つまりムーブア
ウト)が、解放禁止制御部5により禁止される。
【0033】この解放禁止状態は、前記所定領域のデー
タに対するアクセスを完了すると、無効化制御部6によ
りロックアドレスを無効化することで解除され、前記所
定領域のデータのバッファ記憶部3からの解放が可能に
なり、前記所定領域のデータに対して他データ処理部1
からアクセスすることができる。また、解放禁止制御部
5による解放禁止状態は、自データ処理部1が前記所定
領域のデータに対するアクセスを中断した場合にも、無
効化制御部6によりロックアドレスを無効化することで
速やかに解除され、前記所定領域のデータのバッファ記
憶部3からの解放が可能になり、前記所定領域のデータ
に対して他データ処理部1からアクセスすることができ
る。
【0034】なお、解放禁止制御部5を、解放要求対象
アドレスとロックアドレスとを比較する比較部と、その
比較結果に応じて当該解放要求を中断させる解放要求中
断部とから構成し、解放要求対象アドレスとロックアド
レスとが一致した場合に解放要求中断部にて当該解放要
求を中断させることにより、ロックアドレス保持部4の
ロックアドレスに対応するデータのバッファ記憶部3か
らの解放を禁止することができる。
【0035】
【実施例】図2は本発明の一実施例にかかる情報処理装
置を示すブロック図であり、この図2に示す情報処理装
置は、CPU(♯0)11,CPU(♯1)12,記憶
制御装置(MCU)13及び主記憶装置(MSU)14
をそなえて構成されている。
【0036】CPU(♯0,データ処理部)11,CP
U(♯1,データ処理部)12はともに並列に情報処理
を行なうことができるものであり、CPU11,12
は、記憶制御装置13及び主記憶装置14を共有してい
る。また、各CPU11,12は、それぞれ、演算制御
ユニット(IU)15,20と記憶制御ユニット(S
U)16,21とをそなえている。
【0037】ここで、各演算制御ユニット15,20
は、それぞれ、記憶制御ユニット16,21において格
納されているデータについての演算処理等を行なうとと
もに、ロックアクセス及びロック解除に関する指示を行
なうものである。また、各記憶制御ユニット(解放禁止
制御部)16,21は、主記憶装置14との間でデータ
の読み出し/書き込みを行なうものであり、それぞれ、
ロックアドレスレジスタ(LKAR)17,22とTA
Gビット保持部18,23とデータバッファ(BS)1
9,24とをそなえている。
【0038】ここで、各データバッファ(バッファ記憶
部)19,24は、演算制御ユニット15,20におけ
る演算処理を行なうための主記憶装置104に格納され
ているブロック単位のデータの写しをストアイン方式で
格納しておくものである。また、各TAGビット保持部
(無効化制御部)18,23は、それぞれ、データバッ
ファ19,24のディレクトリを示すものであり、詳細
には、図3(a),(b)に示すような構成を有してい
る。
【0039】即ち、TAGエントリは、図3(a)に示
すように、データが格納されているアドレス18−4毎
に、その先頭にVビット18−1,Eビット18−2お
よびCビット18−3が付されて構成されている。ここ
で、Vビット18−1は、ブロックが有効かどうかを示
すものであり、Eビット18−2はブロックが排他型か
共有型かを示すものであり、Cビット18−3はブロッ
クが更新されたかどうかを示すものである。
【0040】即ち、無効型ブロック,共有型ブロック,
排他型ブロック及び更新型ブロックを示すブロックの型
は、それぞれ、図3(b)に示すように各ビット18−
1〜18−3を設定することにより規定される。また、
各ロックアドレスレジスタ(ロックアドレス保持部)1
7,22は、それぞれ、データバッファ19,24に格
納されているデータのうちで、ロックアクセス対象にな
るものとして演算制御ユニット15,20から要求され
たロックアドレスを保持するものである。
【0041】さらに、記憶制御装置13は、主記憶装置
14に格納されているデータと、データバッファ19,
24との間のデータの送受を制御するものであり、具体
的には、CPU11,12からのリクエストに応じて、
主記憶装置14に対してムーブインデータの転送を行な
ったり、CPU11,12に対してムーブアウト要求,
バッファ無効化要求等の送出を行なうものである。
【0042】また、図4はCPU11内におけるデータ
処理を説明するためのパイプラインのアドレス経路の構
成を示す図であるが、CPU12においても、CPU1
1と同様のアドレス経路を有している。この図4に示す
ように、CPU11における処理は、P(Priority)サイ
クル,T(Translation) サイクル,B(Buffer)サイクル
及びR(Result)サイクルの4つの処理サイクルをパイプ
ライン方式で順次繰り返すことによって行なわれる。
【0043】即ち、本実施例において、演算制御ユニッ
ト15により、ロックアドレスをロックアドレスレジス
タ17に設定する処理を行なうに際して、アドレス経路
は、順に、Pサイクルのセレクタ33、Tサイクルの論
理アドレスレジスタ(T-Logical Address Register ,T
LAR)34および変換索引バッファ(Translation-Loo
kaside Buffer ,TLB)35、Bサイクルの絶対アド
レスレジスタ(B-Absolute Address Register,BAA
R) 36、Rサイクルのロックアドレスレジスタ(LK
AR)17のようになっている。
【0044】ここで、セレクタ33は、CPU11にお
ける演算制御ユニット15かまたは記憶制御ユニット1
6からのアドレス情報のいずれか一方を優先的に選択し
て出力するものであり、ロックアクセス設定時には、演
算制御ユニット15からのロックアドレス設定指示情報
としてのアドレス情報が選択されるようになっている。
【0045】また、論理アドレスレジスタ34は、セレ
クタ33において選択されたアドレスをセットされるも
のであり、変換索引バッファ35は論理アドレスレジス
タ34にてセットされた論理アドレスを絶対アドレスに
変換するためのものである。さらに、絶対アドレスレジ
スタ36は、論理アドレスレジスタ34にてセットされ
たアドレスについて、変換索引バッファ35により絶対
アドレスに変換されたものをセットし、前述の図2にて
示したものと同様のロックアドレスレジスタ17に出力
するものである。
【0046】また、例えば、ムーブアウト要求等の記憶
制御ユニット16からのアドレス情報が入力された場合
においては、アドレス経路は、順に、Pサイクルのセレ
クタ33、Tサイクルの論理アドレスレジスタ34,T
AGビット保持部18およびデータバッファ19、Bサ
イクルのムーヴアウトアドレスレジスタ(B-Move OutAdd
ress Register,BMOAR)37,アドレス一致検出
部38及び論理積回路39のようになっている。
【0047】ここで、TAGビット保持部18とデータ
バッファ19とは、前述の図2にて示したものと同様の
構成を有しているものである。ムーブアウトアドレスレ
ジスタ37は、TAGビット保持部18から読み出され
たムーブアウトするブロックの絶対アドレスをセットす
るものである。アドレス一致検出部(比較部)38は、
ムーブアウトアドレスレジスタ36にてセットされた絶
対アドレスと、ロックアドレスレジスタ17にてセット
された絶対アドレスとの一致を検出し、一致した場合
は、BMOAR-LKAR-MCH信号として「1」を出力するもので
ある。
【0048】論理積回路(解放中断処理部)39は、上
述のBMOAR-LKAR-MCH信号と後述のLOCK-VALID信号とを入
力され、双方とも「1」であった場合に、B-MO-ABORT信
号として「1」を出力し、ムーブアウトリクエストを中
断させるようになっている。これらのアドレス一致検出
部38及び論理積回路39により、ロックアドレスレジ
スタ17のロックアドレスに対応するデータをデータバ
ッファ19から解放することを禁止する、即ちムーブア
ウトを禁止する解放禁止制御部31が構成される。
【0049】また、LOCK-VALID信号は、論理積回路39
及びロックアドレスレジスタ17に入力され、ロックア
ドレスレジスタ17に格納されているロックアドレスが
有効か否かを指定するものであり、具体的には、CPU
11内において図5に示すような回路構成により生成さ
れ、ロックアドレスが有効な場合は「1」を出力し、有
効でない場合は「0」を出力するようになっている。
【0050】即ち、この図5において、論理積回路51
は、CPU11の演算制御ユニット15が記憶制御ユニ
ット16に対して読み出し要求を送出する際に出力され
るFC-REQ信号とロックの設定のためのLOCK-ACC信号とを
入力され、このLOCK-ACC信号が「1」である場合には、
その後のRサイクルでの、リクエスト完了報告信号(ST
V)を「1」に設定する場合に、出力信号「1」をフリッ
プフロップ54に出力し、LOCK-VALID信号をセット
(「1」と設定)するものである。
【0051】また、論理積回路52は、演算制御ユニッ
ト15が記憶制御ユニット16に対して書き込み要求を
送出する際に出力されるST-REQ信号が入力された場合に
おいて、その後のリクエスト完了報告信号(STV) を
「1」に設定する場合に、「1」を出力するものであ
る。さらに、否定論理和回路53は、上述の論理積回路
52からの出力信号のほか、CPU11にハードウェア
エラーが発生して、ロックアクセスを完了できなかった
場合や、CPU11がチェック停止状態となった時に、
演算制御ユニット15が記憶制御ユニット16に対して
送出するCHECK-STOP-STATE信号が入力され、少なくとも
一方から「1」が入力された場合に、出力信号「0」を
フリップフロップ54に出力し、LOCK-VALID信号をリセ
ット(「0」と設定)するものである。
【0052】これらの論理積回路52及び否定論理和回
路53により、ロックアドレスレジスタ17のロックア
ドレスを無効化する無効化制御部32が構成される。こ
れにより、CPU11がデータのアクセスを完了した場
合や、CPU11がデータのアクセスを中断した場合に
は、LOCK-VALID信号がリセットされるので、無効化制御
部32によりロックアドレスを無効化し、解放禁止制御
部31による解放禁止状態が解除されるようになってい
る。
【0053】上述の構成により、本実施例における情報
処理装置の動作を、図2,図4,図5を参照しながら、
図6のフローチャート及び図7のタイムチャートを用い
て以下に説明する。即ち、CPU11の演算制御ユニッ
ト15が記憶制御ユニット16に対してフェッチリクエ
スト(FC-REQ)を記憶制御ユニット16に要求する際は、
図7におけるPサイクル60において、セレクタ33で
演算制御ユニット15からの信号が選択され、フェッチ
リクエスト(FC-REQ)とフェッチアドレス(FC-ADRS) とと
もに、LOCK-ACC信号を送出することにより、ロックの設
定を指示する(ステップA1)。
【0054】そして、Tサイクル61において、フェッ
チリクエストが有効になると(T-FC-REQ 参照)、TLA
R34の論理アドレスでTAGビット保持部18を検索
し、データバッファ19をアクセスする。同時にTLB
35から絶対アドレスが読み出され、Bサイクル62の
レジスタBAAR36に絶対アドレスがセットされる
(ステップA2)。
【0055】ここで、上記のTAGビット保持部18を
検索した結果、Vビット18−1が「1」でEビット1
8−2が「1」であり、要求されたフェッチリクエスト
に対応するブロックが、データバッファ19に排他型で
登録されていた場合(ステップA3においてYESルー
ト)は、Rサイクル63において、データバッファ19
からのフェッチデータ(FC-DATA) とリクエスト完了報告
(STV) を演算制御ユニット15に返す(ステップA
4)。同時に、ロックアドレスレジスタ17にフェッチ
したブロックの絶対アドレスを保持することにより、LO
CK-VALID信号を「1」とすることでロックの設定を完了
する(ステップA5)。
【0056】また、上記のTAGビット保持部18を検
索した結果、Vビット18−1が「0」であり、要求さ
れたフェッチリクエストに対応するブロックが排他型ブ
ロックで登録されていない場合(ステップA3において
NOルート)は、このフェッチリクエストは一時中断さ
れ(ステップA6)、MCU13に対して必要なリクエ
ストが発行される。
【0057】即ち、要求ブロックがBS19に登録され
ていなかった場合は、MCU13に対して排他型ムーブ
イン要求を行なう(ステップA7のNOルートからステ
ップA8)。その後、MCU13はCPU12のデータ
バッファ24の状態に応じて、CPU12へのムーブア
ウト要求,データバッファ24の無効化要求,あるいは
MSU114へのフェッチ要求等の処理を行ない、要求
元のCPU11へムーブインデータの転送,あるいはM
SU14へのフェッチ要求等の処理を行なう。
【0058】即ち、CPU11において要求されたブロ
ックが、CPU12に格納されていない場合はMSU1
4に対してフェッチ要求処理を行ない、CPU12のデ
ータバッファ24に共有型で保持している場合はCPU
12へデータバッファ24の無効化要求を行ない、CP
U12のデータバッファに排他型で保持している場合
は、CPU12へのムーブアウト要求及びデータバッフ
ァ24の無効化要求を行なう。
【0059】そして、CPU12においては、MCU1
3へムーブアウトデータの転送及びデータバッファ24
の無効化処理を行なう。CPU11が、MCU13を介
して、MSU14あるいはCPU12からのムーブイン
データを受けると、要求ブロックを排他型として登録す
る(ステップA9)。また、上記のTAGビット保持部
18を検索した結果、Vビット18−1が「1」でEビ
ット18−2が「0」であり、ブロックが共有型で保持
されていた場合(ステップA7においてYESルート)
は、排他型ブロックへの変更要求をMCU13へ送出し
(ステップA10)、MCU13においては、CPU1
2のデータバッファ24の状態に応じて、データバッフ
ァ24のムーブアウト要求,あるいは無効化要求を行な
う。
【0060】即ち、CPU12のデータバッファ24
に、フェッチリクエストに対応するブロックが共有型で
保持されていた場合は、このデータバッファ24におけ
る当該ブロックの無効化要求を行ない、排他型で保持さ
れていた場合は、当該ブロックのムーブアウト及び無効
化要求を行なう。そして、CPU12においては、ブロ
ックのムーブアウト及び無効化処理を行ない、MCU1
3は要求元CPU11に対してムーブインデータの転
送,あるいはブロックの変更許可を送出し、これを受け
たCPU11では、データバッファ19に、フェッチリ
クエストに対応するブロックを共有型から排他型へと変
更する(ステップA11)。
【0061】上述のステップA9,ステップA11にお
いて、データバッファ19に、フェッチリクエストに対
応するブロックを排他型で保持すると、中断していたフ
ェッチリクエストを再びパイプラインに投入し、前述の
ステップA4,ステップA5にいたる処理が行なわれ
て、ロック設定が完了する。その後、例えば、CPU1
2が、CPU11においてがロック中のブロックに対す
るアクセスをしようとして、MCU13へムーブインを
要求すると、MCU13はCPU11へロック中のブロ
ックのムーブアウトを要求する場合や、CPU11自身
が他のブロックをフェッチしようとした時、ロック中の
ブロックがムーブアウト対象となる場合がある。
【0062】このようにして、図4に示すパイプライン
のアドレス経路において、Pサイクル64で、ムーブア
ウト要求 (MO-REQ)のプライオリティが採られると、こ
のムーブアウト要求のアドレス(MO-ADRS) がセレクタ3
3により選択され、Tサイクル65のアドレスレジスタ
TLAR34にセットされる。そして、Tサイクル65
において、このムーブアウト要求 (T-MO-REQ)に基づい
て、TLAR34のアドレスでTAGビット保持部18
を検索し、ムーブアウトするブロックの絶対アドレス(M
O-ADRS) がBMOAR37にセットされる。また、Bサ
イクル66において、解放禁止制御部31のアドレス一
致検出部38においては、上記のBMOAR37にセッ
トされた絶対アドレスと、LKAR17に保持されてい
るロックアドレスとを比較し、これら2つのアドレス情
報が一致している場合は、BMOAR-LKAR-MCH信号を「1」
として出力する。
【0063】この場合においては、ロックアドレスが有
効なものであるため、LOCK-VALID信号は「1」であり、
論理積回路39からの出力信号としてのB-MO-ABORT信号
は「1」となり、ムーブアウトリクエストを中断する。
また、ロックの解除が指定される際には、Pサイクル6
7において、演算制御ユニット15からの信号がセレク
タ33において選択され、演算制御ユニット15が、ス
トアリクエスト(ST-REQ)を記憶制御ユニット16に送出
し、TLAR34に、このストアアドレス(ST-ADRS) が
セットされる。
【0064】そして、Tサイクル68において、ストア
リクエストが有効になると(T-ST-REQ 参照)、TLB3
5から絶対アドレスが読み出され、BAAR36に絶対
アドレスがセットされる。その後、記憶制御ユニット1
6においては、上記のストアリクエストを処理し、Rサ
イクル70で、演算制御ユニット15へリクエスト完了
報告(STV) を送出する。同時に、LOCK- VALID 信号を直
ちに「0」にしてLKAR17を無効とし、ロックを解
除する。これにより、解放禁止制御部31により禁止さ
れていたMCU13からのムーブアウト要求を処理し
て、ブロックを解放することを許可する。
【0065】これにより、ロックが解除されるまで、ロ
ック中のブロックのムーブアウトを禁止する一方、他の
CPU12がロックされたままのブロックをアクセスで
きずに処理を中断されるのを防止している。またCPU
11にハードウェアエラーが発生してCPU11がチェ
ック停止状態になった場合には、CHECK-STOP-STATE信号
が「1」になるため、無効化制御部32の否定論理和回
路53からの出力が「0」となってフリップフロップ5
4がリセットされ、LOCK-VALID信号が直ちに「0」にリ
セットされ、CPU11でロックされたブロックを解放
することができる。
【0066】このように、本発明の一実施例にかかるロ
ックアクセス制御方法及び情報処理装置によれば、ロッ
クアドレスをCPU11のロックアドレスレジスタ17
に保持し、そのロック対象のブロックをムーブアウトし
ようとする要求を検出すると、解放禁止制御部31によ
りロックアドレスに対応するデータの解放を禁止する一
方、CPU11が、データバッファ19に保持されてい
る、ロックアドレスに対応するデータを含むブロックの
アクセスが完了すると、LOCK- VALID 信号をリセットす
ることができるので、少量のハードウェアの追加で速や
かにストアイン方式のロックアクセス制御を行なうこと
ができ、システムの構築のためのコストを大幅に削減で
きる利点がある。
【0067】さらに、CPU11にハードウェアエラー
が発生して、ロックアクセスを完了できなかった場合
や、CPU11がチェック停止状態となった時において
も、無効化制御部32によりLOCK- VALID 信号をリセッ
トすることができるので、ロックされていたデータを解
放できるので、他のCPU12の処理動作を保証でき、
システムの性能の低下を抑制することができる利点もあ
る。
【0068】なお、上述の本実施例においては、MCU
13以下の記憶装置の階層の構成は、MSU14のみに
より構成されていたが、本発明によればこれに限定され
ず、例えば複数の階層により構成される記憶装置を用い
てもよい。また、上述の本実施例における情報処理装置
においては、CPUは2台で構成されていたが、本発明
によればこれに限定されず、3台以上のCPUにより構
成することができることはいうまでもない。
【0069】
【発明の効果】以上詳述したように、本発明のロックア
クセス制御方法及び情報処理装置によれば、ロックアド
レスを自データ処理部のロックアドレス保持部に保持す
るだけで、解放禁止制御部によりロックアドレスに対応
するデータの解放を禁止することができるので、少量の
ハードウェアの追加で速やかにストアイン方式のロック
アクセス制御を行なうことができ、システムの構築のた
めのコストを大幅に削減できる利点がある(請求項1,
4)。
【0070】また、自データ処理部が、バッファ記憶部
に保持されている、ロックアドレスに対応するデータの
アクセスが完了すると、無効化処理部により、そのデー
タを即座に解放することができるので、他データ処理部
がそのデータをアクセスできずに処理を中断される時間
を最小限に抑えることができる(請求項2,5)。さら
に、自データ処理部にハードウェアエラーが発生して、
ロックアクセスを完了できなかった場合や、自データ処
理部がチェック停止状態となった時においても、無効化
処理部により、ロックされていたデータを解放すること
ができるので、他データ処理部の処理動作を保証でき、
システムの性能の低下を抑制することができる利点もあ
る(請求項3,6)。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の一実施例にかかる情報処理装置を示す
ブロック図である。
【図3】(a),(b)はTAGビット保持部の詳細な
構成を示す図である。
【図4】CPU内におけるデータ処理を説明するための
パイプラインのアドレス経路の構成を示す図である。
【図5】LOCK-VALID信号を生成するための回路構成を示
す図である。
【図6】本発明の一実施例にかかる情報処理装置の動作
を説明するためのフローチャートである。
【図7】本発明の一実施例にかかる情報処理装置の動作
を説明するためのタイムチャートである。
【図8】一般的な情報処理装置を示すブロック図であ
る。
【図9】一般的な情報処理装置にて保持されるTAGの
構成を示す図である。
【符号の説明】
1 データ処理部 2 主記憶部 3 バッファ記憶部 4 ロックアドレス保持部 5 開放禁止制御部 6 無効化制御部 11,12 CPU(データ処理部) 13 記憶制御装置 14 主記憶装置(主記憶部) 15 演算制御ユニット 16 記憶制御ユニット 17 ロックアドレスレジスタ(ロックアドレス保持
部) 18 TAGビット保持部 19 データバッファ(バッファ記憶部) 20 演算制御ユニット 21 記憶制御ユニット 22 ロックアドレスレジスタ(ロックアドレス保持
部) 23 TAGビット保持部 24 データバッファ(バッファ記憶部) 31 解放禁止制御部 32 無効化制御部 33 セレクタ 34 論理アドレスレジスタ 35 変換索引バッファ 36 絶対アドレスレジスタ 37 ムーヴアウトアドレスレジスタ 38 アドレス一致検出部 39,51,52 論理積回路 53 排他的論理積回路 54 フリップフロップ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータ処理部(1)と、該複数の
    データ処理部(1)により共用される主記憶部(2)と
    をそなえるとともに、各データ処理部(1)が、該主記
    憶部(2)の一部のデータの写しをストアイン方式で保
    持するバッファ記憶部(3)を有してなる情報処理装置
    のロックアクセス制御方法であって、 前記の各データ処理部(1)が該主記憶部(2)の所定
    領域のデータに対してアクセスする際には、 前記所定領域のデータを自データ処理部(1)の該バッ
    ファ記憶部(3)に排他的に保持させ、該主記憶部
    (2)上で前記所定領域に対する他データ処理部(1)
    からのアクセスを禁止するとともに、 前記所定領域のデータに対するアクセスを完了するま
    で、前記所定領域のデータについてのアドレスをロック
    アドレスとして自データ処理部(1)に保持し、前記ロ
    ックアドレスが自データ処理部(1)に保持されている
    間、前記所定領域のデータの該バッファ記憶部(3)か
    らの解放を禁止することを特徴とする、ロックアクセス
    制御方法。
  2. 【請求項2】 自データ処理部(1)が前記所定領域の
    データに対するアクセスを中断した場合、前記ロックア
    ドレスを無効化し、前記所定領域のデータを該バッファ
    記憶部(3)から解放可能にすることを特徴とする、請
    求項1記載のロックアクセス制御方法。
  3. 【請求項3】 複数のデータ処理部(1)と、該複数の
    データ処理部(1)により共用される主記憶部(2)と
    をそなえるとともに、各データ処理部(1)が、該主記
    憶部(2)の一部のデータの写しをストアイン方式で保
    持するバッファ記憶部(3)を有してなる情報処理装置
    において、 前記の各データ処理部(1)に、 該バッファ記憶部(3)のデータのうちロックアクセス
    対象になるもののアドレスをロックアドレスとして保持
    するロックアドレス保持部(4)と、 該ロックアドレス保持部(4)のロックアドレスに対応
    するデータを該バッファ記憶部(3)から解放すること
    を禁止する解放禁止制御部(5)とがそなえられ、 前記の各データ処理部(1)が該主記憶部(2)の所定
    領域のデータに対してアクセスする際には、 自データ処理部(1)の該バッファ記憶部(3)に、前
    記所定領域のデータを排他的に保持して、該主記憶部
    (2)上で前記所定領域に対する他データ処理部(1)
    からのアクセスを禁止するとともに、 前記所定領域のデータについてのアドレスをロックアド
    レスとして自データ処理部(1)の該ロックアドレス保
    持部(4)に保持し、該解放禁止制御部(5)により前
    記所定領域のデータの該バッファ記憶部(3)からの解
    放を禁止することを特徴とする、情報処理装置。
  4. 【請求項4】 前記の各データ処理部(1)に、該ロッ
    クアドレス保持部(4)のロックアドレスを無効化する
    無効化制御部(6)がそなえられ、 前記所定領域のデータに対するアクセスを完了すると、
    該無効化制御部(6)により前記ロックアドレスを無効
    化し、該解放禁止制御部(5)による前記所定領域のデ
    ータに対する解放禁止状態を解除することを特徴とす
    る、請求項3記載の情報処理装置。
  5. 【請求項5】 該無効化制御部(6)が、自データ処理
    部(1)が前記所定領域のデータに対するアクセスを中
    断した場合に、前記ロックアドレスを無効化し、該解放
    禁止制御部(5)による前記所定領域のデータに対する
    解放禁止状態を解除することを特徴とする、請求項4記
    載の情報処理装置。
  6. 【請求項6】 該解放禁止制御部(5)が、 前記所定領域のデータのアクセス中に受けた該バッファ
    記憶部(3)のデータに対する解放要求対象アドレス
    と、該ロックアドレス保持部(4)のロックアドレスと
    を比較する比較部と、 該比較部による比較の結果、前記の解放要求対象アドレ
    スとロックアドレスとが一致した場合に、当該解放要求
    を中断させる解放要求中断処理部とから構成されている
    ことを特徴とする、請求項3〜5のいずれかに記載の情
    報処理装置。
JP6047039A 1994-03-17 1994-03-17 ロックアクセス制御方法および情報処理装置 Withdrawn JPH07262089A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6047039A JPH07262089A (ja) 1994-03-17 1994-03-17 ロックアクセス制御方法および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6047039A JPH07262089A (ja) 1994-03-17 1994-03-17 ロックアクセス制御方法および情報処理装置

Publications (1)

Publication Number Publication Date
JPH07262089A true JPH07262089A (ja) 1995-10-13

Family

ID=12764029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6047039A Withdrawn JPH07262089A (ja) 1994-03-17 1994-03-17 ロックアクセス制御方法および情報処理装置

Country Status (1)

Country Link
JP (1) JPH07262089A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015102973A (ja) * 2013-11-22 2015-06-04 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2022531601A (ja) * 2019-05-09 2022-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチコア・プロセッサの複数のデータ要求の実行
WO2023037595A1 (ja) * 2021-09-07 2023-03-16 ソニーグループ株式会社 情報処理装置及び情報処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015102973A (ja) * 2013-11-22 2015-06-04 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2022531601A (ja) * 2019-05-09 2022-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチコア・プロセッサの複数のデータ要求の実行
WO2023037595A1 (ja) * 2021-09-07 2023-03-16 ソニーグループ株式会社 情報処理装置及び情報処理方法

Similar Documents

Publication Publication Date Title
US4394731A (en) Cache storage line shareability control for a multiprocessor system
US4400770A (en) Cache synonym detection and handling means
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
EP0082949B1 (en) Hybrid cache control
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
US5802582A (en) Explicit coherence using split-phase controls
US6587931B1 (en) Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US8799589B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US5230070A (en) Access authorization table for multi-processor caches
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
JPH0648479B2 (ja) 多重プロセッサ計算機システムのための記憶サブシステム
EP1399823A2 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
JPH0576060B2 (ja)
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US5339397A (en) Hardware primary directory lock
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
US6529933B1 (en) Method and apparatus for locking and unlocking a semaphore
EP0051745B1 (en) Cache storage hierarchy for a multiprocessor system
JPH0567976B2 (ja)
JPH0221342A (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
JPH07325760A (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
JPH1091524A (ja) キャッシュ・コヒーレンシを維持するための方法及び装置
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010605