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