JPH056308A - キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式 - Google Patents

キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式

Info

Publication number
JPH056308A
JPH056308A JP3276804A JP27680491A JPH056308A JP H056308 A JPH056308 A JP H056308A JP 3276804 A JP3276804 A JP 3276804A JP 27680491 A JP27680491 A JP 27680491A JP H056308 A JPH056308 A JP H056308A
Authority
JP
Japan
Prior art keywords
cache
memory
block
processor
updated
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.)
Granted
Application number
JP3276804A
Other languages
English (en)
Other versions
JP2641819B2 (ja
Inventor
Hitoshi Ishida
仁志 石田
Minoru Shiga
稔 志賀
Toyohito Hatashita
豊仁 畑下
Yuichi Tokunaga
雄一 徳永
Hiroyuki Fukuda
洋之 福田
Shunyo Minezaki
春洋 峯崎
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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
Priority to JP3276804A priority Critical patent/JP2641819B2/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to GB9123404A priority patent/GB2251103B/en
Priority to DE4143452A priority patent/DE4143452C2/de
Priority to DE4136729A priority patent/DE4136729C2/de
Priority to GB9412004A priority patent/GB2277821B/en
Publication of JPH056308A publication Critical patent/JPH056308A/ja
Priority to US08/355,093 priority patent/US5749091A/en
Application granted granted Critical
Publication of JP2641819B2 publication Critical patent/JP2641819B2/ja
Priority to US08/948,430 priority patent/US6070232A/en
Priority to US08/992,757 priority patent/US5829030A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Abstract

(57)【要約】 【目的】 高速にキャッシュ・フラッシュ動作を実行
し、リアルタイム性を備えたフォールト・トレラント・
コンピュータを得ることを目的とする。 【構成】 プロセサ・モジュール301はキャッシュ・
メモリを備え、キャッシュ・メモリ内の更新されたキャ
ッシュ・ブロックのエントリ・アドレスをスタックに記
憶し、タイマ等によるリカバリ・ポイント設定条件が満
たされた時に、スタック内のエントリ・アドレスに対し
てのみキャッシュ・フラッシュを行なう。メモリ・モジ
ュール303は同じ記憶物理空間で二重化され、転送さ
れたキャッシュ・ブロックを一時的に格納するバッファ
・メモリを備え、対になるバッファ・メモリへ同時にキ
ャッシュ・ブロックを転送する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、各プロセサがライト
・バック方式のキャッシュ・メモリを備えたマルチプロ
セサ型フォールト・トレラント・コンピュータ等に使用
されるキャッシュ・コントローラ並びにフォールト・ト
レラント・コンピュータ及びそのキャッシュ・フラッシ
ュ時のデータ転送方式に関するものである。
【0002】
【従来の技術】従来、この種の装置として、図15に示
されるようなものがあった。この図は、横田著:「32
ビット・マイクロプロセサのキャッシュが身近になる」
日経エレクトロニクス 1987.11.16 (no.434, pp.159-17
4)に示されたもので、図において、1はマイクロプロセ
サ、2はキャッシュ・コントローラ、3はキャッシュ・
メモリ、4はインタフェース回路、5はシステム・バ
ス、6は主記憶、7はアドレス線、8はデータ線、9は
制御線である。上記キャッシュ・コントローラ2は、タ
グ・メモリ21,比較器22,コントローラ23とバス
監視回路24から構成されている。
【0003】なお、マイクロプロセサ1,タグ・メモリ
21,比較器22,バス監視回路24,キャッシュ・メ
モリ3とインタフェース回路4は、アドレス線7により
接続され、マイクロプロセサ1,キャッシュ・メモリ3
とインタフェース回路4は、データ線8により接続さ
れ、マイクロプロセサ1,コントローラ23,バス監視
回路24,キャッシュ・メモリ3とインタフェース回路
4は、制御線9により接続されている。また、コントロ
ーラ23とタグ・メモリ21,コントローラ23とキャ
ッシュ・メモリ3は、制御線9a,9bにより接続され
ている。システム・バス5とバス監視回路24の間は、
インタフェース回路4を介さずに直接アドレス線7aと
制御線9cで接続されている。タグ・メモリ21と比較
器22,比較器22とコントローラ23,コントローラ
23とバス監視回路24の間は、アドレス線7b,7
c,7dで接続されている。
【0004】次に動作について説明する。マイクロプロ
セサ1は、主記憶6へのアクセス要求をタグ・メモリ2
1と比較器22に送る。タグ・メモリ21には、キャッ
シュ・メモリ3の中のデータのアドレスと、データの属
性(有効性,変更など)を示すビットがキャッシュ・ブ
ロック毎に保持されている。
【0005】マイクロプロセサ1から送られた要求がリ
ード要求の場合を図16を用いて説明する。最初に、要
求されているデータがキャッシュ・メモリ3内に存在す
るかどうか判定される(1601)。タグ・メモリ21
にマッチするアドレスがあれば、次にそのキャッシュ・
ブロックの有効ビットが調べられる(1608)。その
データを含むキャッシュ・ブロックの有効ビットがON
の場合、そのデータはキャッシュ・メモリ3から読み出
される(1607)。また、キャッシュ・ブロックの有
効ビットがOFFの場合、最新の値が同じキャッシュ・
ブロックに主記憶6又は他のモジュールから読み出され
る(1606)と共に、マイクロプロセサ1にデータが
送られる(1607)。一方、エントリがキャッシュ・
メモリ3内に存在しない場合、キャッシュ・メモリ3内
に空きブロックが有るか否か判定される(1602)。
空きブロックが有れば、そのブロックに要求されたデー
タを含むブロックが読み出される(1606)と共に、
マイクロプロセサ1にデータが送られる(1607)。
また、空きブロックが無ければ、置換ブロックが選択さ
れ(1603)、選択されたキャッシュ・ブロックの変
更ビットが調べられ(1604)、ONならばそのキャ
ッシュ・ブロックは主記憶6にライト・バックされる
(1605)。そして、ライト・バックされたキャッシ
ュ・ブロックに要求されたデータを含むブロックが読み
出される(1606)と共に、マイクロプロセサ1にデ
ータが送られる(1607)。なお、置換ブロックの変
更ビットがOFFであれば、そのブロックに要求された
データが主記憶6又は他のモジュールから読み出される
(1606)と共に、マイクロプロセサ1にデータが送
られる(1607)。
【0006】マイクロプロセサ1から送られた要求がラ
イト要求の場合を図17を用いて説明する。最初に、要
求されているデータがキャッシュ・メモリ3内に存在す
るかどうか判定される(1701)。タグ・メモリ21
にマッチするアドレスがあれば、次にそのキャッシュ・
ブロックの有効ビットが調べられる(1709)。その
データを含むキャッシュ・ブロックの有効ビットがON
の場合、そのキャッシュ・ブロックの変更ビットが調べ
られる(1710)。変更ビットもONならば、マイク
ロプロセサ1はそのキャッシュ・ブロックにデータを書
き込む(1708)。キャッシュ・ブロックの有効ビッ
トがONで、かつ変更ビットがOFFの場合、そのキャ
ッシュ・ブロックの変更ビットをONにする(170
7)と共に、キャッシュ・メモリ3内にデータが書き込
まれる(1708)。また、マッチしたキャッシュ・ブ
ロックの有効ビットがOFFの場合、最新の値が同じキ
ャッシュ・ブロックに主記憶6又は他のモジュールから
読み出され(1706)、変更ビットをONにした(1
707)後、データが書き込まれる(1708)。一
方、エントリがキャッシュ・メモリ3内に存在しない場
合、キャッシュ・メモリ3内に空きブロックが有るか否
か判定される(1702)。空きブロックが有れば、そ
のブロックに要求されたデータを含むブロックが読み出
され(1706)、変更ビットをONにした(170
7)後、書き込みが行なわれる(1708)。また、空
きブロックが無ければ、置換ブロックが選択され(17
03)、選択された置換ブロックの変更ビットが調べら
れ(1704)、ONならばそのブロックは主記憶6に
ライト・バックされる(1705)。そして、ライト・
バックされたブロックに要求されたデータを含むブロッ
クが読み出され(1706)、変更ビットをONにした
(1707)後、書き込みが行なわれる(1708)。
置換ブロックの変更ビットがOFFであれば、そのブロ
ックに要求されたデータが主記憶6又は他のモジュール
から読み出され(1706)、変更ビットをONにした
(1707)後、書き込みが行なわれる(1708)。
【0007】バス監視回路24は、内部にタグ・メモリ
21と整合性のとれたタグ・メモリを持っている。そし
て、システム・バス5上の他のマイクロプロセサの動作
を監視し、リード・ミス,ライト・ヒットやライト・ミ
ス動作によるバス・サイクルを検知すると、そのアドレ
スを内部のタグ・メモリと比較する。
【0008】リード・ミスの場合、タグ・メモリがアド
レスとマッチして、有効ビット,変更ビットが共にON
の時、キャッシュ・コントローラ2はそのキャッシュ・
ブロックを要求しているモジュールか主記憶6の一方又
は両方に提供し、変更ビットをOFFにする。変更ビッ
トがOFFの場合、動作しない。
【0009】ライト・ヒットの場合、タグ・メモリがア
ドレスとマッチすると、そのキャッシュ・ブロックの有
効ビットをOFFにする。
【0010】ライト・ミスの場合、タグ・メモリがアド
レスとマッチして、有効ビット,変更ビットが共にON
ならば、リード・ミス同様、データを提供し、その後そ
のブロックの有効ビットをOFFにする。有効ビットが
ONであれば、OFFにする。
【0011】以上の状況のうち、更新されたキャッシュ
・ブロックが置換される場合と、更新されたデータを他
のマイクロプロセサが参照する場合、リカバリ・ポイン
トが設定される。リカバリ・ポイントとは、マイクロプ
ロセサ1が処理の途中でエラーを生じた場合、処理を回
復する時にその点まで戻って処理を再開するためのもの
である。リカバリ・ポイントでコントローラ23は、タ
グ・メモリ21の全ての変更ビットを検索し、キャッシ
ュ・メモリ3内の全ての更新されたキャッシュ・ブロッ
クを主記憶6にライト・バックする(キャッシュ・フラ
ッシュと呼ぶ)。ライト・バックが完了すると、キャッ
シュ・ブロックの変更ビットはOFFされる。
【0012】一方、図18は、例えば米国特許US−4
819154公報に示された従来例のフォールト・トレ
ラント・コンピュータの構成図である。図において、1
801はユーザ/スーパーバイザ・プログラムの両方を
実行するプロセサを含む同一のプロセサ・モジュール、
1802は信頼性とスループットを向上させるために二
重化されたシステム・バス、1803はユーザ/スーパ
ーバイザのプログラム/データを記憶するメモリ・モジ
ュールである。
【0013】システム・バス1802は、システムの操
作には単一バスで十分であるが、バスにおける故障がシ
ステム全体の操作を停止させることを阻止して、システ
ム・スループットを向上させるように二重化されてい
る。図18においては、一本の線として示されている
が、システム・バス1802は実際には多くのデータ及
び信号線からなる多重ワイヤ・バスである。メモリ・モ
ジュールに記憶されるデータは、フォールト対策のため
に物理的に異なる2つのメモリ・モジュールへ同じもの
が記憶される。
【0014】図19は、プロセサ・モジュールの更に詳
細な構成図である。図において、1901は仮想アドレ
スを物理アドレスに変換するメモリ管理ユニット、19
02はユーザ/スーパーバイザ・プログラムを実行する
プロセサ、1903はローカル・アドレス・バス、19
04はローカル・データ・バス、1905はキャッシュ
・メモリからローカル・データ・バスへ送られるデータ
のパリティをチェックし、ローカル・データ・バスから
キャッシュ・メモリへ送られるデータに対してバイト・
パリティを生成するバス・アダプタ、1906はキャッ
シュ・アドレス・バス、1907は内部制御シーケン
サ、1908はライト・スルー方式でない(すなわちラ
イト・バック方式の)キャッシュ・メモリ、1909は
キャッシュ・データ・バス、1910はブロック状態メ
モリ(前記図15のタグ・メモリ21と同様なもの)、
1911は外部制御シーケンサ、1912はデータ・バ
ス、1913はシステム・バス・インタフェースであ
る。プロセサ・モジュールは、全て同一の構成を持ち、
全く同等に扱われる。
【0015】図20は、メモリ・モジュールの更に詳細
な構成図である。図において、2001はシステム・バ
ス・インタフェース、2002は内部アドレス・バス、
2003はエンコーダ/デコーダ、2004はメモリ・
モジュールをシーケンスするための制御信号や同期信号
を生成する制御シーケンサ、2005はアドレスをデコ
ードし、対応するメモリ・モジュールが反応すべきアド
レスを検出するアドレス検出/生成器、2006は行ア
ドレスと列アドレスやチップ選択信号を生成するRAM
タイミング/制御器、2007はRAMアレイである。
【0016】次に、動作について説明する。プロセサ1
902によるメモリ・アクセス要求は、内部制御シーケ
ンサ1907で処理される。内部制御シーケンサ190
7は、要求されたデータがキャッシュ・メモリ1908
内に存在するか否かを、ブロック状態メモリ1910を
参照して調べる。プロセサ1902の要求がリード要求
で、かつ要求されたデータがキャッシュ・メモリ190
8内に存在する場合、データはキャッシュ・メモリ19
08からプロセサ1902に即座に送られる。要求され
たデータがキャッシュ・メモリ1908内に存在しない
か、データが無効であった場合は、メモリ管理ユニット
1901でアドレス変換を行なった後、外部制御シーケ
ンサ1911とシステム・バス・インタフェース191
3を介してメモリ・モジュールにアドレスを転送する。
メモリ・モジュールは、要求されたデータを含むキャッ
シュ・ブロックを転送することによって応答する。送ら
れてきたキャッシュ・ブロックは、プロセサ1902に
送られると同時に、キャッシュ・メモリ1908に記憶
される。
【0017】プロセサ1902の要求がライト要求で、
かつ要求されたデータがキャッシュ・メモリ1908内
に存在する場合を考える。そのデータを含むキャッシュ
・ブロックが既に更新されている場合は、即座に書き込
みが行なわれる。他方、そのキャッシュ・ブロックがま
だ更新されていない場合は、ブロック状態メモリ191
0の中のキャッシュ・ブロック対応の更新されたことを
示すビットを変更した後、書き込みが行なわれる。次
に、要求されたデータがキャッシュ・メモリ1908内
に存在しないか、データが無効であった場合は、メモリ
管理ユニット1901でアドレス変換を行なった後、シ
ステム・バス・インタフェース1913を介してメモリ
・モジュールにアドレスを転送する。メモリ・モジュー
ルは、要求されたデータを含むブロックを転送すること
で応答する。送られてきたデータ・ブロックは、プロセ
サ1902に送られた後更新され、キャッシュ・メモリ
1908に書き込まれる。その時、ブロック状態メモリ
1910の変更も行なわれる。
【0018】従来装置では、ライト・スルー方式でない
(すなわちライト・バック方式の)キャッシュ・メモリ
1908を備えているため、キャッシュ・メモリ内のデ
ータとメモリ・モジュール内のデータが常に一致してい
るとは限らない。その上、故障発生時の回復手法とし
て、システムが正常に動作している時の状態をメモリ・
モジュール内に退避させ(リカバリ・ポイントと呼
ぶ)、故障が発生するとメモリ・モジュール内の最新の
リカバリ・ポイントから処理を再実行する方法を採用し
ている。そこでリカバリ・ポイントを設定する場合、ま
ずプロセサの内部レジスタ情報をキャッシュ・メモリへ
書き出し、キャッシュ・メモリとメモリ・モジュール間
のデータを一致させるために、キャッシュ・メモリ内の
ローカルに更新された全てのキャッシュ・ブロックをメ
モリ・モジュールに書き込む動作(キャッシュ・フラッ
シュと呼ぶ)が必要になる。従来装置では、コンテキス
ト・スイッチとキャッシュ・メモリ内でオーバーフロー
が生じた場合を検出して、キャッシュ・フラッシュ動作
を行なう。
【0019】キャッシュ・フラッシュ時の動作につい
て、図21を用いて説明する。キャッシュ・フラッシュ
が発生すると、プロセサ1902は内部制御シーケンサ
1908に対して、キャッシュ・フラッシュ動作を起動
する。内部制御シーケンサ1908は、ブロック状態メ
モリ1910のエントリ毎に、キャッシュ・ブロックが
更新されたか否かを示すビットをフェッチし(210
1)、内部制御シーケンサ1908内の比較器によって
調べる(2102)。変更ビットがONであれば、その
エントリに対応するデータ・ブロックをキャッシュ・メ
モリ1908からフェッチし(2103)、システム・
バス・インタフェース1913を介してメモリ・モジュ
ールに転送する(2104)。転送終了後、フラッシュ
・アドレスをインクリメントし(2105)、終了アド
レスと比較して(2106)、終了アドレスを越えなけ
れば処理2101に戻り、処理を繰り返す。キャッシュ
・ブロックの変更ビットがOFFであれば、フラッシュ
・アドレスをインクリメントし(2105)、終了アド
レスを越えなければ処理2101に戻り、処理を繰り返
す。
【0020】従来装置では、上記キャッシュ・フラッシ
ュ動作は、二重化されたメモリ・モジュールを単位とし
て行なわれる。メモリ・モジュールの一方に常に正しい
データが存在するように、キャッシュ・フラッシュ動作
を2回行なう。最初メモリ・モジュールの一方に対し
て、キャッシュ・フラッシュ動作を行なう。キャッシュ
・フラッシュ動作では、キャッシュ・ブロックはシステ
ム・バス・インタフェース2001やエンコーダ/デコ
ーダ2003を介してRAMアレイ2007に直接書き
込まれる。データ・ブロックは、システム・バス・イン
タフェース2001やエンコーダ/デコーダ2003に
おいて、パリティ・チェックや誤り検出/訂正処理を受
ける。1回目のキャッシュ・フラッシュが成功すると、
もう一方のメモリ・モジュールに対してキャッシュ・フ
ラッシュを行なう。2回のキャッシュ・フラッシュ動作
が正常に終了すると、プロセサ・モジュールはキャッシ
ュ・フラッシュ以前に行なっていた処理を再開する。
【0021】もし、最初のキャッシュ・フラッシュ動作
において故障が発生すると、もう一方のメモリ・モジュ
ール内に以前に退避された最新のリカバリ・ポイントか
ら処理を再実行する。故障が発生したメモリ・モジュー
ルは、もう一方のメモリ・モジュールの内容をコピーす
ることによって回復する。2回目のキャッシュ・フラッ
シュ動作の最中に故障が発生すると、最初のキャッシュ
・フラッシュによって更新されたメモリ・モジュール内
のデータを使って処理を実行する。2回目のキャッシュ
・フラッシュの最中に故障が発生した場合は、別のメモ
リ・モジュール上に記憶領域を再割り当てし、その領域
に内容をコピーすることによって回復する。
【0022】
【発明が解決しようとする課題】従来のキャッシュ・コ
ントローラは以上のように構成されているので、リカバ
リ・ポイントが設定されると、キャッシュ・メモリ内の
全ての更新されたキャッシュ・ブロックをライト・バッ
クするために、キャッシュのアドレス・タグを一通り検
索する必要があり、変更されたキャッシュ・ブロックを
全てライト・バックする処理,つまりキャッシュ・フラ
ッシュに多大の時間を要するという問題点があった。
【0023】同様に、従来のフォールト・トレラント・
コンピュータは以上のように構成されているので、キャ
ッシュ・フラッシュ動作が起動されると、キャッシュ・
メモリ内の全ての更新されたキャッシュ・ブロックをメ
モリ・モジュールへ転送するために、ブロック状態メモ
リのエントリを一通り検索して更新されたキャッシュ・
ブロックを探す必要があり、キャッシュ・フラッシュ動
作に多大の時間を要するという問題点があった。
【0024】また、従来装置では、リカバリ・ポイント
の設定間隔が不特定であるので、故障が検出されてから
回復処理を経て再実行されるまでに要する時間も特定で
きないためにリアルタイム性を保持できないという問題
点があった。
【0025】また、従来装置では、キャッシュ・フラッ
シュ動作時、キャッシュ・メモリから2つのメモリ・モ
ジュールへ転送するために2回のデータ転送を行なわな
ければならず、バス負荷が増大し、システム性能が犠牲
にされるという問題点があった。
【0026】また、従来装置では、キャッシュ・フラッ
シュ動作で更新された全てのキャッシュ・ブロックをメ
モリ・モジュールに転送するために、1キャッシュ・ブ
ロック毎の転送トランザクションを繰り返さなければな
らず、システム・バス負荷が増大し、システム性能が犠
牲にされるという問題点があった。
【0027】この発明は上記のような問題点を解決する
ためになされたもので、高速にキャッシュ・フラッシュ
を完了できるキャッシュ・コントローラを得ることを目
的とする。
【0028】また、高速にキャッシュ・フラッシュ動作
を実行し、リアルタイム性を備えたフォールト・トレラ
ント・コンピュータを得ることを目的としており、更に
該装置に用いられる,システム・バス負荷の小さいキャ
ッシュ・フラッシュ時のデータ転送方式を提供すること
を目的としている。
【0029】
【課題を解決するための手段】この発明に係るキャッシ
ュ・コントローラは、更新されたキャッシュ・ブロック
のエントリ・アドレスを記憶する記憶手段と、更新され
たキャッシュ・ブロックのエントリ・アドレスを上記記
憶手段に登録すると共に、キャッシュ・フラッシュ時に
は上記記憶手段を参照して登録されたエントリ・アドレ
スに対してキャッシュ・フラッシュ転送を行なう制御手
段とを有するものである。
【0030】同様に、この発明に係るフォールト・トレ
ラント・コンピュータのプロセサ・モジュールは、更新
されたキャッシュ・ブロックのエントリ・アドレスを記
憶する記憶手段と、更新されたキャッシュ・ブロックの
エントリ・アドレスを上記記憶手段に登録すると共に、
キャッシュ・フラッシュ時には上記記憶手段を参照して
登録された全てのエントリ・アドレスに対応したキャッ
シュ・ブロックをメモリ・モジュールへ転送する制御手
段とを有するものである。
【0031】また、リカバリ・ポイントを設定するため
に更新されたキャッシュ・ブロック数を数えるカウンタ
と経過時間を計るタイマとを有し、また、システム・バ
スを監視するバス監視回路を有するものである。
【0032】また、この発明に係るフォールト・トレラ
ント・コンピュータのメモリ・モジュールは、同じ記憶
物理空間に二重化されると共に、メモリ・モジュール毎
に備えられたバッファ・メモリと、対になったメモリ・
モジュール相互間で通信を行なう通信手段と、上記バッ
ファ・メモリと通信手段を制御する制御手段とを有する
ものである。
【0033】また、キャッシュ・フラッシュ動作を高速
に行なうために本発明のデータ転送方式では、全てのメ
モリ・モジュールへキャッシュ・フラッシュの受け入れ
準備を指示するキャッシュ・フラッシュ通知手段と、キ
ャッシュ・ブロック毎にアドレスとデータを転送し、全
ての更新されたキャッシュ・ブロックの転送を連続して
行なうキャッシュ・ブロック転送手段とを有し、更には
受信したキャッシュ・ブロックを最後に記憶したメモリ
・モジュールからプロセサ・モジュールへ応答を返す応
答手段を有するものである。
【0034】
【作用】この発明のキャッシュ・コントローラにおいて
は、更新されたキャッシュ・ブロックのエントリ・アド
レスを制御手段がスタック等の記憶手段に登録してお
き、更新されたキャッシュ・ブロックを全てライト・バ
ックするキャッシュ・フラッシュ時に、制御手段がライ
ト・バックすべきキャッシュ・ブロックのエントリ・ア
ドレスを上記記憶手段を参照することにより短時間で得
る。
【0035】同様に、上記のように構成されたフォール
ト・トレラント・コンピュータでは、プロセサの書き込
み時に書き込みが最初のキャッシュ・ブロックのエント
リ・アドレスを制御手段が記憶手段に記憶させて登録し
ておき、リカバリ・ポイントの設定に必要なキャッシュ
・フラッシュにおいて、制御手段が記憶手段に登録され
たエントリ・アドレスを読み出し、対応するキャッシュ
・ブロックをメモリ・モジュールに転送する。
【0036】また、キャッシュ・メモリの制御手段がキ
ャッシュ・メモリ内の各キャッシュ・ラインで更新され
ていないキャッシュ・ブロック数が予め決められた値に
達したことを検出するか、又はカウンタがキャッシュ・
メモリ内の更新されたキャッシュ・ブロックの総数が予
め決められた値に達したことを検出するか、更にはバス
監視回路がキャッシュ・メモリ内のローカルに更新され
たキャッシュ・ブロックをシステム・バスを介して他の
プロセサ・モジュールが参照したことを検出するか、或
はタイマが上記いずれの検出も一定時間以内に発生しな
かったことを検出した時にプロセサの割り込みを発生
し、プロセサがリカバリ・ポイントの設定を開始する。
【0037】一方、対になったメモリ・モジュールで
は、バッファ・メモリが受信されたキャッシュ・ブロッ
クを一時的に格納し、受信完了後、制御手段が通信手段
を用いて対のメモリ・モジュール間で同期のためのステ
ータスを確認しながら、バッファ・メモリからRAMア
レイへデータを書き込む。
【0038】また、プロセサからのキャッシュ・フラッ
シュの指示により、キャッシュ・フラッシュ通知手段が
キャッシュ・フラッシュ開始を全てのメモリ・モジュー
ルへ通知し、キャッシュ・ブロック転送手段がキャッシ
ュ・ブロックのアドレスとデータを転送し、これを全て
の更新されたキャッシュ・ブロックについて連続して行
なう。そして、応答手段は、最後にRAMアレイへデー
タを書き込んだメモリ・モジュールからの応答のみを有
効にする。
【0039】
【実施例】
実施例1.図1はこの発明によるキャッシュ・コントロ
ーラの一実施例を示すブロック構成図であり、1〜9と
21〜24までは図15に示した従来装置と同様なもの
である。図中、25はFIFO(First-In First-Out)
メモリで構成されたスタックであり、本願における記憶
手段に相当する。なお、このスタック25とコントロー
ラ23は制御線9dで接続されており、このコントロー
ラ23により本願における制御手段が実現されている。
また、マイクロプロセサ1,タグ・メモリ21,比較器
22,バス監視回路24,キャッシュ・メモリ3,イン
タフェース回路4とスタック25は、アドレス線7で接
続されている。
【0040】次に動作について説明する。マイクロプロ
セサ1のリード要求に対しては、従来装置と同様に動作
する(図16参照)。 マイクロプロセサ1から送られた要求がライト要求の場
合を図2を用いて説明する。最初に、要求されているデ
ータがキャッシュ・メモリ3内に存在するかどうか判定
される(201)。タグ・メモリ21にマッチするアド
レスがあれば、次にそのキャッシュ・ブロックの有効ビ
ットが調べられる(210)。そのデータを含むキャッ
シュ・ブロックの有効ビットがONの場合、そのキャッ
シュ・ブロックの変更ビットが調べられる(211)。
変更ビットもONならば、マイクロプロセサ1はそのキ
ャッシュ・ブロックにデータを書き込む(209)。キ
ャッシュ・ブロックの有効ビットがONで、かつ変更ビ
ットがOFFの場合、そのキャッシュ・ブロックの変更
ビットをONにする(207)と共に、スタック25に
そのキャッシュ・ブロックのエントリ・アドレスを登録
し(208)、キャッシュ・メモリ3内にデータを書き
込む(209)。また、マッチしたキャッシュ・ブロッ
クの有効ビットがOFFの場合、最新の値が同じキャッ
シュ・ブロックに主記憶6又は他のモジュールから読み
出され(206)、変更ビットをONにし(207)、
スタック25にエントリ・アドレスを登録した(20
8)後、データが書き込まれる(209)。一方、エン
トリがキャッシュ・メモリ3内に存在しない場合、キャ
ッシュ・メモリ3内に空きブロックが有るか否か判定さ
れる(202)。空きブロックが有れば、そのブロック
に要求されたデータを含むブロックが読み出され(20
6)、変更ビットをONにし(207)、スタック25に
エントリを登録した(208)後、書き込みが行なわれ
る(209)。また、空きブロックが無ければ、置換ブ
ロックが選択され(203)、選択された置換ブロック
の変更ビットが調べられ(204)、ONならばそのブ
ロックは主記憶6にライト・バックされる(205)。
そして、ライト・バックされたブロックに要求されたデ
ータを含むブロックが読み出され(206)、変更ビッ
トをONにし(207)、スタック25にエントリ・ア
ドレスを登録した(208)後、書き込みが行なわれる
(209)。置換ブロックの変更ビットがOFFであれ
ば、そのブロックに要求されたデータが主記憶6又は他
のモジュールから読み出され(206)、変更ビットを
ONにし(207)、スタック25にエントリ・アドレ
スを登録した(208)後、書き込みが行なわれる(2
09)。
【0041】なお、処理201〜209は連続して起こ
るように述べたが、変更ビットをONにする(207)
と同時に、スタック25にエントリ・アドレスを登録
し、キャッシュ・ブロックへ書き込みを行なうように、
並列して処理されてもよい。バス監視回路24は、従来
装置と同様に動作する。
【0042】従来装置と同様に、更新されたキャッシュ
・ブロックが置換される場合と、更新されたデータを他
のマイクロプロセサが参照する場合、リカバリ・ポイン
トが設定される。リカバリ・ポイントでは、コントロー
ラ23はスタック25を参照し、スタック25内に登録
されたキャッシュ・ブロックのエントリ・アドレスだけ
に対してライト・バックが行なわれる。従って、このよ
うな場合に従来装置ではキャッシュのアドレス・タグを
一通り検索する必要があったが、本装置ではこれが不要
となりキャッシュ・フラッシュに要する時間が大幅に短
縮される。
【0043】なお、以上の実施例では、スタック25に
FIFOメモリを使用したが、スタティック・メモリで
構成してもよい。
【0044】実施例2.一方、図3は、この発明による
フォールト・トレラント・コンピュータの一実施例を示
す構成図である。図において、301はプロセサ・モジ
ュール、303はメモリ・モジュール、302は両者を
結合する二重化されたシステム・バスである。
【0045】プロセサ・モジュール301は、全体とし
てM個の現用系とN個の予備系からなるM対N(M,N
は1以上の整数)バックアップ構成をとる。予備系のプ
ロセサ・モジュールは、現用系のプロセサ・モジュール
に故障が発生した場合に中断した処理を引き継ぐ。各プ
ロセサ・モジュールは、現用系,予備系を問わず同じ構
成である。
【0046】システム・バス302は、システムの操作
には単一バスで十分であるが、バスにおける故障がシス
テム全体の操作を停止させることを阻止するために二重
化されている。図3においてシステム・バスは一本の線
として示されているが、実際はアドレス/データ・バス
と同期バスと制御バスで構成される。アドレス/データ
・バスはデータを格納すべきメモリ・アドレスを指定す
るためのアドレスと、そのアドレスに格納するデータを
転送するバスで、複数の信号線で構成される。同期バス
はアドレス,データ転送の同期をとるためにハンドシェ
ーク信号を転送するバスで、アドレス転送同期用のAS
*,AK*,AI**は負論理信号を示す)とデータ転送
同期用のDS*,DK*,DI*で構成される。制御バス
はアドレス,データと同期信号以外に必要な情報を転送
するためのバスで、キャッシュ・フラッシュのバス・ト
ランザクションを通知するCT*、メモリ・モジュール
のいずれかが他の処理を実行中で、要求トランザクショ
ンの処理が不可能なことを通知するBS*、1キャッシ
ュ・ブロック・データの最後のデータ転送を示すE
*、FIFOバッファからRAMアレイへのデータ転
送処理において、処理終了の応答を発するメモリ・モジ
ュールに処理中のもう一方のメモリ・モジュールが応答
の無効を要求するIR*で構成される。これらのバスと
プロセサ/メモリ・モジュールはバス・インタフェース
で接続されている。また、本実施例ではシステム・バス
は二重化されているが、二本のバスは同じ動作を行なう
ので、以下の説明では明瞭化のため一本のバスの動作を
示す。
【0047】メモリ・モジュール303は、全く同じ記
憶物理空間を持ったマスタ/スレーブに二重化されてい
て(図3において303aと303b,303cと30
3d)、物理的に異なる基板上に存在し、複数のプロセ
サ・モジュールにより共有されている。
【0048】図4は、プロセサ・モジュールの更に詳細
な構成図であり、1902,1908,1910,19
13は前記従来装置と同様なものである。図中、401
は例えばFIFO(First-In First-Out)メモリで構成
されたスタック(記憶手段)、402はキャッシュ・メ
モリ1908内の更新されたキャッシュ・ブロックの数
をカウントするカウンタ、403はキャッシュ・メモリ
のコントローラ(制御手段)、404はプロセサ190
2から要求されるデータのアドレスとブロック状態メモ
リ1910の中のアドレスを比較する比較器、405は
システム・バスで接続された他のプロセサ・モジュール
の動作を監視し、データの整合性を維持する上で行動が
必要な時を検知し、コントローラ403又はプロセサ1
902に知らせるバス監視回路、406はメモリ・モジ
ュールに送るアドレスとデータを複合するマルチプレク
サ、407は経過時間を計るタイマ、408,411〜
413は制御線、409はアドレス線、410はデータ
線である。
【0049】なお、プロセサ1902,キャッシュ・メ
モリ1908,マルチプレクサ406はデータ線410
で接続されている。また、プロセサ1902,キャッシ
ュ・メモリ1908,ブロック状態メモリ1910,マ
ルチプレクサ406,比較器404,スタック401は
アドレス線409により接続されている。また、プロセ
サ1902,コントローラ403,バス監視回路40
5,マルチプレクサ406は制御線408で接続され、
コントローラ403,スタック401,カウンタ402
は制御線411で接続され、キャッシュ・メモリ190
8,ブロック状態メモリ1910,コントローラ40
3,タイマ407は制御線412で接続され、プロセサ
1902とタイマ407は制御線413で接続されてい
る。
【0050】図5は、システム・バス・インタフェース
1913とシステム・バス302の間の信号状態を説明
するための回路図である。図において、システム・バス
上の信号503は負論理で、アサート(有効)は低レベ
ル、リリース(無効)は高レベルを示す。以下の記述で
は、モジュール上の信号を小文字の記号で、システム・
バス上の信号を大文字の記号で表わす。よって、モジュ
ールからの出力信号501はaで、これはNOT回路5
05の出力側502で負論理信号a*に、そしてシステ
ム・バス503上で信号A*になる。また、a*とA*
ワイヤードOR接続になっている。すなわち、システム
・バス503に接続されている全てのバス・インタフェ
ースの信号a*の中のどれか1つでもアサートされれば
*は低レベルとなり、全てのa*がリリースされなけれ
ばA*は高レベルにならない。
【0051】図6は、二重化されたメモリ・モジュール
303の更に詳細な構成図であり、2001と2007
は前記従来装置と同様のものである。図中、602はシ
ステム・バス302を介して送られてきたデータを一時
的に格納するFIFOバッファ(バッファ・メモリ)、
603はRAMアレイ2007のデータをシステム・バ
ス302上に駆動するドライバ、604は対になったメ
モリ・モジュール間で通信するための通信信号線(通信
手段)、601はRAMアレイ2007に対してのデー
タの読み出し/書き込みとバッファ・メモリをFIFO
メモリで構成したFIFOバッファ602及び通信信号
線604を制御する制御部(制御手段)である。対にな
ったメモリ・モジュールは、一方がマスタでもう一方が
スレーブである。マスタ/スレーブは、両方の制御部6
01により認識され、両方が正常な場合は、システム・
バス302への信号のアサート,リリース,データの転
送は、マスタが代表して行なう。データの格納は、両方
のメモリ・モジュールが行なう。
【0052】本実施例では、故障発生時の回復手法とし
て、従来装置同様、システムが正常に動作している時の
状態をある条件(後述する)が成立した時にメモリ・モ
ジュール内に退避させ(リカバリ・ポイントの設定)、
故障が発生するとメモリ・モジュール内の最新のリカバ
リ・ポイントから他のプロセサ・モジュールが処理を再
実行する方法を採用している。ここで、図4に示すスタ
ック401とリカバリ・ポイントの設定に関する動作を
説明する。プロセサ1902からのメモリ要求は、コン
トローラ403によって処理される。プロセサ1902
からのリード要求時の動作について、図7を用いて説明
する。コントローラ403は、まず要求されているデー
タがキャッシュ・メモリ1908に存在するかどうか判
定する(701)。ブロック状態メモリ1910に一致
するアドレスが存在し、そのキャッシュ・ブロックの有
効ビットがONであれば(706)、従来方式と同様に
処理され、要求されたデータは即座にプロセサ1902
に読み出される(705)。キャッシュ・ブロックの有
効ビットがOFFであれば、要求されたキャッシュ・ブ
ロックをシステム・バス・インタフェース1913経由
でメモリ・モジュール303から読み出し(704)、
キャッシュ・メモリ1908に書き込みながらプロセサ
1902に転送する(705)。キャッシュ・メモリ1
908に要求されたデータが存在しない場合、キャッシ
ュ・メモリ1908内に空きエントリが有るか否か判定
する(702)。空きエントリが存在すれば、上記処理
704へ移行する。空きエントリが存在しなければ、変
更ビットがOFFでキャッシュ・ラインの中で最も古く
に使われたキャッシュ・ブロックを選択し(703)、
上記処理704へ移行する。なお、キャッシュ・ライン
とは、主メモリ(ここではメモリ・モジュール)上のあ
るブロックを格納できるキャッシュ・ブロックの集まり
のことであり、主メモリとキャッシュ・メモリの対応付
けの例を示す図22のように、主メモリ上のブロックと
キャッシュ・ブロックは予め対応付けられている。
【0053】プロセサ1902からのライト要求時動作
について、図8を用いて説明する。コントローラ403
は、まず要求されているデータがキャッシュ・メモリ1
908に存在するかどうか判定する(801)。ブロッ
ク状態メモリ1910に一致するアドレスが存在する場
合、要求されたキャッシュ・ブロックの有効ビットを調
べ(811)、そのキャッシュ・ブロックの有効ビット
がONの場合、その変更ビットを調べる(812)。変
更ビットもONであれば、プロセサ1902からのデー
タを即座にそのキャッシュ・ブロックに書き込む(81
3)。有効ビットがONで、かつ変更ビットがOFFの
場合、変更ビットをONにし(805)、そのキャッシ
ュ・ブロックのエントリ・アドレスをスタック401に
登録し(806)、カウンタ402の値を1加算する
(807)と共に、そのキャッシュ・ブロックにデータ
を書き込む(808)。その後、キャッシュ・ラインの
中で更新されていないブロック数を調べ(809)、1
でなければカウンタ402の値と予め決められた値を比
較し(810)、不一致の場合、書き込み処理を終了す
る。処理809で更新されていないブロック数が1か、
又は処理810で一致する場合、図9に示すように、リ
カバリ・ポイントの設定を開始する。一方、要求された
キャッシュ・ブロックの有効ビットがOFFの場合、ア
ドレスに対応したキャッシュ・ブロックをメモリ・モジ
ュールから読み出し、処理805へ移行する。もし、プ
ロセサ1902が要求したデータがキャッシュ・メモリ
1908に存在しない場合、キャッシュ・メモリ190
8内に空きエントリが有るか否か判定される(80
2)。空きエントリが存在すれば、処理804へ移行す
る。空きエントリが存在しなければ、キャッシュ・ライ
ンの中で変更ビットがOFFで最も古くに使われたキャ
ッシュ・ブロックが選択され(803)、処理804へ
移行する。
【0054】本実施例によれば、上記のキャッシュ・ブ
ロックが更新された後にキャッシュ・ラインの中で変更
ビットがOFFのキャッシュ・ブロックが1になった
か、又はキャッシュ・メモリ内の更新されたキャッシュ
・ブロックの数が予め決められた値に達した場合にリカ
バリ・ポイントが設定される一方、これらの場合が一定
時間内に発生しなかった場合にも、タイマ407により
図9に示されるようにリカバリ・ポイントが設定され
る。
【0055】なお、上記実施例では、処理805〜80
8は連続して起こるように述べたが、並列に処理されて
もよい。また、上記実施例において、キャッシュ・メモ
リ内の更新されたキャッシュ・ブロックの数は、システ
ムで固定してもよいし、プログラミング可能にしてもよ
い。また、キャッシュ・ライン当たりの更新されていな
いキャッシュ・ブロック数を1にしたが、この限りでは
なく、リカバリ・ポイント設定時にプロセサ1902の
内部レジスタを出力するために更新されていないキャッ
シュ・ブロックが有ればよい。
【0056】また、上記実施例において、図4に示すよ
うにプロセサ・モジュール内にバス監視回路405を設
け、このバス監視回路405によってシステム・バス3
02からキャッシュ・メモリ1908内の更新されたキ
ャッシュ・ブロックが要求されたことを検知した場合、
図9に示すようにリカバリ・ポイントを設定してもよ
い。この場合、タイマ407によるリカバリ・ポイント
の設定条件に上記の場合に加え、バス監視回路405に
よるリカバリ・ポイントの設定が一定時間内に発生しな
かったことを加えてもよい。
【0057】ここで、リカバリ・ポイントを設定する動
作について、図9を用いて説明する。上記のように、リ
カバリ・ポイントの設定条件が満たされた時、コントロ
ーラ403か、又はタイマ407からプロセサ1902
に制御線408,413を介して割り込みが発生する。
プロセサ1902は割り込みを受け取ると、処理を中断
し、割り込みを受け取った時点での内部レジスタの内容
をキャッシュ・メモリ1908内の更新されていないキ
ャッシュ・ブロックに書き込む(901)。内部レジス
タの内容を書き込まれたキャッシュ・ブロックの変更ビ
ットをONにし(902)、スタック401にそのブロ
ックのエントリ・アドレスを登録する(903)。次
に、図10を用いてキャッシュ・フラッシュ動作(90
4)を説明する。コントローラ403は、作業用のカウ
ンタを備え、キャッシュ・フラッシュ動作起動時にこれ
をリセットする(1001)。次にスタック401に登
録されたキャッシュ・ブロックのエントリ・アドレスを
読み出し(1002)、そのアドレスに対するキャッシ
ュ・ブロックをキャッシュ・メモリ1908からフェッ
チし(1003)、システム・バス・インタフェース1
913を介して関係するメモリ・モジュールに転送する
(1004)。正常に転送されると、作業用カウンタの
値をインクリメントし(1005)、作業用カウンタと
カウンタ402の値が一致するか調べ(1006)、値
が一致するまで処理を繰り返す。キャッシュ・フラッシ
ュ動作が終わると、データが正常に送られたか否かを判
断する(905)。正常に終了した場合は、スタック4
01のエントリをクリアし(906)、変更ビットをO
FFにする(907)。その後、カウンタ402をリセ
ットし(908)、タイマ407をリセットする(90
9)。正常に終了しなかった場合については、1回再実
行し(910)、2回目はフォールトとなる(91
1)。
【0058】次に、メモリ・モジュール間の通信動作に
ついて説明する。図6において、プロセサ・モジュール
からシステム・バス302経由で信号が送られてきた場
合、マスタ303aとスレーブ303bは別々に信号を
受け取る。マスタ303a/スレーブ303bとも、信
号を正常に受信した場合、制御部601は通信信号線6
04を使って信号を相手に送る。マスタ303aは、両
方が正常に受信した場合、代表して行動する。スレーブ
303bは、両方が正常に受信した場合は、何もしな
い。マスタ303aから信号が送られてこない場合、故
障が発生したことをシステム・バス・インタフェース2
001経由でプロセサ・モジュールに知らせる。
【0059】ここで、FIFOバッファ602からRA
Mアレイ2007への書き込み動作について説明する。
キャッシュ・フラッシュ・トランザクションによって正
常にFIFOバッファ602にキャッシュ・ブロックを
受信した後、制御部601はFIFOバッファ602か
らキャッシュ・ブロックを読み出し、誤り訂正符号を生
成し、RAMアレイ2007へ書き込む。FIFOバッ
ファ602のデータが全てRAMアレイ2007に書き
込まれるまで処理を繰り返す。また、この動作はマスタ
/スレーブのメモリ・モジュール303a/303bで
それぞれ独立して行なわれる。二重化されたメモリ・モ
ジュールは、通信信号線604を使って、互いに終了を
知らせる。マスタは、両方のメモリ・モジュールが正常
に終了したことを確認すると、プロセサ・モジュールに
終了を知らせる。そして、FIFOバッファ602の内
容をクリアする。
【0060】マスタ/スレーブのメモリ・モジュール3
03a/303bは、システム・バス302から別々に
キャッシュ・ブロックを受け取り、システム・バス・イ
ンタフェース2001でパリティ・チェックを行なう。
正常に受信した場合、互いに通信信号線604を介して
信号を送る。マスタ303aとスレーブ303bが正常
に受信していれば、マスタ303aとスレーブ303b
の各システム・バス・インタフェース2001がシステ
ム・バスに応答を返す。マスタ303aとスレーブ30
3bの一方又は両方においてパリティ・エラーが発生し
た場合は、プロセサ・モジュールにエラー発生を知らせ
る。
【0061】また、FIFOバッファ602からRAM
アレイ2007への書き込みにおいて誤りが発生した場
合は、FIFOバッファ602からのキャッシュ・ブロ
ックの書き込みを再実行する。予め決められた回数繰り
返しても失敗する時は、固定故障と判断して、システム
から切り離す。マスタ303a/スレーブ303bは、
通信信号線604を使って相手の状態を知る。スレーブ
303bがシステムから切り離された場合、マスタ30
3aは通信を行なうことなく、一重系で動作する。マス
タ303aがシステムから切り離された場合、スレーブ
303bはマスタとなり、一重系で動作する。なお、本
実施例では、バッファ・メモリをFIFOメモリで構成
したが、スタティックRAMで構成してもよい。
【0062】次に、システム・バス302上での動作を
図11〜図14を用いて説明する。なお、以下の説明で
メモリ・モジュールによる信号のアサートやリリース
は、二重化されたメモリ・モジュールの間で通信された
後、マスタによって行なわれるものとする。また、図中
‘=0’は低レベル、‘=1’は高レベルを表わす。
【0063】システム・バス302の使用権を獲得した
プロセサ・モジュールは、キャッシュ・フラッシュ・ト
ランザクション信号ct*をアサートし(1101)、
キャッシュ・フラッシュ・トランザクションを通知す
る。そして、アドレス同期信号as*をアサートする
(1102)。システム・バス302上のAS*が低レ
ベルになるのを検出したメモリ・モジュールは、アドレ
ス同期信号ak*をアサートして(1103)受信を知
らせ、システム・バス上の情報を解読する。ここで、全
てのメモリ・モジュールはCT*が低レベルであること
からキャッシュ・フラッシュ・トランザクションである
ことを知り(1104)、データ同期信号di*をアサ
ートする(1105)。実行が不可能ならば(110
6)、ビジー信号bs*をアサートし(1107)、プ
ロセサ・モジュールに再実行を要求する。そして、全て
のメモリ・モジュールはアドレス同期信号ai*をリリ
ースし(1108)、トランザクションに参加/不参加
の決定が終了したことを知らせる。プロセサ・モジュー
ルはAI*が高レベルになるのを検出した後、BS*が高
レベルであるのを確認し(1109)、転送サイクルに
入る。もしBS*が低レベルなら、処理を終了し、時間
を置いてから再実行する。
【0064】続いてキャッシュ・ブロック転送(図1
2)を開始する。プロセサ・モジュールは、アドレス/
データバスad[]*にメモリへ転送すべき更新された
キャッシュ・ブロックのアドレスを出力し(120
1)、データ同期信号ds*をアサートする(120
2)。DS*が低レベルになるのを検出したメモリ・モ
ジュールは、データ同期信号dk*をアサートし(12
03)、di*をリリースする(1204)。ここで、
メモリ・モジュールはアドレスを解読し、そのキャッシ
ュ・ブロックを格納すべき空間を持っているメモリ・モ
ジュールはデータ同期信号di*をアサートする(12
07,1208)。そして、全てのメモリ・モジュール
はデータ同期信号dk*をリリースし(1209)、ア
ドレスに対する転送の許可/禁止の決定が終了したこと
を知らせる。プロセサ・モジュールはDI*が高レベル
になった時点でデータ同期信号ds*とブロック終了信
号eb*をリリースする(1205,1206)。
【0065】トランザクションはキャッシュ・ブロック
のデータ転送に入る。プロセサ・モジュールは、DK*
が高レベルになるのを検出してアドレス/データ・バス
ad[]*にキャッシュ・ブロック・データを出力し
(1210)、データ同期信号ds*を反転させる(1
211)。アドレスに答えたメモリ・モジュールは、デ
ータ同期信号dk*をアサートして(1212)受信を
知らせ、キャッシュ・ブロック・データをFIFOバッ
ファ602に書き込み、データ同期信号di*をリリー
スする(1213)。プロセサ・モジュールは、DI*
が高レベルになるのを検出して次のキャッシュ・ブロッ
ク・データを出力し(1214)、ds*を反転させる
(1217)。アドレスに答えたメモリ・モジュール
は、データ同期信号di*をアサートして(1218)
受信を知らせ、キャッシュ・ブロック・データをFIF
Oバッファ602に書き込み、データ同期信号dk*
リリースする(1219)。以上のキャッシュ・ブロッ
ク転送を、キャッシュ・ブロック・データを全て転送す
るまで繰り返す(1222)。
【0066】プロセサ・モジュールは、キャッシュ・ブ
ロックの最後のデータを転送する時に(1215)、ブ
ロック終了信号eb*をアサートする(1216)。キ
ャッシュ・ブロックの最後のデータの転送後、プロセサ
・モジュールは次のキャッシュ・ブロックのアドレスを
アドレス/データ・バスad[]*へ出力し(120
1)、データ同期信号ds*をアサートする(120
2)。DS*とEB*が低レベルになるのを検出したメモ
リ・モジュールは、データ同期信号dk*をアサートし
(1203)、di*をリリースする(1204)。メ
モリ・モジュールはアドレスを解読し、メモリ・モジュ
ールが受け入れを許可し、キャッシュ・ブロック転送を
繰り返す。全ての更新されたキャッシュ・ブロックの転
送が終了した後、プロセサ・モジュールはアドレス同期
信号as*をリリースし(1221)、バスを解放す
る。プロセサ・モジュールは、メモリ・モジュール内で
処理されるFIFOバッファ602からRAMアレイ2
007への転送が終了するのを待ち、トランザクション
を終了する。
【0067】もしメモリ・モジュールがFIFOバッフ
ァ602からRAMアレイ2007への転送に時間がか
かり、プロセサ・モジュールへの応答が遅れる場合、分
散応答を選択する。この場合、プロセサ・モジュールは
メモリ・モジュールからの応答を待たずにトランザクシ
ョンを終了する。メモリ・モジュールは転送処理が終了
した時、システム・バス302を使用してプロセサ・モ
ジュールをアクセスし、終了応答を返す。図14におい
て、メモリ・モジュールの一方が先に処理を終了し、も
う一方のメモリ・モジュールが処理を終了していない場
合、終了していないメモリ・モジュールは処理を終了し
たメモリ・モジュールのプロセサ・モジュールへのアク
セス(終了信号)を検出して(1401)、応答無効要
求ir*をアサートする(1403)。処理を終了した
メモリ・モジュールはir*が低レベルであるのを検出
して、応答処理を中止する(1404)。後に終了した
メモリ・モジュールのプロセサ・モジュールへのアクセ
ス(1406)は有効となり、プロセサ・モジュールが
その応答を受け取ることで(1409)、キャッシュ・
フラッシュ処理は終了する。
【0068】ここで、上記キャッシュ・フラッシュ時の
データ転送方式におけるキャッシュ・フラッシュ通知手
段,キャッシュ・ブロック転送手段及び応答手段は、プ
ロセサ・モジュール内のプロセサ1902やコントロー
ラ403とメモリ・モジュール内の制御部601等によ
り実現されている。
【0069】
【発明の効果】本発明では、以上説明したように構成さ
れているので、以下に記載されるような効果を奏する。
【0070】この発明のキャッシュ・コントローラによ
れば、更新されたキャッシュ・ブロックのエントリ・ア
ドレスを記憶する記憶手段と、更新されたキャッシュ・
ブロックのエントリ・アドレスを上記記憶手段に登録す
ると共に、キャッシュ・フラッシュ時には上記記憶手段
を参照して登録されたエントリ・アドレスに対してキャ
ッシュ・フラッシュ転送を行なう制御手段によって、キ
ャッシュ・フラッシュに要する時間が短縮され、高信頼
性を維持しながら高速に処理を行なうことができる。
【0071】同様に、この発明のフォールト・トレラン
ト・コンピュータでは、上記と同様な記憶手段と制御手
段によって、高速にキャッシュ・フラッシュ動作を行な
うことができる。
【0072】また、更新されたキャッシュ・ブロック数
を数えるカウンタと経過時間を計るタイマ、更にはシス
テム・バスを監視するバス監視回路によって、キャッシ
ュ・メモリ内の各キャッシュ・ラインで更新されていな
いキャッシュ・ブロック数が予め決められた値に達した
時、又はキャッシュ・メモリ内の更新されたキャッシュ
・ブロックの総数が予め決められた値に達した時、更に
はキャッシュ・メモリ内の更新されたキャッシュ・ブロ
ックをシステム・バスを介して他のプロセサ・モジュー
ルが参照した時、或は上記のいずれのイベントも一定時
間以内に発生しなかった時にリカバリ・ポイントを設定
するので、リカバリ・ポイントの最大間隔を保証するこ
とができ、リアルタイム性が得られる。
【0073】また、メモリ・モジュール毎に備えられた
バッファ・メモリと、同一の記憶物理空間でのメモリ・
モジュールの二重化によって、キャッシュ・フラッシュ
動作によるキャッシュ・フラッシュ・トランザクション
を1回で済ませることができ、リカバリ・ポイント設定
に要する時間を短縮することができる。
【0074】また、キャッシュ・フラッシュ動作を行な
うプロセサ・モジュールがキャッシュ・フラッシュ・ト
ランザクションを指定し、それを受けて関係する全ての
メモリ・モジュールがキャッシュ・フラッシュの受け入
れ準備を行なうキャッシュ・フラッシュ通知手段と、キ
ャッシュ・ブロックのアドレス転送でキャッシュ・ブロ
ックを格納するメモリ・モジュールを選択し、それに対
してキャッシュ・ブロックのデータ転送を行なうことで
なされるキャッシュ・ブロックの転送サイクルを連続し
て行なうキャッシュ・ブロック転送手段により、1回の
バス・トランザクションでキャッシュ・フラッシュを実
行できるので、リカバリ・ポイント設定に要する時間を
短縮することができる。また、キャッシュ・ブロック転
送手段においてキャッシュ・ブロックをバッファ・メモ
リへ転送し、トランザクションの終了後、メモリ・モジ
ュールがバッファ・メモリからRAMアレイへのデータ
転送を行ない、処理完了後に再びバスを獲得し、プロセ
サ・モジュールへ応答を返す応答手段により、システム
・バスを空けることができ、システム・バスを効率良く
利用することができる。
【図面の簡単な説明】
【図1】この発明によるキャッシュ・コントローラの一
実施例を示す構成図である。
【図2】図1の実施例におけるライト時の動作を示すフ
ローチャートである。
【図3】この発明によるフォールト・トレラント・コン
ピュータの一実施例を示す構成図である。
【図4】図3におけるプロセサ・モジュールの詳細な構
成図である。
【図5】図3におけるシステム・バス・インタフェース
とシステム・バスの間の信号状態を説明する回路図であ
る。
【図6】図3における二重化されたメモリ・モジュール
の詳細な構成図である。
【図7】図4の実施例におけるプロセサからのリード要
求時の動作を示すフローチャートである。
【図8】図4の実施例におけるプロセサからのライト要
求時の動作を示すフローチャートである。
【図9】図4の実施例におけるリカバリ・ポイントの設
定時の動作を示すフローチャートである。
【図10】図4の実施例におけるキャッシュ・フラッシ
ュ動作を示すフローチャートである。
【図11】図3の実施例におけるキャッシュ・フラッシ
ュ通知時の信号の流れを示す図である。
【図12】図3の実施例におけるキャッシュ・ブロック
転送時の信号の流れを示す図である。
【図13】図3の実施例における信号のタイミングを示
す図である。
【図14】図3の実施例における分散応答の動作を示す
図である。
【図15】従来のキャッシュ・コントローラを示す構成
図である。
【図16】図15の従来例におけるリード時の動作を示
すフローチャートである。
【図17】図15の従来例におけるライト時の動作を示
すフローチャートである。
【図18】従来のフォールト・トレラント・コンピュー
タを示す構成図である。
【図19】図18の従来例におけるプロセサ・モジュー
ルの更に詳細な構成図である。
【図20】図18の従来例におけるメモリ・モジュール
の更に詳細な構成図である。
【図21】図18の従来例におけるキャッシュ・フラッ
シュ動作を示すフローチャートである。
【図22】主メモリとキャッシュ・メモリの対応付けの
例を示す図である。
【符号の説明】
1 マイクロプロセサ 2 キャッシュ・コントローラ 3 キャッシュ・メモリ 4 インタフェース回路 5 システム・バス 6 主記憶 7,7a〜7d アドレス線 8 データ線 9,9a〜9d 制御線 21 タグ・メモリ 22 比較器 23 コントローラ(制御手段) 24 バス監視回路 25 スタック(記憶手段) 301a,301b プロセサ・モジュール 302a,302b システム・バス 303a〜303d メモリ・モジュール 401 スタック(記憶手段) 402 カウンタ 403 コントローラ(制御手段) 404 比較器 405 バス監視回路 406 マルチプレクサ 407 タイマ 408,411〜413 制御線 409 アドレス線 410 データ線 601 制御部(制御手段) 602 FIFOバッファ(バッファ・メモリ) 603 ドライバ 604 通信信号線(通信手段) 1902 プロセサ 1908 キャッシュ・メモリ 1910 ブロック状態メモリ 2007 RAMアレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 徳永 雄一 鎌倉市大船五丁目1番1号 三菱電機株式 会社情報電子研究所内 (72)発明者 福田 洋之 鎌倉市大船五丁目1番1号 三菱電機株式 会社情報電子研究所内 (72)発明者 峯崎 春洋 鎌倉市大船五丁目1番1号 三菱電機株式 会社情報電子研究所内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 ライト・バック方式のキャッシュ・メモ
    リを制御するキャッシュ・コントローラにおいて、更新
    されたキャッシュ・ブロックのエントリ・アドレスを記
    憶する記憶手段と、更新されたキャッシュ・ブロックの
    エントリ・アドレスを上記記憶手段に登録すると共に、
    キャッシュ・フラッシュ時には上記記憶手段を参照して
    登録されたエントリ・アドレスに対してキャッシュ・フ
    ラッシュ転送を行なう制御手段とを有することを特徴と
    するキャッシュ・コントローラ。
  2. 【請求項2】 複数のプロセサ・モジュールとメモリ・
    モジュールを備え、上記プロセサ・モジュールは、プロ
    セサと、ライト・バック方式のキャッシュ・メモリと、
    上記プロセサによって更新されたキャッシュ・ブロック
    のエントリ・アドレスを記憶する記憶手段と、更新され
    たキャッシュ・ブロックのエントリ・アドレスを上記記
    憶手段に登録すると共に、キャッシュ・フラッシュ時に
    は上記記憶手段を参照して登録されたエントリ・アドレ
    スに対応したキャッシュ・ブロックを上記メモリ・モジ
    ュールへ転送する制御手段とを有することを特徴とする
    フォールト・トレラント・コンピュータ。
  3. 【請求項3】 複数のプロセサ・モジュールとメモリ・
    モジュールを備え、上記プロセサ・モジュールは、プロ
    セサと、ライト・バック方式のキャッシュ・メモリと、
    上記キャッシュ・メモリを制御する制御手段と、更新さ
    れたキャッシュ・ブロック数を数えるカウンタと、経過
    時間を計るタイマとを有し、 (a)キャッシュ・メモリ内の各キャッシュ・ラインで
    更新されていないキャッシュ・ブロック数が予め決めら
    れた値に達した時 (b)キャッシュ・メモリ内の更新されたキャッシュ・
    ブロックの総数が予め決められた値に達した時 (c)上記(a),(b)のイベントが予め決められた
    時間内に発生しない時のいずれかの条件が成立した場
    合、プロセサはリカバリ・ポイントの設定を実行するこ
    とを特徴とするフォールト・トレラント・コンピュー
    タ。
  4. 【請求項4】 請求項第3項記載のフォールト・トレラ
    ント・コンピュータにおいて、プロセサ・モジュール
    は、システム・バスで接続された他のプロセサ・モジュ
    ールの動作を監視するバス監視回路を有し、キャッシュ
    メモリ内でローカルに更新されたキャッシュ・ブロック
    が他のプロセサ・モジュールによってアクセスされた
    時、又はこのイベントが予め決められた時間内に発生し
    ない場合、プロセサはリカバリ・ポイントの設定を実行
    することを特徴とするフォールト・トレラント・コンピ
    ュータ。
  5. 【請求項5】 複数のプロセサ・モジュールと記憶物理
    空間が同一の二重化されたメモリ・モジュールを備え、
    上記プロセサ・モジュールは、プロセサと、ライト・バ
    ック方式のキャッシュ・メモリと、上記キャッシュ・メ
    モリを制御する制御手段とを有し、上記メモリ・モジュ
    ールは、転送されたキャッシュ・ブロックを一時的に格
    納するバッファ・メモリと、対になったメモリ・モジュ
    ール間で通信を行なう通信手段と、上記バッファ・メモ
    リと通信手段を制御する制御手段とを有することを特徴
    とするフォールト・トレラント・コンピュータ。
  6. 【請求項6】 請求項第5項記載のフォールト・トレラ
    ント・コンピュータにおいて、全てのメモリ・モジュー
    ルにキャッシュ・フラッシュ転送を通知するキャッシュ
    ・フラッシュ通知手段と、キャッシュ・ブロック毎にア
    ドレスとデータを転送し、全ての更新されたキャッシュ
    ・ブロック転送を連続して行なうキャッシュ・ブロック
    転送手段とを有することを特徴とするフォールト・トレ
    ラント・コンピュータのデータ転送方式。
  7. 【請求項7】 請求項第6項記載のフォールト・トレラ
    ント・コンピュータのデータ転送方式において、キャッ
    シュ・ブロック転送手段が全ての更新されたキャッシュ
    ・ブロックをメモリ・モジュールに転送した後、受信し
    たキャッシュ・ブロックを最後に記憶したメモリ・モジ
    ュールからプロセサ・モジュールへ応答を返す応答手段
    を有することを特徴とするフォールト・トレラント・コ
    ンピュータのデータ転送方式。
