JPH0425961A - 共有データ更新方式 - Google Patents

共有データ更新方式

Info

Publication number
JPH0425961A
JPH0425961A JP13036590A JP13036590A JPH0425961A JP H0425961 A JPH0425961 A JP H0425961A JP 13036590 A JP13036590 A JP 13036590A JP 13036590 A JP13036590 A JP 13036590A JP H0425961 A JPH0425961 A JP H0425961A
Authority
JP
Japan
Prior art keywords
processor
data
address
shared memory
stored
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.)
Pending
Application number
JP13036590A
Other languages
English (en)
Inventor
Toshiaki Takewaki
武脇 敏晃
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP13036590A priority Critical patent/JPH0425961A/ja
Publication of JPH0425961A publication Critical patent/JPH0425961A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、複数のプロセッサにより共有される共有メモ
リの更新を行なう共有データ更新方式(従来の技術) 近年では、単一のプロセッサの場合と比べ、より高い処
理能力を実現するために、複数のプロセッサで並列処理
を行なう情報処理装置の実用化が始まっている。このよ
うな情報処理装置では、プロセッサ間でデータのやり取
りを行なう必要があり、それを実現する手段の一つに共
有メモリを用いる方式がある。
共有メモリは、通常の命令(主記憶装置)と同じように
、プロセッサからアドレスが指定され、データのリード
/ライトが行なわれる。ただし、複数のプロセッサから
同じアドレスのデータを更新しようとすると、例えば次
のような正しくない事象が起こりうる。
ここでは、二つのプロセッサ(プロセッサPプロセッサ
Q)が、はぼ同時に共有メモリのアドレスAの内容に対
してプロセッサPはrlJを、プロセッサQは「2」を
加えようとする場合を仮定する。第7図(a)(b)に
、そのためのプロセッサP、Qそれぞれのプログラムを
示す。第7図(a)に示すプログラムは、アドレスAに
格納されたデータを読み込んでレジスタ1に保持しくr
ead)、このレジスタ1の内容に「1」を加えてレジ
スタ1に保持しくadd)、レジスタ1に保持された加
算結果をアドレス八に書き込むものである(wrfte
)。第7図(b)に示すプログラムは、addにおいて
「2」を加えるもので、他は同様にして処理される。
プロセッサPとプロセッサQの処理が、第8図に示すよ
うなタイミングであって重ならない場合は問題ない。し
かし、第9図に示すように、プロセッサPとプロセッサ
Qの処理が重なる場合には、どちらか一方の更新がデー
タに反映されないことがある。
これを避けるために従来では、プロセッサが共有メモリ
のあるアドレスのデータをリード、ライトする処理を、
他のプロセッサの干渉を受けること無く実現できるよう
、特殊な命令をプロセッサで用意する方法が用いられて
いる。
ここでは、このような命令のうち、より効率が良いコン
ベアアンドスワップ(CAS)命令について、その動作
を説明する。
CAS命令は、通常、3つのレジスタを使用する。第1
のレジスタ(Adress^) には、更新すべきアド
レスを格納する。第2のレジスタ(Reglsterl
)には、更新すべきアドレスからり一ドした元のデータ
を格納する。そして、第3のレジスタ(Reglste
r2)には更新すべきアドレスにライトすべきデータを
格納する。
CAS命令は、第1のレジスタの示すアドレスに格納さ
れているデータを読出し、このデータと第2のレジスタ
の内容を比較する。そして、両者が一致すれば第3のレ
ジスタのデータを、共有メモリのそのアドレスに対して
ライトする。もし、両者が一致しなければ、リードした
データを第2のレジスタに格納する。両者が一致したか
否かは、コンデイションコードに反映される。
CAS命令では、更新すべきアドレスに対してリードと
ライトが行なわれる。この間に、他のプロセッサが共有
メモリをアクセスしようとすると、そのアクセスはCA
S命令の終了まで待たされる。
このCAS命令を使用すると、第7図(a)(b)のプ
ログラムは、それぞれ第10図(a)(b)のように書
くことができる。このCAS命令を用いることによって
、複数のプロセッサが同じアドレスのデータを更新する
場合であっても、正しい結果を得ることができる。
(発明が解決しようとする課題) しかしながら、このような方法では、ブータラ更新する
ための手間がかかるという問題があった。すなわち、第
10図のプログラムで一回目のCAS命令でデータの更
新に成功する最短の場合でも、更新データのリードが二
回(うち−回はCAS命令中で行なわれる)とライトが
一回(CAS命令中で行われる)必要となっている。
このように、共存データの更新用の命令として、従来、
CAS命令等が使用されているが、最も効率の良いCA
S命令でも、もとのデータを共有メモリからリードして
新しいデータを共有メモリにライトするには、最良の場
合でもリード二回とライト−回の処理が必要となってい
た。
本発明は前記のような点に鑑みてなされたもので、より
効率良く共有データの更新を行なう事が可能な共有デー
タ更新方式を提供することを目的とする。
[発明の構成] (課題を解決するための手段) 本発明は、プロセッサがアクセスの対象とするアドレス
を示すアドレス情報と当該プロセッサを示すプロセッサ
情報とを対応づけて保持するためのデータ更新状況保持
手段と、プロセッサによって前記共有メモリに格納され
たデータの読み込みが行なわれる際、指定された前記共
有メモリ内のアドレスに対応するアドレス情報と当該プ
ロセッサのプロセッサ情報とを前記データ更新状況保持
手段に格納する更新情報格納手段と、プロセッサによっ
て前記共有メモリにデータの書き込みが行なわれる際、
指定されたアドレスのアドレス情報と対応づけて当該プ
ロセッサのプロセッサ情報が前記データ更新状況保持手
段に予め保持されている場合には同プロセッサ情報を消
去し、他のプロセッサのプロセッサ情報が予め保持され
ている場合にはデータの書き込みを行わずに当該プロセ
ッサに書き込みが失敗したことを通知する更新制御手段
とを具備して構成するものである。
(作 用) このような構成によれば、プロセッサが例えばリード命
令Aを実行することにより、更新すべき元のデータがレ
ジスタにロードされると共に、データ更新状況保持手段
にそのアドレスを示すアドレス情報とプロセッサ情報(
プロセッサ番号)が格納される。そして、例えばライト
命令Xを実行することにより、新しいデータをそのアド
レスに書き込もうとする。このリード命令Aからライト
命令Xの間において、もし他のプロセッサによってその
アドレスに対してアクセスが行なわれなかった場合には
、データ更新状況保持部にそのアドレスに対して当該プ
ロセッサ番号が格納されているので、ライト命令Xによ
り新しいデータを書き込むことができる。また、リード
命令Aがらライト命令Xの間において、もし他のプロセ
ッサによってそのアドレスに対してアクセスが行なわれ
た場合には、そのアドレスに対して当該プロセッサ番号
が格納されていないため、実際のライト(書き込み)は
行なわれずプロセッサはライト命令Xが成功しなかった
ことがわかる。
(実施例) 以下、図面を参照して本発明の一実施例を説明する。第
1図は同実施例に係わる共有データ更新方式を用いる複
数のプロセッサによって並列処理を行なうことが可能な
情報処理装置の概略構成を示すブロック図である。同図
においては、バス10を介して、2つのプロセッサP、
プロセッサQ1及び共有メモリ20が接続されている。
プロセッサP、Qからのリード命令やライト命令は、バ
ス10を介して共有メモリ20に送られる。共有メモリ
20には、データを格納するだめのデータ部30、及び
共有メモリ20に対するデータ更新の状況を示す情報を
保持するだめのデータ更新状況保持部40が設けられて
いる。データ更新状況保持部40には、更新の対象とす
るアドレスを示すアドレス情報を格納するためのアドレ
ス情報格納部50と、データの更新を実行するプロセッ
サを示すプロセッサ番号を格納するためのプロセッサ番
号格納部6oが設けられている。アドレス情報格納部5
oに格納されるアドレス情報と、プロセッサ番号格納部
60に格納されるプロセッサ番号は、それぞれ共有メモ
リ20に対してデータ更新を行なうプロセッサ、共有メ
モリ20の処理対象とするアドレスに応じて変更される
ものである。
次に、同実施例の動作について説明する。
ここでは、プロセッサPとプロセッサQが、共有メモリ
20の同じアドレスAのデータを操作する処理を、第2
図(a)(b)に示すプログラムを例にして説明する。
プロセッサPは、第2図(a)のプログラムを使用し、
プロセッサQは第2図(b)のプログラムを使うものと
する。説明を簡単にするために第2図に示すプログラム
以外では、アドレスAに対する操作が行われないものと
する。
また、説明に用いる共有メモリ2oのデータ更新状況保
持部40、及びデータ部3oの状態は、それぞれ第3図
、第4図のようになっているものとする。
はじめに、プロセッサP、Qによるデータの更新処理が
、第5図に示すようなタイミングで重なっていない場合
について説明する。
まず、プロセッサPは、リード命令A (read^)
によって共有メモリ20上のアドレスAのデータを読み
込もうとする。共有メモリ20のアドレスAに格納され
たデータr2Jが、プロセッサPに読み込まれる。この
とき、データ更新状況保持部40にはアドレスAに対応
するエントリが存在しないので新たなエントリを確保し
、アドレス情報格納部50にアドレス情報「A」を格納
し、このアドレス情報に対応づけてプロセッサ番号格納
部6oにプロセッサ番号rPJを格納する(tll)。
プロセッサPは、読み込んだアドレスAのデータの値に
「1」を加える処理(add)を施す(tl2)。
プロセッサPは、その処理結果をライト命令X(vrl
teX)によってアドレスAに書き込もうとする。この
とき、加算処理の間に他のプロセッサによってアドレス
Aがアクセスされていないので、データ更新状況保持部
40に保持されているアドレス情報rAJに対応するプ
ロセッサ番号はrPJである。従って、共有メモリ20
には、アドレスAにプロセッサPから渡されたデータ「
3」が格納される。また、データ更新状況保持部40の
アドレス情報格納部50に格納されているアドレスAに
対応するアドレス情報rAJと、プロセッサ番号格納部
60に格納されたプロセッサ番号rPJが消去される(
tl3)。
この後、プロセッサQは、リード命令A(read^)
によって共有メモリ20上のアドレスAのデータの読み
込みを行なう。共有メモリ2oは、アドレスAに格納さ
れたデータの値「3」をプロセッサQに渡す。このとき
、データ更新状況保持部40には、アドレスAに対応す
るエントリがないので、新たなエントリが確保され、そ
のアドレス情報rAJとプロセッサ番号rQJが、それ
ぞれアドレス情報格納部50、プロセッサ番号格納部G
に格納される(tl4)。
プロセッサQは、読み込んだデータの値に「2」を加え
る処理(add )を施す(tl、5)。
プロセッサQは、その処理結果をライト命令X(vri
teX)によってアドレスAに書き込もうとする。この
とき、加算処理の間に他のプロセッサによってアドレス
Aがアクセスされていないので、共有メモリ20には、
アドレスAにプロセッサQから渡されたデータ「5」が
格納される。また、データ更新状況保持部40に格納さ
れているアドレスAに対するアドレス情報rAJと、プ
ロセッサ番号格納部60に格納されたプロセッサ番号r
QJが消去される(tl、6)。
このように、データの更新処理が、プロセッサP、Qで
重なっていない場合、第5図に示すように、アドレスA
の内容は、データ更新の内容が反映される。
次に、プロセッサP、Qによるデータの更新処理が、第
6図に示すようなタイミングで重なっている場合につい
て説明する。
まず、プロセッサPは、リード命令Aによって共有メモ
リ20上のアドレスAのデータを読み込もうとする。共
有メモリ20のアドレスAに格納されたデータ「2」が
、プロセッサPに読み込まれる。
このとき、データ更新状況保持部40にはアドレスAに
対応するエントリが存在しないので新たな一エントリを
確保し、アドレス情報格納部50にアドレス情報rAJ
を格納し、プロセッサ番号格納部G。
にプロセッサ番号rPJを格納する(t21)。
プロセッサPは、読み込んだデータの値に「1」を加え
る処理を施す。一方、プロセッサQは、リード命令Aに
よって共有メモリ20上のアドレスAのデータを読み込
もうとする。これにより共有メモリ20のアドレスAに
格納されたデータがプロセッサQに読み込まれる。また
、プロセッサQは、データ更新状況保持部40のプロセ
ッサ番号格納部60に格納されたアドレスAに対応する
プロセッサ番号をrQJに変更する(t22)。
ブロセ、ツザQは、読み込んだデータの値に「2」を加
える処理を施す。プロセッサPは、演算結果をライト命
令XによってアドレスAに書き込もうとする。このとき
、加算処理の間にプロセッサQによってアドレスAに対
する書き込みが行われているため、データ更新状況保持
部40に格納されたアドレスAに対応するプロセッサ番
号はrQJであり、当該プロセッサ番号rPJと異なっ
ている。
この場合には、実際に共有メモリ20に対して書き込み
を行なわず、プロセッサPに対して書き込みが失敗した
ことを、コンデイションコードに反映させることによっ
て通知する(t23)。
プロセッサPは、書き込みに失敗したので、条件分岐命
令(be)によって更新を再試行するためラベルRet
ryに分岐する(第2図参照)。プロセッサQは、演算
結果をライト命令XによってアドレスAに書き込もうと
する。このとき、アドレスAが他のプロセッサによって
アクセスされていないので、共有メモリ20には、アド
レスAにプロセッサQから渡されたデータ「4」が格納
されると共に、データ更新状況保持部40に格納されて
いるアドレスAに対応するアドレス情報rAJと、プロ
セッサ番号rQJが消去される(t24)。
プロセッサPは、リード命令Aによって共有メモリ20
上のアドレスAのデータを読み込もうとする。共有メモ
リ20は、アドレスAに格納されたデータの値「4」を
プロセッサPに渡す。このとき、データ更新状況保持部
40には、アドレスAに対応するエントリがないので、
新たなエントリが確保され、そのアドレス情報rAJと
プロセッサ番号rQJが、それぞれアドレス情報格納部
50、プロセッサ番号格納部60に格納される(t25
)。
プロセッサPは、読み込んだデータの値に「1」を加え
る処理を施す(t26)。
プロセッサPは、その処理結果をライト命令Xによって
アドレスAに書き込みを行なう。このとき、加算処理の
間に他のプロセッサによってアドレスAがアクセスされ
ていないので、データ更新状況保持部20のプロセッサ
番号格納部6oに格納されたアドレスAに対応するプロ
セッサ番号はrPJである。共有メモリ20には、アド
レスAにプロセッサPから渡されたデータr5Jを格納
する。また、データ更新状況保持部40のアドレス情報
格納部50、プロセッサ番号格納部6oに、格納されて
いるアドレスAに対応するアドレス情報rAJとプロセ
ッサ番号rPJをそれぞれ消去する(t27)。
ところで、前記実施例の説明では共有データについて説
明したが、非共有データに対する更新の場合には、リー
ド命令Bとライト命令Yを用いる。
非共有データは、プロセッサPとプロセッサQの何れか
一方のプロセッサによってアクセスされる。
このため、データ更新状況保持部40にはそのデータの
アドレス情報とプロセッサ番号を保持する必要がない。
リード命令Bは、データ更新状況保持部40に処理対象
とするデータのアドレス情報とプロセッサ番号を保持し
ないで、読出しを行なう命令である。ライト命令Yは、
データ更新状況保持部40にそのデータに関するアドレ
ス情報とプロセッサ番号が含まれているかを確認せずに
書込みを行なう命令である。
例えば、アドレスAのデータが一度も共有されていない
場合、リード命令Bによりデータを読み出す。この時、
データ更新状況保持部40にアドレスAに関するアドレ
ス情報とプロセッサ番号は、保持されていない。
次に、更新されたデータをライト命令Yによりアドレス
Aに書き戻す。データが共有されていないので、データ
更新状況保持部40にはアドレスAに関するアドレス情
報とプロセッサ番号は保持されていない。従って、ライ
ト命令Yは、その確認を行わないで書き込みを行なう。
また、アドレスAの共有データが、ある時点から単一の
プロセッサからのみアクセスされる場合、リード命令B
によりデータを読み出す。それまで、共有されていたた
め、データ更新状況保持部40にはアドレスAに関する
アドレス情報とプロセッサ番号が保持されている可能性
がある。このため、データ更新状況保持部40にアドレ
スAに関するアドレス情報とプロセッサ番号が保持され
ていれば、これを消去する。
次に、更新されたデータをライト命令Yによりアドレス
Aに書き戻す。データが共有されていないので、データ
更新状況保持部40にはアドレスAに関するアドレス情
報とプロセッサ番号は保持されていない。従って、ライ
ト命令Yは、その確認を行わないで書き込みを行なう。
このようにして、プロセッサが共有メモリ20内のデー
タの更新を行なう際には、データ更新状況保持部40に
更新の対象とするアドレスを示すアドレス情報、及び更
新処理を行なうプロセッサを示すプロセッサ番号が対応
づけられて格納される。
他のプロセッサは、データ更新状況保持部40に保持さ
れたアドレス情報、プロセッサ番号を参照してデータ更
新処理が可能か判別される。すなわち、従来のCAS命
令を用いた方式のように、データを読み込んで更新可能
か否かを判別するので、データ更新処理に伴う共有メモ
リに対するリード。
ライトがそれぞれ1回で済む。このため、従来に比較し
て、より効率的に処理を行なうことが可能となる。
なお、ライト命令Xが失敗したことを通知する方法とし
ては、コンデイションコードに反映させることによって
通知しても良く、また割り込みによって通知しても良い
また、前記実施例においては、二つのプロセッサによる
共有メモリ20が共有される場合を例にして説明したが
、プロセッサ数は、これに限定されるものではない。こ
の場合、データ更新状況保持部40にデータ更新の状況
(コマンド)に応じてアドレス情報、プロセッサ番号を
格納し、この情報を参照してアクセス競合を制御する。
〔発明の効果〕
以上のように本発明によれば、複数のプロセッサによっ
て共有される共有メモリの更新がリード命令1回とライ
ト命令1回で実現することができる。これは、従来のC
AS命令を使用してリード命令2回とライト命令1回で
行なう場合と比較して、より共有データの更新が高速に
なり、また共有メモリに対するアクセスの競合を緩和さ
せることが可能となるものである。
【図面の簡単な説明】
第1図乃至第6図は本発明の一実施例に係わる図であり
、第1図は同実施例の共有データ更新方式を用いる情報
処理装置の概略構成を示すブロック図、第2図は更新処
理プログラムの一例を示す図、第3図はアドレス情報格
納部の構成の一例を示す図、第4図はデータ部の構成の
一例を示す図、第5図は2つのプロセッサの更新処理が
重ならなかったときのタイミングを示す図、第6図は2
つのプロセッサの更新処理が重なったときのタイミング
を示す図である。第7図乃至第10図は従来の技術を説
明するための図であり、第7図は更新処理プログラムの
一例を示す図、第8図は2つのプロセッサの更新処理が
重ならなかったときのタイミングを示す図、第9図は2
つのプロセッサの更新処理が重なったときのタイミング
を示す図、第10図はCAS命令を用いた更新処理プロ
グラムの一例を示す図である。 P、Q・・・プロセッサ、10・・・バス、20・・・
共有メモリ、30・・・データ部、40・・・データ更
新状況保持部、50・・・アドレス情報格納部、60・
・・プロセッサ番号格納部。 出願人代理人 弁理士 鈴江武彦 アドレスAの内容 第 図 プロセッサPの 実行命令 read  add   write jIs図

Claims (1)

  1. 【特許請求の範囲】 複数のプロセッサによって共有される共有メモリに対す
    る更新処理の制御を行なう共有データ更新方式において
    、 プロセッサがアクセスの対象とするアドレスを示すアド
    レス情報と当該プロセッサを示すプロセッサ情報とを対
    応づけて保持するためのデータ更新状況保持手段と、 プロセッサによって前記共有メモリに格納されたデータ
    の読み込みが行なわれる際、指定された前記共有メモリ
    内のアドレスに対応するアドレス情報と当該プロセッサ
    のプロセッサ情報とを前記データ更新状況保持手段に格
    納する更新情報格納手段と、 プロセッサによって前記共有メモリにデータの書き込み
    が行なわれる際、指定されたアドレスのアドレス情報と
    対応づけて当該プロセッサのプロセッサ情報が前記デー
    タ更新状況保持手段に予め保持されている場合には同プ
    ロセッサ情報を消去し、他のプロセッサのプロセッサ情
    報が予め保持されている場合にはデータの書き込みを行
    わずに当該プロセッサに書き込みが失敗したことを通知
    する更新制御手段と、 を具備したことを特徴とする共有データ更新方式。
JP13036590A 1990-05-22 1990-05-22 共有データ更新方式 Pending JPH0425961A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13036590A JPH0425961A (ja) 1990-05-22 1990-05-22 共有データ更新方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13036590A JPH0425961A (ja) 1990-05-22 1990-05-22 共有データ更新方式

