JPH05508496A - 命令をロードおよびフラグする方法および装置 - Google Patents

命令をロードおよびフラグする方法および装置

Info

Publication number
JPH05508496A
JPH05508496A JP51423791A JP51423791A JPH05508496A JP H05508496 A JPH05508496 A JP H05508496A JP 51423791 A JP51423791 A JP 51423791A JP 51423791 A JP51423791 A JP 51423791A JP H05508496 A JPH05508496 A JP H05508496A
Authority
JP
Japan
Prior art keywords
memory
resource
load
address
request
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
JP51423791A
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 JPH05508496A publication Critical patent/JPH05508496A/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/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
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

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

【発明の詳細な説明】 命令をロードおよびフラグする方法および装置技術分野 本発明は全体として、コンピユータおよび電子的論理装置用メモリ・システムお よびメモリ管理の分野に関するものである。更に詳しくいえば、本発明はメモリ 場所で命令のロードおよびフラグを実行することにより、資源、ロックアウト機 構を提供する方法および装置に関するものである。資源、ロックアウトは、同じ メモリ動作サイクル中に、同じメモリ場所へ読出し動作と書込み動作を行うこと により行われる。
背景技術 以前に出願されたr高並列スカラ/ベクトル・マルチプロセッサ・システム用ク ラスターアーキテクチャ(CLUSTORARCHITECTURE FORA HIGHLY PARALLEL SC,ALAR/VECTORMULTIP ROCESSORSYSTEM)Jという名称の原出願、PCT 5erial No、PCT/US91107655には、スーパーコンピュータと呼ばれてい る高速コンピュータ処理装置が記述されている。はとんどのスーパーコンピュー タ・アプリケーションでは、目的は最高の処理速度および最大の処理融通性、す なわち、多様な従来のアプリケーション・プログラムを処理する能力を得ること である。スーパーコンピュータの処理速度と融通性を向上させる努力において、 前記原出願に記載されている高並列マルチプロセッサ用のクラスタφアーキテク チャは、多数のプロセッサと外部インターフェイス手段が多数の同時要求を、主 メモリ、二次メモリ、大域レジスタ、割込み機構のような共用されているハード ウェア資源の共通セット、およびシステムに存在するその他の共用されている資 源に対して行うことができるような、スーパーコンピュータ用アーキテクチャを 得ることである。
そのような資源共用マルチプロセッサ・システムの設計において最も重要な考慮 は、ある特定の資源がプロセスの1つにより現在使用されていることをどのよう にして指示するか、および、他のプロセスが同じ資源を同時に使用しないように 資源ロックアウトをどのようにして行うか、ということである。資源ロックアウ トの問題は、上記原出願に記載されている高並列マルチプロセッサ用クラスタ・ アーキテクチャに関連する2つの付加要因である。第1に、資源ロックアウト機 構はシステム用のレジスタと割込みハードウェアとともに作業せねばならないだ けでなく、主メモリの全ての場所でも゛作業せねばならないことである。第2に 、資源ロックアウト機構は、中央スケジューラが無く、プロセッサ(たとえば、 分布I10制御器)以外の要求者もプロセッサの関与無しに共用されている資源 の直接アクセスを許されるような分布環境において動作せねばならないことであ る。
要するに、資源ロックアウトの問題は、どの資源がどのプロセスにより現在使用 されているかについての情報を得ているようにするために、単一の中央スケジュ ーリング・プロセッサを割り当てることにより従来のスーパーコンピュータにお いて管理されていた。分布アクセス・アーキテクチャにおいては、共用されてい る全ての資源に対するアクセスは等しく、民主的であって、中央スケジューラは ない。したがって、共通の共用されている資源に対する各要求者へは、マルチプ ロセッサ・システム内の他の要求者によりその資源が現在使用されているかどう かを判定するために必要な情報を提供せねばならない。
共用されているメモリ、マルチプロセッサ環境において使用するための資源ロッ クアウトのための現在の方法および装置は、マルチプロセッサ環境において全て の可能な要求者により、共通の共用されている主メモリに対する完全に分布され た、民主的なアクセスを考慮していない。したがって、特定の共用されている資 源が利用されている時に、マルチプロセッサ・システム内の他の全ての要求者へ 知らせるための新しい方法および装置が必要とされている。また、要求者が、資 源を利用できる、または利用できないという指示に応じて、共用されている資源 のアクセスに対する彼等自身の要求を管理するための新しい方法と装置が必要と される。
発明の概要 本発明は、同じ資源の動作中に読出し機能と書込み機能を行うことができる資源 共用多数要求者システムにおいて、資源ロックアウト機構を供給する方法および 装置である。本発明は、同じ資源動作サイクル中に同じ資源場所に対する予め選 択されたフラグ値の読出し動作と、それの直後の書込み動作とを実行できるロー ドおよびフラグ命令を有する。予め選択されたフラグ値というのは、有効なデー タでないと要求者により認識され、したがって、要求者が読出そうとしているこ とを資源へ指示するようなものである。本発明は、共用される従来の資源ロック アウト機構とは異なり、全ての可能な要求者により全ての共用されている資源に 対する完全に分布された民主的なアクセスを有する、マルチプロセッサまたは分 布I10環境における主メモリ内のあらゆる場所で動作することができる。
好適な実施例においては、両方のアドレスを、遅延させられた書込みパルスと共 に、メモリ・バンク内の目標にされているメモリ場所へ提供することにより、ロ ードおよびフラグ命令が実行される。書込みパルスは、目標にされているメモリ 場所からデータを読出すことができるようにし、その後で目標にされているメモ リ場所へ予め選択されているフラグ値を書込みパルスが重ね書きする。メモリ・ バンクの読出しデータ・バスと書込みデータ・バスを与えられたオペレーション がアクセスすることを許す、読出しデータ・バスと書込みデータ・バスが本発明 のメモリ・バンクに設けられる。ロードおよびフラグの動作中は、予め選択され ているフラグ値が記憶データ・ボートに置かれ、目標にされているメモリ場所内 のデータ値がメモリ・バンクでアクセスされ、ロード・ボートに置かれる。バン ク・サイクル制御論理によりメモリへ供給されるタイミング信号を制御すること により、ロードおよびフラグ命令が1つのメモリ動作中に終了され、それにより 本発明を原子オペレーション、すなわち、割込み不能な1ステツプ・プロセスに する。
本発明のより有用なアプリケーションの1つは、モンテ・カル口・アプリケーシ ョンに使用するための資源ロックアウト機構としてである。モンテ・カル口とい う用語は擬似ランダム技術により決定される種々のメモリ場所を更新するための アプリケーションの試みとして、あるアプリケーションにより作成される要求さ れたメモリーアドレスのランダムな性質を指す。
好適な実施例においては、予め選択されたフラグ値が浮動小数点非数(N a  N)値であるように選択される。
モンテ・カル口・アプリケーションの目的のためにはNaN値は有効な数ではな いから、モンテ・カル口・アプリケーションを実行しているマルチプロセッサま たは分布I10システムは、与えられた任意のランダム・メモリ・アクセスが、 別の要求者がメモリ場所を現在更新しているために、資源ロックアウトを受けて いるそのメモリ場所に遭遇したかどうかを迅速かつ容易に判定することができる 。モンテ拳カルロ・アプリケーションはパイプラインまたはベクトル・オペレー ションとして最も効率的に実行されるから、本発明により、資IIlロックアウ トに遭遇しているために、モンテ・カル口・プロセスに割込むことなしに処理を パイプライン化されたやり方で処理の継続を許す。その代わりに、プロセッサは フラグされた場所に注意し、後でそのメモリ場所の要求へと戻る。
本発明の目的は、資源共用、多数要求者システムにおいて、読出し機能と書込み 機能を単一の動作として実行することができる、資源ロックアウト機構のための 方法および装置を得ることである。
本発明の別の目的は、マルチプロセッサまたは分布I10環境において、全ての 可能な要求者により共用されている全ての資源に対する完全に分布された民主的 なアクセスを行う、あらゆるメモリ場所で動作できる資源ロックアウト機構を得 ることである。
本発明の別の目的は、読出し動作と、それに続くあらかじめ選択されたフラグ値 の同じメモリ場所への書込み動作とを実行できるロードおよびフラグ命令を得る ことである。
本発明の更に別の目的は、モンテ・カル口・アプリケーションの継続したパイプ ライン化された処理を許すようにして、マルチプロセッサ・そンテ・カルaψア ブリケーシッンへメモリ・ロックアウト状態を効果的に指示できるロードおよび フラグ命令を供給する資源ロックアウト機構を得ることである。
本発明のそれらの目的およびその他の目的は、図面と、好適な実施例についての 詳細な説明、および添付されている請求の範囲とを参照することにより明らかに なるであろう。
図面の説明 図1はロードおよびフラグ命令を組込まれたマルチプロセッサ・メモリ・システ ムのブロック図である。
図2は図1のマルチプロセッサ・メモリーシステムで実行されるロード命令と、 記憶命令と、ロードおよびフラグ(loadf)命令に対するタイミング図であ る。
好適な実施例の説明 好適な実施例においては、本発明のa−ドおよびフラグ命令は、ロードおよびフ ラグ・コマンド・オペレーションを主メモリ内の場所へ出すことにより行われる 。主メモリの選択されたメモリ・バンクにおける論理はこのコマンド・オペレー ションを、メモリ場所への予め定められたフラグ値の書込みが後に続くような、 そのメモリ場所内のデータ値の読出しとして解釈する。予め定めれたフラグ値の 書込みが出される以前のメモリ場所のアドレスが設定されるから、この論理は、 書込み動作を単一の原子メモリ・オペレーションの一部として出す前に、現在メ モリ場所にあるデータを読出すことができる。読出されるデータ値は通常の読出 し機構を用いて要求者へ戻される。
ここで図1を参照して、本発明の一実施例について説明する。図1は、メモリ要 求を出すことができるM個のプロセッサ10を有するマルチプロセッサ・メモリ システムを示す。各プロセッサ10は、行われるメモリ・オペレーション:オペ レーション無し、メモリへ記憶する、メモリからロードする、ロードおよびフラ グ、の型を指定するメモリ命令の一部である2ビツト・コマンドを有する。図1 に示されている実施例を主メモリへプロセッサ10により出された要求に関して 説明するが、好適な実施例においては、入力/出力制御器のような他の要求者と 同様なメモリ要求を行うこともできることを理解されるであろう。また、多数の 要求者は物理的に異なる必要はないが、時分割多重化におけるように、単一の物 理的ソースからの多数の論理的要求者とすることができることも理解されるであ ろう。
プロセッサ10がメモリに対する要求を有する時は、それはコマンドと、アドレ スと、記憶データを仲裁ネットワーク30へ出す。仲裁ネットワーク30はメモ リ要求のステアリング機構として用いられる。各メモリ・バンク20のための仲 裁ネットワーク30はどのプロセッサ10がバンク20ヘアクセスするかを選択 する。好適な実施例の仲裁ネットワーク30の一層詳しい説明については前記特 許出願を参照されたい。仲裁ネットワーク30をスイッチング機構で述べること にするが、FIFOシステム、回転スイッチ等のような衝突する要求を解決する ための機構を任意の数だけ有するマルチプレクサのシステムでも本発明は動作す ることを理解されるであろう。
メモリ命令が適切なメモリ・バンク20へ与えられると、バンク・サイクル制御 装置40がメモリ◆コマンド入力を受け、そのメモリ・コマンドを復号し、その メモリ・バンク20での動作を開始する。バンク・サイクル制御手段40は動作 が進むにつれて、メモリ・バンク20の状態についての情報を得続けるために用 いられる。
バンク−サイクル制御手段4oはメモリ・バンク2oのためのビジー状態をも維 持する。図1に示されている実施例においては、マルチプロセッサ5oのセット がプロセッサ10ヘバンク轡ビジー信号を供給し、それによりどのメモリ・バン ク2oがビジーで、どれがそうでないかをプロセッサ1oが調べることができる ようにする。
この機構は厳密には、プロセッサ1oがバンク・サイクル制御器20のオーバー ランを阻止するために用いられる。
好適な実施例においては、スイッチング機構60がロード・データをメモリ・バ ンク2oがらプロセッサ1゜へ戻すことができるようにする。図1に示されてい る実施例においては、適切なメモリ・バンク2oがらデータを選択するプロセッ サ1oごとに単一のマルチプロセッサを用いてスイッチング機構6oは実現され る。
好適な実施例においては、所定のフラグ値が、スイッチング機構30を用いるこ とにより、適切なメモリ・バンク20のための記憶データ線ヘロードされる。1 oadf命令の解読に応じて、スイッチング機構30は、スイッチング機構30 に組み合わされているメモリすなわちラッチに記憶されている所定のフラグ値を 選択し、その所定のフラグ値を記憶データ線ヘロードする。別の実施例において は、プロセッサ1oは所定のフラグ値を、スイッチング機構により行われるのと 同じやり方で、適切なメモリやバンク2oのための記憶データ線ヘロードするこ とができる。
ロードおよびフラグ・コマンドの好適な実施例においては、浮動小数点(N a  N)非数が予め定められたフラグ値として定義される。選択された浮動小数点 NaNは有用なデータ・パターンを妨害する可能性が最低である値を有する。好 適な実施例においては、フラグ値のために用いられる値は16進数(FFF40 00000000000)である。符号をつけられた整数と解釈される場合には 、その値は非常に大きい負の数、とくに、−3゜377.699,720,52 7.872である。符号をつけられない整数と解釈される場合には、その値はそ の値は非常に大きい正の数、とくに、18,443,366.373,989, 023,744である。
次に、本発明のロード・コマンド、記憶コマンド、ロードおよびフラグ・コマン ドのためのメモリ動作の相対的なタイミングが示されている図2を参照する。図 示のように、ロードおよびフラグ・コマンドは終了するためにロード・コマンド または記憶コマンドより少し長くかかる。好適な実施例においては、WRENA BLE信号が、ロードおよびフラグ動作の一定時間後にバンク・サイクル制御手 段40により表明される。その長さの時間は、ロード・データをメモリ・バンク 20.から確実にアクセスし、スイッチング機構60により確実に捕らえるだめ に必要な最も短いものである。
本発明のロード機構およびフラグ機構は、メモリ場所の現在の値を同時に戻し、 予め定めらされたパターンをそれの場所に記憶する。本発明のロードおよびフラ グ命令の好適な実施例は、付録AにI oad f命令として述べである。その 1oadf命令はマルチプロセッサ中アプリケーションにおいて共用されている メモリ変数を同期させるための方法として使用することができる。
使用時には、1oadf命令は自己設定セマフォ・レジスタに多少類似した動作 を行う。与えられているメモリ場所に保持されている共用されているデータ項目 を検索するために第1の要求者が1oadf命令を用いると、その要求者はその メモリ場所にある値を読出し、それから予め選択されたフラグ値をその場所に書 込むことによりそのメモリ場所をロックする。要するに、このメモリ場所はその 1oadf命令を出した要求者に対して今チふツク・アウトされる。他の要求者 がこのメモリ場所内のデータのアクセスを試みると、それらの要求者は予め選択 されたフラグ値を検索して、そのメモリ場所に関連するデータは検索しないから 、それらの要求者はメモリ場所からロックアウトされる。元の要求者がフラグさ れた場所に関連するデータを終えると、次の記憶がフラグされた場所へ出され、 データをメモリ場所へ戻してロードする。それは資源を「クリヤ」、すなわち、 ロックを解除する。本発明のこの実施例においては、各メモリ場所は他のメモリ 場所に影響を与えること無しにロードできるから、そのメモリ場所を独立した資 源として取扱われることが観察されるであろう。
また、1oadf命令を用いることにより、メモリ場所に「記憶されている」元 のデータ値は、フラグされている動作中はそのメモリ場所には実際には存在しな いことも観察されるであろう。この時間中は、データ値のコピーだけがプロセッ サ内の、または1oadf命令を用いてデータを検索した要求者内の、データ値 のコピーである。フラグされた動作の継続中にデータ値が全体として更新され、 またはそれ以外に修正されるから、データは更新されつつあるために、システム 障害の場合に重要なデータが失われた結果を無視できることがゎがるであろう。
ロードおよびフラグ機構は、衝突しているメモリ基準をバイブライン化する方法 とL5て使用することもできる。
これはベクトル・コードおよび並列コードに適用される。
ロードおよびフラグ機構は、メモリ・バイブラインを維持しながらメモリに対す るランダム争アクセスをどのようにしてベクトル化するかの問題に対する解決策 を特に与える。別の要求者によりメモリ場所が現在用いられている時に指示する 、予め定められたフラグ値を有するマルチプロセッサ環境で実行されるソフトウ ェアを供給することにより、ロードおよびフラグ機構は、従来のスカシ「モンテ ・カル口」アプリケーションのマルチスレッド化、ベクトル化、およびバイブラ イン化のための強力な手段を提供する。「モンテ・カル口」という用語は、それ らのアプリケーションが擬似ランダム技術により決定された種々のメモリ場所の 更新を試みるにつれて、それらのアプリケーションにより作成された、要求され るメモリ・アドレスの流れのランダムな性質を指す。従来技術においては、アド レスの衝突が起きるかもしれないために、このランダム・アドレスの流れはパイ プライン化、マルチスレッド化、およびベクトル化の使用を阻止していた。本発 明においては、ロードおよびフラグ機構はそれらの衝突を解消せず、それよりも それらの衝突の検出と処理のバイブライン化をサポートする。マルチプロセッサ で実行されているソフトウェアは資源の衝突が起きた時に検出できるから、ハー ドウェアはそれらの衝突を解消するためにバイブラインを停止させる必要はない 。
モンテ・カル口・アプリケーションのようなバイブライン化されたアプリケーシ ョンのためのメモリ衝突は、アプリケージジンで1つのプロセッサが動作してい る時および多数のプロセッサがそのアプリケ−シコンで動作している時に起きる ことがあることに注目すべきである。
あるメモリ場所が新しいデータ値を回復することによりフラグをリセットする前 に1つのプロセッサがそのメモリ場所に第2の要求を行う場合には、本発明は自 己検査資源ロックアウト機構として動作して、アプリケーションの1つの部分が アプリケーションの別の部分より先になることを阻止する。
付 録 A LOADF(v+s) vb811JJkk主メモリからvlを集め、VjとS kからアドレスを集めるアセンブリ番シンタッIoadf(vj+5k)vjク ス イッシュー保持 Sk保留、状態 初期状態保持 読出しのために留保されたvj。
書込みのために留保された vl。
利用できないメモリ・ベク トル・ロード争ボート。
留保されたVLまたはvS。
利用できない散乱/収集ア ドレス・ボート。
機能 主メモリからアドレスから の各要素プラスvjの対応す る要素を(sk)にロードし、 それからFFF40QOOOOOOOOOOをそのメモリ場所へ書込む。
要素O〜(VL)−1がロードさ れる。
VMはこの動作に影響を及ぼ さない。
終了時刻 ボート・ビジー、および散 乱/収集アドレス・ボート ビジー: TBD+(VL)サイクル。
読出しのために留保され:TBD。
た■1 書込みのために留保され: TBD+(VL)サイクル。
た■1 読出しまたは書込みのた: 1サイクル。
めのSK 例外 (VL)アドレスのどれもマツ プされないと、演算子範囲 誤りがその要素をNaNヘセ ットして希望により例外 をひき起こさせる。
注釈 vsレジスタがデータ参ベク トルではなくてアドレスΦ ベクトルに作用を及ぼす。
LOADF(v+q)v b711JJqq主メモリからViを集め、vjから のアドレスプラス定数アセンブリーシンタックス Ioadf(vj+q)vl qは符号つき8ビツト数で ある。
イッシニー保持 無し 状態 初期状態保持 読出しのために留保されたVJ。
書込みのために留保された vl。
利用できないメモリφベク トル・ロード・ボート。
留保されたMLまたはvS。
利用できない散乱/収集ア ドレス・ボート。
機能 主メモリのアドレスqから のvlの各要素プラスvjの対 応する要素をロードし、そ れからFPP4000000000000をそのメモリ場所へ書込む。
要素0〜(VL)−1がロードさ れる。VMGよこの動作に影響 を及ぼさない。
終了時刻 ボート・ビジー、および散 乱/収集アドレス・ボート ビジー: TBD+(VL)サイクル をロードする。
読出しのために留保された Vl:TBD、 書込みのために留保された Vl:TBD+(VL) サ イクル2 例外 (VL)アドレスのどれもマツ プされないと、演算子範囲 誤りがその要素をNaNヘセ ットして希望により例外を ひき起こさせる。
注釈 ■Sレジスタがデータ・ベク トルではなくてアドレスナ ベクトルに作用を及ぼす。
LOADP(s) 、sv b811jjkk主メモリからvlを集め、アドレ ス(sj)、ストライド(sk)アセンブリ・シンタックス Ioadr(sj )、sk vIイッシュー保持 Sj、sk保留された。状態初期状態保持 書 込みのために留保されたVl。
利用できないメモリペクト ル・C−ド・ポ 機能 主メモリから(sj)をアドレ ス(sj>にロードし、それか らFFPioooooooooooをその場所へ書込む。
Skが、各要素がロードされ た後でアドレスへ加えられ る符号つき数を含み、次の ロードのアドレスを形成す る。したがって、要素eが アドレス(sj)+(e * (sk))からロードし、それからら PPF400000000000Gをそのアドレスへ書込む。要素0〜 (VL)−1がロードさレル6vS とVMはこの動作に影響を及 ぼさない。
終了時刻 ポートφビジー中ロード: TBD+(VL)サイクル。
書込みのために留保された V i : TBD4− (VL)サイクル。
読出しのために留保された vl:少なくともTBDサイク ル。
読出しまたは書込むべきsj 、sk 例外 (VL)アドレスのどれもマツ プされないと、 演算子範囲誤りがその要素 をNaNヘセットして希望に より例外をひき起こさせる。
LOADF(s+q)s v911jjxx主メモリ、アドレス(sj)+qか ら81をロードするアセンブリ・シンタックス 1oadf(sj)+q si イッシュー保持 Sl、sj保留される。
状態 機能 主メモリがらの(vl)をアド レス(sj)+qにロードし、そ れからPFF400口oooooooooをそのメモリ場所へ書込む。
終了時刻 ボート・ビジー・ロード: 1サイクル。
Slを演算子として使用可能: メモリ衝突に応じて少なく ともTBDサイクル。
例外 アドレスがマツプされない と、演算子範囲誤りがその 要素をNaNヘセットして希 望により例外をひき起こさ せる。
LOADP(s+q)v B911jjkk主メモリからvIをロードし、アド レス(sj)+q、ストライド1 アセンブリ・シンタックス IoacH(sj)+q vlo qは8ビット符 号つき数。
イッシュー保持 Sj保留された。状態初期状態保持 書込みのために留保され たvI。
利用できないメモリ・ベク トル争ロード・ボート。
留保されたVL。
機能 (vl)を主メモリからアドレ ス(sj)+qにロード、ストラ イド1゜ 要素eがアドレス(sD+q+e からロードする各読出しの 後でFFF4G00000000000をその場所へ書込む。
要素0〜(VL)−1がロードさ れる。vSレジスタとVMレジ スタはこの動作に影響を及 ぼさない。
終了時刻 ボート・ビジー・ロード: TBD+ (VL)サイクル。
書込みのために留保された Vi :TBD+(VL)サイクル、。
読出しのために留保された vl:少なくともTBDサイク ル。
読出しまたは書込むべきSi: 1サイクル 例外 (VL)アドレスのどれもマツ プされないと、演算子範囲 誤りがその要素をNaNヘセ ットして希望により例外を ひき起こさせる。
好適な実施例について説明したが、本発明の要旨を逸脱することなしに種々変更 することを意図するものである。したがって、本発明の範囲を、好適な実施例の 説明ではなくて、添付の請求の範囲により定めることを意図するものである。
要 約 書 同じメモリ・オペレーション中に読出し動作と書込み動作を実行できる、共用さ れているメモリ・マルチプロセッサ・システム(10)において資源ロックアウ ト機構を供給するための方法および装置。本発明のロードおよびフラグ命令(I oadr)は読出し動作を実行でき、それに続いて、同じメモリ・オペレーショ ン中にメモリ場所に対する予め選択されたフラグ値の書込み動作を行う。
ロードおよびフラッグ命令はモンテ・カル口・アプリケーションにおいて使用す るための資源ロックアウト機構としてとくに有用なものである。
国際調査報告

Claims (7)

    【特許請求の範囲】
  1. 1.(a)資源要求に応じて、その要求を資源要求内のアドレスにより要求され た資源へ経路指定する過程と、 (b)資源要求内のコマンドを復号して、そのコマンドが原子読出しおよび書込 み資源動作に対するものであるかどうかを判定する過程と、 (c)そのコマンドが原子読出しおよび書込み資源動作に対するものであれば、 読出し動作を資源へ出し、同じ資源オペレーションの部分として資源への書込み 動作がそれに続く過程と を備え、資源に記憶されているデータ値が要求者へ戻され、所定のフラッグ値が 資源に書込まれる、多数の要求者システムのための共用されている資源内の資源 ロックアウト機構を供給する方法。
  2. 2.(a)メモリ要求に応じて、そのメモリ要求をメモリ要求内のアドレスによ り要求された共用されているメモリ内のメモリ・バンクヘ経路指定する過程と、 (b)メモリ要求内のコマンドを復号して、そのコマンドが原子読出しおよび書 込み資源動作に対するものであるかどうかを判定する過程と、 (c)そのコマンドが原子読出しおよび書込みメモリ動作に対するものであれば 、読出し動作をメモリ・バンク内のアドレスへ出し、同じメモリ・オペレーショ ンの部分としてメモリ・バンク内への書込み動作がそれに続く過程と を備え、アドレスに記憶されているデータ値が要求者へ戻され、所定のフラッグ 値がメモリのアドレスに書込まれる、多数の要求者システムのための共用されて いるメモリ内の資源ロックアウト機構を供給する方法。
  3. 3.請求項1記載の方法において、予め定められたフラッグ値は浮動小数点非数 である方法。
  4. 4.請求項1記載の方法において、過程(c)は次の副過程、すなわち、 (c0)メモリ・バンクへバンク・ビジー信号を出し、(c1)アドレスをメモ リ・バンクのためのアドレス線に置き、 (c2)予め選択されたフラッグ値をメモリ・バンクのための記憶データ・バス に置き、 (c3)データ値をメモリ・バンクのためのロード・データ・パスに置き、 (C4)着込みイネーブル信号をメモリ・バンクヘ出し、さらに (c5)後の参照のいずれかに関連する値へのバンク・ビジー信号をクリヤする 副過程を備えた方法。
  5. 5.マルチプロセッサ・システム内の各複数の要求者が、メモリ要求を出す手段 を含み、メモリ要求は出されているメモリ・オペレーションの型を識別する手段 を含み、共用されているメモリは複数のメモリ・バンクと、データ・アクセスを メモリ・バンクの間でやり取りするための別々の記憶ポート手段とロード・ポー ト手段を含み、各メモリ・バンクには、メモリ要求を要求されているメモリ・バ ンクヘ経路指定するためのスイッチング手段が組合わされている、マルチプロセ ッサ・システム内の共用されているメモリのための資源ロックアウト機構であっ て、資源ロックアウト機構は、 各メモリ・バンクに作動的に接続され、メモリ・バンク内のメモリ場所に対する アドレスを、メモリ要求の一部として受け、かつそのアドレスをメモリ要求に応 じてアドレス・ポートに置くアドレス手段と、各メモリ・バンクに作動的に接続 され、メモリ要求に応じてメモリ・バンクヘの複数の制御信号を発生する制御手 段を備え、この制御手段は、 ロード要求に応じてメモリ・バンクへロード・オペレーションを出す手段と、 記憶要求に応じてメモリ・バンクヘ記憶オペレーションを出し、記憶すべきデー タ値を記憶ポート手段のアドレスに置く手段と、 ロード要求とフラッグ要求に応じてメモリ・バンクへロード・オペレーションと 記憶オペレーションを出し、記憶すべき所定のフラッグ値を記憶ポート手段に置 く手段と を含み、ロード・オペレーションがデータ値をロード・ポート手段のアドレスに 置かせた後まで、書込みイネーブル信号が遅延させられるようにロード・オペレ ーションと記憶オペレーションが出される、マルチプロセッサ・システム内の共 用されているメモリのための資源ロックアウト機構。
  6. 6.請求項4記載の資源ロックアウト機構において、所定のフラッグ値は浮動小 数点非数値である資源ロックアウト機構。
  7. 7.複数の要求者が共用されているメモリ内の予め選択されたメモリ場所に対す るアクセスをおのおの要求できるような共用されているメモリのための資源ロッ クアウト機構であって、 単一のメモリ・サイクル内に出すためのロードおよびフラッグ・コマンドと、 接続されたメモリ場所内のデータを、メモリ場所に対するアクセスを要求してい る第1の要求者へ供給するためのロード・メモリ・オペレーションと、選択され たメモリ場所内のデータが第1の要求者により利用されている間に、以後の要求 者が同じメモリ・オペレーション・サイクル中にそのデータをアクセスできない ように、同じメモリサイクル中に所定のフラッグ値を記憶するための記憶コマン ドと を備えた、共用されているメモリのための資源ロックアウト機構。
JP51423791A 1990-06-11 1991-06-10 命令をロードおよびフラグする方法および装置 Pending JPH05508496A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53621790A 1990-06-11 1990-06-11
US536,217 1990-06-11

Publications (1)

Publication Number Publication Date
JPH05508496A true JPH05508496A (ja) 1993-11-25

Family

ID=24137636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51423791A Pending JPH05508496A (ja) 1990-06-11 1991-06-10 命令をロードおよびフラグする方法および装置

Country Status (2)

Country Link
JP (1) JPH05508496A (ja)
WO (1) WO1991020039A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4421229A1 (de) * 1994-06-17 1996-01-11 Siemens Ag Verfahren zur Ausführung von Zugriffen zu in einem Speicher enthaltenen Datenworten
US6000029A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for affecting subsequent instruction processing in a data processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CS164932B2 (ja) * 1971-09-07 1975-11-28
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4837676A (en) * 1984-11-05 1989-06-06 Hughes Aircraft Company MIMD instruction flow computer architecture
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US4794516A (en) * 1985-10-31 1988-12-27 International Business Machines Corporation Method and apparatus for communicating data between a host and a plurality of parallel processors

Also Published As

Publication number Publication date
WO1991020039A1 (en) 1991-12-26

Similar Documents

Publication Publication Date Title
US5499356A (en) Method and apparatus for a multiprocessor resource lockout instruction
US5408629A (en) Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
US5276828A (en) Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
JP5035277B2 (ja) 共有メモリに対するアトミックな更新を可能にするロックメカニズム
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
US6782468B1 (en) Shared memory type vector processing system, including a bus for transferring a vector processing instruction, and control method thereof
US20040236914A1 (en) Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
CN101802798B (zh) 在多核处理器中使用干预消息来避免活锁
US6292860B1 (en) Method for preventing deadlock by suspending operation of processors, bridges, and devices
CN114756502A (zh) 片上原子事务引擎
US6792497B1 (en) System and method for hardware assisted spinlock
EP0475873A2 (en) Duplicated logic and interconnection system for arbitration among multiple information processors
US5165038A (en) Global registers for a multiprocessor system
US20080040524A1 (en) System management mode using transactional memory
JP2539021B2 (ja) 保留バスに割り込み要求を送る割り込み要求発生ノ―ド
US20030131214A1 (en) Masterless building block binding to partitions using identifiers and indicators
JPH11282821A (ja) 同時トランザクションを依存性で管理するための低占有度プロトコル
JPH03210657A (ja) 多重プロセッサ・システム
US7143414B2 (en) Method and apparatus for locking multiple semaphores
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JPH03212755A (ja) マルチプロセッサ・システムおよび割り込み方法
Yilmazer et al. HQL: A scalable synchronization mechanism for GPUs
US5524255A (en) Method and apparatus for accessing global registers in a multiprocessor system
US5535363A (en) Method and apparatus for skipping a snoop phase in sequential accesses by a processor in a shared multiprocessor memory system
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置