JPH04507019A - 非繁忙待機資源制御 - Google Patents

非繁忙待機資源制御

Info

Publication number
JPH04507019A
JPH04507019A JP2511321A JP51132190A JPH04507019A JP H04507019 A JPH04507019 A JP H04507019A JP 2511321 A JP2511321 A JP 2511321A JP 51132190 A JP51132190 A JP 51132190A JP H04507019 A JPH04507019 A JP H04507019A
Authority
JP
Japan
Prior art keywords
resource
lock
deferred
field
state
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
JP2511321A
Other languages
English (en)
Inventor
バース,ポール・エス
ソレイ,リチヤード・エム
ステイール,ケネス・エム
Original Assignee
マサチユセツツ・インスチチユート・オブ・テクノロジー
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 マサチユセツツ・インスチチユート・オブ・テクノロジー filed Critical マサチユセツツ・インスチチユート・オブ・テクノロジー
Publication of JPH04507019A publication Critical patent/JPH04507019A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 非繁忙待機資源制御 発明の背景 多重プロセスを並行して実行するデータ処理システムは、多重プロセスによって 共有される共通資源(resource)へのアクセスを同期化する手段を有さ なければならない。一般に、データ処理システムは、繁忙待機戦略を使用するこ とにより、共有資源への同期化アクセスを設けている。 繁忙待機において、各プロセスは、資源に対する要求を行い、そして資源が利用 可能になるまでアイドルで待機する。資源が究極的に利用可能になる時、アイド ルプロセスは、資源へのアクセスを獲得する。このアプローチは、適切な同期化 を設けるが、プロセッサーが資源において待機する間アイドルでなければならな いという欠点を被る。同期化を行うためにソフトウニアセマフオア機構を使用す る一つの繁忙待機アプローチは、E、 W、 Di jks t ra著の「協 同逐次プロセスJ、Genuys、プログラミング言語編、N、 A、 T、  0. 1968年、によって提案された。特に、提案されたアプローチは、共有 資源への多重プロセスのアクセスを同期化するために繁忙待機施錠セマフォアを 使用する。 発明の要約 本発明は、施錠プロトコルを実現するためのデータ構造を含む。この施錠プロト コルは、多重プロセスによるデータ処理資源へのアクセスの同期化を設ける。デ ータ構造は、値を保持するための値フィールドと、メモリアドレスにおいて値フ ィールドのロック状態を指示するための錠フィールドとを含む単一メモリアドレ スを有する。この錠フィールドが値フィールドがロックされることを指示する時 、値フィールドをロックしたプロセス以外のプロセスは値フィールドへのアクセ スを獲得しない。 アンロックされる時、任意のプロセスが資源へのアクセスを獲得する。 本発明の一実施態様により、値フィールドは、データを保持するか、あるいは代 替的にロック又はアンロック要求の据置きリストへのポインターを保持する。こ れらの2種類の値は、効率を最適化するために値フィールドの使用を共有する。 それらは、同時に値フィールドに記憶されないために同一値フィールドを共有す ることができる。2つの値の性質は、それらを本質的に相互排除にする。本発明 の別の実施態様により、ポインターは、値フィールドをデータと共有しない。む しろ、それは、値フィールドとは異なる別個のフィールドに記憶される。 錠フィールドが施錠据置き状態にある時、それは、好ましくは、プロセスが値フ ィールドへの排他的アクセスを現在有し、値フィールドへの排他的アクセスに対 する多重要求が保留中であるインジケータである。 保留中の多重要求は、ポインターによって指された据置きリストに記憶される。 同様に、錠フィールドが解錠据置き状態にある時、それは、好ましくは、プロセ スが現在データフィールドへの排他的アクセスを有さないが、値フィールドをア ンロックする多重要求が保留中である指示である。保留中のアンロック要求は、 ポインターによって指された据置きリストに記憶される。 錠フィールドが施錠状態にあるならば、アンロック要求は、錠フィールドを解錠 状態に変更する。逆に、ロックが解錠状態であるならば、ロック要求は、錠フィ ールドを施錠状態に変更する。しかし、本発明の施錠機構は、そのような基本状 態に限定されず、他の可能性が存在する。例えば、錠フィールドが施錠状態にあ り、ロック要求が受信されるならば、錠フィールドの状態は、施錠据置き状態に 変更される。ロック要求は、据置きリストに追加される。同様に、錠フィールド が解錠状態にある間アンロック要求が受信されるならば、錠フィールドの状態は 、解錠据置き状態に変更され、アンロック要求が据置きリストに追加される。 いったんこれらの据置き状態になると、錠フィールドは、据置き要求がサービス されるまで据置き状態にとどまる。特に、錠フィールドが施錠据置き状態になり 、ロック要求が受信されるならば、錠フィールドは、その状態にとどまる。同様 に、錠フィールドが解錠据!き状態になり、アンロック要求が受信されるならば 、錠フィールドは、解錠据置き状態にとどまる。これらの場合のいずれにおいて も、それぞれの要求は、据置きリストに追加される。 さらに、多重ロック要求が据置きリストにあるならば、錠フィールドが現在施錠 据置き状態にあり、アンロック要求が受信される時、錠フィールドは現状態にと どまる。しかし、ロック要求は、アンロック要求に応答して据置きリストからポ ツプオフされる。類似の状況は、錠フィールドが現在解錠据置き状態にあり、ロ ック要求が受信される時存在する。 ロック状態は、解錠据置き状態にとどまるが、アンロック要求は据置きリストか らポツプオフされる。 据置きリストにおける最終要求が据置きリストからポツプオフされる時のみ、錠 フィールドは状態を変更する。具体的に、錠フィールドが施錠据置き状態にあり 、最終ロック要求がアンロック要求によって据置きリストからポツプオフされる ならば、錠フィールドは、施錠状態に変化する。さらに、錠フィールドが解錠据 置き状態にあり、最終アンロック錠フィールドは解錠状態に変化する。 上記の機構は、メモリ位置と■構造を共有するために使用される。本発明は、共 有メモリ位置の上記の施錠機構を実現するためにメモリ位置施錠手段を使用する 。メモリ位置施錠手段は、好ましくはレジスターに保持されたフレームポインタ ーと命令ポインターから成るプロセスインジケータを有する。フレームポインタ ーは、メモリにおいてアクセスされるメモリ位置を指し、そして命令ポインター は、その位置において実行される命令を指示する。各メモリ位置は、上記のロッ ク状態を含む。 施錠機構の動作は、局所コントローラによって監視される。局所コントローラは 、命令ポインターによって指された命令、フレームポインターによって指された 位置の内容、及び命令に応答して行われる動作を決定するために関連ロック状態 とを参照する。 この施錠機構は、データフロー処理システムの如くデータ処理システムにおいて 使用される。そのようなデータ処理システムは、複数のプロセス、上記のメモリ 、及び上記のコントローラを有する。システムは、メモリアクセスに対する要求 が処理要素によって行われ、そしてメモリアクセスが実行されるのを待機する間 数のタスクを実行する如く設計される。 図面の簡単な説明 第1図は、データ処理システムの主要構成要素を示す。 第2図は、トークン内のフィールドを示す。 第3図は、メモリユニットを詳細に示す。 第4図は、アドレス指定可能なメモリ位置を示す。 第5図は、基本施錠機構の状態図を示す。 第6a図と第6b図は、読み出し/ロックトークンのシーケンスとメモリ位置に おける実行効果を示す。 第7a図と第7b図は、書き込み/アンロックトークンのシーケンスとメモリ位 置における実行効果を示す。 第8図は、強化施錠戦略を使用して実行されたサンプル待ち行列動作を示す。  好ましい実施態様の詳細な説明本発明の好ましい実施態様は、施錠(locki ng)メモリ位置を有するデータフロー処理システム2に関する。データフロー 処理システムは、多数のメモリユニット10を共有する複数の処理要素5から成 る。これらの処理要素5は、多重プロセスを並列処理する。実行されるプロセス は、メモリユニット10へのアクセスを必要とする動作を含む。そのような動作 が並列処理されるならば、同一メモリユニット位置へのアクセスを得ようとする 多重プロセスに関する問題が発生する。競合するプロセス間の潜在的な衝突を回 避するために、個々のプロセスは、制限された時間期間、単一メモリ位置へのア クセスを認められる。具体的に、メモリ位置は、メモリ位置を使用して処理要素 が終了されるまで修正されない。 このケイパビリティは、施錠機構の使用により設けられる。メモリ位置をロック した処理要素以外のすべての処理要素5は、メモリ位置がアンロックされるまで 、メモリ位置をアクセスするのを阻止される。しかし、プロセスは、メモリ位置 がアンロックされるのを待機する間アイドルにとどまることを必要とされない。 それらは、待機中地のタスクを処理し続ける。 第1図は、データフロー処理システム2の主要構成要素を示す。具体的に、シス テム2は、複数の処理要素5と、複数のメモリユニット10とを含む。メモリユ ニット10と処理要素5の間の通信は、相互接続網12を介して達成される。相 互接続網12は、先行技術において公知の回路から成る。処理要素5の各々は、 メモリユニット10の各々へのアクセスを有する。これらの処理要素5は、好ま しくは、各処理要素5内の並列活動を最大化するようにパイプラインされる。好 ましい処理要素構成は、G、Papadopoulos著の「はん用データ70 −多重プロセッサーJ、Doctoral ThesisSMassachus etts In5titute of Technology、1988におい て提示される。 データフロー処理システム2は、好ましくは、トークンで動作するタグ付きトー クンデータフロー処理システムである。第2図に示す如く、これらのトークン1 1は、タグフィールド3と値フィールド5から成る。 タグフィールド3は、第2図においてIFとして指定された命令ポインター3a を保持し、かつ第2図においてFPとして指定されたフレームポインター3bを 保持するために使用される。命令ポインター3aは、実行される命令を指す。対 照的に、フレームポインター3bは、その一つが命令によつてアクセスされるメ モリ位置のフレームの開始を指す。 値フィールド5は、ある目的のために使用される。それは値を記憶するために使 用される。値フィールド5に保持された値の重要度は、変化し、命令ポインター 3aが指す命令に依存する。例えば、値は、アドレス、又は単に現データ値を表 現する。 各処理要素5は、複数のトークンを記憶する局所トークンキューを維持する。各 処理要素5は、システムクロックのクロックサイクル毎に、トークンキューから 処理要素5のパイプラインへの新トークンを計時する。処理要素5のパイプライ ン内で、トークン11のタグ部分3の命令ポインター3aによって指された命令 の実行が試行される。しかし、しばしば、命令の実行を完了するために、メモリ をアクセスすることが必要である。そのような場合に、処理要素5のパイプライ ンは、新トークンを発生させ、そのタグは、アクセスされる必要のあるメモリ位 置において実行される読み出し動作又は書き込み動作を指示する。これらのトー クンは、パイプラインを出て、相互接続網12を介してメモリユニット10に移 動し、メモリアクセス要求がサービスされる。そのようなメモリアクセス要求が 取り扱われる方法と、そのような要求を効率的にサービスするためのメモリ機構 は、本発明の好ましい実施態様に非常に重要である。 第3図は、第1図よりも詳細に施錠ケイパビリティを有するメモリユニット10 を示す。メモリユニット10は、メモリへのアクセスを得ようとする処理要素5 から送信された大りトークンを緩衝するための第1FIF014を含む。第1F IFoバツフアー14に記憶された後のトークンは、一度に一つレジスター16 に送信される。レジスター16は、マルチプレクサ−18、データメモリ20、 及びコントローラ24と通信する。さらに、トークン形成バッファー26が、出 カドークンの発生を補助するために設けである。出カドークンは、第2FIFO バツフアー28に送出され、続いてそこから網12に送出される。 一般動作において、メモリユニット10は、処理要素5から網12を介してメモ リへのアクセスをめるトークン11を受信する。これらのトークンは、一時的に 第1FIFOバツフアー14に記憶される。レジスター16が第1FIFOバツ フアー14から新トークンを受信する準備ができている時、トークンが第1FI FOバツフアー14からレジスター16に転送される。処理が継続する時、フレ ームポインター値3bは、レジスター16に保持されたトークンから取られ、マ ルチプレクサ−18に渡される。フレームポインターは、アクセスされる特定メ モリ位置を指す。命令ポインター値3aがまた、コントローラ以外に転送される 。命令ポインターは、フレームポインターによって指定されたメモリ位置におい て実行される動作をコントローラ24に知らせる。 いったんコントローラ24が実行される動作を決定するならば、それは、適切な 選択信号をマルチプレクサ−18に送信し、アクセスされるメモリアドレスを選 択する。アドレスは、フレームポインター3bによって指示されたアドレスであ るか、あるいはデータメモリ20のメモリ位置にあるアドレスである。アドレス がデータメモリのメモリ位置にあるアドレスであるように選択されるならば、そ れは据置きリストアドレスである。据置きリストが、さらに詳細に議論される。 マルチプレクサ−18によって選択されたアドレスは、データメモリ20のアド レス線と、アドレスがそれぞれのメモリ位置へのアクセスを獲得するために使用 されるロック状態メモリ22のアドレス線とに移動する。コントローラ24は、 アドレス指定位置に関連したロック状態を検査し、それに応じて作用する。 示唆された構成から明らかな如(、メモリアドレスのロック状態とデータ値は、 同一物理メモリ位置において記憶される必要はない。事実、それらは、別個の物 理位置に記憶されるが、アドレスがアクセスされる時データとロック状態が利用 可能である如く、単一メモリアドレスによってアドレス指定可能でなければなら ない。ロック状態情報のメモリアクセス時間が最適化される如くメモリを物理的 に分割することが望ましい。 具体的に、一般に必要とされるロック状態への非常に多数のアクセスのために、 静的高速メモリがロック状態メモリ22を用意するために使用されることが好ま しい。典型的に、ロック状態が読み出され、そして新ロック状態が、実行される 各施錠命令に対して書き込まれる。静的メモリの使用は、これらのトランザクシ ョンにおいて費やされる時間を最小にする。しかし、静的メモリは、非常に多大 な出費を伴うために、データメモリ20に対して望ましくない。さらに、データ に関してそのような静的メモリの必要性は、データはロック状態はど頻繁にアク セスされないために、ロック状態はど太き(はない。こうして、動的メモリが、 データメモリ20に対して使用される。 好ましい実施態様における読み出し及び書き込み命令は、単純な読み出し及び書 き込み命令ではない。むしろ、それらは二重機能を行う混成命令である。具体的 に、読み出し命令は、標準読み出しを行うほかに、読み出されるメモリ位置をロ ックし、そして書き込み命令は、書き込まれるメモリ位置をアンロックする。こ れらは、好ましい実施態様を実現するために必要とされた唯一の制御命令である 。標準読み出し及び書き込み命令は、データフロー処理システム2内で利用可能 であるが、ロック及びアンロックされることができないメモリの部分において使 用される。ロック及びアンロックの維持に関連したオーバーヘッドがあるために 、ロックされないメモリ部分とアンロックされないメモリ部分を有することが好 ましい。すべてのメモリ位置においてロックとアンロックを有することは必要で ないために、施錠位置とともに、非施錠位置を有することにより、不必要なオー バーヘッドを除去することが可能である。 議論の残りでは、すべての読み出しとすべての書き込みが、それぞれ、読み出し /ロック命令と書き込み/アンロック命令を参照することが仮定される。 第4図は、典型的なメモリ位置を示す。このメモリ位置は、3つのフィールドか ら成る。これらのフィールドの2つ66と70は、物理的にデータ・メモリ20 に位置するが、他のフィールド68は、物理的にロック状態メモリ22に位置す る。第1フイールドは、前述のデータとアドレスの如く値を記憶するために使用 される値フィールド66である。錠フィールド68は、メモリアドレスの現ロッ ク状態を記憶するために使用される。最後に、ポインターフィールド70が、必 要ならば据置きリストの要素へのポインターを記憶するために設けである。代替 的に、ポインターフィールド70は、使用される必要はない。むしろ、値フィー ルド66は、値フィールド66とポインターフィールド70の機能等催物として 使用することができる。特に、このオプションが使用される時、値フィールド6 6は、データ又はポインターを記憶するが、両者は同時にメモリ位置に存在しな いために、両者を単一フィールドに記憶させることは、さらに効率的である。本 発明は、これらの代替案を選ばず、代わりにこれらの代替案の両方を包含してい る。 書き込み/アンロック要求を保持するトークンがメモリユニット10に入り、そ して書き込まれるメモリ位置が施錠状態にあるとする。トークンが処理されると 、コントローラ24は、上記のデータメモリ20のアドレス線において指定され たメモリ位置へのアクセスを獲得する。それからコントローラは、レジスター1 6においてトークン11の値フィ−ルド5に保持された値をアクセスされたメモ リ位置へ書き込ませる。 しかし、代わりに、トークンが実行される読み出し/ロック命令に対する要求を 保持し、そしてメモリ位置が解錠状態にあるとする。その場合に、コントローラ 24は、データメモリ20のアドレス線におけるアドレスを使用し、データメモ リ20内のメモリ位置をアクセスする。いったんコントローラ24がメモリ位置 へのアクセスを獲得するならば、それは、メモリ位置の内容を読み出す。それか ら内容は、トークン形成バッファー26に転送される。そのような場合に、入り トークン11の値フィールドは、読み出し値に対するあて先アドレスとしてトー クン形成バッファー26に渡される。このあて先アドレスは、トークン形成バッ ファー26において出カドークンのフレームポインターフィールドに置かれる。 それは、処理要素と、処理要素に局所的なメモリのフレームとを識別する。さら に、出カドークンに対する命令ポインターが、コントローラ24によつて転送さ れ、そして値が、コントローラ24によって命令された時、データ・メモリ20 から転送される。出カドークンは、次に第2FIFOバツフアー28に転送され る。このバッファーは、網12のスワンピングを防止するために出カドークンの バックログを許容するように設けである。第2バツフアー28に保持された出カ ドークンは、網12が受信の準備ができている時、網2に転送される。 読み出し/ロックがめられ、読み出されるメモリ位置が施錠据置き状態(この状 態はさらに詳細に後述される)にあるならば、システムは、メモリ位置が解錠状 態にあるとは別様にトークンに応答する。最初に、メモリ位置が施錠据置き状態 にある時、出カドークンは、適切なデータが書き込み/アンロック要求により到 着する時のみに形成される。第2に、あて先アドレスは、レジスター16の値フ ィールドから取られず、むしろ、読み出し/ロック要求に対応してデータメモリ に保持された据置きリストにおける要素から取られる。据置きリストの編成は、 例において以下に記載される。出カドークンの他のフィールドも、前述の如く形 成される。 非旋錠位置は、施錠位置において錠フィールドを含むと同一ビットを含むことに 注意するべきである。しかし、これらのビットは、非旋錠位置において異なる重 要度を有する。施錠位置において、ビットは、種々のロック状態を表現する。メ モリ位置の錠フィールドが取る3つの基本状態が、第5図に示される。3つの状 態は、解錠30、施錠32、及び施錠据置き34の状態である。ロックされるこ とが可能なすべてのメモリ位置は、初期的に解錠状態30にある。ロック読み出 し/ロック要求40がメモリ位置に為されるならば、メモリ位置の錠フィールド は、施錠状態32に変更される。書き込み/アンロック要求38が続いて同一メ モリ位置に到着するならば、メモリ位置の錠フィールドは、解錠状態30に戻さ れる。 位置が施錠状態にあり、読み出し/ロック要求44が到着するならば、それは、 状態フィールドを施錠据置き状態34に変更する。状態フィールドが施錠据置き 状態34にある間に受信された付加的な読み出し/ロック要求56は、状態を変 更しない。それにも拘わらず、これらの要求は、据置きリストに記憶される。状 態フィールドが施錠据置き状態34にある間に受信された書き込み/アンロック 要求46は、据置きリストから単一の対応する読み出し/ロック要求を除去する ように作用する。最終書き込み/アンロック要求42は、最後の据置き読み出し /ロック要求を除去し、状態フィールドを施錠状態32に戻す。この例における 要求順序は、順守される必要はない。書き込み/アンロックと読み出し/ロック に対する要求は、任意の順序で発生する。上記の順序は、例示の目的のためにの み選ばれた。 施錠状態と施錠据置き状態の重要度は、読み出し/ロックが認められた処理要素 以外の他の処理要素5が、施錠中メモリ位置をアクセスしないことである。他の 処理要素5は、その位置へのアクセスを獲得する前にアンロックされるまで待機 しなければならない。有益な類推は、メモリ位置をライブラリブックとして見る ことである。人がライブラリブックを点検しようとする時、それは、読み出し/ ロック命令の等個物である。ブックを点検する人は、ブックへの排他的なアクセ スを有する。ブックを修正し、唯一のブックが利用可能であるならば、すべての 続く人が修正されたブックを受信する如く修正されたブックが置き換えられる。 消失中にブックを点検しようとする人は、ブックを獲得しないが、名前がブック をめる人のリストに書かれるように要求する。 このリストは、施錠据置き状態における据置きリストに類似する。ブックを最初 に点検する人がブックを戻す時、それは、書き込み/アンロック要求を投する如 くである。ブックは、リストになお名前があるためにまだ施錠据置き状態にある 。しかし、リストにおける最初の人は、ブックを受け取り、そしてリストから削 除される。このプロセスは、リストにおける最後の人が、ブックが施錠状態にあ る時にブックの所有を獲得するまで、ブックの続く返却毎に繰り返される。この 人がブックを返すならば、状態は、解錠状態に戻る。 上記の説明は、本発明の実施態様による施錠戦略を実現するために必要な基本状 態を記載している。しかし、これらの状態は、解錠据置きの付加状態を有するさ らに強力な施錠戦略を生ずるように粉飾される。この状態が前状態図に付加され る時生成される状態図が、第6図に示される。付加状態は、本発明の施錠戦略に 待ち行列ケイパビリティを提供する。 解錠据置き状態36の理解を助けるために、メモリ位置は初期的に解錠状態にあ り、書き込み/アンロック要求50が受信されるとする。メモリアドレスの錠フ ィールドは、解錠据置き状態36に変更される。この解錠据置き状態36にある 間、続いて受信される書き込み/アンロック要求54は、錠フィールドにおいて 保持された状態に影響しない。しかし、要求は、据置きリストに入れられる。こ のリストは、施錠据置きリストにおいて使用される同一ハードウェアを使用して 実現される。両リストは同時に存在しないために、両リストに対するハードウェ アの共有は、オーバーリード費用を最小にする効率的な戦略を提供する。 据置きリストに書き込み/アンロック要求がある間受信される読み出し/ロック 要求52は、書き込み/アンロック要求をリストからポツプオフさせる。据置き リストにおける要求は、各書き込み/アンロック要求が関連読み出し/ロック要 求に応答してのみリストからポツプオフされる如く、一度に一つポツプオフされ る。ポツプオフされる書き込み/アンロック要求は、リストの頭に位置する必要 はない。それは、大きなオーバーヘッド費用を課することなしに、リストのすべ ての場所に位置する。究極的に、処理が続く時、据置きリストは、単−書き込み /アンロック要求に縮小される。据置きリストにおけるこの最終書き込み/アン ロック要求は、先行要求と同様に、読み出し/ロック要求48によってリストか らポツプオフされる。それがポツプオフされる時、メモリロケータの状態フィー ルドは、解錠状態30に戻される。この戦略は、すべての据置き書き込み/アン ロック要求が状態フィールドが解錠状態30に戻される前に取り扱われることを 保証している。 第6a図と第6b図は、トークンのシーケンスと、これらのトークンを実行する 対応効果を示す。特に、第6a図は、順次に実行されるトークン60.62と6 4を示す。初期的に、メモリ位置の値フィールド66は6の値を有し、そして状 態フィールド68は、第6b図のメモリ状態74においてrUJとして示された 解錠状態の値を有するとする。 トークン60が実行される時、アドレス10におけるメモリ位置内容は、メモリ 状態76に変化する。特に、値6は、値フィールド66から読み出される。値フ ィールド66は、冗長な条件に入る。状態フィールド68は、メモリ位置がロッ クされている(「L」で表記される)ことを指示するように変更される。値6は 、新トークンを介してアドレスJoeに送信される。Joeは、例示の目的のた めに戻りアドレスのフレームポインター値に与えられた名前である。 トークン62が実行される時、アドレス10におけるメモリ位置内容は、メモリ 状態78に変化する。値フィールドにおいてデータを記憶する代わりに、戻りア ドレスMaryが、値フィールド66に記憶される。 Joeと同様にMaryは、単に、例示の目的のために戻りアドレスに与えられ た名前である。さらに、状態フィールド68は、施錠状態から据置き施錠状態( 「LDJとして表記される)に変更される。この時に、データをあて先に戻す新 トークンは、発生されない。データが利用可能になる時、データをあて先に伝達 する新トークンが発生される。書き込み/アンロック要求がアドレス10に対し て受信されるならば、メモリコントローラ24は、読み出し値を位置Maryに 戻すことをめる保留ロック(読み出し/′ロック)要求が未決であることを知る 。 最終トークン64が実行される時、位置10は、据置き施錠状態にある。値フィ ールド66と状態フィールド68は変更されない。むしろ、行われる唯一の変更 は、以前番ごnil”であったポインターフィールド70が、読み出し/ロック 要求72を指す如く変更される。このロック要求は、この場合Tomである72 aの要求の戻りアドレスを記憶する。それはまた、据置きリストにおける次の要 求へのポインター72bを記憶する。この場合、要求はもはやない。こうして、 値はポインターに記憶されない。 第7a図と第7b図は、書き込み/アンロックトークンのシーケンスと、これら のトークン60.62と64を実行することにより生じた結果のメモリ状態とを 示す。アドレス10におけるメモリ位置内容は、値フィールド66が冗長な値を 有するメモリ状態92において開始するとする。さらに、錠フィールド68は、 施錠状態にあり、そしてポインターフィールド70は、nil状態にある。トー クン82が実行される時、メモリ位置10の内容は、メモリ状態94に変化する 。このメモリ状態において、値フィールド66は、7の値を有し、そして錠フィ ールド68は、アンロックの値を有する。ポインターフィールド70は、nil 状態にとどまる。新トークンは発生されない。 1・−クン84が実行される時、メモリ位置内容10は、メモリ状態96に変化 する。値フィールド66は、メモリ状態94のままである。具体的に、それはな お、7の値を記憶している。しかし、錠フィールドは、解錠据置き状態に変更さ れる。さらに、ポインターフィールド70は、今、アンロック要求88を指す。 このアンロック(書き込み/アンロック)要求88は、要求によって書き込まれ る値を含む。この場合、値は9であり、そして据置きリストにおける次の要求へ のポインターを含む。 この例の場合、他の要求はないために、ポインターは、nilの値を有する。 トークン86の実行は、メモリ位置10の内容を変更せず、むしろ、据置きリス トに別のアンロック要求を追加する。具体的には、要求88は、付加アンロック 要求89を指すようにポインター値を変更する。このアンロック要求89は、書 き込まれようとした値(すなわち、15)とポインターを含む。要求89は据置 きリストにおける最後の要求であるために、ポインターはnil値を有する。  読み出しロックコマンドと書き込みアンロックコマンドの間の関係をさらに理解 し、解錠据置き状態を使用することにより設けられた待ち行列ケイパビリティを 示すために、第7a図において指定されたトークンが実行され、メモリ状態98 になる。続いて、第6a図において指定されたトークンが実行される。 第8a図は、メモリ位置10に対して発生するメモリ状態を示す。読み出し/ロ ックを要求するトークン60が実行される時、据置きリストの頭における値7は 、除去され、そして新しく発生されたトークンを介してJoeによって指定され たアドレスに送信される。実行されたトークン62は、アドレス10における内 容かメモリ状態102に示された如くメモリ位置を変更する。その間、値9が、 アドレスMaryにおけるメモリ位置に送信される。メモリ位置10は、値フィ ールド66において値15を有し、そして錠フィールド68によって注記された 解錠状態においてセットされる。さらに、ポインターフィールド70は、ntl において設定される。最後に、トークン64が実行され、そしてアドレス10に おけるメモリ位置内容は、メモリ状態104に入る。メモリ状態104において 、値フィールド66は、冗長な値を有し、錠フィールド68は、施錠状態にあり 、そしてポインターは、“nil”の値を有する。値15は、アドレスromに おけるメモリ位置に送信される。 本発明は、メモリへの要求を追跡し、メモリへの二重要求を送信する必要なしに 、すなわち、繁忙待機なしに、処理要素によるメモリアクセス要求を可能にして いる。要求は、据置きリストに記憶され、そして後にサービスされる。その間、 処理要素は、他のタスクを実行する。さらに、本発明は、同期化を効率的に行う 。それは、メモリにおけるデータへのアクセスがロック状態へのアクセスを生ず る如く極小にロックする。 それ自体、2つの別個のメモリアクセストランザクションは、必要とされない。 さらに、データとのロックの対応は、メモリアドレスの共有によって前確立され る。マツチング手段、隣接手段、ポインター又は他の手段は必要とされない。 発明が好ましい実施態様を参照して詳細に示され、記載されたが、形式と詳細に おける多様な変更が、添付の請求の範囲に記載された如く、発明の精神と範囲か ら逸脱することなしに行われることが、技術における当業者には理解されるであ ろう。例えば、本発明は、メモリ位置以外の資源で使用しても良く、そしてデー タフロー機械以外のデータ処理アーキテクチャ−において実現しても良い。 ■さ1 60〈読み出し/ロックA [10] 、Joe>62〈読み出し/ロックA  [10] 、Mary>64〈読み出し/ロックA [101、Tow>82〈 書き出し/アンロックA[10]、 7>84〈書き出し/アンロックA[10 ]、 9>86〈書き出し/アンロックA [10] 、15>匹2 匹4 す・δ 国際調査報告 唱”””””IA””””PCT/lJs90104212

Claims (14)

    【特許請求の範囲】
  1. 1.少なくとも2つのプロセス形式の多重プロセスを発生させるための少なくと も一つのプロセッサー要素と、多重プロセスをサービスするためのデータ処理資 源と、データ処理資源への多重プロセスによるアクセスを制御するためのシンク ロナイザーであり、 a.値を保持するための値フィールドと、b.値フィールドがロックされる時、 値フィールドをロックしたと同一プロセス形式のプロセスによる値フィールドヘ のアクセスが禁止される如く、値フィールドがロックされているかを示す錠フィ ールドとを含む、データ処理資源への多重プロセスによるアクセス要求の同期化 のための旋錠プロトコルを実現するためのデータ構造を記憶するメモリを具える シンクロナイザーとを具備するデータ処理システム。
  2. 2.錠フィールドが施錠据置き状態にあり、プロセスの施錠形式が、現在、値フ ィールドヘの排他的アクセスを有し、そして同一旋錠形式のプロセスによる値フ ィールドヘの排他的アクセスに対する多重要求が、保留中であり、要求の据置き リストにおいて記憶されることを指示する請求の範囲1に記載のデータ処理シス テム。
  3. 3.錠フィールドが旋錠据置き状態にある時、値フィールドが、旋錠形式のプロ セスによるアクセス要求の据置きリストを指すポインターを保持する請求の範囲 2に記載のデータ処理システム。
  4. 4.錠フィールドが解錠据置き状態にあり、プロセスの解錠形式が、現在、値フ ィールドヘの排他的アクセスを有し、同一解錠形式のプロセスによる値フィール ドヘの排他的アクセスに対する多重要求が、保留中であり、要求の据置きリスト において記憶されることを指示する請求の範囲1に記載のデータ処理システム。
  5. 5.錠フィールドが解錠据置き状態にある時、値フィールドが、施錠形式のプロ セスによるアクセス要求の据置きリストを指すポインターを保持する請求の範囲 4に記載のデータ処理システム。
  6. 6.データ処理資源へのデータ処理システムにおいて発生された複数のプロセス によるアクセスを同期化する方法であり、資源が、資源の現ロック状態を指示す るための錠フィールドを有するシンクロナイザーを含む方法において、 a.錠フィールドが解錠状態にあるならば、資源が第1形式のプロセスによって 要求される時、シンクロナイザーが施錠状態へ資源の錠フィールドを設定する段 階と、 b.錠フィールドが旋錠状態にあるならば、資源が第2形式のプロセスによって 要求される時、シンクロナイザーが解錠状態へ資源の錠フィールドを設定する段 階と、 c.錠フィールドが施錠状態にあるならば、資源が第1形式のプロセスによって 要求される時、シンクロナイザーが旋錠据置き状態へ資源の錠フィールドを設定 し、そしてまた、第1形式のプロセスから保留資源要求の据置きリストへ資源要 求を追加する段階とを含む方法。
  7. 7.錠フィールドが解錠状態にあるならば、資源が第2形式のプロセスによって 要求される時、シンクロナイザーが解錠据置き状態へ資源の錠フィールドを設定 し、そしてまた、第2形式のプロセスから保留資源要求の据置きリストへ資源要 求を追加する段階をさらに含む請求の範囲6に記載の方法。
  8. 8.錠フィールドが旋錠据置き状態にあるならば、資源が第1形式のプロセスに よって要求される時、シンクロナイザーが旋錠据置き状態において資源の錠フィ ールドを保持し、そしてまた、第1形式のプロセスから保留資源要求の据置きリ ストへ資源要求を追加する段階をさらに含む請求の範囲6に記載の方法。
  9. 9.錠フィールドが解錠据置き状態にあるならば、資源が第2形式のプロセスに よって要求される時、シンクロナイザーが解錠据置き状態において資源の錠フィ ールドを保持し、そしてまた、第2形式のプロセスから保留資源要求の据置きリ ストへ資源要求を追加する段階をさらに含む請求の範囲6に記載の方法。
  10. 10.錠フィールドが旋錠据置き状態にあり、第1形式のプロセスからの資源に 対する他の要求が受信されたが、なお未決であるならば、資源が第2形式のプロ セスによって要求される時、シンクロナイザーが旋錠据置き状態において資源の 錠フィールドを保持し、そしてまた、第1形式のプロセスからの保留資源要求の 据置きリストから保留資源要求をポップオフする段階をさらに含む請求の範囲6 に記載の方法。
  11. 11.錠フィールドが解錠据置き状態にあり、第1形式のプロセスからの資源に 対する他の要求が受信されたが、なお未決であるならば、資源が第2形式のプロ セスによって要求される時、シンクロナイザーが解錠据置き状態において資源の 錠フィールドを保持し、そしてまた、第1形式のプロセスからの保留資源要求の 据置きリストから保留資源要求をポップオフする段階をさらに含む請求の範囲6 に記載の方法。
  12. 12.錠フィールドが旋錠据置き状態にあり、第1形式のプロセスからの資源に 対する唯一の要求が未決であるならば、資源が第2形式のプロセスによって要求 される時、シンクロナイザーが旋錠状態に資源の錠フィールドを設定し、そして また、第1形式のプロセスからの保留資源要求の据置きリストから最後の保留資 源要求をポップオフする段階をさらに含む請求の範囲6に記載の方法。
  13. 13.錠フィールドが解錠据置き状態にあり、第2形式のプロセスからの資源に 対する唯一の要求が未決であるならば、資源が第1形式のプロセスによって要求 される時、シンクロナイザーが解錠状態に資源の錠フィールドを設定し、そして また、第2形式のプロセスからの保留資源要求の据置きリストから最後の保留資 源要求をポップオフする段階をさらに含む請求の範囲6に記載の方法。
  14. 14.資源が共有メモリである請求の範囲6に記載の方法。
JP2511321A 1989-07-26 1990-07-26 非繁忙待機資源制御 Pending JPH04507019A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38573389A 1989-07-26 1989-07-26
US385,733 1989-07-26

Publications (1)

Publication Number Publication Date
JPH04507019A true JPH04507019A (ja) 1992-12-03

Family

ID=23522648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2511321A Pending JPH04507019A (ja) 1989-07-26 1990-07-26 非繁忙待機資源制御

Country Status (4)

Country Link
EP (1) EP0483250B1 (ja)
JP (1) JPH04507019A (ja)
DE (1) DE69012820T2 (ja)
WO (1) WO1991002310A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274823A (en) * 1992-03-31 1993-12-28 International Business Machines Corporation Interrupt handling serialization for process level programming
US5317749A (en) * 1992-09-25 1994-05-31 International Business Machines Corporation Method and apparatus for controlling access by a plurality of processors to a shared resource
GB2273586A (en) * 1992-12-21 1994-06-22 Hanover Restricting access to shared memory during updates.
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
US10860388B1 (en) * 2019-07-09 2020-12-08 Micron Technology, Inc. Lock management for memory subsystems

Also Published As

Publication number Publication date
DE69012820T2 (de) 1995-05-11
EP0483250B1 (en) 1994-09-21
DE69012820D1 (de) 1994-10-27
EP0483250A1 (en) 1992-05-06
WO1991002310A1 (en) 1991-02-21

Similar Documents

Publication Publication Date Title
US5263161A (en) Non-busy waiting resource control
US7174552B2 (en) Method of accessing a resource by a process based on a semaphore of another process
JPH07219792A (ja) ロック装置及び方法
JP4171910B2 (ja) 並列処理システム及び並列処理プログラム
JP2000181878A (ja) 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体
US20100115518A1 (en) Behavioral model based multi-threaded architecture
TWI302666B (en) Method of and apparatus for processing passive threads and active semaphores
JPH02500309A (ja) 保留バスに割り込み要求を送る割り込み要求発生ノード
JP2003263331A (ja) マルチプロセッサシステム
JPH06103155A (ja) 共有メモリ制御方法及び共有メモリ制御装置
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
JPH04507019A (ja) 非繁忙待機資源制御
US6108757A (en) Method for locking a shared resource in multiprocessor system
US6757679B1 (en) System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
Liu et al. Lock-free scheduling of logical processes in parallel simulation
US5386586A (en) System and method for construction of lists of deferred service requests
JPH0728748A (ja) バス制御機構及び計算機システム
JPH09330241A (ja) デッドロック防止排他制御方式
JP3183250B2 (ja) キュー管理システム
JPH08255130A (ja) バッチジョブ制御システム
JP2699873B2 (ja) バス制御回路
Scott et al. Practical Spin Locks
JPH0448348A (ja) 分散更新処理方式