JP3862777B2 - 二重化データ一致化方法および二重化制御装置 - Google Patents
二重化データ一致化方法および二重化制御装置 Download PDFInfo
- Publication number
- JP3862777B2 JP3862777B2 JP04734296A JP4734296A JP3862777B2 JP 3862777 B2 JP3862777 B2 JP 3862777B2 JP 04734296 A JP04734296 A JP 04734296A JP 4734296 A JP4734296 A JP 4734296A JP 3862777 B2 JP3862777 B2 JP 3862777B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- buffer
- data
- bus
- main memory
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
【発明の属する技術分野】
本発明は二重化制御装置に関し、特に常用系と待機系の二重化データの一致化方式に関する。
【0002】
【従来の技術】
常用系と待機系を備える二重化制御装置は、例えば、特開平2−277159号(以下、引用例1)に記載のように、I/Oコントローラが接続されるI/Oインタフェースバス上に情報転送用のFIFOバッファと他系への伝送制御部を持たせ、CPUから書き込みを行い、その書き込まれたアドレスとデータを他系に転送する方式が一般的である。
【0003】
また、特開平3−148737号(以下、引用例2)に記載のように、CPUとメモリを接続する装置に、CPUからメモリへのライトをスヌープする機能を持たせて他系へ転送させる方式、特開平4−116744号(以下、引用例3)に記載のように、補助記憶装置への書き込みデータをバッファリングするバス制御装置を設ける方式などがある。
【0004】
【発明が解決しようとする課題】
上記した従来の二重化制御構成方式には以下のような問題点がある。引用例1の方式では、CPUがFIFOバッファに書き込みを行う際に、バッファがオーバフローしないか確認しながら行っているため、CPU負荷が増大する。また、FIFOバッファがオーバフローしそうな時は、CPUが待たされるので実行効率が悪くなる。
【0005】
引用例2の方式では、CPUとメモリを接続する装置にスヌープ機能をもたせる事により、CPU負荷への影響は回避できる。しかし、メモリへのライト間隔時間が転送装置のスループットを越えないように、メモリライトのタイミングを考慮してアプリケーションプログラムを作成する必要があった。また、連続した書き込みが発生により転送用の多段バッファがオーバフローしないように、安全を見て必要以上にバッファ段数を多くしたり、転送装置のスループットを上げる必要があるため、コスト高となる。また、CPUとメモリを接続する装置として、スヌープ機能と転送機能を併せもつ専用装置が必要となり、この面からもコスト高となる。
【0006】
引用例3の制御方式では、一般には主記憶に対し低速な補助記憶となるため、CPUの書き込みは主記憶からの転送終了通知をもって処理完了としているが、バス制御装置の使用中フラグは補助記憶へのデータ格納が終了するまでクリアされず、この間は主記憶、補助記憶へのアクセスはできない。このため、CPUは使用中フラグのクリアを確認しながら、書き込み処理を行わなければならない。
【0007】
本発明の目的は、従来技術の問題点を克服し、アプリケーションプログラム作成でメモリコピーのタイミングを考慮する必要がなく、また、安上がりで実行効率の高い二重化データ一致化方法および二重化制御装置を提供することにある。
【0008】
【課題を解決するための手段】
本発明は、CPUとメモリを接続する装置は、三叉路接続を行うCPUブリッジなどの従来構成のままとし、I/Oインタフェースバス上にある他系への伝送制御部に、CPUからメモリへのライトをスヌープする機能を持たせることに着想してなされたものである。
【0009】
上記課題を達成する本発明の二重化データ一致化方法は、常用系の主メモリの所定領域に書き込まれるデータをリアルタイムに待機系に転送し、書き込み、常用系で故障が発生した場合に待機系に処理を切り換える二重化処理装置において、前記主メモリに書き込まれるデータをスヌープしてバッファにラッチしながら待機系に転送する際に、前記バッファ側でその保留データ量に応じてオーバーフローの回避制御を行なうことを特徴とする。
【0010】
前記回避制御は、前記保留データ量が所定の第1レベルに達したとき、待機系における二重化データの書き込みを優先処理させることを特徴とする。
【0011】
または、前記保留データ量が所定の第2レベルに達したとき、常用系主メモリの前記所定領域への書き込みを抑止処理することを特徴とする。
【0012】
あるいは、前記回避制御は、所定の第1レベルに達したとき待機系における二重化データの書き込みを優先処理させ、第1レベルより上の第2レベルに達したとき、常用系の主メモリへの書き込みを抑止する二段階制御を特徴とする。
【0013】
前記抑止処理には、前記バッファの空きが所定量を回復するまで、CPUやIOコントローラによる常用系主メモリの書き込みをウェイトさせること、または、前記バッファ側から主メモリへの空読みを行なわせること、あるいは、前者と後者を共用することを特徴とする。
【0014】
前記回避制御にもかかわらず、前記バッファのオーバーフローが発生した場合は、常用系のCPUが自系のバッファ側における処理を無効化するインタラプト処理を行なうことを特徴とする。
【0015】
上記一致化方法を適用する本発明の二重化制御装置は、CPU、主メモリ、IOコントローラ及びこれらの三叉路接続を行うCPUブリッジからなる二つの制御装置を系間バスで接続し、一方を常用系、他方を待機系としてIO制御を行ないながら、常用系の主メモリの所定領域(共有メモリ領域)に書き込まれるデータを待機系に転送し、書き込みして一致化処理し、常用系に故障が発生した場合に待機系に制御処理を切り換えるものにおいて、前記制御装置は、CPUブリッジと主メモリを接続する信号線から分岐したスヌープのための分岐信号線、常用系の場合に主メモリの前記所定領域に書き込まれるデータを前記分岐信号線を通じてラッチする多段バッファを含むバッファ制御手段と、常用系と待機系の間の送受信を行なう通信手段と、待機系の場合に受信した前記転送データをCPUブリッジと接続するIOインタフェースバスを介して自系の主メモリに書き込むインターフェース制御手段を有する二重化データ一致化装置を備えることを特徴とする。
【0016】
前記二重化データ一致化装置は、IOインタフェースバスのバスアクセス権を制御するアービタを有し、前記バッファ制御手段は、前記多段バッファのラッチ段数が所定段数に達したときにオーバーフローを予告するオーバーフロー予告機能を有し、常用系から前記予告を受けたときに、待機系のアービタは自系のインターフェース制御手段に対し、IOインタフェースバスのバスアクセス権を優先的に獲得させることを特徴とする。
【0017】
または、前記二重化データ一致化装置は、IOインタフェースバスのバスアクセス権を制御するアービタとCPUのアクセス要求または許可を抑止制御するアクセス制御手段を有し、前記バッファ制御手段は、前記多段バッファのラッチ段数が高レベルの所定段数に達したときに、オーバーフローを警告するオーバーフロー予告機能を有し、前記警告を受けたときに、常用計のアクセス制御手段は自系のCPUのアクセスを抑止制御し、常用系のアービタは自系のIOコントローラにバスアクセス権を許可しないことを特徴とする。
【0018】
前記制御装置におけるCPUとバスブリッジ間におけるバス要求または許可のための信号線にスイッチ手段を設け、前記アクセス制御手段によってオン/オフすることを特徴とする。
【0019】
前記高レベルのラッチ段数に達して警告を受けたときに、常用系のアービタは自系のインターフェース制御手段にIOインタフェースバスのバスアクセス権を優先的に獲得させ、該インターフェース制御手段から自系の主メモリに対する空読みを行なわせることを特徴とする。
【0020】
本発明によれば、IOインタフェースバスと接続する二重化データ一致化装置によって、常用系における主メモリへのデータ書き込みをスヌープして転送データを取得し、CPUの処理とは分離して待機系への転送やオーバーフロー回避処理を行なうので、CPU側で転送タイミングなどを考慮する必要が無く、アプリケーションプログラムの作成が容易になるとともに、CPUの実行効率が向上できる。
【0021】
また、バッファのオーバーフロー回避は、ラッチ段数が低レベル(例えば1/2)のしきい値に達したときは待機系での転送データ書き込みを優先処理させ、高レベル(例えば3/4)のしきい値に達したときは常用系の書き込みを抑止する2段階で行ない、早期の前段処理では常用系の制御動作に全く影響を与えずにラッチ量を低減し、それでも書き込み処理が連続してオーバーフローが必至となると確実にオーバーフローを防止する後段処理を実行するので、二重化データ一致化処理の連続性を維持し、信頼性の高い二重化制御装置を提供できる。
【0022】
さらに、高レベルに達したとき処理中の終了を待って書き込みを抑止するので、必要な多段バッファの段数は高レベルの段数に、1処理単位による書き込みデータ量をラッチする段数を加えて、最適な段数を決定できる。
【0023】
【発明の実施の形態】
以下、本発明の一実施の形態を図面を参照しながら詳細に説明する。
【0024】
図2は、一実施形態による二重化制御システムの構成図である。常用系制御装置81と待機系制御装置82は、系間バス56で接続されて二重化制御装置を構成している。常用系制御装置81は制御信号線12により、待機系82は制御信号線13により、制御対象のIO装置11と接続している。
【0025】
常用系81及び待機系82は対照的な構成で、通常は常用系81で制御し、常用系81に障害が発生した場合、待機系82に切り換えて制御を続行する。切り換え時の処理を継続するために、待機系82において常用系81のデータを引き継ぐ必要がある。本構成では、常時、常用系81から待機系82へ系間バス56を介してデータを転送して一致化することにより、切り換え前後の処理を継続できる。
【0026】
常用系制御装置81は、2台のCPUA1及びCPUB2、主メモリ4、CPUバスブリッジ3、IOコントローラ8からなる処理系に、リクエストサプレス回路6,7と、二重化データ一致化装置5を設けた構成である。IO装置11の制御はIOコントローラ8を介して接続される。
【0027】
二重化データ一致化装置5には、どちらの系が常用系になるか待機系になるかを決める機能があり、系間バス56を介して二重化制御装置の立上げ時に決定される。ここでは、制御装置81が常用系として起動するものとする。常用系と待機系の切り換え時のデータ引き継ぎに備え、常用系81の二重化データ一致化装置5から待機系82の二重化データ一致化装置5へ、系間バス100を介して常時、データが転送されている。
【0028】
転送するデータは、次のようにして得られる。常用系81の主メモリ4のアドレス範囲に於て、切り換え時に処理系が引き継ぐのに必要な情報を得る為の特別なアドレス範囲を予め決めておき、その範囲を二重化データ一致化装置5に設定する。CPUA1、CPUB2及びIOコントローラ8の各々は処理中に、引き継ぎに必要なデータが発生した場合、主メモリ4の特定アドレス範囲にライトする。このライト動作はCPUバスブリッジ3を介して行われる。この主メモリ4へのライト動作に於て、二重化データ一致化装置5は主メモリ4への信号線30を分岐させた信号線30’を介してスヌープしており、主メモリ4の特定アドレス範囲へのライト動作時、そのデータをスヌープにより取り込み、多段バッファにラッチしながら待機系82へ転送する。
【0029】
待機系82の二重化データ一致化装置5は、受信したデータをIOインタフェースバス9を介し、常用系主メモリ4と同じ特定アドレス範囲にライトを行う。このライト動作はCPUバスブリッジ3を介して行われ、IOコントローラ8がIOインタフェースバス9を介して主メモリ4にアクセスするのと同じ、通常のトランザクションである。
【0030】
図1は、二重化制御システムにおける各系の制御装置の詳細な構成図である。制御装置の構成は常用系と待機系で同じになる。CPUバスブリッジ3と主メモリ4は、信号線30を介して接続される。主メモリ4は、2つのDRAMモジュールによる主メモリA41、主メモリB42からなる。信号線30は、2つのメモリに共通に入力するメモリアドレス31、メモリデータ32、CAS33、WE34と、主メモリA41に入力するRASA35、主メモリB42に入力するRASB36からなる。CASは列アドレスストローブ、RASは行アドレスストローブである。
【0031】
さらに、信号線30を分岐し、二重化データ一致化装置5に入力する分岐信号線30’を設けている。信号線30や分岐信号線30’がアクセス(駆動)の対象となることはない。このため、CPUバスブリッジ3は、二重化データ一致化装置5の存在を意識せずに、主メモリ4にアクセスすることができる。
【0032】
二重化データ一致化装置5は、IOインタフェースバス9に接続されるデバイスのリクエスト制御を行うアービトレーション部51、CPUA1、CPUB2のアクセスをサプレスするアクセス制御部52、主メモリ4の特定アドレス範囲へのライトデータを分岐信号線30’を介して盗み読む(スヌープ)スヌープ部53、スヌープしたデータなどを他系(自系が常用系のときは待機系)へ送信するとともに、他系(自系が常用系のときは待機系/自系が待機系のときは常用系)からの転送データなどを受信する送受信部54、IOインタフェースバス9と接続するインタフェース部55からなる。
【0033】
本構成に於て、CPUA1及びCPUB2側からのアクセスは以下のように行なわれる。CPUA1が主メモリ4に対するアクセスを行う場合、バスリクエスト信号CREQA61をアサートする。通常、リクエストサプレス回路6への制御信号線69はアサートされており、CPUバスブリッジ3への出力信号CBREQA62はそのままアサートされる。このアサートに対し、CPUバスブリッジ3はCPUA1に対しバスグラント信号CBGNTA70をアサートし、CPUA1はトランザクションを開始する。
【0034】
CPUB2のアクセスも同様に行われ、このバスグラント信号のアサートに於て、バスグラント信号CBGNTA70及びCBGNTB71が同時にアサートされることはない。CPUA1のトランザクションがIOコントローラ8へのアクセス時、CPUバスブリッジ3はアービトレーション部51に対しIOインタフェースバス9のバスリクエスト信号72をアサートする。このアサートに対し、アービトレーション部51はバスグラント信号74をアサートし、CPUバスブリッジ3はIOコントローラ8へのアクセスを開始する。
【0035】
IOコントローラ8から主メモリ4へのアクセスは、IOインタフェースバス9及びCPUバスブリッジ3を介して行われる。CPUバスブリッジ3へのアクセス時、IOコントローラ8は二重化データ一致化装置5のアービトレーション部51に対しバスリクエスト信号73をアサートし、アービトレーション部51がバスグラント信号75をアサートし、その確認後、IOインタフェースバス9を介してCPUバスブリッジ3へのアクセスを開始する。CPUバスブリッジ3は信号線30を介し主メモリ4へのアクセスを行う。アービトレーション部51はCPUバスブリッジ3へのバスグラント信号74及びIOコントローラ8へのバスグラント信号75及びインタフェース制御部55へのバスグラント信号76への優先権を任意に設定できるように構成されている。
【0036】
本構成においては、CPUA1、CPUB2及びIOコントローラ8が主メモリにライトするデータの内、待機系82へ転送を行うデータを入力する特定アドレス範囲は、主メモリB42に設定されている。スヌープ部53は、主メモリA41、主メモリB42に共通に入力されるメモリアドレス31、メモリデータ32、CAS33、WE34の他に、主メモリB42のアクセスを示すRASB36を入力する。そして、CPUA1、CPUB2またはIOコントローラ8から特定アドレス範囲、すなわち主メモリB42にライトを行った場合、RASB36はアサートされ、RASA35はディアサートされる。
【0037】
図3に、二重化制御部のスヌープ部の構成を示す。スヌープ部53はカラムアドレスをラッチするためのメモリアドレスラッチ95、待機系102に転送するカラムアドレス、ロードアドレスをラッチするためのメモリアドレス受信バッファ58、メモリデータをラッチするためのメモリデータ受信バッファ59、主メモリ4へのライトが特定アドレス範囲であるか判定する転送アドレス判定部92、バッファ58及びバッファ59のラッチ制御と、送信時の転送制御を行うメモリ受信バッファ制御部60からなる。
【0038】
CPUバスブリッジ3から主メモリ4Bへデータライトする場合、信号線30へのRASB36、CAS33、WE34の出力タイミングで、スヌープ部53はメモリアドレス31(MEM_ADDR)、メモリデータ32(MEM_DATA)をラッチする。
【0039】
図4に、主メモリ4へのライトタイミング及びスヌープ部53のラッチタイミングを示す。タイミングT1において、RASB36(RAS#)の立ち下がりでメモリアドレス31(MEM_ADDR)をメモリアドレスラッチ95にラッチする。このラッチされたアドレスはローアドレスを示す。次のT2タイミングにおいて、転送アドレス判定部92はメモリアドレスラッチ95の出力アドレス94(MEM_L_ADDR)が特定のアドレス範囲にあるか判定する。
【0040】
図5は、転送アドレス判定部の構成を示す。転送アドレス判定部92は、特定のアドレスを示すアドレスレジスタ96及び、そのアドレス範囲の有効幅を示すアドレス範囲指定レジスタ91、RASB36のタイミング用FF101、アドレス比較回路97からなる。アドレスレジスタ96には特定のアドレスが設定され、アドレス範囲指定レジスタ91には特定アドレスの有効幅範囲が設定されている。
【0041】
アドレス比較回路97で、設定されている特定アドレス範囲とメモリアドレスラッチ95の出力アドレス94(MEM_L_ADDR)の比較を行う。出力アドレス94が特定アドレス範囲内であり且つ、RASB36のアサート時、転送アドレス判定部92の出力信号93(MEMEN)が、タイミングT2の立上りにおいてアサートされる。これにより、メモリ受信バッファ制御部60はタイミングT3のCAS33の立ち下がりで且つ、WE34がアサートされていれば、MEM_L_ADDR94及びメモリアドレス31(MEM_ADDR)がメモリアドレス受信バッファ58にラッチされる。このとき、メモリアドレス31(MEM_ADDR)の値はカラムアドレスを示す。これと同時に、メモリデータ32(MEM_DATA)をメモリデータ受信バッファ59にラッチし、スヌープを完了する。
【0042】
なお、CAS33のみが連続してアサートされるページモードライトサイクルにおいても、転送アドレス判定部92の出力信号93(MEMEN)はアサートされたままとなり、連続スヌープが可能となる。
【0043】
ラッチされたスヌープデータは、バッファ58、59から内部バス67を介して、メモリ受信バッファ制御部60に制御されて送受信部54に転送され、待機系102に送出される。バッファ制御部60は、データ転送要求信号WREQ14及びデータ転送完了信号WEN15でタイミングをとりながら、待機系102への送出を制御する。
【0044】
送受信部54は、自系の動作状態(常用/待機)に応じて送信又は受信を行う双方向I/Oバッファを有し、スヌープ部53から内部バス67を介して転送されるアドレス及びデータをバッファリングし、他系の送受信部54と調歩をとりながら他系へのデータ送信を行う。また、他系の送受信部54から受信したアドレスとデータをバッファリングしながら、内部バス98を介してインターフェース制御部55に転送する。
【0045】
待機系のインターフェース制御部55は、常用系でスヌープしたアドレスとデータを受信すると、IOインタフェースバス9を介して、受信データを主メモリ4の該当アドレスに書きこむ。このために、インターフェース制御部55は、アービトレーション部51に対しバスリクエスト信号77をアサートし、アービトレーション部51がバスグラント信号76をアサートしたのを確認して、主メモリ4の特定のアドレス範囲へ受信データのライトを行う。
【0046】
ところで、主メモリ4の特定アドレス範囲へのライトが連続して、待機系82への転送スループットが主メモリのライトタイミングが追いつかない場合に、ラッチされる多段バッファの段数が増加する。他系への転送間隔が主メモリライト間隔より短かければ、一時的に多段バッファに多くラッチされても、全体としてはデータは他系へ転送されていく。しかし、待機系のインタフェース制御部55から主メモリ4へのライトに於て、IOインタフェースバス9のバスアクセス権が思うように取得できない場合、あるいは特定アドレス範囲へのライトが連続して多発した場合に、多段バッファのオーバフローを引き起こすことがある。
【0047】
本実施形態では、多段バッファがオーバフローする前に、2段階に分けてオーバーフローの回避制御を行う。第1段階の制御として、待機系82への転送バス56のスループットが十分にあり、待機系82に於て受信データを主メモリ4にライトするスループットが遅い場合、アービトレーション部51では優先して主メモリ4へのライトが行えるよう制御する。それでもオーバフローしそうな時、第2段階の制御として、常用系81におけるCPUA1、CPUB2またはIOコントローラ8から主メモリ4へのライトを抑止する。
【0048】
このオーバーフロー回避制御のために、メモリ受信バッファ制御部60は、データスヌープ時にインクリメントし、WEN15アサート時にデクリメントするカウンタを備え、スヌープデータ量に応じた多段バッファのラッチ段数をカウントする。
【0049】
常用系のバッファ制御部60はオーバフローが予測される場合、例えば、カウンタの値がバッファ59の段数の半分に達したときは、第一段階として待機系102のアービトレーション部51に対し、オーバーフローの予告信号BUFADV99をアサートする。BUFADV99を受信した待機系102のアービトレーション51は、受信データを主メモリ4へライトを行うインタフェース制御部55のバスリクエスト77に対し、優先してバス権が得られるようにアービトレーション処理を行う。これにより、待機系102に於けるスループットの向上が期待でき、常用系のスヌープ部53のメモリ受信バッファ59のオーバフローを回避、または遅らすことができる。
【0050】
それでも、メモリ受信バッファがオーバフローしそうな場合、例えば、カウンタの値がバッファ59の段数の3/4に達したとき、常用系のバッファ制御部60は第2段階の制御として、BUFFUL57を自系のアクセス制御部52にアサートする。アクセス制御部52はBUFFUL57を受け取ると、リクエストサプレス回路6及び7に対し制御信号線BCNTA69、BCNTB66をディアサートする。リクエストサプレス回路6及び7はたとえCPUA1、CPUB2がCPUバスリクエスト信号CREQA61、CREQB64をアサートしていても、CPUバスブリッジ3への出力信号CBREQA62、CBREQB65をディアサートすることにより、CPUアクセスをサプレスする。なお、CPUバスリクエスト線ではなく、CPUバスグラント線70,71をディアサートするようにしてもよい。
【0051】
また、アービトレーション部51はBUFFUL信号57を受け取ると、CPUバスブリッジ3のバスリクエスト信号72及びIOコントローラ8のバスリクエスト信号73に対しグラント信号74及び75をアサートしないので、IOコントローラ8からのアクセスが抑止される。
【0052】
上記したように、常用系のアービトレーション部51、アクセス制御部52、インタフェース制御部55の動作により、主メモリ4へのCPU1,2やIOコントローラ8からのアクセスがサプレスされて、メモリ受信バッファ58,59のラッチ段数が減少へと向かうので、オーバーフローが回避できる。なお、第二段階の制御によるサプレスは、メモリ受信バッファに余裕ができるまで、例えば、バッファ段数の二分の一が回復するまで継続される。
【0053】
図6に、本例で付加したリクエストサプレス回路の構成を示す。同図(a)に示すように、リクエストサプレス回路6は、CPUA1のバスリクエストを入力する信号線CREQA61、モススイッチ68、2重化制御部5のアクセス制御部52よりモススイッチ68への制御信号を入力する信号線BCNTA69、モススイッチ68からCPUバスブリッジ3に対しバスリクエストを出力する信号線CBREQA62からなる。リクエストサプレス回路7も同様に構成されている。
【0054】
アクセス制御部52より制御信号BCNTA69がディアサートされた場合、モススイッチ68はオフとなる。信号線62は抵抗77を介した電源Vccにより、ハイ(H)レベルとなり、CPUバスブリッジ3に対しディアサート状態となる。なお、このリクエストサプレス回路によるリクエストサプレス期間は、従来アプリケーションが他系へのスループットを計算して作成していたウエイト期間に相当し、本回路の不可によってCPUの実行効率が低下することはない。
【0055】
同図(b)は、リクエストサプレス回路6をNAND102とINVERTER103により論理構成した場合を示す。(a)の場合と同様に、制御信号線BCNTA69がアサートされているときは、CPUA1のバスリクエスト信号CREQA61のアサート、ディアサートをそのままCBREQA62に伝え、制御信号線BCNTA69がディアサートされているときは、CPUA1のバスリクエスト信号CREQA61の状態に係わらずディアサート状態となる。
【0056】
ところで、上記した第二段階制御のサプレス方式では、データ二重化に関係のないアクセスを全て抑止してしうので、CPUの使用効率からは十分とは言えない。そこで、CPUA1、CPUB2、あるいはIOコントローラ8からのアクセスタイプ信号を二重化データ一致化装置5に取り込み、メモリアクセスのタイプを判定し、ライトアクセスのみを抑止するようにしてもよい。さらには、主メモリ4のデータ二重化に関係のある特別なデータ範囲、上記の例では主メモリB42へのライトアクセスのみを抑止するようにしてもよい。
【0057】
本実施形態における第二段階制御のサプレス方式は、上記のCPUやIOコントローラからのアクセス抑止ではなく、二重化データ一致化装置5から主メモリ4対してデータ二重化に影響を与えないアクセス、例えばデータ空読みを継続させる方法によってもよい。すなわち、アービトレーション部51はBUFFUL信号57を受信すると、インタフェース制御部55に対しグラント信号76を優先的にアサートし、インタフェース制御部55からメモリ4に対する空読みを行うように、CPUバスブリッジ3にリード動作を行う。これにより、主メモリ4へのアクセスパスを閉塞することになり、結果的にCPUA1、CPUB2、あるいはIOコントローラ8からのアクセスを抑止できる。
【0058】
あるいは、上記したCPUのサプレス方式を、二重化データ一致化装置5によるデータ二重化に影響を与えないアクセスにより補完するようにしてもよい。これによれば、IOインタフェース9上のデバイスがCPUバスブリッジ3に対しリード又はライトのリクエストを行わない場合、CPUバスブリッジ3がCPUA1、CPUB2に対してグラント信号CBGNTA70、CBGNTB71をアサートするように構成されている場合にも、CPUA1、CPUB2による主メモリ4へのアクセスを、確実にサプレスすることができる。
【0059】
以上のような二段階のオーバーフロー回避制御にも係わらず、ハードウェアバグまたはソフトウェアバグによりメモリ受信バッファがオーバフローした場合、メモリ受信バッファ制御部60はバッファオーバフロー信号BUFOVF16をインタフェース制御部55にアサートする。
【0060】
図7に、インタフェース制御部のエラー要因を保持する状態レジスタの構成を示す。本実施形態のインタフェース制御部5は、IO処理状態レジスタ18及び2重化処理状態レジスタ19を持っている。レジスタ18,19の各ビットにエラー要因を保持している。OR回路20を介してインタラプト信号INT17を発生し、致命的なエラー要因に関しては、CPUによるインタラプト処理を行なうように構成している。
【0061】
スヌープ部53のバッファのオーバーフローで、BUFOVF16信号が発生すると、インタフェース制御部55は、BUFOVF16を2重化処理状態レジスタ19にラッチし、次のクロックタイミングでインタラプト信号17をアサートする。このとき、エラー要因が2重化制御部5内である為、CPUが直ちに動作できるように、BUFFUL57はディアサートされ、アクセス制御部52は制御信号線BCNTA69及びBCNTB66をアサートし、アービトレーション部51はインタフェース制御部55の優先アクセスによる空読みをやめ、通常のアービトレーションに復帰する。その結果、リクエストサプレス回路6,7は再びオン状態になり、CBREQA62をアサートする。CPUA1はCPUバスブリッジ3からCBGNTA70がアサートされたのを確認後、インタラプト処理のトランザクションを実行する。
【0062】
CPUA1はオーバーフロー発生によるインタラプト処理に移行すると、CPUバスブリッジ3にCREQA61をアサートし、バスリクエストを行う。そして、インタフェース制御部55の2重化処理状態レジスタ19をリードし、その要因が2重化制御部5内の致命的要因であることを確認すると、2重化制御部5の無効化処理及び原因解析処理へと移行する。このインタラプト処理によって、IO処理トランザクションが中断されることなく、IO装置11を監視、制御するシステム動作への影響はない。
【0063】
図8は、本実施形態の二重化制御装置の動作の一例示すタイムチャートである。CPU1が主メモリ4の特定アドレスに連続ライトを行っている場合に、第二段階のBUFFUL57がアサートされた場合の動作例を示す。
【0064】
T1のタイミングでBUFFUL#がアサートされたとき、リクエストサプレス回路6,7の制御信号BCNTA,Bがディアサートされ、モススイッチ68の出力信号CBREQA,Bがディアサートされる。モススイッチを切るタイミングは、CPU1のトランザクション状態には無関係に行われる。
【0065】
このとき、インタフェース部55は主メモリ4を空読みするため、IOインタフェースバス9のバスリクエスト信号77をアサートし、アービトレーション部51からバスグラント信号76がアサートされた後、次のT2のタイミングからCPUバスブリッジ3に対しアクセスを行う。
【0066】
次のT3のタイミングで、CPUバスブリッジ3はIOインタフェースバス9からの要求を受け、また、CPUA1及びCPUB2からのバスリクエスト信号62、65がディアサートされていることから、CPUバスグラント信号CBGNTA,Bをディアサートする。CPUバスブリッジ3がCPUA1に1マシンサイクル前にグラント信号CBGNTA,Bを与えていた場合、リクエストサプレス回路6,7が切られると、CPUA1は1トランザクション実行後、引き続き主メモリに対してアクセス要求の有る場合は、T5のタイミングでCPUウェイトに入る。
【0067】
その後、T8のタイミングでBUFFULがディアサートされ、モススイッチ68の制御信号BCNTAがアサートされ、再びモススイッチ68の出力信号CBREQAがアサートされる。このとき、インタフェース部55は空読みを止め、T9のタイミングでCPUバスブリッジ3がCPUバスグラント信号CBGNTAをアサートし、T10のタイミングで次のトランザクションを再開する。
【0068】
このCPU動作に対して、1トランザクション実行に於ける最長バースト長を決めてき、BUFFULがアサートされた時点でのメモリ受信バッファの段数をその最長バースト以上にしておけばオーバフローすることはなく、無駄なバッファの段数を付加する必要は無くなる。すなわち、オーバフローを回避するのに必要な最小限のバッファ容量が決定できる。なお、ハードバグまたはソフトウェアバグにより、1トランザクション実行に於ける最長バースト長を守ることができずにオーバフローが発生した場合は、上述のインタラプト処理が行なわれる。
【0069】
【発明の効果】
本発明によれば、2重化データをスヌープによって二重化制御部のバッファにラッチアップして他系へと転送するので、二重化制御におけるオーバーフローの回避制御がCPUやIOコントローラに関係無く実行できる。このため、CPU側でのオーバーフロー監視が必要なく、実行効率が向上できる。また、アプリケーションプログラムの作成に際して、他系へのデータ転送能力を考慮する必要がないので、プログラム作成が容易になる。
【0070】
また、本発明によれば、オーバーフローの可能性が予想できる段階では他系での処理を促進させるようにし、オーバーフローの可能性が必至と見られる段階では、自系でのメモリライトをサプレスするようにして、一挙に抑制することなく段階的な制御によって実行効率の低下を防止している。また、サプレス制御においては、実行中のトランザクションの終了を待ってCPU(またはコントローラ)ウエイトに移行することでバッファの余裕度を決定できるようにしているので、最小限のバッファ容量で2重化制御構成が可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態による片系の制御装置の構成を示すブロック図。
【図2】一実施形態による二重化制御装置のシステム構成を示すブロック図。
【図3】二重化データ一致化装置内のスヌープ部の構成図。
【図4】主メモリライト時の動作を示すタイミングチャート。
【図5】スヌープ部の転送アドレス判定部の構成図。
【図6】リクエストサプレス回路の構成図。
【図7】インタフェース制御部における処理状態レジスタとインタラプト信号発生回路の構成図。
【図8】オーバーフローの抑制制御を含む二重化制御装置の全体動作を示すタイミングチャート。
【符号の説明】
1…CPUA、2…CPUB、3…CPUバスブリッジ、4…主メモリ、5…二重化データ一致化装置、6,7…リクエストサプレス回路、8…IOコントローラ、9…IOインタフェースバス、18…IO処理状態レジスタ、19…2重化処理状態レジスタ、20…OR回路、30…信号線、30’…分岐信号線、41…主メモリA、42…主メモリB、51…アービトレーション部、52…アクセス制御部、53…スヌープ部、54…送受信部、55…インタフェース制御部、58…メモリアドレス受信バッファ、59…メモリデータ受信バッファ、60…メモリ受信バッファ制御部、68…モススイッチ、91…アドレス範囲指定レジスタ、92…転送アドレス判定部、95…メモリアドレスラッチ、96…アドレスレジスタ、97…アドレス比較回路。
Claims (9)
- 常用系の主メモリの所定領域に書き込まれるデータをリアルタイムに待機系に転送し、待機系で書き込み、常用系で故障が発生した場合に待機系に処理を切り換える二重化処理装置の二重化データ一致化方法において、
常用系の主メモリに書き込まれるデータをスヌープし、バッファに一時記憶し、スヌープを完了したスヌープデータは待機系に転送され、待機系の書き込みは常用系とは別のタイミングで行い、かつ、前記スヌープデータを待機系に転送する際に、前記バッファ側でその保留データ量が所定の第1レベルに達したとき、待機系における二重化データの書き込みを優先処理させるオーバーフローの回避制御を行なうことを特徴とする二重化データ一致化方法。 - 請求項1において、前記回避制御は、前記保留データ量が所定の第2レベルに達したとき、常用系主メモリの前記所定領域への書き込みを抑止処理させることを特徴とする二重化データ一致化方法。
- 請求項1または2において、前記抑止処理は、前記バッファの空きが所定量を回復するまで、CPUやIOコントローラによる常用系主メモリの書き込みをウェイトさせることを特徴とする二重化データ一致化方法。
- 請求項2または3において、前記抑止処理は、前記バッファの空きが所定量を回復するまで、前記バッファ側から主メモリへの空読みを行なわせることを特徴とする二重化データ一致化方法。
- 請求項1〜4のいずれか1項において、前記バッファのオーバーフローが発生した場合は、常用系のCPUが自系のバッファ側における処理を無効化するインタラプト処理を行なうことを特徴とする二重化データ一致化方法。
- CPU、主メモリ、IOコントローラ及びこれらの三叉路接続を行うCPUブリッジからなる二つの制御装置を系間バスで接続し、一方を常用系、他方を待機系としてIO制御を行ないながら、常用系の主メモリの所定領域(共有メモリ領域)に書き込まれるデータを待機系に転送し、待機系で書き込みして一致化処理し、常用系に故障が発生した場合に待機系に制御処理を切り換える二重化制御装置において、
前記制御装置は、CPUブリッジと主メモリを接続する信号線から分岐したスヌープのための分岐信号線、常用系の場合に主メモリの前記所定領域に書き込まれるデータを前記分岐信号線を通じてスヌープし、バッファに一時記憶する多段バッファを含むバッファ制御手段と、常用系と待機系の間の送受信を行なう通信手段と、待機系の場合にスヌープを完了してから受信した前記データをCPUブリッジと接続するIOインタフェースバスを介して自系の主メモリに常用系とは別のタイミングで書き込むインターフェース制御手段を含む二重化データ一致化装置を備え、
前記二重化データ一致化装置は、IOインタフェースバスのバスアクセス権を制御するアービタを有し、
前記バッファ制御手段は、前記多段バッファのラッチ段数が所定段数に達したときにオーバーフローを予告するオーバーフロー予告機能を有し、
常用系から前記予告を受けたときに、待機系のアービタは自系のインターフェース制御手段に対し、IOインターフェースバスのバスアクセス権を優先的に確保させることを特徴とする二重化制御装置。 - 請求項6において、前記二重化データ一致化装置は、IOインタフェースバスのバスアクセス権を制御するアービタとCPUのアクセス要求または許可を抑止制御するアクセス制御手段を有し、
前記バッファ制御手段は、前記多段バッファのラッチ段数が高レベルの所定段数に達したときに、オーバーフローを警告するオーバーフロー予告機能を有し、
前記警告を受けたときに、常用計のアクセス制御手段は自系のCPUのアクセスを抑止制御し、常用系のアービタは自系のIOコントローラにバスアクセス権を許可しないことを特徴とする二重化制御装置。 - 請求項7において、CPUとバスブリッジ間におけるバス要求または許可のための信号線にスイッチ手段を設け、前記アクセス制御手段によってオン/オフすることを特徴とする二重化制御装置。
- 請求項7または8において、前記警告を受けたときに、常用系のアービタは自系のインターフェース制御手段にIOインタフェースバスのバスアクセス権を優先的に獲得させ、該インターフェース制御手段から自系の主メモリに対する空読みを行なわせることを特徴とする二重化制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04734296A JP3862777B2 (ja) | 1996-03-05 | 1996-03-05 | 二重化データ一致化方法および二重化制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04734296A JP3862777B2 (ja) | 1996-03-05 | 1996-03-05 | 二重化データ一致化方法および二重化制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09245008A JPH09245008A (ja) | 1997-09-19 |
JP3862777B2 true JP3862777B2 (ja) | 2006-12-27 |
Family
ID=12772510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04734296A Expired - Lifetime JP3862777B2 (ja) | 1996-03-05 | 1996-03-05 | 二重化データ一致化方法および二重化制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3862777B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5243113B2 (ja) | 2008-06-19 | 2013-07-24 | 株式会社日立製作所 | 演算処理装置多重化制御システム |
JP5509637B2 (ja) * | 2009-03-18 | 2014-06-04 | 日本電気株式会社 | フォールトトレラントシステム |
JP4926254B2 (ja) * | 2010-01-27 | 2012-05-09 | 日本電信電話株式会社 | データ送信実行制御装置および方法 |
-
1996
- 1996-03-05 JP JP04734296A patent/JP3862777B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09245008A (ja) | 1997-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5682516A (en) | Computer system that maintains system wide cache coherency during deferred communication transactions | |
US5319766A (en) | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system | |
US5553266A (en) | Update vs. invalidate policy for a snoopy bus protocol | |
US5133074A (en) | Deadlock resolution with cache snooping | |
US5555382A (en) | Intelligent snoopy bus arbiter | |
US5787243A (en) | Main memory system and checkpointing protocol for fault-tolerant computer system | |
US5613075A (en) | Method and apparatus for providing deterministic read access to main memory in a computer system | |
US5388224A (en) | Processor identification mechanism for a multiprocessor system | |
KR100286962B1 (ko) | 캐쉬 제어기 | |
JPH04306748A (ja) | 情報処理装置 | |
JP3862777B2 (ja) | 二重化データ一致化方法および二重化制御装置 | |
EP0567355A2 (en) | A method and apparatus for operating a multiprocessor computer system having cache memories | |
KR0175742B1 (ko) | 이중화 시스템에서 동작 분리 고속 데이타 전송장치 | |
US6226703B1 (en) | Method and apparatus for reducing the apparent read latency when connecting busses with fixed read replay timeouts to CPU'S with write-back caches | |
US5699553A (en) | Memory accessing device for a pipeline information processing system | |
JPH0281255A (ja) | マルチプロセッサコンピュータ複合装置 | |
JP2001034533A (ja) | キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法 | |
US20080040582A1 (en) | Data processing unit and data processing apparatus using data processing unit | |
JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 | |
JP2005010995A (ja) | マルチプロセッサシステム及びそのライトバックの障害処理方法 | |
US6141735A (en) | Performing a memory access cycle in a multi-processor computer system | |
JP3348704B2 (ja) | 二重化装置及びそれに用いる状態一致制御方法 | |
JPH05265790A (ja) | マイクロプロセッサ装置 | |
JPH0744460A (ja) | スヌープ処理方式 | |
JP3630523B2 (ja) | バス転送処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040511 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050427 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051108 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060110 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060927 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131006 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |