JP2652976B2 - 共有メモリの排他制御方式 - Google Patents

共有メモリの排他制御方式

Info

Publication number
JP2652976B2
JP2652976B2 JP2203435A JP20343590A JP2652976B2 JP 2652976 B2 JP2652976 B2 JP 2652976B2 JP 2203435 A JP2203435 A JP 2203435A JP 20343590 A JP20343590 A JP 20343590A JP 2652976 B2 JP2652976 B2 JP 2652976B2
Authority
JP
Japan
Prior art keywords
shared memory
access
exclusive control
space
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
JP2203435A
Other languages
English (en)
Other versions
JPH0486943A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2203435A priority Critical patent/JP2652976B2/ja
Publication of JPH0486943A publication Critical patent/JPH0486943A/ja
Application granted granted Critical
Publication of JP2652976B2 publication Critical patent/JP2652976B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、共有メモリを介して通信する複数のプロセ
ッサが同時に動作するマルチプロセッサ装置における共
有メモリの排他制御方式に関する。
(従来の技術) 従来、共有メモリを介して通信する複数のプロセッサ
が同時に動作するマルチプロセッサ装置における共有メ
モリの排他制御を実現する機構は2つに大別される。こ
れを以下に示す。
1.Test and Set,Read Modify Write,Fetch and Add,Com
pare and Swapなど、読み込み、値操作、再書き込みを
メモリに対する不可分な動作として実現する機械命令を
設ける。
2.排他制御のための制御をもったハードウェアメモリを
設け、そのメモリへの通常命令によるアクセスにより排
他制御を実現する。例えば、Atomic Lock Memoryでは、
特定のメモリアドレスに対して読み出しアクセス(read
アクセス)をした場合、そのメモリ内容をCPUに渡すと
同時にメモリ内部でハードウェア的にそのアドレスの内
容を1(lock状態)にする。ロック(lock)状態のメモ
リへのreadアクセスは、そのアドレスの内容が0(アン
ロック:unlock)になるまで待たされる。書き込みアク
セス(writeアクセス)によりアドレスの内容を0にリ
セットされる。これにより、排他制御を実現するもので
ある。これは、Test and Setのハードウェアによる実装
に相当する。
(発明が解決しようとする課題) 近年、RISCプロセッサが普及したが、RISCプロセッサ
ではパイプラインの乱れを最小限にするために1命令に
1メモリアクセスか1演算を基本とし、従来の技術の欄
の1に挙げた様に2メモリアクセスを不可分に実行する
ものはRISCの枠外になり実現しにくい。
一方、Atomic Lock Memoryでは、メモリアドレス分の
排他制御資源を実現することができるが、ハードウェア
が複雑になる。
プロセッサ数が少なく排他資源の競合の割合が少ない
ときには、排他制御資源は1つでよく、より実現の容易
なハードウェア方式が望まれる。
また、従来の共有メモリの排他制御方式では、操作し
たい記憶域以外にロックのための記憶域を用意し、プロ
グラムには該記憶域に対するロック操作とアンロック操
作命令が追加されることになる。メモリアクセス時間に
対し計算速度が極めて速いRISCプロセッサでは、このよ
うにメモリアクセス操作が増えることは望ましくない。
そこで本発明の目的は、簡易なハードウェアを用い、
かつ、排他制御のためのメモリアクセスの増加がない共
有メモリの排他制御方式を提供することにある。
(課題を解決するための手段) 本発明に係る共有メモリの排他制御方式は、共有メモ
リを介して通信する複数のプロセッサが同時に動作する
マルチプロセッサ装置において、あるプロセッサがある
時間の間前記共有メモリを専有して他のプロセッサの前
記共有メモリへのアクセスを禁止する共有メモリの排他
制御方式であって、 前記共有メモリのアドレス空間には、通常アクセス空
間、第1の排他制御アクセス空間及び第2の排他制御ア
クセス空間とが三重に割当ててあり、 前記複数のプロセッサの前記共有メモリへのアクセス
には、前記通常アクセス空間を介する通常アクセス、前
記第1の排他制御アクセス空間を介する第1の排他制御
アクセス及び前記第2の排他制御アクセス空間を介する
第2の排他制御アクセスとがあり、 前記複数のプロセッサは、前記第1の排他制御アクセ
スにより前記共有メモリにアクセスした場合には、前記
共有メモリを専有し、前記第2の排他制御アクセスによ
り前記共有メモリにアクセスした場合には、前記共有メ
モリの専用を解除することを特徴とする。
(作用) 本発明においては、排他制御を始めたいときの共有メ
モリ上のデータに対する操作を第1の排他制御アクセス
として排他制御アクセス空間を介して行ない、排他制御
終了時のデータ操作を排他制御アクセス空間を介した第
2の排他制御アクセスとして行なうことにより、排他制
御を伴わないアクセスの場合に対し、メモリアクセス回
数を増加することなく排他制御を実現することが可能で
ある。
本発明は、共有メモリ機構に不可欠な調停回路に若干
の改良を加えることで実現でき、装置規模が小さくて済
む。
(実施例) 本発明の共有メモリの排他制御方式について、第1
図、第2図を参照して説明する。第1図は、本発明の一
実施例のメモリマップを示した図である。
プロセッサ16は、共有メモリ11に対し、排他制御アク
セス空間12および通常アクセス空間13の2つの空間のど
ちらからでも書き込みおよび読みだしの操作をすること
ができる。排他制御アクセス空間12を介したアクセスが
排他アクセス14でり、通常アクセス空間13を介したアク
セスが通常アクセス15である。
1.排他制御アクセス空間12を経由した読みだし操作は、
共有メモリ11のロック(lock)として動作し、このlock
操作以降、共有メモリ11のアンロック(unlock)操作が
あるまで、その読みだし操作をしたプロセッサ以外の共
有メモリ11に対するアクセス(14,15)を一切禁止す
る。
2.排他制御アクセス空間12を経由した書き込み操作は、
共有メモリ11のunlockとして動作し、このunlock操作以
降、任意のプロセッサの共有メモリ11に対するアクセス
(14,15)を可能とする。
3.通常アクセス15は、排他アクセス14におけるlock操
作、unlock操作で定まるアクセス権の状態に関しては一
切影響を与えない。
以上の3つが本実施例を実現する制御法であり、全て
共有メモリへのアクセスが許されたプロセッサのみが行
なうことが許される。
第1図に示す様にプロセッサ数が2である本実施例の
構成を第2図に示す。11は共有メモリであり、16はプロ
セッサであり、23はアドレスデコーダであり、24は調停
回路であり、25はバッファである。共有メモリ11へのア
クセスが第1図における排他制御アクセス空間12へのも
のである場合、アドレスデコーダN(N=0or1)は信号
selNxをアサートし、通常アクセス空間13へのものであ
る場合、信号selNnをアサートする。
調停回路24は、共有メモリ11へのアクセスを調停し、
調停の結果に応じてバッファ0またはバッファ1を開け
る信号をアサートする。調停回路24には、プロセッサ0
またはプロセッサ1からの共有メモリ11へのアクセスが
readアクセスであるか、writeアクセスであるかを判定
するために、各プロセッサから信号rd0,rd1が入力され
る。
さらに、プロセッサ0またはプロセッサ1は、共有メ
モリ11をアクセスした場合、それぞれen0,en1信号をサ
ンプリングし、該信号がアサートされていない場合は、
共有メモリアクセス権が得られなかったものとみなし、
該信号がアサートされるまでアイドリングする。
第3図に調停回路24の状態遷移図を示す。第3図はmo
or型の遷移図であり、鍵括弧内が状態名である。アトー
トを1としたときの信号en0,en1の状態を円内に示す。
各状態遷移において、条件が成立していないこと(ネゲ
ートされている状態)を上線、orを‘+’、andを
‘・’を用いて示す。またrd0,rd1信号は、readアクセ
ス時にアサートされ、writeアクセスの時にネゲートさ
れるものとする。
調停回路24は、以下の各状態を遷移する。
1.どのプロセッサも共有メモリ11をアクセスしていない
状態[idle] 2.プロセッサNが共有メモリ11をアクセスしているが、
アクセスが終了しだい[idle]に戻る状態。[AccN] 3.プロセッサNが共有メモリ11を排他的にアクセスして
おり、アクセスが終了してもunlook操作を行なわない限
り共有メモリ11を占有しつづける状態。[exN]。
本実施例における排他制御動作と調停回路24の状態を
以下に示す。
1.プロセッサNが第1図における排他制御アクセス空間
12にwriteアクセスすることで、調停回路24の状態がexN
に遷移し、当該プロセッサN以外のプロセッサによる一
切の共有メモリ11へのアクセス(第1図の14,15)を禁
止する。
2.その後、第1図における通常アクセス15では、調停回
路24はexNのlock状態のまま遷移しない。
3.さらに、そのプロセッサNが第1図における排他制御
アクセス空間12にreadアクセスした時点でAccNに状態が
遷移し、該readアクセスが終了次第idle状態へ遷移して
再び当該プロセッサN以外の共有メモリ11へのアクセス
が可能になる。
本実施例は、通常の共有メモリ装置に対し、第2図の
アドレスデコーダ23から、selNxの信号を余計にとりだ
すだけでよく、また、調停回路24へは、第3図の状態遷
移図において、プロセッサ(プロセッサNとする)1台
につきenNの状態1つを追加するだけでよく、装置規模
が小さくて済む。
次に、本実施例のプログラミングについて述べる。
ある変数Aの値を読みだすとともに、変数Aの値は1
にしておく操作を不可分に実行する命令をtest and set
と呼ぶ。これは、本実施例を用いて以下の様に実装でき
る。
1.第1図の排他制御アクセス空間12を介してある変数A
の値を読む。同時に共有メモリ11にはlockがかかる。
2.第1図の排他制御アクセス空間12を介して変数Aに1
を書き込み共有メモリ11のlockを解除する。
OSで頻繁に用いられる排他処理にリンクドリストの操
作がある。第4図にセルi42とセルj43の間にセルk41を
挿入する操作を行なう前の状態を示す。44は順方向(後
方)のセルを指すポインタ、45は逆方向のセルを指すポ
インタである。操作後には、第5図の状態になる。
本操作のプログラミング例を第6図に示す。第6図に
おいてregはCPU内のレジスタを、(Fj)は変数Fjに格納
された値を、reg←(Fj)は変数Fjに格納された値をレ
ジスタに転送することを示す。
(発明の効果) 本発明は、共有メモリ機構に不可欠な調停回路に若干
の改良を加えることで実現でき、小さなハードウェア量
で実現できる。
また、実施例で挙げた2つのプログラミング例をはじ
めとして、Compare and Swap,Fetch and Addなど通常の
排他操作は、readアクセスから始まり、writeアクセス
で終了する。従って、本発明では、最初の転送操作と最
後の転送操作に共有メモリのlock,unlock操作を兼ねさ
せることで、排他制御を行なわずに本操作を実装した場
合と同一の命令数で排他処理を記述することができる。
さらに、RISCプロセッサの命令がCISCのマイクロ命令
に相当することを考慮すると、本発明ではCISCの任意の
高機能命令をCISCと同等のオーバーヘッドで、RISCプロ
セッサ上にソフトウェア的に実装することができる。
【図面の簡単な説明】
第1図は本発明の一実施例のメモリマップを示す図、第
2図は本実施例の構成を示す図、第3図は調停回路24の
状態遷移を示す図、第4図は本実施例による2重リンク
ドリストの操作前の状態を示す図、第5図は本実施例に
よる2重リンクドリストの操作後の状態を示す図、第6
図はリンクドリスト操作のプログラミング例を示す図で
ある。 11……共有メモリ、12……排他制御アクセス空間、13…
…通常アクセス空間、14……排他アクセス、15……通常
アクセス、16……プロセッサ、23……アドレスデコー
ダ、24……調停回路、25……バッファ、41……セルk、
42……セルi、43……セルj、44……順方向ポインタ、
45……逆方向ポインタ。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】共有メモリを介して通信する複数のプロセ
    ッサが同時に動作するマルチプロセッサ装置において、
    あるプロセッサがある時間の間前記共有メモリを専有し
    て他のプロセッサの前記共有メモリへのアクセスを禁止
    する共有メモリの排他制御方式であって、 前記共有メモリのアドレス空間には、通常アクセス空
    間、第1の排他制御アクセス空間及び第2の排他制御ア
    クセス空間とが三重に割当ててあり、 前記複数のプロセッサの前記共有メモリへのアクセスに
    は、前記通常アクセス空間を介する通常アクセス、前記
    第1の排他制御アクセス空間を介する第1の排他制御ア
    クセス及び前記第2の排他制御アクセス空間を介する第
    2の排他制御アクセスとがあり、 前記複数のプロセッサは、前記第1の排他制御アクセス
    により前記共有メモリにアクセスした場合には、前記共
    有メモリを専有し、前記第2の排他制御アクセスにより
    前記共有メモリにアクセスした場合には、前記共有メモ
    リの専用を解除することを特徴とする共有メモリの排他
    制御方式。
  2. 【請求項2】前記第1の排他制御アクセスは読み出しア
    クセスであり、前記第2の排他制御アクセスは書き込み
    アクセスであることを特徴とする請求項1に記載の共有
    メモリの排他制御方式。