JP3276804A 1990-11-05 1991-09-27 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式 Expired - Lifetime JP2641819B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP3276804A JP2641819B2 (ja) 1990-11-05 1991-09-27 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
DE4143452A DE4143452C2 (de) 1990-11-05 1991-11-05 Computer mit einer Mehrzahl von Prozessormodulen und einem Speichermodul
DE4136729A DE4136729C2 (de) 1990-11-05 1991-11-05 Cache-Steuereinrichtung
GB9412004A GB2277821B (en) 1990-11-05 1991-11-05 Fault tolerant computer and data transfer system therein
GB9123404A GB2251103B (en) 1990-11-05 1991-11-05 Cache controller,fault tolerant computer and data transfer system therein
US08/355,093 US5749091A (en) 1990-11-05 1994-12-13 Cache controller with index stack for coherency fault tolerance
US08/948,430 US6070232A (en) 1990-11-05 1997-10-10 Cache controller fault tolerant computer and data transfer system setting recovery points
US08/992,757 US5829030A (en) 1990-11-05 1997-12-17 System for performing cache flush transactions from interconnected processor modules to paired memory modules

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29948790 1990-11-05
JP2-299487 1990-11-05
JP3276804A JP2641819B2 (ja) 1990-11-05 1991-09-27 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式

Publications (2)

Publication Number Publication Date
JPH056308A true JPH056308A (ja) 1993-01-14
JP2641819B2 JP2641819B2 (ja) 1997-08-20

Family

ID=26552117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3276804A Expired - Lifetime JP2641819B2 (ja) 1990-11-05 1991-09-27 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式

Country Status (3)

Country Link
US (2) US5749091A (ja)
JP (1) JP2641819B2 (ja)
GB (1) GB2251103B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
KR100856626B1 (ko) * 2002-12-24 2008-09-03 엘지노텔 주식회사 캐시 플러시 시스템 및 방법
JP2014186521A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2016533555A (ja) * 2013-09-30 2016-10-27 ヴイエムウェア インコーポレイテッドVMware,Inc. 仮想環境内での不揮発性メモリ状態の一貫した効率的ミラーリング
US10140212B2 (en) 2013-09-30 2018-11-27 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments by remote mirroring memory addresses of nonvolatile memory to which cached lines of the nonvolatile memory have been flushed
US10223026B2 (en) 2013-09-30 2019-03-05 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
US6295581B1 (en) * 1998-02-20 2001-09-25 Ati Technologies, Inc. Method and apparatus for assuring cache coherency
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
EP1130516A1 (en) * 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Address mapping in solid state storage device
US6928521B1 (en) 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
GB2379294B (en) * 2001-08-31 2005-06-01 Discreet Logic Inc Caching data
JP4381655B2 (ja) * 2002-05-31 2009-12-09 株式会社日立製作所 ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7392347B2 (en) * 2003-05-10 2008-06-24 Hewlett-Packard Development Company, L.P. Systems and methods for buffering data between a coherency cache controller and memory
US7003706B2 (en) * 2003-05-27 2006-02-21 International Business Machines Corporation Method, system, and program for improved device blocking and suspension
US7509890B2 (en) * 2004-05-27 2009-03-31 International Engine Intellectual Property Company, Llc Non-homogeneous engine component formed by powder metallurgy
US8019937B2 (en) * 2004-07-21 2011-09-13 Infortrend Technology, Inc. Applying storage device commit-cached-data-to-media functionality to improve data security in systems that allow storage devices to cache writes
US9536221B2 (en) * 2008-06-19 2017-01-03 Plentyoffish Media Ulc System and method for adaptive matching of user profiles based on viewing and contact activity for social relationship services
US9537706B2 (en) 2012-08-20 2017-01-03 Plentyoffish Media Ulc Apparatus, method and article to facilitate matching of clients in a networked environment
US9679259B1 (en) 2013-01-25 2017-06-13 Plentyoffish Media Ulc Systems and methods for training and employing a machine learning system in evaluating entity pairs
US11568008B2 (en) 2013-03-13 2023-01-31 Plentyoffish Media Ulc Apparatus, method and article to identify discrepancies between clients and in response prompt clients in a networked environment
US9672289B1 (en) 2013-07-23 2017-06-06 Plentyoffish Media Ulc Apparatus, method and article to facilitate matching of clients in a networked environment
US9870465B1 (en) 2013-12-04 2018-01-16 Plentyoffish Media Ulc Apparatus, method and article to facilitate automatic detection and removal of fraudulent user information in a network environment
US10540607B1 (en) 2013-12-10 2020-01-21 Plentyoffish Media Ulc Apparatus, method and article to effect electronic message reply rate matching in a network environment
US10108968B1 (en) 2014-03-05 2018-10-23 Plentyoffish Media Ulc Apparatus, method and article to facilitate automatic detection and removal of fraudulent advertising accounts in a network environment
US10387795B1 (en) 2014-04-02 2019-08-20 Plentyoffish Media Inc. Systems and methods for training and employing a machine learning system in providing service level upgrade offers
US9836533B1 (en) 2014-04-07 2017-12-05 Plentyoffish Media Ulc Apparatus, method and article to effect user interest-based matching in a network environment
WO2016032784A1 (en) 2014-08-25 2016-03-03 Rambus Inc. Buffer circuit with adaptive repair capability
KR102131337B1 (ko) * 2014-10-20 2020-07-07 한국전자통신연구원 고장 제어 기능을 구비한 캐시 메모리
US11061751B2 (en) * 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US11080210B2 (en) 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62272339A (ja) * 1986-05-21 1987-11-26 Fujitsu Ltd メモリ制御方式
JPH01128156A (ja) * 1987-11-13 1989-05-19 Fujitsu Ltd マルチプロセッサシステムにおけるキャッシュ制御方式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
EP0128945B1 (en) * 1982-12-09 1991-01-30 Sequoia Systems, Inc. Memory backup system
US5038277A (en) * 1983-11-07 1991-08-06 Digital Equipment Corporation Adjustable buffer for data communications in a data processing system
EP0163096B1 (de) * 1984-04-26 1988-11-17 BBC Brown Boveri AG Einrichtung zur Rettung eines Rechnerzustandes
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
JP2514208B2 (ja) * 1987-07-15 1996-07-10 富士通株式会社 ホットスタンドバイメモリ−コピ−方式
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
US5233702A (en) * 1989-08-07 1993-08-03 International Business Machines Corporation Cache miss facility with stored sequences for data fetching
US5257370A (en) * 1989-08-29 1993-10-26 Microsoft Corporation Method and system for optimizing data caching in a disk-based computer system
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62272339A (ja) * 1986-05-21 1987-11-26 Fujitsu Ltd メモリ制御方式
JPH01128156A (ja) * 1987-11-13 1989-05-19 Fujitsu Ltd マルチプロセッサシステムにおけるキャッシュ制御方式

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
KR100856626B1 (ko) * 2002-12-24 2008-09-03 엘지노텔 주식회사 캐시 플러시 시스템 및 방법
JP2014186521A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2016533555A (ja) * 2013-09-30 2016-10-27 ヴイエムウェア インコーポレイテッドVMware,Inc. 仮想環境内での不揮発性メモリ状態の一貫した効率的ミラーリング
US10140212B2 (en) 2013-09-30 2018-11-27 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments by remote mirroring memory addresses of nonvolatile memory to which cached lines of the nonvolatile memory have been flushed
US10223026B2 (en) 2013-09-30 2019-03-05 Vmware, Inc. Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored

Also Published As

Publication number Publication date
GB2251103B (en) 1995-02-08
GB2251103A (en) 1992-06-24
GB9123404D0 (en) 1991-12-18
US6070232A (en) 2000-05-30
JP2641819B2 (ja) 1997-08-20
US5749091A (en) 1998-05-05

Similar Documents

Publication Publication Date Title
JP2641819B2 (ja) キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
US7055060B2 (en) On-die mechanism for high-reliability processor
US5317726A (en) Multiple-processor computer system with asynchronous execution of identical code streams
EP0828217B1 (en) Cache flush apparatus and computer system having the same
US5388242A (en) Multiprocessor system with each processor executing the same instruction sequence and hierarchical memory providing on demand page swapping
US5890003A (en) Interrupts between asynchronously operating CPUs in fault tolerant computer system
US7613948B2 (en) Cache coherency during resynchronization of self-correcting computer
US5327553A (en) Fault-tolerant computer system with /CONFIG filesystem
WO1995034860A1 (en) Main memory system and checkpointing protocol for fault-tolerant computer system
JPH07219913A (ja) マルチプロセッサシステムの制御方法及び装置
US7120836B1 (en) System and method for increasing cache hit detection performance
JPH0670779B2 (ja) フェッチ方法
US5016168A (en) Method for storing into non-exclusive cache lines in multiprocessor systems
US7194671B2 (en) Mechanism handling race conditions in FRC-enabled processors
CN111190774B (zh) 一种多核处理器可配置双模冗余结构
US5829030A (en) System for performing cache flush transactions from interconnected processor modules to paired memory modules
KR0153487B1 (ko) 장치간의 통신 수행 방법 및 통신 수행 시스템
JP3141948B2 (ja) 計算機システム
US6898675B1 (en) Data received before coherency window for a snoopy bus
GB2277821A (en) Processor module of a fault tolerant computer, and cache flush system therein
JPH0469747A (ja) 演算処理装置
JP2000181738A (ja) 二重化システム及びメモリ制御方法
JPH0916441A (ja) メモリダンプシステム
JPH10149307A (ja) チェックポイント処理方法及び記録媒体