JPH0540689A - バツフアメモリ制御方式 - Google Patents
バツフアメモリ制御方式Info
- Publication number
- JPH0540689A JPH0540689A JP3196257A JP19625791A JPH0540689A JP H0540689 A JPH0540689 A JP H0540689A JP 3196257 A JP3196257 A JP 3196257A JP 19625791 A JP19625791 A JP 19625791A JP H0540689 A JPH0540689 A JP H0540689A
- Authority
- JP
- Japan
- Prior art keywords
- lbs
- buffer memory
- processor
- cpu
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 本発明は、複数個のプロセサ(CPU) に、スワ
ップ方式で制御されるバッファメモリ(LBS) を備えてい
る情報処理装置におけるバッファメモリ制御方式に関
し、あるプロセサ(CPU) が、ロックワードを含む領域を
アクセスしたときにデータ転送が頻繁に生じる問題を解
消する。 【構成】 コンペア&スワップ(CS)命令でロックワード
を含む排他領域の排他読み出しを行うとき、該当のブロ
ックが自己のバッファメモリ(LBS) に存在しないとき、
他のプロセサ(CPU) の該排他領域の保持状態を排他状態
(E=1) から共有状態(E=0) に変更して、自己のバッファ
メモリ(LBS) に共有状態で登録し、該他のプロセサ(CP
U) のバッファメモリ(LBS) に存在する上記ロックワー
ドを含む領域が書き替えられたとき、該領域を排他領域
に更新して、該 CS 命令による次の排他読み出しのとき
にデータ転送を生じさせるように構成する。
ップ方式で制御されるバッファメモリ(LBS) を備えてい
る情報処理装置におけるバッファメモリ制御方式に関
し、あるプロセサ(CPU) が、ロックワードを含む領域を
アクセスしたときにデータ転送が頻繁に生じる問題を解
消する。 【構成】 コンペア&スワップ(CS)命令でロックワード
を含む排他領域の排他読み出しを行うとき、該当のブロ
ックが自己のバッファメモリ(LBS) に存在しないとき、
他のプロセサ(CPU) の該排他領域の保持状態を排他状態
(E=1) から共有状態(E=0) に変更して、自己のバッファ
メモリ(LBS) に共有状態で登録し、該他のプロセサ(CP
U) のバッファメモリ(LBS) に存在する上記ロックワー
ドを含む領域が書き替えられたとき、該領域を排他領域
に更新して、該 CS 命令による次の排他読み出しのとき
にデータ転送を生じさせるように構成する。
Description
【0001】
【産業上の利用分野】本発明は、複数個のプロセサ(CP
U) に、スワップ方式で制御されるバッファメモリ(LBS)
を備えている情報処理装置におけるバッファメモリの
制御方式に関する。
U) に、スワップ方式で制御されるバッファメモリ(LBS)
を備えている情報処理装置におけるバッファメモリの
制御方式に関する。
【0002】従来から、メモリアクセスを高速に行い、
処理能力を向上させる為に、プロセサ(CPU) にスワップ
方式のバッファメモリ(LBS) を備え、且つ、複数個のプ
ロセサ(CPU) を持つ情報処理装置(マルチプロセサシス
テム) が知られている。
処理能力を向上させる為に、プロセサ(CPU) にスワップ
方式のバッファメモリ(LBS) を備え、且つ、複数個のプ
ロセサ(CPU) を持つ情報処理装置(マルチプロセサシス
テム) が知られている。
【0003】このようなシステムにおいて、あるプロセ
サ(CPU) が獲得した領域を排他状態にして、他のプロセ
サ(CPU) に使用させない手段として、例えば、読み出し
→比較→書き込みを一連の動作として行い、該命令が終
了するまでの間、他のプロセサ(CPU) による該領域の更
新を許可しない命令、即ち、コンペア&スワップ命令(C
S 命令) がある。
サ(CPU) が獲得した領域を排他状態にして、他のプロセ
サ(CPU) に使用させない手段として、例えば、読み出し
→比較→書き込みを一連の動作として行い、該命令が終
了するまでの間、他のプロセサ(CPU) による該領域の更
新を許可しない命令、即ち、コンペア&スワップ命令(C
S 命令) がある。
【0004】該あるプロセサ(CPU) が獲得している排他
領域を、他のプロセサ(CPU) が使用する目的で、該領域
を、上記 CS 命令を使用してアクセスしたとき、該領域
が自己のプロセサ(CPU) のバッファメモリ(LBS) に存在
しないと、該他のバッファメモリ(LBS) から該当のブロ
ックを自己のバッファメモリ(LBS) に転送し、該他のバ
ッファメモリ(LBS) を無効化して、自己のバッファメモ
リ(LBS) を排他状態にして参照することになる。
領域を、他のプロセサ(CPU) が使用する目的で、該領域
を、上記 CS 命令を使用してアクセスしたとき、該領域
が自己のプロセサ(CPU) のバッファメモリ(LBS) に存在
しないと、該他のバッファメモリ(LBS) から該当のブロ
ックを自己のバッファメモリ(LBS) に転送し、該他のバ
ッファメモリ(LBS) を無効化して、自己のバッファメモ
リ(LBS) を排他状態にして参照することになる。
【0005】従って、複数個のプロセサ(CPU) が、該 C
S 命令を使用する毎に、該排他領域を含むブロックのデ
ータ転送が生じ、当該情報処理装置の性能を阻害する要
因ともなっていた。
S 命令を使用する毎に、該排他領域を含むブロックのデ
ータ転送が生じ、当該情報処理装置の性能を阻害する要
因ともなっていた。
【0006】このようなことから、該複数のプロセサ(C
PU) が、該CS 命令を使用しても、必要最小限のデータ
転送で済ませることができるバッファメモリ制御方式が
必要とされる。
PU) が、該CS 命令を使用しても、必要最小限のデータ
転送で済ませることができるバッファメモリ制御方式が
必要とされる。
【0007】
【従来の技術】図3〜図6は、従来のバッファメモリ制
御方式を説明する図であり、図3は情報処理装置の概念
図を示し、図4はバッファメモリ(LBS) の概念図を示
し、図5,図6は、バッファメモリをアクセスするとき
の動作フローの例を示している。
御方式を説明する図であり、図3は情報処理装置の概念
図を示し、図4はバッファメモリ(LBS) の概念図を示
し、図5,図6は、バッファメモリをアクセスするとき
の動作フローの例を示している。
【0008】図3に示したように、本発明の関連する情
報処理装置は、複数個のプロセサ(CPU) 1 からなり、そ
れぞれが、図4に示したバッファメモリ(LBS) 10を備え
ており、メモリアクセスの際には、自己のバッファメモ
リ(LBS) 10のタグメモリ(TAG) 11を検索し、該バッファ
メモリ(LBS) 10に、所望のデータを含むブロックが存在
しないとき、主記憶制御装置(MCU) 2 にリード/ライト
要求を送出して、他のプロセサ(CPU) 1 のバッファメモ
リ(LBS) 10, 又は、主記憶装置(MSU) 3 に存在するブロ
ックをムーブインして自己のバッファメモリ(LBS) 10に
登録する。
報処理装置は、複数個のプロセサ(CPU) 1 からなり、そ
れぞれが、図4に示したバッファメモリ(LBS) 10を備え
ており、メモリアクセスの際には、自己のバッファメモ
リ(LBS) 10のタグメモリ(TAG) 11を検索し、該バッファ
メモリ(LBS) 10に、所望のデータを含むブロックが存在
しないとき、主記憶制御装置(MCU) 2 にリード/ライト
要求を送出して、他のプロセサ(CPU) 1 のバッファメモ
リ(LBS) 10, 又は、主記憶装置(MSU) 3 に存在するブロ
ックをムーブインして自己のバッファメモリ(LBS) 10に
登録する。
【0009】図4は、該バッファメモリ(LBS) 10と、タ
グメモリ(TAG) 11の構成例を示している。本図におい
て、Vはブロックの有効ビットを示し、該ブロックが有
効であるとき、V=1 で、上位アドレス部で示される主記
憶装置(MSU) 3 の部分に対応するデータが存在すること
を示し、V=0 のときは、未使用の状態であることを示し
ている。
グメモリ(TAG) 11の構成例を示している。本図におい
て、Vはブロックの有効ビットを示し、該ブロックが有
効であるとき、V=1 で、上位アドレス部で示される主記
憶装置(MSU) 3 の部分に対応するデータが存在すること
を示し、V=0 のときは、未使用の状態であることを示し
ている。
【0010】又、本図において、Eは該当のブロックの
排他/共有の状態を示すフラグであり、E=0 のとき、共
有状態を示し、E=1 のときは、排他状態であることを示
している。
排他/共有の状態を示すフラグであり、E=0 のとき、共
有状態を示し、E=1 のときは、排他状態であることを示
している。
【0011】このように構成されたバッファメモリ(LB
S) 10をアクセスするときの動作フローの例を示したも
のが、図5,図6である。スワップ方式のバッファメモ
リ装置では、読出しは全プロセサ(CPU0 〜CPUn)1 が保
持可能{即ち、複数のプロセサ(CPU) 1 が最新データを
保持できる}で、読出し可能/書込み不可な“共有”状
態で、バッファメモリ(以下、LBSという)10内のブ
ロックを保持し、書込みの場合には、要求したプロセサ
(CPU) 1 のみ保持して、読出し/書込み可能な“排他”
状態で該ブロックを保持する。
S) 10をアクセスするときの動作フローの例を示したも
のが、図5,図6である。スワップ方式のバッファメモ
リ装置では、読出しは全プロセサ(CPU0 〜CPUn)1 が保
持可能{即ち、複数のプロセサ(CPU) 1 が最新データを
保持できる}で、読出し可能/書込み不可な“共有”状
態で、バッファメモリ(以下、LBSという)10内のブ
ロックを保持し、書込みの場合には、要求したプロセサ
(CPU) 1 のみ保持して、読出し/書込み可能な“排他”
状態で該ブロックを保持する。
【0012】又、複数のプロセサ(CPU0 〜CPUn) 1 間の
排他制御のために、前述のように、読出し−比較−書込
みを一連の動作として行い、命令が終了するまでの間に
他プロセサの更新を許可しない命令(CS:Compare an
d Swap命令など)が提供されており、排他領域(ロック
ワード)の参照更新を行う。
排他制御のために、前述のように、読出し−比較−書込
みを一連の動作として行い、命令が終了するまでの間に
他プロセサの更新を許可しない命令(CS:Compare an
d Swap命令など)が提供されており、排他領域(ロック
ワード)の参照更新を行う。
【0013】従来のスワップ方式のバッファメモリ装置
では、このようなCS命令の場合には、最初の読出し時
にも、書込みを前提として動作することにより排他制御
を実現できる。
では、このようなCS命令の場合には、最初の読出し時
にも、書込みを前提として動作することにより排他制御
を実現できる。
【0014】即ち、図5の動作フローにおいて、排他読
出しのときを見ると、自 LBS 10 に排他状態で存在して
いるときは、該自己の LBS 10 を読出すが、自 LBS 10
に存在しないとき、従来方式では、他のプロセサ(CPU)
1 の LBS 10 に存在するとき、他の LBS 10 からムーブ
アウト (転送) し、該ムーブアウトした他の LBS 10の
該当ブロックを無効(BI)化して、自己の LBSを排他状態
にしていた。{処理ステップ 100〜102 参照} そして、該他のプロセサ(CPU) 1 の LBS 10 にも存在し
ないときには、主記憶装置(MSU) 3 から“排他”で読み
出し登録していた。{処理ステップ 100〜103参照} 具体例で説明すると、あるプロセサ(CPU0) 1a が、該排
他領域を獲得している状態において、他のプロセサ(CPU
1) 1b が、該ロックワードを含む排他領域に対して、前
述のCS命令を実行すると、上記の排他読出しが実行さ
れ、該排他領域が自己の LBS 10 に存在しないので、処
理ステップ 101,102に移って、プロセサ(CPU0) 1a の L
BS 10 から該当のブロックをムーブアウト (転送) し、
該プロセサ(CPU0) 1a の LBS 10 を無効(BI)化して、自
己の LBS 10 を排他状態とする。
出しのときを見ると、自 LBS 10 に排他状態で存在して
いるときは、該自己の LBS 10 を読出すが、自 LBS 10
に存在しないとき、従来方式では、他のプロセサ(CPU)
1 の LBS 10 に存在するとき、他の LBS 10 からムーブ
アウト (転送) し、該ムーブアウトした他の LBS 10の
該当ブロックを無効(BI)化して、自己の LBSを排他状態
にしていた。{処理ステップ 100〜102 参照} そして、該他のプロセサ(CPU) 1 の LBS 10 にも存在し
ないときには、主記憶装置(MSU) 3 から“排他”で読み
出し登録していた。{処理ステップ 100〜103参照} 具体例で説明すると、あるプロセサ(CPU0) 1a が、該排
他領域を獲得している状態において、他のプロセサ(CPU
1) 1b が、該ロックワードを含む排他領域に対して、前
述のCS命令を実行すると、上記の排他読出しが実行さ
れ、該排他領域が自己の LBS 10 に存在しないので、処
理ステップ 101,102に移って、プロセサ(CPU0) 1a の L
BS 10 から該当のブロックをムーブアウト (転送) し、
該プロセサ(CPU0) 1a の LBS 10 を無効(BI)化して、自
己の LBS 10 を排他状態とする。
【0015】ここで、該プロセサ(CPU0) 1a が、該ロッ
クを解除しようとして、該当のブロックをアクセスする
と、該当のブロックは、上記のようにして、既に、プロ
セサ(CPU1) 1の LBS 10 に移っているので、上記と同じ
動作となり、再度、ムーブアウト (転送) が行われる。
クを解除しようとして、該当のブロックをアクセスする
と、該当のブロックは、上記のようにして、既に、プロ
セサ(CPU1) 1の LBS 10 に移っているので、上記と同じ
動作となり、再度、ムーブアウト (転送) が行われる。
【0016】
【発明が解決しようとする課題】このような排他制御で
は、プロセサ (以下、CPUという) 台数が多くなり、
上記排他領域へのCPUのアクセスのぶつかりが増加し
た場合、ロックワードの待合せ(ロックワードの獲得の
待ち)のために排他領域を定期的にアクセスすると、実
際に排他領域を使用中であるCPUのLBSから、待合
せているCPUのLBSへのデータ転送(上記ムーブア
ウト)が頻繁に生じるため、情報処理装置の性能上問題
となる。
は、プロセサ (以下、CPUという) 台数が多くなり、
上記排他領域へのCPUのアクセスのぶつかりが増加し
た場合、ロックワードの待合せ(ロックワードの獲得の
待ち)のために排他領域を定期的にアクセスすると、実
際に排他領域を使用中であるCPUのLBSから、待合
せているCPUのLBSへのデータ転送(上記ムーブア
ウト)が頻繁に生じるため、情報処理装置の性能上問題
となる。
【0017】本発明は上記従来の欠点に鑑み、CS命令
でロックワードの待ち合わせを行う場合、ロックワード
が開放される迄のCPU間のデータ転送を削減すること
ができるバッファメモリ制御方式を提供することを目的
とするものである。
でロックワードの待ち合わせを行う場合、ロックワード
が開放される迄のCPU間のデータ転送を削減すること
ができるバッファメモリ制御方式を提供することを目的
とするものである。
【0018】
【課題を解決するための手段】図1, 図2は本発明の一
実施例を流れ図で示した図である。上記の問題点は下記
の如くに構成したバッファメモリ制御方式によって解決
される。複数個のプロセサ(CPU) 1a,1b,〜に、スワップ
方式で制御されるバッファメモリ(LBS) 10を備えている
情報処理装置において,バッファメモリ(LBS) 10内のブ
ロックを書替えられたブロックであること, 或いは、書
替えを行う為に読出したブロックであることを示す“排
他”(E=1) 状態と,読出しのみを行う為に読み出したブ
ロックであることを示す“共有”(E=0)状態との2状態
を基本として制御するバッファメモリ装置であって、あ
るプロセサ(CPU) 1aのバッファメモリ(LBS) 10内のある
ブロックが該プロセサ(CPU) 1aにより書き替えられてい
る場合に、該プロセサ(CPU) 1a以外のプロセサ(CPU) 1b
が該ブロックの内容がある値 (全"0")である場合にのみ
書き替える為に、該ブロックの読出しを行った時、該プ
ロセサ(CPU) 1aのバッファメモリ(LBS) 10の該ブロック
が排他状態であった場合には、該ブロックを排他状態(E
=1) から共有状態(E=0) に変更するとともに、該排他的
読出しを要求したプロセサ(CPU) 1bに対しては排他処理
が失敗したことを示す信号を読出しデータとともに伝達
して、該要求プロセサ(CPU) 1b内のバッファメモリ(LB
S) 10にも共有状態で登録{処理ステップ 100,101,104,
106}し、該要求プロセサ(CPU)1b内のバッファメモリ(L
BS) 10に共有状態で保持されていた場合には、そのまま
読出し{処理ステップ 100,107,108}て、該プロセサ(C
PU) 1aのバッファメモリ(LBS) 10の該ブロックに書込み
が生じた場合にのみ、該プロセサ(CPU) 1aのブロックを
排他状態(E=1) にする{処理ステップ 110,111,112,11
3}ように構成する。
実施例を流れ図で示した図である。上記の問題点は下記
の如くに構成したバッファメモリ制御方式によって解決
される。複数個のプロセサ(CPU) 1a,1b,〜に、スワップ
方式で制御されるバッファメモリ(LBS) 10を備えている
情報処理装置において,バッファメモリ(LBS) 10内のブ
ロックを書替えられたブロックであること, 或いは、書
替えを行う為に読出したブロックであることを示す“排
他”(E=1) 状態と,読出しのみを行う為に読み出したブ
ロックであることを示す“共有”(E=0)状態との2状態
を基本として制御するバッファメモリ装置であって、あ
るプロセサ(CPU) 1aのバッファメモリ(LBS) 10内のある
ブロックが該プロセサ(CPU) 1aにより書き替えられてい
る場合に、該プロセサ(CPU) 1a以外のプロセサ(CPU) 1b
が該ブロックの内容がある値 (全"0")である場合にのみ
書き替える為に、該ブロックの読出しを行った時、該プ
ロセサ(CPU) 1aのバッファメモリ(LBS) 10の該ブロック
が排他状態であった場合には、該ブロックを排他状態(E
=1) から共有状態(E=0) に変更するとともに、該排他的
読出しを要求したプロセサ(CPU) 1bに対しては排他処理
が失敗したことを示す信号を読出しデータとともに伝達
して、該要求プロセサ(CPU) 1b内のバッファメモリ(LB
S) 10にも共有状態で登録{処理ステップ 100,101,104,
106}し、該要求プロセサ(CPU)1b内のバッファメモリ(L
BS) 10に共有状態で保持されていた場合には、そのまま
読出し{処理ステップ 100,107,108}て、該プロセサ(C
PU) 1aのバッファメモリ(LBS) 10の該ブロックに書込み
が生じた場合にのみ、該プロセサ(CPU) 1aのブロックを
排他状態(E=1) にする{処理ステップ 110,111,112,11
3}ように構成する。
【0019】
【作用】即ち、本発明では、CS命令での読出しでは排
他読出しを行うが、他のCPUのLBSに共有状態で保
持されていた場合には、状態変更を行わず、そのまま自
LBSにデータを転送し、自LBSに共有状態で保持さ
れていた場合にも、そのまま読出しを行う。
他読出しを行うが、他のCPUのLBSに共有状態で保
持されていた場合には、状態変更を行わず、そのまま自
LBSにデータを転送し、自LBSに共有状態で保持さ
れていた場合にも、そのまま読出しを行う。
【0020】又、他CPUのLBSに排他状態で保持さ
れていた場合には、他CPUの保持状態を排他(E=1) か
ら共有(E=0) に変更し、自LBSに共有状態で登録を行
うように構成する。
れていた場合には、他CPUの保持状態を排他(E=1) か
ら共有(E=0) に変更し、自LBSに共有状態で登録を行
うように構成する。
【0021】従って、CS命令でロックワードの待合せ
を行う場合、最初、該ロックワードを参照するときの
み、自己のLBSへのムーブアウトによるデータ転送を
生じるが、該ロックワードを含むブロックは共有状態(E
=0) に変更されて、該当のLBSに残っているので、次
の待ち合わせの為のアクセスでは、自己のLBSを参照
するだけで事足り、該ロックワードを含むブロックのデ
ータ転送を行うことはない。
を行う場合、最初、該ロックワードを参照するときの
み、自己のLBSへのムーブアウトによるデータ転送を
生じるが、該ロックワードを含むブロックは共有状態(E
=0) に変更されて、該当のLBSに残っているので、次
の待ち合わせの為のアクセスでは、自己のLBSを参照
するだけで事足り、該ロックワードを含むブロックのデ
ータ転送を行うことはない。
【0022】そして、該当のLBSに属するCPUが、
該ロックワードを解除する為に、該ロックワードを含む
領域が書替えられた場合にのみ、該CPUが自己のLB
Sを排他にして書き込むので、以後において、他のCP
Uから待ち合わせの為のアクセスがあると、そのときの
み、データ転送が生じるのみであり、ロックが解放され
るまでのCPU間のデータ転送を削減することができる
効果がある。
該ロックワードを解除する為に、該ロックワードを含む
領域が書替えられた場合にのみ、該CPUが自己のLB
Sを排他にして書き込むので、以後において、他のCP
Uから待ち合わせの為のアクセスがあると、そのときの
み、データ転送が生じるのみであり、ロックが解放され
るまでのCPU間のデータ転送を削減することができる
効果がある。
【0023】
【実施例】以下本発明の実施例を図面によって詳述す
る。前述の図1, 図2が本発明の一実施例を流れ図で示
した図である。
る。前述の図1, 図2が本発明の一実施例を流れ図で示
した図である。
【0024】本発明においては、複数個のプロセサ(CP
U) 1 に、スワップ方式で制御されるバッファメモリ(LB
S) 10を備えている情報処理装置において、 CS 命令で
ロックワードを含む排他領域の排他読み出しを行うと
き、該当のブロックが自己のバッファメモリ(LBS) 10に
存在しないとき、該ブロックの存在する他のプロセサ(C
PU) 1 のバッファメモリ(LBS) 10の保持状態を排他状態
(E=1) から共有状態(E=0)に変更して、自己のバッファ
メモリ(LBS)10に共有状態で登録し、該他のプロセサ(CP
U) 1 のバッファメモリ(LBS) 10に存在する上記ロック
ワードを含む領域が書き替えられたとき、該共有状態の
領域を排他領域に更新して、該 CS 命令による次の排他
読み出しのときにデータ転送を生じさせる手段が、本発
明を実施させるのに必要な手段である。尚、全図を通し
て同じ符号は同じ対象物を示している。
U) 1 に、スワップ方式で制御されるバッファメモリ(LB
S) 10を備えている情報処理装置において、 CS 命令で
ロックワードを含む排他領域の排他読み出しを行うと
き、該当のブロックが自己のバッファメモリ(LBS) 10に
存在しないとき、該ブロックの存在する他のプロセサ(C
PU) 1 のバッファメモリ(LBS) 10の保持状態を排他状態
(E=1) から共有状態(E=0)に変更して、自己のバッファ
メモリ(LBS)10に共有状態で登録し、該他のプロセサ(CP
U) 1 のバッファメモリ(LBS) 10に存在する上記ロック
ワードを含む領域が書き替えられたとき、該共有状態の
領域を排他領域に更新して、該 CS 命令による次の排他
読み出しのときにデータ転送を生じさせる手段が、本発
明を実施させるのに必要な手段である。尚、全図を通し
て同じ符号は同じ対象物を示している。
【0025】以下、図3, 図4を参照しながら、図1,
図2の流れ図によって、本発明のバッファメモリ制御方
式を説明する。前述の図3は情報処理装置の概念図を示
しており、図4はLBSの概念図を示している。上記図
3で示した情報処理装置において、各プロセサ(CPU0,CP
U1, 〜) 1 が、以下の命令列を実行している場合を例に
する。
図2の流れ図によって、本発明のバッファメモリ制御方
式を説明する。前述の図3は情報処理装置の概念図を示
しており、図4はLBSの概念図を示している。上記図
3で示した情報処理装置において、各プロセサ(CPU0,CP
U1, 〜) 1 が、以下の命令列を実行している場合を例に
する。
【0026】 XR R0,R0 : ロックワ
ードがアンロック状態の時の値 LA R1,X'FFFFFFFF' : ロックワードをロック
状態にするための値 LOOP:CS R0,R1,LOCK : ロック獲得処理 BNZ LOOP : ロックが獲得できなか
った場合の再処理 L R2,LOCK+4 : ロックを獲得して行う
処理 A R2,LOCK+4 : ロックを獲得して行う
処理 ST R0,LOCK : ロック解放処理 B *** : ここで、プロセサ(CPU1) 1a がロックを獲得して処理を
行い、プロセサ(CPU2)1b がロックの待合せを行う場合
について説明する。但し、各命令は基本的には1サイク
ルで処理が終了し、MSUのアクセスタイムは、例え
ば、20サイクル,他CPUのLBSのアクセスタイム
は、例えば、10サイクル,他CPUのLBSの無効化
あるいは状態変更は、例えば、5サイクルかかるとす
る。
ードがアンロック状態の時の値 LA R1,X'FFFFFFFF' : ロックワードをロック
状態にするための値 LOOP:CS R0,R1,LOCK : ロック獲得処理 BNZ LOOP : ロックが獲得できなか
った場合の再処理 L R2,LOCK+4 : ロックを獲得して行う
処理 A R2,LOCK+4 : ロックを獲得して行う
処理 ST R0,LOCK : ロック解放処理 B *** : ここで、プロセサ(CPU1) 1a がロックを獲得して処理を
行い、プロセサ(CPU2)1b がロックの待合せを行う場合
について説明する。但し、各命令は基本的には1サイク
ルで処理が終了し、MSUのアクセスタイムは、例え
ば、20サイクル,他CPUのLBSのアクセスタイム
は、例えば、10サイクル,他CPUのLBSの無効化
あるいは状態変更は、例えば、5サイクルかかるとす
る。
【0027】プロセサ(CPU1) 1a が先行してロックを獲
得(上記命令, , の実行) していて、プロセサ(CP
U2) 1b も続いてロックを獲得しようとして、上記CS
命令を実行 (上記命令, , の実行) して排他読出
しを行うが、既に、プロセサ(CPU1) 1a のLBS 10 に
排他状態(E=1) で存在するので、本発明の場合には、プ
ロセサ(CPU1) 1a のLBS 10 の該ブロックを共有状態
(E=0) として、該プロセサ(CPU1) 1a の該ブロックのデ
ータをプロセサ(CPU2) 1b のLBS 10 に転送して共有
状態(E=0) で登録する。{図1の処理ステップ 100,10
1,104,106参照}ロックはすでにプロセサ(CPU1) 1a に
取られており、CS命令はコンディションコード (CC
=1: ロック獲得失敗) となり、上記の命令列で、ラベ
ル「LOOP」に戻り再度CS命令の実行にかかる。
得(上記命令, , の実行) していて、プロセサ(CP
U2) 1b も続いてロックを獲得しようとして、上記CS
命令を実行 (上記命令, , の実行) して排他読出
しを行うが、既に、プロセサ(CPU1) 1a のLBS 10 に
排他状態(E=1) で存在するので、本発明の場合には、プ
ロセサ(CPU1) 1a のLBS 10 の該ブロックを共有状態
(E=0) として、該プロセサ(CPU1) 1a の該ブロックのデ
ータをプロセサ(CPU2) 1b のLBS 10 に転送して共有
状態(E=0) で登録する。{図1の処理ステップ 100,10
1,104,106参照}ロックはすでにプロセサ(CPU1) 1a に
取られており、CS命令はコンディションコード (CC
=1: ロック獲得失敗) となり、上記の命令列で、ラベ
ル「LOOP」に戻り再度CS命令の実行にかかる。
【0028】プロセサ(CPU1) 1a は、後続命令で自L
BS 10 を読出した後、命令で書替えようとするが、
該ブロックが共有状態(E=0) {即ち、書き込み付加}で
あるため、プロセサ(CPU2) 1b のLBS 10 の該ブロッ
クを無効化し、自LBS 10の該書き込みブロックを排
他状態にしてから書込みを行う。{図1の処理ステップ
110,111,112,113参照}プロセサ(CPU2)1b は、2回め
のCS命令実行時には、自LBS 10 の該ブロックが無
効化されているので、プロセサ(CPU1) 1a のLBS 10
から前述と同様に読出す。即ち、該プロセサ(CPU1) 1a
のLBS 10 からムーブアウトによりデータ転送が行わ
れる。
BS 10 を読出した後、命令で書替えようとするが、
該ブロックが共有状態(E=0) {即ち、書き込み付加}で
あるため、プロセサ(CPU2) 1b のLBS 10 の該ブロッ
クを無効化し、自LBS 10の該書き込みブロックを排
他状態にしてから書込みを行う。{図1の処理ステップ
110,111,112,113参照}プロセサ(CPU2)1b は、2回め
のCS命令実行時には、自LBS 10 の該ブロックが無
効化されているので、プロセサ(CPU1) 1a のLBS 10
から前述と同様に読出す。即ち、該プロセサ(CPU1) 1a
のLBS 10 からムーブアウトによりデータ転送が行わ
れる。
【0029】然し、ロックは解放されていないので、再
度CS命令は、上記コンディションコード (CC=
1: ロック獲得失敗) で終了する。最後に、プロセサ(C
PU1) 1a はロック解放のために、ロックワードを書替え
ようとするが、又、該ブロックが共有状態であるので、
プロセサ(CPU2) 1b の該ブロックを無効化し、自LBS
の該ブロックを排他状態にしてロック解放のための書込
みを行う。
度CS命令は、上記コンディションコード (CC=
1: ロック獲得失敗) で終了する。最後に、プロセサ(C
PU1) 1a はロック解放のために、ロックワードを書替え
ようとするが、又、該ブロックが共有状態であるので、
プロセサ(CPU2) 1b の該ブロックを無効化し、自LBS
の該ブロックを排他状態にしてロック解放のための書込
みを行う。
【0030】プロセサ(CPU2) 1b は再再度CS命令に
よってロックワードを読出す(この結果、データ転送が
生じる)と、今度はロックが獲得できて、CS命令がコ
ンディションコード正常 (CC=0: ロック獲得) で終
了する。
よってロックワードを読出す(この結果、データ転送が
生じる)と、今度はロックが獲得できて、CS命令がコ
ンディションコード正常 (CC=0: ロック獲得) で終
了する。
【0031】このように、本発明によればロックを獲得
したプロセサ(CPU1) 1a がロックを解除する迄の間、プ
ロセサ(CPU2) 1b からのロック獲得の為のCS命令の実
行に際して、プロセサ(CPU2) 1a のLBS 10 からプロ
セサ(CPU1) 1b のLBS10にデータ転送が生じることが
無くなり、ロックを獲得しているプロセサ(CPU1) 1a の
実行時間が短縮させることができる。
したプロセサ(CPU1) 1a がロックを解除する迄の間、プ
ロセサ(CPU2) 1b からのロック獲得の為のCS命令の実
行に際して、プロセサ(CPU2) 1a のLBS 10 からプロ
セサ(CPU1) 1b のLBS10にデータ転送が生じることが
無くなり、ロックを獲得しているプロセサ(CPU1) 1a の
実行時間が短縮させることができる。
【0032】このプロセサ(CPU1) 1a の実行時間の短縮
効果は、ロックを待合せているCPUの台数が増加する
と、この差は指数関数的に増加する。このように、本発
明によるバッファメモリ制御方式は、複数個のプロセサ
(CPU) 1 に、スワップ方式で制御されるバッファメモリ
(LBS) 10を備えている情報処理装置において、 CS 命令
でロックワードを含む排他領域の排他読み出しを行うと
き、該当のブロックが自己のバッファメモリ(LBS) 10に
存在しないとき、該排他ブロックの存在する他のプロセ
サ(CPU) 1 のバッファメモリ(LBS) 10の保持状態を排他
状態(E=1) から共有状態(E=0) に変更して、自己のバッ
ファメモリ(LBS) 10に共有状態で登録し、該他のプロセ
サ(CPU) 10のバッファメモリ(LBS) 10に存在する上記ロ
ックワードを含む領域が書き替えられたとき、該領域を
排他領域に更新して、該 CS 命令による次の排他読み出
しのときにデータ転送を生じさせるようにした所に特徴
がある。
効果は、ロックを待合せているCPUの台数が増加する
と、この差は指数関数的に増加する。このように、本発
明によるバッファメモリ制御方式は、複数個のプロセサ
(CPU) 1 に、スワップ方式で制御されるバッファメモリ
(LBS) 10を備えている情報処理装置において、 CS 命令
でロックワードを含む排他領域の排他読み出しを行うと
き、該当のブロックが自己のバッファメモリ(LBS) 10に
存在しないとき、該排他ブロックの存在する他のプロセ
サ(CPU) 1 のバッファメモリ(LBS) 10の保持状態を排他
状態(E=1) から共有状態(E=0) に変更して、自己のバッ
ファメモリ(LBS) 10に共有状態で登録し、該他のプロセ
サ(CPU) 10のバッファメモリ(LBS) 10に存在する上記ロ
ックワードを含む領域が書き替えられたとき、該領域を
排他領域に更新して、該 CS 命令による次の排他読み出
しのときにデータ転送を生じさせるようにした所に特徴
がある。
【0033】
【発明の効果】以上、詳細に説明したように、本発明の
バッファメモリ制御方式は、複数個のプロセサ(CPU)
に、スワップ方式で制御されるバッファメモリ(LBS) を
備えている情報処理装置において、 CS 命令でロックワ
ードを含む排他領域の排他読み出しを行うとき、該当の
ブロックが自己のバッファメモリ(LBS) に存在しないと
き、他のプロセサ(CPU) の保持状態を排他状態(E=1) か
ら共有状態(E=0) に変更して、自己のバッファメモリ(L
BS) に共有状態で登録し、該他のプロセサ(CPU) のバッ
ファメモリ(LBS) に存在する上記ロックワードを含む領
域が書き替えられたとき、該共有状態の領域を排他状態
に更新して、該 CS 命令による次の排他読み出しのとき
にデータ転送を生じさせるようにしたものであるので、
ロックワードの解放を待合せているCPUが存在する場
合に、ロックワードを獲得しているCPUの実行時間を
削減することができ、複数プロセサの処理性能を向上さ
せることができる効果がある。
バッファメモリ制御方式は、複数個のプロセサ(CPU)
に、スワップ方式で制御されるバッファメモリ(LBS) を
備えている情報処理装置において、 CS 命令でロックワ
ードを含む排他領域の排他読み出しを行うとき、該当の
ブロックが自己のバッファメモリ(LBS) に存在しないと
き、他のプロセサ(CPU) の保持状態を排他状態(E=1) か
ら共有状態(E=0) に変更して、自己のバッファメモリ(L
BS) に共有状態で登録し、該他のプロセサ(CPU) のバッ
ファメモリ(LBS) に存在する上記ロックワードを含む領
域が書き替えられたとき、該共有状態の領域を排他状態
に更新して、該 CS 命令による次の排他読み出しのとき
にデータ転送を生じさせるようにしたものであるので、
ロックワードの解放を待合せているCPUが存在する場
合に、ロックワードを獲得しているCPUの実行時間を
削減することができ、複数プロセサの処理性能を向上さ
せることができる効果がある。
【図1】本発明の一実施例を流れ図で示した図(その
1)
1)
【図2】本発明の一実施例を流れ図で示した図(その
2)
2)
【図3】従来のバッファメモリ制御方式を説明する図
(その1)
(その1)
【図4】従来のバッファメモリ制御方式を説明する図
(その2)
(その2)
【図5】従来のバッファメモリ制御方式を説明する図
(その3)
(その3)
【図6】従来のバッファメモリ制御方式を説明する図
(その4)
(その4)
1 中央処理装置(CPU0,CPU1, 〜CPUn) 1a 中央処理装置(CPU0), 1b 中央処理
装置(CPU1) 10 バッファメモリ(LBS) 11 タグメモ
リ(TAG) 2 主記憶制御装置(MCU) 3 主記憶装
置(MSU) 100 〜108,110 〜113 処理ステップ V 有効ビット E フラグ
(共有/排他)
装置(CPU1) 10 バッファメモリ(LBS) 11 タグメモ
リ(TAG) 2 主記憶制御装置(MCU) 3 主記憶装
置(MSU) 100 〜108,110 〜113 処理ステップ V 有効ビット E フラグ
(共有/排他)
Claims (1)
- 【請求項1】複数個のプロセサ(CPU)(1a,1b,〜) に、ス
ワップ方式で制御されるバッファメモリ(LBS)(10) を備
えている情報処理装置において,バッファメモリ(LBS)
(10) 内のブロックを書替えられたブロックであること,
或いは、書替えを行う為に読出したブロックであること
を示す“排他”(E=1) 状態と,読出しのみを行う為に読
み出したブロックであることを示す“共有”(E=0) 状態
との2状態を基本として制御するバッファメモリ装置で
あって、 あるプロセサ(CPU)(1a) のバッファメモリ(LBS)(10)内
のあるブロックが該プロセサ(CPU)(1a) により書き替え
られている場合に、該プロセサ(CPU)(1a) 以外のプロセ
サ(CPU)(1b) が該ブロックの内容がある値 (全"0")であ
る場合にのみ書き替える為に、該ブロックの読出しを行
った時、 該プロセサ(CPU)(1a) のバッファメモリ(LBS)(10) の該
ブロックが排他状態であった場合には、該ブロックを排
他状態(E=1) から共有状態(E=0) に変更するとともに、
該排他的読出しを要求したプロセサ(CPU)(1b) に対して
は排他処理が失敗したことを示す信号を読出しデータと
ともに伝達して、該要求プロセサ(CPU)(1b) 内のバッフ
ァメモリ(LBS)(10) にも共有状態で登録し、該要求プロ
セサ(CPU)(1b) 内のバッファメモリ(LBS)(10) に共有状
態で保持されていた場合には、そのまま読出して、該プ
ロセサ(CPU)(1a) のバッファメモリ(LBS)(10) の該ブロ
ックに書込みが生じた場合にのみ、該プロセサ(CPU)(1
a)の該ブロックを排他状態(E=1) にすることを特徴とす
るバッファメモリの制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3196257A JPH0540689A (ja) | 1991-08-06 | 1991-08-06 | バツフアメモリ制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3196257A JPH0540689A (ja) | 1991-08-06 | 1991-08-06 | バツフアメモリ制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0540689A true JPH0540689A (ja) | 1993-02-19 |
Family
ID=16354806
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3196257A Withdrawn JPH0540689A (ja) | 1991-08-06 | 1991-08-06 | バツフアメモリ制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0540689A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010517144A (ja) * | 2007-01-23 | 2010-05-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | スピン・ロックによりロッキング公平性及びロッキング性能の両方を達成する方法及びシステム |
-
1991
- 1991-08-06 JP JP3196257A patent/JPH0540689A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010517144A (ja) * | 2007-01-23 | 2010-05-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | スピン・ロックによりロッキング公平性及びロッキング性能の両方を達成する方法及びシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3705836B2 (ja) | コンピュータ・システムのメモリ共用方法 | |
| US5237694A (en) | Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor | |
| US5333297A (en) | Multiprocessor system having multiple classes of instructions for purposes of mutual interruptibility | |
| EP0553743A1 (en) | A cache controller | |
| EP0283628A2 (en) | Bus interface circuit for digital data processor | |
| JPH0799509B2 (ja) | メモリへのデータブロックのエントリを制御する方法 | |
| EP0303648B1 (en) | Central processor unit for digital data processing system including cache management mechanism | |
| JP2003044452A (ja) | 同期メモリ・バリアを実装する方法およびシステム | |
| JP5241384B2 (ja) | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 | |
| JPH0532775B2 (ja) | ||
| JPH02288927A (ja) | 共有メモリ管理方式 | |
| US5339397A (en) | Hardware primary directory lock | |
| JP3814521B2 (ja) | データ処理方法および装置 | |
| JP2829115B2 (ja) | ファイル共用方法 | |
| US6598140B1 (en) | Memory controller having separate agents that process memory transactions in parallel | |
| JP2000003302A (ja) | 共有メモリ排他アクセス制御方法 | |
| JPS6319058A (ja) | メモリ装置 | |
| US6021466A (en) | Transferring data between caches in a multiple processor environment | |
| JPH0540689A (ja) | バツフアメモリ制御方式 | |
| GB2107091A (en) | Device for data processing | |
| JP2642851B2 (ja) | キャッシュメモリ制御方式 | |
| JPS6152505B2 (ja) | ||
| JPH03271859A (ja) | 情報処理装置 | |
| JP2517859B2 (ja) | 並列プロセス管理方法 | |
| JP2982197B2 (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: 19981112 |