JPH03246656A - 記憶制御装置 - Google Patents

記憶制御装置

Info

Publication number
JPH03246656A
JPH03246656A JP2043820A JP4382090A JPH03246656A JP H03246656 A JPH03246656 A JP H03246656A JP 2043820 A JP2043820 A JP 2043820A JP 4382090 A JP4382090 A JP 4382090A JP H03246656 A JPH03246656 A JP H03246656A
Authority
JP
Japan
Prior art keywords
memory
memory access
atomic
access
exclusive
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
JP2043820A
Other languages
English (en)
Other versions
JP2665813B2 (ja
Inventor
Takahide Oogami
貴英 大上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2043820A priority Critical patent/JP2665813B2/ja
Priority to GB9027947A priority patent/GB2241800B/en
Priority to DE4104781A priority patent/DE4104781C2/de
Publication of JPH03246656A publication Critical patent/JPH03246656A/ja
Priority to US08/160,363 priority patent/US5446862A/en
Priority to US08/517,549 priority patent/US5579505A/en
Application granted granted Critical
Publication of JP2665813B2 publication Critical patent/JP2665813B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のプロセッサまたはプロセッサ相当回路
より成る計算機システムにおけるメモリのアクセス方式
に関するものである。
〔従来の技術〕
共有メモリを持つマルチプロセッサ・システムにおいて
は、または並列プログラム処理システムにおいては、一
連のデータ処理を行なううえで。
その間に他のデータ処理が割り込んでは困ることがある
。また各プロセッサがそれぞれ分担データ処理をし、そ
の結果が揃った後に総合処理をするといった同期動作が
必要なことがある。
こうした、共有メモリを持つマルチプロセッサ°システ
ムで、共有メモリ領域のデータ処理に対し、一連のデー
タのリードまたはライトのシーケンスの間、他のプログ
ラムからのメモリ、アクセスを許さない排他動作をする
アトミックなメモリアクセス機能が必要となってくる。
ここでは、リード、ライト等のメモリに対する動作をメ
モリアクセスといい、その間他のプログラムまたはプロ
セッサによって分割されない一連のメモリ・アクセス・
シーケンスを、アトミックなメモリアクセスという。
従来はこのアトミックなメモリアクセス機能のうち、リ
ードに続いてライト動作が行なわれる特別な場合には、
メモリのリード・モディファイ・ライト機能により実現
していた。
このことは、たとえば、  K、 Hwang & F
、 A。
Br1gg5著の ” Computer Archi
tecture andParallel proce
ssing ”  (McGraw−Hill Boo
kComany、 1984 )の第8.1節” In
terprOCeSSCorrmunicatin M
echanisms ”に述べられており。
よく知られた技術である。
メモリのリード・モディファイ・ライト機能は。
連続するメモリ・サイクルで、指定したアドレスからデ
ータを読出し、続いて同じアドレスにデータを書き込む
ことができ、その間、他のメモリ参照を許さない機能で
ある。メモリのこのような機能は9例えば、三菱電機株
式会社の「′88 三菱半導体データブック−メモリ編
」の256KBDRAMチップM5M4256  で提
供されてX、する1ノード・モディファイ・ライト機能
を利用すれば実現することができる。
上記のリード・モディファイ・ライト機能を用いてアト
ミックなメモリアクセスを実現する場合には、リード・
モディファイ・ライトを行なうプロセッサが独占的にメ
モリアクセスを行なえるように、メモリ・バスを専用使
用する必要がある。
これによって、他のプロセッサが割り込んでメモリアク
セスを行なうことを防止し、アトミックなメモリアクセ
スを実現する。
このようなハードウェア動作を、プログラムあるいはミ
クロな機械命令の面からみてみよう。
上記のようなアトミックなメモリアクセスを行なうため
の機械命令としては、  F、 A、 Br1gg5著
の” 5ynchronization、 Coher
ence、 andEvent Ordering i
n Multiprocessors ” (IEEE
Computer、 Vol、 21 、  No、 
2. February 198B 。
pp、9−21)  にも述べられているように、  
Te5t& Set命令やCompare & Swa
p命令が提供される。
いずれも、メモリ上の領域を排他的にアクセスするため
の命令である。
Te5t & Set命令は9次のような動作を排他的
に不可分な動作として行なう。
Te5t & Set (x) (temp 4−x :  x←1 ;return 
temp ; ) また、  Compare & Swap命令は次のよ
うな動作を排他的に不可分な動作として行なう。
Compare & Swap (rl 、 r2. 
w)(terr;p ←W; if (temp= rl) then (w−r2;
z−1)else(rl←temp:z−0))ここで
、2はフラグ変数で比較結果に応じて0または1がセッ
トされる。
これらの命令は、複数の並列に動作しているプログラム
間で共有される資源に対応して設けられたロック、つま
り、占有硲保と開放に用いられる。
例えば、  1ockをこのようなロックとし、  1
ock=0ならば1ock I/C対応する資源Rがど
のプログラムにも蒋保されていないものとし、  1o
ck=1ならば資源Rがいずれかのプログラムに確保さ
れているものとする。ここであるプログラムPが資源R
を鏝保するときには、先ず次の動作を行なう。
y = Te5t & Set (1ock )禁教y
には1ockの以前の値が格納されるため。
これを調べることにより、  1ockO値が7est
 &set命令の実行以前に0であったか1であったか
を知ることができる。0であったら対応する資源Rは自
由であったことになり、 Te5t & Set命令に
よって1ock = 1となり、資源Rの使用権がプロ
グラムPに得られたことになる。また、yが1であった
なら、資源RはP以外のプログラムに確保されていたこ
とになり、Pは資源Rが開放されるまでTe5t & 
Set命令を繰り返すことになる。
以上のことはTe5t & Set命令を使って説明し
たが、  Compare & Swap命令について
も同等の動作に使用することができる。
Te5t & Set命令は上述のように資源に対応し
たロックを確保するための命令であるが、一般に資源の
使用が終了し、これを開放するためにロックを解除する
ための特別な命令は般けられていない。上述の例を使え
ば、  1ock−0,すなわち。
1ockに0をストアするだけでよいため、 通常のス
トア命令が使われる。
Compare & Set命令についても同様である
なお、アトミックなメモリアクセスに使用されるTe5
t & Set命令や、 (ompare & Swa
p  命令では、データのリードとそれに続くライトの
動作を排他・−遅動作として行ない、この間に他のメモ
リアクセスを許してはいなかった。
〔発明が解決しようとする課題〕
従来のマルチプロセッサ・システムでは、アトミックな
メモリアクセスを行なうためにリード・モディファイ・
ライト機能を使用するため、1つのプロセッサがリード
・モディファイ・ライトを行なうと、プロセッサとメモ
リを接続するメモリ・パスは占有され、他のプロセッサ
はアトミックなメモリアクセスとは異なる傾城のメモリ
・アクセスであっても、アトミックなメモリアクセスが
終るまで実行を待たされた。このため処理時間が遅くな
るという第1の課題があった。
また、従来はリードとそれに続くライ)K対してのみア
トミックなメモリ・アクセスが可能であり、一連のリー
ドまたはライトの任意のシーケンスに対しては、このよ
うなアクセスは出来なかった。
特開昭59−116866ではアトミックなメモリアク
セスをアドレスごとに管理し、異なるメモリ傾城へのメ
モリ・アクセスを可能にする技術が開示されている。
しかし、アトミックなメモリアクセスがマルチプロセッ
サ間の同期動作等で必要とされることを考えれば、単+
7]1数のプロセッサからの異なるアドレスへのメモリ
アクセスを許すだけでは不十分である。つまりプロセッ
サごとに、またはプログラムごとに正しく実行されてい
ることを管理しなければ、データ破壊、またはシステム
暴走の恐れがある。
また第2の課題として1機械命令体系で考えると、従来
のTe5t & SetやCompare & Swa
p命令は、アトミックなメモリアクセスを開始するのに
利用されるが、アトミックなメモリアクセスの終了には
特別の命令がなく1通常の5tore命令または相当命
令が使用されていた。このため他のデータに対するS 
tore命令と混同され、プログラミングを誤る可能性
があった。
さらに第3の課題として、従来のシステムではメモリの
並列アクセスを想定していなかったので。
Te5t & Set命令やCompare & Sw
apは一連の動作保護、したがって対象メモリ9域に対
してその時点での保護を行なうのみであった。続に続く
プログラムや同時に実行されている他のプログラムの正
当性管理は考慮されていなかったので、誤ったプログラ
ムに対しデータやシステムが破壊される危険性があり、
信願性で難点があった。
第1から第3の課題に対応する発明1から3までをまと
めると、従来考えられていなかったプログラムの正当性
またはシステムとしての動作の正しさを保証しながら、
全体のメモリアクセスの時間を短縮することを目的とす
る。
〔課題を解決するための手段〕
この発明に係わるメモリアクセス方式は、一連のデータ
のリードまたはライトのシーケンスが他のメモリ・アク
セスで分割されない排他動作となっているアトミック・
メモリアクセスに対し、アトミック・メモリアクセス記
憶アレイを設けた。
このアトミック・メモリアクセス記憶アレイには。
アトミック・メモリアクセスの開始/終了、アクセス要
求のメモIJ IJ域、アクセス要求の識別子を記憶す
る。そしてこれらの組み合わせ信号の発生手段を用意す
る。
アトミック・メモリアクセスに関わる機械命令体系では
、アトミックなメモリアクセスを開始することを示す機
械命令と、アトミックなメモリアクセスを終了すること
を示す機械命令を個別に設けた。
また、現にアトミックなメモリアクセスが行なわれてい
るメモリ領域に対し、新たに識別子の一致しないメモリ
アクセス要求が出された場合に。
これを検出する手段と、それに対応する処理ルーチンを
起動する手段を設けた。
〔作用〕
この発明においては、プロセッサがアトミックなメモリ
アクセス要求を出したとき、これを区別して記憶し、そ
の後のメモリアクセスに対して。
あるいはメモリアクセスを許し、あるいはメモリアクセ
スを拒否する。
また、アトミックなメモリアクセスに関する命令では、
開始と終了を示す専用機械命令を設けたことで、アトミ
ックなメモリアクセスを機械命令等で実現出来、プログ
ラミング上の区別を明確にする。
さらに、現にアトミックなメモリアクセスが行なわれて
いるメモリ領域に対し、不正なメモリアクセス要求が出
された場合に、検出処理を行なう。
〔発明の実施例〕
本発明の実施例を図に基いて説明する。
第2図はマルチプロセッサ・システムまたは単一プロセ
ッサ・システムの構成を示すもので、そ千− れたれの例(al (b)で、メモリまたはメモリ・ノ
くツク(Ion)、プロセッサ(200) −(205
) 、入出力制御装置(251) −(255) 、 
 メモリ・バス制御機構(MBC)(500)はメモリ
・バス(400)に接続されている。
4つのプロセッサ(200) −(205)はメモリ・
バス(400)を介してメモリ(+00)にアクセスす
る。この際のメモリ・バスの制御はメモリ・バス制御機
構(MBC)で行なわれる。
第3図は第2図のメモリ・パス制御機構(500)の内
部を示したもので、アトミック・メモリアクセス制御機
構(AMAC)(510)とメモリ・バス許可論理(M
BGL)(390)からなる。図では本発明に関係する
部分のみを示し、その伽の一般のメモリ・バスの制御に
要する機構/論理は説明の簡単化のために省いである。
アトミック・メモリ・アクセス制御機構(AMAC)(
510)は、メモリアクセス要求のアドレス(MRAD
DRESS)、  メモリアクセス要求の極刑を示すコ
ード(MRC0DE)。
メモリアクセス要求の識別子(MRID)を入力とし、
これらの信号より、メモリアクセス要求チエツク信号(
MRCHECK)を出力する。識別子は具体的には、プ
ロセッサ番号またはプログラム対応番号である。メモリ
アクセス要求チエツク信号(MRCHECK)は、MR
ADDRESS、MRCODE、MR10で示される現
行のメモリアクセス要求が、アトミックなメモリアクセ
ス頭載に対して矛盾のないメモリアクセス要求であるか
どうかをチエツクした信号であり、メモリ・パス許可論
理(MBGL)(590)の入力となっている。メモリ
・パス許可論理では、MRCHECKおよびその他のメ
モリ・バス制御機構(500)内部の状態より。
最終的なメモリ・バスの許可信号(MRGRANT)を
出力する。
第1図はアトミック・メモリ・アクセス制御機構(AM
AC) (510)の内部を示すもので9本発明の最も
重要な部分であり、  (511)はアドレス・プレイ
(AA)、 (512)及び(515)は比較器、  
(314)は論理AND回路、  (515)及び(5
16)は論理NOT回路を示す。アドレス・アレイ(A
A) (511)は、■。
A、IDの3つのフィールドからなる?J数のエントリ
を持ったメモリであり、1つのアトミックなメモリアク
セス領域に対して1つのエントリを有する。各エントリ
の■フィールドは、エントリの有効/無効を示すフラグ
、Aフィールドはメモリアドレスの下位ビットを保持す
るフィールド。
IDフィールドはメモリアクセス要求の識別子を保持す
るフィールドである。アドレス−アレイ(AA) (5
+1)のエントリは、メモリアクセス要求アドレスMR
ADDRESSの上位ビットで決定され。
そのエントリのAフィールドとメモリアクセス要求アド
レスの下位ビットが比較器(515)によって比較され
、そのエントリが示すメモリ・アドレスとメモリアクセ
ス要求のアドレスとが等しいかどうかを決定する。また
、同時に、メモリアクセス要求の識別子も比較器(51
2)によって比較される。
なお、MRACCESSは、第3図で示されるメモリア
クセス要求のコード(MRC0DE)をデコードした信
号で、メモリに対するアクセス要求があることを示す信
号である。チエツク信号(MR−CHECK)の出力は
1以上のようなアドレス・アレイ(AA)のフィールド
や比較結果に応じて 次のようにメモリ・パスの使用に
ついて許可/不許可となる。
この様なアトミック・メモリ・アクセス制御機構(AM
AC)(510)について、メモリアクセス要求に対す
る動作は以下のようになる。
あるプロセッサで実行しているプログラムPROGIが
メモリ・アドレスaに対し、アトミックなアクセスを開
始するとaの上位ピッ) ahで示されるアドレス・ア
レイ(AA) (511)のエントリeのVフラグが有
効となり、Aフィールドにはaの下位ビットAIが格納
され、このメモリアクセス要求の識別子idlがIDフ
ィールドに格納される。アトミックなメモリ・アクセス
が終了すると■フラグが無効になる。
別のプログラムPROG2がメモリ・アドレスaに対し
てアクセス要求を出したとすると、このメモリ参照要求
の識別子id2が先に記憶されているIDフィールド中
のidlと異なればアクセスは不許可となる。
以上により、単に異なるメモリアドレスへの参照動作を
許し、パス使用効充をあげるというだけでなく、処理効
究を上げながら論理的に矛盾のない動作を1f理し、信
頼性を上げることが出来る。
並列動作をさせながら正しいシーケンスを保つKは、ア
トミックなメモリアクセスも排他的で完結したものでな
くてはいけない。
以上の動作を上記の表を参照して、まとめて記述すると
次のようになる。
(al  プロセッサがアトミックなメモリアクセス要
求を出したとき、アドレス・アレイにすでにアトミック
・メモリアクセス要求がセットされていなければ、アク
セス要求を許可し、そのアドレスと識別子をアトミック
・メモリアクセス記憶プレイに記憶し。
(b)プロセッサがアトミックなまたは非アトミックな
メモリアクセス要求を出したとき、そのアドレスがすで
にアドレス・アレイにセットされているアドレスと一致
しなければアクセス要求を許可し。
lc)  プロセッサがアトミックなメモリアクセス要
求を出したとき、アドレス・アレイにすでにアトミック
・メモリアクセス要求がセットされている場合は識別子
を調べ、識別子が一致する場合にはアクセス要求を許可
し。
(d プロセッサがアトミックなメモリアクセス要求を
出したとき、アドレス・アレイにすでにアトミック・メ
モリアクセス要求がセットされている場合は識別子を調
べ、識別子が一致しなければアクセス要求を拒否する。
これを処理フローとして第4図に示す。図においてメモ
リ・アクセスが不許可になる場合がいくつかあるが、こ
れらに対するその後の処理は必ずしも同じではない。例
えば、アトミックでないメモリ・アクセス要求で、アド
レスは一致するが識別子は一致しない場合は、アトミッ
クなアクセスを行なっているメモリ領域に通常の非アト
ミックなメモリのリードまたはライトを行なう場合に相
当するため、エラーとして処理しても不都合はない。
これに対し、アトミックなメモリ・アクセス要求でアド
レスは一致するが識別子は一致しない場合は、アトミッ
クなアクセスを行なっているメモリ領域にアトミックな
メモリ会アクセスを行なおうとする場合に相当し、この
メモリ領域を使用しているプログラムまたはプロセッサ
が使用を終了するまで待たせる処理をするのが一般的で
ある。
上記構成により、メモリ・アクセスの動作がどのように
短縮されるかを述べる。第5図1a)は通常のメモリア
クセス(リードとライト)の基本的な動作タイミングを
示し、この例ではリードは4サイクル、ライトは1サイ
クルで終了する。第5図(blは従来のメモリ・アクセ
スの動作タイミングの例を示す。メモリ・バスはプロセ
ッサごとに処理期間中占有され、処理は直列になる。こ
れに対し。
第5図1blは本発明の対応タイミング例である。以下
、動作を詳しく説明する。
図において、  Cyclは動作タイミングを示し。
MBCはバス制御機構のメモリに対する動作指令。
GrntはMBCがプロセッサ等に与える信号、 MB
はメモリ・バスの使用状態、Pl−P3はプロセッサの
動作を示す。
第5図1blにおいて、R−XXXけメモリ・アドレス
XXXに対するリード要求、w−xxx  はメモリ・
アドレスxXXに対するライト要求である。図において
は、プロセッサPOがサイクル1でアドレス300に対
するリード要求を出し、 サイクル4でメモリよりデー
タが返る。従って9本発明には関係ないが、メモリのリ
ード動作には4サイクルを要する。また、ライト動作は
1サイクルで終了し9図ではサイクル5でW −200
が出ているが。
プロセッサPOでは、このサイクルでライト動作が終了
する。しかし、実際には、これも本発明には関係ないが
、メモリの動作が3サイクルその後に続く。ここで、 
 Cyclはメモリ・バスのサイクルを示し、MBCは
メモリ・バス制御機構内で処理を行うメモリ要求を示し
、 Grntはメモリ・ バスの許可/不許可(MB 
GRANT )を示し、  0ILnは、プロセッサP
nK対するメモリ・バスの許可信号を示す。また、MB
はメモリ・バスの使用状況を示し、  Busyは使用
されていることを示す。
Pnはプロセッサpnのメモリ参照要求を示す。
なお、この説明では、メモリは4バンクに分れており、
それぞれメモリ・アドレスxxxに対し。
XXX mod 4が0. 1. 2. 3の要求を独
立に処理できるものと仮定している。もちろん、メモリ
を1つとして任意のアドレスをとってもかまわな〜1゜ 第5図1blは、これに基〈従来の動作例である。
図においてR−500とそれに続(W−500がアトミ
ックなメモリ・アクセスとなっている。そのメモリアク
セス(R−501,W−502,R−503)は上記の
アトミック・アクセスが終了した後、処理される。
第5図(clは2本発明による動作例で、第5図1bl
に対応している。第S図(clでは、A−XXXはメモ
リ・アドレスxxxに対するアトミックなアクセするこ
とを示す。この図においては、プロセッサP1がサイク
ル1でメモリ・アドレス500に対し。
アトミックなメモリ・アクセスを開始し、サイクル7で
それを終了している。その間、サイクル2でリード要求
、サイクル6でライト要求を出しているが、これらのア
クセスはアトミックなアクセスであることが保証される
。プロセッサP1がこのようなアトミックなメモリ・ア
クセスを行っている間に、プロセッサPOはサイクル4
でライト動作、プロセッサP2はサイクル3でリード動
作。
プロセッサP3はサイクル5でリード動作、をそれぞれ
行っている。これらのアクセスは、メモリ・パンクが異
なるために可能となっているが、従来の技術においては
、メモリ・パンクが異なっていても、1つのプロセッサ
がアトミックなメモリ・アクセスを行っている間はメモ
リ・バスをロツりする必要があり、これが終了するまで
待たされていたが1本発明を利用することにより、第5
図telに示すように、メモリ・アクセスが効率化され
る。
なお、第5図においては、A−XXXおよびC−xxx
により、明示的にアトミックなメモリアクセスの開始と
終了を行なっているが、R−XXX(リートづあるいは
w−xxx(ライト)の属性としてアトミックなメモリ
アクセスの開始と終了を指定し、R−XXXあるいはw
−xxxとA−XXXあるいはc−xxxを組み合わせ
ることも考えられる。例えiJ’、A&R−XXXによ
り、メモリ・アドレスxxxに対するリード動作と、こ
のメモリ・ アドレスに対するアトミックなメモリ・ア
クセスの開始を指定する。同様に、A&W−XXXによ
り、ライト動作とアトミックなメモリ・アクセスの開始
を指定する。また、C&R−XXXにより、メモリ・ア
ドレスXXXに対するリード動作とこのメモリ・アドレ
スに対するアトミックなメモリ・アクセスの終了を指定
する。同様に、C&W−XXX  により、ライト動作
とアトミックなメモリ・アクセスの終了を指定する。
こうした構成を前提にして、プログラミングの際の命令
が具体的にどうなるかを述べる第1図に示されたような
メモリ・バス制御機構によるアトミックなメモリ・アク
セスのサポートがある際に。
アトミックなメモリアクセスを開始することを示す機械
命令と終了することを示す機械命令を設け。
その2つの機械命令の間に任意の機械命令を使用できる
ようにした実施例を第6図に示す。
第6図(atは本発明の明示的な機械命令語の説明をし
たものであり、データ・レジスタdr  に格納された
データを、メモリアクセス要求時に使用する     
           メモリアクセス要求IDを保持
するレジスタ1drにロードする機械命令 1oadi
d、 idrに格納されたIDをデータ・レジスタdr
にセーブする機械命令5toreid 。
アドレス・レジスタarに保持されたメモリ・アドレス
にあるデータをデータ・レジスタdr にロードする機
械命令1oad 、データ・レジスタに格納されたデー
タをa「に格納されたメモリ・アドレスにストアする機
械命令5tore、 arに保持されたメモリ・アドレ
スに対しアトミックなメモリ・アクセスを開始すること
を示す機械命令1ock。
arに保持されたメモリ・アドレスに対するアトミック
なメモリ・アクセスの終了を示す機械命令unlock
を示している。1oad命令及び5tore命令に伴う
メモリアクセス要求には、  idrに格納されたデー
タがメモリアクセス要求IDとして使用される。
これらの基本機械命令語を用いたアトミック・メモリ参
照のプログラム例を第6図+blに示す。
第6図(blには、  idrに格納されているメモリ
アクセス要求IDをセーブし、新しいIDf:idr 
にロードした後、アトミックをメモリ・アクセスを開始
し、必要な処理の終了後、アトミックなメモリ・アクセ
スを終了し、セーブしたメモリアクセス要求IDをリス
トアしている例を示す。これにより、プログラムの上で
明示的にアトミックなメモリアクセスを行っていること
が1 ock命令とunlock命令によシ理解でき、
ブロクラミングの効高を向上させるとともに、プログラ
ミングのエラーを減少させることができる。
第7図では、上記のような機械命令を前提とした高位の
プログラミング言語(Pa5cal il言@ )での
メモリのロック/アンロックについての例を示す。ここ
では、メモリ上にロック・アレイ(Lock Tabl
e )を設け2手続きMemory  Lock(n)
およびMemory tlnlock (n)で、nで
指定したLock Table [n ] をロロック
/アンフッすることを示し、さらにこれを利用したプロ
グラム例を示す。
ロック・プレイ(Lock Table )は1例えば
O5で管理する資源に対応するロックを保持するメモリ
に利用できる。この場合1例えばLockTabke 
[71でディスク・ユニツ)+7に対するロックを表わ
すとすると、あるプログラムがディスク・ユニット#T
を使用する際にはMemory−Lock(7)によっ
てロックを行ない、使用が終了しディスク・ユニット参
Tを開放する際にはMemOryUnlock 171
によってアンロックする。 このプログラムはMemo
ry Lock 171とMemory Unlock
 +71との間にディスク・ユニット#7に対するアク
セスを行なうことKなる。
ここで0手続きMemory Lock (rl) は
機械命令1ockを使い1手続きMemory Unl
ocK (n)は機械命令unlockを使って容易に
実現することができる。
機械命令1ockおよびunlocl(の仕様より、こ
れらによってアトミックなメモリ・アクセスが行なわれ
ている間、同時に他のメモリ・アクセスも可能であり、
マルチプロセッサのプログラムを開発するうえで効出の
向上が図れる。
次に、プログラムの一貫性もしくは動作の正しさを保証
する動作について述べる。ここでは、アトミックなメモ
リ・アクセスに関する例外を検知し、それに対応して割
り込みを発生させ、対応する処理ルーチンを起動するメ
カニズムの一実施例を示す。
アトミックなメモリ・アクセス例外は第1図に示すメモ
リ・バス制御機構(500)で検知することができる。
これは1例えばアトミックなメモリ・アクセスがアドレ
ス40Gに対してなされているときに、このメモリ・ア
ドレスに対してメモリアクセス要求!Dが異なるメモリ
アクセス要求が出された場合に検知される。これは、ア
トミックなメモリ・アクセスによって保護されているメ
モリ領域に、許可を持たない(メモリアクセス要求10
が異なる)プログラムが非アトミックなアクセスをする
ことを意味し2例えば異常例外として処理しても構わな
いし、またそのほうが望ましいことが多い。これは9通
常、並列プログラミングでは。
同時に動作するプログラムが同一のメモリ領域にアクセ
スする場合にはアトミックなメモリ・アクセスを行なう
のが普通であり、非アトミックなアクセスを行なうのは
プログラミング・エラーによる場合が多いからである。
メモリ・バス制御機構で検出されたメモリアクセス例外
は、他のメモリアクセス例外と同様に処理することが可
能でアク、このために特別の割り込み機構を設ける必要
はなく、メモリアクセス例外の要因を1つふやし、これ
をハード・ウェアでサポートするだけでよい。もちろん
、専用の割り込み機構を設けてもよい。
この例外による割り込み処理についても従来より知られ
ている方法や機構を利用して実現することが可能である
アトミックなメモリアクセス例外の割り込みが発生した
場合の処理例を第8図に示す。
この図では、アトミックなメモリアクセス例外の発生に
伴って、ハードウェアの機構により、メモリアクセス例
外に対する例外処理ルーチンが起動され、そこでアトミ
ック・メモリアクセス例外と認識され、これの解析が行
なわれ、この例外を発生したプログラムを特定し、この
プログラムへエラーの通知を行なった後、このプログラ
ムを中断する。ここで、アトミック・メモリアクセス例
外の解析では、ハードウェア機構の支援を受け9例外を
発生した際のメモリ・アクセス要求の種類とメモリアク
セス識別子およびそれに対応するアトミック・メモリア
クセス制御機構内のアドレス・アレイのエントリの情報
を読み込み1例外の発生状態を知る。
また1例外を発生したプログラムの特定では。
例外の発生状態からメモリアクセス識別子を知り。
これを元に各種のプログラム管理テーブルを参照しなが
ら例外を発生したプログラムを特定する。
さらに1例外を発生したプログラムは処理の継続は不可
能であるため1発生したエラーに対応するコードをセッ
トし、プログラムの実行を中断する処理を行なう。
〔発明の効果〕
以上のようにこの発明によれば、排他メモリアクセス記
憶アレイを設け、メモリアクセス・アドレスと識別子を
記憶させるので、論理正当性を保ちつつメモリアクセス
の助出を向上させることができる。
また、アトミックなメモリアクセスの開始と終了に別個
の命令を設けたので、この間に任意の他の命令を混乱な
く実行でき、しかもプログラミングが容易でプログラム
の信碩性が向上する。
さらに、アトミックなメモリアクセスを行なっているメ
モリ領域に対する違法なメモリアクセスを検知し、アト
ミックなメモリ領域を保護し1割り込み処理等によりシ
ステムの信卵性が向上する。
などの効果がある。
【図面の簡単な説明】
第1図はアトミック・メモリ・アクセス制御機はメモリ
・バス制御機構を示す図、第4図はメモリ・アクセスに
対する処理ルーチンを示す図、第5図はメモリ参照のタ
イミングを示す図、第6図は機械命令およびそれによる
ブロクラムの一部を示す図、第7図は高位プログラミン
グ言語で記述された手続きを示す図、第8図は例外処理
フローを示す図である。図中、  (+00)はメモリ
、  (200)−(2Q5)はプロセッサ、  (5
oo) Fiメモリ・バス制御機構、  (400)は
メモリ・バス、  (5ha)はアトミック・メモリ・
アクセス制御機構、  (590)はメモリ・バス許可
論理、  (All)はメモリ、  (512) −(
314)は比較器、  (514)は論理AND回路、
  (515)−(516)は論理807回路を示す。 なお2図中、同一あるいは相当部分には同一符号を付し
て示しである。

Claims (3)

    【特許請求の範囲】
  1. (1)複数のプロセッサまたは入出力制御装置等のプロ
    セッサ相当回路とメモリとがメモリ・バスによつて接続
    されたシステムにおいて、 一連のデータのリードまたはライトのシーケンスが他の
    メモリ・アクセスで分割されない排他動作となつている
    メモリアクセスに対し、プロセッサによる上記排他メモ
    リアクセスの実行に対応した、すくなくともそのメモリ
    アクセス領域とメモリアクセス識別子とからなる、上記
    排他メモリアクセス記憶アレイを設けたことを特徴とす
    るメモリアクセス方式。
  2. (2)複数のプロセッサまたは入出力制御装置等のプロ
    セッサ相当回路とメモリとがメモリ・バスによつて接続
    されたシステムにおいて、 一連のデータのリードまたはライトのシーケンスが他の
    メモリ・アクセスで分割されない排他動作となつている
    メモリアクセスに対し、上記排他メモリアクセスを開始
    することを示す機械命令と、上記排他メモリアクセスが
    終了することを示す機械命令を別個に設け、その2つの
    命令の間に任意の機械命令を使用できることを特徴とす
    るメモリアクセス方式。
  3. (3)複数のプロセッサまたは入出力制御装置等のプロ
    セッサ相当回路とメモリとがメモリ・バスによつて接続
    されたシステムにおいて、 一連のデータのリードまたはライトのシーケンスが他の
    メモリ・アクセスで分割されない排他動作となつている
    メモリアクセスに対し、現に上記排他メモリアクセスが
    行なわれているメモリ領域に対し、あらたに識別子の一
    致しないメモリアクセス要求が出された場合に、これを
    検出し、それに対応する処理ルーチンを起動することを
    特徴とするメモリアクセス方式。
JP2043820A 1990-02-23 1990-02-23 記憶制御装置 Expired - Lifetime JP2665813B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2043820A JP2665813B2 (ja) 1990-02-23 1990-02-23 記憶制御装置
GB9027947A GB2241800B (en) 1990-02-23 1990-12-21 Memory access method and system
DE4104781A DE4104781C2 (de) 1990-02-23 1991-02-13 Speicherzugriffssteuerung
US08/160,363 US5446862A (en) 1990-02-23 1993-11-29 System and method for granting or preventing atomic or nonatomic memory access requests to shared memory regions
US08/517,549 US5579505A (en) 1990-02-23 1995-08-21 Memory access system and method for granting or preventing atomic or nonatomic memory access requests to shared memory regions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2043820A JP2665813B2 (ja) 1990-02-23 1990-02-23 記憶制御装置

Publications (2)

Publication Number Publication Date
JPH03246656A true JPH03246656A (ja) 1991-11-05
JP2665813B2 JP2665813B2 (ja) 1997-10-22

Family

ID=12674385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2043820A Expired - Lifetime JP2665813B2 (ja) 1990-02-23 1990-02-23 記憶制御装置

Country Status (4)

Country Link
US (2) US5446862A (ja)
JP (1) JP2665813B2 (ja)
DE (1) DE4104781C2 (ja)
GB (1) GB2241800B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253046B2 (en) 1998-09-10 2016-02-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5848276A (en) * 1993-12-06 1998-12-08 Cpu Technology, Inc. High speed, direct register access operation for parallel processing units
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
US5761731A (en) * 1995-01-13 1998-06-02 Digital Equipment Corporation Method and apparatus for performing atomic transactions in a shared memory multi processor system
US6101525A (en) * 1995-05-19 2000-08-08 Emc Corporation Method and apparatus for shared memory cleanup
US5970510A (en) * 1996-04-10 1999-10-19 Northrop Grumman Corporation Distributed memory addressing system
US6047388A (en) * 1997-04-09 2000-04-04 International Business Machines Corporation Method and apparatus for processing an invalid address request
US5900018A (en) * 1997-06-24 1999-05-04 Sun Microsystems, Inc. Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache
US6112282A (en) * 1997-06-24 2000-08-29 Sun Microsystems, Inc. Apparatus for atomic locking-accessing-unlocking of a shared resource
US6000029A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for affecting subsequent instruction processing in a data processor
US6243750B1 (en) * 1998-03-26 2001-06-05 International Business Machines Corporation Method and system for measuring Web site access requests
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6189093B1 (en) * 1998-07-21 2001-02-13 Lsi Logic Corporation System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US6289445B2 (en) 1998-07-21 2001-09-11 Lsi Logic Corporation Circuit and method for initiating exception routines using implicit exception checking
US6701429B1 (en) 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US6223335B1 (en) * 1998-12-09 2001-04-24 Sun Microsystems, Inc. Platform independent double compare and swap operation
US6189061B1 (en) * 1999-02-01 2001-02-13 Motorola, Inc. Multi-master bus system performing atomic transactions and method of operating same
US7228549B2 (en) * 1999-12-02 2007-06-05 Ants Software, Inc. Method and system for enhanced concurrency in a computing environment
US6795901B1 (en) * 1999-12-17 2004-09-21 Alliant Techsystems Inc. Shared memory interface with conventional access and synchronization support
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6836840B2 (en) 2001-07-30 2004-12-28 International Business Machines Corporation Slaves with identification and selection stages for group write
US6862666B2 (en) * 2002-05-16 2005-03-01 Sun Microsystems, Inc. Hardware assisted lease-based access to memory
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7175090B2 (en) * 2004-08-30 2007-02-13 Cognex Technology And Investment Corporation Methods and apparatus for reading bar code identifications
US8458724B2 (en) 2007-06-15 2013-06-04 Microsoft Corporation Automatic mutual exclusion
US7769928B1 (en) * 2007-06-28 2010-08-03 Emc Corporation Data storage system having CPUs adapted to perform a second atomic operation request prior to completion of a first atomic operation request
US8739141B2 (en) * 2008-05-19 2014-05-27 Oracle America, Inc. Parallelizing non-countable loops with hardware transactional memory
US8843682B2 (en) * 2010-05-18 2014-09-23 Lsi Corporation Hybrid address mutex mechanism for memory accesses in a network processor
US8103937B1 (en) * 2010-03-31 2012-01-24 Emc Corporation Cas command network replication
US11200330B2 (en) * 2018-08-01 2021-12-14 Red Hat, Inc. Secure storage access through rate limitation
US10817221B2 (en) * 2019-02-12 2020-10-27 International Business Machines Corporation Storage device with mandatory atomic-only access
US20220027291A1 (en) * 2020-07-24 2022-01-27 Advanced Micro Devices, Inc. Arbitrating atomic memory operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59116866A (ja) * 1982-12-23 1984-07-05 Toshiba Corp 計算機システムの記憶装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3710324A (en) * 1970-04-01 1973-01-09 Digital Equipment Corp Data processing system
US3815099A (en) * 1970-04-01 1974-06-04 Digital Equipment Corp Data processing system
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4561051A (en) * 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
CA1239227A (en) * 1984-10-17 1988-07-12 Randy D. Pfeifer Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system
US4604743A (en) * 1984-11-21 1986-08-05 North American Philips Corporation Bus structure for an image processor
US4736317A (en) * 1985-07-17 1988-04-05 Syracuse University Microprogram-coupled multiple-microprocessor module with 32-bit byte width formed of 8-bit byte width microprocessors
US4937733A (en) * 1987-05-01 1990-06-26 Digital Equipment Corporation Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
IN169634B (ja) * 1987-07-01 1991-11-23 Digital Equipment Corp
JPH01113849A (ja) * 1987-10-19 1989-05-02 Internatl Business Mach Corp <Ibm> マルチユーザシステム
DE3735574A1 (de) * 1987-10-21 1989-05-03 Goldschmidt Ag Th Fluessige zubereitung zur herstellung elektrisch leitfaehiger und infrarot reflektierender fluordotierter zinnoxidschichten auf glas- oder glaskeramikoberflaechen sowie verfahren zur herstellung derartiger schichten unter verwendung dieser zubereitungen
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5136691A (en) * 1988-01-20 1992-08-04 Advanced Micro Devices, Inc. Methods and apparatus for caching interlock variables in an integrated cache memory
US4975870A (en) * 1988-02-25 1990-12-04 Data General Corporation Apparatus for locking a portion of a computer memory
US4969088A (en) * 1988-04-26 1990-11-06 International Business Machines Corporation Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
JPH07107052B2 (ja) * 1988-05-25 1995-11-15 三菱化学株式会社 複素環式アルデヒドの製造方法
EP0343646B1 (en) * 1988-05-26 1995-12-13 Hitachi, Ltd. Task execution control method for a multiprocessor system with enhanced post/wait procedure
US5050072A (en) * 1988-06-17 1991-09-17 Modular Computer Systems, Inc. Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system
US5175829A (en) * 1988-10-25 1992-12-29 Hewlett-Packard Company Method and apparatus for bus lock during atomic computer operations
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5136714A (en) * 1989-12-04 1992-08-04 International Business Machines Corporation Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5163143A (en) * 1990-11-03 1992-11-10 Compaq Computer Corporation Enhanced locked bus cycle control in a cache memory computer system
US5261106A (en) * 1991-12-13 1993-11-09 S-Mos Systems, Inc. Semaphore bypass

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59116866A (ja) * 1982-12-23 1984-07-05 Toshiba Corp 計算機システムの記憶装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9253046B2 (en) 1998-09-10 2016-02-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US9565013B2 (en) 1998-09-10 2017-02-07 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US9860315B2 (en) 1998-09-10 2018-01-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US10491675B2 (en) 2001-10-01 2019-11-26 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures

Also Published As

Publication number Publication date
GB2241800B (en) 1993-12-08
JP2665813B2 (ja) 1997-10-22
US5579505A (en) 1996-11-26
DE4104781C2 (de) 1996-08-22
DE4104781A1 (de) 1991-08-29
GB9027947D0 (en) 1991-02-13
GB2241800A (en) 1991-09-11
US5446862A (en) 1995-08-29

Similar Documents

Publication Publication Date Title
JPH03246656A (ja) 記憶制御装置
US5669002A (en) Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory
US4480304A (en) Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US5893157A (en) Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
JPS59180767A (ja) 直列化装置
JPH03196249A (ja) 多重プロセッサシステム
JPH06187232A (ja) 共通データのアクセス管理制御方法
US5136714A (en) Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
JPS584372B2 (ja) オブジェクト・アクセス制御装置
JPH0383154A (ja) 多重処理コンピュータ・システム及び方法
JPS5837587B2 (ja) メモリ・ロック装置
US5522029A (en) Fault tolerant rendezvous and semaphore for multiple parallel processors
JP2000003302A (ja) 共有メモリ排他アクセス制御方法
US6981108B1 (en) Method for locking shared resources connected by a PCI bus
EP0297895B1 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JP2848437B2 (ja) マルチクラスタ排他制御装置
JPH0355657A (ja) マルチタスク・マルチプロセッサシステムにおける共有メモリアクセス方式
JPS5930305B2 (ja) ロツク管理方式
JPS59225469A (ja) 共有メモリ排他制御方式
Bril On cacheability of lock-variables in tightly coupled multiprocessor systems
JPH02100755A (ja) 情報処理装置
JPS62214466A (ja) 記憶装置ロツク制御方式
JPH04343143A (ja) マルチプロセッサシステムにおける共有資源相互排除方式
JPH0581211A (ja) プロセツサ間通信方式
JPH06266621A (ja) データアクセス方法