JP2001075826A - 並列計算機における高効率セマフォ処理方式 - Google Patents

並列計算機における高効率セマフォ処理方式

Info

Publication number
JP2001075826A
JP2001075826A JP25531499A JP25531499A JP2001075826A JP 2001075826 A JP2001075826 A JP 2001075826A JP 25531499 A JP25531499 A JP 25531499A JP 25531499 A JP25531499 A JP 25531499A JP 2001075826 A JP2001075826 A JP 2001075826A
Authority
JP
Japan
Prior art keywords
memory
transaction
read
semaphore
data
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
JP25531499A
Other languages
English (en)
Inventor
Shuji Kikuchi
修司 菊地
Satoshi Muraoka
諭 村岡
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP25531499A priority Critical patent/JP2001075826A/ja
Publication of JP2001075826A publication Critical patent/JP2001075826A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】アドレス空間を共有した複数のプロセッサ間
で、特定のアドレス領域に対する読み出しに関して、特
定のデータが読み出された場合、そのメモリの該アドレ
スの内容を特定の規則に従い、自動的に書きかえるよう
にしたメモリを備え、該メモリをセマファ領域として活
用することで、バスを1つのプロセッサで占有すること
なく、クリティカルな領域へのアクセスを可能にするこ
とができ、並列計算機における競合調停のためのセマフ
ォアクセスに伴うオーバヘッドをなくすることができ
る。 【解決手段】アドレス空間を共有した複数のプロセッサ
間で、特定のアドレス領域に対する読み出しに関して、
特定のデータが読み出された場合、そのメモリの該アド
レスの内容を特定の規則に従い、自動的に書きかえるよ
うにしたメモリを備え、該メモリをセマファ領域として
活用することで、1回のメモリトランザクションにより
セマフォに対するリード・モディファイ・ライトを実行
できるように構成した、並列計算機における高効率セマ
フォ処理方式。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列計算機に関
し、特に複数のCPU間でリソースの占有競合を調停す
るセマフォの効率的な処理方式に関するものである。
【0002】
【従来の技術】本発明の従来の技術を以下に図を用いて
説明する。
【0003】図1は一般的な並列計算機の構成を示して
いる。図1では4つのプロセッサがバスを共有して1つ
のノードを構成し、さらに2つのノードがバスアダプタ
により接続されている例である。各プロセッサは、バス
上にメモリアクセストランザクションを送出することに
より、自ノードおよび他ノードのメモリデータをアクセ
スすることができる。ここで、特に、他ノード上のメモ
リにアクセスする場合、バスアダプタを介してトランザ
クションを他ノードまで転送するため、例えばメモリリ
ードデータが返ってくるまでのレイテンシは大きなもの
となる。
【0004】従来のバスのように、リードデータが返る
までバスを1つのトランザクションに占有させると効率
が落ちる為、図2に示すように、トランザクションを送
出するアドレスバスとデータバスを独立して動作させる
のが一般的である。図2のようにアドレスバスとデータ
バスを独立して動作させれば、リードトランザクション
を送出した後、リードデータが返ってくるまでの間、バ
スを占有することなく、別のトランザクションを送出す
ることができ、バスの使用効率が向上する。
【0005】
【発明が解決しようとする課題】上記した例で問題とな
るのは、複数のプロセッサ間で一つの資源(リソース)
の使用をめぐる競合が発生した場合である。以下、図を
用いてこの問題を説明する。
【0006】図3は、複数のプロセッサあるいはタスク
間でのリソース競合を調停するためのセマフォを示した
ものである。各プロセッサあるいはタスクは、リソース
使用開始にあたり、各リソース毎に対応したフラグ(メ
モリ空間の中のOSが管理する特定の領域)の状態を確
認する。もし、フラグが0であれば、誰もそのリソース
を使用していないことになり、フラグに1を書き込んで
リソース使用開始し、使用終了後にフラグに0を書き戻
す。これにより、複数のプロセッサあるいはタスク間で
の競合を矛盾無く調停することが可能となる。
【0007】しかし、先に図2で説明したバス動作とセ
マフォを組み合わせた時に問題が発生する。図4を用い
てこの問題を説明する。図4は、プロセッサ1とプロセ
ッサ2が同じリソースを巡って競合調停している場合を
示している。まず、プロセッサ1がトランザクション1
0によりセマフォフラグをリードする。データバス上に
セマフォフラグの値が返される間、プロセッサ2も同じ
フラグに対するリードトランザクション(トランザクシ
ョン11)を発行する。プロセッサ1は、読み出された
フラグが0であるため、フラグに1をライトするように
ライトトランザクション(トランザクション12)を発
行する。この時、プロセッサ2の発行したリードトラン
ザクション11に対応したデータがデータバスからプロ
セッサ2に返される。この時、プロセッサ2に返される
のは、まだプロセッサ1のライトが完了していないた
め、フラグの値0が返される。プロセッサ1はフラグへ
の「1」ライトを行い、リソース使用を開始する。一
方、プロセッサ2もフラグの値0が返されたため、トラ
ンザクション13でフラグへの「1」ライトを行い、リ
ソースの使用開始する。すなはち、アドレスバスとデー
タバスが独立動作する場合、競合調停で矛盾が発生して
しまう問題がある。
【0008】従来、このような問題の発生を防ぐため、
セマフォなどのクリティカルの領域へのアクセス時は、
バスを他のタスクあるいはプロセッサに使わせない、排
他的にバスを占有した状態でのアクセスを行うように制
御している。図5に示すようにプロセッサ1がフラグの
リードを開始(トランザクション10)し、フラグの状
態を判定し、フラグへの書き戻し(トランザクション1
1)が完了するまで(データバスでのライトデータ転送
まで)は、他のプロセッサによるバス使用を禁止して、
占有状態にする。これにより、従来はセマフォによる競
合調停の矛盾発生を防止していた。しかし、図6に示す
ように、バスアダプタを何段も用いて大規模な並列計算
機を構成した場合、最遠端のバス上にあるメモリ内にセ
マフォ領域が存在する場合、1つのプロセッサで全ての
バスを排他的に占有させることのオーバヘッド時間が大
きくなり、バス効率の低下につながってしまうという問
題がある。
【0009】
【課題を解決するための手段】上記問題は、バスを1つ
のプロセッサで占有することなく、クリティカルな領域
へのアクセスを可能にすることで、オーバヘッドをなく
することが可能である。これを実現するため、本発明で
は、1つのトランザクションだけで、セマフォフラグに
対するリード・モディファイ・ライトをできるようにす
る。このようにすることで、リード・モディファイ・ラ
イトが1つのトランザクションで行えることから、モデ
ィファイライト完了前に、他のプロセッサがそのフラグ
を読み出して矛盾を発生させることがない。
【0010】
【発明の実施の形態】以下、本発明にかかる実施例を図
を用いて説明する。
【0011】図7は、従来のリード・モディファイ・ラ
イトによるセマフォアクセスを示している。プロセッサ
1がトランザクション10によりセマフォのリードを開
始し、0データをリードすることにより誰もセマフォを
使用中でないことを確認した後、トランザクション11
のライト要求によりセマフォに1データをライトして使
用中状態にするまでの間、バスを占有するために、他の
プロセッサがバスを使用することができない。
【0012】これに対し、図8は、本発明によるセマフ
ォアクセスを示している。図8では、本発明に従い、一
つのトランザクションを発行するたけで、リード・モデ
ィファイ・ライトが実行できるため、セマフォ確認のた
めに長い時間一つのプロセッサがバスを占有する必要は
ない。ここでは、プロセッサ1とプロセッサ2が、同一
の資源使用を巡り、競合している場合を示している。ま
ず、プロセッサ1が、RDMW1トランザクションを発行す
る。これは、本発明の本質であり、1回のメモリ操作で
リード・モディファイ・ライトを実行できるトランザク
ションである。このトランザクションを受け取ったメモ
リシステムは、該当するメモリアドレスを読み出してそ
のデータをデータバス上に返す。この時、本発明では、
読み出されたメモリの値が特定の値(例えば、ここでは
値”0”)であった場合、その値をデータバス上に返す
と共に、そのメモリの値を自動的に別の特定の値(例え
ば、ここでは値”1”)に更新する。これが、本発明の
ポイントであり、メモリから読み出した値をデータバス
上に返しながら、そのメモリの値が特定の値だった場合
に、それを自動的にメモリシステムが更新することによ
り、従来は2回のメモリアクセスを必要としたリード・
モディファイ・ライト動作を、たった一回のメモリアク
セスで実現することができる。図8では、プロセッサ1
がトランザクション10(RDMW1)を発行した直後に、プ
ロセッサ2が同じセマフォを求めて、トランザクション
11(RDMW1)を発行している。このトランザクション1
1がメモリシステムに到着した時には、すでにメモリシ
ステムでは先のトランザクション10(RDMW1)により、
セマフォの値が更新されているため、矛盾は発生しな
い。したがって、本発明では、図7のように一つのプロ
セッサがセマフォをアクセスしている間、バスを長時間
に渡って占有する必要がないため、バスの使用効率を落
とすことがない。
【0013】図9は、通常のメモリ動作を示す。メモリ
の、あるアドレスにおける値が”0”の時、”0”デー
タのリードあるいは”0”ライトを行っても、値は変化
なく、”1”ライトを行った時のみ、値が”1”に更新
される。同様に、値が”1”の時、”1”データのリー
ドあるいは”1”ライトを行っても値の変化はなく、”
0”ライトした時のみ、値が”0”に更新される。
【0014】以上は、通常のメモリ動作であるが、本発
明でセマフォ用に設けるメモリの動作は、図10に示す
如きの動作を行う。メモリのあるアドレスにおける値
が”0”の時、”0”データの”0”ライトを行っても
値は変化なく、”1”ライトあるいは”0”リードを行
った時に値が”1”に更新される。一方、値が”1”の
時、”1”データのリードあるいは”1”ライトを行っ
ても値の変化はなく、”0”ライトした時のみ、値が”
0”に更新される。すなわち図9に示した通常のメモリ
動作では、データのリードを行うことによってメモリの
値が変わることはないのに対して、図10の動作は一つ
のビットだけに着目した動作であるが、実際のメモリは
個々の計算機に特有のワード幅を有しており、本動作を
複数ビット幅に拡張すれば、メモリが特定の値の時に限
り、リード動作によって自動的に別の特定の値に更新さ
れることが特徴である。
【0015】図11に、このような動作を実現するメモ
リコントローラの構成を示す。メモリコントローラはバ
ス上のトランザクションを入力して解釈し、その内容に
応じたメモリアクセスを行うと共に、必要に応じてデー
タの転送を行うユニットである。その構成は、図11に
示すように、アドレスバスからトランザクションを入力
するトランザクション入力手段と、入力されたトランザ
クションの内容を解釈するトランザクション解釈手段
と、その内容に応じて必要なメモリアクセス制御を行う
メモリアクセス制御手段と、データバスとの間でデータ
のやりとりを行うバスデータ転送手段と、メモリとの間
でデータのやり取りを行うメモリデータ転送手段とか
ら、構成される。ここで、本発明の本質である1つのト
ランザクションだけでメモリのリード・モディファイ・
ライトを実現するため、メモリアクセス制御内容は、図
11の下に示す動作を行う。すなわち、トランザクショ
ン内容がリードあるいはライトの場合は、そのままリー
ドあるいはライトを実行するが、トランザクションがリ
ード・モディファイ・ライトを要求している場合、まず
は指定されたメモリアドレスのリードを行い、そのデー
タをデータバス上に返すと共に、そのデータが特定の値
だった場合は、別の特定の値にデータを変えてメモリの
同一アドレスに書きもどすことを行う。
【0016】図12に、別の構成のメモリコントローラ
を示す。ここでは、特にリード・モディファイ・ライト
というトランザクションを設けずに、指定した特定アド
レス領域に対するリードトランザクションを、自動的に
リード・モディファイ・ライトとして扱うことにより、
本発明のセマファを実現するものである。ここでは、基
本的に図11の構成を元にしているが、セマフォを実現
する特定アドレス領域を指し示すアドレス情報保持手段
と、アドレスバスより入力されたトランザクションアド
レスがこの特定領域に該当するか否かを判定するアドレ
ス範囲判定手段とを備える。図12のメモリコントロー
ラの制御内容を図12の下に示す。すなわち、入力され
たトランザクションがライトの場合は、アドレス範囲に
関係なく、そのまま指定されたアドレスへのライトを行
うが、トランザクションがリードであった場合、そのア
ドレスの判定を行い予めアドレス情報保持手段に保持指
定された範囲の外であれば、そのままリードを行うが、
範囲内のアドレスであった場合、まずはメモリのリード
を行い、そのデータをデータバス上に返すと共に、その
データが特定の値だった場合は、別の特定の値にデータ
を変えてメモリの同一アドレスに書きもどすことを行
う。
【0017】このような動作は、図11あるいは図12
に示したようにメモリコントローラで実現しても、ある
いはメモリ部のいずれで実現しても良い。
【0018】また、図6に示したように、複数のバスが
アダプタなどにより接続されたシステムでは、バス使用
の競合やタイムアウトなどにより、トランザクションが
エラー状態で返される場合がある。このような場合、先
に示したように一つのリード・モディファイ・ライト・
トランザクションに対応してメモリシステムが自発的に
メモリ内容を書きかえるようにすると、トランザクショ
ン結果がプロセッサに返される経路でエラーとなった場
合に問題が発生する。すなはち、プロセッサから見ると
エラーとなったにも関わらず、メモリの内容は自発的に
更新されてしまうわけであり、このままではデッドロッ
クの原因となる。そこで、本実施例では、リード・モデ
ィファイ・ライト・トランザクションが正常にプロセッ
サに返されたことを確認してから、実態のメモリ更新を
行うように制御することで、この問題を回避することが
できる。
【0019】
【発明の効果】以上説明したように本発明によれば、バ
スを1つのプロセッサで占有することなく、クリティカ
ルな領域へのアクセスを可能にすることができ、並列計
算機における競合調停のためのセマフォアクセスに伴う
オーバヘッドをなくすることが可能である。
【図面の簡単な説明】
【図1】一般的な並列プロセッサの構成図である。
【図2】従来のアドレスおよびデータトランザクション
を示す図である。
【図3】一般的なセマフォによる競合調停の方式を示す
図である。
【図4】本発明の課題であるセマフォによる競合調停で
発生する矛盾を示す図である。
【図5】本発明の課題であるセマフォによる競合調停で
発生する矛盾を防止する従来の方式を示す図である。
【図6】一般的な大規模な並列プロセッサの構成図であ
る。
【図7】従来のリード・モディファイ・ライトのバスト
ランザクションを示す図である。
【図8】本発明の実施の形態に係る、リード・モディフ
ァイ・ライトのバストランザクションを示す図である。
【図9】一般的なメモリの動作を示す図である。
【図10】本発明によるセマフォモードに対応したメモ
リの動作を示す図である。
【図11】本発明によるセマフォモードを実現するメモ
リコントローラの1つの構成例を示す図である。
【図12】本発明によるセマフォモードを実現するメモ
リコントローラの別の構成例を示す図である。
【符号の説明】
10… プロセッサ、11…アドレスバス/データバス
、12…バスアダプタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】アドレス空間を共有した複数のプロセッサ
    間で、特定のアドレス領域に対する読み出しに関して、
    特定のデータが読み出された場合、そのメモリの該アド
    レスの内容を特定の規則に従い、自動的に書きかえるよ
    うにしたメモリを備え、該メモリをセマフォ領域として
    活用することで、1回のメモリトランザクションにより
    セマフォに対するリード・モディファイ・ライトを実行
    できるように構成したことを特徴とする並列計算機にお
    ける高効率セマフォ処理方式。
  2. 【請求項2】請求項1記載のセマフォ処理方式に対応
    し、特定のアドレス領域に対する読み出しに関して、特
    定のデータが読み出された場合、そのメモリの該アドレ
    スの内容を特定の規則に従い、自動的に書きかえるよう
    にしたメモリデバイスであることを特徴とする並列計算
    機における高効率セマフォ処理方式。
  3. 【請求項3】請求項1記載のセマフォ処理方式に対応
    し、特定のアドレス領域に対する読み出しに関して、特
    定のデータが読み出された場合、そのメモリの該アドレ
    スの内容を特定の規則に従い、自動的に書きかえるよう
    にすることを規定したトランザクションを有することを
    特徴とする並列計算機における高効率セマフォ処理方
    式。
