JP2012073828A - 情報処理装置、情報処理方法 - Google Patents
情報処理装置、情報処理方法 Download PDFInfo
- Publication number
- JP2012073828A JP2012073828A JP2010218254A JP2010218254A JP2012073828A JP 2012073828 A JP2012073828 A JP 2012073828A JP 2010218254 A JP2010218254 A JP 2010218254A JP 2010218254 A JP2010218254 A JP 2010218254A JP 2012073828 A JP2012073828 A JP 2012073828A
- Authority
- JP
- Japan
- Prior art keywords
- correction
- error
- information
- memory
- cpu module
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
【課題】ロックステップ方式の情報処理装置におけるいずれかの系にメモリエラーが発生した場合にも、ロックステップを外すことなく安定して動作する。
【解決手段】プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置の、CPUモジュールが、自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶し、生成された第1の訂正情報を他系のCPUモジュールに送信し、他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信し、他系のCPUモジュールから第2の訂正情報を受信した遅延に応じて、記憶部に記憶されている第1の訂正情報を読み出し、第2の訂正情報と第1の訂正情報とを同期してエラー訂正処理を行う。
【選択図】図1
【解決手段】プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置の、CPUモジュールが、自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶し、生成された第1の訂正情報を他系のCPUモジュールに送信し、他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信し、他系のCPUモジュールから第2の訂正情報を受信した遅延に応じて、記憶部に記憶されている第1の訂正情報を読み出し、第2の訂正情報と第1の訂正情報とを同期してエラー訂正処理を行う。
【選択図】図1
Description
本発明は、多重化したコンピュータシステムにおいてメモリの誤り検出・訂正を行う技術に関する。
プロセッサとメモリとを多重化して、複数系のコンピュータを並列して動作させるロックステップ方式のフォールトトレラントサーバ(FTサーバ)のようなコンピュータ装置が利用されている(例えば、特許文献1)。
このような高可用性を求められるコンピュータ装置には、DIMM(Dual Inline Memory Module)やメモリコントローラによるメモリのECC(Error-Correcting Code)1ビットエラー検出・訂正機能が搭載されたものがある。ソフトウェアによってこのような機能を有効にする事で、メモリアクセスにおいてECC1ビットエラーを検出した場合、ハードウェアにおいて自動的に訂正する事が可能である。
このような高可用性を求められるコンピュータ装置には、DIMM(Dual Inline Memory Module)やメモリコントローラによるメモリのECC(Error-Correcting Code)1ビットエラー検出・訂正機能が搭載されたものがある。ソフトウェアによってこのような機能を有効にする事で、メモリアクセスにおいてECC1ビットエラーを検出した場合、ハードウェアにおいて自動的に訂正する事が可能である。
しかしながら、ロックステップ方式のFTサーバは、複数系のCPU(Central Processing Unit)モジュール(CPU/メモリ/ノースブリッジにより構成される部分)が同一のクロックに同期して完全に同一の動作をする必要があり、片方の系のCPUモジュールでハードウェアによるメモリのECC1ビットエラー訂正機能が動作すると、各CPUモジュールの動作に差分が発生しロックステップが外れてしまう。このため従来のFTサーバでは、メモリのECC1ビットエラーが検出された場合、エラーが発生したCPUモジュールを一旦切離し、初期化した後で再度組み込んで二重化させるという処理を行っていた。このとき、エラーが発生したCPUモジュールが切離されている間には二重化が解除されるため、FTサーバとして求められる可用性が損なわれ、さらにハードウェアの故障が発生した際にシステムダウンとなるリスクが高くなっている場合があった。このような場合にも、ロックステップを外すことなく安定して動作することが望ましい。
本発明は、このような状況に鑑みてなされたもので、ロックステップ方式の情報処理装置におけるいずれかの系にメモリエラーが発生した場合にも、ロックステップを外すことなく安定して動作する情報処理装置、情報処理方法を提供する。
上述した課題を解決するために、本発明は、プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置であって、CPUモジュールは、自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶する記憶部と、生成された第1の訂正情報を他系のCPUモジュールに送信する送信部と、他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信する受信部と、他系のCPUモジュールから第2の訂正情報を受信した遅延に応じて、記憶部に記憶されている第1の訂正情報を読み出し、第2の訂正情報と第1の訂正情報とを同期してエラー訂正処理を行う訂正同期部と、を備えることを特徴とする。
また、本発明は、プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置の情報処理方法であって、CPUモジュールが、自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶するステップと、生成された第1の訂正情報を他系のCPUモジュールに送信するステップと、他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信するステップと、他系のCPUモジュールから第2の訂正情報を受信した遅延に応じて、記憶部に記憶されている第1の訂正情報を読み出し、第2の訂正情報と第1の訂正情報とを同期してエラー訂正処理を行うステップと、を備えることを特徴とする。
以上説明したように、本発明によれば、プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置の、CPUモジュールが、自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶し、生成された第1の訂正情報を他系のCPUモジュールに送信し、他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信し、他系のCPUモジュールから第2の訂正情報を受信した遅延に応じて、記憶部に記憶されている第1の訂正情報を読み出し、第2の訂正情報と第1の訂正情報とを同期してエラー訂正処理を行うようにしたので、ロックステップ方式の情報処理装置におけるいずれかの系のメモリに誤りが検出された場合にも、ロックステップを外すことなく安定して動作する情報処理装置、情報処理方法を提供することができる。
以下、本発明の一実施形態について、図面を参照して説明する。
図1は、本発明による情報処理装置100の構成を示すブロック図である。情報処理装置100は、CPUクロックを同期させてハードウェアを二重化(ロックステップ)する方式のフォールトトレラント(FT)サーバである。情報処理装置100は、CPUモジュール1−0およびIOモジュール5−0と、CPUモジュール1−1およびIOモジュール5−1とを備えている。ここでは、CPUモジュールとIOモジュールにより構成されるサーバを1セットとし、2セットのサーバを互いのFT制御部で接続して1台のサーバ装置として機能する。このような2セットのサーバが、情報処理装置100が備えるクロックが生成する同一のクロック信号に同期して同じタイミングで同じ動作(ロックステップ動作)をすることで、1箇所のハードウェア故障が発生しても2セットのモジュールのうち故障が発生していない他系のモジュールで動作を継続することで、システムダウンを回避することが可能である。ここで、CPUモジュール1−0が備える各部とCPUモジュール1−1が備える各部、IOモジュール5−0が備える各部とIOモジュール5−1が備える各部はそれぞれ同様の構成であるため、CPUモジュール1−0およびIOモジュール5−0を例として詳細に説明する。
図1は、本発明による情報処理装置100の構成を示すブロック図である。情報処理装置100は、CPUクロックを同期させてハードウェアを二重化(ロックステップ)する方式のフォールトトレラント(FT)サーバである。情報処理装置100は、CPUモジュール1−0およびIOモジュール5−0と、CPUモジュール1−1およびIOモジュール5−1とを備えている。ここでは、CPUモジュールとIOモジュールにより構成されるサーバを1セットとし、2セットのサーバを互いのFT制御部で接続して1台のサーバ装置として機能する。このような2セットのサーバが、情報処理装置100が備えるクロックが生成する同一のクロック信号に同期して同じタイミングで同じ動作(ロックステップ動作)をすることで、1箇所のハードウェア故障が発生しても2セットのモジュールのうち故障が発生していない他系のモジュールで動作を継続することで、システムダウンを回避することが可能である。ここで、CPUモジュール1−0が備える各部とCPUモジュール1−1が備える各部、IOモジュール5−0が備える各部とIOモジュール5−1が備える各部はそれぞれ同様の構成であるため、CPUモジュール1−0およびIOモジュール5−0を例として詳細に説明する。
CPUモジュール1−0は、プロセッサ2−0と、ノースブリッジ3−0と、メモリ4−0とを備えている。
ノースブリッジ3−0は、マザーボード上に設置され、コンピュータ内部の情報流通を制御するLSI(Large Scale Integration)チップであり、ルータ30−0と、書き込みバッファ31−0と、ECC発生部32−0と、メモリ制御部33−0と、ECC訂正部34−0と、読み込みバッファ35−0と、訂正同期部36−0と、エラー訂正バッファ37−0とを備えている。
ノースブリッジ3−0は、マザーボード上に設置され、コンピュータ内部の情報流通を制御するLSI(Large Scale Integration)チップであり、ルータ30−0と、書き込みバッファ31−0と、ECC発生部32−0と、メモリ制御部33−0と、ECC訂正部34−0と、読み込みバッファ35−0と、訂正同期部36−0と、エラー訂正バッファ37−0とを備えている。
ルータ30−0は、プロセッサ2−0からのアクセスと、IOモジュール5−0からのアクセスと、メモリ4−0からのアクセスとを調停する。
書き込みバッファ31−0は、ルータ30−0から出力されるメモリ4−0へのライトデータを一時的に記憶する。
ECC発生部32−0は、書き込みバッファ31−0に記憶された、メモリ4−0へのライトデータに基づくECCビットを発生させ、ライトデータに付加する。
メモリ制御部33−0は、メモリ4−0に対するアクセスを調停する。
書き込みバッファ31−0は、ルータ30−0から出力されるメモリ4−0へのライトデータを一時的に記憶する。
ECC発生部32−0は、書き込みバッファ31−0に記憶された、メモリ4−0へのライトデータに基づくECCビットを発生させ、ライトデータに付加する。
メモリ制御部33−0は、メモリ4−0に対するアクセスを調停する。
ECC訂正部34−0は、メモリ4−0から読み出したリードデータのECCをチェックして、エラーが発生した場合にデータを訂正する。具体的には、ECC訂正部34−0は、メモリ4−0からのリード時にエラーを検出し、ECC1ビットエラーが発生していた場合は、訂正後のリードデータを読み込みバッファ35−0に出力すると同時に、ECC1ビットエラー信号と、リードアドレスと、リードデータと、ECCビットとのデータを、訂正同期部36−0に出力する。また、ECC訂正部34−0は、ECC1ビットエラー信号を、他系の訂訂正同期部36−1に出力する。
読み込みバッファ35−0は、メモリ4−0から読み出したリードデータを一時的に記憶し、ルータ30−0に出力する。
訂正同期部36−0は、ECC訂正部34−0から出力される、メモリ4−0からのリード時のECC1ビットエラー信号、リードアドレス、リードデータ、ECCビットに加え、他系のECC訂正部34−1から伝達されたECC1ビットエラー信号を入力し、両系同じタイミングでECC1ビットエラー訂正のアクセスを発生させる。
エラー訂正バッファ37−0は、メモリ4−0に対するECC1ビットエラー訂正アクセスを一時的に記憶する。
訂正同期部36−0は、ECC訂正部34−0から出力される、メモリ4−0からのリード時のECC1ビットエラー信号、リードアドレス、リードデータ、ECCビットに加え、他系のECC訂正部34−1から伝達されたECC1ビットエラー信号を入力し、両系同じタイミングでECC1ビットエラー訂正のアクセスを発生させる。
エラー訂正バッファ37−0は、メモリ4−0に対するECC1ビットエラー訂正アクセスを一時的に記憶する。
IOモジュール5−0は、プロセッサ2−0上で動作するソフトウェアによってIO機能が二重化制御され、他系のIOモジュール5−1においてハードウェア故障が発生した場合、ソフトウェアによってフェイルオ−バ−を行って正常なIOモジュールのみで動作できる様にすることで、システムダウンすることなく動作を継続させる。IOモジュール5−0は、FT制御部50−0と、IO部51−0とを備えている。
FT制御部50−0は、CPUモジュール1−0と他系のCPUモジュール1−1とから出されるIOアクセスを比較してロックステップ動作が行われているかどうかを判断する。また、FT制御部50−0は、IO部51−0からのアクセスを同じタイミングでCPUモジュール1−0とCPUモジュール1−1とに行う様に制御する。
IO部51−0は、ストレージやネットワーク等の一般的なコンピュータシステムの各種IO機能を実行する。
IO部51−0は、ストレージやネットワーク等の一般的なコンピュータシステムの各種IO機能を実行する。
図2は、本実施形態による情報処理装置100のCPUモジュール1−0が有する訂正同期部36−0の内部構成と、その周辺のブロックとの接続構成を示すブロック図である。上述したように、訂正同期部36−1の内部構成および接続構成は、訂正同期部36−0と同様である。
訂正同期部36−0は、他系のCPUモジュール1−1から訂正情報を受信した遅延に応じて、自系のCPUモジュール1−0において生成された訂正情報を読み出し、CPUモジュール1−1の訂正情報とCPUモジュール1−0の訂正情報とを同期してエラー訂正処理を行う。訂正同期部36−0は、訂正同期バッファ360−0と、書き込みポインタ361−0と、読み込みポインタ362−0と、OR回路363−0とを備えている。
訂正同期バッファ360−0は、アドレスを指定して複数のデータを記憶するメモリであり、自系のメモリであるメモリ4−0から誤りが検出された場合に生成される訂正情報を記憶する。また、訂正同期バッファ360−0は、書き込みポインタ361−0によって示されるアドレスに入力信号の値を書込み、読み込みポインタ362−0によって示されるアドレスの値を読出して出力する。
ここで、書き込みポインタ361−0および読み込みポインタ362−0は、訂正同期バッファ360−0のアドレスを示す0から最大値までの値を出力し、リセット時に任意の値に設定されてリセット解除されるとクロック毎に1が加算されるカウンタである。値が訂正同期バッファ360−0のアドレスの最大値になった次のクロックで0に戻る。
ここで、書き込みポインタ361−0および読み込みポインタ362−0は、訂正同期バッファ360−0のアドレスを示す0から最大値までの値を出力し、リセット時に任意の値に設定されてリセット解除されるとクロック毎に1が加算されるカウンタである。値が訂正同期バッファ360−0のアドレスの最大値になった次のクロックで0に戻る。
ここで、訂正同期バッファ360−0に記憶されるデータは、ECC訂正部34−0から出力されるメモリ4−0のリードアクセスのアドレス(r−address−0)と、リードされたデータ(r−data−0)と、リードされたECCビット(r−ecc−0)と、リードした値がECCエラーかどうかを示す信号(r−error−0)とである。r−error−0信号は、訂正同期バッファ360−0を通してerror−0信号として出力され、CPUモジュール1−1内のECC訂正部34−1で生成されて伝達されてきた他系のメモリリードでECC1ビットエラーが発生したかどうかを示す信号(r−error−1.x)とOR回路363−0でOR演算され、両系のどちらかでメモリのECC1ビットエラーが発生したことを示す信号(rw−error−0)としてエラー訂正バッファ37−0に入力される。訂正同期バッファ360−0から出力されたrw−address−0信号、rw−data−0信号、rw−ecc−0信号は、そのままエラー訂正バッファ37−0に入力され、エラー訂正バッファ37−0はrw−error−0信号がハイレベルの時にrw−address−0信号、rw−data−0信号、rw−ecc−0信号を有効値として取り込む。
ここで、訂正同期部36−0に入力される他系のメモリのECC1ビットエラーを示すr−error−1.x信号は、CPUモジュール1−0とCPUモジュール1−1との間を跨いで伝達されるため、ECC訂正部34−1の出力から訂正同期部36−0までの間に複数個のフリップフロップ(F/F)を介して入力される。これにより、エラーが検出されてから複数(x)回のクロックの期間遅延したタイミングで入力される。一方、訂正同期部36−0に入力される自系のメモリのECC1ビットエラーを示すr−error−0信号は、同じCPUモジュールのノースブリッジ3−0内で伝達する信号のため間にF/Fが入らず、ECC訂正部34−0の出力がそのまま入力される。そこで、訂正同期部36−0内の訂正同バッファ360−0を通してr−error−1.x信号と同じクロック回数の期間遅延したタイミングの信号であるerror−0信号としてOR回路363−0に入力される。
次に、図面を参照して、このような情報処理装置100の動作例を説明する。
図3は、本実施形態による情報処理装置100の動作の一例を示すタイミングチャートである。この例では、訂正同期バッファ360−0、訂正同期バッファ360−1の最大アドレスが7である。ここでは、他系のECC訂正部34−1から訂訂正同期部36−0へのECCエラー信号を3つのF/Fを通して入力する例で、外部から入力される不論理の!reset信号がローレベルの時に書き込みポインタが3になり、読み込みポインタが0になる設定となっている。t1−t2のタイミングの間で!reset信号がハイレベルになると、t2のタイミング以降のクロック信号の立ち上がりで書き込みポインタと読み込みポインタは1ずつカウントアップし、7の次は0に戻る。
図3は、本実施形態による情報処理装置100の動作の一例を示すタイミングチャートである。この例では、訂正同期バッファ360−0、訂正同期バッファ360−1の最大アドレスが7である。ここでは、他系のECC訂正部34−1から訂訂正同期部36−0へのECCエラー信号を3つのF/Fを通して入力する例で、外部から入力される不論理の!reset信号がローレベルの時に書き込みポインタが3になり、読み込みポインタが0になる設定となっている。t1−t2のタイミングの間で!reset信号がハイレベルになると、t2のタイミング以降のクロック信号の立ち上がりで書き込みポインタと読み込みポインタは1ずつカウントアップし、7の次は0に戻る。
この例では、t4のタイミングからECC訂正部34−0(ECC訂正部34−0)よりメモリのリードアドレス/データ/ECCの有効出力が開始され、t15のタイミングで最後のリードアドレス/データ/ECC信号が出力された後、t16以降はリードアドレス/データ/ECC信号の有効出力が行われない。t4のタイミングでリードアドレス/データ/ECCの値d1が出力され、t5のタイミングでリードアドレス/データ/ECCの値d2が出力され、以下同様にデータが出力され、t15のタイミングでリードアドレス/データ/ECCの値d12が出力される。
この時、ECC訂正部34−0はd2、d6、d7のデータにECC1ビットエラーを検出し、d2、d6、d7の出力と同じタイミングでr−error−0信号がハイレベルとなり、ECC訂正部34−1ではd3、d10でECC1ビットエラーを検出してd3、d10の出力と同じタイミングでr−error−1信号がハイレベルとなる例である。また、ECC訂正部34−0およびECC訂正部34−1においてECC1ビットエラーが検出されなかった場合と、有効なリードアドレス/データ/ECCの値が出力されていない場合は、r−error−0信号とr−error−1信号は共にローレベルとなる。
訂正同期バッファ360−0への入力信号であるECC訂正部34−0から出力されたリードアドレス/データ/ECCの値とECC1ビットエラーを検出した事を示すr−error−0信号とは、!reset信号がハイレベルの時にクロック信号の立ち上がりのタイミングで書き込みポインタ361−0によって示されるアドレスに記憶される。書き込みポインタ361−0が1周して以前出力したアドレスと同じになると、そのアドレスに以前書き込まれた値は上書きされる。図3の例では、t5のタイミングで書き込みポインタ361−0が示すアドレス6の位置にECC訂正部34−0から出力される最初の有効なリードアドレス/データ/ECCの値d1が記憶され、t6のタイミングでアドレス7の位置にリードアドレス/データ/ECCの値d2とECC1ビットエラーを検出した事を示すr−error−0のハイレベルの値が記憶され、t10、t11のタイミングでアドレス3、4の位置にd6、d7およびr−error−0のハイレベルの値が記憶される。
訂正同期バッファ360−0からは、読み込みポインタ362−0で示されるアドレスに記憶されたメモリのリードアドレス/データ/ECCの値およびECC1ビットエラーが検出された事を示すerror−0信号の値が読出されて出力される。図3の例では、t7のタイミングで読み込みポインタ362−0が6となり、その後アドレス6に記憶された最初の有効なリードアドレス/データ/ECCの値d1が出力される。t8のタイミングの後ではリードアドレス/データ/ECCの値d2とECC1ビットエラーが検出された事を示すerror−0のハイレベルの値が出力され、t12、t13のタイミングの後ではd6、d7およびerror−0のハイレベルの値が出力される。
一方、ECC訂正部34−1で検出されたd3、d10のECCエラーによって、t6、t13のタイミングでr−error−1信号がハイレベルになり、3つのF/Fによってr−error−1.1信号、r−error−1.2信号, r−error−1.3信号として伝達され、訂正同期部36−0に入力される。訂正同期部36−0の中では、r−error−1.3信号がハイレベルとなるt9、t16のタイミングで訂正同期バッファ360−0からはd3、d10が出力され、他系のECC訂正部34−1がECC1ビットエラーを検出したデータに一致する。
r−error−1.3信号とerror−0信号はOR回路363−0でOR演算され、ECC訂正部34−0とECC訂正部34−1との両方のECC1ビットエラー検出を含んだrw−error−0信号としてエラー訂正バッファ37−0に入力され、クロック信号の立ち上がり時にrw−error−0信号がハイレベルになっているt9、t10、t13、t14、t17のタイミングで、rw−address−0信号、rw−data−0信号、rw−ecc−0信号の値d2、d3、d6、d7、d10がエラー訂正バッファ37−0に取り込まれる。
CPUモジュール1−1内の訂訂正同期部36−1では、逆に、r−error−0信号が3つのF/Fによって3クロックの期間遅延されてr−error−0.3として訂訂正同期部36−1に入力され、r−error−1信号とECC訂正部34−1から出力されたリードアドレス/データ/ECCの値が訂正同期バッファ360−1を通って3クロックの期間遅延され、r−error−0.3信号とerror−1信号がOR演算されたrw−error−1信号がrw−error−0信号と同じタイミングで動作して、rw−address−1信号、rw−data−1信号、rw−ecc−1信号の値d2、d3、d6、d7、d10がエラー訂正バッファ37−1に取り込まれる。
以上の動作によって、どちらか一方のモジュールでECCエラーを検出しても、訂正処理を行うためのアクセスが両系同時にエラー訂正バッファ37−0、エラー訂正バッファ37−1に取り込まれるため、CPUモジュールがロックステップ動作を保ったままECC1ビットエラー訂正を行うことができる。
図4は、本発明の他の実施形態による動作の一例を示すタイミングチャートである。この例は図3の例に比べて、他系のECC訂正部34−0から訂正同期部36−0へのECCエラー信号を5つのF/Fを通して入力する事が異なっており、例えばノースブリッジの外やCPUモジュール間でやり取りする信号の遅延調整のためにさらにF/Fを2つ追加することを想定した動作の例である。情報処理装置100の構成は上記と同様である。
この例の場合、図3に対して、!reset信号がローレベルの時に書き込みポインタが5になる設定となっており、ECC訂正部34−0から出力された有効な値d1はt5のタイミングで訂正同期バッファ360−0のアドレス0の位置に書き込まれ、以降アドレスがカウントアップされながらt16のタイミングまでクロック毎に有効な値が書き込まれる。読み込みポインタは!reset信号がローレベルの時に図3の例と同様に0になる設定であるが、値d1が出力されるのはt9のタイミングであり図3の例に対して2クロックの期間遅くなる。以降、d2、d3、・・・、d12およびメモリのECC1ビットエラーを検出した事を示すerror−0信号も同様に図3の例に比べて2クロック遅いタイミングで出力される。
また、他系のECC訂正部34−1から出力されたメモリのECC1ビットエラーを検出したかどうかを示すr−error−1信号は、5つのF/Fによってr−error−1.1信号、r−error−1.2信号、r−error−1.3信号、r−error−1.4信号、r−error−1.5信号として伝達されるため、error−0信号と同様に図3の例に比べて2クロック遅いタイミングで訂正同期部36−0に入力される。
自系/他系共に2クロック遅いタイミングとなるが、どちらか一方のモジュールでECCエラーを検出しても、訂正処理を行うためのアクセスが両系同時にエラー訂正バッファ37−0とエラー訂正バッファ37−1とに取り込まれ、CPUモジュールがロックステップ動作を保ったままECC1ビットエラー訂正を行うことができる。この様にして、ノースブリッジ外部で他系のECC1ビットエラーを検出したかどうかを示す信号のタイミングが変化しても、ノースブリッジ内部の論理は!reset信号がローレベルの時の書き込みポインタ/読み込みポインタの設定値を変えるだけで対応が可能となる。すなわち、情報処理装置100には、このようなポインタの設定値の入力を受付け、入力された設定値を自身の記憶領域に記憶し、この設定値を遅延クロック数としてエラー訂正処理を行うことができる。
以上説明したように、本実施形態の情報処理装置100は、メモリアクセスにおいて片系でECC1ビットエラーが発生しても、ロックステップを外すことなくエラー訂正できる事を特徴としている。すなわち、複数系の各CPUモジュールにあるノースブリッジ内に、メモリのECC1ビットエラーを検出した事を示す信号と訂正に必要な情報を一時的に記憶するECC訂正同期部(訂正同期部36−0、訂正同期部36−1)を設け、ECC訂正同期部にFTサーバにおける他系のECC1ビットエラーを検出したことを示す信号を入力して、両系のどちらかでメモリのECC1ビットエラーが発生した場合、両系のタイミングを合わせてECC1ビットエラー訂正のためのメモリ書込み処理を行うことで、ロックステップを維持したままメモリのECC1ビットエラーの訂正を行うものである。
これによれば、情報処理動作を二重化した状態のままECC1ビットエラー訂正が可能になるため、ECC1ビットエラーが発生してもシステムの可用性を維持する事が可能となり、従来のFTサーバに対して可用性を高める事ができる。
また、本発明による構成によって、ノースブリッジの外部端子やCPUモジュール間に追加する信号はECC1ビットエラーを示す信号の入力/出力各1本の計2本のみであり、必要となるコストを抑えて上記効果を得ることができる。
なお、本実施形態の情報処理装置100は、高可用性を求められる領域においてクロック同期させてプロセッサやメモリを二重化する装置に適用できるため、FTサーバだけでなく他のコンピュータ装置やネットワーク機器、組込み向け装置等の、高可用性を求められる情報処理装置に適用できる。
また、本発明による構成によって、ノースブリッジの外部端子やCPUモジュール間に追加する信号はECC1ビットエラーを示す信号の入力/出力各1本の計2本のみであり、必要となるコストを抑えて上記効果を得ることができる。
なお、本実施形態の情報処理装置100は、高可用性を求められる領域においてクロック同期させてプロセッサやメモリを二重化する装置に適用できるため、FTサーバだけでなく他のコンピュータ装置やネットワーク機器、組込み向け装置等の、高可用性を求められる情報処理装置に適用できる。
以上、本発明の実施形態について説明した。本実施形態による各機能部は、専用の回路、ハードウェア(例えば、ワイヤードロジック等)により実現されるが、メモリおよびCPU(中央処理装置)により構成され、各部の機能を実現するためのプログラムをメモリからロードして実行することによりその機能を実現させるものであってもよい。また、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりその機能を実現させるものであってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1−0 CPUモジュール1−0
1−1 CPUモジュール1−1
2−0 プロセッサ2−0
2−1 プロセッサ2−1
3−0 ノースブリッジ3−0
3−1 ノースブリッジ3−1
4−0 メモリ4−0
4−1 メモリ4−1
5−0 IOモジュール5−0
5−1 IOモジュール5−1
30−0 ルータ30−0
30−1 ルータ30−1
31−0 書き込みバッファ31−0
31−1 書き込みバッファ31−1
32−0 ECC発生部32−0
32−1 ECC発生部32−1
33−0 メモリ制御部33−0
33−1 メモリ制御部33−1
34−0 ECC訂正部34−0
34−1 ECC訂正部34−1
35−0 読み込みバッファ35−0
35−1 読み込みバッファ35−1
36−0 訂正同期部36−0
36−1 訂正同期部36−1
37−0 エラー訂正バッファ37−0
37−1 エラー訂正バッファ37−1
50−0 FT制御部50−0
50−1 FT制御部50−1
51−0 IO部51−0
51−1 IO部51−1
100 情報処理装置100
360−0 訂正同期バッファ360−0
360−1 訂正同期バッファ360−1
361−0 書き込みポインタ361−0
361−1 書き込みポインタ361−1
362−0 読み込みポインタ362−0
362−1 読み込みポインタ362−1
363−0 OR回路363−0
363−1 OR回路363−1
1−1 CPUモジュール1−1
2−0 プロセッサ2−0
2−1 プロセッサ2−1
3−0 ノースブリッジ3−0
3−1 ノースブリッジ3−1
4−0 メモリ4−0
4−1 メモリ4−1
5−0 IOモジュール5−0
5−1 IOモジュール5−1
30−0 ルータ30−0
30−1 ルータ30−1
31−0 書き込みバッファ31−0
31−1 書き込みバッファ31−1
32−0 ECC発生部32−0
32−1 ECC発生部32−1
33−0 メモリ制御部33−0
33−1 メモリ制御部33−1
34−0 ECC訂正部34−0
34−1 ECC訂正部34−1
35−0 読み込みバッファ35−0
35−1 読み込みバッファ35−1
36−0 訂正同期部36−0
36−1 訂正同期部36−1
37−0 エラー訂正バッファ37−0
37−1 エラー訂正バッファ37−1
50−0 FT制御部50−0
50−1 FT制御部50−1
51−0 IO部51−0
51−1 IO部51−1
100 情報処理装置100
360−0 訂正同期バッファ360−0
360−1 訂正同期バッファ360−1
361−0 書き込みポインタ361−0
361−1 書き込みポインタ361−1
362−0 読み込みポインタ362−0
362−1 読み込みポインタ362−1
363−0 OR回路363−0
363−1 OR回路363−1
Claims (4)
- プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置であって、
前記CPUモジュールは、
自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶する記憶部と、
生成された前記第1の訂正情報を他系の前記CPUモジュールに送信する送信部と、
他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信する受信部と、
前記他系のCPUモジュールから前記第2の訂正情報を受信した遅延に応じて、前記記憶部に記憶されている前記第1の訂正情報を読み出し、前記第2の訂正情報と前記第1の訂正情報とを同期してエラー訂正処理を行う訂正同期部と、
を備えることを特徴とする情報処理装置。 - 前記訂正同期部は、
前記他系のCPUモジュールから前記第2の訂正情報が送信されてから、当該第2の訂正情報を自系の前記受信部が受信するまでの遅延クロック数を予め記憶し、前記記憶部に前記第1の訂正情報が記憶されてから、前記遅延クロック数分のクロック数が経過した際に、前記記憶部から前記第1の訂正情報を読み出して前記エラー訂正処理を行う
ことを特徴とする請求項1に記載の情報処理装置。 - 前記訂正同期部は、
前記遅延クロック数の入力を受付け、入力された遅延クロック数に応じて前記エラー訂正処理を行う
ことを特徴とする請求項2に記載の情報処理装置。 - プロセッサと、誤り検出・訂正機能を有するメモリとが含まれる複数系のCPUモジュールがクロック同期して同一の処理を行うロックステップ方式の情報処理装置の情報処理方法であって、
前記CPUモジュールが、
自系のメモリから誤りが検出された場合に生成される第1の訂正情報を記憶するステップと、
生成された前記第1の訂正情報を他系の前記CPUモジュールに送信するステップと、
他系のCPUモジュールのメモリが誤りを検出した場合に送信される第2の訂正情報を受信するステップと、
前記他系のCPUモジュールから前記第2の訂正情報を受信した遅延に応じて、前記記憶部に記憶されている前記第1の訂正情報を読み出し、前記第2の訂正情報と前記第1の訂正情報とを同期してエラー訂正処理を行うステップと、
を備えることを特徴とする情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010218254A JP2012073828A (ja) | 2010-09-29 | 2010-09-29 | 情報処理装置、情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010218254A JP2012073828A (ja) | 2010-09-29 | 2010-09-29 | 情報処理装置、情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012073828A true JP2012073828A (ja) | 2012-04-12 |
Family
ID=46169926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010218254A Pending JP2012073828A (ja) | 2010-09-29 | 2010-09-29 | 情報処理装置、情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012073828A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016127143A1 (en) * | 2015-02-06 | 2016-08-11 | Intel Corporation | Dynamically changing lockstep configuration |
JP2017005483A (ja) * | 2015-06-10 | 2017-01-05 | 三菱電機株式会社 | データ処理装置、データ処理システム及びデータ処理方法 |
US9734023B2 (en) | 2014-08-01 | 2017-08-15 | Renesas Electronics Corporation | Semiconductor device with output data selection of lockstepped computing elements based on diagnostic information |
CN115190069A (zh) * | 2022-04-26 | 2022-10-14 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
WO2023022035A1 (ja) * | 2021-08-18 | 2023-02-23 | 株式会社エヌエスアイテクス | プロセッサ |
-
2010
- 2010-09-29 JP JP2010218254A patent/JP2012073828A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734023B2 (en) | 2014-08-01 | 2017-08-15 | Renesas Electronics Corporation | Semiconductor device with output data selection of lockstepped computing elements based on diagnostic information |
US10365979B2 (en) | 2014-08-01 | 2019-07-30 | Renesas Electronics Corporation | Lockstepped CPU selection based on failure status |
WO2016127143A1 (en) * | 2015-02-06 | 2016-08-11 | Intel Corporation | Dynamically changing lockstep configuration |
US9697094B2 (en) | 2015-02-06 | 2017-07-04 | Intel Corporation | Dynamically changing lockstep configuration |
JP2017005483A (ja) * | 2015-06-10 | 2017-01-05 | 三菱電機株式会社 | データ処理装置、データ処理システム及びデータ処理方法 |
WO2023022035A1 (ja) * | 2021-08-18 | 2023-02-23 | 株式会社エヌエスアイテクス | プロセッサ |
CN115190069A (zh) * | 2022-04-26 | 2022-10-14 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
CN115190069B (zh) * | 2022-04-26 | 2023-12-05 | 中国人民解放军国防科技大学 | 一种高性能片上网络容错路由器装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9594647B2 (en) | Synchronization and order detection in a memory system | |
US9594646B2 (en) | Reestablishing synchronization in a memory system | |
US9318171B2 (en) | Dual asynchronous and synchronous memory system | |
US7272681B2 (en) | System having parallel data processors which generate redundant effector date to detect errors | |
EP1703400B1 (en) | Dual storage apparatus and control method for the dual storage apparatus | |
JP2004046611A (ja) | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム | |
JP6280359B2 (ja) | プログラマブルコントローラ | |
JPH03184130A (ja) | ソフトウェアの誤り処理方法 | |
JP2012073828A (ja) | 情報処理装置、情報処理方法 | |
US7139965B2 (en) | Bus device that concurrently synchronizes source synchronous data while performing error detection and correction | |
JP2014032516A (ja) | ストレージ装置、制御装置およびデータ保護方法 | |
US7363531B2 (en) | Data synchronization for system controllers | |
CN110147343B (zh) | 一种全比较的Lockstep处理器架构 | |
JP2013206265A (ja) | フォールトトレラント制御装置、フォールトトレラントシステムの制御方法 | |
JP5174603B2 (ja) | メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ | |
JP2010026896A (ja) | メモリシステム、及び、メモリエラー要因特定方法 | |
JP4299634B2 (ja) | 情報処理装置及び情報処理装置の時計異常検出プログラム | |
JP3434735B2 (ja) | 情報処理システム及びそれに用いる障害処理方式 | |
JPH03184109A (ja) | データ処理装置における目標指定リセット法 | |
JP2014016925A (ja) | 情報処理システム、データ切替方法およびプログラム | |
JP5604799B2 (ja) | フォールトトレラントコンピュータ | |
JP7485877B2 (ja) | 情報処理システム、処理方法、およびプログラム | |
US7249203B2 (en) | Programmatic time-gap defect detection apparatus and method | |
JP2011048441A (ja) | 二重化システム、及び、二重化方法 | |
JP2006195863A (ja) | エラー検出装置 |