JP3797570B2 - セマフォ命令用のセマフォ・バッファを用いた装置と方法 - Google Patents

セマフォ命令用のセマフォ・バッファを用いた装置と方法 Download PDF

Info

Publication number
JP3797570B2
JP3797570B2 JP25465796A JP25465796A JP3797570B2 JP 3797570 B2 JP3797570 B2 JP 3797570B2 JP 25465796 A JP25465796 A JP 25465796A JP 25465796 A JP25465796 A JP 25465796A JP 3797570 B2 JP3797570 B2 JP 3797570B2
Authority
JP
Japan
Prior art keywords
semaphore
data
instruction
initial
address
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 - Fee Related
Application number
JP25465796A
Other languages
English (en)
Other versions
JPH09138778A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09138778A publication Critical patent/JPH09138778A/ja
Application granted granted Critical
Publication of JP3797570B2 publication Critical patent/JP3797570B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、コンピュータ・システムに関し、より詳細には、マルチプロセッサ(多重プロセッサ)・システムにおけるセマフォ動作の効率的な管理を実現するためのコンピュータ・システムの実装(implementation)に関する。
【0002】
【従来の技術】
マルチプロセッサ・システムでは、多くのプロセッサは、プロセッサによって共用されるデータへのアクセスを必要とする。データを直列化(serializing)する措置をとらないと、あるプロセッサが記憶装置のある領域に、それが別のプロセッサによって読み出されている間に書込みを行うとき、「データの分裂(data tearing)」が生じる可能性がある。こうした状況が存在すると、記憶装置の読出しを行うプロセッサが実際には、2つに分離したデータ値の「分裂した」断片を読み出すことが起こりうる。
【0003】
セマフォ命令は、マルチプロセッサ・システムにおいて「データの分裂」なく共用データを得るのに使用される直列化命令である。セマフォ動作は、これらの命令を実行することによって行われ、アトミック(分割不能)な読込み/修正/書込み(read-modify-write)の順序付けられたメモリ・アクセスを実現する。
【0004】
ある種のマルチプロセッサ・システムでは、セマフォ動作は主記憶装置へのアトミックなアクセスを使用する。システム内の個々のプロセッサは通常、システム・バス上で主記憶装置へのアクセスを共用するが、セマフォ動作が実行されている間、プロセッサはシステム・バスをロックして主記憶装置へのアトミック・アクセスを行う。システム・バスがロックされている間、システム内の他のプロセッサによるシステム・バスの使用ができないため、システムのパフォーマンスは低下する。
【0005】
その上、ある種のシステムでは、セマフォ命令は、プロセッサの命令パイプラインによって実行される。しかし、いくつかの高度なセマフォ命令の実行が必要とされるハードウェアには、望ましくない複雑性を追加することになる。しかも、セマフォ命令とパイプライン中で実行されている他の命令との間の資源の競合のため、パフォーマンスに悪影響が出る。とりわけ、複数のセマフォ命令をパイプライン中で同時に実行することはできない。
【0006】
【発明が解決しようとする課題】
複数のセマフォ命令を同時実行し、かつ必要な順序付けを強制するための、簡単なセマフォの方法および装置が求められている。
【0007】
【課題を解決するための手段】
本発明は、複数のセマフォ命令の同時実行ならびに必要な順序付けの強制のための簡単なセマフォの方法および装置を提供する。以下詳細に論じるように、本発明によるセマフォ・バッファは、セマフォ命令(取込み/追加(Fetch-and-Add)や比較/交換(Compare-and-Swap)などのかなり高度な命令を含む)を、中央演算処理装置のパイプラインではなくデータ・キャッシュ内で実行できるようにし、また複数のセマフォ命令を同時に実行できるようにすることによってセマフォ命令のサポートを簡単にするが、ただし、その同時実行がこれらのセマフォ命令に強制された必要な順序で一貫していることを条件とする。さらに、本発明によるデータ・キャッシュ構成(arrange)内でセマフォ命令を実行すると、セマフォ動作が主記憶装置へのアトミック・アクセスを使わず、またシステム・バスがセマフォ動作中にロックされないので、システムのパフォーマンスが向上する。
【0008】
簡単に言うと、一般的に本発明は、データ・キャッシュ構成に結合された命令パイプラインを備えた中央演算処理装置を含み、中央演算処理装置はセマフォ・バッファ、データ・キャッシュ、およびセマフォ実行ユニットを含む。例えば、1以上のオペランドおよびセマフォ・アドレスを有する初期セマフォ命令が、命令パイプラインからセマフォ・バッファに送られ、次いでセマフォ・バッファからセマフォ実行ユニットに送られる。初期セマフォ命令のセマフォ・アドレスは、データ・キャッシュ内に格納された初期セマフォ・データを、データ・キャッシュのデータ行中のセマフォ・アドレスによって識別されるある位置で取り出すことができるように、命令パイプラインからデータ・キャッシュに送られる。ほとんどのセマフォ命令の場合、この初期セマフォ・データは、宛先レジスタを更新するためにパイプラインに戻される。
【0009】
セマフォ・バッファの機能の1つは、セマフォ命令のオペランドを格納し、キャッシュ・メモリ・アクセスの読出し部分が完了するのを待つことである。データ・キャッシュ・アクセスの読出し部分が完了すると、初期セマフォ・データは、データ・キャッシュからセマフォ実行ユニットに送られる。セマフォ命令は、処理済みセマフォ・データを生成するために、初期セマフォ命令および1以上のセマフォ・オペランドを処理することによって、セマフォ実行ユニット内で実行され、次いでその処理済みセマフォ・データは、データ・キャッシュ内の、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ・ライン中の位置に格納される。セマフォ・バッファは複数のセマフォ命令のエントリを備えているため、セマフォ・バッファは、必要に応じて複数のセマフォ命令の同時実行を開始する。
【0010】
一般に、セマフォのデータ・キャッシュ・アクセスは、読込み/修正/書込み(Read-Modify-Write)である。セマフォ動作が読込み/修正/書込み動作であるので、セマフォ・バッファの他の機能は、依存状態を監視すること、ならびにいくつかのセマフォ命令の必要な順序付けを強制することである。前のストアと後続のロードの間に依存関係がある場合に、依存状態が検出される。前述のように、ロードは通常、高性能処理装置では前のストアに先立って実行されるため、依存状態の検出は、処理装置の正しい動作のためにきわめて重要である。セマフォの格納データはかなり後でしか利用できないので、この場合はストア−フェッチ(store-fetch)のバイパスを行うことができないため、セマフォ・バッファの制御論理部によってこの依存状態が検出されると、セマフォ・バッファの制御論理部はパイプラインをインタロックすることになる。
【0011】
本発明のその他の態様および利点は、下記の詳細な説明を本発明の原理を例によって図示する添付の図面と併せ読めば明らかになろう。
【0012】
【実施例】
図1は、本発明の好ましい実施形態の簡単な部分ブロック図である。マルチプロセッサ・システム100は、マルチプロセッサ・システムにおけるセマフォ動作を効率的に管理するため、本発明による複数の好ましいキャッシュ構成101を使用する。各キャッシュ構成は、主記憶装置103と、第1および第2中央演算処理装置(CPU)105、106、それぞれとの間に結合された高速記憶装置を提供する。システム・バス122は、中央演算処理装置のそれぞれに結合されたそれぞれのバス・コントローラ/インタフェース123によって制御される。
【0013】
各中央演算処理装置は、それぞれのデータ・キャッシュ構成に結合されたそれぞれの命令パイプラインを備え、そのデータ・キャッシュ構成はセマフォ・バッファ132、高速記憶装置のデータ・キャッシュ134、およびセマフォ実行ユニット136を含む。1以上のオペランドおよびセマフォ・アドレスを有する初期セマフォ命令が、命令パイプラインからセマフォ・バッファ132に送られ、次いでセマフォ・バッファ132からセマフォ実行ユニット136に送られる。初期セマフォ命令のセマフォ・アドレスは、データ・キャッシュ内に格納されている初期セマフォ・データが命令パイプラインからデータ・キャッシュ134に送られて、セマフォ・アドレスによって識別されるデータ行138中の位置で取り出すことができるようになる。
【0014】
データ・キャッシュ・アクセスの読出し部分が完了すると、初期セマフォ・データは、データ・キャッシュ134からセマフォ実行ユニット136に送られる。セマフォ命令は、処理済みセマフォ・データを生成するために、初期セマフォ・データならびに1以上のセマフォ・オペランドを操作することによって、セマフォ実行ユニット136内で実行され、その処理済みセマフォ・データは、データ・キャッシュ内の、セマフォ・アドレスによって識別されるデータ・ライン138中の位置に格納される。本発明による初期セマフォ命令の処理についてここで詳細に論じるが、本発明によるセマフォ・バッファ132は、複数のセマフォ命令のエントリを備え、また必要に応じて複数のセマフォ命令の同時実行を開始することを理解されたい。
【0015】
図2は、図1にその好ましい実施形態を示したセマフォ・バッファ132の、詳細な部分ブロック図である。図2に示したように、本発明によるセマフォ・バッファ132は、4つのエントリを提供し、それによって4つのセマフォ命令の同時実行の開始が実現される。代替実施例では、異なる数のセマフォ命令を同時実行するために、2つのエントリ、3つのエントリ、あるいは4つを超えるエントリが与えられる。好適な実施例では、エントリはそれぞれ、セマフォ・エントリ、第1オペランド、第2オペランド、宛先レジスタ番号、およびセマフォ・アドレスを格納する。
【0016】
セマフォ・バッファ132の制御論理部210は、その初期データがデータ・キャッシュから戻されたとき、セマフォ命令の実行を開始する。好ましい実施形態では、制御論理部は、セマフォ・バッファを使用して後続のセマフォ命令を格納し、また後続のセマフォ命令の実行を開始してから、初期セマフォ命令の処理済みセマフォ・データを強制的な順序付けに従ってデータ・キャッシュ内に格納することによって、セマフォ命令の同時実行を開始する。
【0017】
さらに、セマフォ・バッファの制御論理部210は、必要に応じてインタロック信号を発生させて、必要な依存関係およびいくつかの命令の順序付けを強制する。本発明の好ましい実施形態では、セマフォ・バッファ132にセマフォ・アドレスを有する後続のセマフォ命令が送られると、セマフォ・バッファ132の制御論理部210内のコンパレータ回路は、初期セマフォ命令の処理済みセマフォ・データがデータ・キャッシュ134にまだ格納されていない場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行138が後続のセマフォ命令のセマフォ・アドレスによって識別されるデータ行138と同じである場合に、インタロック信号を発生させる。
【0018】
同様に、セマフォ・バッファ132にアドレスを有する後続のロード命令またはストア命令が送られると、セマフォ・バッファは、初期セマフォ命令の処理済みセマフォ・データがデータ・キャッシュ134にまだ格納されていない場合、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が後続のロード命令またはストア命令のアドレスによって識別されるデータ行と同一である場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ・ライン中の位置と、後続のロード命令またはストア命令のアドレスによって識別されるデータ行中の位置との間にバイトの重複がある場合に、インタロック信号を発生させる。いずれにせよ、命令パイプラインは、初期セマフォ命令の処理済みセマフォ・データがデータ・キャッシュ134内に格納されるまでは、インタロック信号に応答してインタロックされる。
【0019】
さらに、本発明の原理によれば、セマフォ命令が取込み/追加(Fetch-and-Add)命令である場合、1以上のオペランドは第1オペランドを含み、またセマフォ命令の実行ステップは、処理済みセマフォ・データを生成するために、第1オペランドを初期セマフォ・データに追加するステップを含む。
【0020】
さらに、セマフォ命令が比較/交換(Compare-and-Exchange)命令である場合、1以上のオペランドは第1オペランドおよび第2オペランドを含み、セマフォ命令の実行ステップは、第1オペランドの値が初期セマフォ・データと一致するかどうかを判定するために、第1オペランドを初期セマフォ・データと比較するステップを含む。処理済みセマフォ・データの格納ステップは、第1オペランドが初期セマフォ・データと一致する場合に、第2オペランドを処理済みセマフォ・データとして格納するステップを含む。第1オペランドが初期セマフォ・データと一致しない場合、初期セマフォ・データは、修正されることなく処理済みセマフォ・データになり、処理済みセマフォ・データを格納する必要がない。ただし、ハードウェアへの実装を簡単にするために、ある種の実施形態においては、処理済みセマフォデータが初期セマフォ・データと異なるかどうかに関わらず格納されることを理解されたい。
【0021】
以上本発明の特定の実施形態に関して説明および図示を行ったが、本発明は以上で説明および図示を行った特定の形態または部品の配置に限定されるものではなく、本発明の範囲および精神から逸脱することなく様々な修正および変更を加えることができる。したがって、添付の特許請求の範囲内で、本発明は具体的に説明し図示したのとは別な方法で実施することができる。
【0022】
以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。
【0023】
(実施態様1)
1以上のセマフォ・オペランドおよびセマフォ・アドレスを有するセマフォ命令を供給する命令パイプラインを含む中央演算処理装置と、
データ・キャッシュ構成とを含み、前記データ・キャッシュ構成が、
命令パイプラインに結合された、セマフォ命令およびセマフォ・オペランドを受け取るセマフォ・バッファと、
命令パイプラインに結合された、セマフォ・アドレスを受け取り、ならびにデータ・キャッシュ内においてセマフォ・アドレスによって識別されるデータ行中に格納された初期セマフォ・データを提供する、データ・キャッシュと、
セマフォ・バッファに結合されセマフォ命令およびセマフォ・オペランドを受け取り、かつデータ・キャッシュに結合され初期セマフォ・データを受け取り、初期セマフォ・データおよび1以上のオペランドを処理することによって処理済みセマフォ・データを生成し、セマフォ命令を実行するように適合され、かつ処理済みセマフォ・データをセマフォ・アドレスによって識別されるデータ行に戻して格納するセマフォ実行ユニットとを有する装置。
【0024】
(実施態様2)
命令パイプラインを備えた中央演算処理装置を提供するステップと、
セマフォ・バッファ、データ・キャッシュ、およびセマフォ実行ユニットを含むデータ・キャッシュ構成を提供するステップと、
1以上のセマフォ・オペランドおよびセマフォ・アドレスを有する初期セマフォ命令を、命令パイプラインからセマフォバッファに送るステップと、
初期セマフォ命令のセマフォ・アドレスをデータ・キャッシュに送るステップと、
データ・キャッシュ内に格納された初期セマフォ・データを、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置で取り出すステップと、
初期セマフォ・データをデータ・キャッシュからセマフォ実行ユニットに送るステップと、
初期セマフォ命令および1以上のセマフォ・オペランドを、セマフォ・バッファからセマフォ実行ユニットに送るステップと、
処理済みセマフォ・データを生成するために、初期セマフォ・データおよび1以上のセマフォ・オペランドを処理することによって、セマフォ実行ユニット内で初期セマフォ命令を実行するステップと、
データ・キャッシュ内の、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置に処理済みセマフォ・データを格納することによって、初期セマフォ命令の実行を完了するステップとを含む方法。
【0025】
(実施態様3)
セマフォ・アドレスを有する後続のセマフォ命令を、命令パイプラインからセマフォ・バッファに送るステップと、
初期セマフォ命令の処理済みセマフォ・データがデータ・キャッシュ内にまだ格納されていない場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のセマフォ命令のセマフォ・アドレスによって識別されるデータ行と同じである場合に、セマフォ・バッファを使用してインタロック信号を発生させるステップと、
処理済みセマフォ・データがデータ・キャッシュ内に格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップとを含む実施態様2に記載の方法。
【0026】
(実施態様4)
アドレスを有する後続のロード命令を、命令パイプラインからセマフォ・バッファに送るステップと、
初期セマフォ命令の処理済みセマフォ・データがまだデータ・キャッシュ内に格納されていない場合、ならびに
初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のロード命令のアドレスによって識別されるデータ行と同じである場合、ならびに
初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置と、後続のロード命令のアドレスによって識別されるデータ行中の位置との間にバイトの重複がある場合に、セマフォ・バッファを使用してインタロック信号を発生させるステップと、
処理済みセマフォ・データがデータ・キャッシュに格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップとを含む実施態様2に記載の方法。
【0027】
(実施態様5)
アドレスを有する後続のストア命令を、命令パイプラインからセマフォ・バッファに送るステップと、
初期セマフォ命令の処理済みセマフォ・データがまだデータ・キャッシュ内に格納されていない場合、ならびに
初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のロード命令のアドレスによって識別されるデータ行と同じである場合、ならびに
初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置と、後続のロード命令のアドレスによって識別されるデータ行中の位置との間にバイトの重複がある場合に、セマフォ・バッファを使用してインタロック信号を発生するステップと、
処理済みセマフォ・データがデータ・キャッシュに格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップとを含む実施態様2に記載の方法。
【0028】
(実施態様6)
セマフォ命令が取出し/追加(fetch and add)命令であり、
1以上のオペランドが第1オペランドを含み、
セマフォ命令の実行ステップが、処理済みセマフォ・データを生成するために、第1オペランドを初期セマフォ・データに追加するステップを含むことを特徴とする実施態様2に記載の方法。
【0029】
(実施態様7)
セマフォ命令が比較/交換(compare and exchange)命令であり、
1以上のオペランドが、第1オペランドおよび第2オペランドを含み、
セマフォ命令の実行ステップが、第1オペランドを初期セマフォ・データと比較し、第1オペランドの値が初期セマフォ・データと一致しているかどうか判定するステップを含み、
処理済みセマフォ・データの格納ステップが、第1オペランドが初期セマフォ・データに等しい場合に第2オペランドを処理済みセマフォデータとして格納するステップを含むことを特徴とする実施態様2に記載の方法。
【0030】
(実施態様8)
セマフォ・バッファ、データ・キャッシュ、およびセマフォ実行ユニットを含むデータ・キャッシュ構成を提供するステップと、
セマフォ・バッファに、セマフォ・アドレスを有する初期セマフォ命令を格納するステップと、
データ・キャッシュ内に格納された初期セマフォ・データを取り出すステップと、
処理済みセマフォ・データを生成するために、初期セマフォ・データを処理することによって、実行ユニット内で初期セマフォ命令を実行するステップと、
セマフォ・バッファを使用して後続のセマフォ命令を格納し、後続のセマフォ命令の実行を開始してから初期セマフォ命令の処理済みセマフォ・データをデータキャッシュに格納することによって、セマフォ命令の同時実行を開始するステップとを含む方法。
【0031】
(実施態様9)
処理済みセマフォ・データをデータ・キャッシュ内に格納することによって、初期セマフォ命令の実行を完了するステップを含む実施態様8に記載の方法。
【0032】
【発明の効果】
以上のように、本発明によれば、複数のセマフォ命令を同時実行することができ、必要な順序付けの強制も可能な、簡単なセマフォの方法と装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の好適実施例の簡単な部分ブロック図である。
【図2】図1の実施例に示したセマフォ・バッファの詳細な部分ブロック図である。
【符号の説明】
100:マルチプロセッサ・システム
101:キャッシュ構成
103:主記憶装置
105、106:中央演算処理装置(CPU)
122:システム・バス
123:バス・コントローラ/インタフェース
132:セマフォ・バッファ
134:データ・キャッシュ
136:セマフォ実行ユニット
138:データ行
210:制御論理部

Claims (9)

  1. 命令パイプラインを備えた中央演算処理装置と、セマフォ・バッファ、データ・キャッシュ、およびセマフォ実行ユニットを含むデータ・キャッシュ構成とを用いて実現される方法であって、
    1以上のセマフォ・オペランドおよびセマフォ・アドレスを有する初期セマフォ命令を、命令パイプラインからセマフォバッファに送るステップと、
    初期セマフォ命令のセマフォ・アドレスをデータ・キャッシュに送るステップと、
    データ・キャッシュ内に格納された初期セマフォ・データを、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置で取り出すステップと、
    初期セマフォ・データをデータ・キャッシュからセマフォ実行ユニットに送るステップと、
    初期セマフォ命令および1以上のセマフォ・オペランドを、セマフォ・バッファからセマフォ実行ユニットに送るステップと、
    処理済みセマフォ・データを生成するために、初期セマフォ・データおよび1以上のセマフォ・オペランドを処理することによって、セマフォ実行ユニット内で初期セマフォ命令を実行するステップと、
    データ・キャッシュ内の、初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置に処理済みセマフォ・データを格納することによって、初期セマフォ命令の実行を完了するステップと
    を含む方法。
  2. セマフォ・アドレスを有する後続のセマフォ命令を、命令パイプラインからセマフォ・バッファに送るステップと、
    初期セマフォ命令の処理済みセマフォ・データがデータ・キャッシュ内にまだ格納されていない場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のセマフォ命令のセマフォ・アドレスによって識別されるデータ行と同じである場合に、セマフォ・バッファを使用してインタロック信号を発生させるステップと、
    処理済みセマフォ・データがデータ・キャッシュ内に格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップと
    を含む請求項1に記載の方法。
  3. アドレスを有する後続のロード命令を、命令パイプラインからセマフォ・バッファに送るステップと、
    初期セマフォ命令の処理済みセマフォ・データがまだデータ・キャッシュ内に格納されていない場合、ならびに
    初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のロード命令のアドレスによって識別されるデータ行と同じである場合、ならびに
    初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置と、後続のロード命令のアドレスによって識別されるデータ行中の位置との間にバイトの重複がある場合に、
    セマフォ・バッファを使用してインタロック信号を発生させる
    ステップと、
    処理済みセマフォ・データがデータ・キャッシュに格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップと
    を含む請求項1に記載の方法。
  4. アドレスを有する後続のストア命令を、命令パイプラインからセマフォ・バッファに送るステップと、
    初期セマフォ命令の処理済みセマフォ・データがまだデータ・キャッシュ内に格納されていない場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行が、後続のロード命令のアドレスによって識別されるデータ行と同じである場合、ならびに初期セマフォ命令のセマフォ・アドレスによって識別されるデータ行中の位置と、後続のロード命令のアドレスによって識別されるデータ行中の位置との間にバイトの重複がある場合に、セマフォ・バッファを使用してインタロック信号を発生するステップと、
    処理済みセマフォ・データがデータ・キャッシュに格納されるまで、インタロック信号に応答して命令パイプラインをインタロックするステップと
    を含む請求項1に記載の方法。
  5. セマフォ命令が取出し/追加(fetch and add)命令であり、1以上のオペランドが第1オペランドを含み、セマフォ命令の実行ステップが、処理済みセマフォ・データを生成するために、第1オペランドを初期セマフォ・データに追加するステップを含むこと
    を特徴とする請求項1に記載の方法。
  6. セマフォ命令が比較/交換(compare and exchange)命令であり、
    1以上のオペランドが、第1オペランドおよび第2オペランドを含み、
    セマフォ命令の実行ステップが、第1オペランドを初期セマフォ・データと比較し、第1オペランドの値が初期セマフォ・データと一致しているかどうか判定するステップを含み、
    処理済みセマフォ・データの格納ステップが、第1オペランドが初期セマフォ・データに等しい場合に第2オペランドを処理済みセマフォデータとして格納するステップを含む
    ことを特徴とする請求項1に記載の方法。
  7. セマフォ・バッファ、データ・キャッシュ、およびセマフォ実行ユニットを含むデータ・キャッシュ構成を用いて実現される方法であって、
    セマフォ・バッファに、セマフォ・アドレスを有する初期セマフォ命令を格納するステップと、データ・キャッシュ内に格納された初期セマフォ・データを取り出すステップと、
    処理済みセマフォ・データを生成するために、初期セマフォ・データを処理することによって、実行ユニット内で初期セマフォ命令を実行するステップと、
    セマフォ・バッファを使用して後続のセマフォ命令を格納し、後続のセマフォ命令の実行を開始してから初期セマフォ命令の処理済みセマフォ・データをデータキャッシュに格納することによって、セマフォ命令の同時実行を開始するステップと
    を含む方法。
  8. 処理済みセマフォ・データをデータ・キャッシュ内に格納することによって、初期セマフォ命令の実行を完了するステップを
    含む請求項7に記載の方法。
  9. 1以上のセマフォ・オペランドおよびセマフォ・アドレスを有するセマフォ命令を供給する命令パイプラインを含む中央演算処理装置と、
    データ・キャッシュ構成と
    を含み、
    前記データ・キャッシュ構成が、
    命令パイプラインに結合された、セマフォ命令およびセマフォ・オペランドを受け取るセマフォ・バッファと、
    命令パイプラインに結合された、セマフォ・アドレスを受け取り、ならびにデータ・キャッシュ内においてセマフォ・アドレスによって識別されるデータ行中に格納された初期セマフォ・データを提供する、データ・キャッシュと、
    セマフォ・バッファに結合されセマフォ命令およびセマフォ・オペランドを受け取り、かつデータ・キャッシュに結合され初期セマフォ・データを受け取り、初期セマフォ・データおよび1以上のオペランドを処理することによって処理済みセマフォ・データを生成し、セマフォ命令を実行するように適合され、かつ処理済みセマフォ・データをセマフォ・アドレスによって識別されるデータ行に戻して格納するセマフォ実行ユニットと
    を有する装置。
JP25465796A 1995-09-29 1996-09-26 セマフォ命令用のセマフォ・バッファを用いた装置と方法 Expired - Fee Related JP3797570B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/536,534 US5696939A (en) 1995-09-29 1995-09-29 Apparatus and method using a semaphore buffer for semaphore instructions
US536,534 1995-09-29

Publications (2)

Publication Number Publication Date
JPH09138778A JPH09138778A (ja) 1997-05-27
JP3797570B2 true JP3797570B2 (ja) 2006-07-19

Family

ID=24138895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25465796A Expired - Fee Related JP3797570B2 (ja) 1995-09-29 1996-09-26 セマフォ命令用のセマフォ・バッファを用いた装置と方法

Country Status (2)

Country Link
US (1) US5696939A (ja)
JP (1) JP3797570B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889983A (en) * 1997-01-21 1999-03-30 Intel Corporation Compare and exchange operation in a processing system
US5893157A (en) * 1997-05-28 1999-04-06 International Business Machines Corporation Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
US5895492A (en) * 1997-05-28 1999-04-20 International Business Machines Corporation Processor associated blocking symbol controls for serializing the accessing of data resources in a computer system
US5895494A (en) * 1997-09-05 1999-04-20 International Business Machines Corporation Method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure
US6453375B1 (en) * 1999-03-23 2002-09-17 Intel Corporation Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers
US6381663B1 (en) * 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
US6405233B1 (en) 1999-06-30 2002-06-11 Intel Corporation Unaligned semaphore adder
JP4923288B2 (ja) * 2000-03-13 2012-04-25 陽子 友保 非同期共有オブジェクトシステムの耐故障合意手法およびその実現機構
US6725457B1 (en) * 2000-05-17 2004-04-20 Nvidia Corporation Semaphore enhancement to improve system performance
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US6892258B1 (en) * 2001-10-26 2005-05-10 Lsi Logic Corporation Hardware semaphores for a multi-processor system within a shared memory architecture
US20040019722A1 (en) * 2002-07-25 2004-01-29 Sedmak Michael C. Method and apparatus for multi-core on-chip semaphore
JP4767361B2 (ja) * 2008-03-31 2011-09-07 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
CN104025037B (zh) * 2012-01-06 2018-07-03 英特尔公司 在不将数据复制到单独的储存的情况下交换指针来处理被数据源存储在缓冲器中的数据

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5050072A (en) * 1988-06-17 1991-09-17 Modular Computer Systems, Inc. Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system
US5276886A (en) * 1990-10-11 1994-01-04 Chips And Technologies, Inc. Hardware semaphores in a multi-processor environment
US5428783A (en) * 1990-11-28 1995-06-27 Motorola, Inc. Lan based loosely coupled large grain parallel processing method
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
GB9123264D0 (en) * 1991-11-01 1991-12-18 Int Computers Ltd Semaphone arrangement for a data processing system
DE69230462T2 (de) * 1991-11-19 2000-08-03 Sun Microsystems, Inc. Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
US5261106A (en) * 1991-12-13 1993-11-09 S-Mos Systems, Inc. Semaphore bypass
JP3005402B2 (ja) * 1993-09-29 2000-01-31 三洋電機株式会社 Romの読出切換回路

Also Published As

Publication number Publication date
US5696939A (en) 1997-12-09
JPH09138778A (ja) 1997-05-27

Similar Documents

Publication Publication Date Title
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5499356A (en) Method and apparatus for a multiprocessor resource lockout instruction
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
JP3206914B2 (ja) 多重プロセッサ・システム
CA2016532C (en) Serializing system between vector instruction and scalar instruction in data processing system
US5291581A (en) Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
EP0305639B1 (en) Vector computer
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US6112282A (en) Apparatus for atomic locking-accessing-unlocking of a shared resource
JP3304444B2 (ja) ベクトル処理装置
JPH07311740A (ja) コンピュータ
US6516403B1 (en) System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US5900018A (en) Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache
JP2005322240A (ja) インデックス付きレジスタアクセス用の方法および装置
EP0297895B1 (en) Apparatus and method using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
US4935849A (en) Chaining and hazard apparatus and method
JPH0769825B2 (ja) 並列処理装置
JP2920968B2 (ja) 命令処理順序制御方式
JP4228639B2 (ja) ウエイト制御方法、マイクロコンピュータ、バスコントローラ
JP3467188B2 (ja) 多重化バスの順序保証システム
JPH0279122A (ja) 浮動小数点演算機構
JPH06139071A (ja) 並列計算機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050826

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060414

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees