JP3381080B2 - Exclusive control method that can interrupt processing - Google Patents
Exclusive control method that can interrupt processingInfo
- Publication number
- JP3381080B2 JP3381080B2 JP05527893A JP5527893A JP3381080B2 JP 3381080 B2 JP3381080 B2 JP 3381080B2 JP 05527893 A JP05527893 A JP 05527893A JP 5527893 A JP5527893 A JP 5527893A JP 3381080 B2 JP3381080 B2 JP 3381080B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- processor
- bus
- task
- entry
- 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 - Fee Related
Links
Landscapes
- Multi Processors (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、処理ユニットのプロセ
ッサで実行する処理(タスク)を分割して実行する方法
において、各処理(タスク)が並列にアクセスするデー
タの無矛盾性保証制御を行うための排他制御方式に関す
るものである。
【0002】
【従来の技術】処理ユニットで複数の処理(以下、処理
の単位をタスクという)を交互に実行するマルチタスク
方式において、各タスクが共通にアクセスする共通デー
タの読みだしおよび書き換えを行う場合、他のタスクと
の間に矛盾が発生することがある。例えば、タスクAと
タスクBがメインメモリのアドレスXに格納している値
「x」にそれぞれ10、100を加算する場合を考え
る。本来、タスクAおよびタスクBの処理が矛盾なく行
われるとアドレスXの値は「x+110」となる。しか
し、タスクAがアドレスXの値「x」を読みだしてから
アドレスXに値「x+10」を書き込む前に、処理ユニ
ットで実行されるタスクがタスクBに切り替わると、タ
スクBがアドレスXの値「x」を読みだし、タスクBは
アドレスXを「x+100」に書き換え、タスクAが再
開されるとアドレスXを「x+10」に書き換える。こ
のような矛盾が生じないように、従来は、共通データに
アクセスする前に共通データへのアクセス権の獲得を行
い、共通データへのアクセス終了後にアクセス権を解放
するようにしている。この場合、アクセス権は共通デー
タ毎に設けられ、かつ、同時に1つのタスクにのみアク
セス権が与えられるように制御されている。
【0003】以上述べたように、マルチタスクにおける
排他制御においては、共通データにアクセスする前にア
クセス権を獲得し、他のタスクからの共通データへのア
クセスを抑止し、アクセス終了後にアクセス権を解放す
る排他制御、または共通データにアクセスしている間は
処理ユニットで実行中のタスクの切り替えを抑止する制
御が必要である。一般に、排他制御では、対象となるデ
ータを以下の3つの状態で管理している。
リードロック状態:1つ以上のタスクによって読みだし
中であり、他タスクからの書き換えアクセスを抑止する
必要がある状態。
ライトロック状態:1つのタスクによって書き換え中で
あり、他タスクからの読みだしアクセスおよび書き換え
アクセスを抑止する必要がある状態。
アンロック状態 :何れのタスクからも全てのアクセス
が可能である状態。
【0004】
【発明が解決しようとする課題】上記の方式では、タス
クが並列にアクセスする共通データについてアクセス権
の確保を行う必要があるため、以下の欠点が生じる。
(1)各タスクが並列にアクセスする全ての共通データ
へのアクセスの前後にアクセス権の確保/解放を行う処
理を予め組み込む必要があるため複雑になる。
(2)本来、矛盾が発生する確率が少ないにもかかわら
ず、共通データへのアクセスの前後にアクセス権の確保
/解放を行う処理を行う処理が必要となるため、処理ユ
ニットの実効的な処理能力が低下する。
(3)新規に追加した処理によって、従来は並列にアク
セスされなかったデータが複数のタスク間で並列にアク
セスされる共通データになった場合、既存のタスクに当
該データに対するアクセス権の確保/解放を行う処理を
追加する必要がある。
【0005】従来は、上記問題を解決するために、並列
にアクセスしないデータと共通データとを厳密に分けず
に、アクセス権の確保/解放を複数の共通データに対し
て一括して行うことによって、アクセス権の確保/解放
回数を減らす手法が採られていた。しかし、複数の共通
データに対して一括してアクセス権の確保/解放を行う
と、共通データのうちアクセス要求のないデータに対し
てまで不要な排他制御を行うことになり、アクセス権の
確保期間が必要以上に長くなるため、複数のタスクで並
列化が可能な処理の実行が阻害される確率が大きくなる
欠点が生じる。
【0006】また、タスクの切り替えを抑止する制御で
は、共通データへのアクセスを頻繁に行うタスクの実行
が優先される(タスクによっては、開始から終了まで切
り替えが行われなくなる)こととなり、タスクを分割す
ることによって、限られた処理ユニット数でタスクの割
り当てを行い、「より優先度の高いタスクに処理ユニッ
トを使用させる」という自由度が失われるとともに、タ
スクを相互に切り替えて分割処理することで、処理時間
の均一化を図るためのマルチタスク方式の制御が複雑に
なってしまう欠点が生じる。
【0007】さらに、本発明の発明者が先に出願した特
願平4−287245号「マルチプロセッサシステムに
おける排他制御方式」は、複数の処理ユニット間で必要
となる排他制御に関して、上記(1)ないし(3)の欠
点を解消するものであるが、各処理ユニットでの処理
(タスク)の中断は許されず、タスク間での排他制御を
可能とするものではない。本発明の目的は、上記の全て
の欠点を解消した排他制御方式を提供することにある。
【0008】
【課題を解決するための手段】本発明は、上記欠点を解
消するために、タスクが最初にアクセスしてから処理が
終了するまでにアクセスするデータを含むブロックを処
理ユニット内のキャッシュメモリで中間状態として管理
するとともに、当該ブロックに対するアクセス元のタス
クの識別情報を管理し、他のタスクが中間状態としたブ
ロックに対する抑止が必要なアクセスが発生した場合、
実行中のタスクまたは当該ブロックをロックしたタスク
を中断または無効化(中止)することによって排他制御
を行うものである。
【0009】
【作用】本発明は、上記の手段を設けたことによって、
タスクが分割して実行される場合、各タスクが並列にア
クセスする共通データのアクセス権の確保/解放の処理
を行うための処理量の増加による処理ユニットでの実効
的な処理性能の低下が生じることなく、また、新たにタ
スクを追加することによって共通データとなったデータ
に対する排他制御を行うために従来の処理を変更するこ
ともなく、タスクの切り替えを抑止する制御も不要にな
る。
【0010】
【実施例】図1は本発明の実施例を説明するための情報
処理装置の構成図である。図1において、1ないし3は
処理ユニット、4はシステムバス、5はメインメモリ、
6はバスマスタコントローラ、10、20および30は
プロセッサ、11、21および31はキャッシュメモ
リ、41はアドレスバス、42はデータバス、43はリ
ード/ライトバス、44はアクセス種別バス、45は転
送応答バス、46は矛盾応答バス、100、200およ
び300はプロセッサバス、1001、2001および
3001はタスク識別情報バスである。
【0011】タスク識別情報バス1001、2001お
よび3001は複数の信号線からなり、各信号線には、
処理ユニットで並列して実行するタスクが重複しないよ
うに予め割り当てられており、処理ユニットで実行中の
タスクはキャッシュメモリにアクセスする際に割り当て
られている信号線のみに値「1」を出力し、他の信号線
には値「0」を出力するものである。
【0012】メインメモリ5は同じ大きさに分割され、
キャッシュメモリ11、21および31との間ではブロ
ック単位にメモリ内容の転送を行う。キャッシュメモリ
11、21および31は、図2に示すように複数のエン
トリ#1、エントリ#2、・・・、エントリ#eから構
成されている。図2にはエントリ#1の内部構成だけを
詳細に示してあるが、他のエントリ#2、・・・、#e
も全て同一の構成を有している。エントリ#1、・・
・、エントリ#e(内部の詳細な構成は省略)は、ブロ
ックのアドレスを格納するアドレス情報部211、・・
・、2e1(図示せず)、ブロックを格納するブロック
データ部212、・・・、2e2(図示せず)、各処理
ユニットのタスク識別バス1001、2001、300
1の信号線と同一のビット数からなり、アクセスを行っ
たタスクが値「1」を出力した信号線に対応するビット
に値「1」を設定するタスク識別情報部213、・・
・、2e3(図示せず)、処理ユニットで実行が終了
(確定指示を出力)していないタスクがアクセスしたこ
とを示す中間状態(値「1」)を格納する中間状態情報
部214、・・・、2e4(図示せず)、エントリに格
納されている内容が有効(値「1」)であるか無効(値
「0」)であるかを示すバリッド部215、・・・、2
e5(図示せず)、メインメモリ5の内容は書き換えず
にキャッシュメモリのブロックデータ部の内容のみを書
き換えたことを示す(値「1」)モディファイ部21
6、・・・、2e6(図示せず)、各アドレス情報部の
内容と信号線2Aの内容とを比較する比較器217、・
・・、2e7(図示せず)、各タスク識別情報部の内容
と信号線2Bの内容を比較する比較器218、・・・、
2e8(図示せず)、比較器217、・・・、2e7
(図示せず)から一致信号が出力し、かつバリッド部の
内容が「1(有効)」である場合に信号線21B、・・
・、2eB(図示せず)に「オン」信号を出力するアン
ドゲート219、・・・、2e9(図示せず)から構成
される。なお、タスク識別情報部、中間状態情報部、バ
リッド部、モディファイ部はブロックの状態を表してお
り、これらをもとめてブロック状態情報部という。
【0013】確定指示信号2Eから確定が指示される
と、アンドゲート21E、・・・、2eE(図示せず)
はタスク識別情報部の内容と確定指示を行ったタスクの
タスク識別情報との比較結果およびモディファイ部の内
容を入力し、そのアンド出力により中間状態部の値を
「0」とする。無効化指示信号2Dを介して無効化が指
示されると、アンドゲート21D、・・・、2eD(図
示せず)はタスク識別情報部の内容と無効化を行ったタ
スクのタスク識別情報との比較結果信号、中間状態部の
内容およびモディファイ部の内容を入力し、そのアンド
出力によりバリッド部を「0(無効)」とする。
【0014】ここで、メインメモリ5のアドレスaで指
定されるデータを含むブロックをBaとし、プロセッサ
10がブロックBaをアクセスする場合の本発明の実施
例の動作を図3ないし図5を用いて説明する。図3ない
し図5は、自プロセッサからアクセスされた場合のキャ
ッシュメモリでの処理を、プロセッサ10からアクセス
された場合のキャッシュメモリ11の処理を例にして説
明するフローチャートであり、この処理の各部分は論理
回路を用いることによって同時並列的に実行することが
できる。
【0015】図3において、プロセッサ10が、プロセ
ッサバス100を介して、アドレスaで指定されるデー
タの読みだしまたは書き換えを要求する場合(ステップ
51)、タスク識別情報バス1001にはプロセッサ1
0で実行中のタスクに予め割り当てられたタスク識別情
報を出力する。処理ユニット1のキャッシュメモリ11
は、プロセッサ10が出力したアドレス情報aを信号線
2Aに、タスク識別情報を信号線2Bに入力し(ステッ
プ52)、ステップ53において、キャッシュメモリ1
1にプロセッサ10が出力したアドレス情報aで指定さ
れるデータを含むブロックBaが存在(信号線21B、
・・・、2eB(図示せず)の出力が「オン」となるエ
ントリが存在)するか否かを判定する。キャッシュメモ
リ11にブロックBaが存在しないときには下記(イ)
の処理を、キャッシュメモリ11にブロックBaが存在
するときには下記(ロ)の処理を行う。
【0016】(イ)キャッシュメモリ11にブロックB
aが存在しない(信号線21B、・・・、2eB(図示せ
ず)の出力が「オン」となるエントリが存在しない)場
合:キャッシュメモリ11はブロックBaを格納するエ
ントリを以下の方法で確保する。キャッシュメモリ11
はバリッド部が「0(無効)」または中間状態部21
4、・・・、2e4(図示せず)が「0(確定状態)」
であるエントリから予め定められた手続き(例えば、最
近最も使用されなかったものを選択するLRUアルゴリ
ズムなど)によってエントリ(このエントリをエントリ
Eと記述し、エントリEはアドレス情報部2x1、ブロ
ックデータ部2x2、タスク識別情報部2x3、中間状
態情報部2x4、バリッド部2x5、モディファイ部2
x6、・・・で構成されているとする)を選択する(ス
テップ54)。
【0017】つぎのステップ55で、エントリEのバリ
ッド部2x5が「1(有効)」かつモディファイ部2x
6が「1(ブロックデータ部のBaとメインメモリのB
aが不一致)」であるか否かをチェックする。チェック
の結果、YES、すなわちエントリEのバリッド部2x
5が「1(有効)」かつモディファイ部2x6が「1
(ブロックデータ部のBaとメインメモリのBaが不一
致)」であれば、キャッシュメモリ11は信号線101
を介してシステムバス4の使用要求をバスマスタコント
ローラ6に知らせる。バスマスタコントローラ6は、予
め定められた手続きにしたがって1つのキャッシュメモ
リにのみシステムバス4の使用許可を与える。信号線1
02を介してシステムバス4の使用許可がキャッシュメ
モリ11に与えられたとき、アドレスバス41上にアド
レス情報部2x1に格納されているアドレスを出力し、
リード/ライトバス43に書き換え指示を出力し、デー
タバス42にブロックデータ部2x2に格納されている
ブロックを出力する。メインメモリ5はアドレスバス4
1に出力されているアドレスで指定されるブロックの内
容をデータバス42に出力されている内容に書き換える
(以上ステップ56)。
【0018】ステップ55のチェックの結果、NO、す
なわちエントリEのバリッド部2x5が「1(有効)」
かつモディファイ部2x6が「1(ブロックデータ部の
BaとメインメモリのBaが不一致)」でなかった場
合、または、上記ステップ56の処理を終了した場合
に、キャッシュメモリ11はブロックBaをエントリE
に以下の方法で格納する。キャッシュメモリ11は信号
線101を介してシステムバス4の使用要求をバスマス
タコントローラ6に知らせる。バスマスタコントローラ
6は、予め定められた手続きにしたがって1つのキャッ
シュメモリにのみシステムバス4の使用許可を与える。
信号線102を介してシステムバス4の使用許可がキャ
ッシュメモリ11に与えられたとき、アドレスバス41
上にアドレスaを出力し、リード/ライトバス43に読
み出し指示を出力し、アクセス種別バス44にプロセッ
サ10が出力したアクセス種別(読みだしまたは書き換
え)を出力する(ステップ57)。
【0019】このときの他のプロセッサのキャッシュメ
モリ21および31の動作は図7に示されている。図7
は他の処理ユニットがシステムバス4に出力したアクセ
スをチェックする処理を説明するための図であり、この
処理の各部分は論理回路を用いることによって同時並列
的に実行することができる。処理ユニットが1台の場合
にはこの処理は不要である。図7において、キャッシュ
メモリ21および31は、アドレスバス41に出力され
ているアドレスaを入力し(ステップ82)、アドレス
aのデータを含むブロックBaが内部に格納されている
エントリ(このエントリをeとし、エントリeはアドレ
ス情報部2y1、ブロックデータ部2y2、タスク識別
情報部2y3、中間状態情報部2y4、バリッド部2y
5、モディファイ部2y6、・・・で構成されていると
する)が存在し、かつエントリeのバリッド部2y5が
「1」か否かのチェックを行う(ステップ83)。
【0020】ステップ83におけるチェックの結果、N
Oであれば下記(イ−a)の処理を行い、YESであれ
ばステップ84において、エントリeが中間状態情報部
2y4の値が「1(中間状態)」であるか否かチェック
し、その結果、YESであれば下記(イ−b)に、NO
であれば下記(イ−c)の処理を行う。
【0021】(イ−a)キャッシュメモリ21および3
1が有効なブロックBaを内部に格納していない場合:
キャッシュメモリ21、31はなにもせずに終了する。
メインメモリ5はブロックBaをデータバス42に出力
し、転送応答バス45を介してキャッシュメモリ11に
応答を出力したことを通知する(図示せず)。
【0022】(イーb)キャッシュメモリ21または3
1がブロックBaを格納するエントリeが存在し、かつ
ブロックBaを格納するエントリの中間状態情報部2y
4が「1(中間状態)」の場合:ブロックBaを格納す
るエントリのモディファイ部2y6が「1(ブロックデ
ータ部のBaとメインメモリのBaが不一致)」(ステ
ップ85)またはキャッシュメモリ11がアドレス種別
バス44に書き換えを出力していれば(ステップ8
6)、キャッシュメモリ11に矛盾応答バス46を介し
て矛盾が発生したことを通知する(ステップ87)。
【0023】このとき、キャッシュメモリ11は、処理
ユニット2または3のキャッシュメモリから矛盾応答バ
ス46を介して矛盾が発生した旨の通知を受ける(図4
のステップ58)と下記(ハ)に示す矛盾解消処理(ス
テップ64)を行う。メインメモリ5はキャッシュメモ
リ21または31が矛盾応答バス46に矛盾が発生した
旨の信号を出力しなければブロックBaをデータバス4
2に出力し、転送応答バス45を介してキャッシュメモ
リ11に応答を出力したことを通知する(図示せず)。
【0024】(イ−c)キャッシュメモリ21または3
1がブロックBaを格納するエントリeが存在し、かつ
ブロックBaを格納するエントリの中間状態部が「0
(確定状態)」の場合:ブロックBaを格納するエント
リのモディファイ部2y6が「1(ブロックデータ部の
BaとメインメモリのBaが不一致)」であるか否かを
チェックする(図7のステップ88)。ステップ88で
のチェックの結果、YESであればステップ89に進
み、NOであればステップ91に進む。YESの場合
は、ブロックBaの最新の内容はキャッシュメモリ21
または31に存在する(以下キャッシュメモリ21に存
在したと仮定して説明する)ので、キャッシュメモリ2
1はブロックBaをデータバス42に出力し、転送応答
バス45を介してキャッシュメモリ11に応答を出力し
たことを通知し(ステップ89)、モディファイ部を
「0(ブロックデータ部のBaとメインメモリのBaが
一致)」とする(ステップ90)。このとき、メインメ
モリ5はデータバス42にキャッシュメモリ21が出力
したブロックBaをキャッシュメモリ11とともに受信
してメインメモリ5に格納されている内容を最新の内容
に更新する(図示せず)。
【0025】ステップ89およびステップ90の処理が
終了するか、またはステップ88のチェックの結果、N
O、すなわちブロックBaを格納するエントリのモディ
ファイ部が「0(ブロックデータ部のBaとメインメモ
リのBaが一致)であれば、以下の処理を行う。キャッ
シュメモリ11がアクセス種別バス44に「書き換え」
を出力していれば(ステップ91)、ブロックBaを格
納するエントリのバリッド部2y5を「0(無効)」と
して当該エントリの無効化を行って(ステップ92)終
了する。これによって、プロセッサ10からのブロック
Baへのアクセスが書き換えの場合に、書き換え前の内
容が他のキャッシュメモリに存在することがなくなりデ
ータの無矛盾性を保証できる。なお、キャッシュメモリ
11がアクセス種別バス44に「書き換え」を出力して
いなければ(ステップ91)そのまま終了する。
【0026】再び図4に戻って説明する。キャッシュメ
モリ11は、以上のようにして、他の処理ユニットのキ
ャッシュメモリ(21、31)またはメインメモリ5か
ら、ブロック転送応答バス45を介して要求したブロッ
クBaがデータバス42上に出力されたことを知り、デ
ータバス42上に出力されたブロックBaをエントリE
のブロックデータ部2x2に格納し、アドレスaの情報
をアドレス情報部2x1に格納し、エントリEのバリッ
ド部2x5を「1(有効)」、中間状態部2x4を「1
(中間状態)」、タスク識別情報部2x3にタスク識別
バス1001に出力されている値を格納する(ステップ
59)。
【0027】ステップ60において、プロセッサ10か
らのブロックBaに対するアクセス種別が書き換えか読
みだしかを判定する。プロセッサ10からのブロックB
aに対するアクセス種別が書き換えであればエントリE
のモディファイ部2x6を「1(ブロックデータ部のB
aとメインメモリのBaが不一致)」とするとともにプ
ロセッサ10からプロセッサバス100を介して指示さ
れた内容でエントリEのブロックデータ部2x2に格納
されているブロックBaのアドレスaで指定されるデー
タを書き換える(ステップ61)。プロセッサ10から
のブロックBaに対するアクセス種別が読みだしであれ
ばエントリEのブロックデータ部2x2に格納されてい
るブロックBaのアドレスaで指定されるデータをプロ
セッサ10に転送する(ステップ62)。キャッシュメ
モリ11は信号線101を介してシステムバス4の使用
を終了したことをバスマスタコントローラ6に知らせる
(ステップ63)。
【0028】(ロ)ブロックBaを格納する有効なエン
トリEがキャッシュメモリ11に存在する(信号線21
B、・・・、2eB(図示せず)の出力が「オン」とな
るエントリが存在する)場合(図5参照):この場合、
確定状態(ロ−a)と中間状態(ロ−b)とに分けて説
明する(ステップ65)。
(ロ−a)エントリEの中間状態部2x4が「0(確定
状態)」の場合:ステップ66でエントリEのモディフ
ァイ部が「1(ブロックデータ部のBaとメインメモリ
のBaが不一致)」かどうかチェックする。その結果、
NO、すなわちモディファイ部が「0(ブロックデータ
部のBaとメインメモリのBaが一致)」であればエン
トリEの中間状態部を「1(中間状態)」とし(ステッ
プ67)、タスク識別情報部2x3にタスク識別バス1
001に出力されているタスク識別情報を設定し(ステ
ップ68)、キャッシュメモリ11は信号線101を介
してシステムバス4の使用要求をバスマスタコントロー
ラ6に知らせる。
【0029】バスマスタコントローラ6は、予め定めら
れた手続きに従い1つのキャッシュメモリにのみシステ
ムバス4の使用要求を与える。信号線102を介してシ
ステムバス4の使用許可がキャッシュメモリ11に与え
られたとき、アドレスバス41上にアドレスaを出力
し、リード/ライトバス43に読みだし指示を出力し、
アクセス種別バス44にプロセッサ10が出力している
アクセス種別を出力し(図6のステップ76)、矛盾応
答バス46に矛盾が発生した旨の出力が行われなければ
(ステップ77)、キャッシュメモリ11は、自ら、転
送応答バス45に応答を出力した旨の信号を出力し、メ
インメモリ5からのデータ転送を中止させる(ステップ
78;キャッシュメモリ11にブロックBaは既に存在
するので、ブロックをメインメモリ5から読み出す必要
はない)。
【0030】プロセッサ10が出力したアクセス種別が
「読みだし」の場合にはエントリEのモディファイ部2
x6を「0(ブロックデータ部のBaとメインメモリの
Baが一致)」に、エントリEのブロックデータ部2x
2に格納されているブロックBaのアドレスaで指定さ
れるデータをプロセッサ10に転送する(図4のステッ
プ62)。プロセッサ10からのブロックBaに対する
アクセス種別が「書き換え」であれば、エントリEのモ
ディファイ部2x6を「1(ブロックデータ部のBaと
メインメモリのBaが不一致)」とするとともにプロセ
ッサ10からプロセッサバス100を介して指示された
内容でエントリEのブロックデータ部2x2に格納され
ているブロックBaのアドレスaで指定されるデータを
書き換え(ステップ61)、プロセッサバス100を介
してアクセスが完了したことをプロセッサに通知し、信
号線101を介してシステムバス4の使用が終了したこ
とをバスマスタコントローラ6に通知する(ステップ6
3)。
【0031】図5のステップ66のチェックの結果、Y
ES、すなわちエントリEのモディファイ部が「1(ブ
ロックデータ部のBaとメインメモリのBaが不一
致)」であれば、キャッシュメモリ11は信号線101
を介してシステムバス4の使用要求をバスマスタコント
ローラ6に知らせる。バスマスタコントローラ6は、予
め定められた手続きに従い1つのキャッシュメモリにの
みシステムバス4の使用許可を与える。信号線102を
介してシステムバス4の使用許可がキャッシュメモリ1
1に与えられたとき、アドレスバス41上にアドレスa
を出力し、リード/ライトバス43に書き換え指示を出
力し、データバス42にエントリEのブロックデータ部
2x2に格納されているブロックBaを出力して、メイ
ンメモリ5のブロックBaをデータバス42に出力され
ている内容で更新する(ステップ69)。
【0032】エントリEの中間状態部2x4を「1(中
間状態)」に、エントリEのタスク識別情報部2x3に
タスク識別情報バス1001に出力されているタスク識
別情報を設定し、プロセッサ10が出力したアクセス種
別(ステップ70)が「読みだし」の場合にはエントリ
Eのモディファイ部2x6を「0(ブロックデータ部の
BaとメインメモリのBaが一致)」にして(ステップ
71)、エントリEのブロックデータ部2x2に格納さ
れているブロックBaのアドレスaで指定されるデータ
をプロセッサ10に転送(図4のステップ62)して、
ステップ63に進む。プロセッサ10からのブロックB
aに対するアクセス種別(ステップ70)が「書き換
え」であれば、エントリEのモディファイ部2x6を
「1(ブロックデータ部のBaとメインメモリのBaが
不一致)」とするとともにプロセッサ10からプロセッ
サバス100を介して指示された内容でエントリEのブ
ロックデータ部2x2に格納されているブロックBaの
アドレスaで指定されるデータを書き換えて(図4のス
テップ61)、ステップ63に進む。ステップ63でキ
ャッシュメモリ11は、プロセッサバス100を介して
アクセスが完了したことをプロセッサ10に通知し、信
号線101を介してシステムバス4の使用が終了したこ
とをバスマスタコントローラ6に通知する。
【0033】(ロ−b)エントリEの中間状態部2x4
が「1(中間状態)」の場合(図6参照):ステップ7
3でエントリEのタスク識別情報部2x3の値がタスク
識別バス1001に出力されている値と一致(信号線2
xCの出力が「オン」)かどうかチェックする。その結
果、NO、すなわちエントリEのタスク識別情報部2x
3の値がタスク識別バス1001に出力されている値と
不一致(信号線2xCの出力が「オフ」)のとき、プロ
セッサ10からのブロックBaに対するアクセス種別が
「書き換え」(ステップ79)、またはプロセッサ10
からのブロックBaに対するアクセス種別が「読みだ
し」かつエントリEのモディファイ部2x6が「1(ブ
ロックデータ部のBaとメインメモリのBaが不一
致)」であれば(ステップ80)、キャッシュメモリ1
1は下記(ハ)に示す矛盾解消処理を行い、プロセッサ
10で実行中の処理は中断または無効化(中止)され、
実行待ちのタスクから予め定められた方法で選択された
タスクが実行される。
【0034】ステップ73のチェックの結果、YES、
すなわちエントリEのタスク識別情報部2x3の値がタ
スク識別バス1001に出力されている値と一致(信号
線2xCの出力が「オン」)しているとき、プロセッサ
10からのブロックBaに対するアクセス種別が「書き
換え」(ステップ74)、かつエントリEのモディファ
イ部2x6が「0(ブロックデータ部のメインメモリの
Baが一致)」であれば(ステップ75)、キャッシュ
メモリ11は信号線101を介してシステムバス4の使
用要求をバスマスタコントローラ6に知らせる。バスマ
スタコントローラ6は、予め定められた手続きに従い1
つのキャッシュメモリにのみシステムバス4の使用許可
を与える。信号線102を介してシステムバス4の使用
許可がキャッシュメモリ11に与えられたとき、アドレ
スバス41上にアドレスaを出力し、リード/ライトバ
ス43に読みだし指示を出力し、アクセス種別バス44
にプロセッサ10が出力したアクセス種別「書き換え」
を出力する(ステップ76)。
【0035】キャッシュメモリ21および31は、アド
レスバス41に出力されているアドレスaを入力し、ア
ドレスaのデータを含むブロックBaが内部に格納され
ているか否かのチェックを図5に示したフローチャート
に従って行い、ステップ87の状態になった場合に矛盾
応答バス46を介して矛盾が発生した旨の通知を出力す
る。キャッシュメモリ11は、処理ユニット2または3
のキャッシュメモリから矛盾応答バス46を介して矛盾
が発生した旨の通知を受ける(ステップ77)と、下記
(ハ)に示す矛盾解消処理を行う。
【0036】矛盾応答バス46を介して矛盾が発生した
旨の通知がない場合には、キャッシュメモリ11は、自
ら、転送応答バス45に応答を出力した旨の信号を出力
し、メインメモリ5からのデータ転送を中止させ(ステ
ップ78;キャッシュメモリ11にブロックBaは既に
存在するので、ブロックをメインメモリ5から読み出す
必要はない)、図4に戻り、この場合は書き換えである
からステップ60からステップ61に進み、エントリE
のモディファイ部2x6を「1(ブロックデータ部のB
aとメインメモリのBaが不一致)」とし、プロセッサ
10からプロセッサバス100を介して指示された内容
でエントリEのブロックデータ部2x2に格納されてい
るブロックBaのアドレスaで指定されるデータを書き
換え、プロセッサバス100を介してアクセスが完了し
たことをプロセッサ10に通知し、信号線101を介し
てシステムバス4の使用を終了したことをバスマスタコ
ントローラ6に知らせる(ステップ63)。
【0037】エントリEのタスク識別情報部2x3の値
がタスク識別バス1001に出力されている値と不一致
(信号線2xCの出力が「オフ」)のとき、プロセッサ
10からのブロックBaに対するアクセス種別(図6の
ステップ79)が「読みだし」かつエントリEのモディ
ファイ部2x6が「0(ブロックデータ部のBaとメイ
ンメモリのBaが一致)」(ステップ80)であれば、
タスク識別情報部2x3にタスク識別情報部2x3の値
とタスク識別情報バス1001に出力されている値との
論理和を設定し(ステップ81:例えば、タスク識別情
報部2x3に値「01101010」が設定されてお
り、タスク識別バス1001に値「00000100」
が出力されている場合、タスク識別情報部2x3には値
「01101110」が設定される)、読みだしである
から図4のステップ60を通過し、エントリEのブロッ
クデータ部2x2に格納されているブロックBaのアド
レスaで指定されるデータをプロセッサ10に転送し
(ステップ62)、プロセッサバス100を介してアク
セスが完了したことをプロセッサ10に、信号線101
を介してシステムバス4の使用を終了したことをバスマ
スタコントローラ6に知らせる(ステップ63)。
【0038】プロセッサ10からのブロックBaに対す
るアクセス種別が「書き換え」またはエントリEのモデ
ィファイ部2x6が「1(ブロックデータ部のBaとメ
インメモリのBaが不一致)」であれば、キャッシュメ
モリ11は下記(ハ)に示す矛盾解消処理を行い、プロ
セッサ10で実行中の処理は中断または無効化(中止)
され、実行待ちのタスクから予め定められた方法で選択
されたタスクが実行される。
【0039】(ハ)他の処理ユニットから矛盾応答バス
46を介して矛盾が発生した旨の通知を受信した場合ま
たはプロセッサ10からのアクセスに対して矛盾が発生
した場合:キャッシュメモリ11はプロセッサ10で実
行中のタスクを中止し、実行中のタスクが書き換えたメ
インメモリの内容をタスクが実行を開始する以前の状態
にするために、図2の無効化指示信号2Cを「オン」と
し、キャッシュメモリ11の中間状態情報部に値「1
(中間状態)」がセットされ、かつモディファイ情報部
に値「1」がセットされている全てのエントリのバリッ
ド情報部を「0(無効)」とし、その後に図8に示す中
間状態解除処理を行い、キャッシュメモリ2への矛盾し
たアクセスを行ったタスクによって設定された中間状態
を解除する。これによって、プロセッサ10が書き換え
たブロックの内容は中断したタスクの実行を開始した時
点の内容になり、リードロック状態(中間状態であるが
モディファイ部は「0」である状態)も解除される。キ
ャッシュメモリ11はプロセッサ10で実行中のタスク
を中止させるとともに、プロセッサバス100を介して
矛盾が発生したことをプロセッサ10に通知する。プロ
セッサ10で実行中のタスクは無効化(中止)され、実
行待ちのタスクから予め定められた方法で選択されたタ
スクが実行される。上記では、矛盾発生時にアクセス元
で実行中のタスクを中止する方法について述べたが、実
行中のタスクを中断し、予め定められた時間が経過した
後に中断点から再開させる方法もある。
【0040】キャッシュメモリ11からの全てのアクセ
スに対して他の処理ユニットが矛盾の発生を通知するこ
となく、プロセッサ10からの全てのアクセスに対して
矛盾が発生せず、プロセッサ10で実行中の処理が正常
に終了したとき、プロセッサ10からの指示によって、
図2の確定指示信号2Dを「オン」とし、キャッシュメ
モリ11の中間状態情報部に値「1(中間状態)」がセ
ットされ、かつモディファイ情報部に値「1」がセット
されている全てのエントリの中間状態情報部を「0(確
定状態)」とし、その後に以下(ニ)に示す中間状態解
除処理を行い、キャッシュメモリ2の処理が終了したタ
スクによって設定された中間状態を解除する。これによ
って、プロセッサ10で実行したタスクの書き換えが確
定し、プロセッサ10で実行したタスクがアクセスした
全てのブロックは他のプロセッサで実行される処理から
読みだしおよび書き換えが可能になる。
【0041】(ニ)中間状態解除処理
プロセッサ10の指示またはプロセッサ10からの矛盾
したアクセスが行われた場合、キャッシュメモリ11
は、中間状態を解除するタスクのタスク識別情報(この
情報は、タスク識別情報バス1001を介して与えられ
るとする)を用いて以下の処理を行う。キャッシュメモ
リ11は図8に示すロック解除の処理を行う。ここで、
図8は処理ユニットからの中間状態解除指示に対するキ
ャッシュメモリでの処理を説明するための図であり、論
理回路を用いることによって、この処理の各部分を同時
並列的に実行することができる。キャッシュメモリ11
内にエントリを順次指定するためのカウンタ25を設
け、タスク識別情報を信号線2Bに入力する。カウンタ
25の値を初期値(ここでは「1」とする)に設定し
(ステップ93)、カウンタ値がキャッシュメモリ2内
のエントリの総数eになるまで(これはステップ99で
判断する)、カウンタ25の値が+1される毎に以下の
処理を繰り返す。ここで、カウンタ25の値「c]で指
定されるエントリをエントリEcとし、エントリEcは
アドレス情報部2c1、ブロックデータ部2c2、タス
ク識別情報部2c3、・・・で構成されているとする。
【0042】エントリEcのバリッド部2c5の値が
「0(無効)」(ステップ94)または中間状態情報部
2c4の値が「0(確定状態)」(ステップ95)の場
合、カウンタ25の値を+1する(ステップ100)。
エントリEcのバリッド部2c5の値が「1(有効)」
(ステップ94)かつ中間状態情報部2c4の値が「1
(中間状態)」(ステップ95)の場合、タスク識別情
報部2x3にタスク識別情報部2x3の値と中間状態を
解除するタスク識別情報の0/1を反転した値との論理
積(例えば、タスク識別情報部2x3に値「01101
110」が設定されており、中間状態情報を解除するタ
スク識別情報が「00000100」である場合、タス
ク識別情報部2x3には値「01101010」が設定
される。この中に1のビットがあるということは、中間
状態を解除しないタスクがあることを意味する)を設定
し(ステップ96)、その結果、タスク識別情報部2x
3の全てのビットが「0」(すなわち、「000000
00」)となったときには中間状態情報部2x4に値
「0(確定状態)」を設定し(ステップ98)、カウン
タ25の値を+1する(ステップ99)。ステップ99
において、カウンタ25の値がエントリ数eになってい
なければステップ94に戻り、エントリ数eになった
ら、中間状態解除処理を終了する。
【0043】これにより、処理ユニットで分割して実行
される複数のタスクおよび各処理ユニットが並列にアク
セスするブロックに対するアクセス権の確保/解放の処
理を各プロセッサで実行する処理に予め組み込む必要が
なく、処理ユニットで分割して実行される複数のタスク
および複数のプロセッサが同一のブロックに対して並列
にアクセスする際の無矛盾性を保証する排他制御が行わ
れる。
【0044】
【本発明の効果】以上説明したように、本発明は、各処
理ユニットで分割して実行されるタスクが並列にアクセ
スする共通データへのアクセスを行う際にアクセス権の
確保/解放の処理を各処理ユニットで実行する処理に予
め組み込むことが不要になり、アクセス権の確保および
解放による処理ユニットのオーバヘッドも生じず、新た
に処理を追加することによって共通データとなったデー
タに対する排他制御を行うために従来の処理を変更する
必要も不要になるため、処理ユニットでの実効的な性能
を向上させるとともに、処理ユニットで実行させる処理
の記述(プログラム)の生産性も大幅に向上させること
が可能になる。Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processing unit for a processing unit.
To divide and execute the process (task) to be executed by the server
Data that each process (task) accesses in parallel
Exclusive control method for performing data consistency assurance control
Things. 2. Description of the Related Art A plurality of processing units (hereinafter referred to as processing units)
Task is called alternately)
In the method, common data that each task accesses in common
When reading and rewriting data,
Inconsistencies may occur between For example, task A
The value stored by task B at address X in the main memory
Consider adding 10 and 100 to "x" respectively.
You. Originally, the processing of task A and task B
Then, the value of the address X becomes “x + 110”. Only
Then, after task A reads the value “x” of address X,
Before writing the value “x + 10” to the address X, the processing unit
When the task executed by the task switches to task B,
Task B reads the value “x” at address X, and task B
Rewrite address X to “x + 100”, and task A
When opened, the address X is rewritten to "x + 10". This
In the past, to avoid inconsistencies like
Acquire access rights to common data before accessing
Release access right after access to common data
I am trying to do it. In this case, the access right is
Provided for each task, and access to only one task at a time.
Access rights. As described above, in multitasking,
In exclusive control, before accessing common data,
Access to common data from other tasks.
Access and release access right after the end of access
Exclusive control, or while accessing common data
A system that suppresses switching of tasks that are being executed by processing units
I need you. Generally, in exclusive control, target data
Data is managed in the following three states. Read lock status: read by one or more tasks
Is in progress and suppresses rewrite access from other tasks
State that needs to be. Write locked state: rewriting by one task
Yes, read access and rewrite from other tasks
A state in which access must be suppressed. Unlocked: All accesses from any task
State where is possible. [0004] In the above method, the task
Access rights for common data accessed in parallel
Therefore, the following disadvantages arise. (1) All common data accessed by each task in parallel
To secure / release access right before and after access to
It becomes complicated because it is necessary to incorporate the logic in advance. (2) Despite the low probability of contradictions,
Access rights before and after accessing common data
Processing to perform / release processing is required.
The effective processing capacity of the knit decreases. (3) Conventionally, parallel processing is performed by newly added processing.
Unaccessed data is accessed in parallel between multiple tasks.
If it becomes common data to be accessed,
Processing to secure / release access rights to the data
Need to be added. Conventionally, in order to solve the above problem, parallel
Do not strictly separate data that does not access the data from common data
To secure / release access rights to multiple common data
Secure / release access rights
A technique to reduce the number of times was adopted. But multiple common
Secure / release access rights to data collectively
And common data that has no access request
Unnecessary exclusive control is performed until the
Since the securing period becomes longer than necessary,
The probability that the execution of processing that can be arranged is hindered is increased
Disadvantages arise. [0006] In addition, the control for suppressing the task switching is performed.
Perform tasks that frequently access common data
Is prioritized (depending on the task, it is switched from start to end)
Switching will not be performed)
Task allocation with a limited number of processing units.
And assign the processing unit to a higher priority task.
The freedom to use
Processing time by switching disks
Control of multitasking system to achieve uniform
There is a disadvantage that the [0007] Further, the inventors of the present invention have previously filed a special application.
No. 4-287245 "In a multiprocessor system
Exclusion control method required between multiple processing units
(1) through (3) above
The point is solved, but the processing in each processing unit
(Task) interruption is not allowed and exclusive control between tasks
It does not make it possible. The object of the present invention is to
It is an object of the present invention to provide an exclusive control method that solves the disadvantage of the above. [0008] The present invention solves the above disadvantages.
To erase, the task is accessed first,
Process blocks containing data to be accessed by the end
Managed as an intermediate state in the cache memory in the logical unit
And the status of the access source for the block
Manages the identification information of the
If an access that requires suppression of the lock occurs,
The task that is running or the task that locked the block
Control by suspending or invalidating (stopping)
Is what you do. According to the present invention, by providing the above means,
When tasks are executed in a divided manner, each task is
Secure / release processing of access right to common data to be accessed
In the processing unit due to an increase in the amount of processing to perform
And no new processing performance.
Data that became common data by adding disks
Change the conventional processing to perform exclusive control on
Without the need for control to suppress task switching.
You. FIG. 1 shows information for explaining an embodiment of the present invention.
It is a block diagram of a processing apparatus. In FIG. 1, 1 to 3
A processing unit, 4 is a system bus, 5 is a main memory,
6 is a bus master controller, 10, 20, and 30 are
Processors 11, 21 and 31 are cache memos
, 41 is an address bus, 42 is a data bus, 43 is a
Read / write bus, 44 is an access type bus, and 45 is
Send response bus, 46 is inconsistent response bus, 100, 200 and
And 300 are processor buses, 1001, 2001 and
Reference numeral 3001 denotes a task identification information bus. The task identification information buses 1001, 2001 and
And 3001 are composed of a plurality of signal lines, and each signal line has
Tasks executed in parallel in the processing unit will not overlap
Assigned in advance, and
Tasks are allocated when accessing cache memory
The value "1" is output only to the signal line
Output the value "0". The main memory 5 is divided into the same size,
Block between the cache memories 11, 21 and 31.
Transfers memory contents on a per-block basis. Cache memory
As shown in FIG.
.., Entry #e.
Has been established. FIG. 2 shows only the internal configuration of entry # 1.
Although shown in detail, other entries # 2,..., #E
Also have the same configuration. Entry # 1, ...
Entry #e (detailed internal configuration is omitted)
Address information section 211 for storing the address of the
. 2e1 (not shown), a block for storing a block
2e2 (not shown), each process
Unit task identification buses 1001, 2001, 300
It has the same number of bits as one signal line and is accessed.
Bit corresponding to the signal line from which the task output value "1"
Task identification information section 213 for setting a value “1” to
-2e3 (not shown), execution terminated in processing unit
(A confirmation instruction was output)
State information storing an intermediate state (value “1”) indicating
2e4 (not shown) in section 214,.
The stored contents are valid (value "1") or invalid (value
Valid portion 215,..., 2 indicating whether “0”)
e5 (not shown), the contents of the main memory 5 are not rewritten
Only the contents of the block data section of the cache memory
Modifying unit 21 indicating that replacement has been performed (value “1”)
6,..., 2e6 (not shown) of each address information part
A comparator 217 for comparing the content with the content of the signal line 2A;
..2e7 (not shown), contents of each task identification information section
, 218,.
2e8 (not shown), comparators 217,..., 2e7
(Not shown), a match signal is output from the
When the content is “1 (valid)”, the signal line 21B,.
-An amplifier that outputs an "ON" signal to 2 eB (not shown)
2e9 (not shown)
Is done. Note that the task identification information section, intermediate state information section,
The lid section and the modify section show the state of the block.
These are called a block status information part. Determination is instructed from determination instruction signal 2E.
, And gate 21E,..., 2eE (not shown)
Is the contents of the task identification information section and the
The result of comparison with the task identification information and the modification part
Input, and the AND output outputs the value of the intermediate state part.
It is set to “0”. Invalidation is specified via the invalidation instruction signal 2D.
As shown, AND gates 21D,..., 2eD (FIG.
(Not shown) indicates the contents of the task identification information section and the
Signal of the comparison result with the task identification information of the
Enter the contents and the contents of the modify section, and
The valid part is set to “0 (invalid)” by the output. Here, a finger is designated by the address a of the main memory 5.
The block containing the data to be defined is defined as Ba, and the processor
Implementation of the invention when 10 accesses block Ba
The operation of the example will be described with reference to FIGS. No Figure 3
FIG. 5 shows a cache when accessed from its own processor.
Access to the processing in the flash memory from the processor 10
The processing of the cache memory 11 when the
This is a flowchart that explains each part of the process.
Can be executed simultaneously and in parallel by using a circuit.
it can. Referring to FIG. 3, a processor 10
The data specified by the address “a” via the
Request to read or rewrite data (step
51), the processor 1 is connected to the task identification information bus 1001.
Task identification information assigned in advance to the task being executed at 0
Output information. Cache memory 11 of processing unit 1
Represents the address information a output from the processor 10 on a signal line.
2A, input the task identification information to the signal line 2B (step
52), in step 53, the cache memory 1
1 is designated by the address information a output from the processor 10.
Block Ba containing the data to be stored (signal line 21B,
... When the output of 2 eB (not shown) is turned on
Is determined) or not. Cash memo
When the block Ba does not exist in the memory 11, the following (A)
The block Ba exists in the cache memory 11
To do so, the following process (b) is performed. (A) Block B in the cache memory 11
a does not exist (signal lines 21B,..., 2 eB (not shown).
) Is not `` ON ''.
Case: The cache memory 11 stores the block Ba.
Secure the entry by the following method. Cache memory 11
Indicates that the valid part is “0 (invalid)” or the intermediate state part 21
4,..., 2e4 (not shown) are “0 (determined state)”
From an entry that is a predetermined procedure (for example,
LRU algorithm to select the least recently used
Entry, etc.)
E, and the entry E is the address information section 2 × 1,
Data section 2x2, task identification information section 2x3, intermediate status
State information part 2x4, valid part 2x5, modify part 2
x6, ...) is selected.
Step 54). In the next step 55, the entry E
The module part 2x5 is "1 (valid)" and the modifier part 2x
6 is "1 (Ba of the block data portion and B of the main memory)
(a does not match). " check
As a result, YES, that is, the valid part 2x of the entry E
5 is “1 (valid)” and the modifying part 2 × 6 is “1 (valid)”.
(Ba in the block data section is inconsistent with Ba in the main memory.
"), The cache memory 11 is connected to the signal line 101.
Requests the use of the system bus 4 via the bus master controller.
Inform roller 6. The bus master controller 6
One cash memo according to the prescribed procedure
Only the system bus 4 is permitted to use the system bus 4. Signal line 1
02, the use permission of the system bus 4 is
When given to memory 11, address on address bus 41
Output the address stored in the address information section 2x1,
A rewrite instruction is output to the read / write bus 43, and the data is
It is stored in the tab data 42 in the block data section 2 × 2.
Output the block. The main memory 5 has an address bus 4
In the block specified by the address output to 1
Rewrite the contents to the contents output to the data bus 42
(Step 56). If the result of the check in step 55 is NO,
That is, the valid part 2 × 5 of the entry E is “1 (valid)”
And the modifying unit 2 × 6 is “1 (the block data
Ba and Ba in the main memory do not match)
Or when the process of step 56 is completed
The cache memory 11 stores the block Ba in the entry E
In the following way. The cache memory 11 has a signal
A request to use the system bus 4 is sent to the bus
To the controller 6. Bus master controller
6 is one cache according to a predetermined procedure.
The use permission of the system bus 4 is given only to the flash memory.
The permission to use the system bus 4 is received via the signal line 102.
When given to the flash memory 11, the address bus 41
The address a is output to the top and read to the read / write bus 43.
And outputs a read instruction to the access type bus 44.
Access type (read or rewrite)
(Step 57). At this time, the cache memory of another processor is
The operation of the memories 21 and 31 is shown in FIG. FIG.
Is the access that other processing units output to the system bus 4.
FIG. 7 is a diagram for explaining a process of checking
Each part of the processing is simultaneously paralleled by using logic circuits
Can be implemented When there is one processing unit
Does not require this processing. In FIG. 7, the cache
The memories 21 and 31 are output to the address bus 41
Enter the address a (step 82)
The block Ba including the data of a is stored therein.
Entry (let this entry be e, entry e is the address
Information section 2y1, block data section 2y2, task identification
Information part 2y3, intermediate state information part 2y4, valid part 2y
5, the modification unit 2y6,...
Exist) and the valid part 2y5 of the entry e is
It is checked whether it is "1" (step 83). As a result of the check in step 83, N
If it is O, the following process (a) is performed, and if YES,
For example, in step 84, the entry e is
Check whether the value of 2y4 is "1 (intermediate state)"
As a result, if YES, the following (A-b)
If so, the following process (a-c) is performed. (A) Cache memories 21 and 3
When 1 does not store a valid block Ba inside:
The cache memories 21 and 31 end without doing anything.
The main memory 5 outputs the block Ba to the data bus 42
To the cache memory 11 via the transfer response bus 45.
Notify that a response has been output (not shown). (Eb) Cache memory 21 or 3
An entry e in which 1 stores the block Ba exists, and
Intermediate state information section 2y of the entry storing block Ba
When 4 is "1 (intermediate state)": Store block Ba
The modifying section 2y6 of the entry to be entered is "1 (block
(Ba in the data section does not match Ba in the main memory.) "
85) or the cache memory 11 has the address type
If the rewrite has been output to the bus 44 (step 8
6), via the contradiction response bus 46 to the cache memory 11
Is notified that a contradiction has occurred (step 87). At this time, the cache memory 11
Conflict response bar from unit 2 or 3 cache memory
Notification that the contradiction has occurred via the server 46 (FIG. 4).
Step 58) and the inconsistency resolution processing (step
Step 64) is performed. Main memory 5 is a cache memo
The conflict has occurred in the conflict response bus 46 for the resource 21 or 31.
If no signal to the effect is output, block Ba is connected to data bus 4
2 and a cache memo via the transfer response bus 45.
Notify the client 11 that the response has been output (not shown). (A-c) Cache memory 21 or 3
An entry e in which 1 stores the block Ba exists, and
The intermediate state part of the entry storing the block Ba is “0”.
(Determined state) ": an entry for storing the block Ba
The modification part 2y6 of the file is "1 (the block data part
Ba does not match Ba in the main memory).
Check (step 88 in FIG. 7). In step 88
If the result of the check is YES, the process proceeds to step 89.
If NO, the process proceeds to step 91. If yes
Means that the latest content of the block Ba is the cache memory 21
Or 31 (hereinafter referred to as cache memory 21).
It is assumed that there is a cache memory 2)
1 outputs the block Ba to the data bus 42,
A response is output to the cache memory 11 via the bus 45
Is notified (step 89), and the
"0 (Ba of the block data portion and Ba of the main memory are
Match) "(step 90). At this time,
The memory 5 is output from the cache memory 21 to the data bus 42
Received block Ba together with the cache memory 11
The contents stored in the main memory 5 to the latest contents
(Not shown). The processing of steps 89 and 90
End or as a result of the check in step 88, N
O, that is, the modality of the entry storing the block Ba
The file part is "0 (Ba of the block data part and the main memo)
If Ba of the data matches), the following processing is performed. Cap
Memory 11 is rewritten to access type bus 44
Is output (step 91), the block Ba
The valid part 2y5 of the entry to be stored is set to "0 (invalid)"
To invalidate the entry (step 92).
Complete. This allows the blocks from processor 10
If the access to Ba is rewriting,
The content no longer exists in other cache memory
Data consistency. Note that the cache memory
11 outputs “rewrite” to the access type bus 44
If not (step 91), the process ends. Returning to FIG. 4, the description will be continued. Cash
As described above, the memory 11 is a key for another processing unit.
Cache memory (21, 31) or main memory 5
The block requested by the block transfer response bus 45.
Data Ba is output on the data bus 42,
The block Ba output on the data bus 42 to the entry E
Stored in the block data section 2x2 of the
Is stored in the address information section 2x1, and the validity of the entry E is
2x5 is set to "1 (valid)", and the intermediate state unit 2x4 is set to "1".
(Intermediate state) ", the task identification information section 2x3 identifies the task
Store the value output to the bus 1001 (step
59). In step 60, the processor 10
The access type for these blocks Ba is rewritten or read
Judgment is made. Block B from processor 10
If the access type for a is rewritten, entry E
Of the modified part 2 × 6 of “1 (B of the block data part)
a and Ba in the main memory do not match).
Instructed by the processor 10 via the processor bus 100
Stored in the block data section 2x2 of entry E
Data specified by the address a of the block Ba
The data is rewritten (step 61). From processor 10
The access type for the block Ba is read
If it is stored in the block data section 2x2 of the entry E
The data specified by the address a of the block Ba
The data is transferred to the processor 10 (step 62). Cash
The memory 11 uses the system bus 4 via the signal line 101.
Is notified to the bus master controller 6
(Step 63). (B) An effective end for storing the block Ba
The bird E exists in the cache memory 11 (signal line 21
B,..., 2 eB (not shown) output is “ON”
(See FIG. 5): In this case,
The theory is divided into a fixed state (b-a) and an intermediate state (b).
(Step 65). (B-a) The intermediate state part 2 × 4 of the entry E is “0 (determined)
State) ": Modification of entry E in step 66
The main part is "1 (Ba of the block data part and the main memory)
Are not matched). " as a result,
NO, that is, when the modify part is "0 (block data
Section Ba and the main memory Ba match) "
The intermediate state part of the bird E is set to “1 (intermediate state)” (step
67), the task identification information section 2 × 3 has the task identification bus 1
001 is set to the task identification information output to
68), the cache memory 11 is connected via the signal line 101.
Request to use the system bus 4 by the bus master controller
Inform La6. The bus master controller 6 has a predetermined
System to only one cache memory according to the
A request to use the bus 4 is given. Via the signal line 102.
The permission to use the stem bus 4 is given to the cache memory 11.
Output address a on address bus 41
And outputs a read instruction to the read / write bus 43,
Processor 10 outputs to access type bus 44
The access type is output (step 76 in FIG. 6).
Answer Unless an output indicating that a contradiction has occurred is made on the bus 46
(Step 77), the cache memory 11
A signal to the effect that a response has been output is output to the
Stop data transfer from in-memory 5 (step
78; Block Ba already exists in cache memory 11
Need to read the block from the main memory 5
No). The access type output by the processor 10 is
In the case of "reading", the modification part 2 of the entry E
x6 is set to "0 (Ba of the block data portion and
Ba matches) ", the block data portion 2x of the entry E
2 designated by the address a of the block Ba stored in
Is transferred to the processor 10 (step of FIG. 4).
62). For the block Ba from the processor 10
If the access type is “rewrite”, the entry E
Defining section 2x6 is changed to "1 (Ba of block data section)
(Ba in main memory does not match.) "
Commanded by the processor 10 via the processor bus 100
The contents are stored in the block data section 2x2 of the entry E.
The data specified by the address a of the block Ba
Rewrite (step 61) via the processor bus 100
To notify the processor that access has been completed,
That the use of the system bus 4 via the
Is notified to the bus master controller 6 (step 6).
3). As a result of the check in step 66 in FIG.
ES, that is, when the modification part of the entry E is “1 (B
Ba in the lock data section is inconsistent with Ba in the main memory.
"), The cache memory 11 is connected to the signal line 101.
Requests the use of the system bus 4 via the bus master controller.
Inform roller 6. The bus master controller 6
According to the prescribed procedure.
Only the use permission of the system bus 4 is given. Signal line 102
Permission to use the system bus 4 via the cache memory 1
1, the address a on the address bus 41
And issues a rewrite instruction to the read / write bus 43.
To the data bus 42, the block data portion of the entry E.
The block Ba stored in 2 × 2 is output and
The block Ba of the memory 5 is output to the data bus 42.
The content is updated with the contents (step 69). The intermediate state part 2 × 4 of the entry E is changed to “1 (medium
In the task identification information section 2x3 of the entry E
The task identification output to the task identification information bus 1001
Access type output by the processor 10 by setting separate information
If another (step 70) is "read", enter
The modifying section 2 × 6 of E is set to “0 (block data section).
(Ba coincides with Ba in the main memory). "
71), stored in the block data section 2 × 2 of the entry E
Data specified by the address a of the block Ba
Is transferred to the processor 10 (step 62 in FIG. 4),
Proceed to step 63. Block B from processor 10
If the access type (step 70) for “a” is “rewrite
If "E", the modifying section 2x6 of the entry E
"1 (Ba of the block data part and Ba of the main memory are
And the processor 10
The entry E is blocked with the contents specified through the subbass 100.
Of the block Ba stored in the lock data section 2x2
Rewrite the data specified by address a (see FIG.
Step 61); proceed to Step 63. In step 63
The cache memory 11 is connected via the processor bus 100
Notifying the processor 10 that the access has been completed,
That the use of the system bus 4 via the
Is notified to the bus master controller 6. (B-b) Intermediate state part 2 × 4 of entry E
Is “1 (intermediate state)” (see FIG. 6): Step 7
3, the value of the task identification information section 2 × 3 of the entry E is the task
Matches with the value output to the identification bus 1001 (signal line 2
Check if the output of xC is "ON"). The result
As a result, NO, that is, the task identification information section 2x of the entry E
3 is the value output to the task identification bus 1001 and
When there is no match (output of signal line 2xC is "OFF"),
The access type for the block Ba from the processor 10 is
"Rewrite" (step 79) or processor 10
The access type for block Ba from
And the modifying section 2x6 of the entry E is "1 (B
Ba in the lock data section is inconsistent with Ba in the main memory.
If (")" (step 80), the cache memory 1
1 performs the inconsistency resolution processing shown in (c) below, and
The processing being executed in 10 is interrupted or invalidated (aborted),
Tasks selected for execution in a predetermined way
The task is performed. As a result of the check in step 73, YES
That is, the value of the task identification information section 2x3 of the entry E is
Match the value output to the disk identification bus 1001 (signal
When the output of line 2xC is "on"), the processor
The access type for the block Ba from 10 is “write”
Change (step 74) and modify entry E
Section 2x6 is "0 (the main memory of the block data section)
If Ba matches) (step 75), the cache
The memory 11 uses the system bus 4 via the signal line 101.
Request to the bus master controller 6. Basma
The star controller 6 performs 1 according to a predetermined procedure.
Permission to use system bus 4 for only one cache memory
give. Use of system bus 4 via signal line 102
When permission is given to the cache memory 11, the address
The address a is output on the bus 41 and the read / write
The read instruction is output to the access 43
Access type “rewrite” output by the processor 10
Is output (step 76). The cache memories 21 and 31 store
Input the address a output to the
A block Ba containing data of the dress a is stored therein.
The flow chart shown in FIG.
Inconsistent when the state of step 87 is reached
A notification that an inconsistency has occurred is output via the response bus 46.
You. The cache memory 11 stores the processing unit 2 or 3
Inconsistent from the cache memory via the inconsistency response bus 46
Is notified (step 77) that the
The inconsistency resolution processing shown in (c) is performed. An inconsistency has occurred via the inconsistency response bus 46.
If there is no notification to that effect, the cache memory 11
Output a signal to the effect that a response has been output to the transfer response bus 45
Then, the data transfer from the main memory 5 is stopped (step
Step 78: Block Ba is already in cache memory 11
Reads the block from the main memory 5 because it exists
(It is not necessary.) Returning to FIG. 4, in this case, rewriting
From step 60 to step 61, entry E
Of the modified part 2 × 6 of “1 (B of the block data part)
a and Ba of the main memory do not match) "
Contents instructed from the processor 10 via the processor bus 100
Is stored in the block data section 2x2 of the entry E.
The data specified by the address a of the block Ba
In other words, the access via the processor bus 100 is completed.
Is notified to the processor 10 via the signal line 101.
That the use of system bus 4 has been terminated
The controller 6 is notified (step 63). The value of the task identification information section 2 × 3 of the entry E
Does not match the value output to the task identification bus 1001
When the output of the signal line 2 × C is “OFF”, the processor
10 to the block Ba from FIG.
Step 79) is “read” and entry E mod
The phi part 2x6 is "0 (Ba of the block data part and
(Ba of the memory matches) "(step 80),
The value of the task identification information section 2x3 in the task identification information section 2x3
And the value output to the task identification information bus 1001
The logical sum is set (Step 81: For example, the task identification information
The value “01101010” is set in the
The value “00000100” is stored in the task identification bus 1001.
Is output in the task identification information section 2x3.
“01101110” is set), and the data is read.
From step 60 in FIG.
Of the block Ba stored in the block data section 2x2
Transfer the data specified by the
(Step 62), access via the processor bus 100
The completion of the access is notified to the processor 10 by a signal line 101.
That the use of the system bus 4 has been terminated via
Notify the star controller 6 (step 63). For the block Ba from the processor 10,
Access type is “rewrite” or the model of entry E
The verifying section 2x6 indicates “1 (Ba and block data
(Ba of in-memory does not match.) "
The memory 11 performs the inconsistency resolution processing shown in (c) below, and
Processing being executed by the processor 10 is interrupted or invalidated (canceled)
Selected from tasks waiting to be executed in a predetermined manner
The specified task is executed. (C) Inconsistent response bus from another processing unit
46 when a notification that a contradiction has occurred is received via
Or an inconsistency has occurred for access from the processor 10.
Case: the cache memory 11 is
Cancels the running task and rewrites the running task.
The state before the task started executing the contents of the in-memory
In this case, the invalidation instruction signal 2C in FIG.
Then, the value “1” is stored in the intermediate state information section of the cache memory 11.
(Intermediate state) is set and the modify information section
Of all entries for which the value “1” is set
The data information part is set to “0 (invalid)”, and then the
Between the states of the cache memory 2
Intermediate state set by the task that performed the access
Cancel. As a result, the processor 10 is rewritten.
The contents of the block that was interrupted when the execution of the interrupted task started
It becomes the contents of the point and the read lock state (intermediate state,
The state where the modifying section is "0") is also released. Ki
The cache memory 11 is a task executed by the processor 10.
And via the processor bus 100
The processor 10 is notified that inconsistency has occurred. Professional
The task being executed by the processor 10 is invalidated (aborted), and the
Tasks selected in a predetermined manner from tasks waiting for a line
The task is executed. In the above, the access source when inconsistency occurs
Described how to abort a running task.
Interrupt the task in progress and a predetermined time has elapsed
There is also a method to resume from the interruption point later. All accesses from the cache memory 11
Other processing units notify the
For all accesses from processor 10
No inconsistency occurs, and the processing being executed by the processor 10 is normal
At the end of the process,
The determination instruction signal 2D of FIG.
The value “1 (intermediate state)” is stored in the intermediate state information section of the memory 11.
Is set and the value "1" is set in the modify information section.
The intermediate state information section of all entries that have been
Fixed state), and then the intermediate state solution shown in (d) below.
From the cache memory 2
Cancel the intermediate state set by the disk. This
Therefore, it is confirmed that the task executed by the processor 10 is rewritten.
And the task executed by the processor 10 has accessed
All blocks are processed from other processors
Reading and rewriting become possible. (D) Intermediate state release processing Instruction of processor 10 or inconsistency from processor 10
When the access is performed, the cache memory 11
Is the task identification information of the task that releases the intermediate state (this
Information is provided via a task identification information bus 1001.
The following processing. Cash memo
The lock 11 performs the lock release process shown in FIG. here,
FIG. 8 shows a key in response to an intermediate state release instruction from the processing unit.
FIG. 4 is a diagram for explaining processing in the cache memory.
By using logic circuits, each part of this process can be performed simultaneously.
Can be performed in parallel. Cache memory 11
A counter 25 for sequentially specifying entries in the
Then, the task identification information is input to the signal line 2B. counter
Set the value of 25 to the initial value (here, “1”)
(Step 93), the counter value is stored in the cache memory 2
Until the total number of entries e is reached (this is
Judge), every time the value of the counter 25 is incremented by one,
Repeat the process. Here, the value of the counter 25 is "c"
The entry specified is entry Ec, and entry Ec is
Address information section 2c1, block data section 2c2, task
.. Are assumed to be composed of the identification information sections 2c3,. When the value of the valid part 2c5 of the entry Ec is
"0 (invalid)" (step 94) or intermediate state information section
When the value of 2c4 is “0 (determined state)” (step 95)
In this case, the value of the counter 25 is incremented by 1 (step 100).
The value of the valid part 2c5 of the entry Ec is "1 (valid)"
(Step 94) When the value of the intermediate state information section 2c4 is “1”
(Intermediate state) ”(step 95), the task identification information
The value and the intermediate state of the task identification information section 2x3 are
Logic of the task identification information to be released with the value obtained by inverting 0/1
The product (for example, the value “01101” is stored in the task identification information unit 2 × 3
110 "is set, and the
If the disk identification information is “0000100100”, the task
The value “01101010” is set in the ID information section 2x3
Is done. The fact that there is one bit in this means that
(Meaning that there is a task that does not release the status)
(Step 96), and as a result, the task identification information section 2x
All three bits are “0” (ie, “000000”
00 ”), the value is stored in the intermediate state information section 2 × 4.
"0 (determined state)" is set (step 98),
The value of the data 25 is incremented by 1 (step 99). Step 99
, The value of the counter 25 is equal to the number of entries e.
If not, the process returns to step 94, and the number of entries becomes e.
Then, the intermediate state release processing ends. Thus, the processing unit is divided and executed.
Tasks and each processing unit are activated in parallel.
For securing / releasing access rights to the block to be accessed
Need to be embedded in the processing executed by each processor in advance.
Tasks that are executed separately by the processing unit
And multiple processors in parallel on the same block
Exclusive control is performed to guarantee consistency when accessing
It is. As described above, the present invention can be applied to various processes.
Tasks that are divided and executed by the
Access rights when accessing common data
Reserve / release processing is reserved for processing executed by each processing unit.
Installation is no longer necessary, ensuring access rights and
There is no processing unit overhead due to release, and new
Data that became common data by adding processing to
The conventional processing to perform exclusive control on the data
Effective performance in the processing unit because it is not necessary
Process to be executed by the processing unit
To greatly improve the productivity of program descriptions
Becomes possible.
【図面の簡単な説明】
【図1】本発明の一実施例を示すブロック図である。
【図2】本発明のキャッシュメモリのエントリの構成図
を説明するための図である。
【図3】本発明のプロセッサからのアクセスに対するキ
ャッシュメモリの動作を説明するためのフローチャート
(その1)である。
【図4】本発明のプロセッサからのアクセスに対するキ
ャッシュメモリの動作を説明するためのフローチャート
(その2)である。
【図5】本発明のプロセッサからのアクセスに対するキ
ャッシュメモリの動作を説明するためのフローチャート
(その3)である。
【図6】本発明のプロセッサからのアクセスに対するキ
ャッシュメモリの動作を説明するためのフローチャート
(その4)である。
【図7】本発明の他の処理ユニットによるアクセスをチ
ェックするためのフローチャートである。
【図8】本発明の中間状態を解除する処理を説明するた
めのフローチャートである。
【符号の説明】
1、2および3 処理ユニット
4 システムバス
5 メインメモリ
6 バスマスタコントローラ
10、20および30 プロセッサ
11、21および31 キャッシュメモリ
41 アドレスバス
42 データバス
43 リード/ライトバス
44 アクセス種別バス
45 転送応答バス
46 矛盾応答バス
100、200および300 プロセッサバス
101、102、201、202、301および302
信号線
1001、2001および3001 タスク識別情報バ
スBRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing one embodiment of the present invention. FIG. 2 is a diagram for explaining a configuration diagram of an entry of a cache memory according to the present invention; FIG. 3 is a flowchart (part 1) for explaining the operation of the cache memory in response to access from the processor according to the present invention; FIG. 4 is a flowchart (part 2) for explaining the operation of the cache memory in response to access from the processor according to the present invention; FIG. 5 is a flowchart (part 3) for explaining the operation of the cache memory in response to access from the processor according to the present invention; FIG. 6 is a flowchart (part 4) for explaining the operation of the cache memory in response to access from the processor according to the present invention; FIG. 7 is a flowchart for checking access by another processing unit of the present invention. FIG. 8 is a flowchart illustrating a process of canceling an intermediate state according to the present invention. DESCRIPTION OF SYMBOLS 1, 2, and 3 Processing unit 4 System bus 5 Main memory 6 Bus master controllers 10, 20, and 30 Processors 11, 21, and 31 Cache memory 41 Address bus 42 Data bus 43 Read / write bus 44 Access type bus 45 Transfer response bus 46 Conflict response buses 100, 200 and 300 Processor buses 101, 102, 201, 202, 301 and 302
Signal lines 1001, 2001 and 3001 Task identification information bus
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 9/46 G06F 12/00 G06F 15/16 - 15/177 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int. Cl. 7 , DB name) G06F 12/08 G06F 9/46 G06F 12/00 G06F 15/16-15/177
Claims (1)
およびシステムバスからなり、上記処理ユニットおよび
上記メインメモリは上記システムバスで相互に接続され
て構成される情報処理装置において、上記メインメモリ
のアドレス空間は複数のブロックに分割され、上記処理
ユニットはプロセッサおよびキャッシュメモリからな
り、上記キャッシュメモリはそれぞれがブロックデータ
部およびブロック状態情報部からなる複数のエントリか
らなり、上記プロセッサは、ブロックにアクセスする際
に、プロセッサで実行中の処理(タスク)を識別する情
報であるタスク識別情報を出力する手段を有し、上記キ
ャッシュメモリはプロセッサからのブロックへのアクセ
スに対して、当該ブロックをブロックデータ部に格納す
るエントリのブロック状態情報部に中間状態であること
を示す情報、プロセッサからのアクセスに応じた状態お
よびタスク識別情報を設定する手段を有し、プロセッサ
からの指示によってエントリのブロック状態情報部に格
納されている中間状態を解除する手段を有し、プロセッ
サがブロックへアクセスを行ったとき、当該アドレスで
指定されるブロックが格納されているエントリのブロッ
ク状態情報部に中間状態であることを示す情報が設定さ
れており、さらに、当該エントリのブロック状態情報部
に設定されている状態およびタスク識別情報とプロセッ
サが出力したアクセス種別およびタスク識別情報とが予
め定められた組み合わせの場合、アクセスを行ったプロ
セッサに対して中間状態のブロックに対してアクセスを
行った旨を通知することを特徴とする処理の中断が可能
な排他制御方式。(57) [Claim 1] Information comprising one or more processing units, a main memory and a system bus, wherein the processing units and the main memory are mutually connected by the system bus. In the processing device, the address space of the main memory is divided into a plurality of blocks, the processing unit includes a processor and a cache memory, and the cache memory includes a plurality of entries each including a block data section and a block state information section. The processor has means for outputting task identification information, which is information for identifying a process (task) being executed by the processor, when accessing the block, and the cache memory is used for accessing the block from the processor. On the other hand, the corresponding block is stored in the block data section. Means for setting the information indicating the intermediate state, the state according to the access from the processor, and the task identification information in the block state information section of the entry to be stored in the block state information section of the entry according to an instruction from the processor. Means for canceling the intermediate state being set, and when the processor accesses the block, information indicating that the block specified by the address is stored in the block state information portion of the entry indicating the intermediate state. Is set, and when the state and task identification information set in the block state information section of the entry and the access type and task identification information output by the processor are a predetermined combination, an access is performed. Notifies the processor that an intermediate block has been accessed Exclusive control method capable of interruption of the process according to claim Rukoto.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05527893A JP3381080B2 (en) | 1993-03-16 | 1993-03-16 | Exclusive control method that can interrupt processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05527893A JP3381080B2 (en) | 1993-03-16 | 1993-03-16 | Exclusive control method that can interrupt processing |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06266610A JPH06266610A (en) | 1994-09-22 |
JP3381080B2 true JP3381080B2 (en) | 2003-02-24 |
Family
ID=12994131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05527893A Expired - Fee Related JP3381080B2 (en) | 1993-03-16 | 1993-03-16 | Exclusive control method that can interrupt processing |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3381080B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4226816B2 (en) | 2001-09-28 | 2009-02-18 | 株式会社東芝 | Microprocessor |
JP4643702B2 (en) * | 2008-10-27 | 2011-03-02 | 株式会社東芝 | Microprocessor |
-
1993
- 1993-03-16 JP JP05527893A patent/JP3381080B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06266610A (en) | 1994-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6052760A (en) | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JPH06187232A (en) | Control method of access management of common data | |
JP5338435B2 (en) | Information processing program, information processing apparatus, and information processing method | |
US5737568A (en) | Method and apparatus to control cache memory in multiprocessor system utilizing a shared memory | |
JP3550092B2 (en) | Cache device and control method | |
JP2001222466A (en) | Multiprocessor system, shared memory control system, its method, and recording medium | |
JPH0133857B2 (en) | ||
JP2829115B2 (en) | File sharing method | |
JP3814521B2 (en) | Data processing method and apparatus | |
JP3381080B2 (en) | Exclusive control method that can interrupt processing | |
JP3381086B2 (en) | Exclusive controllable multiprocessor system | |
JP3381079B2 (en) | Exclusive control system using cache memory | |
JP2000003302A (en) | Method for controlling exclusive access of common memory | |
JP4506292B2 (en) | Cache control method, data processing system, and processing program therefor | |
JP3093609B2 (en) | Apparatus and method for controlling storage consistency of cache memory | |
CN110058947B (en) | Exclusive release method of cache space and related device | |
JPH06309231A (en) | Cache memory control method | |
JPS5848289A (en) | Buffer memory controlling system | |
JPS5858666A (en) | Data processor | |
JP2504323B2 (en) | System bus control method | |
JPH04140860A (en) | Method for controlling bus of multi-processor | |
JPH06139206A (en) | Exclusive control system of multiprocessor system | |
CN116685958A (en) | Method and device for accessing data | |
JPH03172943A (en) | Cache memory control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |