明細書 スプ リ ッ ト レベルのデー タ キ ャ ッ シ ュ システム にお け る 同期性のための シ ス テム と その方法 技術分野
本発明はスプ リ ッ ト レベルの キ ヤ ッ シ ュ装置を含むコ ン ピュ ー タ ー システム にお け る デー タ キ ヤ ッ シ ュの同期 性に関する。
背景技術
現代の コ ン ビュー タ ー シ ステムは大 き さ及び速度の異 な る様々 な記憶装置か ら成る記憶階層を含んでい る。 か かる記憶装置には、 例えば、 小容量なが ら高速のキ ヤ ッ シ ュ メ モ リ 一や、'大容量ではあ るが低速の主記憶装置が め る 。
デー タ はキ ャ ッ シ ュ メ モ リ ー かあ る いは主記憶装置の 中に見い出 さ れる。 更に、 (中央処理装置や入出力装置 等の) 複数の装置が、 キ ャ ッ シ ュ メ モ リ ー及び主記憶装 置の中 に含ま れるデー タ にア ク セス し、 更新する。 こ の よ う に、 いつで も、 デー タ はキ ャ ッ シ ュ メ モ リ ー及び も し く は主記憶装置において一致 し な いか、 あ る いは古 く な っ てい る 力、 も しれない。
こ れはキ ャ ッ シ ュ メ モ リ 一 におけ る 同期性 ( c 0 h e r e n c y ) の問題であ る 。 キ ャ ッ シ ュ の同期性の問題 は、 特に複数のプロ セ ッ サーが各々 1 つかそれ以上のキ
ャ ッ シ ュを含み、 全てのキ ャ ッ シ ュ間に同期性が要求さ れる マ ノレチプ ロ セ ッ サー · コ ン ピ ュ ー タ ー シ ス テム にお いて増大する。
キ ヤ ッ シ ュ の同期性を維持す る シス テム及びそ の方法 は公知であ り 、 John L . Hennessy and David A. Patter sonの Computer Architecture - A Quantitative A p r oa ch ( コ ン ピ ュ ー タ ー ア ー キ テ ク チ ャ ー : 定量的ア ブ ロ ー チリ ( Morgan Kauf mann Publishers, Inc. San Mateo, California , U.S.A. , 1 9 9 0 年) 等の よ う に、 一般に 利用で き る文献に記載さ れてお り 、 参照のた め こ こ に引 用する 。 こ れ ら従来か らの シス テム及び方法はほ と ん ど の コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュ の同期 性の問題を解消する の に充分であ る。
し か し なが ら 、 新 し い コ ン ピ ュ ー タ ー ァ ー キテ ク チ ャ 一は'新型キ ヤ ッ シ ュ の同期性の問題を生 じ る こ と力 あ る。 こ れ ら のキ ヤ ッ シ ュ の同期性の問題は、 検出する こ と は も ち ろん、 'その解析及び解決は困難であ っ た。 従来のキ ャ ッ シ ュ の同期性技術は こ れ ら の新型キ ヤ ッ シ ュ の同期 性問題を解消する には適切でな い こ と も あろ う 。
こ の よ う に、 ス ブ リ ッ ト レベルのキ ヤ ッ シ ュ配列を持 つ コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュ の同期 性に関する 問題.を解決する ための シス テム及び方法が求 め られてい る 。
そ こ で、 本発明の 目的は、 それぞれ少な く と も 1 つの キ ヤ ッ シ ュを有する複数の処理装置か ら成る コ ン ビ ュー
タ ー シ ス テム において、 キ ヤ ッ シ ュ メ モ リ 一 ア ク セ ス命 令の実行を制御する ための制御 システム及び方法を提供 する こ と にあ る。
発明の開示
本発明によれば、 マルチプロセ ッ サ一キ ヤ ッ シ ュ の同 期性は コ ン ビ ユ ー タ ー シス テム の中で維持さ れる。 コ ン ビュー タ ー シ ス テム の少な く と も 1 つ の処理装置が、 第 2 レベルの キ ヤ ッ シ ュ に連結さ れる第 1 レベルのキ ヤ ッ シ ユカ、 ら成る スプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含む 処理装置であ っ て、 整数記憶命令がデー タ を第 1 レベル のキ ヤ ッ シ ュ と第 2 レベルのキ ヤ ッ シ ュ に記憶する こ と を可能にする 。 第 1 レべノレのキ ャ ッ シ ュ はバイ ト 書き込 み可能であ り 、 第 2 レベルのキ ヤ ッ シ ュ は ヮ ー ド書き込 み可能であ る 。
本発明の制御 シス テム は第 2 レベルのキ ヤ ッ シ ュのノ、' イ ブラ イ ンを監視 し て、 フ ォ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベルの キ ヤ ッ シ ュパイ プラ イ ン にあ る か否 かを判別する 。 F A命令は第 1 レベルの キ ャ ッ シ ュ にお け る記憶割当てを求め る整数記憶命令であ り 、 それは ヮ 一 ドの整数倍以外の長さ のデー タが第 1 レベルのキ ヤ ッ シ ュ に記憶さ れる こ と を可能にする。 F A命令実行中に、 1 つかそれ以上のバイ ト カ 第 1 レベルのキ ヤ ッ シ ュ か ら 読み込ま れ、 ヮ 一 ド長デー タが第 2 レベルのキ ヤ ッ シ ュ に書き込ま れる よ う に、 F A命令の書 き込みデー タ に沿 つ て第 2 レべノレのキ ャ ッ シ ュ に書き込ま れる 。
F A 命令が第 2 レベルの キ ヤ ッ シ ュ パ イ プラ イ ン に あ る と 判別 さ れた場合、 制御 シ ス テム は F A命令が第 2 レ ベルの キ ヤ ッ シ ュパ イ ブラ イ ン を出 る ま で、: 第 2 レベル のキ ャ ッ シ ュ に対す る 介入を遅 ら せ る 。 こ れは結果的に、 キ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令の操作に よ っ て書 き 込 ま れる デー タ が F A 命令の操作に よ っ て破壊 さ れな い よ う に、 かか る 介入の発生に責任があ る キ ヤ ッ シ ュ メ モ リ — ア ク セス命令の実行を遅 ら せ る 。
更に、 制御 シス テム は第 2 レベルの キ ヤ ッ シ ュ を監視 して、 ポ ッ シ ブル ミ ス ( P M ) 命令が第 2 レベルの キ ヤ ッ シ ュ パ イ ブラ イ ン にあ る か否かを判別す る 。 P M命令 は第 2 レベルのキ ヤ ッ シ ュ の中 に記憶割当てを求め る が、 第 1 レベルの キ ヤ ッ シ ュ に は記憶割当てを求めな い キ ヤ ッ シ ュ メ モ リ ー ア ク セス命令で あ る 。
P M命令が第 2 レベルの キ ヤ ッ シ ュ パ イ プラ イ ン の中 に あ る と 判別 さ れた場合、 制御 シ ス テ ム は F A 命令が第 2 レべノレの キ ヤ ッ シ ュパ イ ブラ イ ン に入 ら な い よ う にす る 。 こ の方法で、 第 2 レベルの キ ャ ッ シ ュ に対す る 介入 の実行が防止 さ れな いが、 コ ン ピ ュ ー タ ー シ ス テム の処 理装置間のデ ッ ド ロ ッ ク が防止 さ れる よ う に、 介入が第 2 レベルのキ ヤ ッ シ ュ の た め に処理 さ れる 間に、 第 2 レ ベルの キ ヤ ッ シ ュ に お け る 命令が保留 さ れる 可能性があ る
更に制御 シ ス テム は、 整数記憶操作の書 き 込みデー タ が含ま れ る整列 し た バイ 卜 の整数倍の ワ ー ドが第 1 レべ
ルのキ ヤ ッ シ ュ にのみ独占 さ れてい る か否かを判別する 整列 し た ヮ ー ドが第 1 レベルの キ ヤ ッ シ ュ に のみ独占的 でない と判断 した場合、 制御 シス テム は整数記憶操作が 第 2 レベルのキ ヤ ッ シ ュパ イ ブラ イ ン に入 ら な い よ う に し、 整列 し た ワ ー ドが第 1 レベルのキ ャ ッ シ ュ に独占 さ れる よ う にキ ャ ッ シ ュ ミ ス · フ ィ ル操作を開始する 。 図面の簡単な説明
図 1 は、 本発明の コ ン ピ ュ ー タ ー シ ス テム のブロ ッ ク 線図であ る。
図 2 は、 整数記憶操作がスプ リ ツ ト レベルのキ ヤ ッ シ ュ配列を持つ コ ン ピ ュ ー タ 一 シ ス テム において どの よ う に実行 さ れる かを示す図であ る 。
図 3 は、 ス ブ リ ツ ト レベルの キ ャ ッ シ ュ配列を持つ コ ン ピュ ー タ ー シス テ ム の構造及び操作上の特徴の故にデ 一 夕 が失われ る シナ リ オを描い た図で あ る 。
図 4 は、' 本発明の好適な実施例によ る制御 システムの 操作を描 ぐフ ロ ー チ ヤ 一 ト であ る 。
図 5 は、 本発明の好適な実施例によ る制御 システムの 操作を描 く フ ロ ーチ ヤ 一 ト であ る。
発明を実施す る ための最良の形態
以下、 本発明の好ま し い実施例を添付の図面を参照 し なが ら詳細に説明する。 なお、 図面において、 同 じ参照 符号は同 じか又は機能的に類似する エ レメ ン ト を示す。 1 . ハ ー ドウ ユ アを取り 巻 く 環境
図 1 は、 本発明が好適に動作する こ と ので き る コ ン ビ
ユ ー タ ー シ ス テム 1 0 1 の部分的ブロ ッ ク 図であ る 。 な お、 当業者な ら認識で き る よ う に、 コ ン ピ ュ ー タ ー シス テム 1 0 1 は図 1 に示 した も の以外の構成部材を含む。
コ ン ビユ ー タ ー システム 1 0 1 はノく ス 1 2 6 に接続さ れる処理装置 1 0 2 を有す る。 処理装置 1 0 2 は R I S C (Reduced Instruction Set Computer) 、縮小命令セ ッ ト コ ン ビユ ー タ ー) プロセ ッ サ一であ る こ と が好ま し い が、 その代わ り に別の タ イ プの コ ン ピ ュー タ ー ァー キ テ ク チ ャ 一を持つプロ セ ッ サ一であ っ て も よ い。 R I S C コ ン ピ ュ ー タ ープロ セ ッ サ一 については参照のため引用 する以下の文献に記載さ れてい る。 すなわち、 G. Kane and J . Hemrich, MIPS RISC Architecture (Prentice Hall , Englewood Cliffs , New Jersey, U.S.A. , 1992 ) ; Mike Johnson , Superscalar Microprocessor Design (Prentice Hall , Englewood Cliffs, New Jersey, U.S. A . , 1991) ; 及び Stephen B . Furber , VLSI RISC Archit ecture and Organization (Marcel Dekker , Inc. , New York , New York, U.S.A. , 1989 )に言己載さ れてい る。
処理装置 1 0 2 は、 整数操作を実行する ための整数機 能単位 ( I U : 明快には図 1 に図示さ れていな い) 、 及 び浮動小数点操作を実行する ための浮動小数点機能単位 ( F P U : 明快には図 1 に図示 されていない) 等の複数 の機能単位 ( F U : functional unit) 1 0 4 を含む。
処理装置 1 0 2 は、 デー タ キ ャ ッ シ ュ 1 0 8 のよ う な 第 1 レ べ ノレの キ ヤ ッ シ ュ と 、 グロ ー バ ノレキ ヤ ッ シ ュ 1 1
2 の よ う な第 2 レベルのキ ャ ッ シ ュ か ら 成る ス プ リ ッ ト レベルのキ ャ ッ シ ュ配列を含む。 一般的に、 デー タ キ ヤ ッ シ ュ 1 0 8 は グ ロ ー ノく ノレキ ャ ッ シ ュ 1 1 2 よ り 小 さ い (デー タ キ ャ ッ シ ュ 1 0 8 の好ま し い大 き さ は 1 6 キ ロ ノ ィ ト であ り 、 グ ロ 一 ノく ルキ ヤ ッ シ ュ 1 1 2 の好ま し い 大 き さ は 1 6 メ ガノくイ ト で あ る ) 。 デー タ キ ャ ッ シ ュ 1 0 8 に は グ ロ ー バノレキ ヤ ッ シ ュ 1 1 2 に記憶 さ れる デー 夕 のサ ブセ ッ ト が入 っ てい る 。 通常デー タ キ ャ ッ シ ュ 1 0 8 は グ ロ ー バルキ ヤ ッ シ ュ 1 1 2 よ り 操作が高速であ る
デー タ キ ャ ッ シ ュ 1 0 8 は処理装置 1 0 2 において I U と 同 じ コ ン ビ ユ ー タ ー チ ッ プ上に形成 さ れ る こ と が好 ま し い (従 っ て、 デー タ キ ャ ッ シ ュ 1 0 8 は 「オ ン チ ッ プキ ヤ ッ シ ュ 」 と も 呼ばれ る ) 。 グロ ー バルキ ヤ ッ シ ュ 1 1 2 は処理装置 1 0 2 に おいて機能単位 1 0 4 の外部 に あ る こ と が好ま し い (従 っ て、 グ ロ 一ノ ノレキ ャ ッ シ ュ 1 1 2 は 「オ フ チ ッ プキ ャ ッ シ ュ」 と も 呼ばれる ) 。 整数デー タ はデー タ キ ヤ ッ シ ュ 1 0 8 の中 に あ る 。 浮 動小数点デー タ は グ ロ ーバルキ ャ ッ シ ュ 1 1 2 の中 に あ る 。 更に グ ロ ーバルキ ャ ッ シ ュ 1 1 2 は整数デー タ 用の 第 2 レベルの記憶単位で も あ る 。 整数記憶操作は整数デ 一 夕 がデー タ キ ヤ ッ シ ュ 1 0 8 と グロ ーバルキ ヤ ッ シ ュ 1 1 2 の両方 に記憶 さ れ る よ う にす る 。 浮動小数点記憶 操作はデー タ キ ャ ッ シ ュ 1 0 8 を迂回 して、 浮動小数点 デー タ がグ ロ ー バノレキ ャ ッ シ ュ 1 1 2 に記憶 さ れる よ う
にする 。
好ま し く は、 デー タ キ ャ ッ シ ュ 1 0 8 は非 ワ ー ド書き 込みを支持する。 デー タ キ ヤ ッ シ ュ 1 0 8 は異な る非ヮ - ド書き込み長の書 き込みを支持 して も よ いが、 好ま し く はデー タキ ャ ッ シ ュ 1 0 8 はバイ ト 書き込みを支持す る 。 つ ま り 、 デー タ は 1 、°ケ ッ 卜 でデー タ キ ヤ ッ シ ュ 1 0 8 に書き込むこ と がで き る 。 換言すれば、 デー タ キ ャ ッ シ ュ 1 0 8 は好ま し く はバイ 卜 書 き込み可能で あ る 。 グロ ー バノレキ ャ ッ シ ュ 1 1 2 は 卜 書き込みを 支持 し ない。 その代わ り に、 グ ロ ーバルキ ャ ッ シ ュ 1 1 2 は ワ ー ド書き込みを支持 し、 そ の場合ワ ー ドは 4 バイ ト であ る こ と が好ま し い。 換言すれば、 グロ 一バノレキ ャ シ ュ 1 1 2 は ヮ ー ド書き込み可能であ る。
バイ ト書き 込みではな く 、 ワ ー ド書き込みを支持す έ こ と に よ り 、 よ り 少な い R A Μ ( ラ ン ダム ア ク セス メ -モ リ ー) を使用 してグ ロ ー バルキ ャ ッ シ ュ 1 1 2 を実行す る こ と が可能であ り 、 それによ り 処理装置 1 0 2 の費用 を削減する。 ワ ー ド書き込みを支え る よ り バイ ト書 き込 みを支え る場合に、 パ リ テ ィ 一 の度合いが大 き く な る の で、 事実その通 り であ る。 例えば、 ワ ー ド力 3 2 ビ ッ ト であ り 、 グロ 一 ノレキ ャ ッ シ ュ 1 1 2 が 4 ビ ッ 卜 の書き 込み幅を持つ R A Mを用いて実行さ れる場合、 バイ ト 書 き込みが支持 される時に各 2 デー タ R A M毎に 1 パ リ テ ィ 一 の R A Mが必要 と な る 。 こ れに対 して、 ワ ー ド書き 込みが支持さ れる時は、 各 8 デー タ R A M毎に 1 パ リ テ
ィ 一の R A Mが必要 と な る 。
上述 し たよ う に、 整数記憶操作によ り 整数デー タ がデ 一 夕 キ ャ ッ シ ュ 1 0 8 と グロ ー バノレキ ャ ッ シ ュ 1 1 2 の 両方に記憶さ れる よ う にな る。 更に上述のよ う に、 デー タ キ ャ ッ シ ュ 1 0 8 はバイ ト 書 き込みを支持 し、 グロ一 バルキ ヤ ッ シ ュ 1 1 2 は ヮ 一 ド書き込みを支持する 。
図 2 は グロ ルキ ャ ッ シ ュ 1 1 2 に対 して 1 ト の整数記憶操作が実行さ れる様子を図示 してい る。 図 2 においてデー タ キ ヤ ッ シ ュ 1 0 8 は複数の列か ら成る も の と して概念的に描かれてお り 、 各列が整列 し た 4 バ 卜 のデー タ ワ ー ドを含んでい る 。
1 バイ ト の整数記憶操作の操作中に、 1 バイ ト ( こ れ は整数記憶操作の 「書き込みデ タ」 を表す) がデー タ キ ャ ッ シ ュ 1 0 8 の 1 つの列に書き込ま れる。 更に、 こ の列の他の 3 バイ ト カ デー タ キ ヤ ッ シ ュ 1 0 8 か ら読み 込ま れ、 こ れ ら 3 バイ ト が整数記憶操作のバイ ト (つ ま り 、 書 き込みデー タ ) と適切に結合さ れて、 デー タ ヮ ー ドを形成する 。 こ の ヮ ー ドはそ の後グロ 一バルキヤ ッ シ ュ 1 1 2 に記憶される。
デー タ キ ヤ ッ シ ュ 1 0 8 及びグロ ーバルキ ヤ ッ シ ュ 1 1 2 へのデー タ記憶はパイ プラ イ ン化 される 。 デー タ キ ャ ッ シ ュ 1 0 8 及びグ.口 一 ノく ルキ ャ ッ シ ュ 1 1 2 に関連 する デー タ記憶パイ プラ イ ン (デー タ キ ヤ ッ シ ュパィ プ ラ イ ン は図 1 において 1 0 6 で示 され、 グロ ーバルキ ヤ ッ シ ュパイ ブラ イ ン は図 1 において 1 1 0 で示 さ れる )
は、 グロ ーバルキ ャ ッ シ ュ 1 1 2 に対する浮動小数点 ミ スが実現さ れる前に、 デー タ キ ヤ ッ シ ュ 1 0 8 に対する 整数記憶が実行される よ う にな っ てい る。 こ のよ う に、 デー タ キ ャ ッ シ ュ 1 0 8 に対す る記憶を実行 し た後、 ま たグロ ーバルキ ャ ッ シ ュ 1 1 2 に対する (浮動小数点 ミ スの実現を含む) 浮動小数点の記憶を完了す る前に、 整 数記憶命令を 「取り 消 し」 する こ と はで き な い。
ス プ リ ッ ト レベルのキ ャ ッ シ ュ配列は、 更に、 「ス プ リ ッ ト レベルキ ヤ ッ シ ュ」 と題 し た米国特許出願におい て論 じ ら れて い る 。
再び図 1 に お いて、 コ ン ピ ュ ー タ 一 シス テム 1 0 1 は、 処理装置 1 1 4 の よ う なバス 1 2 6 に接続さ れる付加的 な処理装置を含む。 こ れ ら のバス 1 2 6 に接続される付 加的な処理装置 (処理装置 1 1 4 ) は、 スプ リ ツ ト レ ベルの キ ヤ ッ シ ュ配列を持 っ て いて も よ い し 、 あ る い は 他の タ イ プの キ ヤ ッ シ ュ配列 (かか る キ ヤ ッ シ ュ配列は 整数デー タ と 浮動小数点デー タ の両方を記憶で き な けれ ばな ら ない) であ っ て も よ い。 説明の ために、 処理装置 1 0 2 を第 1 の処理装置 1 0 2 と呼び、 処理装置 1 1 4 を第 2 の処理装置 1 1 4 と 呼ぶこ と も あ る。
コ ン ビ ュ 一 タ ー シ ス テム 1 0 1 はマ ルチプ ロ セ ッ サ一 デー タ の同期性を維持する 。 つ ま り 、 バス 1 2 6 に接続 される処理装置間に分配さ れ、 記憶さ れる整数及び浮動 小数点のデー タ の同期性は コ ン ビ ユ ー タ ー シ ス テム 1 0 1 によ っ て維持される。 コ ン ピ ュー タ 一 シ ス テム 1 0 1
は こ のデー タ 同期性を維持する た め に キ ヤ ッ シ ュ同期性 メ カ ニズム (図示せず) を含む。
キ ヤ ッ シ ュ同期性のための シ ス テム及び方法は公知で あ り 、 上記において引用 し た Computer Architecture A Quantitative Approach ( コ ン ピ ュ ー タ ー ァ ー キテ ク チ ヤ ー、 定量的アプロ ー チ) 等の、 多 く の一般に利用で き る文献に記載 さ れてい る。 かか る公知のキ ヤ ッ シ ュ同期 性技術は コ ン ビ ユ ー タ ー シ ス テ ム 1 0 1 のキ ヤ ッ シ ュ同 期性メ 力二ズム の多 く の局面を実行す る ため に使用する こ と がで き る 。
本発明者は コ ン ビ ユ ー タ ー シ ス テム 1 0 1 の特別な構 造上及び操作上の特徴、 特に上述のスブ リ ッ ト レベルキ ャ ッ シ ュ配列に起因する、 コ ン ピュー タ 一 シス テム 1 0 1 におけ る キ ヤ ッ シ ュ同期性に関連す る 問題を特定 し き た。 更に発明者は こ れ ら のキ ャ ッ シ ュ同期性に関連-す る問題に対す る解決策を発展さ せて き た。 こ れ ら のキ ヤ ッ シ ュ同期性に関連する 問題は今ま で特定さ れた こ と は な く 、 従っ て今ま で に解決 さ れて も い な い。
本発明者に よ り 特定さ れたキ ヤ ッ シ ュ同期性に関連す る問題、 及び本発明者が発展さ せた こ れ ら の問題に対す る解決法につ いて以下に詳細に論 じ る。
2 . 0 デー タ ロ ス の問題
コ ン ピ ュ ー タ 一 シ ス テ ム 1 0 1 の特別な構造上及び操 作上の特徴の結果と して、 1 つのプロ セ ッ サ一 によ り キ ャ ッ シ ュ に記憶されたデー タ が他のプロセ ッ サーの操作
によ り 破壊さ れる可能性があ る 。 特に、 こ のデー タ ロ ス の問題は コ ン ピ ュ ー タ ー シ ス テ ム 1 0 1 の次の特徴によ る も のであ る。 すなわち、 ( 1 ) スプ リ ッ ト レベルのキ ャ ッ シ ュ配列、 ( 2 ) デー タ キ ャ ッ シ ュ 1 0 8 と グ ロ一 バルキ ャ ッ シ ュ 1 1 2 の書き込み度合いの違い (つ ま り、 デー タ キ ヤ ッ シ ュ 1 0 8 はバイ ト書き込みを支持する一 方、 グロ 一バルキ ャ ッ シ ュ 1 1 2 は ワ ー ド書き込みを支 持する ) 、 ( 3 ) コ ン ピ ュ ー タ 一 シ ス テム 1 0 1 の マル チプロ セ ッ サ一の同期性要件、 及び ( 4 ) デー タ キ ヤ ッ シ ュ 1 0 8 に対する整数記憶がグロ一バルキ ャ ッ シ ュ 1 1 2 に対する 浮動点 ミ スの実現の前に実行さ れる と い う 図 3 は こ のデー タ ロ ス の問題が発生する シナ リ オを描 いてお り 、 第 1 の処理装覃 1 0 2 にお け る グロ ー ノ ルキ ャ ッ シ ュ 1 1 2 の選択された内容と 、 バス 1 2 6 に接続 さ れる (図 1 に示さ れてい ない) 別の処理装置のキ ヤ ッ シ ユカ 4 つ の異な る時間 t 0 、 t 1 、 t 2 、 t 3 ( こ れ らの時間は必ず し も お互い に等間隔でな く て も よ い) で 示 さ れてい る 。 こ の別の処理装置のキ ャ ッ シ ュはバイ ト 書き込みを支持する も の と する。
時間 t 0 において、 第 1 の処理装置 1 0 2 にあ る グロ 一ノ ルキ ャ ッ シ ュ 1 1 2 は ノ《 イ ト値 A 、 B 、 C 、 D を持 つ整列 し た 4 バイ ト ヮ ー ド 3 0 2 を記憶する 。 こ の ヮ 一 ドの独占的コ ビ一 (つま り 、 コ ン ピュ ー タ 一 システム 1 0 1 におけ る 唯一有効な コ ピー) が第 1 の処理装置 1 0
2 の グ ロ ーバルキ ャ ッ シ ュ 1 1 2 に入 っ てい る と仮定す る。 従 っ て、 こ の ワ ー ド 3 0 2 は図 3 に示 し た他の処理 装置のキ ヤ ッ シ ュ においては利用で き ない。
時間 0 と t 1 の間の任意の時に、 第 1 の処理装置 1 0 2 の機能単位 1 0 4 が、 第 1 の処理装置 1 0 2 の デー タ キ ャ ッ シ ュ 1 0 8 及びグ ロ ー バルキ ャ ッ シ ュ 1 1 2 に 記憶さ れたデー タ ワ ー ド 3 0 2 に対 して、 バイ ト " Y " を書き 込むよ う に整数記憶命令を発す る。 こ の整数記憶 命令の処理は第 1 のプロセ ッ サ一 1 0 2 のデー タ キ ヤ ッ シ ュ 1 0 8 力、 らバイ ト A、 C、 D を読み込ま せ、 整数記 憶命令に関連 してバイ ト " Y " と適切に結合 さ せる。
更に時間 t 0 と t 1 の間に、 他の処理装置内の機能単 位がバイ ト " X " をデー タ ワ ー ド 3 0 2 に書き込むよ う 記憶'命令を発する。 しか し な力 ら、. デ一 ダワ ー ド 3 0 2 は他の処理装置のキ ヤ ッ シ ュ において有効ではな く 、 独 占 さ れてい な いので、 キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジが他の 処理装置によ り 発せ られる 。 すなわち、 コ ン ピ ュー タ 一 シス テ ム 1 0 1 においては、 デー タ が独占的であ る場合 にのみキ ヤ ッ シ ュ の デー タ に書 き 込みがで き る 。
キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジの結果と して、 デ一 タ ワ ー ド 3 0 2 の独占的コ ピーが第 1 の処理装置 1 0 2 か ら他 の処理装置に伝え られる。 それで、 他の処理装置にお け る記憶命令が完了 し、 バイ ト " X " がデー タ ワ ー ド 3 0 2 のノ ィ 卜 の 1 つ に記憶さ れる 。 こ れ ら の動作は、 図 3 に示すよ う に 、 時間 t 1 ま で に完了する 。
時間 t 1 と t 2 の間の任意の時に、 結合さ れたバイ ト A、 Y、 C、 D が第 1 の処理装置 1 0 2 のデー タキ ヤ ッ シ ュ 1 0 8 に書き込ま れる用意が整う 。 しか し な力 ら、 デー タ ヮ ー ド 3 0 2 は第 1 の処理装置 1 0 2 のデ一 タ キ ャ ッ シ ュ 1 0 8 において有効ではな く 、 独占 さ れていな いので、 キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジが第 1 の処理装置 1 0 2 に よ り 発せ られる。 キ ャ ッ シ ュ ミ ス メ ッ セ ー ジ の結 果、 デー タ ワ ー ド 3 0 2 の独占的 コ ピーが他の処理装置 か ら第 1 の処理装置 1 0 2 へと伝え ら れる。 図 3 に示す よ う に、 こ れ ら の動作は時間 t 2 ま で に完了する。
時間 2 と t 3 の間の任意の時に、 第 1 の処理装置 1 0 2 に おいてペ ンデ ィ ン グに な っ てい る整数記憶命令が 完了 し、 ノ イ ト A、 Y、 C、 D がデー タ ワ ー ド 3 0 2 に 記憶さ れる。 他の処理装置によ り デー タ ヮ ー ド 3 0 2 に 書き込ま れたバイ ト " X " は、 第 1 の処理装置 1 0 2 の 操作に よ り 破壊さ れてい る こ と に注意すべき であ る 。 こ の よ う に、 コ ン ピ ュ ー タ ー シス テム 1 0 1 の特別な構造 上及び操作上の特徴の結果、 1 つのプロ セ ッ サ一 によ り キ ヤ ッ シ ュ に記憶さ れたデー タ は別のプロセ ッ サーの操 作によ り 破壊 される 。
コ ン ピ ュ ー タ 一 シス テム 1 0 1 の詳細かつ包括的な分 折の結果、 本発明者によ り デー タ ロ ス の問題が特定され、 理解さ れた。 デー タ ロ スの問題は特定するのが難 し く 、 ま してや組み合わ さ れて問題を作り 出す (上述の) 要素 の多重性及び複雑さ を考えれば、 理解 し解決する の はな
お さ ら 困難であ る。
3 . 0 本発明によ る デー タ ロ ス問題の解決
デー タ ロ ス の問題を解決する ために本発明者が開発 し た解決法につ いて以下に論 じ る 。
デー タ ロ ス の問題は、 デー タ ロ ス の問題を引 き起こ す か も しれないキ ヤ ッ シ ュ メ モ リ ー ア ク セス命令が最小単 位的に ( a t o m i c a 1 l y ) 実行 される こ と を確実 にする こ と に よ っ て解決さ れる 。 特に、 デー タ ロ ス問題 を引 き起こ すか も しれな いキ ヤ ッ シ ュ メ モ リ ー ア ク セス 命令が、 デー タ キ ャ ッ シ ュ 1 0 8 内の ( 3 バイ 卜 の) 読 み込みの開始か ら グ ロ ーバルキ ャ ッ シ ュ 1 1 2 内の ( 4 バイ ト の) 書 き込み完了に至る ま で最小単位的に実行さ れる。 換言すれば、 デー タ ロ ス の問題を引 き 起 こ す力、 も しれな いキ ヤ ッ シ ュ メ モ リ ー ア ク セス命令力 グロ 一バル キ ャ ッ シ ュ 1 1 2 のノ、' イ ブラ イ ン 1 1 0 に入 る点力、 ら 、 命令力 グロ ー バルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ンを出 る点ま で、 最小単位的に実行さ れる。 かかる命令の最小 単位的実行中は、 介入は許 さ れない。
当業者に公知の よ う に、 介入はプロ セ ッ サ一 Xのため に実行 され、 プロセ ッ サ一 Yのキ ヤ ッ シ ユカ、 ら デー タを 読み込むこ と を含み、 かかる デー タ はプロセ ッ サー の キ ヤ ッ シ ュを更新す る ために用い られる。 介入は コ ン ビ ユ ー タ ー シス テム にお け る キ ヤ ッ シ ュ間の同期性を維持 する ために必要であ る。
例えば、 図 3 に示 し たシナ リ オを考えてみ ょ う 。 上述
― i s ―
したよ う に、 時間 0 において、 第 1 の処理装置 1 0 2 内の グロ ーバルキ ャ ッ シ ュ 1 1 2 はノ《イ ト値 A、 B、 C、 D を持つ整列 し た 4 バイ ト ヮ 一 ド 3 0 2 の独占的コ ピー ( e c 1 u s i v e c o p y ) を言己憶する。 1 の 処理装置 1 0 2 において機能単位 1 0 4 の 1 つ によ り 時 間 t 0 と t 1 の間に発せ ら れる整数記憶命令は、 デー タ キ ャ ッ シ ュ 1 0 8 か らノ イ ト A、 C、 D の メ モ リ ー読み 込みを開始さ せる。
本発明によれば、 こ の時点で、 整数記憶命令は グロ一 バルキ ャ ッ シ ュ i 1 2 に対する介入が阻止さ れる最小単 位的実行部分に入っ てい る 。 従っ て、 他の処理装置は、 第 1 の処理装置 ' 1 0 2 においてペ ンディ ン グにな っ てい る整数記憶命令が完了する ま で (つま り 、 バイ A、 Y、 C、 D がグロ ーバルキ ャ ッ シ ュ 1 1 2 に記憶される まで) 、 デー タ ワ ー ド 3 0 2 を修正す る機会を持たない。
こ の第 1 の処理装置 1 0 2 に おいてペ ンデ ィ ン グに な つ てい る整数記憶命令が完了 し た後、 デー タ ワ ー ド 3 0 2 の独占的コ ピーが他の処理装置に伝え られる。 つ ま り、 ペ ンデ ィ ングにな っ てい る記憶命令が完了 し、 グロ一ノ ルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ンを出た後、 グロ ーバ ノレキ ヤ ッ シ ュ 1 1 2 に対する介入が許 さ れる。 その後、 デー タ ワ ー ド 3 0 2 がバイ ト A、 Y、 X、 D を含むよ う に、 バイ ト " X " がデー タ ワ ー ド 3 0 2 に書き込ま れる。
従っ て、 本発明の操作に よ り 、 1 つのプロセ ッ サー (つま り 、 図 3 の例において他のプロ セ ッ サー) に よ り
キ ヤ ッ シ ュ に記憶さ れたデー タ は、 別のプロ セ ッ サー (つ ま り 、 図 3 の例において第 1 の処理装置 1 0 2 ) の 操作に よ っ て破壊さ れない。
上述 し たよ う に、 本発明はデー タ ロ スの問題を引 き起 こ すか も しれな いキ ヤ ッ シ ュ メ モ リ 一 ア ク セス命令が最 小単位的に実行さ れる こ と を確実にする こ と によ っ て、 デー タ ロ スの問題を解決する。 こ れ ら の命令は、 上述 し たよ う に最小単位的に実行される よ う に強制 さ れる ので、 フ ォ ー ス ドア ト ミ ッ ク ( F A : forced atomic) 命令と 呼ばれ る。
デー タ ロ ス の問題の解決策の一部 と して、 発明者は F A命令を整数記憶命令 (つ ま り 、 整列 した ワ ー ドブロ ッ ク 以外の も のを記憶するデー タ キ ヤ ッ シ ュ 1 0 8 と グロ 一ノく ルキ ヤ ッ シ ュ 1 1 2 の両方にデー タ を記憶する こ と を求め る キ ヤ ッ シ ュ メ モ リ 一 ア ク セ ス命令) を含む も の と して特定 し た。 好ま し い態様では、 グロ ーバルキ ヤ ッ シ ュ 1 1 2 のデー タ記憶幅は 4 バイ ト であ り 、 F A命令 は整列 し た 4 バイ ト のブ口 ッ ク 以外の ものを記憶す る か、 あ る い は整列 し た 4 バイ 卜 の倍数以外の ものを記憶する 整数記憶命令であ る 。 かか る命令はデー タ キ ャ ッ シ ュ 1 0 8 におけ る記憶割当てを要求 し、 デー タ キ ャ ッ シ ュ 1 0 8 力 バイ ト を検索する ために ア ク セス し、 4 バイ 卜 の 記憶を グロ 一バルキ ャ ッ シ ュ 1 1 2 に書き込むこ と を要 求する 。
デー タ ロ ス の問題の こ の解決法につ いて以下によ り 詳
細 3冊 し る
4 . 0 デ ッ ド ロ ッ ク の問題
上述 したよ う に、 デー タ ロ ス の問題は F A命令を特定 し、 F A命令を最小単位的に実行する こ と に よ り.解決さ れる。 しか し なが ら 、 下記に述べる よ う に、 F A命令の 最小単位的実行は新 し い問題を生み出 し、 それは コ ン ビ ユ ー タ ー シス テム 1 0 1 にお け る処理装置のデ ッ ド ロ ッ ク の可能性を含んでい る。
デ ッ ドロ ッ ク の問題には 2 つの局面があ り 、 それ ら は ポテ ン シ ャ ノレ ミ ス命令に よ る デ ッ ドロ ッ ク と 、 フ ォ ース ドア ト ミ ッ ク 命令を実行す る時にデー タ の独占性に対す る要求によ る デ ッ ド ロ ッ ク であ る。 デ ッ ドロ ッ ク の問題 の.こ れ ら の局面につ いて、 以下に説明する。
4 . 1 ポテ ン シ ャ ノレ ミ ス命令によ る デ ッ ド ロ ッ ク
デ ッ ドロ ッ ク を生 じ さ せる F A命令の実行を含む シナ リ オ について、 図 1 に関連 して説明す る。
時間 t 0 に お い て 、 浮動書き 込み命令が第 1 の処理装 置 1 0 2 において開始さ れる と仮定す る。 同様に、 浮動 書き込み命令が第 2 の処理装置 1 1 4 に お い て も 開始さ れる と仮定する。 上述 し た よ う に、 浮動書き込み命令は デー タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 を迂回 して、 グロ ー ノ ルキ ャ ッ シ ュ 1 1 2 、 1 2 4 に直接進む。
時間 t 1 において、 ペ ンディ ン グにな っ てい る浮動書 き込み命令が第 1 の処理装置 1. 0 2 において完了 してお らず、 F A整数書き 込み命令が第 1 の処理装置 1 0 2 に
おいて開始さ れてい る と仮定す る。 第 1 の処理装置 1 0 2 にお け る F A整数書き込み命令の処理中に、 デー タ キ ャ ッ シ ュ 1 0 8 の読み込み操作が開始 されて、 適切な 3 バ イ ト を検索 し、 グロ ーバルキ ャ ッ シ ュ 1 1 2 に対 して 来るべき 4 バイ ト の書き込みを行う 。 こ の よ う に、 こ れ ら 3 バイ ト を含む (更に、 F A整数書 き込み命令の書き 込みデー タ を含む) 整列 し た 4 バイ ト ワ ー ドに関 して、 グロ ーバルキ ャ ッ シ ュ 1 1 2 におけ る介入が阻止 さ れる。
更に、 時間 t 1 において、 第 2 の処理装置 1 1 4 にお いてペ ンディ ン グにな っ てい る浮動書 き込み命令が完了 してお らず、 F A整数書き込み命令が第 2 の処理装置 1 1 4 において開 ½さ れてい る と仮定する。 第 2 の処理装 置 1 1 4 にお け る F A整数書き込み命令の処理中に、 デ 一 夕 キ ャ ッ シ ュ 1 2 0 の読み込み操作が開始 さ れて、 適 切な 3 バイ ト を検索 し、 グロ 一バルキ ヤ ッ シ ュ 1 2 4 に 対 して来るべ き 4 バイ 卜 の書き 込みを行 う 。 こ の よ う に、 こ れ ら 3 バイ ト を含む (更に、 F A整数書き 込み命令の 書き込みデー タ を含む) 整列 し た 4 バイ ト ワ ー ドに関 し て、 グロ ーバルキ ヤ ッ シ ュ 1 2 4 にお け る介入が阻止さ れる。
時間 t 2 に おいて、 第 1 の処理装置 1 0 2 においてべ ンディ ン グにな っ てい る浮動書き込み命令の ために、 キ ャ ッ シ ュ ミ スが実現 さ れる と仮定する 。 つま り 、 浮動書 き込み命令に よ り 修正さ れるべ きデー タ は第 1 の処理装 置 1 0 2 の グ ロ一ノ ルキ ヤ ッ シ ュ 1 1 2 において有効で
はな く 、 独占的ではない。 更に、 こ のデー タ は第 2 の処 理装置 1 1 4 の グ ロ一ノ ルキ ヤ ッ シ ュ 1 2 4 において有 効であ り 、 独占 さ れてい る と仮定する 。 こ の よ う に、 第 1 の処理装置 1 0 2 においてペ ンディ ン グにな っ てい る 浮動書 き込み命令を完了す る た めに、 第 2 の処理装置 1 1 4 の グロ 一ノく ルキ ヤ ッ シ ュ 1 2 4 におけ る介入が求め られる 。 しか し なが ら、 こ の介入は第 2 の処理装置 1 1 4 にお けるペ ンディ ン グ中の F A整数書き込み命令の最 小単位的実行のために阻止 さ れてい る 。
更に、 時間 2 において、 第 2 の処理装置 1 1 4 にお いてペ ンディ ン グにな っ てい る 浮動書 き込み命令の ため に、 キ ャ ッ シ ュ ミ ス が実現さ れる と仮定する 。 つま り 、 浮動書 き込み命令に よ り 修正さ れるべ き デー タ は第 2 の 処理装置 1 1 4 の グロ一ノく ルキ ヤ ッ シ ュ 1 2 4 にお いて 有効ではな く 、 独占的ではな い。 更に、 こ のデー タ は第 1 の処理装置 1 0 2 の グ ロ ー バルキ ヤ ッ シ ュ 1 1 2 にお いて有効で'あ り 、 独占 さ れてい る と仮定する 。 こ の よ う に、 第 2 の処理装置 1 1 4 においてペ ンディ ン グにな つ てい る 浮動書き込み命令を完了する ため に、 第 1 の処理 装置 1 0 2 の グロ ー ノくルヰ ャ ッ シ ュ 1 1 2 におけ る介入 が求め られる 。 しか し なが ら、 こ の介入は第 1 の処理装 置 1 0 2 にお け るペ ンディ ン グ中の F A整数書き込み命 令の最小単位的実行のために阻止されてい る。
こ の よ う に、 第 1 の処理装置 1 0 2 は封鎖 さ れ、 第 2 の処理装置 1 1 4 か らのデー タ に頼 り 、 第 2 の処理装置
1 1 4 は封鎖され、 第 1 の処理装置 1 0 2 か らのデー タ に頼る 。 しか しなが ら、 第 1 の処理装置 1 0 2 か ら のデ 一 夕 は第 1 の処理装置 1 0 2 の封鎖が解け る ま では利用 で き な い。 同様に、 第 2 の処理装置 1 1 4 か ら のデー タ は第 2 の処理装置 1 1 4 の封鎖が解け る ま では利用で き ない。 従っ て、 第 1 の処理装置 1 0 2 と第 2 の処理装置 1 1 4 と の間にはデ ッ ドロ ッ ク 状態が存在す る。
4 . 2 本発明によ るデ ッ ドロ ッ ク の問題 (ポテ ン シ ャ ル ミ ス命令) の解決法
こ のデ ッ ド ロ ッ ク の問題を解決する ために発明者達が 開発 し た解決法について説明す る。
発明者によ り 特定された よ う に、 こ のデ ッ ドロ ッ ク の 問題に関 して関係のあ るキ ヤ ッ シ ュ メ モ リ ー ア ク セス命 令には 2 つ の カ テゴ リ ーがあ る 。 第 1 の命令カ テゴ リ 一' はデー タ ロ ス の問題を じ る か も しれないキ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令を含む。 こ れ ら の命令は フ ォ ー ス ド ァ ト ミ ッ ク ( F A ) 命令と 呼ばれ、 上記において限定 し 説明 し た。
第 2 の命令カ テゴ リ 一 はデー タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 にお け る 記憶割当てを要求せず (つ ま り 、 デ一 タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 にデー タ を記憶せず) 、 直接グ 口 一ノくノレキ ャ ッ シ ュ 1 1 2 、 1 2 4 に ア ク セ スする キ ヤ ッ シ ュ メ モ リ ーア ク セス命令を含む。 こ れ ら はデ一 タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 に記憶割当てを求め る F A命令 と は異な る。
- 1 — グロ ノレキ ャ ッ シ ュ 1 1 2 1 2 4 のパイ ブラ イ ン において F A命令がグロ ーバルキヤ ッ シ ュ ミ スを発生さ せる こ と はで き な い ( し力、 し、 以下のセ ク シ ョ ン におげ る こ の話題に関する論議を参照の こ と ) 。 F A命令はデ — タ キ ャ ッ シ ュ 1 0 8 1 2 0 において記憶割当てを求 め る ので、 ま たデー タ キ ャ ッ シ ュ 1 0 8 1 2 0 が各々 グロ 一 ノレキ ャ ッ シ ュ 1 1 2 1 2 4 において記憶さ れ るデー タ の適切なサブセ ッ ト を記憶す る ので、 事実その 通 り であ る。
対照的に、 第 2 の命令カ テゴ リ 一の命令はデー タ キ ヤ ッ シ ュ 1 0 8 1 2 0 に記憶割当てを求めな いので、 グ ロ ーバルキ ャ ッ シ ュ ミ スを発生 させる こ とがで き る 。 従 つ て、 第 2 の命令カ テ ゴ リ ー の命令は ポテ ン シ ャ ノレ ミ ス ( P M ) 命令 と 呼ばれる o
実際には、 第 1 の命令カ テゴ リ ー も し く は第 2 の命令 カ テゴ リ 一 に属 さ な いキ ヤ ッ シ ュ メ モ リ 一 ア ク セス命令 を含む第 3 の命令カ テ ゴ リ 一があ る。 第 3 の命令カ テ ゴ リ ーの命令は第 1 の命令カ テゴ リ ー の命令 も し く は第 2 の命令カ テゴ リ 一の命令と 同グルー プにする こ とがで き る。 かかる グル一 ビ ン グは例えば、 性能を高め る ために 行われる。 第 3 の命令カ テ ゴ リ ー の命令ほデ ッ ド ロ ッ ク の問題の解決には関連 し な いので、 こ れ以上論 じ る こ と は しな い。
—旦 F A及び P M命令カ テゴ リ ーを特定する と、 発明 者はデ ッ ド ロ ッ ク の問題を完全に分析 し、 デ ッ ドロ ッ ク
の問題を解決する た めの手順を発明す る こ と がで き た。 特に、 発明者はデ ッ ドロ ッ ク の問題が、 ポテ ン シ ヤ ノレ ミ ス命令の後フ ォ ー ス ドア ト ミ ッ ク 命令が続 く 場合にの み 潜在的に発生する と 断定 し た。 よ り 詳細には、 処理装置 1 0 2 に関 して説明する と 、 発明者はデ ッ ド ロ ッ ク の問 題が、 P M命令が既にグロ一ノく ルキ ヤ ッ シ ュ 1 1 2 の ノ ィ プラ イ ン に あ る場合に、 F A命令力 グロ ー バルキ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る こ と が許さ れた場合に のみ潜在的に発生す る と断定 し た。
上述の シナ リ オ において、 例えば、 時間 0 において 開始さ れた浮動書き 込み命令が P M命令を表す。 時間 1 で開始された整数書き込み命令が F A命令を表す。
こ の よ う に、 本発明によれば、 デ ッ ドロ ッ ク の問題は、 P M命令がグロ一ノく ルキ ヤ ッ シ ュ 1 1 2 のパィ プラ イ ン に既に存在 し ない場合にのみ、 F A命令がグロ一バルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ と を許す こ と に よ っ て、 避—け る こ と がで き る。 P M命令がグ ロ一バルキ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン にま だ存在す る場合は、 F A命令を遅 ら せる 。
デ ッ ドロ ッ ク の問題 (つ ま り 、 部分的にポ テ ン シ ャ ル ミ ス命令によ る) に対する こ の解決法についてよ り 詳細 に説明する。
4 . 3 フ ォ ー ス ドア ト ミ ッ ク 命令を実行す る時に、 デ 一 夕 の独占性に対す る要求に起因する デ ッ ド ロ ッ ク
上記ではポ テ ン シ ヤ ノレ ミ ス命令の実行によ るデ ッ ドロ
ッ ク 問題につ いて説明 し たが、 以下には フ ォ ース ドア ト ミ ッ ク 命令を実行す る際にデー タ の独占性を要求す る こ と に起因する デ ッ ド ロ ッ ク の問題につ いて説明する 。 こ のデ ッ ド ロ ッ ク の問題は ポ テ ン シ ヤ ノレ ミ ス デ ッ ド ロ ッ ク の問題に類似 してい る。
上述 したよ う に、 処理装置 1 0 2 に関 して説明する と、 グロ ーバノレキ ャ ッ シ ュ 1 1 2 がデー タ の独占的コ ピーを 記憶 し てい る場合にのみ (つ ま り 、 グロ ーバルキ ヤ ッ シ ュ 1 1 2 がデー タ の有効な コ ピーを記憶 してい る場合に のみ) 、 グ ロ ー バルキ ャ ッ シ ュ 1 1 2 にデー タ を書 き込 むこ と がで き る。 浮動小数点書き込みがグ口 一バルキ ヤ ッ シ ュ 1 1 2 に対 して行われ、 問題のデー タ の独占的 コ ピ一がグロ ー ノ ルキ ヤ ッ シ ュ 1 1 2 に記憶さ れてい な い 場合、 キ ャ ッ シ ュ ミ ス · フ ィ ル操作 (つ ま り 介入) を実 行 し な ければな ら な い。
コ ン ピ ュ ー タ ー シ ス テム 1 0 1 にお いて、 第 1 の処理 装置 1 0 2 において行われる 1 バイ 卜 の F A整数書き込 み操作は、 デー タ キ ャ ッ シ ュ 1 0 8 と グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対する書き込みを行わせる。 本発明に よれ ば、 デー タ キ ャ ッ シ ュ 1 0 8 に対する書き込みに関連 し て、 問題のデー タ バイ ト (つ ま り 、 整数書き込み操作に よ り 修正さ れる デー タ キ ヤ ッ シ ュ 1 0 8 にお け るバイ ト) は、 デー タ キ ャ ッ シ ュ 1 0 8 において独占 さ れる キ ヤ ッ シ ュ ブロ ッ ク にあ る こ と 力 求め られる 。 そ う でな ければ、 整数書 き込み操作の処理を進行 さ せる こ とが許されな い。
キ ヤ ッ シ ュブ口 ッ ク 幅は本発明の範囲及び精神か ら逸脱 する こ と な く 、 他の値であ っ て も よ いが、 キ ャ ッ シ ュ ブ ロ ッ ク 幅は 1 2 8 ノく ィ ト であ る こ と が好ま し い。
発明者は、 (問題のデー タ バイ ト が含ま れる) 整列 し た 4 ノく ィ ト ワ ー ドの他の 3 バイ ト と共に、 問題のデー タ ノく ィ 卜 がデー タ キ ヤ ッ シ ュ 1 0 8 において独占 される キ ャ ッ シ ュ ブ口 ッ ク の中にあ る場合にのみ、 整数書き 込み 操作力 グロ 一ノく ルキ ャ ッ シ ュ 1 1 2 の ノ、。イ ブラ イ ン に入 る こ と が許さ れるべ き であ る と 断定 し た。 そ う でな けれ ばデ ッ ド ロ ッ ク が発生する か も しれな い。
こ れ ら の 4 バイ 卜 がデー タ キ ャ ッ シ ュ 1 0 8 において 独占 さ れな い場合に も、. 整数書 き込み操作がグロ ーバル キ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る こ と が許さ れる シナ リ オを考えてみょ う .0 こ の シナ リ オでは、 こ れ ら 4 ノく ィ ト が更に グロ ーバノレキ ャ ッ シ ュ 1 1 2 において も独 占 さ れな い と仮定する。 整数読み込み操作がグロ 一バル キ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ンの端に到達 し た時、 キ ャ ッ シ ュ ミ ス · フ ィ ノレ操作 (つ ま り 介入) が発生す る。
従っ て、 こ の シナ リ オでは、 F A命令はグロ ー ノ ノレキ ャ ッ シ ュ 1 1 2 において ミ スを発生さ せるので、 ポ テ ン シ ャ ル ミ ス命令の性質を含む。 そ の結果と して、 F A命 令は グロ ーバルキ ャ ッ シ ュ 1 1 2 に対する介入を阻止 し、 別の処理装置か ら の独占性に頼る こ と がで き る ので、 デ ッ ドロ ッ ク の可能性が存在する 。
4 . 4 本発明によ る デ ッ ド ロ ッ ク の問題 (デー タ 独占
性要件) に対する解決法
本発明によれば、 こ のデ ッ ド ロ ッ ク の問題はデー タ キ ャ ッ シ ュ 1 0 8 にお け る記憶に関 して独占的配置を求め る こ と によ り 解決さ れる。 特に、 問題の整列 し た 4 バイ ト ヮ ー ドが含ま れる キ ャ ッ シ ュ ブロ ッ ク が、 デー タ キ ヤ ッ シ ュ 1 0 8 において独占 さ れる場合にのみ、 F A整数 書き込み操作がデー タ キ ヤ ッ シ ュ 1 0 8 において実行さ れる。 そ う でな ければ、 キ ャ ッ シ ュ ミ ス · フ ィ ル操作が 発生す る。 こ のキ ャ ッ シ ュ ミ ス · フ ィ ル操作が発せ られ る時には、 F A整数書き込み命令は グ ロ ーバルキ ヤ ッ シ ュ 1 1 2 に対するノ、。イ ブラ イ ン の中に はない こ と 、 そ し て こ のキ ヤ ッ シ ュ ミ ス · フ ィ ル操作は最小単位的に行わ れない こ と に注目すべきであ る。 こ の よ う に して、 デ ヅ ドロ ッ ク の危険が回避さ れる。
デ ッ ド ロ ッ ク の問題 (つ ま り 独占性要件に起因する ) に対す る こ の解決法について以下に詳細に説明する 。 5 . 0 解決法及び解決法の実行のま と め
上述 し たよ う に、 コ ン ビ ュ 一 タ ー シ ス テム 1 0 1 の特 別な構造上及び操作上の特徴が、 多 く のキヤ ッ シ ュ同期 性に関連する 問題を引 き起 こ して き た。 発明者は こ れ ら の問題を特定 し、 こ れ ら の問題を除去する ための シ ステ ム及び方法を開発 し た。 本質的に、 本発明の シ ス テ ム及 び方法は、 以下の 3 つのルールを実行する こ と によ り 、 キ ャ ッ シ ュ メ モ リ ー ア ク セ ス命令の実行を制御する (説 明を簡潔にす る ため、 処理装置 1 0 2 に関 して こ れ ら の
ルールを説明する) 。
( 1 ) (デー タ ワ ー ドを修正する ために動作する ) F A命令がグロ ー バノレ キ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン に あ る場合、 F A命令が完了 してグロ ーバルキ ャ ッ シ ュ 1 1 2 の ノ、 °ィ プラ イ ン を出 る ま では、 デー タ ヮ 一 ドに関す る (つ ま り 、 デー タ ワ ー ドを参照する ) グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対す る介入を遅 ら せる。 あ る いは、 F A 命令がグロ ー ノ《ノレキ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン にあ る場合、 F A命令が完了 してグロ 一バルキ ヤ ッ シ.ュ 1 1 2 のパイ プラ イ ンを出 る ま では、 全グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対する介入を遅 らせ る。
( 2 ) P M命令がグロ 一ノ ルキ ャ ッ シ ュ 1 1 2 のノ ィ プラ イ ン にあ る場合、 F A命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ とが許 さ れな い。 かかる F A命令は遅延さ れる (つ ま り 、 それ ら は阻止さ れ、 後 の時藺に再度開始さ れる ) 。
( 3 ) F A 命令に関連す る整列 し た ワ ー ドがデー タ キ ャ ッ シ ュ 1 0 8 に お い て独占 さ れな い場合、 F A命令は グロ ー バノレキ ャ ッ シ ュ 1 1 2 に対するノ イ ブラ イ ン に入 る こ と が許さ れず、 非最小単位的キ ャ ッ シ ュ ミ ス · フ ィ ルが発生する。
ル ー ル ( 1 ) はデー タ ロ ス の問題を解決する。 ノレ ー ル ( 2 ) はデ ッ ド ロ ッ ク の問題 (ポテ ン シ ャ ノレ ミ ス ) を解 決する。 ノレー ル ( 3 ) はデ ッ ド ロ ッ ク の問題 (デー タ独 占性の要件) を解決する。
本発明は更に次の 4 番目 のルールを含む。 すなわ ち、 グローバルキ ャ ッ シ ュ 1 1 2 において介入がペ ンディ ン グにな っ てい る場合、 F A命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ とが許 さ れな い。 その代 わ り に、 F A命令はペ ンデ ィ ン グにな っ てい る介入の全 てが完了する ま で遅延される。
こ の 4 番目 のルー ルは上述 した問題を解決する た めに 使用す る のではない。 む し ろ、 こ の 4 番目のルールは性 能を向上さ せ る こ と を 目的 と す る も のであ る 。 4 番目 の ルールは介入が F A命令に よ っ て永久に阻止さ れる こ と はな く 、 その代わ り に処理 さ れる機会が与え られる こ と を保証する。
ルー ノレ ( 1 ) 、 ( 2 ) 、 ( 4 ) はグロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る各々 の命令に F A ビ ッ ト と P M ビ ッ ト を追加する こ と に よ り 実行する こ と が好ま し い。 命令がフ ォ ー ス ドア 卜 ミ ッ ク 命令であれば、 そ の F A ビ ッ ト を 1 に設定する こ と が好ま し く 、 そ う でな け れば 0 に設定する。 同様に、 命令がポ テ ン シ ャ ル ミ ス命 令であれば、 その P M ビ ッ ト を 1 に設定する こ と が好ま し く 、 そ う でな ければ 0 に設定する。
制御 システム 1 5 0 は命令がグロ一バルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る時にそれ ら を監視する こ とが 好ま し い (制御 シス テム 1 5 0 と処理装置 1 0 2 のエ レ メ ン ト 間の制御線は明瞭にする ために図示 していな い) 。 制御 シス テム 1 5 0 の操作につ いて図 4 に示 し たフ ロ ー
チ ヤ一 ト を参照 して説明す る。
制御 シス テム 1 5 0 がグ 口 一 《ノレキ ヤ ッ シ ュ ィ ブラ イ ン に 1 に設定された F A ビ ッ ト を伴 う 命令を検出すれ ば (ス テ ッ プ 4 0 4 で示す) 、 制御 システム 1 5 0 は グ ロ ーバルキ ヤ ッ シ ュ 1 1 2 の中の適切なデー タ (つ ま り、 注目 の整列 し た 4 ビ ッ ト ワ ー ド) に対する介入を阻止す る (ス テ ッ プ 4 0 6 で示す) 。 こ れで第 1 のルールが実 行される。
同様に、 制御 シス テム 1 5 0 がグロ一バルキ ャ ッ シ ュ 1 1 2 に対 して介入がペ ンディ ン グにな っ てい る と 判断 すれば (ステ ッ プ 4 1 2 で示す) 、 制御 シス テム 1 5 0 は F A命令がグ b—ノく ルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ と を防止する (ステ ッ プ 4 1 0 で示す) 。 制 御 シス テム 1 5 0 は介入の未決に関する知識を持っ た コ ン ピュ ー タ ー システム 1 0 1 の他の構成部材 と接触 して い る と 仮定す る。 こ れで第 4 の ルールが実行 さ れる 。
制御 システム 1 5 0 力《グ ロ ー バノレキ ヤ ッ シ ュパィ ブラ イ ン に 1 に設定された P M ビ ッ ト を伴 う 命令を検出すれ ば (ス テ ッ プ 4 0 8 で示す) 、 制御 システム 1 5 0 は F A命令がグロ ーバノレキヤ ッ シ ュパイ プラ イ ン に入る こ と を防止する (ステ ッ プ 4 1 0 で示す) 。 こ れで第 2 のル ールが実行さ れる。
ルー ノレ ( 3 ) はデー タ キ ャ ッ シ ュ 1 0 8 において各々 のキ ャ ッ シ ュ ブロ ッ ク (こ れは 1 2 8 バイ ト 幅であ る こ とが好ま し い) に W (書き 込み可能) ビ ッ ト を追加する
こ と に よ っ て実行す る こ と が好ま し い。 キ ャ ッ シ ュ プ ロ ッ ク がデー タ キ ャ ッ シ ュ 1 0 8 に独占 さ れて いれば、 デ 一 夕 キ ャ ッ シ ュ 1 0 8 の中のキ ャ ッ シ ュ ブロ ッ ク と 関連 す る W ビ ッ ト が 1 に設定 さ れる こ と が好ま し い。 そ う で な ければ 0 に設定す る 。 制御 シ ス テム 1 5 0 の更な る動 作につ いて、 図 5 に示 し た フ ロ ー チ ャ ー ト を参照 し て説 明す る 。
制御 シス テ ム 1 5 0 はデー タ キ ャ ッ シ ュ 1 0 8 におい て処理 さ れる 整数記憶命令 (つ ま り 、 デー タ キ ャ ッ シ ュ 1 0 8 のパイ プラ イ ン にお いて処理 さ れる 整数記憶命令) を監視す る 。 F A 命令 と 関連す る整列 し た 4 バイ ト ヮ 一 ドが、 デー タ キ ャ ッ シ ュ 1 0 8 にお-いて独占 さ れる キ ヤ ッ シ ュ ブロ ッ ク に あ る 場合 (キ ャ ッ シ ュ ブロ ッ ク と 関連 する W ビ ッ ト に よ り 示 さ れ る よ う に ; こ の テ ス ト は ス テ ッ プ 5 0 4 で表す) 、 F A 命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパ イ プラ イ ン に入 る こ と を許 さ れ、 こ こ で説明 す る制御 シース テム 1 5 0 の他の処理に賦 さ れ る ( こ れは ス テ ッ プ 5 1 0 で表す) 。
F A 命令 と 関連す る 整列 し た 4 バイ ト ヮ ー ドがデー タ キ ャ ッ シ ュ 1 0 8 に おいて独占 さ れな いキ ヤ ッ シ ュ ブ口 ッ ク の 中 にあ れば ( こ の テス ト はス テ ッ プ 5 0 4 で表す) F A 命令は グ ロ 一 ノレキ ャ ッ シ ュ 1 1 2 の 'ィ プラ イ ン に入 る こ と を許 さ れず (ス テ ッ プ 5 0 6 で表す) 、 キ ャ ッ シ ュ ミ ス · フ ィ ルメ ッ セー ジ力 グ ロ一バノレキ ヤ ッ シ ュ 1 1 2 に送 ら れる (ス テ ッ プ 5 0 8 で表す) 。
制御 システム 1 5 0 は上述 し たよ う に操作するハ ー ド ウ ェ アステー ト マ シ ン と して実装さ れる こ と が好ま し く、 特に上述 し た 4 ルー ルに従 っ て実装さ れる こ と が好ま し い。 あ る いは、 制御 システム 1 5 0 は ソ フ ト ウ ェ ア に従 つ て動作する プロ セ ッ サー と して実装さ れる 。
制御 システム 1 5 0 はデー タ キ ヤ ッ シ ュ 1 0 8 を含む 整数機能単位 ( I U ) の一部 と して、 (スプ リ ッ ト レべ ルの キ ャ ッ シ ュ配列を持つ) 処理装置の各々 に実装 さ れ る こ と が好ま し い。 あ る い は、 制御 シス テム 1 5 0 は機 能単位 1 0 4 の外部にあ る構成部材と して、 (スブ リ ツ ト レベルのキ ヤ ッ シ ュ配列を持つ) 処理装置の各々 に実 装される。 あ る いは、 制御 シス テム 1 5 0 はスプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含む コ ン ビュー タ ー シス テム 1 0 1 の処理装置の各々 に分散される 多重ス テー ト マ シ ン と して実装 さ れる 。
制御 シス テム 1 5 0 はハ ー ドウ エ ア開発者が開発で き る よ う にする適当な コ ン ノ、。イ ラ一シス テム と 、 ソ フ ト ゥ エ ア にお け る プロ ト タ イ ブハ ー ドウ ヱ ァ回路を使用 して 開発さ れる こ と が好ま し い 。 かかる コ ンパイ ラ ー シ ステ ム において、 ハー ド ウ ェ ア構成部材の機能性は翻訳言語 を使用 して表すこ と がで き る。 かかる コ ンパイ ラ ー シス テムは論理を立証す る ために使用で き 、 制御信号及び関 連する ラ ン ダム論理の タ イ ミ ン グと世代を限定する 際の 助け と な る。 かかる コ ンパイ ラ ーの 1 つは力 リ フ オ ノレニ ァ サ ン ホ セ の Cadence Design Systems , Inc. (こ よ る Ve
r i l ogコ ン ノヽ。ィ ラ 一であ る。
本発明の実施に関する詳細は本明細書にお け る説明に 基づけば、 当業者に と っ て 自 明であろ う 。
上記において本発明の様々 な態様を説明 して き たが、 それ ら は例と して挙げた も のであ り 制限的な も のではな い こ と を理解すべき であ る 。
こ の よ う に 、 本発明によれば、 デー タ ロ スやデ ッ ド口 ッ ク を惹起す る こ と な く 、 ス プ リ ツ ト レべノレのキ ヤ ッ シ ュ配列を もつ コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュの同期性に関す る 問題を解決する こ とがで き る。