Publications (1)

Publication Number Publication Date
JPH0425961A true JPH0425961A (ja) 1992-01-29

Family

ID=15032634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13036590A Pending JPH0425961A (ja) 1990-05-22 1990-05-22 共有データ更新方式

Country Status (1)

Country Link
JP (1) JPH0425961A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019075101A (ja) * 2017-10-17 2019-05-16 三星電子株式会社Samsung Electronics Co.,Ltd. インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019075101A (ja) * 2017-10-17 2019-05-16 三星電子株式会社Samsung Electronics Co.,Ltd. インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム
US11556476B2 (en) 2017-10-17 2023-01-17 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory
US11940922B2 (en) 2017-10-17 2024-03-26 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory

Similar Documents

Publication Publication Date Title
JPH04229355A (ja) データアクセス方法及びデータ処理システム
US5201040A (en) Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
JPH03160534A (ja) 共用ファイルのアクセス制御方式
EP0285634B1 (en) Method to execute two instruction sequences in an order determined in advance
JP2000003302A (ja) 共有メモリ排他アクセス制御方法
JPH0425961A (ja) 共有データ更新方式
JP2671160B2 (ja) 例外処理方式
JPH08329019A (ja) セマフォのデータ管理方式
JP2814683B2 (ja) 命令処理装置
JP3341061B2 (ja) プログラマブルコントローラ
JPS6020275A (ja) マルチプロセサの簡易プログラミングシステム
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH0775017B2 (ja) メモリ・アクセス方式
JP2847863B2 (ja) マイクロプロセッサ割込み制御方式
JPS6069759A (ja) デイスクキヤツシユメモリ制御方式
JPS63286959A (ja) メモリアクセス方式
JPH0540689A (ja) バツフアメモリ制御方式
JPS6146545A (ja) 入出力命令制御方法
JPS63155346A (ja) Ramチエツク方式
US20150058505A1 (en) Method for operating a buffer memory of a data processing system and data processing system
JPH02109128A (ja) コンピュータシステム
JPS6267648A (ja) 排他制御命令処理方式
JPH031252A (ja) ページフォルト処理方式
JPH04149650A (ja) 情報処理装置
JPS6343783B2 (ja)