JP25531499A 1999-09-09 1999-09-09 並列計算機における高効率セマフォ処理方式 Pending JP2001075826A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25531499A JP2001075826A (ja) 1999-09-09 1999-09-09 並列計算機における高効率セマフォ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25531499A JP2001075826A (ja) 1999-09-09 1999-09-09 並列計算機における高効率セマフォ処理方式

Publications (1)

Publication Number Publication Date
JP2001075826A true JP2001075826A (ja) 2001-03-23

Family

ID=17277068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25531499A Pending JP2001075826A (ja) 1999-09-09 1999-09-09 並列計算機における高効率セマフォ処理方式

Country Status (1)

Country Link
JP (1) JP2001075826A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959367B2 (en) 2001-12-25 2005-10-25 Kabushiki Kaisha Toshiba System having read-modify-write unit
US20120089760A1 (en) * 2006-03-29 2012-04-12 Bratin Saha Increasing Functionality Of A Reader-Writer Lock

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959367B2 (en) 2001-12-25 2005-10-25 Kabushiki Kaisha Toshiba System having read-modify-write unit
US20120089760A1 (en) * 2006-03-29 2012-04-12 Bratin Saha Increasing Functionality Of A Reader-Writer Lock
US8407386B2 (en) * 2006-03-29 2013-03-26 Intel Corporation Increasing functionality of a reader-writer lock
US8775708B2 (en) 2006-03-29 2014-07-08 Intel Corporation Increasing functionality of a reader-writer lock

