JP2973227B2 - 排他制御命令実行方法 - Google Patents

排他制御命令実行方法

Info

Publication number
JP2973227B2
JP2973227B2 JP2256134A JP25613490A JP2973227B2 JP 2973227 B2 JP2973227 B2 JP 2973227B2 JP 2256134 A JP2256134 A JP 2256134A JP 25613490 A JP25613490 A JP 25613490A JP 2973227 B2 JP2973227 B2 JP 2973227B2
Authority
JP
Japan
Prior art keywords
exclusive control
microprocessor
address
bus
control instruction
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
JP2256134A
Other languages
English (en)
Other versions
JPH04133160A (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.)
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 JP2256134A priority Critical patent/JP2973227B2/ja
Publication of JPH04133160A publication Critical patent/JPH04133160A/ja
Application granted granted Critical
Publication of JP2973227B2 publication Critical patent/JP2973227B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、待ち合わせ時間が短く、システム性能の高
いマイクロプロセッサの排他制御命令実行方法に関す
る。
〔従来の技術〕
従来、複数のプロセッサをバス結合した密結合マルチ
プロセッサシステムにおいて、各プロセッサが互いに通
信するためには、各プロセッサに共有の主記憶装置を介
して通信事項を書き込み、宛先の相手プロセッサがこれ
を読み出すことにより行っていた。しかしながら、共有
メモリでは、このように複数台のプロセッサからアクセ
スされるデ−タを共有して使用するので、各プロセッサ
が独自に自分の処理のみを実行すると、他のプロセッサ
と相互に関係する処理のデ−タは誤ったものになってし
まう。これを防止するためには、プロセッサが共有メモ
リからデ−タを読み出してから、共有メモリにデ−タを
書き込むまで、他のプロセッサからそのデ−タへのアク
セスを禁止するような共有デ−タの排他制御が必要とな
る。
マルチプロセッサ間の排他制御については、例えば、
文献:村岡洋一著、『コンピュ−タア−キテクチャ』コ
ンピュ−タサイエンス大学講座(1981年)、pp.129〜13
2、に記載されている。これによれば、排他制御方法と
して、メモリ内にある共有デ−タにプロセッサがデ−タ
を使用中であることを示すロックバイトを付加してお
き、プロセッサが共有デ−タにアクセスする場合には、
先ず共有デ−タのロックバイトを読み出し、その値が
‘0'であれば共有デ−タのアクセス権を獲得し、ロック
バイトを‘1'にする。一方、ロックバイトの値が‘1'で
あれば、共有デ−タへのアクセス権を獲得できず、プロ
セッサはロックバイトが‘0'になるまで上記排他制御を
繰り返す。また、プロセッサがロックバイトを読み出し
て、その値が‘0'か否かを判断し、‘0'であったときに
は‘1'に書き換えるわけであるが、‘1'を書く前に他の
プロセッサがロックバイトを読み出してしまうと、どち
らのプロセッサもロックが成立したと思ってしまう。そ
こで、他のプロセッサのメモリアクセスを防止する必要
がある。すなわち、複数のプロセッサが同時にロックバ
イトを読み出して、その値が‘0'のときに、同時に共有
デ−タへのアクセス権を獲得することを防止するため
に、ロックバイトの読み出しからロックバイトの‘1'の
書き込みまで、他のプロセッサから共有メモリに対して
メモリアクセスができないような機構がハ−ドウェア的
に設けられている。これは、排他制御命令により使用さ
れる。
一般にサポ−トされている排他制御命令では、ロック
バイトの最上位ビットの‘0'または‘1'を調べる場合が
多い。この中には、バリエ−ションの違いとして、
(イ)調べるロックバイトのビット位置を可変にできる
ものと、(ロ)ロックバイトが‘0'か‘1'かではなく、
あるビットパタ−ンに一致するか否かにより判断するも
のとがある。しかしながら、どの排他制御命令でも、ロ
ックバイトの読み出しからロックバイトの書き込みま
で、他のプロセッサからのメモリアクセスを防止する機
構が必要となる。
第3図は、従来のマイクロプロセッサの排他制御命令
実行システムのブロック図であり、第4図は、第3図に
おける動作フロ−チャ−トである。
第3図において、1,2はマイクロプロセッサ、3は主
記憶装置、4はアドレスレジスタ、5は書き込みレジス
タ、6は読み出しレジスタ、7は記憶部、8はバス、9
はロック信号線である。
このように、従来、排他制御命令をサポ−トしている
マイクロプロセッサ1,2においては、ロックバイトの読
み出し、ロックバイトの書き込みを行うためのアドレス
およびデ−タを入出力する端子81,82と、ロックバイト
の読み出しからロックバイトの書き込みまでの間、他の
プロセッサからのメモリアクセスを防止する必要がある
ことを示すロック信号を出力する端子91,92を備えてい
た。
第4図に示すように、マイクロプロセッサ1が排他制
御命令を解読し(ステップ101)、オペランドアドレス
(ロックバイトのアドレス)を計算すると(ステップ10
2)、バス8を獲得する(ステップ103)。同時に、マイ
クロプロセッサ1は、オペランドアドレスをバス8に送
信するとともに、ロック信号9をオンにする(ステップ
104)。ロック信号9がオンの間、他のマイクロプロセ
ッサはバス8を獲得できないため、他のプロセッサから
のメモリアクセスは防止される。
メモリ3は、バス8からのアドレスをアドレスレジス
タ4にセットし、このアドレスを信号線10を介して記憶
部7に転送し、記憶部7のそのアドレス領域から読み出
したデ−タを信号線11を介して読み出しレジスタ6にセ
ットする(ステップ105)。さらに、バス8を介してマ
イクロプロセッサ1に送る(ステップ106)。
マイクロプロセッサ1は、オペランドに対して排他制
御演算、つまりオペランドが‘0'または‘1'により共有
デ−タへのアクセス権を得たか否かをチェックして(ス
テップ107)、書き込みデ−タ(ロックバイトに‘1'を
書き込むデ−タ)を作成する(ステップ108)。
次に、マイクロプロセッサ1は、バス8を獲得して
(ステップ109)、オペランドアドレスと書き込みデー
タ(‘1')をバス8に送信するとともに、ロック信号9
をオフにする(ステップ110)。ロック信号をオフにす
ることにより、他のマイクロプロセッサからのメモリア
クセスが可能となる。
メモリ3側では、バス8を介して送られたアドレスを
アドレスレジスタ4、書き込みデ−タを書き込みレジス
タ5にセットし、アドレスを信号線10、書き込みデータ
を信号線11を介して記憶部7に転送し、書き込みを行う
(ステップ111)。
マイクロプロセッサ1は、排他制御演算結果を状態レ
ジスタ(図示省略)にセットすることにより、排他制御
命令の実行を終了する(ステップ112)。そして、次の
命令の実行に移る。
〔発明が解決しようとする課題〕
このように、従来の排他制御命令の実行においては、
ロックバイトの読み出しから書き込みまでバスをロック
することにより、他のマイクロプロセッサからの全ての
メモリアクセスを禁止していたため、共有デ−タへのア
クセス権を複数のマイクロプロセッッサに割り当てるこ
とは防止できた。
しかしながら、ロックバイトの読み出しから書き込み
までバスをロックしてしまうため、その間、他のマイク
ロプロセッサからバスを使用できなくなり、他のマイク
ロプロセッサはバス競合により待ち合わせとなって、プ
ロセッサの性能が低下してしまうという問題があった。
本発明の目的は、このような従来の課題を解決し、他
のマイクロプロセッサがバス競合により待ち合わせとな
る時間を短くして、プロセッサの性能を向上することが
可能な排他制御命令実行方法を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明の排他制御命令実行
方法は、(イ)マイクロプロセッサが排他制御命令を解
読すると、共有メモリ上のオペランドのアドレスおよび
オペランドに対する演算内容を指示する演算指示コ−ド
をマイクロプロセッサのチップ外部に出力し、チップ外
部の任意の場所で演算された結果を入力し、演算結果を
予め決められた規則に従ってマイクロプロセッサの内部
レジスタにセットすることに特徴がある。また、(ロ)
共有メモリは、任意のマイクロプロセッサから出力され
たオペランドのアドレスおよび演算指示コ−ドをバスを
介して受け取り、アドレスで指定されたオペランドを読
み出し、オペランドに対して演算指示コ−ドに従って演
算を実施した後、演算結果をバスを介してマイクロプロ
セッサに送出することにも特徴がある。
〔作用〕
本発明においては、(i)マイクロプロセッサは、排
他制御命令を解読すると、メモリ上のオペランドのアド
レスおよびオペランドに対する演算内容を指示する演算
指示コ−ドをチップ外部(メモリを含む任意の回路)に
出力し、チップ外部で演算された処理結果をマイクロプ
ロセッサに入力し、入力した処理結果を予め決められた
規則に従ってマイクロプロセッサ内部のレジスタに設定
する。すなわち、マイクロプロセッサでは、排他制御演
算をチップ外部で行うので、メモリアクセス回数を2回
から1回に減少することができる。また、(ii)マイク
ロプロセッサに接続されたメモリは、マイクロプロセッ
サから出力されたオペランドのアドレスおよび演算指示
コードを受信すると、そのアドレスで指定されたオペラ
ンドに対して、演算指示コードに従った演算を実施し、
演算結果をマイクロプロセッサに入力する。すなわち、
共有メモリでは、マイクロプロセッサからの1回のアク
セスにより、オペランドの読み出しと、排他制御演算
と、書き込みデータ作成とを連続実行するので、バスの
使用時間を短縮することができ、他のマイクロプロセッ
サの待ち合わせ時間を短縮することができる。
これにより、マイクロプロセッサとメモリ間の通信回
数を減少させることができ、他のマイクロプロセッサか
らバスを使用できない時間、つまり競合で待ち合わせに
なる時間を短縮することができるので、システムの性能
は向上する。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明す
る。
第1図は、本発明の一実施例を示す排他制御命令実行
システムのブロック図であり、第2図は、第1図におけ
る排他制御の動作フロ−チャ−トである。
第1図において、1,2はマイクロプロセッサ、3はメ
モリ、4はアドレスレジスタ、5は書き込みレジスタ、
6は読み出しレジスタ、7は記憶部、8は演算指示コ−
ドレジスタ、9は演算結果レジスタ、10は排他制御回
路、11はバス、12は演算指示コ−ドを送る信号線であ
る。
このように、本発明においては、メモリ3に、新たに
演算指示コ−ドレジスタ8、演算結果レジスタ9、排他
制御回路10の3つの回路を追加するとともに、ロック信
号線を除去し、その代りに演算指示コード送信線12を設
けている。
一般に、マイクロプロセッサが実行する命令は、 (a)演算するオペランドの所在(内部レジスタ番号、
メモリのアドレスによりその所在を明示する) (b)演算内容 (c)演算した結果の格納先および演算した結果の状態
の格納先(ここで、結果の状態とは、演算結果が零か正
負か等であり、一般にコンディションコ−ドと呼ばれ
る) が決められている。排他制御命令でも同じである。
本発明においても、メモリで演算した結果を、予め決
められた規則(つまり、上記(c)の規則)に従って、
マイクロプロセッサの内部レジスタにセットするように
している。
なお、メモリ内の排他制御回路10、演算指示コ−ドレ
ジスタ8等は、マイクロプロセッサ内に従来より存在し
ている回路と同じ構成であって、簡単に実現することが
できる。
第2図に示すように、マイクロプロセッサ1が排他制
御命令を解読し(ステップ201)、オペランドアドレス
(ロックバイトのアドレス)の計算を行って、演算指示
コ−ドを作成し(ステップ202)、バス11を獲得する
(ステップ203)。そして、オペランドアドレスをバス1
1を介して、また演算指示コ−ドを信号線12を介して、
それぞれメモリ3に送信する(ステップ204)。
メモリ3では、バス11からのアドレスをアドレスレジ
スタ4に、また信号線12からの演算指示コ−ドを演算指
示コ−ドレジスタ8に、それぞれセットする。次に、そ
のアドレスを信号線13を介して記憶部7に転送すること
により、記憶部7からデ−タを読み出し、読み出したデ
−タを信号線14に介して読み出しレジスタ6にセットす
る(ステップ205)。演算指示コ−ドレジスタ8の内容
が信号線18を介して、また読み出しレジスタ6の内容が
信号線15を介して、それぞれ排他制御回路10に与えら
る。排他制御回路10での演算結果が演算結果レジスタ9
に(ステップ206)、また書き込みデータが書き込みレ
ジスタ5に(ステップ207)、それぞれセットされる。
書き込みレジスタ5の内容は信号線14を介して記憶部7
に与えられ、記憶部7に書き込まれる。また、演算結果
レジスタ9の内容は、バス11を介して出力される(ステ
ップ208)。
マイクロプロセッサ1は、演算結果をバス11から入力
し、状態レジスタにセットすることにより排他制御命令
の実行を終了する(ステップ209)。
このように、本実施例においては、排他制御演算をメ
モリ側で実行するため、マイクロプロセッサからのメモ
リアクセスは1回で済む。また、従来の排他制御命令で
は、メモリアクセスが読み出しと書き込みに分かれて2
回で行われていたので、読み出しと書き込みの間、バス
をロックする必要があった。しかし、本発明では、メモ
リアクセスが1回で済むので、バスのロックは不要であ
る。
〔発明の効果〕
以上説明したように、本発明によれば、排他制御命令
の実行における排他制御演算の部分をメモリ側で行うこ
とができるので、マイクロプロセッサのメモリアクセス
回数を2回から1回に減少させることができ、その結
果、他のマイクロプロセッサがバス競合により待ち合わ
せとなる時間が短縮され、プロセッサの性能は向上す
る。
【図面の簡単な説明】
第1図は本発明の一実施例を示す排他制御命令実行シス
テムのブロック図、第2図は第1図における排他制御動
作のフロ−チャ−ト、第3図は従来の排他制御命令の実
行システムのブロック図、第4図は第3図における動作
フロ−チャ−トである。 1,2:マイクロプロセッサ、3:メモリ、4:アドレスレジス
タ、5:書き込みレジスタ、6:読み出しレジスタ、7:記憶
部、8:演算指示コ−ドレジスタ、9:演算結果レジスタ、
10:排他制御回路、11:バス、12:演算指示コ−ド信号
線、13,14,15,16,17,18:信号線。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のマイクロプロセッサおよび該マイク
    ロプロセッサに共有のメモリをバス結合し、排他制御命
    令を実行するマルチプロセッサシステムにおいて、マイ
    クロプロセッサは排他制御命令を解読すると、上記共有
    メモリ上のオペランドのアドレスおよび該オペランドに
    対する演算内容を指示する演算指示コ−ドを該マイクロ
    プロセッサのチップ外部に出力し、該チップ外部の任意
    の場所で演算された結果を入力し、該演算結果を予め決
    められた規則に従って該マイクロプロセッサの内部レジ
    スタにセットすることを特徴とする排他制御命令実行方
    法。
  2. 【請求項2】請求項1に記載の排他制御命令実行方法に
    おいて、上記共有メモリは、任意のマイクロプロセッサ
    から出力されたオペランドのアドレスおよび演算指示コ
    −ドをバスを介して受け取り、上記アドレスで指定され
    たオペランドを読み出し、該オペランドに対して上記演
    算指示コ−ドに従って演算を実施した後、演算結果を上
    記バスを介して上記マイクロプロセッサに送出すること
    を特徴とする排他制御命令実行方法。
JP2256134A 1990-09-26 1990-09-26 排他制御命令実行方法 Expired - Fee Related JP2973227B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2256134A JP2973227B2 (ja) 1990-09-26 1990-09-26 排他制御命令実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2256134A JP2973227B2 (ja) 1990-09-26 1990-09-26 排他制御命令実行方法

Publications (2)

Publication Number Publication Date
JPH04133160A JPH04133160A (ja) 1992-05-07
JP2973227B2 true JP2973227B2 (ja) 1999-11-08

Family

ID=17288377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2256134A Expired - Fee Related JP2973227B2 (ja) 1990-09-26 1990-09-26 排他制御命令実行方法

Country Status (1)

Country Link
JP (1) JP2973227B2 (ja)

Also Published As

Publication number Publication date
JPH04133160A (ja) 1992-05-07

Similar Documents

Publication Publication Date Title
KR100286962B1 (ko) 캐쉬 제어기
US5781763A (en) Independent control of DMA and I/O resources for mixed-endian computing systems
JPH10134008A (ja) 半導体装置およびコンピュータシステム
JPS59180767A (ja) 直列化装置
JPH04306748A (ja) 情報処理装置
JP2581323B2 (ja) 参照ビット,変更ビットの更新方法
JPH0512126A (ja) 仮想計算機のアドレス変換装置及びアドレス変換方法
US6970963B2 (en) Apparatus and method for synchronizing multiple accesses to common resources
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
JP2973227B2 (ja) 排他制御命令実行方法
US7240144B2 (en) Arbitration of data transfer requests
JPH01305460A (ja) プロセッサ間通信方式
US5507031A (en) Data processing system having scanner for searching memory for message having top priority and/or identity code identical with new message
JPH0227696B2 (ja) Johoshorisochi
JPH03238539A (ja) メモリアクセス制御装置
JP2587468B2 (ja) ロツクデータ設定装置
JP3219422B2 (ja) キャッシュメモリ制御方式
JP3211694B2 (ja) マルチプロセッサ接続方式
JP2000003328A (ja) 入出力制御装置のアドレス参照システム
JPS5975354A (ja) プロセッサ装置
JPS62151970A (ja) ロツクバイトアクセス方式
JPH0784963A (ja) Cpuを有する半導体集積回路
JP2000194554A (ja) 演算処理装置
JPS60243763A (ja) デユアルポ−トメモリ制御回路
JPS63172354A (ja) 記憶制御方式

Legal Events

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