JP2203435A 1990-07-31 1990-07-31 共有メモリの排他制御方式 Expired - Fee Related JP2652976B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2203435A JP2652976B2 (ja) 1990-07-31 1990-07-31 共有メモリの排他制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2203435A JP2652976B2 (ja) 1990-07-31 1990-07-31 共有メモリの排他制御方式

Publications (2)

Publication Number Publication Date
JPH0486943A JPH0486943A (ja) 1992-03-19
JP2652976B2 true JP2652976B2 (ja) 1997-09-10

Family

ID=16474050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2203435A Expired - Fee Related JP2652976B2 (ja) 1990-07-31 1990-07-31 共有メモリの排他制御方式

Country Status (1)

Country Link
JP (1) JP2652976B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05313987A (ja) * 1992-05-06 1993-11-26 Nec Corp マルチcpuシステム
JPH07129519A (ja) * 1993-11-04 1995-05-19 Sharp Corp デュアルcpuシステム
JP4983632B2 (ja) * 2008-02-06 2012-07-25 日本電気株式会社 情報通信システム、そのアクセス調停方法及びその制御プログラム
JP6929074B2 (ja) * 2017-01-31 2021-09-01 キヤノン株式会社 情報処理装置とその制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60263254A (ja) * 1984-06-11 1985-12-26 Fuji Xerox Co Ltd マルチcpuの調停装置
JPH02105250A (ja) * 1988-10-13 1990-04-17 Fujitsu Ltd データ転送方式

