JP3184552B2 - 並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム - Google Patents

並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム

Info

Publication number
JP3184552B2
JP3184552B2 JP10832191A JP10832191A JP3184552B2 JP 3184552 B2 JP3184552 B2 JP 3184552B2 JP 10832191 A JP10832191 A JP 10832191A JP 10832191 A JP10832191 A JP 10832191A JP 3184552 B2 JP3184552 B2 JP 3184552B2
Authority
JP
Japan
Prior art keywords
data
processor
cache
shared memory
value
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
JP10832191A
Other languages
English (en)
Other versions
JPH04279960A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JPH04279960A publication Critical patent/JPH04279960A/ja
Application granted granted Critical
Publication of JP3184552B2 publication Critical patent/JP3184552B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

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)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータプログラ
ムに関する種々のセグメントを同時に実行するための並
列処理装置に関するものである。特に、該処理装置によ
って計算される共有変数を局所的に記憶するためのデー
タキャッシュを提供するための方法を説明する。
【0002】
【従来の技術】並列処理技術は、コンピュータプログラ
ムの実行限界スピードを改善してきた。プログラムは、
複数のコンピュータプロセッサの各々に対する、個々の
実行シーケンスにコンパイルされる。一方のプロセッサ
によって計算される変数を、他方のプロセッサと共有
し、コンピュータプログラムの種々のセグメントを実行
する。
【0003】並列処理を行うための一計画において、バ
リア及びチャンネルを用いて、プロセッサ間の同期を採
る。バリア同期システムでは、バリアに到達したプロセ
ッサによって予め計算された変数を、他のプロセッサが
用いているという保証が得られるまで、プログラムはそ
の一部にアイデンティティを有し、個々のプロセッサ
は、これを超えて処理を行うことができない。プログラ
ムを実行している間、プロセッサは、すべてのプロセッ
サに共通のレジスタから、バリアビットがセットされて
いるかどうかを決定する。すべてのプロセッサが、レジ
スタ中の個々のバリアビットをセットすると、プロセッ
サは、バリアを超えて、処理を続行する。同様に、所定
のプロセッサがある実行段に到達すると、チャンネルを
用いて、他のプロセッサとの確認を行う。共通チャンネ
ルレジスタに書き込みを行うことによって、他のプロセ
ッサがレジスタを検査し、パラレルプロセッサの他方の
プロセッサが、所定の実行点に到達する時点を決定する
ことができる。
【0004】個々のプロセッサで計算される共有変数
を、共有メモリバスを介して各プロセッサに接続されて
いる共有メモリ中に設ける。このようにして、他のプロ
セッサが、計算された変数にアクセスし、パラレルプロ
グラムの他のセグメントを実行することができる。バリ
ア及びチャンネル構造を用いることによって、プロセッ
サ間の同期を実現し、一方のプロセッサが変数の古い値
を読み出すまで、他方のプロセッサは変数の値を変更で
きないようにし、これによって種々のプロセッサの実行
の同期をとる。
【0005】プロセッサがプログラムの実行を行ってい
る間、プログラムの特定のセグメント又は順次のセグメ
ントの計算に際し、プロセッサは、計算された変数を数
回用いることができる。このようにして、共有変数を計
算する同一のプロセッサが共有変数の計算をしなければ
ならない度毎に、共有メモリを参照する必要がないよう
にするためには、各プロセッサにデータキャッシングを
設けるのが有利である。
【0006】このようなローカルデータキャッシングを
設ける場合、プロセッサが同期されていること、及び、
共有メモリ中に新たに書き込まれた変数を考慮して、デ
ータキャッシュを周期的にクリアし、共有変数としての
古い値を保持していないことを確認するように注意する
必要がある。更に、キャッシュ中に記憶されている計算
された共有値が共有メモリに書き込まれていることを確
認し、すべてのプロセッサが、更新された共通共有変数
値から動作することを確認する必要がある。これらの条
件を監視すると、データキャッシングにより、必要な共
有メモリへのアクセス数が少なくなり、コンピュータ処
理能力が向上する。
【0007】
【発明が解決しようとする課題】本発明の目的は、並列
処理システムにおける各々のプロセッサのためのローカ
ルデータキャッシュを提供せんとするにある。特に、本
発明の目的は、共有変数メモリへのアクセスの必要性を
減少させるプロセッサの各々のためのローカルデータキ
ャッシュを提供せんとするにある。
【0008】
【課題を解決するための手段】本発明のこれらの目的及
びその他の目的は、各プロセッサに配置されたデータキ
ャッシュによって達成される。共有変数の計算を、各々
のプロセッサで行う場合、その値をローカルデータキャ
ッシュに記憶する。まず第1に、プロセッサの同期イン
ターバルに入る際、共有メモリから読み出される変更さ
れていないデータキャッシュ値をデータキャッシュ中に
記憶する。第1同期インターバルを出る際に、データキ
ャッシュは、各々の新たに計算された共有データ値を更
新し、任意の未修正データ値をキャッシュからデリート
する。特定の順次の同期インターバルに入る際、修正さ
れた共有データ値が共有メモリに書き込まれる。この値
は、他のプロセッサが読み出し、使用する共有データの
最も新しい値である。このような特定の順次の同期イン
ターバルを出る際、該特定の順次の同期インターバルに
入った後修正されていないデータ値を、ローカルデータ
キャッシュからデリートし、このようにして、修正され
た値をキャッシュ中に保持しつつ、データキャッシュの
汚染を避けることができる。従って、修正された共有デ
ータ値は、共有変数メモリへアクセスすることなく、ロ
ーカルプロセッサにおいて利用可能である。このように
して、最も新しく計算された変数の値を、計算を実行す
るプロセッサにおいて保持する。この結果は、共有メモ
リへの必要なアクセス数を減少させるのに有利である。
【0009】
【実施例】図1は、基本的な並列処理計画を示す図であ
る。ここでは、プログラム9を実行するための3個のプ
ロセッサ12, 14, 15を示している。コンパイラ11は、コ
ンパイルされたプログラムのセグメントを、プログラム
の実行を行うプロセッサ12, 14及び15の各々に供給す
る。
【0010】プログラム中のコンパイルされたバリア命
令によって、プロセッサ12, 14及び15の同期をとる。プ
ロセッサ12, 14及び15の間で同期をとる必要がある場
合、バリア命令を用いて、プロセッサの実行を停止させ
る。バリアは、所定の変数に対して計算された一定の値
を、他のプロセッサによって読み出し利用することがで
きることを要件とする。前記他のプロセッサは、割当て
られたプログラムセグメントの実行のための変数を必要
とする。このバリアは、他のプロセッサと同期をとらず
に、プロセッサが多くの限定された命令を実行すること
のできるファジィバリアとすることができる。
【0011】各々のプロセッサによって計算された共有
変数の値を保持することのできるデータキャッシュ20,
21及び22は、プロセッサ12, 14及び15の各々と関連して
いる。他の並列処理計画においては、共有メモリ13を設
け、該メモリに、各プロセッサ12, 14及び15の各々の適
切な実行インターバルで、共有値としての新しい値を書
き込む。I,W及びZのような固定データ値を記憶する
ためのレジスタは、図中にて、プロセッサ12及び14と関
連させて示してはいない。I,W及びZのような固定デ
ータ値は、所定の実行において変化せず、任意の他のプ
ロセッサによって必要とされない。クオンティティ(qua
ntity)については、図3との関連で説明する。簡単のた
め、必要な、項目のみを示す。特に、プロセッサ/キャ
ッシュを、バス16を介して、共有メモリ13に接続す
る;更に、これらを、10にて示すプロセッサ同期サポー
トメカニズムで相互接続する。
【0012】図2は、チャンネルレジスタ18と、バリア
ロジック回路26のバリアフラグレジスタとを具えるプロ
セッサ12, 14及び15の各々構成を詳細に示す図である。
バリアフラグレジスタ(図示せず)は、プロセッサの各
々と関連しており、各プロセッサ12, 14及び15の各々に
対応する専用のビット位置を具えている。内部プログラ
ミングステートメントで決められているように、プロセ
ッサバリアに到達すると、各々のプロセッサ12, 14及び
15のバリアロジック回路26の各フラグレジスタの各々の
専用ビット位置に、有効なフラグが挿入される。所定の
プロセッサ及び隣接プロセッサの実行状態を表示するチ
ャンネルレジスタを図に示す。このようにして、チャン
ネルレジスタに問い合わせを行い、隣接プロセッサの計
算が終了しているかどうかを確認することができる。バ
リア同期を用いる並列処理システムにおいては、チャン
ネルレジスタ18は、パラレルプロセッサの実行シーケン
ス中の位置も表示する。通常、他のプロセッサがプログ
ラムセグメント中の一定のステートメントを実行する場
合、フラグを、チャンネルレジスタ18に配置し、フラグ
を発生させるステートメントを介してプロセッサが処理
を行っているということを確認する。このようにして、
チャンネルレジスタを、各プロセッサの同期インターバ
ルを確認するための他の手段とすることができる。制御
ユニット25は、図2のデバイス間に、必要なシグナリン
グと、データ伝送とを提供する。更に、この図は、実線
にて示すデータパス及び点線にて示す制御パスで相互接
続せれているALU23、レジスタファイル24及びキャッ
シュ20を示している。
【0013】並列処理を用いてコードを実行する効果及
びプロセッサの各々でデータキャッシュを用いることに
よって得られる利点を、簡単な例を用いて説明すること
ができる。図3は、以下のコードを、2個のパラレルプ
ロセッサで実行する場合の一般的なプロセッサ実行シー
ケンスを示している。
【0014】 integer A[32], B[32], W,Z; for (I=1;I<32;I=I+1) { A[I]=A[I]*(B[I]+W)+A[I−1] B[I]=(B[I]+Z)+B[I−1] }
【0015】プロセッサ12は、ベクトルAの新しい値を
計算するのに用いら、プロセッサ14は、ベクトルBの新
しい値を計算する。B[I]の新しい値を計算するに
は、古いBベクトルを計算しなければならないので、プ
ロセッサの同期をとり、プロセッサ14によって新しく計
算されたBの値を用いて再び書き込みを行う前に、それ
より以前のBベクトルの計算を、プロセッサ12が利用で
きるようにする必要がある。
【0016】ループ中では、変数W及びZに変化はな
く、各プロセッサ12及び14のレジスタファイル24に、こ
れらの値を予めロードすることができる。指標値である
Iは、各プロセッサにおいて独立に計算される。レジス
タファイル24は、指標変数Iの現在の値及びこれより以
前の値を保持する。始めに、指標値は、1及び0にセッ
トされ、各反復の終了時におけるIの値を、レジスタ24
にコピーする。そして、Iの値は、1つずつインクリメ
ントされる。
【0017】A及びBを計算するための上記ループを実
現するのに用いられる擬似コードの変換を、以下のよう
に、要約する: MOV Ra,Rb Raの内容を Rb にコピーする。 Ld X,Rd X によって特定されるメモリロケーショ
ンの内容をレジスタRdにロードする。 ADD Ra,B,Rd Raと、B (レジスタ内容又は一定値)と
の和を、Rdに入れる。 MUL Ra,C,Rd Raと、C ( レジスタ内容又は一定値) と
の積をRdに入れる。 ST Rs,X レジスタRsの内容を、X によって特定さ
れるメモリロケーションに記憶する。 CMP X,Y X とY との対比に基づく条件コードをセ
ットする。 BLT LAB “ある条件より値が小さい(less than)"
場合には、LAB に分岐する。
【0018】図3は、プロセッサ12及び14の各々のプロ
グラムセグメントを具える擬似コードを示している。図
3では、プロセッサ12及び14の各々のソフトウェアに設
けられているバリアの効果も示されている。計算される
べきコードの基本ラインから明らかなように、B[R1]
の値は、プロセッサ14によって、レジスタR4中にロード
され、プロセッサ12が、A[R1]を計算するのに使用す
る。プロセッサ14は、命令STで示されているプログラム
部分で、B[R1]の新しい値を記憶する。プロセッサ12
及び14のコードのハイライト部分として示されているバ
リアは、プロセッサ12がループを介してB[R1]をその
第1パスにロードするまで、R5の新しい値をB[R1]に
記憶しないようにしている。プロセッサ12が命令LD A
[R1], R5で始まるバリアに入っていない場合には、プ
ロセッサ14を停止させる必要がある。この間、ファジィ
バリア同期を用い、プロセッサ14は、他のタスクを実行
することができ、プロセッサ12が図3のプログラム中に
示されている内容を実行するのに同期させる必要がな
い。勿論、他のプログラムを実行する際、2個のプロセ
ッサが強調することもできる。このことは、本質的に、
図3に示されている命令のシーケンスに影響を及ぼさな
い。しかし、プロセッサ12がバリアに処理を進めると、
フラグが各々プロセッサのバリアロジック回路26のバリ
アレジスタにセットされ、プロセッサ12がこのバリアに
到達したことを示す。プロセッサ14は、命令STR5, B
[R1]に到達すると、同様にバリアロジック回路26のバ
リアレジスタ中にフラグを配置し、バリアに到達したこ
とを示す。バリアロジック26のバリアレジスタ中のフラ
グがすべて1にセットされると、バリアを介して実行が
再開される。このことは、他のプロセッサがプログラム
のセグメントを実行するのに必要な値を、各々のプロセ
ッサが自由に変更できることを示している。
【0019】図3にて示されているようなコードを実行
する際2個のパラレルプロセッサを用い、図4を参照し
てデータキャッシュのオペレーションを説明することが
できる。ここでは、3個のバリアが示されており、プロ
セッサ1がプログラムのセグメントを実行する際、デー
タキャッシュを介して制御される。
【0020】第1バリアに入る前に、プロセッサ12はレ
ジスタR4に含まれるデータ、すなわちB[1]の値を有
しており、R3に、Wに対する値を有している。バリアに
入る際、B[1]の値は、メモリからの読出値であり、
これは修正されていない。指標値Iは、レジスタR1から
読出される。
【0021】プロセッサによって値が修正されていない
ために、バリアに入るまでは、他の動作を行う必要がな
い。バリアに入ると、B[1]の前の値を、41に保持す
る。プロセッサはA[1]の値を計算し、B[1]の所
期値を保持する。プロセッサ12に関する、図3にて示す
記憶命令STの結果は、A[1]の修正されたコピーを提
供することである。このA[1]の修正された値は、ア
スタリスク*を用いて識別される。プロセッサ12がバリ
ア領域を出る前に、修正されていないキャッシュへの任
意のエントリを無効にする必要がある。修正されたエン
トリは、有効なものとして残すことがでいる。このよう
にして、バリアを出た直後、A[0]及びB[1]の値
を無効とし、データキャッシュ20からクリアする。一
方、A[1]と関連するキャッシュエントリは、変更を
加えずに残しておく。他のプロセッサが、データを更新
後、値を共有し、新しい値を共有メモリロケーションに
書き込む場合であっても、無効にされ、デリートされた
データが誤って読み出されることはない。
【0022】バリア領域から出ると、保持されているA
[1]の値を、データキャッシュ20中の共有メモリから
新たに読み出された値B[2]で補う。バリア領域2に
入る前に、読み出された後修正されたキャッシュ中のデ
ータ、すなわちA[1]*を、再び共有メモリ中に書き
込み、他のプロセッサが新たに計算された値にアクセス
できるようにしなければならない。この時、値はキャッ
シュに保持され、値がメモリに再び書き込まれているこ
との指標がキャッシュに設けられる。(この指標は、ア
スタリスク*が存在しないことで表現される。)バリア
領域に入った後、共有メモリから読み出されB[2]の
値も保持される。
【0023】45で示されているバリア領域に入ると、フ
ァジィバリアピリオドの間、A[1]及びB[2]の値
が保持される。ファジィバリアピリオドの間、A[2]
の新しい値が46で計算される。第2バリアを出る際、A
[1]及びB[2]を有する修正されていないデータ
が、キャッシュメモリからデリートされ、以前に修正さ
れたA[2]の値のみが保持される。
【0024】プログラムが48で実行され、新たな値B
[3]が計算される。上記のルールを用いて、新たに修
正されたA[2]を再び共有メモリに書き込むととも
に、アスタリスク*をデリートすることによって49にお
いて、A[2]が再び共有メモリに書き込まれているこ
とを示す指標を、データキャッシュ20に設けた後にの
み、第3バリアへのエントリが開始する。
【0025】このようにして、修正された値を計算した
プロセッサ中の共有データ値の修正値を保持することに
よって、共有メモリを不必要に参照するのを避けられる
ことがわかる。更に、バリア同期を用いて、共有変数の
未修正値をデリートし、他のプロセッサによって更新さ
れ、共有メモリロケーションに書き込まれた古いデータ
値の保持、使用を避けることができる。
【0026】バリア同期が、キャッシュクリア及び共有
メモリへの書き込みを制御するには便利であるが、他の
同期方法を用いることもできる。例えば、チャンネルの
読み出し及び書き込みは、並列実行における各プロセッ
サの相対的な位置を測定するのに便利であり、このた
め、キャッシュを制御し、不必要なデータ値をクリア
し、共有メモリに書き込むことができる。
【0027】このように、特定の例に関して、並列処理
システムにおけるプロセッサの局所的データキャッシュ
動作を実現するためとの技術を説明したが、要旨を変更
しない範囲で、種々の変形又は変更が可能である。
【図面の簡単な説明】
【図1】マルチプロセッサ並列処理コンピュータを示す
ブロック図である。
【図2】図1にて示すマルチプロセッシングシステムの
プロセッサのアーキテクチャを示す図である。
【図3】共有変数を用いてプロセッサコードを実行する
ためのプロセッサ12及び14の各々のためのプログラミン
グステップを示す図である。
【図4】図3にし示すコードを実行する際のプロセッサ
12のデータキャッシュの動作を示す図である。
【符号の説明】
9 プログラム 10 プロセッサ同期サポートメカニズム 11 コンパイラ 12 プロセッサ 13 共有メモリ 14 プロセッサ 15 プロセッサ 16 バス 18 チャンネルレジスタ 20 データキャッシュ 21 データキャッシュ 22 データキャッシュ 23 ALU 24 レジスタファイル 25 制御パス 26 バリアロジック回路
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 590000248 Groenewoudseweg 1, 5621 BA Eindhoven, T he Netherlands (56)参考文献 Proc.of ASPLOS II I 24 splssue 1989 p54− 63 Rajiv Gupta「The Fuzzy Barrier:A Me chanism for High S peed Synchronizati on of Processor」 (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 681 G06F 12/08 EPAT(QUESTEL) INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサが、単一のコンパイル
    されたプログラムの一部分を実行するように編成され、
    前記プログラムが、プロセッサを同期させる同期領域を
    有するように編成されている並列処理システムにおけ
    る、共通変数データ値を有する共有メモリと、各プロセ
    ッサとの間のトラフィック量を減少させる方法が: プログラム変数の値を計算したプロセッサと関連するロ
    ーカルデータキャッシュに、前記プログラム変数の計算
    された値を記憶する工程と; 前記ローカルデータキャッシュ各々中のデータが、前記
    共有メモリから読み出されるデータ値を示している場合
    には、前記ローカルデータキャッシュの各々のデータ
    を、有効クリーンエントリとして認識し、プロセッサ変
    更値を示している場合には、有効修正エントリとして認
    識する工程と; 同期領域に入る以前に、有効修正エントリとして認識さ
    れたデータを前記共有メモリに書き込むとともに、前記
    有効修正エントリとして認識されたデータをその後に有
    効クリーンエントリとして認識する工程と; 同期領域を出る以前に、有効クリーンエントリとして認
    識されたデータをデリートするとともに、有効修正エン
    トリとして認識されたデータを前記データキャッシュに
    保持する工程; とを具えることを特徴とする方法。
  2. 【請求項2】 並列に作動し、コンピュータプロセッサ
    によって認識される同期インターバルを介して同期がと
    られ、且つ、共有メモリから共有データ値をアクセスす
    る複数の関連プロセッサで、コンピュータプログラムの
    一部分を実行する並列処理システムにおける、前記共有
    メモリをアクセスする必要性を減少させる方法が:各プ
    ロセッサと関連するローカルデータキャッシュに、共有
    データ値を示しているデータ値の計算結果を記憶する工
    程と;第1同期インターバルに入る際、キャッシュに、
    前記共有メモリから読み出される変更されていない値を
    保持する工程と;前記第1同期インターバルから出る
    際、各キャッシュを更新し、関連するプロセッサによっ
    て計算される、新たに計算され、記憶されるデータ値を
    有するようにする工程と;次の同期インターバルに入る
    際、各データキャッシュ中に含まれる修正されたデータ
    値を前記共有メモリに書き込む工程と;前記次の同期イ
    ンターバルを出る際、順次に修正されたデータを保持し
    つつ、前記次の同期インターバルに入った後、修正され
    ていないデータ値を、前記データキャッシュからデリー
    トする工程;とを具えていることを特徴とする方法。
  3. 【請求項3】 前記第1同期インターバルを出る以前に
    修正されていない、前記キャッシュ中のデータを無効に
    する工程を、更に具えていることを特徴とする請求項2
    に記載の方法。
  4. 【請求項4】 前記次の同期インターバルの間、前記共
    有メモリに書き込まれた、修正されたデータを確認する
    とともに、前記修正されたデータをキャッシュ中に保持
    する工程を更に具え、これによって、前記共有メモリの
    順次のアクセスを行う必要なく、前記順次に保持された
    データをキャッシュ中で利用できるようにすることを特
    徴とする請求項3に記載の方法。
  5. 【請求項5】 各々のプロセッサがデータキャッシュを
    具え、且つ命令ストリーム中に設けられた各インターバ
    ルを用いて、相互に、前記プロセッサによる命令を実行
    する際の同期を採り、前記パラレルプロセッサによって
    実行される、パラレルプロセッサ間のデータキャッシュ
    内容の完全性を保証するための方法が:各プロセッサが
    他のプロセッサと共有する変数を記憶するためのデータ
    キャッシュを行う工程と;同期インターバルに入ってい
    る間、修正されたデータ変数を再び共有メモリに書き込
    み、他のプロセッサによってアクセスするとともに、以
    前に記憶された未修正のデータをクリアする工程と;同
    期インターバルから出ている間、同期インターバルへの
    エントリの後、修正されていなかったデータ変数をクリ
    アする工程;とを具えていることを特徴とする方法。
  6. 【請求項6】 前記同期インターバルに入る前であっ
    て、前記同期インターバルより以前の同期インターバル
    を出た後に、データ値を、有効データとして認識し、各
    データキャッシュ中に、前記認識されたデータを保持す
    る工程を、更に具えていることを特徴とする請求項5に
    記載の方法。
  7. 【請求項7】 同期インターバルから出ている間、修正
    されたデータ変数を、各キャッシュ中に保持する工程
    を、更に具えていることを特徴とする請求項5に記載の
    方法。
  8. 【請求項8】 各プロセッサが、データキャッシュメモ
    リと、更に、前記プロセッサに相互接続された共有メモ
    リとを有し、集合的に特定の単一プログラムを実行し、
    各プロセッサが、バリアロジック手段を具え、他のプロ
    セッサの各々が特定のインターバルに入っているかどう
    かを示し、且つ、各プロセッサが、前記共有メモリを読
    み出すための読出手段と、局所的に発生したデータを前
    記共有メモリに書き込むための書込手段と、ある瞬間の
    後、キャッシュされたデータが、修正されているか、又
    は未修正であるかを示すためのシグナリング手段とを具
    える、2個以上のプロセッサを具える処理システムにお
    いて;該システムが:前記バリアインターバルに入って
    いる間、任意の修正されたデータを前記共有メモリに書
    き込むとともに、前記シグナリング手段を“未修正”に
    リセットするためのバリアエンターリング手段と、前記
    バリアインターバルから出ている間、独占的に未修正の
    キャッシュされたデータをデリートするためのバリアイ
    グジッティング手段、とを具えていることを特徴とする
    処理システム。
JP10832191A 1990-04-17 1991-04-15 並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム Expired - Lifetime JP3184552B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/510,336 US5261067A (en) 1990-04-17 1990-04-17 Method and apparatus for providing synchronized data cache operation for processors in a parallel processing system
US07/510336 1990-04-17

Publications (2)

Publication Number Publication Date
JPH04279960A JPH04279960A (ja) 1992-10-06
JP3184552B2 true JP3184552B2 (ja) 2001-07-09

Family

ID=24030331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10832191A Expired - Lifetime JP3184552B2 (ja) 1990-04-17 1991-04-15 並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム

Country Status (4)

Country Link
US (1) US5261067A (ja)
EP (1) EP0453028B1 (ja)
JP (1) JP3184552B2 (ja)
DE (1) DE69131472T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL422338A1 (pl) * 2017-07-24 2019-01-28 Icb Pharma Spółka Jawna Tomasz Świętosławski, Paweł Świętosławski Urządzenie do neutralizowania ektopasożytów

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68927946T2 (de) * 1988-08-02 1997-10-16 Philips Electronics Nv Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre
JPH07302200A (ja) * 1994-04-28 1995-11-14 Hewlett Packard Co <Hp> 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
US5812810A (en) * 1994-07-01 1998-09-22 Digital Equipment Corporation Instruction coding to support parallel execution of programs
US5666506A (en) * 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
US6049889A (en) * 1995-06-07 2000-04-11 Digital Equipment Corporation High performance recoverable communication method and apparatus for write-only networks
US5897655A (en) * 1996-12-10 1999-04-27 International Business Machines Corporation System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
US6615281B1 (en) 2000-05-05 2003-09-02 International Business Machines Corporation Multi-node synchronization using global timing source and interrupts following anticipatory wait state
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
EP1671233B1 (en) * 2003-09-04 2011-11-16 Koninklijke Philips Electronics N.V. Tree-like data processing system accessing a memory
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
WO2009122694A1 (ja) * 2008-03-31 2009-10-08 パナソニック株式会社 キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US20120233410A1 (en) * 2011-03-13 2012-09-13 National Tsing Hua University Shared-Variable-Based (SVB) Synchronization Approach for Multi-Core Simulation
US8966461B2 (en) * 2011-09-29 2015-02-24 Advanced Micro Devices, Inc. Vector width-aware synchronization-elision for vector processors
US9513975B2 (en) 2012-05-02 2016-12-06 Nvidia Corporation Technique for computational nested parallelism
WO2015047326A1 (en) * 2013-09-27 2015-04-02 Hewlett-Packard Development Company, L.P. Data management on memory modules
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proc.of ASPLOS III 24 splssue 1989 p54−63 Rajiv Gupta「The Fuzzy Barrier:A Mechanism for High Speed Synchronization of Processor」

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL422338A1 (pl) * 2017-07-24 2019-01-28 Icb Pharma Spółka Jawna Tomasz Świętosławski, Paweł Świętosławski Urządzenie do neutralizowania ektopasożytów

Also Published As

Publication number Publication date
DE69131472D1 (de) 1999-09-02
EP0453028B1 (en) 1999-07-28
US5261067A (en) 1993-11-09
JPH04279960A (ja) 1992-10-06
EP0453028A2 (en) 1991-10-23
DE69131472T2 (de) 2000-02-17
EP0453028A3 (en) 1992-08-05

Similar Documents

Publication Publication Date Title
JP3184552B2 (ja) 並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
US4701844A (en) Dual cache for independent prefetch and execution units
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US5809566A (en) Automatic cache prefetch timing with dynamic trigger migration
US5423048A (en) Branch target tagging
US9367348B2 (en) Protecting the footprint of memory transactions from victimization
JP3020212B2 (ja) ディジタル・データ処理システム及び命令シーケンス処理方法
JP3681647B2 (ja) キャッシュメモリシステム装置
US8627010B2 (en) Write-through cache optimized for dependence-free parallel regions
US10108464B2 (en) Managing speculative memory access requests in the presence of transactional storage accesses
KR100335744B1 (ko) 로드/로드 검출 및 재정렬 방법
JP4294059B2 (ja) 情報処理装置および情報処理方法
JPH08221272A (ja) 命令キャッシュに命令をロードする方法
Pong et al. Verifying distributed directory-based cache coherence protocols: S3. mp, a case study
WO1998011484A1 (fr) Processeur de commande a memoire d&#39;historique
JPS6232506B2 (ja)
JPH0877021A (ja) 割込処理装置および方法
JPH06187239A (ja) 多階層キャッシュメモリにおけるデータ一致制御方式
JPH02189658A (ja) キャッシュメモリ
JPH0588891A (ja) キヤツシユメモリ制御装置
JP3108512B2 (ja) 分岐予測装置
JPH05334194A (ja) 情報処理装置
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPH07219838A (ja) データ先読み制御装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090427

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090427

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100427

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110427

Year of fee payment: 10

EXPY Cancellation because of completion of term