Similar Documents

Publication Publication Date Title
JP3579198B2 (ja) データ処理システム及びデータ処理方法
US5598550A (en) Cache controller for processing simultaneous cache accesses
KR100915260B1 (ko) 오토믹 세마포어 연산을 수행하기 위한 방법 및 장치
US6820187B2 (en) Multiprocessor system and control method thereof
JP3476174B2 (ja) ピア・ツー・ピア・サポートを有する2重ホスト・ブリッジ
JPS5837585B2 (ja) ケイサンキソウチ
JPH0664567B2 (ja) 多重プロセッサシステム
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JP2007219816A (ja) マルチプロセッサシステム
US5978879A (en) Bus bridge apparatus
JPH06119297A (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP2002163228A (ja) 多重コアdsp装置のための外部バス裁定技術
US7103528B2 (en) Emulated atomic instruction sequences in a multiprocessor system
JP2000003302A (ja) 共有メモリ排他アクセス制御方法
JP2001075826A (ja) 並列計算機における高効率セマフォ処理方式
JPH11232213A (ja) 入出力装置におけるデータ転送方式
JPH05257903A (ja) マルチプロセッサシステム
JPH0844661A (ja) 情報処理装置
JPH11203253A (ja) 共有資源排他アクセス制御方式
JP3157513B2 (ja) 拡張記憶装置
JPH1083373A (ja) プログラマブルコントローラ
JP2002207714A (ja) マルチプロセッサ装置
JPS6029139B2 (ja) 処理装置間結合方式