JP2511588B2 - デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置 - Google Patents

デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置

Info

Publication number
JP2511588B2
JP2511588B2 JP3171992A JP17199291A JP2511588B2 JP 2511588 B2 JP2511588 B2 JP 2511588B2 JP 3171992 A JP3171992 A JP 3171992A JP 17199291 A JP17199291 A JP 17199291A JP 2511588 B2 JP2511588 B2 JP 2511588B2
Authority
JP
Japan
Prior art keywords
processor
lock
processors
arbitration
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.)
Expired - Lifetime
Application number
JP3171992A
Other languages
English (en)
Other versions
JPH06318190A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06318190A publication Critical patent/JPH06318190A/ja
Application granted granted Critical
Publication of JP2511588B2 publication Critical patent/JP2511588B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は主記憶メモリ又は他の共
有資源に複数プロセッサが結合されるデータ処理システ
ムに関し、より詳しくは、前記共有資源のアクセスを前
記プロセッサ間に割振る手段に関する。
【0002】
【従来の技術】最近のデータ処理の傾向の中に、主記憶
との共通のインタフェースを共有する多重プロセッサを
より多く用いるコンピュータ・アーキテクチャがある。
一般に、多重プロセッサ・ネットワークは主記憶内の共
有データ領域又はオブジェクトを保護するために直列化
機構を用いる。2以上のプロセッサが同時に主記憶内の
共有領域のデータのアクセスを要求する場合、1以上の
直列化機構が競合を解消し、要求元装置の1つにアクセ
スを許可する。複数のプロセッサを直列化するための1
つのアプローチは、プロセッサが種々の優先順位を獲得
するように、プロセッサの各々を独特に構成することで
ある。このタイプのシステムはシステム全体の性能を犠
牲にして優先順位の高いプロセッサを偏重する傾向があ
る。
【0003】前記プロセッサの全てに結合された中央ハ
ブ又は制御装置を設けることも知られているが、中央ハ
ブ・システムはハードウェアの追加を必要とする。テス
トアンドセット・セマフォアはプロセッサ間の競合の解
決に用いられているが、それにもかかわらず、前記セマ
フォアは主記憶で共有データの使用を必要とする初期接
続手順を必要とし、主記憶に対する所要の帯域幅が増大
するとともにデータ操作及び競合解消に必要な時間が増
大する。
【0004】
【発明が解決しようとする課題】本発明の目的は中央ハ
ブを必要とせずに複数のプロセッサ間の干渉性を均等に
維持するプロセッサ相互接続を提供することである。
【0005】本発明の他の目的はプロセッサが並列に命
令ストリームを実行できるように複数の命令ストリーム
を直列化する手段を提供することである。
【0006】本発明の他の目的は競合を迅速に解消し、
共有オブジェクトの競合に敗れた装置の遅延を少なくす
る多重プロセッサネットワークを提供することである。
【0007】
【課題を解決するための手段】前記及び他の目的を達成
するために、ビット符号化データを処理するコンピュー
タ・プログラム命令を実行する複数プロセッサを含むデ
ータ処理ネットワークが提供される。前記ネットワーク
は、前記プロセッサ及び共有資源の各々の間でビット符
号化データを伝達するために、前記プロセッサに共有さ
れた主記憶メモリ又は他の資源並びに前記プロセッサ及
び共有資源に接続されたインタフェースとを含む。各プ
ロセッサはアービトレーション・セクタを含む。各アー
ビトレーション・セクタは前記共有インタフェースをア
クセスする全プロセッサ間の優先順位を決定するアービ
トレーション・ロジックを含む。それぞれのプロセッサ
のアービトレーション・セクタは互いにほぼ同一であ
る。アービトレーション・セクタの全てを互いに直に結
合するために相互接続手段が設けられる。これはアービ
トレーション・セクタの全てのアービトレーション・ロ
ジックの干渉性を均等に維持する。
【0008】良好な相互接続手段はプロセッサの数に等
しい複数のデータ・バスである。各データ・バスはプロ
セッサの1つに関連づけられている。これは関連したプ
ロセッサのアービトレーション・セクタからデータを受
取り、このデータを他の全てのプロセッサのアービトレ
ーション・セクタに供給することを意味する。
【0009】アービトレーション・セクタは一般的な情
報及びプロセッサ特有の情報を含む。一般的な情報は、
例えば、共有インタフェース及び主記憶のアービトレー
ションに関係する。特有の情報については、各アービト
レーション・セクタは複数のアービトレーション・レジ
スタを有し、各アービトレーション・レジスタはプロセ
ッサのそれぞれの1つに特有の情報を含む。これらのレ
ジスタの1つは、それが存在するプロセッサに特有の情
報を含み、その出力を関連バスに供給する。残りのアー
ビトレーション・レジスタは、残りのデータ・バスを介
して残りのプロセッサからロジックを受取る入力レジス
タである。
【0010】更に、アービトレーション・セクタの各々
は、関連プロセッサを識別する特定の情報、主記憶内の
共有オブジェクトに関するプロセッサ間の競合を解消す
るロジック、及び各競合に応答してプロセッサの優先順
位を動的に変更する手段を含む。従って、各プロセッサ
は単独で全プロセッサ間の競合解消に十分なロジックを
含み、中央ハブの必要性及び競合解消のために主記憶に
依存する必要性がなくなる。従って、本発明によるデー
タ処理ネットワークは従来のネットワークよりもコンパ
クトであり、煩雑な手続きが少なくてすみ、かなり性能
が改善される。
【0011】本発明のもう1つの特徴はデータ処理ネッ
トワーク内の競合を解消する直列化システムにある。前
記システムは複数のハードウェア・ロックを含み、各ロ
ックは主記憶メモリ内のデータの複数のサブセットのう
ちの特定の1つに対応する。更に、前記システムは主記
憶内のデータを獲得するためのアクセス手段を各プロセ
ッサに含む。各アクセス手段は、データの操作を実行す
る制御命令を包含するコンピュータ・プログラム命令を
含む制御記憶手段を有する。更に、各アクセス手段は少
なくとも選択されたロックの1つの制御を、前記選択さ
れたロックに対応するデータの操作の実行に先行する状
態として獲得する手段を含む。信号手段はプロセッサが
前記選択されたロックの制御を獲得するのに応答してロ
ック獲得信号を生成する。更に、禁止手段は前記ロック
獲得信号を他のプロセッサに供給し、他の装置が前記選
択されたロックの制御を獲得するのを阻止する。
【0012】各アクセス手段は他のプロセッサにロック
解除信号を供給し、他のプロセッサがいったん解除され
た前記選択されたロックの制御を獲得できるようにする
手段を含むことが望ましい。
【0013】各ハードウェア・ロックは特定の指定され
た動作能力に関連し、ロックに対応するデータは前記指
定された能力に関する全てのビット符号化データを含む
ことが望ましい。これは2以上のプロセッサが、前記装
置が異なるクラスのロックに制御される限り、同時にデ
ータ操作を実行することを可能にする。
【0014】この構成は複数のアトミック命令シーケン
スが並行してランすることを可能にし、複数のクラスの
ロックによる競合を少なくする。前記ロックはプロセッ
サ内にあるので、競合を解消する際に主記憶をアクセス
する必要がなくなる。
【0015】本発明のもう1つの特徴は、データ処理ネ
ットワークで、ロックが他のプロセッサによりいったん
解除されれば、当該ロックのアクセスを可能にするプロ
セスにある。前記プロセスは (i) ロックがどれも特定
のプロセッサにより制御されないことを示す遊休状態、
(ii)ロックが獲得され特定のプロセッサにより制御され
ていることを示すロック状態、(iii) プロセッサはロッ
クを解除したが、当該ロックに関連した少なくとも1つ
のデータストア動作はまだ終了していないことを示す解
放状態を含む3つのロック状態の1つについて各プロセッ
サを監視するステップ、ロックを制御するプロセッサに
より実行される最後のデータストア動作を追跡するステ
ップ、及び全てのプロセッサのキャッシュ・メモリ・デ
イレクトリ内の最後のストア動作に関連したロケーショ
ンの読取りに応答して、特定のプロセッサを強制的に解
放状態から遊休状態にし、それによって他のプロセッサ
が次のロック・サイクル中にロックを獲得できるように
するステップを含む。
【0016】従って、主記憶メモリへの最後のストアが
まだ未解決のうちに、前に制御されたロックは他のプロ
セッサに使用可能になり、同じロックを要求している他
のプロセッサは前記ストアが終了するまで待機する必要
がなくなる。
【0017】プロセッサアービトレーション・セクタの
相互接続、全てのアービトレーション・セクタにわたる
ロジックの二重化、共有資源のアクセスを制御する複数
のクラスのロックの使用、及び前記ロックに関連した競
合解消ロジックの組合わせは、複数プロセッサ・ネット
ワークが全てのプロセッサを有効に且つ均衡して使用
し、主記憶メモリを共有する装置間の迅速なアービトレ
ーションを行なうことを可能にする。各プロセッサは競
合解消に必要な全てのハードウェア及びロジックを個々
に含むから、前記ネットワークをアップグレードするた
めに付加されたプロセッサはどれも必要な競合解消ロジ
ックを含み、簡単で且つ費用効率のよいシステム拡張が
可能である。
【0018】
【実施例】本発明の実施例の理解を容易にするために、
最初に本発明の動作及び特徴の記述に用いる一定の用語
について簡単に説明する。IMPI命令:マイクロコードの
アセンブリ・レベル・コンピュータ・プログラム命令。
プロセッサはデータの論理的操作、例えばストア、加算
及び文字移動機能を実行する際に順次にIMPI命令を実行
する。IMPIタスク(即ちデータ操作):プロセッサにより
実行された又は実行できる単位を含む1以上のIMPI命令
の同期実行。各IMPIストリームは前記ストリームで用い
るデータ、及び他のIMPIストリームに又は他のIMPIスト
リームから情報を転送するために必要なパラメータを含
む。水平マイクロコード(HMC):IMPI命令を解釈する、
即ちIMPI命令を一連のより簡単なステップに分解するマ
イクロコード。HMC命令も制御ワードと呼ばれ、前記ハ
ードウェアの状態を制御する。
【0019】図1はビット符号化データに関する種々の
命令をストアし実行するデータ処理ネットワーク16を示
す。この実施例において前記ネットワークは4つのプロ
セッサ18、20、22及び24を含むが、使用するプロセッサ
の数は多くても少なくてもよい。主記憶インタフェース
26はこれらのプロセッサを主記憶メモリ28に結合する。
【0020】プロセッサ18は水平マイクロコード(HMC)
を含む制御記憶30及び制御記憶出力レジスタ32を含む。
プロセッサ18は更に汎用のIMPIレジスタ・アレイ34を含
む。IMPIタスクがプロセッサ18の実行に切替えられる
と、前記タスクに関連するデータ及びIMPI命令は、主記
憶メモリ28から、又はプロセッサ18のキャッシュ・メモ
リ36からレジスタ34にロードされる。タスクがプロセッ
サ18から切替えられると、プロセッサ18のデータは主記
憶メモリ28にストアされ、もし関連したキャッシュ・ラ
インが有効ならば、キャッシュ・メモリ36にストアする
こともできる。
【0021】キャッシュ・メモリ36は主記憶メモリ28内
のアドレス即ちロケーションの特定のセットに関連した
複数のキャッシュ・ラインを持つ1ウェイ・アソシアテ
ィブ・ストアスルー・キャッシュである。キャッシュ・
メモリ36は更にキャッシュ・デイレクトリ38を含む。キ
ャッシュ・デイレクトリ38はキャッシュ・メモリ36に写
像された主記憶メモリ・アドレスのレコードであり、キ
ャッシュ・メモリ36内の対応する各ロケーションが有効
か無効かの表示をストアする。プロセッサ18は、キャッ
シュ・インタフェース42を介したキャッシュ・メモリ36
との両方向の取出し及びストアを含む、データの取出し
及びストアのためのロジック40を(半導体チップ回路の
形式で)含む。プロセッサ18はデータの算術演算を実行
するロジック44及びルックアサイド・バッファ46を含
む。このバッファは実アドレスに写像された一定の仮想
アドレスのレコードである。
【0022】プロセッサ18はプロセッサ18とインタフェ
ース26の間で転送されたアドレス及びコマンド・データ
のために複数のラッチを含む。これらは主記憶コマンド
・レジスタ48並びに50、52及び54にそれぞれ示された3
つの実アドレス・バッファのスタックを含む。
【0023】プロセッサ18はアービトレーション・セク
タ即ち主記憶制御部56を有する。アービトレーション・
リンク58は主記憶制御部56を他のプロセッサのほぼ同一
のアービトレーション・セクタに相互接続し、前記アー
ビトレーション・セクタにあるアービトレーション・ロ
ジックと組合わせて用いられ、プロセッサのどれか1つ
に、(1)プロセッサと主記憶メモリの間のインタフェー
ス26のアクセス及び(2)後で説明するようにハードウェ
ア・ロックの制御の獲得に関して優先順位を割当てる。
【0024】プロセッサ20、22及び24はプロセッサ18に
類似し、それぞれの制御装置60、62及び64、それぞれの
制御記憶出力レジスタ66、68及び70、それぞれのIMPIレ
ジスタ・アレイ72、74及び76、それぞれのキャッシュ・
メモリ78、80及び82、それぞれのキャッシュ・デイレク
トリ84、86及び88、それぞれのロジック90、92及び94、
それぞれのキャッシュ・インタフェース96、98及び10
0、それぞれのルックアサイド・バッファ102、104及び1
06、それぞれの算術ロジック108、110及び112、並びに
それぞれのアービトレーション・セクタ114、116及び11
8を含む。これらの装置の各々は更に主記憶コマンド・
レジスタ及び実アドレス・バッファ115、117及び119を
含む。これらの素子はプロセッサ18内の対応部とほぼ同
じように動作する。よって、プロセッサの各々は、任意
の所与の時点で特定のタスクを制御できるのはプロセッ
サの1つだけであるが、同じようにIMPIタスクの制御を
獲得する能力を有する。
【0025】主記憶メモリ28はビット符号化データをス
トアするメモリ記憶アレイ120、及びIMPI命令が埋込ま
れているプログラム命令記憶122を含む。基本デイレク
トリ124は主記憶メモリ28内にあり、実アドレスに対応
する仮想アドレスの完全なレコードであるルックアサイ
ド・バッファ46、102、104及び106はそれぞれ基本デイ
レクトリ124の部分に対応する。主記憶メモリ28は複数
の個々のメモリ・カードから成り、各カードはそれ自身
のメモリ・アレイ及びそれ自身の命令セグメントを有
し、前記セグメントはIMPI命令を供給するように協同す
ることが望ましい。
【0026】インタフェース26は複数の別々のバス(図
示せず)を含み、その各々は全てのプロセッサ及び主記
憶メモリ28のメモリ・カードが共有することができる。
例えば、作業データ(ネットワークのユーザ最も直接に
関係する情報)は作業データ・バスにより伝送される。
コマンド/アドレス・バスは、主記憶メモリ28内で作業
データをストア又は検索することが予定されるアドレス
に関する情報を含む作業データの伝達を制御する情報を
伝送する。作業データがデータ・バスを介して伝送され
るとき、通信バスは作業データの状況を伝達する。デー
タ・ライン126、128、130及び132はプロセッサ18、20、
22及び24とインタフェース26を接続する。データ・ライ
ン134はインタフェース26と主記憶メモリ28を接続する
が、複数のメモリ・カードの場合には、各カードはもち
ろんそれ自身がインタフェースへのデータ・ラインを有
する。
【0027】図2に示すアービトレーション・セクタ56
はビット符号化データのための複数のレジスタを含む
が、その一部は図3に詳細に示される。アービトレーシ
ョン・セクタ56、114、116及び118は同じレジスタを有
し、4つの全てのアービトレーション・セクタ内のロジ
ックは同じ状態にある。従って、主記憶制御ロジックは
4つのプロセッサの全てに重複している。しかしなが
ら、各プロセッサ内のロジックの大部分は重複せず、即
ち当該プロセッサ特有のものである。
【0028】ハードウェアについては、主記憶制御部5
6、114、116及び118にあるレジスタは互いに同じであ
る。レジスタは一般的なロジックだけではなくプロセッ
サ特有のロジックも含むから、前記レジスタに含まれた
ロジック又は情報はプロセッサ毎に僅かに異なる。アー
ビトレーション・セクタ56の構成レジスタ136は独特の
プロセッサ識別をビット位置1〜4のフィールドに含む。
これはもちろんプロセッサに特有のものである。ビット
位置1の2進数"1"はプロセッサ18を4つのシーケンスの中
の"第1"のプロセッサとして識別する。プロセッサ20の
中の対応するフィールドは"0100"である。ビット位置5
〜8を含むフィールドは全ての構成レジスタにおいて同
一であり、可能な4つのプロセッサのうちの幾つが実際
にネットワークの一部であるかを示す。構成フィールド
136内の2進数"1111"は4つのプロセッサ全てが接続され
ることを示す。最後に、ビット位置9は本発明の、後で
説明するタイ・ブレーク特性の性質を決定する。即ち、
2進数0は乱数発生装置によりプロセッサを変えるタイ・
ブレーク特性を生じるのに対し、2進数1は順次に優先順
位を変える。
【0029】アービトレーション・セクタ56は更に4つ
の多重プロセッサ(Mp)レジスタ138、140、142及び144を
含む。これらのレジスタの各々はプロセッサ特有の情報
を含む。レジスタ138 (Mp A) はプロセッサ18に特有の
情報を含み、このプロセッサからアービトレーション結
合即ち相互接続への出力である。レジスタ140、142及び
144 (Mp B〜D) はそれぞれプロセッサ20、22及び24の1
つに特有の情報を含み、相互接続からプロセッサ18への
入力である。バス監視レジスタ146はプロセッサ間での
インタフェース26を制御する優先順位についての情報を
含み、当該プロセッサの入出力である。レジスタ146
は、前記キャッシュ・メモリ内のラインを除去し、その
ためのサイクル・スチールを生じさせる必要性について
の情報を供給する際にも用いられる。
【0030】図3に詳細に示されたレジスタ138で、ビッ
ト位置0及び1はプロセッサ18の現在の動作モードを示
す。この場合、2進数"10"はキャッシュ・メモリ取出し
を表わす。代替モードは 00 キャッシュ・メモリ・アクセスなし 01 キャッシュ・メモリストア 10 キャッシュ・メモリ取出し 11 基本デイレクトリ探索 を含む。ビット位置2〜6は10のハードウェア・クラス・
ロックの1つ及び特定の識別されたロックに関連したコ
マンド(加算ロック、変更ロック又は解除ロック)を識別
する。この場合、"0110"はロック番号6の2進識別である
が、6番目のビット位置の2進数1はロック番号6を付加す
るコマンドを表わす。ビット位置7はインタフェース26
の要求に関係し、ビット位置8はキャッシュ・メモリ・
ラインの除去に、ビット位置9はパリティに使用でき
る。
【0031】本発明のすぐれた特徴の1つであるハード
ウェア・クラス・ロックの理解を深めるには、"アトミ
ック"タスク又は動作を考察するのが適切である。ビッ
ト符号化データに関する動作は、もしそれが入力から即
座に計算されることが明白であれば、アトミックであ
る。主記憶メモリに関連する動作は、もしそのソース・
オペランドが、主記憶メモリから取出される時点と当該
動作の結果が再び主記憶メモリにストアされる時点の間
に変更されることが許されなければ、アトミックとみな
される。そして前記ストアされた結果は前記ストア時点
での入力に対して正しい。複数のプロセッサを有するネ
ットワークでは、動作は、プロセッサ間で主記憶アクセ
スの獲得を競合する試みが検出され現在の動作が終了す
るまで延期される場合にだけアトミックであることが保
証される。更に、もしアトミック動作の数が最小限に抑
えられれば、多重プロセッサ・ネットワークの性能は向
上する。
【0032】よって、大抵のIMPI命令それ自体はアトミ
ックではない。むしろ、選択されたIMPI命令は主記憶メ
モリ28内で共有された同じタイプのオブジェクトに関し
て動作する他の命令に関してだけアトミックである。従
って、前記命令を含むIMPI動作は"相対的なアトミック
動作"とみなされる。これらの動作では、前記入力は、
動作が入力を最初に参照する時点から当該動作がその結
果をストアする時点まで、同じタイプの他の動作により
変更されることはない。共有オブジェクトはオブジェク
ト・クラスに分割される。各クラスの動作は前記ハード
ウェア・クラス・ロックの1つにより保護される。
【0033】処理ネットワーク16は10個のハードウェア
・クラス・ロックを利用し、その各々は特定のアドレス
又はアドレスのセットよりもむしろ能力、即ちデータに
関する動作のタイプに対応する。例えば、前記ロックの
1つは基本デイレクトリ124のアクセスを制御し、もう1
つのロックは比較及びスワップ命令を制御し、もう1つ
のロックはタスク・ディスパッチャを制御し、更にもう
1つのロックはI/Oキューを制御する。プロセッサ18、2
0、22及び24のどれか1つは1から10までの全てから任意
の番号のロックの制御を獲得することができる。それに
対し、ロック制御はプロセッサの1つだけが任意の一時
点で所与のロックを獲得し保持できるので排他的であ
る。多重プロセッサ・ネットワークでは、これは対応す
るクラスに関してアトミックである動作又はタスクを提
供し、しかも並行してランする複数の動作を可能にす
る。ロックは完全に前記プロセッサ及びそれらの相互接
続の範囲内で獲得され、ロックの競合は解消される。こ
れらの動作は主記憶メモリとの対話は要求されないので
はるかに迅速に進行する。
【0034】図2及び図3で、アービトレーション・セク
タ56は4つのロック・レジスタ148、150、152及び154 (L
K A〜D) を含む。各ロック・レジスタはプロセッサ特有
の情報を含み、Mpレジスタの1つに対応する、即ちレジ
スタLK AはレジスタMp Aに対応し、以下同様に対応す
る。
【0035】各ロック・レジスタのビット位置0〜9は現
に保持しているハードウェア・ロックを識別する。例え
ば、レジスタ148(図3)のビット位置2及び3のそれぞれの
2進数1は、プロセッサ18内の(保持された)ロック2及び3
が活動状態であることを表わす。
【0036】ビット位置10及び11、及びビット位置12〜
14は、以下に説明するように、それぞれモード・シーケ
ンサ及びストア追跡(WIS)シーケンサに関係する。即
ち、ビット位置10及び11の"10"はプロセッサ18の"ロッ
ク"された状態又は状態を表わす。換言すれば、少なく
とも1つのクラス・ロックはプロセッサ18において活動
状態である。ビット位置12〜14の"000"は追跡シーケン
サにおける"ヌル"状態を表わす。他の2進数の組合せは
ストア追跡シーケンサにより追跡されているストアのロ
ケーションを 110 RAB 3 (バッファ54) 100 RAB 2 010 RAB 1 011 MSCMD (レジスタ48) 001 MP READ A のように示す。エントリ"MP READ A"はバス・モニタ・
レジスタ、例えばプロセッサ18のレジスタ146を識別す
る。このエントリは更に、追跡中のストア動作は終了し
ているが、関連するクラス・ロックはもし必要ならMPデ
イレクトリ(キャッシュ・デイレクトリのコピー)が除去
されるまでプロセッサ18により保持されることを表わ
す。
【0037】アービトレーション・セクタ56は更に15
6、158、160及び162に示す4つのモード・レジスタA〜D
を含む。これらのレジスタの各々は関連するレジスタMp
A〜Dの1つに対応し、関連するMpレジスタの第1及び第2
のビット位置にモード情報を供給する。
【0038】最後に、アービトレーション・セクタ56は
タイ・ブレーク・レジスタ164及びロック・タイ・ブレ
ーク・レジスタ166を含む。これらのレジスタの各々
は、2進数1のビット位置により、レジスタ164はインタ
フェース26の制御のためのバス・アービトレーションに
関して、レジスタ166はハードウェア・クラス・ロック
の獲得に関してプロセッサ18の優先順位を示す。
【0039】これらのレジスタの各々で、2進数1は最も
低い優先順位のプロセッサのビット位置を明確に識別す
るが、ビット位置のシーケンスに基づいて全てのプロセ
ッサの優先順位も決定する。即ち、タイ・ブレーク・レ
ジスタ164内の2進数1はプロセッサ22を最も低い優先順
位を獲得するものとして識別し、更にプロセッサ24は最
も高い優先順位を獲得することを示す。装置18は次に高
い優先順位を獲得し、装置20はその次に高い優先順位を
獲得する。ロックの獲得については、レジスタ166内の2
進数1はプロセッサ18を最も低い優先順位の装置として
識別し、装置20は最も高い優先順位を獲得し、装置22は
次に高い優先順位を獲得し、装置24はその次に高い優先
順位を獲得する。
【0040】優先順位指定は動的である、即ち、インタ
フェース・アービトレーション(レジスタ164)又はロッ
ク・アービトレーション(レジスタ166)の各事象により
変化する。レジスタ164では、この変化はラウンド・ロ
ビン又は回転式である、即ち2進数1は1ビットずつ右に
シフトする。ロック・タイ・ブレーク・レジスタ166で
も、前記変化はラウンド・ロビンとすることができ、も
し構成レジスタ136内のビット位置9が2進数0を有するな
らばラウンド・ロビンである。それに対して2進数1はレ
ジスタ166内に、乱数発生装置によって駆動される不規
則な変化を生じる。
【0041】全てのプロセッサのレジスタMp A〜D、LK
A〜D及びモードA〜D内のロジックは同じである。しかし
ながら、レジスタMp A 内のロジックはプロセッサ毎に
異なる。同様に、レジスタMp B、Mp C及びMp D の各々
の内容もプロセッサ毎に異なる。その理由はプロセッサ
のアービトレーション・リンク即ち相互接続58を示す図
4から明らかである。プロセッサ20、22及び24は、それ
ぞれのアービトレーション・セクタに、Mp A レジスタ1
68、170及び172、Mp Bレジスタ174、176及び178、Mp C
レジスタ180、182及び184、並びにMp D レジスタ186、1
88及び190をそれぞれ含む。各プロセッサは対応するレ
ジスタ194、196及び198を含む。
【0042】Mp A レジスタの各々は関連したプロセッ
サの出力レジスタであり、その内容を4つの10ビット・
データ・バス200、202、204及び206の1つに供給する。
各データ・バスの10ビットの容量はMpレジスタ内の10ビ
ット位置に対応する。従って、データ・バス200〜206の
各々はロジックを関連レジスタMp Aから他のプロセッサ
の各々にある入力レジスタ(Mp B〜D)の1つに事実上即座
に転送する。更に、バス200〜206はプロセッサ間でラウ
ンド・ロビン又は順次相互接続を形成し、それによって
4プロセッサは全て同じ状況を獲得する。ラウンド・ロ
ビン相互接続はタイ・ブレーク・レジスタ164及び166に
関する前述の優先順位関係に対応する。換言すれば、1
ビット位置即ち1つの"プロセッサ"を右にシフトする際
には、最下位の優先順位から最上位の優先順位に右シフ
トする場合を除いて、下降優先順位シーケンスがある。
プロセッサ18の場合、このシーケンスは、出力をデータ
・バス200に供給するレジスタ138 (Mp A) から生じ、次
のデータ・バス202、204及び206からの入力を次のレジ
スタ140 (Mp B)、142 (Mp C)及び144 (Mp D) で受取
る。プロセッサ20では、レジスタ168 (Mp A) の出力は
データ・バス202に供給され、バス204、206及び200はB
〜Dに入力・シーケンスを供給する。プロセッサ22及び2
4はそれぞれ同じシーケンスを示し、唯一の相違はMp A
レジスタの出力を受取る"最初"のデータ・バスである。
【0043】データ・バス200〜206の各々は逆方向即ち
左方向のシーケンスでプロセッサに接続される。例え
ば、データ・バス200は、Mp A レジスタ138の出力を受
取るという点でプロセッサ18に関連する。このバスはそ
の出力を装置20のMp Dレジスタ186、装置22のMp Cレジ
スタ182、及び装置24のMp B レジスタ178に供給する。
従って、レジスタ138、178、182及び186は同じである。
同様に、残りのデータ・バス202〜206の各々は逆方向の
シーケンスでプロセッサに接続する。唯一の相違は各バ
スは異なるプロセッサからMp A レジスタ出力を受取る
ことである。
【0044】バス・モニタ146、194、196及び198は両方
向性であり、相互に接続され且つインタフェース26に接
続される。従って、プロセッサの各々は現にどのプロセ
ッサがインタフェース26を制御しているかを知らされ
る。
【0045】この相互接続の結果として、各プロセッサ
は状況が等しく、それ自身を "プロセッサA" とみな
す。タイ・ブレーク・レジスタ164及び166はA〜Dシステ
ムによって維持される。特に、プロセッサ18のタイ・ブ
レーク・レジスタ164は"プロセッサC"を最も低い優先順
位を獲得するものとして識別する。対応するプロセッサ
22のタイ・ブレーク・レジスタ(図示せず)は2進ワード
"1000" を含み、"プロセッサA"が最も低い優先順位に
あるものとする。もちろん、各構成レジスタはビット位
置1〜4で唯一の関連するプロセッサを識別する。
【0046】図5は1プロセッサ・カード208及び2プロセ
ッサ・カード210の形式で3つのプロセッサを含むネット
ワークの例を示す。前記1プロセッサ・カードはMp構成
レジスタ212及び214を含み、前記2プロセッサ・カード
は構成レジスタ216及び218を含む。各構成レジスタは特
定のプロセッサ識別を示す。設置されたプロセッサは同
じであり、第3のビット位置に対応するプロセッサは設
置されていないことを示す。よって、前記ネットワーク
は3つのデータ・バス220、222及び224を必要とする。デ
ータ・バス225は使用されないが、両プロセッサ・カー
ドが2プロセッサ・カードである場合は使用される。
【0047】図2及び図3に関して前に説明したハードウ
ェア・クラス・ロックはプロセッサ・ネットワークの直
列化機構である。前記ロックは互いに異なる水平マイク
ロコード(HMC)命令ストリームを直列化する。ハードウ
ェア・クラス・ロックは主記憶メモリを必要とせず且つ
一度に複数のロックを活動状態にし、互いに並行してラ
ンできるので従来の直列化機構よりもかなりすぐれてい
る。
【0048】プロセッサ18〜24の1つがクラス・ロック
の制御を獲得する機構はあらゆるHMC制御ワードで使用
できる6ビットのロック・フィールドである。4つのビッ
ト位置は関連する10個の使用可能なハードウェア・クラ
ス・ロックのうちの特定のロックを識別する。1つのビ
ット位置は当該ロックに関連したコマンドに関連し、最
後のビットはパリティ・ビットである。
【0049】ロック制御フィールドは2つの一般的なコ
マンド及び特定のロックに特有の3つのコマンドを含む
ことができる。一般的なコマンドは2進数10101(パリテ
ィ・ビットを含まない)で示されたNULL(ヌル)コマンド
及び2進数10100で示されたRESET(リセット)コマンドで
ある。ヌル・コマンドは前記ロックに変化を生じない
が、リセット・コマンドは特定のプロセッサが現に所有
する全てのロックを命令ストリーム内の次のHMC制御ワ
ード中にリセットする。
【0050】特定のロックに特有のコマンドはADD (加
算)コマンド、CHANGE(変更)コマンド及びRELEASE(解除)
コマンドを含む。加算コマンドについては、(使用可能
な10個のうちの)最初の4つの2進ビット位置は特定のロ
ックを識別し、最後のビットは、2進数1であるとき、当
該コマンドを加算コマンドとして識別する。10個のロッ
ク(LOCK)の加算コマンドは次の通りである。
【0051】 00001 ADD LOCK 0 00011 ADD LOCK 1 00101 ADD LOCK 2 00111 ADD LOCK 3 01001 ADD LOCK 4 01011 ADD LOCK 5 01101 ADD LOCK 6 01111 ADD LOCK 7 10001 ADD LOCK 8 10011 ADD LOCK 9 変更コマンドでも、最初の4つの2進位置は関連したロッ
クを示す。最後の2進ビットは0であり、当該コマンドを
変更コマンドとして識別する。例えば、2進数00000はロ
ック0に変更するコマンドを表わすのに対し、2進数0110
0はロック・クラス6に変更するコマンドである。変更コ
マンドは現に保持されたロックを解除し、そして当該変
更コマンドで識別されたロックだけを付加する。
【0052】解除コマンドは最初のビット位置で2進数1
により識別され、最後の4つのビット位置で特定のロッ
クの逆方向の識別が 11111 RELEASE LOCK 0 11110 RELEASE LOCK 1 11101 RELEASE LOCK 2 ・・・ 10110 RELEASE LOCK 9 のように続く。ロック・コマンドは制御記憶出力レジス
タ(32、66、68及び70)から到来し、Mp A レジスタ(13
6、168、170及び172)に入れられる。そして、それらは
対応するMPフィールドに、例えば、出力レジスタ138に
関連したデータ・バス200に転送され、次いで対応する
入力レジスタに、例えば、出力レジスタ138に関連した
入力レジスタ178、182及び186に転送される。
【0053】図6は前記水平マイクロコード(HMC)クラス
・ロックの1つを利用するデータに関する、いくらか簡
略化され一般化された動作を示す。タスク又は動作を実
行する前に、プロセッサ18〜24の1つは、加算コマンド
又は変更コマンドのどちらかにより、前述のように所望
のロックの制御を獲得する。ひとたびロックの制御を獲
得すれば、プロセッサは共有データ、即ち現に制御下に
あるロックにより保護されているデータを取出す。ひと
たびデータが獲得されれば、1以上のHMC命令(制御ワー
ド)に従ってプロセッサはデータに関する所望の動作を
実行する。動作が終了すると、プロセッサは共有データ
を主記憶メモリにストアする。プロセッサはロックの制
御を解除コマンド又は変更コマンドにより放棄する。他
のプロセッサはどれもロックの制御を獲得しないで共有
データを取出すことも、現に制御中のプロセッサにより
ロックが解除されるまでは当該ロックを獲得することも
できない。
【0054】クラス・ロックに関する種々のコマンドは
レジスタ148のようなロック・レジスタに関連したシー
ケンサにより実行される。MPロック・シーケンサは関連
したプロセッサのロック及びロック解除動作を追跡す
る。MPロック・シーケンサは関連したプロセッサが1以
上のロックを所有する時期を知り、且つロックを解除す
る責任もある。関連したプロセッサで活動状態のロック
を有するストアが行なわれると、MPロック・シーケンサ
は前記ストアが完了するまで、前記MP又はキャッシュ・
デイレクトリからの除去を含めて当該ロックを解除しな
い。MPロック・シーケンサは関連したプロセッサを追跡
し、ロック競合があるときMSC延期(holdoff) を生成す
る。これは競合の解消を待つ時期をプロセッサに知らせ
る。MPロック・シーケンサはIDLE(遊休)、LOCKED(ロッ
ク)及びFREE(解放)と呼ばれる3つの下位セクションを有
するモード(ILF)シーケンサを含む。ILFシーケンサは関
連したシーケンサがロックが所持しているかどうかを追
跡し、もしそうなら、それらの解除を試みる。他のシー
ケンサは、最終的なストアが完了し、もし必要なら、MP
及びキャッシュ・デイレクトリが更新されるまでロック
が保持されているあいだキューされているストアを追跡
するWIS (WHERE IS STOREの略)シーケンサである。
【0055】ILFシーケンサを図7及び図8に関連して説
明する。本発明の1つの良好な実施例では、シーケンサ
は図のロジックの流れに従ったマイクロコードで実現さ
れる。シーケンーサは2進ビット・パターン00、10及び0
1でそれぞれ示す遊休、ロック又は解放のモード状態802
で開始する。2進状態11はモード入力状態の検査のため
に用いる違法状態である。
【0056】遊休状態はロックが保持されていないこと
を示す。プロセッサは延期されロックが使用可能になる
まで待機させることができる。もしロックが要求され許
可されれば、ILFシーケンサはロック状態に移る。
【0057】ロック状態は少なくとも1つのロックが保
持されていることを示す。ロック状態から、シーケンサ
は遊休状態又は解放状態に移る。ロック状態を脱出する
ために、水平マイクロコードはこのプロセッサにより保
持された全てのロックを解除しなければならない。
【0058】ロックは、変更コマンド、解除コマンド及
びリセット・コマンドを含む幾つかの方法で解除するこ
とができる。もしロックが保持されていたとき出された
未決着のストアがあれば、それはWISシーケンサにより
追跡され、遊休、ロック、解放シーケンサは解放状態に
移る。もし未決着のストアがなければ、ILFシーケンサ
は遊休状態に移る。解放状態は、水平マイクロコードが
最後の1以上のロックを解除したが、まだ未決着の1以上
のロックによりカバーされたストアがあることを示す。
前記ストアが完全になるまで、ハードウェアは1以上の
ロックを保持する。前記未決着のストアが処理されると
モード・シーケンサは遊休状態に移る。
【0059】図7及び図8において、遊休、ロック及び解
放シーケンサはブロック800で開始し、システムのモー
ドが入力される。モード状態の状態はブロック802で検
査され、もしモードが遊休状態ならば、プロセスはブロ
ック804に進む。もしモードが解放状態ならば、プロセ
スはブロック812に進む。もしモードがロック状態なら
ば、プロセスはブロック820に進む。
【0060】もし状態が遊休なら、ブロック804でシー
ケンサ内の2つの変数、加算コマンド及び変更コマンド
変数が検査される。もし加算コマンド(ADDCMD)及び変更
コマンド(CHGCMD)がどちらも真であればプロセスはブロ
ック806に進み、もし真でなければプロセスはブロック8
72に進む。ブロック806でプロセスは使用可能なロック
(LCKAVAIL)を検査する。もしロックが使用可能であれ
ば、プロセスはブロック808に進む。808で、変数セット
・ロック(SETLCK)は真にセットされる。もしロック使用
可能検査が誤りであれば、プロセスはブロック810に進
む。810で、ロック延期 (LOCHOFF)は真にセットされ
る。そしてプロセスはどちらの場合もブロック872に進
む。
【0061】もし遊休、ロック及び解放シーケンサが解
放状態であればプロセスはブロック812に進む。812で、
加算コマンド(ADDCMD)及び変更コマンド(CHGCMD)が真で
あるかどうかを検査する。もしそれらが真であれば、ブ
ロック814でロック延期(LOKHOFF) は真にセットされ
る。プロセスはMPREAD (MP読取)を検査するブロック816
に進む。ブロック812で、もし加算コマンド及び変更コ
マンドの論理的な検査の結果が誤りであれば、プロセス
は直にブロック816に進む。ブロック816でMPREADの状態
が有効であれば、プロセスはブロック818に進み、全て
のロックをリセットする。そしてILFシーケンサは終了
する。
【0062】もし遊休、ロック及び解放シーケンサがロ
ック状態であれば、プロセスは加算コマンドに関する10
回の検査を通じて、ロック使用可能、ストア保留 (pend
ing)、及び変更モード状態の検査を順次に配列する。最
初の検査はブロック820で使用可能なロックがないとき
の加算コマンドの検査である。もしこれらの論理的な状
態が真であれば、ブロック822でロック延期は真にセッ
トされる。もしそれらが誤りであれば、プロセスはブロ
ック824に進み、加算コマンドがあるかどうかを検査す
る。もしこの論理的な状態が真であれば、要求している
ロックはブロック826で真にセットされ、プロセスはブ
ロック828に進む。もしブロック824で加算コマンド状態
がなければ、824の前記状態は誤りであり、プロセスは
ブロック828に進む。ブロック828で、変更コマンド、ロ
ック使用可能及びストア保留検査が行われ、変更コマン
ドはあるがロック使用可能もストア保留もないときは、
3つの事象が起きる、即ちブロック830で全てのロックを
リセットし、ブロック832でロック延期をセットアップ
し、ブロック834でシーケンサを遊休モードに送る。も
し828で状態が誤りであれば、プロセスはブロック836に
進み、変更コマンド、ロック使用可能及びストア保留(S
TOPEND) なしについて検査する。もし836でこの論理的
な状態が真であれば、プロセスはブロック840に進む。8
40でロック・プロセスが真にセットされる。そしてプロ
セスは842に進む。842で変更モード及びストア保留が真
にセットされているかどうかが検査される。もしこの状
態が真であれば、ブロック844でロック延期がセットさ
れ、ブロック846でILFシーケンサのモージは解放にセッ
トされる。
【0063】もし変更モード及びストア保留のどちらか
が誤りであれば、プロセスはブロック848に進む。848で
解除コマンド(RELCMD)、唯一のロック(ONLYLCK) 及びス
トア保留(STOPEND) なしが検査される。もしこの論理的
な状態が真であれば、プロセスはブロック850に進む。8
50で全てのロックはリセットされ、そしてブロック852
でILFシーケンサ・モードは遊休にセットされる。もし8
48で前記状態が誤りであれば、プロセスは854に進む。
もし854で解除コマンド、唯一のロック及びストア保留
が真であれば、ブロック856でシーケンサ・モードは解
放にセットされる。もし854での前記状態の検査結果が
誤りであれば、プロセスはブロック858に進む。858で解
除、ロック及びストア保留状態が真であるかどうかを判
定する検査が行われる。もしこの検査の結果が真であれ
ば、プロセスはブロック860に進み、要求されたロック
は延期される。もし858で前記状態検査の結果が誤りで
あれば、プロセスは862に進み、全解除(RELALL)及びス
トア保留なしの状態が検査される。もしブロック862の
状態検査の結果が真であれば、ブロック864で全てのロ
ックがリセット(RSTALL)され、ブロック866でILFシーケ
ンサ・モードが遊休にセットされる。もし862で状態検
査の結果が誤りであれば、プロセスはブロック868に進
む。868で全解除及びストア保留状態が検査され、もし
その結果が真であれば、ブロック870でモードは解放に
セットされる。もし868で前記状態検査の結果が誤りで
あれば、シーケンサは終了する。
【0064】MPロック・シーケンサのもう1つの部分は
前記WISシーケンサである。WISシーケンサの目的は1以
上のロックの下に出されるストアコマンドを追跡するこ
とである。ロックされている最新ストアコマンドが追跡
される。WISシーケンサはヌル、RAB1、RAB2、RAB3、MSC
MD及びMPREADを含む多数の状態の中に置くことができ
る。
【0065】ヌル状態は完成待ちのロックの下に出され
たストアがないことを示す。
【0066】状態RAB3は終了待ちのロックの下に出され
たストアが現にあることを示す。当該ストアコマンドは
現に主記憶コマンド・キューの中の第3の位置、例え
ば、もしプロセッサ18が関連していれば実アドレス・バ
ッファ54にある。
【0067】RAB2状態は終了待ちのロックの下に出され
たストアが現に存在することを示す。当該ストアコマン
ドは現に主記憶コマンド・シーケンスの中の第2の位置
にある。
【0068】RAB1状態は終了待ちのロックの下に出され
たストアが既にあることを示す。当該ストアコマンドは
現に主記憶コマンド・キューの中の第1の位置にある。
【0069】MSCMD状態はロックの下に出されたストア
が主記憶コマンド・レジスタ内に現に存在しMSバスに進
む順番を待っていることを示す。状態MPREADはMPデイレ
クトリが除去されるまで、もし必要なら、ロックを保持
することを除いてストアが処理されたことを示す。
【0070】本発明の1つの良好な実施例におけるWISシ
ーケンサの状態は、2進数000で示すヌル状態、2進数110
で示すRAB3状態、2進数100で示すRAB2状態、010で示すR
AB1状態、011で示すMSCMD、001で示すMPREADを含み、違
法状態は111及び101で示すことができる。WISシーケン
サは下記の状態の下にあるべき状態を計算する。図9
で、もしLDRA3状態及びロック状態が真であれば、前記
シーケンサはブロック906でRAB3の状態である。もしLDR
A2及びロック状態が真であれば、WISシーケンサはブロ
ック904でRAB2の状態である。もしLDRA1及びロック状態
が真であれば、WISシーケンサはブロック902でRAB1の状
態である。もしLDMSC及びロック状態が真であれば、ブ
ロック908でWISシーケンサはMSCMDの状態であり、もし
遊休状態であれば、WISシーケンサはヌル状態である。
【0071】図9はWISシーケンサのプロセスの流れ図を
示す。RAB1状態910、RQB2状態916、RAB3状態922、MSCMD
状態928、MPREAD状態934及びヌル状態936が図示されて
いる。RAB1状態910では、プロセスは最初に変数ポップ
(POP)、遊休及び新ロード(NEWLOAD)が真ではないかどう
かを検査する。もしそれらが全て真ではないならば、WI
SシーケンサはRAB1状態のままである。もしそれらのう
ちのどれか1つが真ならば、WISシーケンサはポップが真
かどうかを検査する。もし遊休も真ではなく新ロードも
真でなければ、前記シーケンサはMSCMDシーケンスの始
めに戻る。もしブロック914で状態が誤りならば、WISシ
ーケンサはブロック940で終了する。同様に、RAB2状態
はポップ、遊休及び新ロード状態が誤りかどうかを検査
する。もしそれらが誤りならば、プロセスはRAB2の状態
に戻る。ブロック918でもしこれらの状態が誤りなら
ば、プロセスはブロック920に進み、そこでポップ、遊
休及び新ロードが検査される。もしこの検査の結果が誤
りならば、プロセスは終了する。もしこの検査が真なら
ば、前記シーケンサはMSCMD状態に移る。同様に、RAB3
についても、もしポップ、遊休及び新ロード状態が全て
誤りならば、プロセスはRAB3の状態のままである。もし
これらのうちの1つの状態が真ならば、プロセスはブロ
ック926に進む。もし状態ポップが真ならば、プロセス
はMSCMDの状態に移る。もし状態ポップが誤りであり、
状態遊休及び新ロードが誤りならば、プロセスはブロッ
ク940に進み、WISシーケンサは終了する。一方、MSCMD
状態で、WISシーケンサは最初にブロック930で状態使用
中(BUSY)、遊休及び新ロードをそれぞれ検査する。これ
らの状態が真である間は、プロセスはMSCMD状態のまま
である。もしこれらの状態が誤りであれば、プロセスは
ブロック932に進み、次の状態使用中、遊休なし及び新
ロードなしが真であるかどうかを検査し、もし真であれ
ばプロセスはMPREADのブロック934に進み、もし(前述
の)MPREAD状態が満たされなければ、前記シーケンスは
ブロック940で終了する。
【0072】図10は同時ヒットロック(HITLOCK) 解消機
構の概要図を示す。同時ヒットロック解消レジスタは、
2以上のプロセッサが同時に同じロックを要求すると
き、どのプロセッサが最も高い優先順位を獲得するかを
決定する。それは最初のプロセス・サイクルで最初のタ
イ・ブレーク・ロードからロードされる。
【0073】最初のタイ・ブレーク・ロードが生じた
後、BmpSHLckR と呼ばれる信号はいつでも同時ヒットロ
ック・レジスタを活動状態としてバンプする。前記信号
ビットは次に設置されたプロセッサに対する回転を示
す。オン(2進数1)の1ビットを有するプロセッサは最も
低い優先順位を獲得する。前記1ビットの右のプロセッ
サは最も高い優先順位を獲得する。前記レジスタは最初
のサイクルから全0に初期化するが、初期化後はオンの1
ビットだけを獲得する。BmpSHLckR は信号MPCONFIGビッ
ト9により選択される2つのソースを有する。もしMPCONF
IGビット9が0であれば、SHLCKRは不規則な時間に、その
時間のおよそ50%にわたり回転する。乱数発生装置は2
の14乗(16384)サイクル毎に15ビットを反復する。もしM
PCONFIGが1であれば、ロックが許可されればいつでもSH
LCKR上の1ビットは次に設置されたプロセッサに対して
回転する。
【0074】SHLCKRの低い優先順位ビットは前記設置さ
れたプロセッサに対応するビットによってのみ回転する
ことが重要である。もしそれが全てのビットを通じて回
転すれば、優先順位は1つのプロセッサに片寄ることに
なり、そのプロセッサに他のプロセッサよりも大きいロ
ック獲得の可能性を与える。
【0075】MPCONFIG (1〜4)はプロセッサID(識別)で
あり、MPCONFIG (5〜8)は設置されたプロセッサであ
る。INCARBは、例えば、もし選択されればSHLCKRをバン
プする乱数発生装置からの出力てある。そしてセットエ
ニーロック(SETANYLOCK)はロックが許可されるときはい
つでも活動状態である。
【0076】同時ヒット・ロック解消(SHLCKR)方式は図
10に示すようなハードウェアで実現される。図10で、MP
CONFIGレジスタ・ビット1、2、3及び4は選択機構を開始
し、それによって、もしライン1が高いレベルであれ
ば、選択ライン出力は00である。もしライン2が高いレ
ベルであれば、選択ライン出力は01である。もしライン
3が高いレベルであれば、選択ライン出力は10である。
もしライン4が高いレベルであれば、選択ライン出力は1
1である。選択ラインは、00の場合はMPCONFIGビット5、
6、7及び8の4ビット幅の4入力の間で選択するために用
いられ、01の場合はライン6、7及び5が選択され、10の
場合はライン7、8及び6が選択され、11の場合はライン
8、5及び7が選択される。
【0077】ブロック702は4ビット1、2、3及び4のProc
sAD ベクトルを生成する。ProcsADならびにバンプBmpSH
LckRビット、及びInitTieライン + SCHLCKR 2ベクトル
は本発明の同時ヒット・ロック機構の良好な実施例に入
力される。解消ロジックは図10に示す。SHLCKRL1ビット
1の生成はロジック・グループ704に示す。SHLCKRL1ビッ
ト2の生成はロジック・グループ706に示すようにセット
アップされる。SHLCKRL2ビット3はロジック・グループ7
08に示す。SHLCKRL1ビット4はロジック・グループ710に
示す。ロジック・グループ704はその論理的な実現の観
察により理解できる。SHLCKRL1の1の出力は状態変数、S
HLCKRL2ビット1〜4、SHLCKRL2ビット1、BmpSHLckR及びP
rocsADビット1〜4に追随するInitTie による。前記ロジ
ックは下記のアルゴリズムを実現する。もし下記の3つ
のロジックのセットのどれかが真であれば、出力SHLCKR
L1ビット1は真である。 セット1: InitTieビット1は真であり且つベクトルSHL
CKRL2 ビット1〜4は全0 セット2: SHLCKRL2 ビット1 AND NOT BmpSHLckR セット3: BmpSHLckR及びProcsADビット1は真であり且
つSHLCKRL2ビット4 OR SHLCKRL2ビット3 AND NOT Procs
ADビット4 OR SHRL2ビット2 AND NOT ProcsADビット3 A
ND NOTProcsADビット4は真 もし下記の3つのロジックのセットのどれかが真であれ
ば、出力SHLCKRL1ビット2は真である。 セット1: InitTieビット2は真であり且つベクトルSHL
CKRL2 ビット1〜4は全0 セット2: SHLCKRL2 ビット2 AND NOT BmpSHLckR セット3: BmpSHLckR及びProcsADビット2は真であり且
つSHLCKRL2ビット1 OR SHLCKRL2ビット4 AND NOT Procs
ADビット1 OR SHRL2ビット3 AND NOT ProcsADビット1 A
ND NOTProcsADビット4は真 もし下記の3つのロジックのセットのどれかが真であれ
ば、出力SHLCKRL1ビット3は真である。 セット1: InitTieビット3は真であり且つベクトルSHL
CKRL2 ビット1〜4は全0 セット2: SHLCKRL2 ビット3 AND NOT BmpSHLckR セット3: BmpSHLckR及びProcsADビット3は真であり且
つSHLCKRL2ビット2 OR SHLCKRL2ビット1 AND NOT Procs
ADビット2 OR SHLCKRL2ビット4 AND NOT ProcsADビット
1 ANDNOT ProcsADビット2は真 もし下記の3つのロジックのセットのどれかが真であれ
ば、出力SHLCKRL1ビット4は真である。 セット1: InitTieビット4は真であり且つベクトルSHL
CKRL2 ビット1〜4は全0 セット2: SHLCKRL2 ビット4 AND NOT BmpSHLckR セット3: BmpSHLckR及びProcsADビット4は真であり且
つSHLCKRL2ビット3 OR SHLCKRL2ビット2 AND NOT Procs
ADビット3 OR SHRL2ビット1 AND NOT ProcsADビット2 A
ND NOTProcsADビット3は真。
【0078】図11はプロセッサ18、20、22及び24の間の
競合を解消するためにハードウェア・クラス・ロックを
制御するタイ・ブレーク・ロジック回路を示す。説明の
便宜上、別々のロジック・ゲートが図示されているが、
この回路は実際には2×4 AND/OR 回路として実現され
る。主記憶メモリ28に対するインタフェース26の競合を
解消するために、入力は異なるが、やや類似の回路が用
いられる。一般にロジック回路は、ロックの1つの競合
の感知に応答し、ロックの争いに敗れるプロセッサに"
延期"を生じさせる。
【0079】図示のように、前記ロジック回路は3つの4
ビット比較器増幅器226、228及び230、並びに5つのORロ
ジック・ゲート232、234、236、238及び240を含む。1ま
たは2のORゲートが各比較器に関連する。各比較器及び
関連したORゲートの出力はそれぞれANDロジック・ゲー
ト242、244又は246に供給される。最後に、ANDゲートの
出力、及び他の延期状態を表わす入力248はORロジック
・ゲート250に供給される。ORゲート250の出力は"敗北"
プロセッサに延期状態を生じさせる。
【0080】比較器増幅器226は2つの入力、即ちレジス
タMp A及びMp Bのビット位置2〜5を受取る。実際に、レ
ジスタMp A の内容は"実行中に"入力をレジスタMp Bに
供給するデータ・バス、即ちプロセッサ18と接続するデ
ータ・バス202に含まれる内容と比較される。もし一致
すれば、それはAフィールド及びBフィールドがそれぞれ
同じハードウェア・クラス・ロックを識別するからであ
る。そして比較器226は"高い"レベルのロジック信号をA
NDゲート242に供給する。
【0081】ORゲート232の入力は加算又は変更のどち
らかである。実際の"OR"状態はMp Aレジスタに関連し、
ビット位置2は2進数0〜7を示す0であり、又はビット位
置3及び4は2進数0、1、8又は9を示す0である。どちらの
場合も、関連するコマンドは加算又は変更である。プロ
セッサAが要求されたロックを獲得しないという決定
は、ロック・レジスタAの内容、特に要求されたロック
に対応するビット位置0〜9の1つに基づく。最後に、プ
ロセッサAが最も低い優先順位のプロセッサであるとい
う決定は、ロック・タイ・ブレーク・レジスタ166又は3
つの対応するロック・タイ・ブレーク・レジスタ(図示
せず)の1つにある2進数1の位置に基づく。ちなみに、タ
イ・ブレーク・レジスタ自身のような競合解消ロジック
は、特定のプロセッサ自身よりもむしろA〜Dシーケンス
に結合される。
【0082】比較器増幅器228はMpレジスタAとMpバスC
のビット位置2〜5を比較する。これも比較器226に関連
して前に説明したようにレジスタAと適切なデータ・バ
スとの実行中の比較である。ORゲート234はORゲート232
と同じ入力を受取る。プロセッサAが要求されたロック
を獲得しないという表示はANDゲート244に供給される。
最後に、もしプロセッサA又はプロセッサBが最も低い優
先順位を獲得すれば、ORゲート236は高いレベルのロジ
ック信号をANDゲート244に供給する。
【0083】レジスタMp A及びMp Dのビット位置2〜5は
比較器230に供給される。ORゲート238の入力及びANDゲ
ート246の入力(プロセッサAは要求されたロックを獲得
しない)は同じままである。最後に、もし最も低い優先
順位がプロセッサA、B又はCに存在すれば、ORゲート240
は高いレベルのロジック信号を供給する。従って、全て
のプロセッサに存在する二重ロジックに基づいて、同じ
クラス・ロックのプロセッサ間の競合はどれも迅速に解
消され、競合している最も高い優先順位のプロセッサで
ロックは活動状態になるが、競合している残りの各プロ
セッサでは延期状態は高いレベルになる。前記ロックが
解除されるまで、前記残りの各プロセッサはそのデータ
操作を進めることはできない。前記ロックが解除される
と、前記プロセッサはロックを獲得するか又は更に別の
競合で負ける。
【0084】
【発明の効果】本発明に従って、全てのプロセッサの間
で重複されたロジックにより結合された複数のプロセッ
サの間の相互接続は、主記憶に関係なくクラス・ロック
のアービトレーション及び主記憶メモリに対するインタ
フェースを提供し、より迅速に競合を解消する。中央ハ
ブなしに種々のプロセッサの間の干渉性が均等に維持さ
れるので、相互接続に必要なハードウェアはかなり少な
くてすむ。ハードウェア・クラス・ロックは、主記憶の
アクセスを要せずに、特定のアドレスよりもむしろデー
タ操作能力に基づいてデータ操作を直列化する。たとえ
1つのインタフェースが複数のプロセッサを同順位でア
クセスしても、複数のクラス・ロックの提供は競合の量
を減らし複数のデータ操作の同時進行を可能にする。競
合する場合でも、ロック・シーケンサは、競合に負けた
プロセッサの延期状態の持続期間が最小になることを保
証する。
【0085】説明の都合により、4プロセッサの良好な
実施例を示したが、前記アービトレーション方式は2以
上のプロセッサを含むネットワークのどれにも容易に適
応可能である。プロセッサが4よりも多いネットワーク
に拡張するには、プロセッサ自身を追加し且つ追加され
た各プロセッサに関連するデータ・バスを追加するだけ
でよい。従って、システムの拡張は比較的簡単であり、
これは本発明のもう1つの利点である。
【図面の簡単な説明】
【図1】複数のプロセッサが共通のインタフェースを介
して主記憶メモリを共用するデータ処理システムの概要
図である。
【図2】プロセッサの1つのアービトレーション・セク
タの概要図である。
【図3】アービトレーション・セクタの中から選択した
レジスタを示す図である。
【図4】プロセッサのデータ・バスの相互接続の概要図
である。
【図5】2プロセッサ・カード及び1プロセッサ・カード
を含む3プロセッサ・ネットワークの実現を示す図であ
る。
【図6】ハードウェア・ロックを利用するプロセッサに
より実行されるデータに関する動作の一般化されたタイ
ミング図である。
【図7】プロセッサが利用するロック・シーケンサの動
作を示す流れ図である。
【図8】プロセッサが利用するロック・シーケンサの動
作を示す流れ図である。
【図9】プロセッサが用いるストア追跡シーケンサの動
作を示す流れ図である。
【図10】プロセッサの同時ハードウェア・ロック要求
を解消する機構の概要図である。
【図11】本発明に従ってハードウェア・ロックを割振
る同点決着回路のロジック図である。
【符号の説明】
16 データ処理ネットワーク 18 プロセッサ/プロセッサ 20 プロセッサ 22 プロセッサ 24 プロセッサ 26 主記憶インタフェース 28 主記憶メモリ 30 制御記憶 32 制御記憶出力レジスタ 34 IMPIレジスタ・アレイ 36 キャッシュ・メモリ 38 キャッシュ・デイレクトリ 40 ロジック 42 キャッシュ・インタフェース 44 ロジック 46 ルックアサイド・バッファ 48 主記憶コマンド・レジスタ 50 実アドレス・バッファ 52 実アドレス・バッファ 54 実アドレス・バッファ 56 アービトレーション・セクタ/主記憶制御部 58 アービトレーション・リンク 60 制御装置 62 制御装置 64 制御装置 66 制御記憶出力レジスタ 68 制御記憶出力レジスタ 70 制御記憶出力レジスタ 72 IMPIレジスタ・アレイ 74 IMPIレジスタ・アレイ 76 IMPIレジスタ・アレイ 78 キャッシュ・メモリ 80 キャッシュ・メモリ 82 キャッシュ・メモリ 84 キャッシュ・デイレクトリ 86 キャッシュ・デイレクトリ 88 キャッシュ・デイレクトリ 90 ロジック 92 ロジック 94 ロジック 96 キャッシュ・インタフェース 98 キャッシュ・インタフェース 100 キャッシュ・インタフェース 102 ルックアサイド・バッファ 104 ルックアサイド・バッファ 106 ルックアサイド・バッファ 108 ロジック 110 ロジック 112 ロジック 114 アービトレーション・セクタ/主記憶制御部 115 主記憶コマンド・レジスタ及び実アドレス・バッ
ファ 116 アービトレーション・セクタ/主記憶制御部 117 主記憶コマンド・レジスタ及び実アドレス・バッ
ファ 118 アービトレーション・セクタ/主記憶制御部 119 主記憶コマンド・レジスタ及び実アドレス・バッ
ファ 120 メモリ記憶アレイ 122 プログラム命令ストア 124 基本デイレクトリ 136 構成レジスタ 138 Mpレジスタ 140 Mpレジスタ 142 Mpレジスタ 144 Mpレジスタ 146 バス監視レジスタ

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】ビット符号化データを扱うコンピュータ・
    プログラム命令を実行する複数のプロセッサ、共有資源
    並びに前記プロセッサ及び共有資源に接続され、前記プ
    ロセッサの各々及び前記共有資源の間でビット符号化デ
    ータを転送する共有インタフェースを含むデータ処理ネ
    ットワークにおいて、 前記プロセッサの各々は前記共有インタフェースを介し
    て前記共有資源にアクセスする全プロセッサ間の優先順
    位を決定するためのアービトレーション・ロジックを持
    つアービトレーション・セクタを含み、 前記データ処理ネットワークは前記全アービトレーショ
    ン・セクタを互いに接続する相互接続手段を含み、 前記相互接続手段は複数の単方向データ・バスを含み、 前記データ・バスの各々は少なくとも2つのプロセッサ
    のアービトレーション・セクタに接続され、 前記データ・バスの数は前記プロセッサの数に等しく且
    つ各データ・バスは前記プロセッサの1つに独自に関連
    づけられており、 各データ・バスは関連プロセッサのアービトレーション
    ・セクタに接続され、関連プロセッサのアービトレーシ
    ョン・セクタからのアービトレーション・ロジックを入
    力として受け取り、 各データ・バスは更に残りのプロセッサの残りのアービ
    トレーション・セクタに接続され、関連プロセッサから
    のアービトレーション・ロジックを残りのアービトレー
    ション・セクタに入力として提供し、 前記各アービトレーション・セクタは複数のアービトレ
    ーション・レジスタを含み、 各アービトレーション・レジスタは前記プロセッサのそ
    れぞれに特有の情報を含み、 各アービトレーション・セクタ内の前記アービトレーシ
    ョン・レジスタの1つは関連する特定のプロセッサに特
    有のデータを含み、該アービトレーション情報を前記特
    定のプロセッサに関連データ・バスへの入力として与
    え、 各アービトレーション・セクタの前記残りのアービトレ
    ーション・レジスタの各々は前記関連データ・バスとは
    別のデータ・バスの1つからアービトレーション情報を
    入力として受取るための入力アービトレーション・レジ
    スタを有することを特徴とするデータ処理ネットワー
    ク。
  2. 【請求項2】前記各アービトレーション・セクタ内の入
    力アービトレーション・レジスタは前記残りのプロセッ
    サの最高優先順位のものから最低優先順位のものへ至る
    優先順位で他の関連プロセッサに関連するデータ・バス
    から入力を受取ることを特徴とする請求項1のデータ処
    理ネットワーク。
  3. 【請求項3】前記アービトレーション・セクタの各々は
    前記インタフェースを制御するために前記プロセッサ間
    の優先順位を示すロジックをストアするためのインタフ
    ェース監視レジスタ手段を有し、前記相互接続手段は前
    記インタフェースに接続された2方向データ・バス並び
    に前記インタフェース・レジスタの各々及び前記2方向
    データ・バス間の入出力接続を有することを特徴とする
    請求項2のデータ処理ネットワーク。
  4. 【請求項4】前記アービトレーション・セクタの各々は
    関連プロセッサを識別するプロセッサ識別情報を含む構
    成レジスタを有することを特徴とする請求項3のデータ
    処理ネットワーク。
  5. 【請求項5】前記アービトレーション・セクタの各々は
    前記優先順位を付けられたプロセッサ間の最低優先順位
    のプロセッサを決定するタイ・ブレーク・レジスタを有
    することを特徴とする請求項4のデータ処理ネットワー
    ク。
  6. 【請求項6】前記プロセッサ間の優先順位を動的に変更
    するために前記タイ・ブレーク・レジスタ内に含まれる
    情報を動的に変更する手段を有することを特徴とする請
    求項5のデータ処理ネットワーク。
  7. 【請求項7】ビット符号化データを扱うコンピュータ・
    プログラム命令を実行する複数のプロセッサ、ビット符
    号化データをストアする共有資源、前記プロセッサ及び
    前記共有資源間でビット符号化データを転送するのに使
    用するために前記プロセッサ及び前記共有資源に接続さ
    れたインタフェース並びにビット符号化データの関連す
    るサブセットを保護するための少なくとも1つのロック
    を含むデータ処理ネットワークであって、前記プロセッ
    サの任意の1つは該1つのプロセッサがデータ操作を完了
    しロックを解除するまで他のプロセッサがロックにより
    保護された関連するサブセットを獲得するのを阻止し、
    各プロセッサはキャッシュ・メモリ、キャッシュ・メモ
    リ・ディレクトリ並びにプロセッサがロックの制御権及
    びプロセッサにより実行されるストア動作に関する情報
    を有しているか否かを示す情報をストアするセクタを含
    むごとき前記データ処理ネットワークにおいて、 前記1つのプロセッサを監視しロックの解除を合図して
    他のプロセッサの1つにロックを獲得させる方法であっ
    て、 前記プロセッサのセクタが(i)ロックに関する活動がな
    いことを示す遊休状態、(ii)前記プロセッサの1つがロ
    ックを獲得しロックを制御していることを示すロック状
    態及び(iii) 前記1つのプロセッサがロックを解除した
    がビット符号化データの関連するサブセットに従って少
    なくとも1つのストア動作を実行しなければならないこ
    とを示す解放状態の3つのロック状態のいずれにあるか
    を監視するステップと、 解放状態の検出に応答して前記1つのプロセッサにより
    実行される最後のデータ・ストア動作を追跡するステッ
    プと、 前記全てのプロセッサのキャッシュ・メモリ・ディレク
    トリが前記最後のデータ・ストア動作に関連した共有資
    源内の記憶ロケーションを読取っているとき、前記1つ
    のプロセッサに遊休状態を表示させ、該遊休状態の表示
    を他のプロセッサに通知し、他のプロセッサの1つにロ
    ックを獲得させるステップと、 を含む方法。
  8. 【請求項8】全ての前記プロセッサの現在のロック制御
    命令を比較し2以上のプロセッサがロックの獲得を試み
    ているか否かを判定するステップと、 いずれのプロセッサも現在ロックを制御していないこと
    を確認するステップと、 いずれのプロセッサもロック
    を制御していないこと及び2以上のプロセッサがロック
    で競合していないことの判定に応答して、ロックを競合
    しているプロセッサの内の最高優先順位のものに割当て
    るステップと、 を更に含む請求項7の方法。
  9. 【請求項9】前記プロセッサ間に優先順位の格付けを動
    的に割当てるステップを更に含む請求項7の方法。
  10. 【請求項10】前記優先順位の格付けを割当てるステッ
    プは前記プロセッサの選択された1つを最低優先順位を
    有するものとして指定し、残りのプロセッサに対して順
    次高位の優先順位を割当てることを特徴とする請求項7
    の方法。
  11. 【請求項11】ロックの競合の検出に応答して最低優先
    順位指定を別のプロセッサに移すことにより全プロセッ
    サの優先順位格付けを動的にシフトするステップを含む
    請求項10の方法。
  12. 【請求項12】ロックの競合の応答して最低優先順位の
    プロセッサを不規則に指定することによりプロセッサの
    優先順位格付けを動的に指定変更するステップを含む請
    求項10の方法。
  13. 【請求項13】ビット符号化データに対してデータ操作
    を行うコンピュータ・プログラム命令を実行する複数の
    プロセッサ、前記コンピュータ・プログラム命令をスト
    アする共有資源並びに前記プロセッサ及び前記共有資源
    間でビット符号化データを転送するために前記プロセッ
    サ及び前記共有資源に接続されたインタフェースを含む
    データ処理ネットワークにおいて、 前記共有資源内のコンピュータ・プログラム命令に対す
    る前記プロセッサ間の競合を解消するための直列化シス
    テムであって、 前記共有資源内のコンピュータ・プログラム命令の複数
    のサブセットの独自の1つにそれぞれ対応する複数のロ
    ックと、 前記共有資源内のコンピュータ・プログラム命令を獲得
    するために前記プロセッサの各々内に設けられ、 (i)データに関する動作を実行するために制御命令を含
    むコンピュータ・プログラム命令を含む制御記憶手段、
    (ii)少なくとも1つの選択されたロックにより保護され
    た対応するコンピュータ・プログラム命令を用いてビッ
    ト符号化データに対してデータ操作を実行するに先立つ
    条件として少なくとも1つの選択されたロックの制御を
    獲得する手段並びに(iii)前記少なくとも1つの選択され
    たロックの制御の獲得に応答してロック獲得信号を生成
    する信号手段を含むアクセス手段と、 前記少なくとも1つの選択されたロックの制御を獲得し
    た特定のプロセッサから前記プロセッサの他の1つにロ
    ック獲得信号を供給し、前記他のプロセッサが前記少な
    くとも1つの選択されたロックの制御を獲得するのを阻
    止する禁止手段と、 を含む直列化装置。
  14. 【請求項14】前記禁止手段は前記特定のプロセッサが
    ロックに関連したデータ操作を完了したことに応答して
    他のプロセッサへロック解除信号を供給して他のプロセ
    ッサに前記少なくとも1つの選択されたロックの制御を
    獲得させる手段を含むことを特徴とする請求項13の直列
    化装置。
  15. 【請求項15】前記ロックの各々はビット符号化データ
    に対する操作のタイプに関連したコンピュータ・プログ
    ラム命令のサブセットに対応する1つのサブセットを保
    護し、各ロックに対応するビット符号化データは関連す
    る操作タイプに関連するすべてのビット符号化データを
    含むことを特徴とする請求項14の直列化装置。
  16. 【請求項16】前記プロセッサの少なくとも2つは別々
    のロックを制御しつつ同時にデータ操作を実行すること
    ができることを特徴とする請求項15の直列化装置。
  17. 【請求項17】前記プロセッサの各々は2以上のロック
    の同時制御を獲得することができることを特徴とする請
    求項16の直列化装置。
  18. 【請求項18】前記プロセッサの各々は前記ロックの制
    御を同時に要求する前記プロセッサの少なくとも2つに
    前記ロックの1つを割当てる競合解消手段を含み、 前記競合解消手段の各々は前記プロセッサの全てのロッ
    ク要求の現在のレコード、前記プロセッサのどれか2つ
    が同じロックを現在要求中か否かを判定する比較器手
    段、前記プロセッサ毎に異なる優先順位を割当てる優先
    順位割当手段及び競合はより高い優先順位を有するプロ
    セッサに有利なように解消する手段を含むことを特徴と
    する請求項13の直列化装置。
  19. 【請求項19】前記優先順位を割当てる手段は前記プロ
    セッサの別々の1つにラウンド・ロビン方式で優先順位
    を割当てることを特徴とする請求項18の直列化装置。
  20. 【請求項20】前記優先順位割当手段は前記プロセッサ
    間の優先順位を不規則に割当てることを特徴とする請求
    項18の直列化装置。
JP3171992A 1990-09-03 1991-06-18 デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置 Expired - Lifetime JP2511588B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US581843 1990-09-03
US58184390A 1990-09-13 1990-09-13

Publications (2)

Publication Number Publication Date
JPH06318190A JPH06318190A (ja) 1994-11-15
JP2511588B2 true JP2511588B2 (ja) 1996-06-26

Family

ID=24326792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3171992A Expired - Lifetime JP2511588B2 (ja) 1990-09-03 1991-06-18 デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置

Country Status (3)

Country Link
US (3) US5463741A (ja)
EP (1) EP0475873A2 (ja)
JP (1) JP2511588B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2626510B2 (ja) * 1993-10-28 1997-07-02 日本電気株式会社 調停装置
US5701418A (en) * 1994-03-31 1997-12-23 Chrysler Corporation Intra-vehicular LAN and method of routing messages along it using hash functions
US5548780A (en) * 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5666488A (en) * 1994-11-22 1997-09-09 Lucent Technologies Inc. Port expansion network and method for lAN hubs
US5645434A (en) * 1995-12-01 1997-07-08 Asante Technologies, Inc. Connector element and component arrangement for a stackable communications network hub
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5664196A (en) * 1995-12-07 1997-09-02 Emc Corporation Media access scheduler method and apparatus
US5734842A (en) * 1995-12-18 1998-03-31 Asante Technologies, Inc. Network hub interconnection circuitry having power reset feature
US6289410B1 (en) * 1996-07-18 2001-09-11 Electronic Data Systems Corporation Method and system for maintaining consistency of shared objects based upon instance variable locking
US5761734A (en) * 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
US5860126A (en) * 1996-12-17 1999-01-12 Intel Corporation Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model
US6105084A (en) * 1997-02-11 2000-08-15 Alcatel Priority-based access control arrangement by assigning first and second own priorities to each of units
US5896539A (en) * 1997-04-14 1999-04-20 International Business Machines Corporation Method and system for controlling access to a shared resource in a data processing system utilizing dynamically-determined weighted pseudo-random priorities
US5931924A (en) * 1997-04-14 1999-08-03 International Business Machines Corporation Method and system for controlling access to a shared resource that each requestor is concurrently assigned at least two pseudo-random priority weights
US5935234A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Method and system for controlling access to a shared resource in a data processing system utilizing pseudo-random priorities
US5926645A (en) * 1997-07-22 1999-07-20 International Business Machines Corporation Method and system for enabling multiple store instruction completions in a processing system
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources
US6047316A (en) * 1997-12-12 2000-04-04 Intel Corporation Multiprocessor computing apparatus having spin lock fairness
US6253273B1 (en) * 1998-02-06 2001-06-26 Emc Corporation Lock mechanism
US6073132A (en) * 1998-03-27 2000-06-06 Lsi Logic Corporation Priority arbiter with shifting sequential priority scheme
US6473821B1 (en) * 1999-12-21 2002-10-29 Visteon Global Technologies, Inc. Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US6782440B2 (en) * 2000-07-26 2004-08-24 T.N.S. Holdings, Inc. Resource locking and thread synchronization in a multiprocessor environment
DE10048732A1 (de) * 2000-09-29 2002-04-18 Philips Corp Intellectual Pty Multiprozessor-Anordnung
US6810464B1 (en) * 2001-08-09 2004-10-26 Unisys Corporation Multiprocessor computer system for processing communal locks employing mid-level caches
US7831974B2 (en) * 2002-11-12 2010-11-09 Intel Corporation Method and apparatus for serialized mutual exclusion
GB0308923D0 (en) * 2003-04-17 2003-05-28 Ibm Low-overhead storage cluster configuration locking
US7133949B2 (en) * 2003-09-29 2006-11-07 International Business Machines Corporation Distributed switching method and apparatus
JP2005165508A (ja) * 2003-12-01 2005-06-23 Renesas Technology Corp ダイレクトメモリアクセスコントローラ
US7295137B2 (en) * 2005-03-01 2007-11-13 The Texas A&M University System Data encoding and decoding using Slepian-Wolf coded nested quantization to achieve Wyner-Ziv coding
US20090063734A1 (en) * 2005-03-14 2009-03-05 Matsushita Electric Industrial Co., Ltd. Bus controller
US8099538B2 (en) * 2006-03-29 2012-01-17 Intel Corporation Increasing functionality of a reader-writer lock
US7478205B1 (en) * 2006-07-12 2009-01-13 Emc Corporation Techniques for performing data operations spanning more than two data partitions
JP4978109B2 (ja) * 2006-08-10 2012-07-18 富士通株式会社 ネットワークシステム及び情報処理方法
US8949549B2 (en) * 2008-11-26 2015-02-03 Microsoft Corporation Management of ownership control and data movement in shared-memory systems
JP2010140290A (ja) * 2008-12-12 2010-06-24 Panasonic Corp マルチプロセッサシステム及びその排他制御の調停方法
US8381308B2 (en) * 2009-05-27 2013-02-19 International Business Corporation Computer-implemented multi-resource shared lock
US8756380B2 (en) 2011-09-07 2014-06-17 Kabushiki Kaisha Toshiba Controlling access to a removable medium from a module and an external device
JP5571210B2 (ja) * 2013-02-18 2014-08-13 株式会社東芝 アクセス制御装置
US10296469B1 (en) * 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52130246A (en) * 1976-04-24 1977-11-01 Fujitsu Ltd Memory access control system
US4096571A (en) * 1976-09-08 1978-06-20 Codex Corporation System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking
US4096569A (en) * 1976-12-27 1978-06-20 Honeywell Information Systems Inc. Data processing system having distributed priority network with logic for deactivating information transfer requests
US4402046A (en) * 1978-12-21 1983-08-30 Intel Corporation Interprocessor communication system
US4385350A (en) * 1980-07-16 1983-05-24 Ford Aerospace & Communications Corporation Multiprocessor system having distributed priority resolution circuitry
FR2490434B1 (fr) * 1980-09-12 1988-03-18 Quinquis Jean Paul Dispositif de resolution des conflits d'acces et d'allocation d'une liaison de type bus interconnectant un ensemble de processeurs non hierarchises
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
US4488219A (en) * 1982-03-18 1984-12-11 International Business Machines Corporation Extended control word decoding
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4814974A (en) * 1982-07-02 1989-03-21 American Telephone And Telegraph Company, At&T Bell Laboratories Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements
US4484273A (en) * 1982-09-03 1984-11-20 Sequoia Systems, Inc. Modular computer system
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
EP0131658B1 (en) * 1983-07-08 1987-10-28 International Business Machines Corporation A synchronisation mechanism for a multiprocessing system
US4620278A (en) * 1983-08-29 1986-10-28 Sperry Corporation Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
CA1239227A (en) * 1984-10-17 1988-07-12 Randy D. Pfeifer Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system
DE3686660T2 (de) * 1985-02-05 1993-04-15 Digital Equipment Corp Vorrichtung und verfahren zur zugriffsteuerung in einer mehrcachespeicherdatenverarbeitungsanordnung.
US4787041A (en) * 1985-08-01 1988-11-22 Honeywell Data control system for digital automatic flight control system channel with plural dissimilar data processing
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
JPS62214466A (ja) * 1986-03-17 1987-09-21 Fujitsu Ltd 記憶装置ロツク制御方式
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
JPS63284660A (ja) * 1987-05-16 1988-11-21 Nec Corp プロセッサ間通信方式
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
US4920486A (en) * 1987-11-23 1990-04-24 Digital Equipment Corporation Distributed arbitration apparatus and method for shared bus
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
CA2000245C (en) * 1988-10-08 1996-07-16 Hideo Hayashi Multiprocessor system using communication register having processor-associated storage locations
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5151994A (en) * 1989-11-13 1992-09-29 Hewlett Packard Company Distributed fair arbitration system using separate grant and request lines for providing access to data communication bus
US5301290A (en) * 1990-03-14 1994-04-05 International Business Machines Corporation Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store
JP2575543B2 (ja) * 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache

Also Published As

Publication number Publication date
US5586331A (en) 1996-12-17
US5566305A (en) 1996-10-15
EP0475873A3 (ja) 1994-03-30
EP0475873A2 (en) 1992-03-18
JPH06318190A (ja) 1994-11-15
US5463741A (en) 1995-10-31

Similar Documents

Publication Publication Date Title
JP2511588B2 (ja) デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
US6516393B1 (en) Dynamic serialization of memory access in a multi-processor system
US5987550A (en) Lock mechanism for shared resources in a data processing system
CA1324837C (en) Synchronizing and processing of memory access operations in multiprocessor systems
US5502840A (en) Method and apparatus for advising a requesting process of a contention scheme to employ to access a shared resource
US7984242B2 (en) Program thread syncronization
US6779090B2 (en) Spinlock for shared memory
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US6047316A (en) Multiprocessor computing apparatus having spin lock fairness
JP3634932B2 (ja) データ完全性を維持するためのスピン・バッファおよび方法
US5442755A (en) Multi-processor system with lock address register in each processor for storing lock address sent to bus by another processor
JPH0587855B2 (ja)
US20060200609A1 (en) Hardware semaphore intended for a multi-processor system
JPS60246460A (ja) デジタルコンピユ−タ−システムで交信路の制御を割当てる調停機構
GB2121218A (en) Shared resource locking apparatus
JPS60150147A (ja) デジタルコンピュータシステム
JPH03212755A (ja) マルチプロセッサ・システムおよび割り込み方法
JPH03222057A (ja) データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
JPH1115793A (ja) 資源の保全性を保護する方法
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
US6880071B2 (en) Selective signalling of later reserve location memory fault in compound compare and swap
US5655102A (en) System and method for piggybacking of read responses on a shared memory multiprocessor bus
JPH10143467A (ja) データ処理システムにおいてバス所有権を調停するための方法および装置
JPH02207352A (ja) 中央処理装置を持った多プロセッサーシステムのシステム制御装置をインターフェースする方法及び装置
US6701429B1 (en) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location