JP2957185B2 - 共有変数アクセス方法 - Google Patents

共有変数アクセス方法

Info

Publication number
JP2957185B2
JP2957185B2 JP63300268A JP30026888A JP2957185B2 JP 2957185 B2 JP2957185 B2 JP 2957185B2 JP 63300268 A JP63300268 A JP 63300268A JP 30026888 A JP30026888 A JP 30026888A JP 2957185 B2 JP2957185 B2 JP 2957185B2
Authority
JP
Japan
Prior art keywords
cache memory
shared variable
synchronization
processor
processors
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 - Lifetime
Application number
JP63300268A
Other languages
English (en)
Other versions
JPH02144757A (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 JP63300268A priority Critical patent/JP2957185B2/ja
Publication of JPH02144757A publication Critical patent/JPH02144757A/ja
Application granted granted Critical
Publication of JP2957185B2 publication Critical patent/JP2957185B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、密結合マルチプロセッサシステムを構成す
る各プロセッサから共通に参照,更新される共有変数の
アクセス方式に関する。
〔従来の技術〕
各プロセッサから共通に参照,更新される共有変数に
対する各プロセッサからのアクセスについては、共有変
数の最新の値が常に参照され、更新前の古い値が参照さ
れることのないようにすることが必要となる。このため
従来は次のようなアクセス方式を採用していた。
(1)各プロセッサがキャッシュメモリを有する密結合
マルチプロセッサシステムにおいては、各プロセッサの
キャッシュメモリ上に主記憶上の共有変数のコピーが存
在し得るため、各プロセッサに自キャッシュメモリの内
容だけでなく他のプロセッサのキャッシュメモリの内容
も更新し得るハードウェア機構を設け、共有変数を更新
するプロセッサは、自キャッシュメモリ上の共有変数の
値を更新すると同時に他のプロセッサのキャッシュメモ
リ上の同一共有変数の値を更新し、そのプロセッサがキ
ャッシュメモリ上において共有変数の最新の値を参照し
得るようにする方式。
(2)共有変数の参照は、キャッシュメモリからではな
く、必ず主記憶から行うことにより共有変数の正しい値
を保証する方式。
〔発明が解決しようとする課題〕
しかしながら、上記の各方式には次のような問題点が
ある。
(1)共有変数の更新時、他のプロセッサのキャッシュ
メモリの内容も更新するようなハードウェア機構を設け
る前者の方式では、プロセッサ数が多くなると、他の全
てのプロセッサのキャッシュメモリを更新するための時
間がかかる上、ハードウェア量が膨大なものとなる。
(2)共有変数の参照をキャッシュメモリからではな
く、必ず主記憶から行う後者の方式では、共有変数の参
照に常に多くの時間がかかってしまう。
そこで本発明の目的は、余分なハードウェアを必要と
せずに共有変数の正しい値を参照することができ、然も
常に主記憶から共有変数を参照する必要のない共有変数
アクセス方式を提供することにある。
〔課題を解決するための手段〕
本発明の共有変数アクセス方式は、上記の目的を達成
するために、主記憶を共有する複数のプロセッサを含
み、各プロセッサがそれぞれキャッシュメモリを有する
密結合マルチプロセッサシステムにおいて、前記各プロ
セッサに、プロセッサ間で共有される主記憶上の共有変
数のコピーが自キャッシュメモリ上にある場合は前記共
有変数の値を自キャッシュメモリから自プロセッサ内の
レジスタ上にロードし、前記共有変数のコピーが自キャ
ッシュメモリ上にない場合は前記共有変数の値を前記主
記憶から自キャッシュメモリおよび自プロセッサ内の前
記レジスタ上にロードするロード手段と、自プロセッサ
内の前記レジスタ上の共有変数の値を自キャッシュメモ
リおよび前記主記憶にストアするストア手段と、プロセ
ッサ間の同期の発行および同期の受け付けを行う同期手
段と、自キャッシュメモリの内容を初期化するキャッシ
ュメモリクリア手段とを設け、単一のユーザプログラム
を前記複数のプロセッサ上で並列実行させる場合であっ
て且つ前記ユーザプログラムにかかる処理で前記ストア
手段と前記ロード手段とがそれぞれ別のプロセッサで実
行される場合に、前記同期手段を使用してその間でプロ
セッサ間の同期の発行および同期の受け付けを行い、同
期を受け付けたプロセッサ側においては前記キャッシュ
メモリクリア手段により自キャッシュメモリを初期化す
るようにしている。
〔作用〕
本発明の共有変数アクセス方式においては、或るプロ
セッサαがストア手段を用いて共有変数の値を更新し、
他のプロセッサβがそれを引用する場合、同期手段によ
ってプロセッサαからプロセッサβへ同期が発行され、
この同期の受け付けを行ったプロセッサβがキャッシュ
メモリクリア手段を用いて自キャッシュメモリをクリア
してから、ロード手段を使用して共有変数の引用を行
う。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に
説明する。
第1図は本発明の共有変数アクセス方式の一実施例の
機能ブロック図であり、主記憶1を2個のプロセッサ2,
3で共有するマルチプロセッサシステムに本発明を適用
した場合を示す。同図において、主記憶1中には、プロ
セッサ2,3間で更新,参照が可能な要素である共有変数1
1がある。また、各プロセッサ2,3には、キャッシュメモ
リ21,31,レジスタ22,32,ロード手段23,33,ストア手段2
4,34,キャッシュメモリクリア手段25,35および同期手段
26,36が含まれている。ここで、ロード手段23,33は、主
記憶1上の共有変数11が自プロセッサ2,3のキャッシュ
メモリ21,31上にある場合はその共有変数11の値を自キ
ャッシュメモリ21,31からレジスタ22,32上にロードし、
自キャッシュメモリ21,31上にない場合はその共有変数1
1の値を主記憶1からレジスタ22,32および自キャッシュ
メモリ21,31にロードする機能を有するものである。ス
トア手段24,34は、自プロセッサ2,3のレジスタ22,32上
の共有変数11の値を自プロセッサ2,3のキャッシュメモ
リ21,31および主記憶1にストアする機能を有するもの
である。同期手段26,36は、プロセッサ2,3間の同期の発
行および同期の受け付けを行う手段である。また、キャ
ッシュメモリクリア手段25,35は、自プロセッサ2,3中の
キャッシュメモリ21,31の内容を初期化する機能を有す
るものであり、自プロセッサ2,3の同期手段26,36で同期
の受け付けが行われた際に動作する。
第2図は単一のユーザプログラムをプロセッサ2,3上
でマルチタスクとして並列実行する場合におけるプロセ
ッサ2で実行されるプログラム部分およびプロセッサ3
で実行されるプログラム部分の一例を示す。この例は、
CLOBAL宣言によって共有変数とされた配列Aに対し、先
ずプロセッサ2がその値を更新し、次にプロセッサ3が
それを引用する場合を示す。
次に、本実施例による共有変数アクセスの手順を第1
図および第2図を参照して説明する。
プログラムの実行において、先ずプロセッサ2が配列
Aの各要素を定数Lに変更する。これはストア手段24が
用いられ、プロセッサ2のレジスタ22から主記憶1およ
びキャッシュメモリ21に値がストアされる。この時点で
プロセッサ3上のキャッシュメモリ31に共有変数Aのコ
ピーがあったとしても、その値は更新されない。このた
め、プロセッサ3のキャッシュメモリ31に共有変数Aの
コピーが既にあった場合、直ちにプロセッサ3がロード
手段33を用いて共有変数Aをロードしてしまうと、不正
な値を引用してしまうことになる。これを防ぎ、プロセ
ッサ2が更新した共有変数Aの値をプロセッサ3が引用
する場合に更新と引用の順序関係を保証するために、ユ
ーザプログラムにおいてプロセッサ2からプロセッサ3
へ同期手段26,36を用いて同期を入れる。すなわち、第
2図のプログラム中のPOSTが同期の発行を、WAITがこの
同期の受け付けを表現しており、共有変数Aの更新を終
えたプロセッサ2側では同期手段26を使用してプロセッ
サ3に同期の発行を行い、プロセッサ3側では共有変数
Aを引用する前に同期手段36を使用してプロセッサ2か
らの共有変数Aにかかる同期の受け付けを行い、この同
期受け付けに応答してキャッシュメモリクリア手段35を
使用してキャッシュメモリ31の初期化を行うものであ
る。こうすることにより、その後プロセッサ3がロード
手段33を使用して共有変数Aをロードしたとき、共有変
数Aのコピーはキャッシュメモリ31上にないため、必ず
主記憶1からロードされる。すなわち更新後の正しい値
がロードされることになる。なお、共有変数Aが複数の
要素を含む場合、プロセッサ2がそれら共有変数の全て
の要素を更新し、その後プロセッサ3がその共有変数の
全ての要素を参照する場合、その間に同期が1回だけで
あると、キャッシュメモリのクリアも1回だけで良い。
また、プロセッサ3が引き続いて共有変数Aの参照を行
う場合、その間に同期の受け付けがなければキャッシュ
メモリ31から参照することができる。即ち、常に主記憶
1から参照しなければならないということはなくなる。
以上の実施例では、POST−WAIT型の同期を示したが、
LOCKによる排他制御を行う場合も、LOCKをかける操作を
同期の受け付け、LOCKを外す操作を同期の発行と置き換
えれば、上記の実施例と全く同様に動作する。
〔発明の効果〕
以上説明したように、本発明の共有変数アクセス方式
においては、或るプロセッサが共有変数の値を更新し、
他のプロセッサがそれを引用する場合、プロセッサ間で
同期の発行,受け付けを行わせ、同期を受け付けたプロ
セッサ側では自キャッシュメモリをクリアしてから共有
変数の引用を行うようにしたことにより、他のプロセッ
サのキャッシュメモリも自キャッシュメモリと同時に更
新するといった余分なハードウェア機構を必要とせず
に、共有変数の正しいアクセスを保証することができ
る。また、同期の受け付けがなければキャッシュメモリ
からの共有変数の参照が可能であり、常に主記憶から参
照する必要はない。なお、共有変数が配列などで数が多
い場合、或るプロセッサが共有変数群を更新し、その後
他のプロセッサがその共有変数群を参照しているとき、
その間に同期が1回だけであると、キャッシュメモリの
クリアも1回だけとなるので効率が良い。
【図面の簡単な説明】
第1図は本発明の共有変数アクセス方式の一実施例の機
能ブロック図および、 第2図はプロセッサ2,3上で実行されるプログラム例を
示す図である。 図において、 1……主記憶 11……共有変数 2,3……プロセッサ 21,31……キャッシュメモリ 22,32……レジスタ 23,33……ロード手段 24,34……ストア手段 25,35……キャッシュメモリクリア手段 26,36……同期手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−147248(JP,A) 特開 昭61−100845(JP,A) 特開 昭63−247852(JP,A) NATO ASI Series E No.96(1985)p.83−101 Ed ward M.McCreight 「THE DRAGON COMPUT ER SYSTEM An Early Overview」 (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 - 15/177 G06F 12/08

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】主記憶を共有する複数のプロセッサを含
    み、 前記各プロセッサに、 キャッシュメモリと、 プロセッサ間で共有される主記憶上の共有変数のコピー
    が自キャッシュメモリ上にある場合は前記共有変数の値
    を自キャッシュメモリから自プロセッサ内のレジスタ上
    にロードし、前記共有変数のコピーが自キャッシュメモ
    リ上にない場合は前記共有変数の値を前記主記憶から自
    キャッシュメモリおよび自プロセッサ内の前記レジスタ
    上にロードするロード手段と、 自プロセッサ内の前記レジスタ上の前記共有変数の値を
    自キャッシュメモリおよび前記主記憶にストアするスト
    ア手段と、 プロセッサ間の同期の発行および同期の受け付けを行う
    同期手段と、 自キャッシュメモリの内容を初期化するキャッシュメモ
    リクリア手段とを有する密結合マルチプロセッサシステ
    ムの共有変数アクセス方法において、 単一のユーザプログラムを前記複数のプロセッサ上で並
    列実行させ且つ前記ユーザプログラムにかかる処理で前
    記ストア手段によるストアと前記ロード手段によるロー
    ドとをそれぞれ別のプロセッサで実行させ、前記同期手
    段を使用して前記ストアとロードの間でプロセッサ間の
    同期の発行および同期の受け付けを行い、同期を受け付
    けたプロセッサ側においては、前記同期受付に応答し
    て、前記キャッシュメモリクリア手段により自キャッシ
    ュメモリを初期化するようにしたことを特徴とする共有
    変数アクセス方法。
JP63300268A 1988-11-28 1988-11-28 共有変数アクセス方法 Expired - Lifetime JP2957185B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63300268A JP2957185B2 (ja) 1988-11-28 1988-11-28 共有変数アクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63300268A JP2957185B2 (ja) 1988-11-28 1988-11-28 共有変数アクセス方法

Publications (2)

Publication Number Publication Date
JPH02144757A JPH02144757A (ja) 1990-06-04
JP2957185B2 true JP2957185B2 (ja) 1999-10-04

Family

ID=17882744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63300268A Expired - Lifetime JP2957185B2 (ja) 1988-11-28 1988-11-28 共有変数アクセス方法

Country Status (1)

Country Link
JP (1) JP2957185B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NATO ASI Series E No.96(1985)p.83−101 Edward M.McCreight 「THE DRAGON COMPUTER SYSTEM An Early Overview」

Also Published As

Publication number Publication date
JPH02144757A (ja) 1990-06-04

Similar Documents

Publication Publication Date Title
US5428783A (en) Lan based loosely coupled large grain parallel processing method
KR860001274B1 (ko) 병렬처리용 데이터 처리 시스템
EP2150900B1 (en) Transactional memory using buffered writes and enforced serialization order
Herlihy A methodology for implementing highly concurrent data structures
US6665783B2 (en) Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
JP3120152B2 (ja) コンピューターシステム
CN101495976B (zh) 用于直接更新软件事务存储器的方法和系统
JPH04229355A (ja) データアクセス方法及びデータ処理システム
EP0121700B1 (en) Multiprocessor storage serialization apparatus
US7543301B2 (en) Shared queues in shared object space
US20100100689A1 (en) Transaction processing in transactional memory
JPH06222936A (ja) 共用変数の値を更新する方法
CN102007474B (zh) 用于使事务同步的可配置事务存储器
CA2171816A1 (en) Methods and apparatus for managing a database in a distributed object operating environment
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US6173375B1 (en) Method for accessing a shared resource in a multiprocessor system
DE68928507T2 (de) Vektordatenverarbeitungsvorrichtung
US6108757A (en) Method for locking a shared resource in multiprocessor system
JP2957185B2 (ja) 共有変数アクセス方法
DE102023101520A1 (de) Effizientes Starten von Aufgaben auf einem Prozessor
US5012410A (en) Data processor with instruction cache memory
US5586320A (en) High speed synchronous processing system for executing parallel processing of programs having loops
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
JPH08329019A (ja) セマフォのデータ管理方式
JPS6052471B2 (ja) ベクトル演算処理システム

Legal Events

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

Free format text: PAYMENT UNTIL: 20070723

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080723

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090723

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090723

Year of fee payment: 10