Also Published As

Publication number Publication date
JPH0486943A (ja) 1992-03-19

Similar Documents

Publication Publication Date Title
EP1008053B1 (en) Controlling memory access ordering in a multi-processing system
KR101968711B1 (ko) 저장된 원자적 절차를 사용하는 프로그램 가능한 원자적 메모리
US7047322B1 (en) System and method for performing conflict resolution and flow control in a multiprocessor system
US5889983A (en) Compare and exchange operation in a processing system
US7249270B2 (en) Method and apparatus for placing at least one processor into a power saving mode when another processor has access to a shared resource and exiting the power saving mode upon notification that the shared resource is no longer required by the other processor
US6792497B1 (en) System and method for hardware assisted spinlock
EP0535820B1 (en) Method and apparatus for a register providing atomic access to set and clear individual bits of shared registers without software interlock
EP2641171B1 (en) Preventing unintended loss of transactional data in hardware transactional memory systems
JPS59180767A (ja) 直列化装置
US5317749A (en) Method and apparatus for controlling access by a plurality of processors to a shared resource
JPH03196249A (ja) 多重プロセッサシステム
US5353416A (en) CPU lock logic for corrected operation with a posted write array
US20080183979A1 (en) Read-write spinlock with no mutual exclusion among readers
JPH05210640A (ja) マルチプロセッサシステム
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
US6970963B2 (en) Apparatus and method for synchronizing multiple accesses to common resources
WO1996027833A1 (fr) Unite de traitement informatique
US20060048162A1 (en) Method for implementing a multiprocessor message queue without use of mutex gate objects
US20030200457A1 (en) Enhancement to the MCS lock for increased functionality and improved programmability
JP2652976B2 (ja) 共有メモリの排他制御方式
JPH0348962A (ja) バスロック制御方式
US20040064645A1 (en) Balanced access to prevent gateword dominance in a multiprocessor write-into-cache environment
JP3209521B2 (ja) メモリアクセス制御方法及び計算機システム
JP3204157B2 (ja) 計算機のデータ供給方式
JPH0528038A (ja) キヤツシユメモリ制御方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090523

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100523

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees