JPH06266620A - キャッシュメモリを用いた排他制御システム - Google Patents

キャッシュメモリを用いた排他制御システム

Info

Publication number
JPH06266620A
JPH06266620A JP5055277A JP5527793A JPH06266620A JP H06266620 A JPH06266620 A JP H06266620A JP 5055277 A JP5055277 A JP 5055277A JP 5527793 A JP5527793 A JP 5527793A JP H06266620 A JPH06266620 A JP H06266620A
Authority
JP
Japan
Prior art keywords
task
entry
exclusive control
identification information
cache memory
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.)
Granted
Application number
JP5055277A
Other languages
English (en)
Other versions
JP3381079B2 (ja
Inventor
Tsunemichi Shiozawa
恒道 塩澤
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 JP05527793A priority Critical patent/JP3381079B2/ja
Publication of JPH06266620A publication Critical patent/JPH06266620A/ja
Application granted granted Critical
Publication of JP3381079B2 publication Critical patent/JP3381079B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 マルチタスク処理における排他制御を効率良
く行ない、共通データの無矛盾性の保証性能と、処理ユ
ニットの実効的な性能とを向上させる。 【構成】 メインメモリのブロック単位のデータを各エ
ントリに格納し、このエントリを介して、マルチタスク
処理を行なう処理ユニットからのアクセスに対応するデ
ータの転送制御と排他制御を行なうキャッシュメモリに
おいて、エントリに格納されているブロックを排他制御
の対象として設定した処理ユニットの各タスクの識別情
報を登録するタスク識別情報登録部を、エントリごとに
設ける構成とし、タスク単位で、エントリに格納されて
いるブロックの排他制御、および、この排他制御の設定
と解除を行なう。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のタスクを並列に
実行するマルチタスク処理を行なう処理ユニットからの
アクセスに対するのデータの転送制御を行なうキャッシ
ュメモリを用いた排他制御技術に係わり、特に、複数の
タスク間でアクセスされるデータの無矛盾性の保証を、
効率良く行なうのに好適なキャッシュメモリを用いた排
他制御システムに関するものである。
【0002】
【従来の技術】一般に、メインメモリのデータ転送速度
は、処理ユニットの高速な処理速度に比べて低速であ
り、このメインメモリの低速なデータ転送動作は、シス
テムの性能低下の原因となっている。このような、問題
を解決するためには、例えば、社団法人電子情報通信学
会編「電子情報通信ハンドブック」(1988年、株式
会社オーム社発行)の第1670頁から第1671頁に
記載のように、キャッシュメモリ(バッファ記憶)を設
けることが有効である。
【0003】このようなキャッシュメモリを介して、マ
ルチタスク処理を行なう処理ユニットの各タスクが、共
通にアクセスする共通データの読み出し、および、書き
換えを行なう場合、他のタスクとの間に矛盾が発生す
る。例えば、タスクAとタスクBが、メインメモリのア
ドレスX(キャッシュメモリのエントリX)に格納して
いる値「x」に、それぞれ、「10」および「100」
を加算する場合、タスクAとタスクBの処理が矛盾なく
行なわれると、アドレスXの値は「x+110」とな
る。しかし、タスクAが、アドレスXの値「x」を読み
出してからアドレスXに値「x+10」を書き込む前
に、処理ユニットで実行されるタスクが、タスクBに切
り替わると、タスクBが、アドレスXの値「x]を読み
出し、タスクBは、アドレスXを「x+100」に書き
換える。そして、タスクAが再開されると、タスクA
は、アドレスXを「x+10」に書き換え、最終的なア
ドレスXの値は「x+10」となる。
【0004】このような矛盾が発生しないように、各タ
スクは、共通データにアクセスする前に、共通データへ
のアクセス権の獲得を行なう。このアクセス権の獲得が
成功すると、タスクは、共通データへのアクセスを行な
い、共通データへのアクセス終了後に、このアクセス権
を解放する。従来技術では、このアクセス権は、共通デ
ータごとに設けられ、同時には1つのタスクにのみ、ア
クセス権が与えられるように制御される。
【0005】このように、従来のマルチタスクでのデー
タの矛盾を保証する制御においては、各タスクは、共通
データにアクセスする前にアクセス権を獲得し、他のタ
スクからの共通データへのアクセスを抑止する制御や、
あるタスクが共通データにアクセスしている間には、処
理ユニットで実行中のタスクの切り替えを抑止する制御
などの排他制御が必要である。一般に、このような排他
制御では、対象となるデータを以下の3つの状態で管理
する。 (a)リードロック状態:1つ以上のタスクによって読
み出し中であり、他タスクからの書き換えアクセスを抑
止する必要がある。 (b)ライトロック状態:1つのタスクによって書き換
え中であり、他タスクからの読み出し、および、書き換
えアクセスを抑止する必要がある。 (c)アンロック状態 :何れのタスクからも全てのア
クセスが可能である。
【0006】しかし、このような排他制御技術では、各
タスクが同時並列にアクセスする共通データごとに、ア
クセス権の確保と解放の処理を行なう必要があるため、
このための処理量が増加する欠点があった。このような
問題を解決するための従来技術として、同時並列にアク
セスしないデータと共通データを厳密に分けずに、アク
セス権の確保と解放を、複数の共通データに対して一括
して行なうことにより、アクセス権の確保と解放の回数
を減らす技術がある。
【0007】しかし、このように、複数の共通データに
対して一括してアクセス権の確保と解放を行なうと、排
他制御の対象となる共通データの対象が増加し、無用な
排他制御が行なわれるため、複数のタスクで並列に行な
う処理の実行が阻害される確率が大きくなってしまう。
また、タスクの切り替えを抑止する排他制御では、共通
データへのアクセスを頻繁に行なうタスクの実行が優先
されることとなり、例えば、タスクによっては、開始か
ら終了まで切り替えが行なわれなくなり、タスクを相互
に切り替えて分割処理することによって実行の並列化を
図るマルチタスクの制御が複雑になってしまう。
【0008】
【発明が解決しようとする課題】解決しようとする問題
点は、複数の共通データに対して一括してアクセス権の
確保と解放を行なう従来の排他制御技術では、無用な排
他制御が行なわれ、マルチタスク処理が阻害される確率
が大きくなってしまい、また、タスクの切り替えを抑止
する従来の排他制御技術では、共通データへのアクセス
を頻繁に行なうタスクの実行が優先され、マルチタスク
の並列処理制御が複雑になってしまい、排他制御を効率
良く行なうことができない点である。本発明の目的は、
これら従来技術の課題を解決し、キャッシュメモリのエ
ントリへの各タスクのアクセスに対する排他制御を効率
良く行ない、マルチタスク処理を行なう処理ユニットの
実効的な性能を向上させることを可能とするキャッシュ
メモリを用いた排他制御システムを提供することであ
る。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明のキャッシュメモリを用いた排他制御システ
ムは、(1)タスクを分割して並列に処理する処理ユニ
ットがアクセスするメインメモリに格納されているブロ
ック単位のデータを、各エントリに格納し、このエント
リを介して、処理ユニットからのアクセスに対するデー
タの転送制御を行なうと共に、処理ユニットで並列に処
理される複数のタスクからの同一のエントリへのアクセ
スを制御してデータの矛盾を回避する排他制御を行なう
キャッシュメモリにおいて、排他制御のために、エント
リに、処理ユニットで並列に処理される各タスクの識別
情報を登録するタスク識別情報登録部と、エントリに格
納されているブロックに対する排他制御情報を登録する
排他制御情報登録部を、エントリごとに設け、タスク単
位で、エントリに格納されているブロックの排他制御、
および、この排他制御の設定と解除を行なうことを特徴
とする。また、(2)上記(1)に記載のキャッシュメ
モリを用いた排他制御システムにおいて、キャッシュメ
モリは、処理ユニットのタスクからの排他制御の解除指
示に基づき、このタスクの識別情報を登録しているエン
トリに対するタスク識別情報の解除、および、このエン
トリに対する全てのタスク識別情報が解除された場合で
の排他制御情報の解除を行なうことを特徴とする。
【0010】
【作用】本発明においては、マルチタスク処理を行なう
処理ユニットの各タスクの、キャッシュメモリの同一エ
ントリに対する排他制御を、各タスク単位で行なう。例
えば、キャッシュメモリの各エントリは、各エントリを
識別するアドレス情報や、他のタスクからの全てまたは
一部のアクセスを抑止する排他制御が設定された状態を
示すロック状態情報などと共に、排他制御の設定(ロッ
ク)を指示したタスクの識別情報を登録する。そして、
ロック状態としたエントリに対する抑止が必要なアクセ
スが発生した場合、このアクセスを行なったタスクを判
別する。もし、他のタスクからのアクセスであれば、こ
のタスク、もしくは、このエントリをロックしたタスク
のいずれかを中断、または、無力化(中止)することに
より、排他制御を行なう。このことにより、各タスクが
並列にアクセスする共通なエントリのアクセス権の確保
と解放の処理を行なうための処理量の増加を回避するこ
とができ、かつ、タスクの切り替えを抑止する制御も不
要となる。
【0011】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明の排他制御システムに用いる
キャッシュメモリの本発明に係わる構成の一実施例を示
すブロック図であり、図2は、このキャッシュメモリを
用いた情報処理システムの構成の一具体例を示すブロッ
ク図である。図2において、1は、分割した複数のタス
クを並列に実行してマルチタスク処理を行なう処理ユニ
ット、2は、本発明に係わる排他制御動作を行なうキャ
ッシュメモリ、3は、処理ユニット1とキャッシュメモ
リ2間を接続するキャッシュバス、4は、処理ユニット
1からのアクセスの対象となる元のデータを格納するメ
インメモリ、5は、キャッシュメモリ2とメインメモリ
4間を接続するメモリバスである。
【0012】キャッシュバス3は、処理ユニット1から
送出されるアドレスを伝達するためのアドレスバス31
と、処理ユニット1とキャッシュメモリ2の間で授受さ
れるデータを伝達するためのデータバス32と、処理ユ
ニット1から送出されるアクセスの内容(読み出し/書
き換え)を伝達するためのリード/ライトバス33と、
本発明に係わり、処理ユニット1で実行中の各タスクの
識別情報を伝達するためのタスク識別情報バス34と、
処理ユニット1から送出されるロック(排他制御設定)
指示情報を伝達するためのロック指示バス35と、キャ
ッシュメモリ2から送出される処理ユニット1からのア
クセスに対応する制御結果を伝達するための転送応答バ
ス36と、キャッシュメモリ2から送出される処理ユニ
ット1からのアクセスが矛盾した結果を伝達するための
矛盾応答バス37とからなる。
【0013】処理ユニット1は、アドレスaで指定され
るデータの読み出し、または、書き換えアクセスを行な
うとき、アドレスバス31にアドレスaを出力し、リー
ド/ライトバス33に、「読み出し」または「書き換
え」の種別を出力し、タスク識別情報バス34に、処理
ユニット1で実行中のタスクに予め割り当てられたタス
ク識別情報を出力し、ロック指示バス35に、「ロック
設定指示」または「ロック解除指示」を出力し、書き換
えの場合には、データバス32に、書き換えデータを出
力する。
【0014】本実施例においては、タスク識別情報バス
34は、複数の信号線からなり、各信号線には、処理ユ
ニット1で並列して実行する各タスクが、重複しないよ
うに割り当てられている。そして、処理ユニット1で実
行中のタスクは、キャッシュメモリ2にアクセスする際
に、割り当てられている信号線のみに、値「1」を出力
し、他の信号線には、値「0」を出力する。また、ロッ
ク情報の解除を指示するためのバスは設けず、処理ユニ
ット1からのアクセス時に、ロック指示バス35にロッ
ク指示が出力されていない場合に、当該するエントリに
対するロック情報の解除を指示する。また、メインメモ
リ4は、同じ大きさのブロックに分割され、キャッシュ
メモリ2との間では、メモリバス5を介して、ブロック
単位にメモリ内容の転送を行なう。本発明に係わるキャ
ッシュメモリ2は、図1で示すように、メインメモリ4
の各ブロック単位のメモリ内容を格納する複数のエント
リからなる。
【0015】図1において、キャッシュメモリ2のe個
の各エントリ210〜2e0は、転送されたブロックの
アドレス情報を格納するアドレス情報部211〜2e1
と、ブロック単位のメモリ内容を格納するブロックデー
タ部212〜2e2と、図2のタスク識別情報バス34
の信号線と同一のビット数からなり、ロック指示を行な
ったタスクが値「1」を出力した信号線に対応するビッ
トに、値「1」を設定する本発明のタスク識別情報登録
部としてのタスク識別情報部213〜2e3と、ロック
(排他制御)状態を示す本発明の排他制御情報登録部と
してのロック状態情報部214〜2e4と、各エントリ
210〜2e0に格納されている内容が有効であるか無
効であるかを示すバリッド部215〜2e5と、ブロッ
クデータ部212〜2e2の内容のみを書き換えたこと
を示すモディファイ部216〜2e6と、アドレス情報
部211〜2e1と信号線21との内容とを比較する比
較器217〜2e7と、タスク識別情報部213〜2e
3と信号線22との内容とを比較する比較器218〜2
e8と、比較器217〜2e7から「一致」した旨の信
号が出力され、かつ、バリッド部215〜2e5の内容
が、「1(有効)」である場合に、信号線21B〜2e
Bに「オン」を出力するアンドゲート219〜2e9と
からなる。
【0016】以下、このような構成の本実施例のキャッ
シュメモリの本発明に係わる動作を、図2のメインメモ
リ4のアドレスaで指定されるデータを含むブロックを
Baとし、図2の処理ユニット1が、ブロックBaをア
クセスする場合を例として、図3〜図8を用いて説明す
る。
【0017】図3〜図8は、図2における情報処理シス
テムの本発明に係わる処理動作の第1の具体例を示すフ
ローチャートである。本例は、主に、図2の処理ユニッ
ト1からのアクセスに対する図1における本実施例のキ
ャッシュメモリ2の処理を示すものであり、論理回路を
用いることにより、この処理の各部分を並列に実行する
ことができる。まず、図3における処理動作の説明を行
なう。図2の処理ユニット1が、図2のキャッシュバス
3を介して図2のメインメモリ4のa番地のブロックB
aにアクセスすると(ステップ301)、図1における
キャッシュメモリ2は、図2のアドレスバス31に出力
されているアドレスaのアドレス情報を、図1の信号線
21に入力し、また、図2のタスク識別情報バス34に
出力されているタスク識別情報を、図1の信号線22に
入力する(ステップ302)。そして、それぞれ入力し
たアドレス情報とタスク識別情報とに対応して、以下の
ように処理を行なう。
【0018】図2の処理ユニット1から、図2のドレス
バス31を介して要求されたアドレスaのデータを含む
ブロックBaを格納する有効なエントリが、図1のキャ
ッシュメモリ2に存在しない、すなわち、図1の信号線
21B〜2eBの出力が「オン」であるエントリが存在
しない場合(ステップ303)、図1のキャッシュメモ
リ2は、図1のロック状態情報部214〜2e4が、
「0(アンロック状態)」であるエントリから、予め定
められた手続きによって、エントリを選択する(ステッ
プ304)。以下、この選択したエントリをエントリE
と記述し、このエントリEは、アドレス情報部2x1、
ブロックデータ部2x2、タスク識別情報部2x3、・
・・で構成されているものとする。
【0019】エントリEのバリッド部2x5が「1(有
効)」、かつ、モディファイ部2x6が「1(ブロック
データ部のBaとメインメモリのBaが不一致)」であ
れば(ステップ305)、図1のキャッシュメモリ2
は、図2のメモリバス5を介して、エントリEのアドレ
ス情報部2x1で指定される図2メインメモリ4のブロ
ックを、ブロックデータ部2x2で書き換える(ステッ
プ306)。そして、図1のキャッシュメモリ2は、図
2のメモリバス5を介して、図2のメインメモリ4から
ブロックBaを読み出し、エントリEのブロックデータ
部2x2に格納し、アドレスaのアドレス情報を、アド
レス情報部2x1に格納し、バリッド部2x5を「1
(有効)」として(ステップ307)、次の図4に示す
処理を行なう。
【0020】以下、図4における処理動作の説明を行な
う。図2の処理ユニット1が、図2のロック指示バス3
5に、ロック指示信号を出力していない場合には(ステ
ップ308)、タスク識別情報部2x3の全てのビット
に「0」を設定し(ステップ309)、ロック状態情報
部2x4に、「0(アンロック状態)」を設定する(ス
テップ310)。また、ステップ308において、図2
の処理ユニット1が、図2のロック指示バス35に、ロ
ック指示信号を出力している場合には、タスク識別情報
部2x3に、図2のタスク識別情報バス35に出力され
ている値を設定する(ステップ311)。そして、図2
のリード/ライトバス33に、アクセス種別として、
「書き換え」ではなく「読み出し」が出力されていれば
(ステップ312)、ロック状態情報部2x4に、「1
(リードロック状態)」を設定し(ステップ313)、
また、「書き換え」が出力されていれば、ロック状態情
報部2x4に、「2(ライトロック状態)」を設定して
(ステップ314)、次の図5に示す処理を行なう。
【0021】以下、図5における処理動作の説明を行な
う。図2のリード/ライトバス33に、アクセス種別と
して「書き換え」ではなく「読み出し」が出力されてい
れば(ステップ315)、エントリEのモディファイ部
を「0(ブロックデータ部のBaとメインメモリのBa
が一致)」とすると共に、エントリEのブロックデータ
部に格納されているブロックBaのアドレスaで指定さ
れるデータを、図2のデータバス32に出力する(ステ
ップ316)。また、ステップ315において、図2の
リード/ライトバス33に、アクセス種別として「書き
換え」が出力されていれば、エントリEのモディファイ
部2x6を、「1(ブロックデータ部のBaとメインメ
モリのBaが不一致)」とすると共に、エントリEのブ
ロックデータ部に格納されているブロックBaのアドレ
スaで指定されるデータを、図2のデータバス32に出
力されている内容で書き換える(ステップ317)。以
上の処理が終了すると、図2のキャッシュメモリ2は、
図2の転送応答バス36を介して、図2の処理ユニット
1に、図2のデータバス32に読み出しデータを出力し
た旨、または、書き換えアクセスが完了した旨を通知す
る(ステップ318)。
【0022】また、図3のステップ303において、図
2の処理ユニット1から、図2のアドレスバス31を介
して要求されたアドレスaのデータを含むブロックBa
を格納する有効なエントリEが、図2のキャッシュメモ
リ2に存在する場合、すなわち、図1における信号線2
1B〜2eBの出力が「オン」であるエントリが存在す
る場合には、次の図6〜図8で示す処理動作を行なう。
【0023】まず、図6における処理動作の説明を行な
う。本図6は、エントリEのロック情報情報部2x4が
(ステップ319)、「0(アンロック状態)」の場合
の処理を示している。図2の処理ユニット1が、図2の
ロック指示バス35にロック指示信号を出力し(ステッ
プ320)、かつ、図2のリード/ライトバス33に、
アクセス種別として、「書き換え」を出力しているとき
(ステップ321)、エントリEのモディファイ部2x
6が、「1(ブロックデータ部のBaとメインメモリの
Baが不一致)」であれば、図2のキャッシュメモリ2
は、図2のメモリバス5を介して、図2のメインメモリ
4のブロックBaを、ブロックデータ部2x2の内容で
書き換えると共に、モディファイ部2x6を「0(ブロ
ックデータ部のBaとメインメモリのBaが一致)」と
する(ステップ322)。
【0024】そして、ロック状態情報部2x4に「2
(書き換え/ライトロック状態)」を設定し(ステップ
323)、タスク識別情報部2x3に、図2のタスク識
別情報バス34に出力されている値を設定する(ステッ
プ324)。また、ステップ321において、アクセス
種別として、「書き換え」ではなく「読み出し」を出力
しているときは、ロック状態情報部2x4に「1(読み
出しロック状態)」を設定し(ステップ325)、ステ
ップ324の処理を行なう。このステップ324の処理
のあとには、上述の図5に示す処理動作を行なう。
【0025】次に、図7における処理動作の説明を行な
う。本図7は、図6のステップ319において、エント
リEのロック情報情報部2x4が「1(リードロック状
態)」の場合の処理を示している。図2の処理ユニット
1が、図2のロック指示バス35に、ロック指示信号を
出力し(ステップ326)、かつ、図2のリード/ライ
トバス33にアクセス種別として「書き換え」を出力し
ているとき(ステップ327)、図2のタスク識別情報
バス34の全ての信号線の値と、エントリEのタスク識
別情報部2x3の対応する挿げてのビット値とが一致し
なければ、すなわち、図1の信号線2xcの出力がオフ
であれば(ステップ328)、後述の図8におけるステ
ップ329の処理を行なう。すなわち、図2のキャッシ
ュメモリ2は、図2の矛盾応答バス38を介して、矛盾
したアクセス、すなわち、他のタスクがリードロック中
のブロックに対して、書き換えアクセスの要求を行なっ
た旨を通知し、当該アクセスを完了する。
【0026】また、ステップ328において、図2のタ
スク識別情報バス34の全ての信号線の値と、エントリ
Eのタスク識別情報部2x3の対応する挿げてのビット
値とが一致、すなわち、図1の信号線2xcの出力がオ
ンであり、かつ、エントリEのモディファイ部2x6が
「1(ブロックデータ部のBaとメインメモリのBaが
不一致)」であれば、図2のキャッシュメモリ2は、図
2のメモリバス5を介して、図2のメインメモリ4のブ
ロックBaを、ブロックデータ部2x2の内容で書き換
え、モディファイ部2x6を「0(ブロックデータ部の
BaとメインメモリのBaが一致)」に設定する(ステ
ップ330)。そして、ロック状態情報部2x4に「2
(書き換えロック状態)」を設定する(ステップ33
1)。この場合、図2のタスク識別情報バス34の出力
とエントリEのタスク識別情報部2x3の値とが等し
く、ブロックBeをリードロック状態としたのは、処理
ユニットで実行中のタスクのみである。
【0027】また、ステップ327において、図2のリ
ード/ライトバス33に、アクセス種別として「読み出
し」を出力していれば、タスク識別情報部2x3に、タ
スク識別情報部2x3の値とタスク識別情報バス34に
出力されている値との論理和を設定する(ステップ33
2)。例えば、タスク識別情報部2x3に、値「011
01010」が設定されており、タスク識別情報バス3
4に、値「00000100」が出力されている場合、
タスク識別情報部2x3には、値「01101110」
が設定される。
【0028】また、ステップ326において、図2のロ
ック指示バス35にロック指示信号を出力していない場
合、タスク識別情報部2x3に、タスク識別情報部2x
3の値と、タスク識別情報バス34に出力されている
「0」と「1」を反転した値との論理積を設定する(ス
テップ333)。例えば、タスク識別情報部2x3に値
「01101110」が設定されており、タスク識別情
報バス34に値「00000100」が出力されている
場合、タスク識別情報部2x3には、「値「01101
010」が設定される。そして、タスク識別情報部2x
3の全てのビットが「0」(例えば、「0000000
0」)となったときには(ステップ334)、ロック状
態情報部2x4に、値「0(アンロック状態)」を設定
する(ステップ335)。このような処理のあとには、
上述の図5に示す処理動作を行なう。
【0029】次に、図8における処理動作の説明を行な
う。本図8は、図6のステップ319において、エント
リEのロック情報情報部2x4が「2(ライトロック状
態)」の場合の処理を示している。図2の処理ユニット
1が、図2のタスク識別情報バス34に出力している内
容と、エントリEのタスク識別情報部2x3の値とが等
しくなければ、すなわち、図1における信号線2xcの
出力がオフであれば(ステップ336)、図2のキャッ
シュメモリ2は、図2の矛盾応答バス38を介して、矛
盾したアクセス、すなわち、他のタスクがリードロック
中のブロックに対して、書き換えアクセスの要求を行な
った旨を通知し(ステップ329)、当該アクセスを完
了する。また、ステップ336において、図2のタスク
識別情報バス34の出力と、エントリEのタスク識別情
報部2x3の値とが等しく、かつ、図2の処理ユニット
1が、図2のロック指示バス35にロック指示信号を出
力していない場合(ステップ337)には、タスク識別
情報部2x3の全てのビットに「0」を設定し、ロック
状態情報部2x4に「0(アンロック状態)」を設定す
る(ステップ338)。そして、以下、上述の図5に示
す処理動作を行なう。
【0030】尚、ステップ329における矛盾したアク
セスを行なった旨の通知を受けると、図2の処理ユニッ
ト1は、実行中のタスクを中断して、予め定められた時
間が経過したあとに、タスクを再開するか、もしくは、
実行中のタスクが書き換えたデータの内容を、タスクが
実行を開始する時点の状態に戻す処理を行なって、実行
中の処理を無効化(中止)し、予め定められた時間が経
過したあとに処理を最初から実行する。このような、実
行中のタスクの処理の無効化(中止)は、無効化する図
1におけるタスク識別情報部213〜2e3の値が等し
く、かつ、図1のモディファイ部216〜2e6に、値
「1(ブロックデータ部のBaとメインメモリのBaが
不一致)」が設定されている全てのエントリのバリッド
部215〜2e5に、値「0(無効)」を設定すること
によって行なうことができる。
【0031】無効化するタスク識別情報と、図1のタス
ク識別情報部213〜2e3の値が等しく、かつ、図1
のモディファイ部216〜2e6に、値「1(ブロック
データ部のBaとメインメモリのBaが不一致)」が設
定されているエントリに格納されているブロックの内容
は、無効化するタスクによって書き換えられる前に、図
2のメインメモリ4に書き込まれているので、上述の処
理を終了したあと、他のタスクは、書き換えられる前の
ブロックにアクセス可能となる。
【0032】また、必ずしも、図2の矛盾応答バス37
を介して矛盾が発生した旨の通知を受信したときに実行
中のタスクを中断、または、無効化せず、図2の処理ユ
ニット1が、原因となった当該ブロックを格納している
エントリのタスク識別情報部の内容を読みだす処理部を
設け、当該ブロックをロックしているタスクを無効化す
るものでも良い。これにより、共通データに並列にアク
セスするタスクの中で、重要度が高く、他のタスクに比
べて優先して実行させたい優先度の高いタスクと、優先
度の低いタスクとの間で、共通データに対して競合が発
生した場合、予め、タスクごとに割り当てられた優先度
によって、優先度の低い処理を中止させ、優先度の高い
処理を優先して実行させることが可能となる。
【0033】以上のように、図1に示す実施例のキャッ
シュメモリでは、処理ユニットで実行するタスクを相互
に切り替えて実行するマルチタスク処理において、複数
のタスクが並列にアクセスする共通データのアクセス権
の確保と開放(ロックとアンロック)の処理を、各タス
クが共通データにアクセスする処理と同時に行なうこと
ができる。このことにより、共通データのアクセス権の
確保と開放のためのタスクの処理量の増加が生じず、ま
た、タスクの切り替えを抑止することもなく、排他制御
のための実効的な処理性能の低下をなくすことが可能と
なる。
【0034】上述の実施例において、図2の処理ユニッ
ト1で実行中のタスクからの共通データへのアクセスが
不要となったとき、図2の処理ユニット1は、図2のキ
ャッシュメモリ2に対して、当該タスクのタスク識別情
報とロック状態の解除を指示する。このような指示が入
力されると、図1のキャッシュメモリ2は、次の図9で
示すロック解除の処理を行なう。
【0035】図9は、図2における情報処理システムの
本発明に係わる処理動作の第2の具体例を示すフローチ
ャートである。本例は、図2の処理ユニット1からのロ
ック解除指示に対する図1のキャッシュメモリ2のロッ
ク解除の処理動作を示すものであり、このキャッシュメ
モリ2内には、エントリを順次指定可能なカウンタを設
けている。そして、論理回路を用いることにより、この
処理の各部分を並列に実行することができる。図1のキ
ャッシュメモリ2は、図2のキャッシュバス3を介し
て、ロック解除の指示(予め定められたアドレスへのア
クセス)と共に、タスク識別情報バス34を介して、タ
スク識別情報(このタスク識別情報と共に出力されたロ
ック指示によって設定された全てのエントリがロック解
除処理の対象となる)を受信すると、エントリを順次指
定可能なカウンタに初期値(ここでは「1」)を設定す
る(ステップ401)。このカウンタ値が図1のキャッ
シュメモリ2内のエントリ総数eになるまで、カウンタ
の値が+1されるごとに、以下の処理を行なう。尚、こ
こで、カウンタの値「c」で指定されるエントリをエン
トリEcとし、このエントリEcは、アドレス情報部2
c1、ブロックデータ部2c2、タスク識別情報部2c
3、・・・で構成されているものとする。
【0036】エントリEcのバリッド部2c5の値が
「0(無効)」(ステップ402)、または、ロック状
態情報部2c4の値が「0(アンロック状態)」の場合
(ステップ403、404)、カウンタの値を+1する
(ステップ410)。ステップ402において、エント
リEcのバリッド部2c5の値が「1(有効)」で、か
つ、ステップ403、404において、ロック状態情報
部2c4の値が「1(リードロック状態)」の場合に
は、タスク識別情報部2x3に、タスク識別情報部2x
3の値と、タスク識別情報バス34に出力されている
「0」と「1」を反転した値との論理積を設定する(ス
テップ405)。例えば、タスク識別情報部2x3に値
「01101110」が設定されており、タスク識別情
報34に値「00000100」が出力されている場
合、タスク識別情報部2x3には、値「0110101
0」が設定される。タスク識別情報部2x3の全てのビ
ットが「0」(例えば、「00000000」)となっ
たときには(ステップ406)、ロック状態情報部2x
4に値「0(アンロック状態)」を設定し(ステップ4
07)、カウンタの値を+1する(ステップ410)。
【0037】また、ステップ402において、エントリ
Ecのバリッド部2c5の値が「1(有効)」で、ステ
ップ403において、ロック状態情報部2c4の値が
「2(ライトロック状態)」の場合で、かつ、エントリ
Ecのタスク識別情報部2c3とタスク識別情報バス3
4の値が等しい場合、すなわち、信号線2cCの値がオ
ンの場合(ステップ408)、バリッド部2c5に値
「0(無効)」をセットし(ステップ409)、リード
/ライトバス33の値を+1する(ステップ4109。
ステップ408において、エントリEcのタスク識別情
報部2c3とタスク識別情報バス34の値が等しくない
場合、すなわち、信号線2cCの値がオフの場合、その
まま、カウンタの値を+1する(ステップ410)。
【0038】このようにして、図2の処理ユニット1で
実行するタスクにおいて、リードロック状態、または、
ライトロック状態となっている共通データへのアクセス
が不要となった場合、タスクが設定した排他制御情報を
解除するためのアクセス(すなわち、ロック指示を行な
わずに、当該ブロックへのアクセスを行なう)を、1回
で行なうことができ、従来技術のように、共通データを
格納しているブロックごとに行なうことが不要となり、
ロック解除のための処理ユニットからのアクセス回数を
削減することができる。特に、矛盾発生の通知を受信し
た場合の無効化のために、全てのロック状態を解除する
場合に有効である。また、ロック状態の解除の指示と共
に通知するタスク識別情報で、全てのタスクを指定する
(例えば、「11111111」を出力)ことによっ
て、図1におけるキャッシュメモリ2の全てのロック情
報を解除することも可能となる。
【0039】以上、図1〜図9を用いて説明したよう
に、本実施例のキャッシュメモリでは、タスクが並列に
アクセスする共通データへのアクセスを行なう際に、ア
クセス権の確保と開放の処理を、各処理ユニットで実行
するアクセスと同時に実行することができる。このこと
により、タスク間でアクセスするデータの無矛盾性を、
効率良く保証することが可能である。また、タスクの並
列処理を阻害する無用な排他制御、および、タスクの切
り替えを抑止する制御などが不要となり、アクセス権の
確保と開放のための処理ユニットのオーバヘッドも生じ
ず、処理ユニットでの実効的な性能を向上させることが
可能となる。尚、本発明は、図1〜図9を用いて説明し
た実施例に限定されるものではなく、その要旨を逸脱し
ない範囲において種々変更可能である。
【0040】
【発明の効果】本発明によれば、キャッシュメモリのエ
ントリに格納されているブロックへの各タスクのアクセ
スに対する排他制御を効率良く行なうことができ、タス
ク間でアクセスするデータの無矛盾性の保証処理の高効
率化と、マルチタスク処理を行なう処理ユニットの実効
的な性能の向上が可能である。
【図面の簡単な説明】
【図1】本発明の排他制御システムに用いるキャッシュ
メモリの本発明に係わる構成の一実施例を示すブロック
図である。
【図2】図1におけるキャッシュメモリを用いた情報処
理システムの構成の一具体例を示すブロック図である。
【図3】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第1
の部分である。
【図4】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第2
の部分である。
【図5】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第3
の部分である。
【図6】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第4
の部分である。
【図7】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第5
の部分である。
【図8】図2における情報処理システムの本発明に係わ
る処理動作の第1の具体例を示すフローチャートの第6
の部分である。
【図9】図2における情報処理システムの本発明に係わ
る処理動作の第2の具体例を示すフローチャートであ
る。
【符号の説明】
1 処理ユニット 2 キャッシュメモリ 3 キャッシュバス 4 メインメモリ 5 メモリバス 21、22 信号線 31 アドレスバス 32 データバス 33 リード/ライトバス 34 タスク識別情報バス 35 ロック指示バス 36 転送応答バス 37 矛盾応答バス 210〜2e0 エントリ 211〜2e1 アドレス情報部 212〜2e2 ブロックデータ部 213〜2e3 タスク識別情報部 214〜2e4 ロック状態情報部 215〜2e5 バリッド部 216〜2e6 モディファイ部 217〜2e7 比較器 218〜2e8 比較器 219〜2e9 アンドゲート 21B〜2eB 信号線

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 タスクを分割して並列に処理する処理ユ
    ニットがアクセスするメインメモリに格納されているブ
    ロック単位のデータを、各エントリに格納し、該エント
    リを介して、上記処理ユニットからのアクセスに対する
    データの転送制御を行なうと共に、上記処理ユニットで
    並列に処理される複数のタスクからの同一のエントリへ
    のアクセスを制御してデータの矛盾を回避する排他制御
    を行なうキャッシュメモリにおいて、上記排他制御のた
    めに、上記エントリに、上記処理ユニットで並列に処理
    される各タスクの識別情報を登録するタスク識別情報登
    録手段と、上記エントリに格納されているブロックに対
    する排他制御情報を登録する排他制御情報登録手段を、
    上記エントリごとに設け、タスク単位で、上記エントリ
    に格納されているブロックの排他制御、および、該排他
    制御の設定と解除を行なうことを特徴とするキャッシュ
    メモリを用いた排他制御システム。
  2. 【請求項2】 請求項1に記載のキャッシュメモリを用
    いた排他制御システムにおいて、上記キャッシュメモリ
    は、上記処理ユニットのタスクからの上記排他制御の解
    除指示に基づき、該タスクの識別情報を登録しているエ
    ントリに対する上記タスク識別情報の解除、および、該
    エントリに対する全てのタスク識別情報が解除された場
    合での上記排他制御情報の解除を行なうことを特徴とす
    るキャッシュメモリを用いた排他制御システム。
JP05527793A 1993-03-16 1993-03-16 キャッシュメモリを用いた排他制御システム Expired - Fee Related JP3381079B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05527793A JP3381079B2 (ja) 1993-03-16 1993-03-16 キャッシュメモリを用いた排他制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05527793A JP3381079B2 (ja) 1993-03-16 1993-03-16 キャッシュメモリを用いた排他制御システム

Publications (2)

Publication Number Publication Date
JPH06266620A true JPH06266620A (ja) 1994-09-22
JP3381079B2 JP3381079B2 (ja) 2003-02-24

Family

ID=12994105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05527793A Expired - Fee Related JP3381079B2 (ja) 1993-03-16 1993-03-16 キャッシュメモリを用いた排他制御システム

Country Status (1)

Country Link
JP (1) JP3381079B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP2009064462A (ja) * 2008-10-27 2009-03-26 Toshiba Corp マイクロプロセッサ
US7673155B2 (en) 2001-09-28 2010-03-02 Kabushiki Kaisha Toshiba Microprocessor with improved task management and table management mechanism
JP2015127924A (ja) * 2013-12-27 2015-07-09 富士通株式会社 アクセス制御プログラム、制御装置およびアクセス制御方法
JP2015158936A (ja) * 2010-06-17 2015-09-03 日本電気株式会社 データ処理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673155B2 (en) 2001-09-28 2010-03-02 Kabushiki Kaisha Toshiba Microprocessor with improved task management and table management mechanism
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP2009064462A (ja) * 2008-10-27 2009-03-26 Toshiba Corp マイクロプロセッサ
JP4643702B2 (ja) * 2008-10-27 2011-03-02 株式会社東芝 マイクロプロセッサ
JP2015158936A (ja) * 2010-06-17 2015-09-03 日本電気株式会社 データ処理装置
US9389864B2 (en) 2010-06-17 2016-07-12 Nec Corporation Data processing device and method, and processor unit of same
JP2015127924A (ja) * 2013-12-27 2015-07-09 富士通株式会社 アクセス制御プログラム、制御装置およびアクセス制御方法

Also Published As

Publication number Publication date
JP3381079B2 (ja) 2003-02-24

Similar Documents

Publication Publication Date Title
US5761734A (en) Token-based serialisation of instructions in a multiprocessor system
US4665484A (en) Shared memory multiprocessing system & method
JPH01303527A (ja) 共有資源の管理方法
JPH04306748A (ja) 情報処理装置
JPH03118649A (ja) メモリーサブシステム入力キュー
JP3381079B2 (ja) キャッシュメモリを用いた排他制御システム
JP3965784B2 (ja) 共有メモリ排他アクセス制御方法
JPH04155465A (ja) ファイル共用方法
JP3381086B2 (ja) 排他制御可能なマルチプロセッサシステム
JPH06266610A (ja) 処理の中断が可能な排他制御方式
JPS6153747B2 (ja)
JPS6285372A (ja) マルチプロセツサシステムにおけるコンペアアンドスワツプ方式
JPH03164964A (ja) 情報処理装置における排他制御処理装置
JPH06139206A (ja) マルチプロセッサシステムにおける排他制御方式
JP2746189B2 (ja) ファイルアクセス制御システム
JP2636760B2 (ja) マルチプロセッサシステム
JPS592051B2 (ja) 相互排他要求選択装置
JPH0635866A (ja) マルチプロセッサシステム
JPH06266621A (ja) データアクセス方法
JPH01280858A (ja) 主記憶装置のロック制御方式
JP2000305894A (ja) バス調停回路
US8301845B2 (en) Access control method and computer system
JPH1091597A (ja) マルチプロセッサ装置におけるトークンにもとづく命令の直列化
JPH06175981A (ja) キャッシュメモリを用いた排他制御方法および排他制御システム
JP2588547B2 (ja) マルチcpuシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees