JP3431850B2 - 同期化するための処理を行う方法およびデータ処理システム - Google Patents

同期化するための処理を行う方法およびデータ処理システム

Info

Publication number
JP3431850B2
JP3431850B2 JP03144599A JP3144599A JP3431850B2 JP 3431850 B2 JP3431850 B2 JP 3431850B2 JP 03144599 A JP03144599 A JP 03144599A JP 3144599 A JP3144599 A JP 3144599A JP 3431850 B2 JP3431850 B2 JP 3431850B2
Authority
JP
Japan
Prior art keywords
instruction
flag
synchronization
architected
queue
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
JP03144599A
Other languages
English (en)
Other versions
JPH11328140A (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 JPH11328140A publication Critical patent/JPH11328140A/ja
Application granted granted Critical
Publication of JP3431850B2 publication Critical patent/JP3431850B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にはマルチプロ
セッサ・システムにおける処理の同期に関し、より詳細
にはマルチプロセッサ・システム・バス上への同期バス
操作の送出に関する。さらに詳細には、本発明は、履歴
命令実行情報に基づいて不要な同期バス動作をシステム
・バス上に送出する前にフィルタ遮断することによる選
択的同期に関する。
【0002】
【従来の技術】マルチプロセッサ・データ処理システム
上で実行するソフトウェアを作成するプログラマは、命
令実行の流れの中で処理境界として機能し、後続のコー
ド・セグメント内のあらゆる命令が実行される前に第1
のコード・セグメント内のすべての命令が完全に実行さ
れるように保証する点を設ける必要や希望を有すること
が多い。マルチプロセッサ・システムが、アウト・オブ
・オーダー(非プログラム順)命令実行と弱いメモリ・
コンシステンシをサポートするスーパースカラ・プロセ
ッサを備える場合は特にそうである。一般に普及してい
るほとんどの市販プロセッサがサポートする命令セット
は、このような処理境界を設定する命令を備える。たと
えばPowerPC(商標)プロセッサ・ファミリでは、プロ
グラマが処理境界を設定するために使用することができ
る命令は「同期(sync)」命令である。同期命令は、命
令実行の作用を順序づける。同期命令より前に開始され
た命令はすべて、同期命令が完了する前に完了している
ように見え、同期命令が完了するまでどの後続命令も開
始されないように見える。したがって、同期命令によっ
て2つの重要な効果を持つ境界が作られる。第一に、命
令ストリーム内で同期命令の後の命令は、命令ストリー
ム内で同期命令に先行するすべての命令が完了するまで
実行されない。第二に、命令ストリーム内で同期命令の
後の命令は、同期命令に先行する命令に対してアウト・
オブ・オーダー実行されるようには再命令されない。
【0003】PowerPC(商標)デバイス・ファミリで
は、アーキテクテッド論理待ち行列を使用して、対応す
るプロセッサによって発行されたがまだ実行されていな
い「アーキテクテッド」命令を保留にする。本明細書で
は、アーキテクテッド命令とはシステム内の他の装置
(他のプロセッサ、キャッシュなど)にとって記憶階層
に影響を与える可能性がある命令である。このような命
令には、キャッシュ可能メモリ空間へのロード/ストア
を除く、記憶階層に影響を与えるあらゆる命令が本質的
に含まれる。PowerPC(商標)デバイス・ファミリの場
合の例としては、tlbi(変換索引緩衝機構無効化)、tl
bsync(変換索引緩衝機構同期)、dcbf(データ・キャ
ッシュ・ブロック・フラッシュ)、dcbst(データ・キ
ャッシュ・ブロック・ストア)、icbi(命令キャッシュ
・ブロック無効化)、およびキャッシュ不能メモリ空間
へのロード/ストア(たとえばメモリ・マップ装置)な
どがある。
【0004】同期命令は、キャッシュ可能操作(通常の
ロードおよびストア)とアーキテクテッド操作の両方と
の間で相互に影響を与え合う。保留中のキャッシュ可能
操作を発行したプロセッサは、保留キャッシュ可能操作
が完了する(プロセッサはこの完了を適切なデータが返
されることによって確認することができる)まで同期命
令を出さない。プロセッサは本質的に、保留中のキャッ
シュ可能操作があればそれが完了するまで同期命令を停
止する。
【0005】ローカル・プロセッサから受け取ったアー
キテクテッド操作は、そのアーキテクテッド操作を実行
するために必要な資源が使用可能になるまでアーキテク
テッド論理待ち行列に入れることができる。アーキテク
テッド論理待ち行列が空でないときに同期命令を受け取
ると、その同期命令は待ち行列が空になるまで再試行さ
れる。ローカル・アーキテクテッド論理待ち行列が空に
されると、同期命令はまだ操作を完了させることができ
ない他の装置のためにシステム・バスに送出される。し
たがって、現行のアーキテクチャでは、同期命令は常に
システム・バス上に送出される。ローカル・プロセッサ
から同期命令を受け取る発行側装置はアーキテクテッド
操作を発行したがかどうかを判断するための、その装置
自体の過去の操作に関する履歴情報を持っておらず、シ
ステム・バスからのそのようなアーキテクテッド操作を
スヌープする装置内のアーキテクテッド操作の状況に関
する情報もないため、同期命令は常にシステム・バス上
で可視にされる。このようなスヌープ装置は、アーキテ
クテッド論理操作を受け取ると、アーキテクテッド操作
が実際に待ち行列に入れられた(ポストされた)ときに
そのアーキテクテッド操作が完了したという標識を返す
ことができる。さらに、アーキテクテッド操作は一般に
データを返さないが、「アドレスのみ」操作を含む。し
たがって、発行側装置には不要な同期操作をフィルタ除
外するための拠り所がない。これは、ローカル・プロセ
ッサから同期命令を受け取ったときに発行側装置自体の
アーキテクテッド待ち行列が空になった場合でさえも、
発行側装置はメモリ階層内の他の装置がスヌープされて
いるアーキテクテッド操作を保留にしているかどうかを
判断する手段がないためである。したがって、(アーキ
テクテッド操作が発生する頻度は比較的低いため)アー
キテクテッド待ち行列は大部分の時間、比較的空のまま
であるにもかかわらず、システム・バス上に多くの同期
操作が現れる。現行のアーキテクチャでは、同期型操作
によって100システム・バス・サイクルごとに1サイ
クルも使われることがある。
【0006】同期命令は技術の進歩に比例しては進歩し
ないため、不要な同期操作をフィルタリングする必要が
大きい。技術の進歩、特に装置サイズの向上に伴い、デ
ータ処理システムのパフォーマンスが向上する。たとえ
ば、プロセッサ内の実行ユニットの数が増えて、より多
くの命令を並列実行することが可能になる。より大きな
キャッシュを実装することができるようになることによ
って、キャッシュ・ヒットが増え、キャッシュ・ミスが
少なくなる。一方、同期命令はそれに比例せず、それど
ころか技術の進歩につれて同期操作に伴うペナルティが
ひどくなる。同期命令がすべての実行時命令のうちの一
定の割合を保つ場合でも、並列実行される命令が増える
ため、同期命令は使用可能なプロセッサ・サイクルおよ
び帯域幅のより多くの部分を使用するようになる。さら
に、メモリ階層(そのすべての階層が同期命令の影響を
受ける)が深くなると、単一の同期命令に付随するパフ
ォーマンス・ペナルティが大きくなる。
【0007】したがって、マルチプロセッサ・システム
・バス上に不要な同期操作が送出されないようにフィル
タリングする機構を設けることが望ましいであろう。ま
た、この機構が、命令のタイプまたは同期命令を受け取
る装置によって実行された操作の履歴あるいはその両方
に基づいて選択的な同期を可能にすればさらに望ましい
であろう。
【0008】
【発明が解決しようとする課題】したがって、本発明の
目的は、マルチプロセッサ・システムにおける処理を同
期化する改良された方法および装置を提供することであ
る。
【0009】本発明の他の目的は、マルチプロセッサ・
システム・バス上に同期化バス操作を選択的に送出する
方法および装置を提供することである。
【0010】本発明の他の目的は、履歴命令実行情報に
基づいて不要な同期バス操作をシステム・バス上に送出
する前にフィルタ遮断することによる選択的同期化の方
法および装置を提供することである。
【0011】
【課題を解決するための手段】上記の目的は、以下に述
べるようにして達成される。マルチプロセッサ・システ
に含まれる各プロセッサに対応し、システム・バスに
接続されるメモリ・コヒーレント装置のアーキテクテッ
ド論理待ち行列に付随するレジスタは、システム・バス
上に発行されるべきアーキテクテッド操作(システム内
の他の装置にとって記憶階層に影響を与える可能性のあ
る命令)が、上記装置のアーキテクテッド論理待ち行列
に入ると設定されるフラグを含む。このフラグは、アー
キテクテッド論理待ち行列が空にされた後でも設定され
たままになっており、同期命令(PowerPC(商標)デバ
イス・ファミリがサポートする「sync(同期)」命令な
ど)をローカル・プロセッサから受け取ったときにのみ
リセットされる。したがってこのフラグの状態は、シス
テム・バスからスヌープされた後でシステム内の他の装
置で保留になっている可能性があるアーキテクテッド操
作に関する履歴情報を提供する。この履歴情報を使用し
て、同期操作をシステム・バスに載せるべきかどうかを
判断し、それによって不要な同期操作をフィルタ遮断す
ることができ、追加のシステム・バス・サイクルを他の
目的のために使用できるようにすることができる。ロー
カル・プロセッサがアーキテクテッド論理待ち行列を管
理する装置に同期命令を出すと、その命令はアーキテク
テッド論理待ち行列が空のときには通常、受け入れられ
る。空でない場合、アーキテクテッド論理待ち行列が空
になるまで、そのアーキテクテッド操作がローカル・プ
ロセッサに戻されて再試行される。ローカル・プロセッ
サからの同期命令が受け入れられたときにフラグが設定
されていると、その命令はシステム・バス上に送出され
る。ローカル・プロセッサからの同期命令が受け取られ
たときにフラグが設定されていない場合、同期操作は不
要であり、システム・バス上には送出されない。
【0012】
【発明の実施の形態】図面、特に図1を参照すると、本
発明の好ましい実施形態によるマルチプロセッサ・デー
タ処理システムが図示されている。データ処理システム
100は、複数のプロセッサ102および104を含む
対称マルチプロセッサ(SMP)システムであり、プロ
セッサは米国ニューヨーク州アーモンクのインターナシ
ョナル・ビジネス・マシーンズ・コーポレイションから
入手可能なPowerPC(商標)ファミリのプロセッサの1
つを含むことができる。例示の実施形態では2つのプロ
セッサしか図示されていないが、当業者なら本発明によ
るマルチプロセッサ・データ処理システムで追加のプロ
セッサも使用可能であることがわかるであろう。
【0013】各プロセッサ102および104は、それ
ぞれレベル1(L1)データ・キャッシュ106および
108と、それぞれL1命令キャッシュ110および1
12を含む。例示の実施形態では2つに分かれた命令キ
ャッシュとデータ・キャッシュとして図示されている
が、当業者なら単一の統合されたL1キャッシュも実装
可能であることがわかるであろう。データ・アクセス待
ち時間を最小限にするために、データ処理システム10
0内にレベル2(L2)キャッシュ114および11
6、レベル3(L3)キャッシュ118および119な
どの1つまたは複数の追加のレベルのキャッシュ・メモ
リを実装することもできる。より下位のキャッシュ・レ
ベル(L2およびL3)はL1キャッシュにデータをス
テージングするために使用され、一般には記憶容量が累
進的に大きくなるが、アクセス待ち時間がより長くな
る。たとえば、データ・キャッシュ106および108
と命令キャッシュ110および112はそれぞれ32K
Bの記憶容量と約1〜2プロセッサ・サイクルのアクセ
ス待ち時間を有する。L2キャッシュ114および11
6は、512KBの記憶容量を有するがアクセス待ち時
間は5プロセッサ・サイクルであり、L3キャッシュ1
18および119は記憶容量が4MBであるがアクセス
待ち時間は15プロセッサ・サイクルを超える。したが
って、L2キャッシュ114および116とL3キャッ
シュ118および119は、プロセッサ102および1
04と、一般に記憶容量ははるかに大きいがアクセス待
ち時間は50プロセッサ・サイクルを超えるシステム・
メモリ120との間の中間記憶域の役割を果たす。
【0014】データ処理システム100で使用されるキ
ャッシュ階層内のレベルの数とキャッシュ階層構成はい
ずれも様々に異なる。図の例のL2キャッシュ114お
よび116は、それぞれのプロセッサ102および10
4とシステム・メモリ120との間に(システム・バス
122を介して)接続された専用キャッシュである。L
3キャッシュ118および119は、L2キャッシュ1
14および116と論理的に垂直のルックアサイド・キ
ャッシュとして図示されている。その結果、データまた
は命令はL2キャッシュ114または116のいずれか
一方と、L3キャッシュ118および119のいずれか
一方とで同時に参照することができるが、L3キャッシ
ュ118または119がヒットすると同時にそれぞれの
L2キャッシュ114または116がミスした場合、デ
ータまたは命令はL3キャッシュ118または119の
みから取り出される。当業者なら、図のレベルおよび構
成の様々な置換えを実施できることがわかるであろう。
【0015】L2キャッシュ114および116とL3
キャッシュ118および119はシステム・バス122
を介してシステム・メモリ120に接続されている。シ
ステム・バス122には、表示装置(図示せず)を接続
するためのグラフィクス・アダプタなどのおよび入出力
(I/O)バス・ブリッジ126などのメモリ・マップ
装置124も接続することができる。I/Oバス・ブリ
ッジ126はシステム・バス122をI/Oバス128
に結合し、I/Oバス128によってI/O装置130
および不揮発性メモリ132に接続することができる。
したがって、システム・バス122、I/Oバス・ブリ
ッジ126、およびI/Oバス128は接続装置を結合
する相互接続機構を形成し、その様々な代替実施態様は
当技術分野で周知である。I/O装置130は、キーボ
ード、マウスやトラックボールなどのグラフィカル・ポ
インティング・デバイス、表示装置、およびプリンタを
含む、従来のアダプタを介してI/Oバス128とイン
タフェースする従来の周辺装置を含む。不揮発性メモリ
132は、ハード・ディスク・ドライブを含むことがで
き、システム100の動作を制御するオペレーティング
・システムおよびその他のソフトウェアを記憶し、これ
らのオペレーティング・システムおよびソフトウェアは
システム100に電源が投入されるとそれに応答して揮
発性システム・メモリ120にロードされる。当業者な
ら、データ処理システム100は、シリアル・ポート、
パラレル・ポート、ネットワークまたはその他の接続装
置への接続機構、システム・メモリ120へのアクセス
を制御するメモリ・コントローラなど、図1に示されて
いない多くの追加の構成要素も含むことができることが
わかるであろう。このような修正および変形態様は本発
明の趣旨および範囲に含まれる。
【0016】システム・バス122上での典型的な通信
トランザクションには、トランザクション、アドレス、
またはデータのソースを示すソース・タグが含まれる。
システム・バス122に接続された各装置は、システム
・バス122上のすべての通信トランザクションをスヌ
ープし、必要な場合には他の宛先に宛てられた通信トラ
ンザクションに介入し、実行可能かつ適切な場合にはそ
の装置内で複製されたシステム・メモリ・データの変更
を複製することが好ましい。本発明によると、データ処
理システム100内の少なくとも下位レベルのキャッシ
ュは常にメモリ・コヒーレントであることが好ましく、
さもなければ他のキャッシュに操作を完了する機会を与
えるためにシステム・バス上に同期操作を送出する必要
が生じることになる。
【0017】図2を参照すると、本発明の好ましい実施
形態によるアーキテクテッド論理待ち行列の図が示され
ている。アーキテクテッド論理待ち行列200は、たと
えば図1に示すL2キャッシュ114または116内で
実施されている。アーキテクテッド論理待ち行列200
は、待ち行列構造202を含み、この待ち行列構造20
2はアーキテクテッド命令を入れることができる従来の
先入れ先出し(FIFO)待ち行列とすることができ
る。前述のように、アーキテクテッド命令とは、基本的
に、キャッシュ可能メモリ空間へのロード/ストアを除
くあらゆるメモリ関連命令を含む、メモリ記憶階層に影
響を与える命令である。PowerPC(商標)デバイス・フ
ァミリの場合、アーキテクテッド命令にはtlbi、tlbsyn
c、dcbf(フラッシュ)、dcbst(クリア)、icbi、およ
びキャッシュ不能メモリ空間へのロード/ストア(キャ
ッシュ禁止ロードおよびストア)が含まれる。アーキテ
クテッド操作とは、アーキテクテッド命令を受け取ると
それに応答して装置によって開始されるバス操作であ
る。
【0018】アーキテクテッド論理待ち行列200は、
フラグxが入ったレジスタ204も含む。フラグxは、
システム・バス上へ次に続く同期操作の送出が必要にな
るその後に続くアーキテクテッド命令に関する履歴情報
を提供する。フラグxはシステムの電源投入/リセット
(POR)中にリセットされる。その後、フラグxはア
ーキテクテッド操作が待ち行列202に入れられると
(ローカル・プロセッサが次に続く同期操作をシステム
・バスへの送出が必要になる命令を出すと)設定され、
ローカル・プロセッサからの同期操作が受け取られると
リセットされる。ローカル・プロセッサから受け取られ
た後続の命令は、同期操作が完了するまでその装置によ
って再試行される。代替実施形態では、フラグxは、ス
ヌープしている装置が、待ち行列202を含む装置によ
って開始されたアーキテクテッド操作がスヌープしてい
る装置内のスヌープ待ち行列内でポストされたことを示
す応答コードを出すと設定され、同期命令をローカル・
プロセッサから受け取ったときにリセットされる。フラ
グxの設定またはリセットには、多くともアーキテクテ
ッド命令および同期命令に付随する1ビットしか必要と
しない。したがって、PowerPC(商標)デバイス・ファ
ミリでは、フラグxは、命令コードの認識に基づいて、
またはライトスルー/ライトバック(W)、キャッシュ
禁止(I)、およびメモリ・コヒーレンシ(M)属性の
認識パターン、より一般的に「WIMビット」と呼ばれ
るビットから、あるいはアーキテクテッド操作の開始後
に受け取った応答コードに基づいて変更することができ
る。フラグxの状態変化を下の表1にまとめる。
【表1】
【0019】フラグxの状態によってシステム・バスへ
の同期操作の送出が制御される。フラグxが設定されて
いるときに同期命令を受け取ると、同期操作がシステム
・バス上に送出される。これは、同期命令を受け取った
時点でアーキテクテッド論理待ち行列200が空になる
ためである。キャッシュ可能ロードおよびストアの完了
を保証するためにローカル・プロセッサからの同期命令
をシステム・バス上に送出する必要がないように、シス
テム・バスに接続されている装置はメモリ・コヒーレン
トであることが好ましい。しかし、フラグxはアーキテ
クテッド操作に関する履歴情報を提供し、設定されてい
る場合、最後の同期命令を受け取ってからアーキテクテ
ッド操作が待ち行列に入れられたことを示す。アーキテ
クテッド操作は、システム階層内の他の装置によってシ
ステム・バスからスヌープされており、そのような他の
装置で保留になっている場合がある。保留になっている
可能性のある操作が後続命令の実行の前に完了すること
ができるように、同期操作をシステム・バス上に載せな
ければならない。
【0020】フラグxが設定されていないときに同期命
令を受け取った場合、同期操作はシステム・バス上に送
出されない。フラグx=0の状態は、最後の同期命令を
受け取ってから(実施態様に応じてローカル・アーキテ
クテッド論理待ち行列またはリモート・スヌープ待ち行
列で)待ち行列化されているアーキテクテッド操作がな
かったことを示す。したがって、システム階層内の他の
装置で保留になっているアーキテクテッド操作は、同期
命令を出すプロセッサからは発行されなかった。同期命
令はリモート・プロセッサによって出された命令ストリ
ームには影響を与えない。したがって、同期操作はシス
テム・バス上に送出する必要はなく、実施的に無視する
ことができる。システム・バスへの同期操作送出のフラ
グxへの依存関係を以下の表2にまとめる。
【表2】
【0021】フラグxは、ローカル装置のアーキテクテ
ッド論理待ち行列またはリモート装置のスヌープ待ち行
列にアーキテクテッド操作が入れられると設定され、ト
リガしたアーキテクテッド操作が完了した後でも設定さ
れたままになっている。フラグxは次の同期命令を受け
取るまでリセットされない。したがって、フラグxは、
最後の同期操作以降にアーキテクテッド操作の発行また
はポストが行われたことを示す。しかし、フラグxはシ
ステム・バス上に同期操作が送出される状況にのみ影響
を与える。従来技術のアーキテクチャではすべての同期
命令によってシステム・バス上に同期操作が送出された
が、上述のように本発明ではそうではない。それとは異
なり、システム・バス上に送出された同期操作の作用は
フラグxの状態に影響されない。システム階層内のリモ
ート装置は、そのスヌープ論理回路を介してシステム・
バス上の同期操作を検出し、同期命令を発行した同じプ
ロセッサから出されたアーキテクテッド操作がそのスヌ
ープ待ち行列で保留になっているかどうかを判断し、保
留になっている場合は同期操作を再試行する。したがっ
て、本発明はシステム・バス上に同期操作を載せた結果
を変えず、単に同期操作をシステム・バス上に送出する
かどうかを決定する基準を介在させるだけで、不要な同
期操作をフィルタリングすることができるようにする。
【0022】次に図3を参照すると、本発明の好ましい
実施形態によるアーキテクテッド論理待ち行列を管理す
るプロセスの高水準フローチャートが図示されている。
このプロセスは、図1に示すL2キャッシュ114およ
び116など、図2に示すタイプのアーキテクテッド論
理待ち行列を維持する装置内で実行することができる。
プロセスはシステムの電源投入/リセットに対応するス
テップ302から始まり、次に、ステップ304に進
み、アーキテクテッド論理待ち行列内で維持され、最後
の同期操作以降にアーキテクテッド操作が待ち行列に入
れられたかどうかを示すフラグ(すなわちフラグx)を
リセットする。プロセスは次にステップ306に進み、
装置によって受け取られた命令を検査し、次にステップ
308でその命令がアーキテクテッド命令であるかどう
かを判断する。アーキテクテッド命令の場合、プロセス
はステップ310に進み、上述のフラグを設定し、アー
キテクテッド操作を待ち行列に入れる。プロセスは次に
ステップ306に戻り、装置によって受け取られた次の
命令を検査する。
【0023】装置によって受け取られた命令がアーキテ
クテッド命令でない場合、プロセスはステップ312に
進み、受け取った命令が同期(sync)命令であるかどう
かを判断する。同期命令でない場合、プロセスはステッ
プ306に戻り、前述のように次の命令を検査する。し
かし同期命令の場合、プロセスはステップ314に進
み、現在フラグが設定されているかどうかを判断する。
フラグが設定されている場合、プロセスはステップ31
6に進み、同期操作をシステム・バス上に送出するため
に待ち行列に入れ、フラグをリセットする。この同期操
作が完了するまで後続の命令は受け入れられない。
【0024】再びステップ316を参照すると、同期操
作はシステム・バス上に送出するために待ち行列に入れ
られる。同期操作がシステム・バス上に送出されて完了
すると、プロセスはステップ306に戻り、次に受け取
った命令を検査する。
【0025】再びステップ314を参照して、同期命令
を受け取った時点でフラグが設定されていない場合、プ
ロセスはステップ306に戻り、次に受け取った命令を
検査する。同期命令を実質的に無視する効果は「ステッ
プ」318に図示されている。ステップ306から31
8に図示されているプロセス・ループは、システムの電
源を切るなどしてプロセスを強制終了させるまで、ロー
カル・プロセッサから受け取った命令について継続され
る。
【0026】図4を参照すると、本発明の好ましい実施
形態によるアーキテクテッド論理待ち行列を管理する代
替プロセスの高水準フローチャートが図示されている。
この実施形態では、フラグxによってより精密な履歴情
報が示され、同期操作をシステム・バス上に送出するか
どうかを判断するために使用される。前述のように、先
行するすべてのキャッシュ可能操作が完了しない限り、
プロセッサは同期命令を発行しない。ローカル・アーキ
テクテッド論理待ち行列が空でない場合、ローカル・プ
ロセッサに対して同期操作が再試行される。したがっ
て、このような状況でローカル・プロセッサから同期操
作が装置によって受け入れられた場合、その同期操作を
無視することによる唯一のリスクは、その装置によって
前に開始されたアーキテクテッド操作がリモートのスヌ
ープ装置のスヌープ待ち行列で保留になる可能性がある
ことだけである。
【0027】前述のように、アーキテクテッド操作はま
れにしか起こらず、キャッシュ可能操作がデータを返す
ことによって行うように、操作の完了時点を判断するた
めの本質的な機構を発行側装置に提供しない。さらに、
システム・バスからのアーキテクテッド操作のスヌープ
時、スヌープ装置は操作が実際にスヌープ待ち行列にポ
ストされるときに操作が完了したことを示す応答コード
を返すことができる。したがって、ローカル・プロセッ
サによって発行され、装置によって受け入れられた同期
命令を無視することによる原理上のリスクは、同期命令
を発行する同じプロセッサによって発行されたアーキテ
クテッド操作がリモートのスヌープ装置でまだ保留中で
ある可能性があることである。ここで説明するこの代替
実施形態では、スヌープ装置に操作がポストされること
を示す応答コードをアーキテクテッド操作に対して返さ
せることによってこのリスクをなくす。
【0028】このプロセスはやはりシステムの電源投入
/リセットに対応するステップ402から始まり、次に
ステップ404に進み、アーキテクテッド論理待ち行列
レジスタで維持されている、最後の同期操作以降にアー
キテクテッド操作がリモート・スヌープ待ち行列内でポ
ストされたかどうかを示すフラグ(すなわちフラグx)
をリセットする。プロセスは次にステップ406に進
み、装置によって受け取られた命令を検査し、次にステ
ップ408に進んで命令がアーキテクテッド命令である
かどうかを判断する。アーキテクテッド命令の場合、プ
ロセスはステップ410に進み、システム・バス上で操
作を開始し、1つまたは複数の応答コードを受け取った
かどうかを調べる。プロセスは次のステップ412に進
み、受け取った応答コードから、アーキテクテッド操作
がリモート・スヌープ待ち行列でポストされたかどうか
を判断する。スヌープ装置はアーキテクテッド操作を再
試行するか、または操作がポストされたかどうかを示す
応答コードとともに操作を受け入れる。操作がリモート
・スヌープ待ち行列でポストされなかった場合、プロセ
スはステップ406に戻り、装置によって受け取られた
次の命令を検査する。
【0029】再びステップ412を参照して、装置によ
って開始されたアーキテクテッド操作がリモート装置の
スヌープ待ち行列でポストされた場合、プロセスはステ
ップ414に進みアーキテクテッド操作がリモートでポ
ストされたかどうかを示すフラグが設定され、次にステ
ップ406に戻って受け取った次の命令を検査する。
【0030】再びステップ408を参照して、装置によ
って受け取られた命令がアーキテクテッド命令でない場
合、プロセスはステップ416に進み、受け取った命令
が同期(sync)命令であるかどうかを判断する。同期命
令でない場合、プロセスはステップ406に戻り、前述
のように次の命令を検査する。しかし同期命令の場合
は、プロセスはステップ418に進み、現在フラグが設
定されているかどうかを判断する。フラグが設定されて
いる場合、プロセスはステップ420に進み、同期操作
をシステム・バス上に送出するために待ち行列に入れ、
フラグをリセットする。同期操作がシステム・バス上に
送出するために待ち行列に入れられると、プロセスはス
テップ406に戻って次に受け取った命令を検査する。
【0031】再びステップ418を参照して、同期命令
を受け取った時点でフラグが設定されていない場合、プ
ロセスはステップ406に戻り、次に受け取った命令を
検査する。この同期命令を無視する作用は「ステップ」
422に図示されている。
【0032】本発明は、システム・バスへの同期操作の
送出が必要になるアーキテクテッド操作に関する履歴情
報を維持する手段を提供する。この情報を使用して、不
要な同期操作をフィルタ遮断し、そのような不要な操作
がシステム・バスに送られるのを防ぐ。従来の技術とは
異なり、すべての同期命令の結果としてシステム・バス
上に同期操作が送出されるわけではない。第1の実施形
態では、システム・バス上に同期操作が送出されるの
は、最後の同期操作以降にキャッシュ不能メモリへのロ
ードおよびストアを含めてアーキテクテッド操作がアー
キテクテッド論理待ち行列に入れられた場合にのみであ
る。代替実施形態では、最後の同期操作以降にリモート
・スヌープ装置でアーキテクテッド操作がポストされた
場合にのみ、システム・バス上に同期操作が送出され
る。いずれの実施形態でも、システム階層内でシステム
・バスからアーキテクテッド操作をスヌープした他の装
置でアーキテクテッド操作が依然として保留になってい
る可能性がある。システム・バスから同期操作をスヌー
プする装置のスヌープ待ち行列に、同期操作を発行した
のと同じプロセッサから発行されたアーキテクテッド操
作が入っている場合、その同期操作は従来の技術により
再試行される。
【0033】本発明により他の同期操作をフィルタリン
グすることによって、システム・バス上の同期操作の周
期的出現を、10,000システム・バス・サイクルに
1回という低さに削減することができる。さらに、本発
明によるアーキテクテッド論理待ち行列を管理する装置
内では、同期命令がキャッシュ・コントローラには見え
ず、アーキテクテッド論理回路にしか見えない。したが
って、キャッシュ・コントローラの論理回路も他の目的
のために解放される。
【0034】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0035】(1)マルチプロセッサ・システムにおい
て命令同期を容易にする方法であって、ローカル・プロ
セッサから操作を受け取るステップと、前記システム内
で前記ローカル・プロセッサから受け取った操作をシス
テム・バス上に送出するために待ち行列に入れるステッ
プと、前記システム内の他の装置におけるデータ記憶に
影響を与える可能性のある操作を前記ローカル・プロセ
ッサから受け取るとそれに応答して、前記待ち行列に関
連づけられ、前記操作が受け取られたことを示すフラグ
を設定するステップと、前記ローカル・プロセッサから
同期命令を受け取るとそれに応答して前記フラグの状態
を検査するステップとを含む方法。 (2)前記フラグが設定されていると判断するとそれに
応答して前記同期命令に対応する同期操作を前記システ
ム・バス上に送出するステップをさらに含む、上記
(1)に記載の方法。 (3)前記フラグが設定されていないと判断するとそれ
に応答して前記同期命令を無視するステップをさらに含
む、上記(1)に記載の方法。 (4)前記フラグが設定されている間に前記ローカル・
プロセッサから前記同期命令を受け取るとそれに応答し
て前記フラグをリセットするステップをさらに含む、上
記(1)に記載の方法。 (5)前記フラグを設定した後、他の装置における記憶
に影響を与える可能性のある操作が前記待ち行列に入っ
ているかどうかに関係なく前記フラグを設定状態に維持
するステップをさらに含む、上記(1)に記載の方法。 (6)マルチプロセッサ・システムにおいてシステム・
バスから不要な同期操作をフィルタリングする方法であ
って、ローカル・プロセッサから命令を受け取るステッ
プと、受け取った前記命令が、前記システム内の他の装
置におけるデータ記憶に影響を与える可能性があるシス
テム・バス操作を促すアーキテクテッド命令であるかど
うかを判断するステップと、受け取った前記命令がアー
キテクテッド命令であると判断するとそれに応答して、
前記ローカル・プロセッサから受け取った命令によって
促されたシステム・バス操作の発行元である待ち行列に
関連づけられ、前記ローカル・プロセッサから同期命令
を最後に受け取って以来前記ローカル・プロセッサから
アーキテクテッド命令を受け取ったかどうかを示すフラ
グを設定するステップとを含む方法。 (7)受け取った前記命令がアーキテクテッド命令では
ないと判断するとそれに応答して、前記命令が同期命令
であるかどうかを判断するステップをさらに含む、上記
(6)に記載の方法。 (8)受け取った前記命令が同期命令であると判断する
とそれに応答して、前記フラグが設定されているかどう
かを判断するステップをさらに含む、上記(7)に記載
の方法。 (9)前記同期命令を受け取ったときに前記フラグが設
定されていると判断するとそれに応答して同期操作を前
記システム・バス上に送出するために待ち行列に入れ、
前記フラグをリセットするステップをさらに含む、上記
(8)に記載の方法。 (10)前記同期命令を受け取ったときに前記フラグが
設定されていないと判断するとそれに応答して前記同期
命令を無視するステップをさらに含む上記(8)に記載
の方法。 (11)前記フラグが設定されている間に前記同期命令
を受け取った後で前記ローカル・プロセッサからアーキ
テクテッド命令を受け取るとそれに応答して、前記同期
命令に対応する同期操作が完了するまで前記アーキテク
テッド命令を再試行するステップをさらに含む、上記
(8)に記載の方法。 (12)前記同期命令を受け取ったときに前記フラグが
設定されていると判断するとそれに応答して、同期操作
を前記システム・バス上に送出するために待ち行列に入
れ、前記フラグをリセットするステップをさらに含む、
上記(8)に記載の方法。 (13)前記同期操作を発行したプロセッサから発行さ
れ、完了していない少なくとも1つのアーキテクテッド
操作がスヌープ待ち行列に入っている間に前記システム
・バス上で同期操作を検出するとそれに応答して、前記
同期操作を再試行するステップをさらに含む、上記
(8)に記載の方法。 (14)システム・バスに接続された複数のプロセッサ
と、前記システム・バス上に送出する操作を保持する待
ち行列と、前記待ち行列に関連づけられ、ローカル・プ
ロセッサから前記待ち行列によって同期命令が最後に受
け取られて以来前記システム内の他の装置におけるデー
タ記憶に影響を与える可能性のあるシステム・バス操作
を促す命令であるアーキテクテッド命令が前記ローカル
・プロセッサから前記待ち行列によって受け取られたこ
とを示す第1の状態を有するフラグとを含むデータ処理
システム。 (15)前記フラグが、前記ローカル・プロセッサから
前記待ち行列によって同期命令が最後に受け取られて以
来前記ローカル・プロセッサから前記待ち行列によって
アーキテクテッド命令が受け取られなかったことを示す
第2の状態を有する、上記(14)に記載のデータ処理
システム。 (16)前記フラグが第1の状態にある間に前記ローカ
ル・プロセッサから前記待ち行列によってアーキテクテ
ッド命令が受け取られると前記フラグが前記第1の状態
から前記第2の状態に遷移する、上記(15)に記載の
データ処理システム。 (17)前記フラグが前記第2の状態にある間に前記ロ
ーカル・プロセッサから前記待ち行列によって同期命令
が受け取られると前記フラグが前記第2の状態から前記
第1の状態に変化する、上記(15)に記載のデータ処
理システム。 (18)前記フラグが前記第2の状態にある間に前記ロ
ーカル・プロセッサから同期命令が受け取られると前記
待ち行列に同期操作を入れる論理回路待ち行列をさらに
含む、上記(15)に記載のデータ処理システム。 (19)前記フラグが第1の状態にある間に前記ローカ
ル・プロセッサから受け取った同期命令をノーオペレー
ション化する論理回路をさらに含む、上記(15)に記
載のデータ処理システム。 (20)同期操作を発行したプロセッサからアーキテク
テッド操作が発行された場合にスヌープ待ち行列内の前
記アーキテクテッド操作が完了していない間に前記シス
テム・バス上で検出された前記同期操作を再試行する論
理回路をさらに含む、上記(15)に記載のデータ処理
システム。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態によるマルチプロセ
ッサ・データ処理システムを示す図である。
【図2】本発明の好ましい実施形態によるアーキテクテ
ッド論理待ち行列を示す図である。
【図3】本発明の好ましい実施形態によるアーキテクテ
ッド論理待ち行列を管理するプロセスを示す高水準フロ
ーチャートである。
【図4】本発明の好ましい実施形態によるアーキテクテ
ッド論理待ち行列を管理する代替プロセスを示す高水準
フローチャートである。
【符号の説明】
100 マルチプロセッサ・データ処理システム 102 プロセッサ 104 プロセッサ 106 レベル1データ・キャッシュ 108 レベル1データ・キャッシュ 110 レベル1命令キャッシュ 112 レベル1命令キャッシュ 114 レベル2キャッシュ 116 レベル2キャッシュ 118 レベル3キャッシュ 119 レベル3キャッシュ 120 システム・メモリ 122 システム・バス 124 メモリ・マップ装置 126 入出力バス・ブリッジ 128 入出力バス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スティーブン・ドッドソン アメリカ合衆国78660 テキサス州フル ーガービル ベル・ロック・サークル 1205 (72)発明者 デレク・エドワード・ウィリアムズ アメリカ合衆国78728 テキサス州オー スチン シングル・トレース 14723 (72)発明者 ジェリー・ドン・ルイス アメリカ合衆国78681 テキサス州ラウ ンドロック アローヘッド・サークル 3409 (56)参考文献 特開 平5−134991(JP,A) 特開 平6−12384(JP,A) 特開 平8−234981(JP,A) 特開 平9−62580(JP,A) 特開 平9−269935(JP,A) 特開 平10−307754(JP,A) 特開 平10−333986(JP,A) International Bus iness Machines Cor p.著、日本アイ・ビー・エム株式会社 監訳,PowerPCアーキテクチャ, 日本,1995年12月20日,P.288 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 9/46

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】各々が待ち行列を維持する装置を間に挟ん
    でシステム・バスに接続される、複数のプロセッサを含
    マルチプロセッサ・システムにおいて同期化するため
    の処理を行う方法であって、前記装置において、対応する ローカル・プロセッサから
    操作を受け取るステップと、 記ローカル・プロセッサから受け取った前記操作を
    システム・バス上に送出するために前記装置の待ち行
    列に入れるステップと、前記操作が 、前記マルチプロセッサ・システム内の他の
    装置におけるデータ記憶に影響を与える可能性のある
    ーキテクテッド操作である場合に、前記待ち行列に含ま
    れるレジスタ内のフラグであって、前記アーキテクテッ
    操作が受け取られたことを示すフラグを設定するステ
    ップと、前記装置において 前記ローカル・プロセッサから同期命
    令を受け取るとそれに応答して、前記フラグの状態を検
    査するステップ前記フラグが設定されていると判断するとそれに応答し
    て前記同期命令に対応する同期操作を前記システム・バ
    ス上に送出し、前記フラグをリセットするステップ とを
    含む方法。
  2. 【請求項2】前記フラグが設定されていないと判断する
    とそれに応答して前記同期命令を無視するステップをさ
    らに含む、請求項1に記載の方法。
  3. 【請求項3】各々が待ち行列を維持する装置を間に挟ん
    でシステム・バスに接続される、複数のプロセッサを含
    マルチプロセッサ・システムにおいて同期化するため
    の処理を行う方法であって、前記装置において、対応する ローカル・プロセッサから
    命令を受け取るステップと、 受け取った前記命令が、前記マルチプロセッサ・システ
    ム内の他の装置におけるデータ記憶に影響を与える可能
    性があるシステム・バス操作を促すアーキテクテッド命
    令であるかどうかを判断するステップと、 受け取った前記命令がアーキテクテッド命令であると判
    断するとそれに応答して、前記ローカル・プロセッサか
    ら受け取った命令によって促されたシステム・バス操作
    の発行元である前記装置の前記待ち行列に含まれるレジ
    スタ内のフラグであって、前記ローカル・プロセッサか
    ら同期命令を最後に受け取って以来前記ローカル・プロ
    セッサからアーキテクテッド命令を受け取ったかどうか
    を示すフラグを設定するステップと、 受け取った前記命令がアーキテクテッド命令ではないと
    判断するとそれに応答して、前記命令が同期命令である
    かどうかを判断するステップと、 受け取った前記命令が同期命令であると判断するとそれ
    に応答して、前記フラグが設定されているかどうかを判
    断するステップ前記フラグが設定されていると判断するとそれに応答し
    て同期操作を前記システム・バス上に送出するために前
    記装置の前記待ち行列に入れ、前記フラグをリセットす
    るステップ とを含む方法。
  4. 【請求項4】前記同期命令を受け取ったときに前記フラ
    グが設定されていないと判断するとそれに応答して前記
    同期命令を無視するステップをさらに含む請求項に記
    載の方法。
  5. 【請求項5】前記フラグが設定されている間に前記同期
    命令を受け取った後で前記ローカル・プロセッサからア
    ーキテクテッド命令を受け取るとそれに応答して、前記
    同期命令に対応する同期操作が完了するまで前記アーキ
    テクテッド命令を再試行するステップをさらに含む、請
    求項に記載の方法。
  6. 【請求項6】前記同期操作を発行したプロセッサから発
    行され、完了していない少なくとも1つのアーキテクテ
    ッド操作が前記マルチプロセッサ・システム内の他のス
    ヌープしている装置内のスヌープ待ち行列で保留されて
    いる間に前記システム・バス上で同期操作を検出すると
    それに応答して、前記同期操作を再試行するステップを
    さらに含む、請求項に記載の方法。
  7. 【請求項7】各々が装置を間に挟んでシステム・バスに
    接続され、複数のプロセッサと、対応するローカル・プロセッサから操作を受け取る前記
    装置によって維持され、当該操作を 前記システム・バス
    上に送出するために保持する待ち行列と、 前記待ち行列に含まれるレジスタ内のフラグであって、
    前記ローカル・プロセッサから前記待ち行列によって同
    期命令が最後に受け取られて以来前記システム内の他の
    装置におけるデータ記憶に影響を与える可能性のあるシ
    ステム・バス操作を促す命令であるアーキテクテッド命
    令が前記ローカル・プロセッサから前記待ち行列によっ
    て受け取られたことを示す第1の状態と、前記ローカル
    ・プロセッサから前記待ち行列によって前記同期命令が
    最後に受け取られて以来前記ローカル・プロセッサから
    前記待ち行列によってアーキテクテッド命令が受け取ら
    れなかったことを示す第2の状態とを有するフラグと
    含み前記フラグが第2の状態にある間に前記ローカル・プロ
    セッサから前記待ち行列によってアーキテクテッド命令
    が受け取られると前記フラグが前記第2の状態から前記
    第1の状態に遷移し、前記フラグが前記第1の状態にあ
    る間に前記ローカル・プロセッサから前記待ち行列によ
    って同期命令が受け取られると前記フラグが前記第1の
    状態から前記第2の状態に変化する 、データ処理システ
    ム。
  8. 【請求項8】前記フラグが前記第の状態にある間に前
    記ローカル・プロセッサから同期命令が受け取られると
    前記待ち行列に同期操作を入れる論理回路待ち行列をさ
    らに含む、請求項に記載のデータ処理システム。
  9. 【請求項9】前記フラグが第の状態にある間に前記ロ
    ーカル・プロセッサから受け取った同期命令をノーオペ
    レーション化する論理回路をさらに含む、請求項に記
    載のデータ処理システム。
  10. 【請求項10】同期操作を発行したプロセッサからアー
    キテクテッド操作が発行された場合に前記アーキテクテ
    ッド操作が前記システム内の他のスヌープしている装置
    内のスヌープ待ち行列内で保留され完了していない間に
    前記システム・バス上で検出された前記同期操作を再試
    行する論理回路をさらに含む、請求項に記載のデータ
    処理システム。
JP03144599A 1998-02-17 1999-02-09 同期化するための処理を行う方法およびデータ処理システム Expired - Fee Related JP3431850B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,615 US6065086A (en) 1998-02-17 1998-02-17 Demand based sync bus operation
US09/024615 1998-02-17

Publications (2)

Publication Number Publication Date
JPH11328140A JPH11328140A (ja) 1999-11-30
JP3431850B2 true JP3431850B2 (ja) 2003-07-28

Family

ID=21821514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03144599A Expired - Fee Related JP3431850B2 (ja) 1998-02-17 1999-02-09 同期化するための処理を行う方法およびデータ処理システム

Country Status (3)

Country Link
US (1) US6065086A (ja)
JP (1) JP3431850B2 (ja)
CN (1) CN1200365C (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484230B1 (en) * 1998-09-28 2002-11-19 International Business Machines Corporation Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction
US6449614B1 (en) * 1999-03-25 2002-09-10 International Business Machines Corporation Interface system and method for asynchronously updating a share resource with locking facility
US6681320B1 (en) 1999-12-29 2004-01-20 Intel Corporation Causality-based memory ordering in a multiprocessing environment
US7360022B2 (en) * 2005-12-29 2008-04-15 Intel Corporation Synchronizing an instruction cache and a data cache on demand
JP2010198600A (ja) * 2009-02-02 2010-09-09 Omron Corp 産業用コントローラ
US8412888B2 (en) 2011-01-06 2013-04-02 International Business Machines Corporation Cache-based speculation of stores following synchronizing operations
CN103023676B (zh) * 2011-09-22 2018-05-04 中兴通讯股份有限公司 告警同步处理方法及装置
US8935513B2 (en) 2012-02-08 2015-01-13 International Business Machines Corporation Processor performance improvement for instruction sequences that include barrier instructions
US9304940B2 (en) * 2013-03-15 2016-04-05 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory
US9514045B2 (en) 2014-04-04 2016-12-06 International Business Machines Corporation Techniques for implementing barriers to efficiently support cumulativity in a weakly-ordered memory system
US10241945B2 (en) 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions
US10152322B2 (en) 2015-11-05 2018-12-11 International Business Machines Corporation Memory move instruction sequence including a stream of copy-type and paste-type instructions
US9996298B2 (en) 2015-11-05 2018-06-12 International Business Machines Corporation Memory move instruction sequence enabling software control
US10346164B2 (en) 2015-11-05 2019-07-09 International Business Machines Corporation Memory move instruction sequence targeting an accelerator switchboard
US10140052B2 (en) 2015-11-05 2018-11-27 International Business Machines Corporation Memory access in a data processing system utilizing copy and paste instructions
US10042580B2 (en) 2015-11-05 2018-08-07 International Business Machines Corporation Speculatively performing memory move requests with respect to a barrier
US10067713B2 (en) 2015-11-05 2018-09-04 International Business Machines Corporation Efficient enforcement of barriers with respect to memory move sequences
US10126952B2 (en) 2015-11-05 2018-11-13 International Business Machines Corporation Memory move instruction sequence targeting a memory-mapped device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636948A (en) * 1985-01-30 1987-01-13 International Business Machines Corporation Method for controlling execution of application programs written in high level program language
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5276828A (en) * 1989-03-01 1994-01-04 Digital Equipment Corporation Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
DE69130757T2 (de) * 1990-11-30 1999-07-29 Toshiba Kawasaki Kk Ausführungsvorrichtung für bedingte Verzweigungsbefehle
JPH05128080A (ja) * 1991-10-14 1993-05-25 Mitsubishi Electric Corp 情報処理装置
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
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
US5881264A (en) * 1996-01-31 1999-03-09 Kabushiki Kaisha Toshiba Memory controller and memory control system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
International Business Machines Corp.著、日本アイ・ビー・エム株式会社監訳,PowerPCアーキテクチャ,日本,1995年12月20日,P.288

Also Published As

Publication number Publication date
JPH11328140A (ja) 1999-11-30
CN1200365C (zh) 2005-05-04
CN1231449A (zh) 1999-10-13
US6065086A (en) 2000-05-16

Similar Documents

Publication Publication Date Title
JP3431850B2 (ja) 同期化するための処理を行う方法およびデータ処理システム
US6175930B1 (en) Demand based sync bus operation
US5420991A (en) Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US10896128B2 (en) Partitioning shared caches
JP3434462B2 (ja) 割振り解除方法およびデータ処理システム
US5551005A (en) Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
US5524233A (en) Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
JP3254433B2 (ja) 再試行されるスヌープ・ヒットに対してコヒーレンシ状態を最終的な状態に向かって進める方法
JP3509067B2 (ja) ストア命令転送方法およびプロセッサ
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US6269427B1 (en) Multiple load miss handling in a cache memory system
US5751995A (en) Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
EP0514024B1 (en) Method and apparatus for an improved memory architecture
EP0608622A1 (en) Multiprocessor system with multilevel caches
US6212605B1 (en) Eviction override for larx-reserved addresses
JPH10301849A (ja) キャッシュ・コヒーレンシを維持する方法及び装置
EP0803817A1 (en) A computer system having cache prefetching capability based on CPU request types
WO2007115003A1 (en) Transactional memory in out-of-order processors
US7143242B2 (en) Dynamic priority external transaction system
US6321300B1 (en) Apparatus and method for dynamically reconfigurable timed flushing of a queue of coalescing write buffers
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
JP3195303B2 (ja) 命令キャッシュとデータ・キャッシュ間のコヒーレンシを維持する方法および装置
US5617556A (en) System and method to prevent the occurrence of a snoop push during read and write operations
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US6484230B1 (en) Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees