JPH07104834B2 - 処理装置間ロック制御システム - Google Patents

処理装置間ロック制御システム

Info

Publication number
JPH07104834B2
JPH07104834B2 JP61142564A JP14256486A JPH07104834B2 JP H07104834 B2 JPH07104834 B2 JP H07104834B2 JP 61142564 A JP61142564 A JP 61142564A JP 14256486 A JP14256486 A JP 14256486A JP H07104834 B2 JPH07104834 B2 JP H07104834B2
Authority
JP
Japan
Prior art keywords
lock
processing
processing device
byte
processor
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
Application number
JP61142564A
Other languages
English (en)
Other versions
JPS62298866A (ja
Inventor
暢彦 栗林
隆 千葉
実夫 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP61142564A priority Critical patent/JPH07104834B2/ja
Publication of JPS62298866A publication Critical patent/JPS62298866A/ja
Publication of JPH07104834B2 publication Critical patent/JPH07104834B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔概 要〕 複数の処理装置が一つの主記憶装置を共用した情報処理
システムにおいて、各処理装置ごとに対応するロックバ
イトを備え、自処理装置のロックバイトのみがオンであ
る条件とバッファ無効化処理のための待ち時間を設ける
ことを特徴としたロック制御装置であり、これによりロ
ックレジスタを不要とした。
〔産業上の利用分野〕
本発明は、複数の処理装置が一つの主記憶装置を共用す
るシステムにおける処理装置間のロック制御方法に関す
る。
複数の処理装置が一つの主記憶装置を共用するシステム
において、主記憶装置を介してデータ処理ジョブを実行
する場合には、主記憶装置上に制御テーブルを備え、
「コンペア・アンド・スワップ」、「テスト・アンド・
セット」等の命令を用いて、処理装置間の同期をとり行
うのが一般的である。
この際、制御テーブルの更新が複数の処理装置により同
時に行われるのを防止するため、主記憶制御装置にロッ
クレジスタを備えて制御を行う必要があるが、このロッ
クレジスタおよびその制御回路のハードウェア量が大き
く、これが削減できればコスト低減に大きく寄与するこ
とができる。
〔従来の技術〕
複数処理装置が一つの主記憶装置(以下、MSUと略記す
る)を共用するシステムにおける処理装置間の同期化
(共用の主記憶の同一アドレスに対する処理が順序正し
く行われること)の方式として、「テスト・アンド・セ
ット」命令を使用した従来の方式について説明する。
第5図は従来例における制御テーブルを示し、第6図は
従来例の論理構成ブロック図を示す。
第6図の従来例では、主記憶制御装置(以下、MCUと略
記する)はパイプライン回路を通じてMSUにアクセスす
る構成となっている。
第6図において、処理装置A0〜Anはキャッシュメモリを
備えたn+1台の処理装置を示し、処理装置B0〜Bmはキ
ャッシュメモリを持たないm+1台の処理装置を示す。
第6図の最も左側の矩形は、各処理装置A0〜AnおよびB0
〜Bmからのコマンド、アドレスおよびストアデータを保
持するレジスタである。
各処理装置からのアクセス要求アドレスは優先制御回路
でチェックされ、チェックを通ったものは優先順位に従
いパイプラインに入れられる。
アドレスは本従来例の場合、フローティングメモリアド
レスチェック(FMA CHK)を受けて主記憶アドレス(MS
ADRS)としてMPUに送出され、ストア(ST)の場合デー
タは誤り検出訂正コード(ECC)を付けられストアデー
タ(STORE DATA)としてMSUに送出される。
フェッチ(FETCH)の場合はクロック周期の何倍かの後M
SUからフェッチデータ(FETCH DATA)として出力され、
これは誤り検出訂正を経て各処理装置へ送出される。
部分書込み(Partial Store)の場合は、そのアドレス
のデータがフェッチされ、パイプライン中のストアデー
タとマージレジスタ(MERGE)でマージされて1語とさ
れてECCを付けられストアデータ(STORE DATA)としてM
SUに送出される。
パイプラインには制御フラグ、アドレスおよびデータが
入れられ、コマンドがストアの場合は、そのアドレスは
バッフア・インバリデーション・アドレスレジスタ(BI
R)に入れられ処理装置A0〜Anに送出される。
これは、キャッシュメモリを持つ処理装置A0〜Anにおい
ては、MSUからキャッシュメモリへ取り込んでいるデー
タのうち、あるアドレスのデータがMSUで書き替えられ
たとき、これを無効化するため、バッフア・インバリデ
ーション・アドレス(BIアドレス)として処理装置A0
Anに送出しなければならないからである。
誤り検出訂正回路(ECC)において単一ビットエラーが
検出されたときは、そのアドレスはフェイリング・スト
レージアドレス・レジスタ(FSAR)に入れられ、レジス
タ(GPBR)を経て、BIアドレスの場合と同様に、キャッ
シュメモリを持つ処理装置A0〜Anへ送出される。
ある処理装置が他の処理装置に仕事を依頼するときは、
処理させる仕事の内容、データを記述した制御テーブル
を主記憶上に用意し、そのロックバイトを“0"とする。
ロックバイト“0"はこの制御テーブルには他の処理装置
が未だアクセスしていないことを示す。
従来の制御テーブルは、第5図に示すように各処理装置
に共通に一つのロックバイトを備えている。
各処理装置は,主記憶上の同テーブルを定期的に読みに
ゆくようにプログラムされている。
処理装置が制御テーブルにアクセスするには、同期化の
ため先ず「テスト.アンド.セット」命令を実行する必
要がある。
「テスト・アンド・セット」命令を実行するには処理装
置は、「テスト・アンド・セット」命令のオペランドア
ドレスで指定する主記憶のデータ(本例の場合はロック
バイト)をロードし、左端(0ビット目)のデータの値
により条件コードをセットする。0ビット目のデータが
“0"であれば、命令が成功であったとして“オール1"デ
ータをストアしする。
このようにしてロックバイトを獲得したことによって、
制御テーブルにアクセスし、その内容の示す処理が終了
すれば、処理が終了したと書き替える。
データをロードしてからデータをストアするまでの間、
MCUではこのアドレスを保持し、他の処理装置からのア
クセスアドレスと比較して、一致した場合はアクセスを
禁止する。即ち、このアドレスへの他の処理装置のアク
セスを禁止する。
これを行うのが、ロックレジスタであって、処理装置の
数が多くなると各処理装置のアクセスアドレスとの比較
のためのハードウェア量は非常に多くなる。
〔発明の解決しようとする問題点〕
上記に説明した如く、「テスト・アンド・セット」命令
を使用した従来方式のようにMCUにロックレジスタとい
うハードウェアを備えてロック制御を行う方法は、非常
に多くのハードウェア量を必要とするという問題点があ
った。
本発明は、上記の従来の問題点を解消した新規な処理装
置間ロック制御方法を提供しようとするものである。
〔問題点を解決するための手段〕
第1図は本発明の処理装置間ロック制御方法の原理ブロ
ック図を示す。
第1図において、1は制御テーブルであり、これには各
処理装置ごとに対応するロックバイトLB1,LB2,LB3,…を
備えている。
各処理装置は、絶えず主記憶上の制御テーブルをサーチ
するルーチンで動作している。
2は自装置ロックバイト操作手段であり、制御テーブル
1の自装置用ロックバイトにアクセスしてこれをオンと
する。
3は時間待ち手段であり、バッフア無効化処理の伝播に
要する時間を待つ処理を行う。
4はロックバイト検査手段であり、総てのロックバイト
を読み出し、検査し、自装置用ロックバイトのみがオン
であるかを調べる。
5はテーブル更新手段であって、制御テーブルを更新処
理する。
処理装置は制御テーブル1の自装置用ロックバイトにア
クセスしてこれをオンとし、時間待ち手段3による時間
を待った後、ロックバイト検査手段4により全ロックバ
イトを読み出して検査し、検査の結果、自処理装置のロ
ックバイトのみがオンであったときは、テーブル更新手
段5により制御テーブル1を更新し、自処理装置用のロ
ックバイトをオフとする。
ロックバイト検査手段4による検査の結果、他処理装置
のロックバイトもオンであったときは、テーブルを更新
せず、自処理装置用のロックバイトをオフとする。
〔作 用〕
上記に説明のように、次の3つの条件により制御するこ
とにより、従来使用していたロックレジスタの必要性を
なくするものである。
制御テーブルにそれぞれの処理装置用のロックバイト
を持つ。
自処理装置用のロックバイトのみがオンのときだけ制
御テーブルの更新を行うことができる。
バッフア無効化処理の伝播時間の保証を待ち時間によ
り行う。
のバッフア無効化処理の伝播時間の保証は、キャッシ
ュメモリを備えた処理装置において、他の処理装置がス
トアしたときのバッフア無効化処理に要する時間を待つ
ものであり、他の処理装置によってMSUの或るアドレス
にストアが行われると、MCUはこのアドレスをバッフア
・インバリデーション・アドレス(BIアドレス)として
バッフア記憶を持つ処理装置に送出し、これを受けた処
理装置がバッフア記憶内のそのアドレスを無効化処理を
行うが、他の処理装置によるストアから自処理装置のバ
ッフア無効化処理までが伝播時間である。若しこの伝播
の途中でこのアドレスにアクセスすれば、不具合が起
き、即ち同期がとれないことになるからである。これ
は、マルチプロセッサ環境でキャッシュメモリを持つ処
理装置は通常、ストアスルー方式と呼ばれる記憶制御方
式を採っており、フェッチ命令の場合は、そのアドレス
がキャッシュメモリ内に有効に存在しているときはこれ
にアクセスしてフェッチ(キャッシュメモリ内にないと
きは直接主記憶にアクセスしてフェッチ)し、ストア命
令の場合は、そのアドレスがキャッシュメモリ内に有効
に存在するときはキャッシュメモリにストアし同時に主
記憶にストアする(キャッシュメモリ内にないときは直
接主記憶にアクセスしストア)ようになっている。従っ
て、処理装置Aがロックバイトデータ語にアクセスしス
トアを行い処理装置Aのロックバイトをオンとした直
後、キャッシュメモリを有する処理装置Bがそのアドレ
スにアクセスしようとし、そのアドレスがキャッシュメ
モリ内にあるときは処理装置Bはキャッシュメモリと主
記憶にストアを行い処理装置Bのロックバイトをオンと
し、処理装置Aのストアによるバッフア無効化処理の伝
播を待たずロックバイトデータ語にフェッチ(キャッシ
ュメモリ)して各処理装置のロックバイトを検査する
と、処理装置Aのロックバイトはオフのままであり、処
理装置Aと処理装置Bは共に自装置が制御テーブル処理
権を得たと判断し処理するから、誤動作を起こすことと
なるからである。バッフア無効化処理の伝播に要する時
間を待ってこのアドレスにフェッチしようとすれば、こ
のアドレスは無効化されており、直接主記憶にアクセス
してフェッチして検査し、他装置(A)のロックバイト
がオンであることから自装置(B)のロックバイトをオ
フに変えて制御テーブルアクセスを止めるから誤動作は
生じない。
従ってキャッシュメモリを備えていない処理装置におい
ては、この待ち時間をおく必要はない。
〔実施例〕
以下第2図〜第4図に示す実施例により、本発明をさら
に具体的に説明する。
第2図は、本発明の実施例における制御テーブルを示す
図である。
本実施例では、キャッシュメモリ(バッフア記憶)を備
えている処理装置として中央処理装置(以下、CPUと略
記する)、キャッシュメモリを備えていない処理装置と
してチャネルプロセッサ(以下、CHPと略記する)の各
1台がMSUを共用してデータ処理を行う。
第2図に示すように、制御テーブルにはCPU用としてロ
ックバイト1(LOCK BYTE 1)を、CHP用としてロックバ
イト2(LOCK BYTE 2)を備えている。
第3図は本発明の実施例の論理構成ブロック図である。
図に示すように、MCUにロックレジスタを備えていな
い。
MSUにアクセスしデータを更新する処理装置として、キ
ャッシュメモリを備えているCPUと、キャッシュメモリ
を備えていないCHPとがある。その他の構成は、第6図
の従来例とほぼ同じである。
第4図は本発明の実施例による処理を示すフローチャー
トである。
第4図(a)は、キャッシュメモリを備えている処理装
置の処理を示し、(b)はキャッシュメモリを備えてい
ない処理装置の処理を示す。
第4図(a)のフローチャートに従って処理の流れを説
明すると次のとおりである。
自装置用ロックバイト(例えばLOCK BYTE 1)にアク
セスし、“オール1"をストアする。即ち、LOCK BYTE 1
をオンとする。
逐次化命令を実行し、逐次化処理を行う。
バッフア無効化処理の伝播に要する時間xτの間待
つ。
総てのロックバイトをフェッチする。
各ロックバイトを検査し、自装置ロックバイト(LOCK
BYTE 1)のみがオンであるかを判断し、Yesであればス
テップへ進み、Noであればステップへ飛ぶ。
制御テーブルを処理済みを表すよう更新する。
自装置用ロックバイトに“オール0"をストアする。即
ち、LOCK BYTE 1をオフとして、この処理を終わる。
ステップにおける逐次化とは、マルチプロセッサシス
テムにおいて、処理装置プログラムから見た概念上先行
するこの処理装置による主記憶へのアクセスを、概念上
後の主記憶アクセスが起こる前に、全て完了させること
であり、逐次化命令の実行により行われる。(情報処理
学会:情報処理ハンドブックP.351〜352参照)。これは
マルチプロセッサシステムにおいて主記憶の同一アドレ
スへのアクセスを間違いなく正しい順序で行う同期化達
成のため必要である。なお〔従来の技術〕の説明では省
略したが、従来技術において使用していた「テスト・ア
ンド・セット」命令のステップにも逐次化処理を含んで
いる。
ステップのバッフア無効化処理の伝播に要する時間x
τを待つ処理は、前述のように他の処理装置がストアを
開始してから、BIアドレスがバッフアを持つCPUに伝え
られ、そこでバッフア無効化処理が行われるまでの時間
を待つもので、これは他の処理装置がストアを開始した
時点を知ることはできないので、最悪の場合即ち逐次化
命令実行の直前に他の処理装置のストアがあったとして
もバッフア無効化が間に合うようxτだけ待つものであ
る。
第4図(b)のキャッシュメモリを備えてない処理装置
による処理では、ステップの逐次化処理とステップ
の時間待ち処理は必要なく、その他の処理は同一であ
る。
なお本実施例のように1台のCPUと1台のCHPからなる構
成の場合は、CPUの処理で逐次化命令実行ステップと時
間待ちステップがあり、CHPと処理フローが異なるた
め、ロックバイトを取り合うデッドロックを起こすこと
はないが、同一構成の処理装置が複数台あるシステムで
は、デッドロック状態となる可能性がありこれを防ぐた
め、テーブル更新ができないとき再度第4図の処理を開
始するまでの時間を装置ごとに変更する必要がある。
〔発明の効果〕
以上説明のように本発明によれば、多量のハードウェア
量を要するロックレジスタを無くすることができ、また
ハードウェア的にロックレジスタでMCUパイプラインが
停止しないのでスループットの増大が可能であり、その
実用上の効果は極めて大である。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明の実施例における制御テーブルを示す図 第3図は本発明の実施例の論理構成ブロック図、 第4図は本発明の実施例による処理を示すフローチャー
ト、 第5図は従来例における制御テーブルを示す図、 第6図は従来例の論理構成ブロックである。 図面において、 1は制御テーブル、 2は自装置ロックバイト操作手段、 3は時間待ち手段、 4はロックバイト検査手段、 5はテーブル更新手段、 をそれぞれ示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 増田 実夫 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭59−223873(JP,A) 特開 昭57−172582(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数の処理装置が一つの主記憶装置を共有
    し、自処理装置が主記憶装置にアクセスする時に、他処
    理装置からのアクセスを防止する処理装置間ロック制御
    システムであって、 前記主記憶装置は、 各処理装置毎に対応し、主記憶装置にアクセスしている
    か否かを示すロックバイトと、 各処理装置がアクセスした際の処理内容を記憶する処理
    内容記憶部とを格納する制御テーブル(1)を備え、 前記処理装置は、 前記制御テーブル(1)の自処理装置用ロックバイトに
    アクセスした際にはオンとし、自装置によるアクセスの
    終了または他処理装置がアクセスしている際にはオフに
    操作する自装置ロックバイト操作手段(2)と、 自処理装置用ロックバイトへのアクセスをトリガとして
    処理装置内にあるバッファ記憶の特定アドレスの無効を
    指示させるバッファ無効化処理の伝播に要する時間を待
    つ時間待ち手段(3)と、 バッファ無効化処理の伝播に要する時間を待った後、各
    処理装置総てのロックバイトを読み出し、検査するロッ
    クバイト検査手段(4)と、 自処理装置のロックバイトのみがオンのときに制御テー
    ブル(1)の処理内容記憶部を更新するテーブル更新手
    段(5)とを備えたことを特徴とする処理装置間ロック
    制御システム。
JP61142564A 1986-06-18 1986-06-18 処理装置間ロック制御システム Expired - Fee Related JPH07104834B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61142564A JPH07104834B2 (ja) 1986-06-18 1986-06-18 処理装置間ロック制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61142564A JPH07104834B2 (ja) 1986-06-18 1986-06-18 処理装置間ロック制御システム

Publications (2)

Publication Number Publication Date
JPS62298866A JPS62298866A (ja) 1987-12-25
JPH07104834B2 true JPH07104834B2 (ja) 1995-11-13

Family

ID=15318261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61142564A Expired - Fee Related JPH07104834B2 (ja) 1986-06-18 1986-06-18 処理装置間ロック制御システム

Country Status (1)

Country Link
JP (1) JPH07104834B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02103656A (ja) * 1988-10-12 1990-04-16 Fujitsu Ltd 主記憶参照の遂次化制御方式
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock

Also Published As

Publication number Publication date
JPS62298866A (ja) 1987-12-25

Similar Documents

Publication Publication Date Title
US6466988B1 (en) Multiprocessor synchronization and coherency control system
KR100954623B1 (ko) 무한 트랜잭션 메모리 시스템
KR100286962B1 (ko) 캐쉬 제어기
KR100204741B1 (ko) 제1및 제2캐시 메모리 사용방법
EP0514024B1 (en) Method and apparatus for an improved memory architecture
EP0464615A2 (en) Microcomputer equipped with DMA controller
US5016169A (en) Data processor capable of correctly re-executing instructions
JPH02206837A (ja) パイプライン方式のコンピューターシステムにおける色々な個数の潜在的メモリーアクセス矛盾を解決する方法及び装置
JPH0552968B2 (ja)
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
JPH0581935B2 (ja)
JP2825906B2 (ja) 計算機システム
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
US5012410A (en) Data processor with instruction cache memory
US5898867A (en) Hierarchical memory system for microcode and means for correcting errors in the microcode
JPH07104834B2 (ja) 処理装置間ロック制御システム
EP0550976B1 (en) Memory accessing device using address pipeline
JPS6319058A (ja) メモリ装置
US5813039A (en) Guest execution control system, method and computer process for a virtual machine system
JP2587468B2 (ja) ロツクデータ設定装置
US6751708B2 (en) Method for ensuring that a line is present in an instruction cache
JPH1063574A (ja) キャッシュメモリ付プロセッサ
JPS62219058A (ja) 共有メモリの排他制御方式

Legal Events

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