JP2007058419A - Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム - Google Patents
Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム Download PDFInfo
- Publication number
- JP2007058419A JP2007058419A JP2005241198A JP2005241198A JP2007058419A JP 2007058419 A JP2007058419 A JP 2007058419A JP 2005241198 A JP2005241198 A JP 2005241198A JP 2005241198 A JP2005241198 A JP 2005241198A JP 2007058419 A JP2007058419 A JP 2007058419A
- Authority
- JP
- Japan
- Prior art keywords
- error
- logic circuit
- circuit
- memory
- data transfer
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/31816—Soft error testing; Soft error rate evaluation; Single event testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Logic Circuits (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】 PLD上のメモリ内の情報に従って構築される論理回路を備えた装置において、そのメモリでソフトエラーが発生した場合に、その装置のスループットの劣化を抑えた制御を行えるようにする。
【解決手段】 ストレージシステム100が、他の装置(1)とメディアドライブ150との間でのデータ転送を制御するPLD(217)と、プロセッサ(215)とを備える。PLD(217)が、PLDの外に存在する情報源(15)から入力された情報を記憶するメモリ(213)と、複数の回路要素から成る回路要素群(3)と、メモリ内の情報に従って回路要素群上で構築された論理回路(2)とを備える。プロセッサが、メモリでソフトエラーが発生したことを検出し、論理回路でエラーが生じたか否かを検出し、双方の検出の結果に応じた制御を行う。
【選択図】図3
【解決手段】 ストレージシステム100が、他の装置(1)とメディアドライブ150との間でのデータ転送を制御するPLD(217)と、プロセッサ(215)とを備える。PLD(217)が、PLDの外に存在する情報源(15)から入力された情報を記憶するメモリ(213)と、複数の回路要素から成る回路要素群(3)と、メモリ内の情報に従って回路要素群上で構築された論理回路(2)とを備える。プロセッサが、メモリでソフトエラーが発生したことを検出し、論理回路でエラーが生じたか否かを検出し、双方の検出の結果に応じた制御を行う。
【選択図】図3
Description
本発明は、PLD(Programmable Logic Device)上のメモリ内の情報に従って構築される論理回路を備えた装置を制御するための技術に関する。
従来、α線や中性子線がメモリに照射される等の原因によって、メモリ内の情報が化けてしまう(例えば「1」というビットが「0」に変わってしまう)こと、つまりソフトエラーが発生してしまうことが知られている(例えば、特開平8−137764号公報)。
ところで、メモリ内の回路構成情報(論理回路の構成を表す情報)が表す構成の論理回路を構築することができるタイプのPLDが知られている。そのようなPLDの一種として、FPGA(Field Programmable Gate Array)がある。FPGAは、例えば、複数の回路要素から成る回路要素群と、その回路要素群上で論理回路を構成するためのメモリ(以下、コンフィギュレーションメモリ)とを備えている。回路要素群上には、コンフィギュレーションメモリ内の回路構成情報が表す構成の論理回路が構築される。コンフィギュレーションメモリでソフトエラーが発生してしまうと、ソフトエラーの回路構成情報が初期のものと違ってしまい、故に、FPGA内の論理回路が意図しない構成の回路に書き変わってしまう可能性がある。
近年、FPGAは、微細化と大容量化が進んでおり、それに伴って、コンフィギュレーションメモリも微細化され得る。このため、コンフィギュレーションメモリ内の情報が、放射線の影響を受け易くなり、ソフトエラーの発生率が高くなる可能性が出る。故に、ソフトエラーの発生が無視できなくなりつつある。
FPGAには、コンフィギュレーションメモリでソフトエラーが発生したか否かをチェックするエラー監視機能が搭載されているものがある。このエラー監視機能により、ソフトエラーが発生した場合には、ソフトエラーの発生が報告される。
発生したソフトエラーには、構築された論理回路に実際に影響するものとしないものとがある。しかし、それにも関わらず、FPGAに搭載されているエラー監視機能では、ソフトエラーが発生すれば、ソフトエラーの発生が報告される。このため、発生したソフトエラーが、構築された論理回路に実際に影響するものか否かに応じた制御を行うことができない。例えば、ソフトエラーから回復させるための方法として、当該FPGAが搭載されている装置の主電源を一旦切断して、再び当該装置の主電源を投入する方法があるが、ソフトエラーが生じる度に主電源を切断するのでは、装置の使い勝手が良くない。特に、この方法は、FPGAを搭載した装置が、動作を長期間停止することが許されない装置(いわゆる無停止装置)、具体的には、例えば、24時間稼動することが求められるストレージシステムである場合には、好ましくない。
従って、本発明の一つの目的は、PLD上のメモリ内の情報に従って構築される論理回路を備えた装置において、そのメモリでソフトエラーが発生した場合に、その装置のスループットの劣化を抑えた制御を行えるようにすることにある。
本発明の他の目的は、後述の説明から明らかになるであろう。
本発明に従うストレージシステムは、他の装置との間でデータを送受信されるデータを記憶することができるメディアドライブと、前記他の装置と前記メディアドライブとの間のデータ転送を制御するPLDと、プロセッサ(例えばマイクロプロセッサ)とを備える。前記PLDは、前記PLDの外に存在する情報源から入力された、論理回路の構成を表した回路構成情報を記憶することができるメモリであるメモリと、複数の回路要素から成る回路要素群と、前記メモリ内の回路構成情報に従って前記回路要素群上で構築された、前記データ転送を制御する論理回路とを備える。前記プロセッサは、前記メモリでソフトエラーが発生したことを検出し、前記論理回路でエラーが生じたか否かを検出し、双方の検出の結果に応じた制御を行う。別の言い方をすれば、プロセッサに代えて、ストレージシステムは、前記メモリでソフトエラーが発生したことを検出する第一の検出手段と、前記論理回路でエラーが生じたか否かを検出する第二の検出手段と、双方の検出の結果に応じた制御を行う制御手段とを備えることができる。
他の装置は、例えば、ホスト装置であっても良いし、別のストレージシステムであっても良い。
また、前記情報源は、前記メモリよりも放射線の影響を受けにくいものであればどのようなものでも採用し得る。例えば、前記メモリとは別のメモリであっても良いし、前記ストレージシステムと通信可能に接続されたコンピュータマシンであっても良い。
メモリでソフトエラーが発生したことは、例えば、メモリからの割込み信号により、検出することができる。その割込み信号は、例えば、メモリでソフトエラーが発生したか否かをチェックするエラー監視機能により発行することができる。
前記論理回路でエラーが生じたか否かは、論理回路からエラー報告が出力されたか否かにより、検出することができる。この場合、論理回路は、例えば、論理回路でエラーが発生したか否かをチェックしエラーを検出した場合にエラー報告を出力するエラーチェック回路を備えることができる。
本発明に従うストレージシステムは、複数のメディアドライブを備えるシステムであっても良いし、サーバマシンであっても良い。このストレージシステムは、いわゆる無停止装置であっても良い。
本発明の第一の態様では、前記プロセッサ(又は前記制御手段)は、前記ソフトエラー又は前記エラー報告が出力されたことを検出した場合に、前記論理回路を介して行われるデータの転送を停止させることができる。また、前記プロセッサ(又は前記制御手段)は、少なくとも前記ソフトエラーを検出した場合に、前記メモリ内の回路構成情報を前記メモリに読み込ませて、前記メモリに読み込まれた回路構成情報に従って前記論理回路を再び構築させることができる。この場合、前記プロセッサ(又は前記制御手段)は、前記論理回路を再構築させてから一定時間経っても、前記ソフトエラーが検出されないならば、前記データの転送を再開させることができる。また、前記プロセッサ(又は前記制御手段)は、前記論理回路を再構築(reconfiguration)させてから一定時間内に、前記メモリでソフトエラーが発生したことが検出されたならば、前記PLD又はそれを備えた回路基板の交換を命じることができる。ここで、回路基板とは、例えば、PLDを備えたインターフェース制御基板(例えば後述のCHA或いはDKA)とすることができる。また、回路基板の交換の命令は、例えば、ストレージシステムに通信可能に接続された装置が備えるディスプレイ画面に交換することを表示する、ことにより行うことができる。
本発明の第二の態様では、前記プロセッサ(又は前記制御手段)は、前記ソフトエラー又は前記エラー報告が出力されたことを検出した場合に、前記論理回路を介して行われるデータの転送を停止させることができる。また、前記プロセッサ(又は前記制御手段)は、少なくとも前記エラー報告が出力されたことを検出した場合に、前記ソフトエラーを検出する所定時間前から前記ソフトエラーを検出するまでに送受信された特定のデータを無効化するための無効化処理を実行することができる。ここで、「無効化処理」とは、例えば、特定のデータが何であるかを他の装置に通知し、その他の装置に、当該特定のデータをストレージシステムに再送してもらう、或いは、当該特定のデータを他の装置から消去してもらうことである。或いは、「無効化処理」とは、例えば、他の装置から受信してメディアドライブに書かれたデータのうち、特定のデータを、メディアドライブから消去することである。
本発明の第三の態様では、前記プロセッサ(又は前記制御手段)は、前記ソフトエラーを検出したが前記論理回路でエラーが生じたことをしなかった場合に、前記ソフトエラーが発生したことを所定の記憶域に書き込むことができる。
本発明の第四の態様では、前記PLD及び前記プロセッサを備えたデータ転送系が多重化されていてもよい。或るデータ転送系において、プロセッサが、前記ソフトエラーが検出された場合に、前記論理回路を介して行われるデータの転送を停止させてもよい。前記或るデータ転送系においてデータの転送が停止されても、他のデータ転送系が、該他のデータ転送系における論理回路を介したデータ転送を行うことができる。
本発明に従う制御方法は、PLDの外に存在する情報源から入力された情報を記憶するメモリと、複数の回路要素から成る回路要素群と、前記メモリ内の情報に従って前記回路要素群上で構築された論理回路とを備えるPLDを有する装置の制御方法である。この制御方法では、前記メモリでソフトエラーが発生したことを検出し、前記論理回路でエラーが生じたか否かを検出し、双方の検出の結果に応じた制御を行うことが行われる。
この制御方法は、例えば、コンピュータプログラムがコンピュータに読み込まれて実行されることによって行うことができる。そのコンピュータプログラムは、CD−ROM等の記録媒体に記録されてもよい。この場合、コンピュータが、この記録媒体から上記コンピュータプログラムを読み込みインストールすることができる。また、そのコンピュータプログラムは、インターネットなどの通信ネットワークを介してコンピュータにダウンロードされても良い。また、コンピュータは、CPU等のプロセッサであっても良いし、CPUやメモリ等を備えた情報処理装置(例えば、パーソナルコンピュータ、サーバマシン或いはワークステーション)であっても良い。
本発明によれば、PLD上のメモリ内の情報に従って構築される論理回路を備えた装置において、そのメモリでソフトエラーが発生した場合に、その装置のスループットの劣化を抑えた制御を行うことができる。
図1は、本発明の一実施形態に係るストレージシステムの概要を示すブロック図である。
ストレージシステム100は、通信ネットワーク(例えばSAN(Storage Area Network))32を介して、複数台(一台でも良い)のホスト装置1、1、…と通信可能に接続されている。
ストレージシステム100は、例えばRAID(Redundant Array of Independent Disks)のようなディスクアレイ装置とすることができる。ストレージシステム100は、例えば、ストレージシステム100が行う処理を制御する制御部101と、RAIDグループ210と、サービスプロセッサ(SVP)281とを備える。制御部101は、例えば、一又は複数のディスクアダプタ(以下、DKA)120と、一又は複数のチャネルアダプタ(以下、CHA)110と、キャッシュメモリ130と、共有メモリ140と、スイッチング制御部270とを備える。
RAIDグループ210は、複数のHDD(ハードディスクドライブ)150を含んでおり、例えば、RAID1やRAID5等のRAIDに基づく冗長記憶を提供する。各HDD150が提供する物理的な記憶領域上には、論理的な記憶領域である論理デバイス(以下、LDEV)6を少なくとも一つ以上設定可能である。LDEV6は、ホスト装置1によって読み書きされるデータを記憶することができる。
各DKA120は、各HDD150との間のデータ授受を制御するものである。各DKA120は、例えば、マイクロプロセッサ(以下、MP)、ROM、RAM等を含んだマイクロコンピュータシステムとして構成される。
各CHA110は、通信ネットワーク32に接続することができる少なくとも一つのポートを有し、ホスト装置1からデータを受信することができる。各CHA110は、DKA120と同様に、MPや、ROM、RAM等を含んだマイクロコンピュータシステムとして構成可能である。
キャッシュメモリ130は、例えば、揮発(volatile)または不揮発(nonvolatile)の半導体メモリから構成することができる。キャッシュメモリ130は、ホスト装置1からのデータや、LDEV6から読み出されたデータを記憶することができる。
共有メモリ140は、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ140は、例えば、ホスト装置1から受信した各種コマンドや、ストレージシステム100の制御に使用する制御情報等を記憶する。コマンドや制御情報等は、複数の共有メモリ140によって、冗長記憶されてもよい。なお、キャッシュメモリ130と共有メモリ140とは、それぞれ別々のメモリとして構成することもできるし、あるいは、メモリの一部をキャッシュメモリ領域として使用し、同一のメモリの別の一部を共有メモリ領域として使用することもできる。
スイッチング制御部270は、各DKA120と、各CHA110と、キャッシュメモリ130と、共有メモリ140とを、それぞれ相互に接続するものである。スイッチング制御部270は、例えば、超高速クロスバスイッチ等から構成することができる。
SVP281は、入力装置や出力装置(例えばディスプレイ画面)を備えた装置(例えばノート型のパーソナルコンピュータ)であり、例えば内部ネットワーク(例えばLAN)282Aを介して、ストレージシステム100内の所定の記憶域(例えば共有メモリ140)に、所定の制御情報を記憶させることができる。
次に、ストレージシステム100が行う処理の一例について説明する。CHA110は、通信ネットワーク32を介して、ホスト装置1から書込み要求及び書込み対象データを受信する。受信された書込み要求は共有メモリ140に記憶され、受信された書込み対象データはキャッシュメモリ130に記憶される。DKA120は、共有メモリ140を随時参照している。DKA120は、共有メモリ140に記憶されている未処理の書込み要求を発見すると、この書込み要求に従って、キャッシュメモリ130から書込み対象データを読み出し、アドレス変換等を行う。DKA120は、書込み要求によって指定されたLDEV6を有するHDD150に、書込み対象データを書き込む。
ホスト装置1からの読出し要求を処理する場合を説明する。CHA110は、ホスト装置1から読出し要求を受信すると、この読出し要求を共有メモリ140に記憶させる。DKA120は、共有メモリ140内で未処理の読出し要求を発見すると、この読出し要求によって指定されたLDEV6を有するHDD150からデータを読み出す。DKA120は、読み出したデータをキャッシュメモリ130に記憶させる。また、DKA120は、要求されたデータの読出しが完了した旨を、共有メモリ140を介して、CHA110に通知する。CHA110は、キャッシュメモリ130からデータを読み込み、ホスト装置1に送信する。
以上が、本実施形態におけるシステム全体のハードウェア構成例である。
ところで、この実施形態に係るストレージシステム100では、特に、インターフェース制御基板であるCHA110及び/又はDKA120において行われる制御に特徴がある。CHA110とDKA120は、実質的に同じ制御を行うことができるので、以下、CHA110を代表的に例に採り、特徴となる制御について説明する。
図2は、CHA110のハードウェア構成例を示す。
CHA110には、二重化されたデータ転送系220A、220Bが設けられている。同時期に、これらのデータ転送系220A、220Bは、ホスト装置1とHDD150との間でやり取りされるデータの転送を制御することができる。
データ転送系220A、220Bは、実質的に同じ構成をしているので、データ転送系220Aを代表的に例に採って説明すると、一つのデータ転送系220Aには、プロトコルチップ211と、FPGA(Field Programmable Gate Array)217と、ローカルメモリ213と、CPU215と、リセット回路219とが備えられている。プロトコルチップ213は、ホスト装置1との間でデータを送受信する際にプロトコル変換を行うLSI(Large Scale Integration)である。FPGA217は、データの転送を行うLSIである。ローカルメモリ213は、種々の情報、例えば、CPU215に所定の制御を実行させるための制御プログラム214を記憶することができる。CPU215は、ローカルメモリ213から制御プログラム214を読み込んで実行することができる。リセット回路219は、FPGA219からの信号に応じて、プロトコルチップ211を介したデータの入出力を行うこと及びそれの停止を制御することができる。
図3は、データ転送系220Aにおける構成例をより詳細に示すブロック図である。
一つのデータ転送系220Aには、一種のPLDであるASIC(Application Specific Integrated Circuit)(以下、PLD/ASIC)17と、コンフィギュレーションROM15とが備えられており、それぞれが、FPGA217に接続されている。
PLD/ASIC17には、例えば、FPGA217から出力された後述のエラー報告が蓄積される第一フリップフロップ回路(以下、FF)と、CPU215からCPUバスを介して入力された再コンフィギュレーション指示が蓄積される第二FF21とが備えられる。
コンフィギュレーションROM15は、論理回路の構成を表す回路構成情報の情報源となるメモリ(このメモリとしては、不揮発性のメモリであれば、どのような種類のメモリでも採用し得る)であり、回路構成情報を記憶している。コンフィギュレーションROM15は、FPGA217に搭載されているコンフィギュレーションRAM213よりも、放射線の影響が受けにくいようになっている。
FPGA217には、コンフィギュレーションRAM213と、多数の回路要素(例えば、プリントされた配線、半導体スイッチ(例えばトランジスタ)など)から成る回路要素群3とが備えられる。
コンフィギュレーションRAM213には、コンフィギュレーションROM15から回路構成情報が読み出され記憶される。
回路要素群3上には、コンフィギュレーションRAM213に記憶された回路情報要素が表す構成通りの論理回路2が構築される。構築された論理回路2には、OR回路11と、ホスト装置1側との間で入出力されるデータのプロトコル制御を行う第一のプロトコルインターフェース回路(以下、プロトコルI/F)5と、HDD150側との間で入出力されるデータのプロトコル制御を行う第二のプロトコルI/F9と、第一プロトコルI/F5と第二プロトコルI/F7との間でやり取りされるデータを記憶するメモリ7といったサブ回路が備えられる。そして、サブ回路5、7及び9には、自分のサブ回路5、7又は9でエラーが発生したか否かをチェックするエラーチェック回路4、6及び8が備えられる。各エラーチェック回路4、6及び8は、OR回路11に接続されており、エラーが発生したことが検出された場合に、エラー報告(例えば「1」という信号)をOR回路11に入力する。OR回路11は、PLD/ASIC17の第一FF19に接続され、少なくともエラーチェック回路4、6又は8からエラー報告が入力された場合に、エラー報告(例えば「1」という信号)を第一FF19に出力する。これにより、第一FF19に、エラー報告が格納される(例えば、エラーの有無を表すフラグが立つ)。
図4は、論理回路2の構成例をより詳細に示したものである。
例えば、コンフィギュレーションRAM213に記憶された回路構成情報に従って、回路要素群3上で、多数のロジックセル(logic cell)31が構築される。ロジックセル31とは、論理回路2の一要素であり、論理回路2が行う種々の処理のうちの少なくとも一つの処理を行うものである。少なくとも一つのロジックセル31の集合により、上述したサブ回路5、7及び9が構成される。ロジックセル31の構成例を図5に示す。この図5の例示によれば、回路構成情報に従って、ロジックセル31内のルックアップテーブル(look up table)33や、FF37や、FF37に入力される信号値などが制御されたロジックセル31が構築される。
再び図4を参照する。コンフィギュレーションRAM213に記憶された回路構成情報に従って、回路要素群3上で、どのロジックセル31とどのロジックセル31とを電気的に接続するか否かも制御される。具体的には、各ロジックセル31と他のロジックセル31との間には、ロジックセル31同士を電気的に接続するか否かを制御するための半導体スイッチ(例えばトランジスタ)41が設けられている。コンフィギュレーションRAM213内の回路構成情報において、半導体スイッチ41に対応する値が何であるかにより(例えば「1」であるか「0」であるかにより)、その半導体スイッチ41がオンになるかオフになるかが制御される。
以上のようにして、図3に例示したような論理回路2が構築される。
ところで、FPGA217には、コンフィギュレーションRAM213でソフトエラーが発生したか否か(つまり、回路構成情報を構成する少なくとも一つのビットが化けたか否か)をチェックするためのエラー監視機能が搭載されている。このエラー監視機能は、不定期的に又は定期的に(例えば100ミリ秒に一回の割合で)、コンフィギュレーションRAM213でソフトエラーが発生したか否かのチェックを行う。このエラー監視機能により、コンフィギュレーションRAM213でソフトエラーが発生したことが検出された場合には、コンフィギュレーションRAM213からCPU215に割り込み信号が入力される。
また、前述したように、論理回路2の複数のサブ回路5、7及び9の各々には、自分のサブ回路5、7又は9でエラーが生じたか否かをチェックするためのエラーチェック回路4、6又は8が構築されている。エラーチェック回路4、6又は8は、ハードウェア的なエラー(例えば、半導体スイッチ41のオンとオフが勝手に切り替わってしまったというエラー)を検出することができる。以下、エラーチェック回路4、6又は8で検出されたエラーを、ソフトエラー(soft error)と区別するために「ハードエラー(hard error)」と称する。検出されたハードエラーは、サブ回路5、7又は9でのエラー、換言すれば、ホスト装置1とHDD15との間でのデータ転送に影響する可能性の高いエラーである。少なくとも一つのエラーチェック回路4、6又は8が、ハードエラーが検出し場合には、OR回路11にエラー報告を入力する。これにより、OR回路11から第一FF19にエラー報告が蓄積される。CPU215は、不定期的に又は定期的に、ハードエラーが発生したか否か、具体的には、第一FF19にエラー報告が蓄積されたか否かを監視する。
以上の通りであるから、CPU215は、エラー報告が蓄積されていることを検出するよりも先に割り込み信号が入力された場合には、ハードエラーよりも先にソフトエラーを検出することになる。逆に、CPU215は、割込み信号が入力されるよりも先にエラー報告が蓄積されていることを検出した場合には、ソフトエラーよりも先にハードエラーを検出することになる。CPU215は、どちらのエラーを先に検出したかによって、行う処理を違える。
図6は、ハードエラーよりも先にソフトエラーが検出される場合に行われる処理の流れの一例を示す。なお、以下に説明するCPU215が行う動作は、例えば、CPU215が制御プログラム214を実行することにより、行うことができる。
CHA110が稼動している最中に(ステップS1)、一方のデータ転送系220Aに存在するCPU215が、ハードエラーよりも先にソフトエラーを検出した場合、データ転送を停止させる(S2)。具体的には、例えば、CPU215は、CHA110における図示しないポートの設定値を所定値に変更することにより、データ転送を停止させる。これにより、そのCPU215が存在するデータ転送系220Aでは、データ転送が行われなくなり、他方のデータ転送系220Bのみで、データ転送が行われる(いわゆる縮退運転が行われる)。換言すれば、そのデータ転送系220Aを介するアクセスパス(例えば、ポート番号とLDEV番号とで構成される論理パス)は閉塞するが、他方のデータ転送系220Bを介するアクセスパスは閉塞されない。
次に、CPU215は、論理回路2でハードエラーが発生したか否かを検出する(S3)。具体的には、例えば、CPU215は、CPUバスを介して第一FF19にアクセスし、第一FF19にエラー報告が蓄積されたか否かをチェックする。
S3の結果、ハードエラーの発生が検出された場合には(S3でYES)、CPU215は、転送してしまったデータを無効化するための無効化処理を実行する(S4)。無効化の対象となるデータは、少なくとも、ソフトエラーの発生を検出する一定時間前からそのソフトエラーの発生を検出するまでに転送されたデータである。一定時間前とは、例えば、ソフトエラーの発生を検出する直前回にハードエラー無しが検出された時である。CPU215は、各時点毎に(例えば100ミリ秒毎に)、どの範囲を指定したデータを転送したか(例えば、時刻とアクセス範囲情報(例えば、論理ブロックアドレス及びLDEV番号)とのセット)を、ローカルメモリ213等の所定の記憶域に記録し、その記憶域を参照することにより、ソフトエラーの発生を検出する一定時間前の時点とそのソフトエラーの発生を検出した時点との間に転送されたデータ、つまり、無効化の対象となるデータを特定することができる。CPU215は、S2でデータ転送停止が行われるまで通信相手であったホスト装置1に、特定されたデータが何であるかを、能動的に又はホスト装置1からの問い合わせに応答して、通知することができる。それにより、ホスト装置1から無効化対象のデータが再送されること、或いは、ホスト装置1に読み出された無効化対象のデータがホスト装置1から削除されることが行われ得る。また、CPU215は、無効化対象のデータが或るHDD150に格納されたことを特定した場合には、そのデータをその或るHDD150から削除するようにすることができる。
S4の無効化処理を行う場合、CPU215は、無効化処理を行ったことを示すログを取ることができる(S5)。具体的には、例えば、CPU215は、無効化処理を行ったことを、ローカルメモリ213に存在するログファイル446に書き込むことができる。
その後、CPU215は、FPGA217を再コンフィギュレーションさせる(S7)。換言すれば、CPU215は、FPGA217をリブートする。具体的には、例えば、CPU215は、第二FF21(図3参照)に、再コンフィギュレーション指示を設定する(例えば、所定のフラグを立てる)。これにより、例えば、その設定がコンフィギュレーションRAM213で検出される。この場合、例えば、コンフィギュレーションRAM213から、コンフィギュレーションRAM213からリセット回路219に対してリセット信号が出力され、リセット回路219により、プロトコルチップ211でアクセス要求の受付が不能にされる。そして、その間に、コンフィギュレーションROM15からコンフィギュレーションRAM213に、回路構成情報が読み込まれ、コンフィギュレーションRAM213に読み込まれた回路構成情報に従って、回路要素群3上に、論理回路2が再構築される。その後、コンフィギュレーションRAM213からリセット回路219に対してリセット解除信号が出力され、リセット回路219により、プロトコルチップ211でアクセス要求の受付が可能にされる。
S7を行ってもなお、ソフトエラーが発生するようであれば(S8でYES)、CPU217は、自分を搭載するCHA110の基板を交換することの指示をSVP281に出す(S9)。これにより、例えば、SVP281のディスプレイ画面に、そのCHA110の基板を交換することの指示メッセージが表示され、保守員が、その指示メッセージに従って、そのCHA110の交換を行うことができる。
S7を行ったことにより、ソフトエラーが再発生しなければ(S8でNO)、CPU217は、通常運転を再開させる。具体的には、例えば、S7が完了してから一定時間経過しても割込み信号が入力されなければ、CPU217は、S2でのデータ転送停止を解除する(例えば、ポートの設定値を元の値に戻す)(S10)。これにより、データ転送系220Aでは、通常運転が再開される(S1)。
上記のS3の結果、ハードエラーの発生が検出されなかった場合には(S3でNO)、CPU215は、ソフトエラーが発生したことを示すログを取る(S6)。具体的には、例えば、CPU215は、ソフトエラーが発生したことを、ローカルメモリ213に存在するログファイル446に書き込むことができる。以後、CPU215は、上述したS7を行う。
図7は、ソフトエラーよりも先にハードエラーが検出される場合に行われる処理の流れの一例を示す。
CHA110が稼動している最中に(S11)、CPU215が、ソフトエラーよりも先にハードエラーを検出した場合、データ転送を停止させる(S12)。
そして、CPU215は、コンフィギュレーションRAM213でソフトエラーが発生したか否かを検出する(S13)。具体的には、例えば、CPU215は、S12の後、所定時間、割込み信号の入力を待つ。
CPU215は、ソフトエラーの発生を検出した場合には(S13でYES)、上記S4、S5、S7、S8及びS9と同様の処理を行うことができる(S14−S18)。
一方、CPU215は、ソフトエラーの発生を検出しなかった場合には(S13でNO)、上記S9と同様の処理を行う(S18)。
図8は、図6のS9又は図7のS18による基板交換指示によってSVP281に表示される画面の一例を示す。
図8の画面は、ログファイル446に記録されたハードエラー及びソフトエラーも一緒に表示された例である。図8において、「PK」はパッケージの略であり、具体的には、CHA110及びDKA120を示す。より具体的には、PK#1−PK#4は、CHA110を表し、PK#5−PK#8は、DKA120を示す。故に、例えば、この図8によれば、PK#7(DKA120)が交換必要であることがわかる。また、PK#1(CHA110)のCPU#0で、ハードエラーは検出されなかったがソフトエラーが検出されたことがわかる。また、PK#6(DKA120)のCPU#1により、S4の無効化処理が行われたことがわかる。
以上が、本実施形態についての説明である。
上述した実施形態によれば、FPGA217のコンフィギュレーションRAM213にロードされる回路構成情報には、データ転送を行う論理回路2でハードウェア的なエラーが発生したか否かをチェックするエラーチェック回路を構築するための情報が含まれており、その情報に従って、当該エラーチェック回路が構築される。コンフィギュレーションRAM213でソフトエラーが発生したことが検出された場合、論理回路2のエラーチェック回路でハードエラーが検出されたか否かが検出され、その検出結果に応じて、異なる制御が行われる。例えば、ソフトエラーのみが検出された場合には、データの無効化処理を行うことなくFPGA217のリブートが行われ、それによってソフトエラーの発生が検出されなくなった場合には、そのFPGA217を備える基板(CHA110、DKA120)の交換は行われることなく、通常運転が再開される。これにより、ソフトエラーの発生が検出される都度に基板交換によりソフトエラーからの回復が行われる方法に比べて、ストレージシステム100において縮退運転が行われる時間長を抑えることができる。
以上、本発明の好適な幾つかの実施形態を説明したが、本発明は、それらの実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、図6において、ソフトエラーの発生が検出された場合、一回目のチェックで、ハードエラーの発生が検出されなかった場合、例えば、所定回数、或いは、ソフトエラーの発生を検出してから所定時間以内で何回でも、ハードエラーが発生したか否かのチェックが行われても良い。
また、例えば、図6において、ソフトエラーの発生が検出された場合、CPU215は、ハードエラーの発生も検出した場合にのみ、FPGA217のリブートを行って、ハードエラーの発生を検出しなかった場合には、少なくとも今回の(つまり同一の)ループの中では、FPGA217のリブートを行わなくても良い。
また、例えば、SVP281が、定期的に又は不定期的に、各CHA110やDKA120からログファイル446を収集し、SVP281が有する記憶資源(例えばメモリ又はハードディスク)に、収集されたログファイル446を蓄積してもよい。
また、例えば、コンフィギュレーションROM15には、複数種類の回路構成情報が含まれていて、それら複数種類の回路構成情報から一種類の回路構成情報(例えば、SVP281或いはホスト装置1から選択された回路構成情報)が、コンフィギュレーションRAM213にロードされても良い。また、読み出された回路構成情報の種類を示すデータ(例えば回路構成情報の番号)が、例えば、FPGA217の所定の記憶域で記憶されていて、FPGA217のリブートの際には、その記憶域で記憶されているデータが示す種類の回路構成情報がコンフィギュレーションROM15から選択されて、コンフィギュレーションRAM213にロードされても良い。
1…ホスト装置 2…論理回路 3…回路要素群 16…論理デバイス(LDEV) 15…ROM 17…PLD/ASIC(Application Specific Integrated Circuit) 19、21…フリップフロップ 32…通信ネットワーク 100…ストレージシステム 110…チャネルアダプタ(CHA) 120…ディスクアダプタ(DKA) 213…コンフィギュレーションRAM 215…CPU 217…FPGA
Claims (8)
- 他の装置との間でデータを送受信することができるストレージシステムにおいて、
送受信されるデータを記憶することができるメディアドライブと、
前記他の装置と前記メディアドライブとの間のデータ転送を制御するPLD(Programmable Logic Device)と、
プロセッサと
を備え、
前記PLDは、
前記PLDの外に存在する情報源から入力された、論理回路の構成を表した回路構成情報を記憶するメモリと、
複数の回路要素から成る回路要素群と、
前記メモリ内の回路構成情報に従って前記回路要素群上で構築された、前記データ転送を制御する論理回路と
を備え、
前記プロセッサが、
前記メモリでソフトエラーが発生したことを検出し、
前記論理回路でエラーが生じたか否かを検出し、
双方の検出の結果に応じた制御を行う、
ストレージシステム。 - 前記プロセッサは、
前記ソフトエラー又は前記論理回路でエラーが生じたことを検出した場合に、前記論理回路を介して行われるデータの転送を停止させ、
少なくとも前記ソフトエラーを検出した場合に、前記論理回路を再び構築させ、
前記論理回路を再構築させてから一定時間経っても、前記ソフトエラーが検出されないならば、前記データの転送を再開させる、
請求項1記載のストレージシステム。 - 前記プロセッサは、前記論理回路を再構築させてから一定時間内に、前記メモリでソフトエラーが発生したことが検出されたならば、前記PLD又はそれを備えた回路基板の交換を命じる、
請求項2記載のストレージシステム。 - 前記プロセッサは、
前記ソフトエラー又は前記論理回路でエラーが生じたことを検出した場合に、前記論理回路を介して行われるデータの転送を停止させ、
少なくとも前記論理回路でエラーが生じたことを検出した場合に、前記ソフトエラーを検出する所定時間前から前記ソフトエラーを検出するまでに送受信された特定のデータを無効化するための無効化処理を実行する、
請求項1記載のストレージシステム。 - 前記プロセッサは、前記ソフトエラーを検出したが前記論理回路でエラーが生じたことをしなかった場合に、前記ソフトエラーが発生したことを所定の記憶域に書き込む、
請求項1記載のストレージシステム。 - 前記PLD及び前記プロセッサを備えたデータ転送系が多重化されており、
或るデータ転送系において、プロセッサが、前記ソフトエラー又は前記論理回路でエラーが生じたことを検出した場合に、前記論理回路を介して行われるデータの転送を停止させ、
前記或るデータ転送系においてデータの転送が停止されても、他のデータ転送系が、該他のデータ転送系における論理回路を介したデータ転送を行う、
請求項1記載のストレージシステム。 - PLDの外に存在する情報源から入力された情報を記憶するメモリと、複数の回路要素から成る回路要素群と、前記メモリ内の情報に従って前記回路要素群上で構築された論理回路とを備えるPLDを有する装置の制御方法であって、
前記メモリでソフトエラーが発生したことを検出し、
前記論理回路でエラーが生じたか否かを検出し、
双方の検出の結果に応じた制御を行う、
制御方法。 - PLDの外に存在する情報源から入力された情報を記憶するメモリと、複数の回路要素から成る回路要素群と、前記メモリ内の情報に従って前記回路要素群上で構築された論理回路とを備えるPLDを有するコンピュータに実行させるためのコンピュータプログラムであって、
前記メモリでソフトエラーが発生したことを検出し、
前記論理回路でエラーが生じたか否かを検出し、
双方の検出の結果に応じた制御を行う、
ことを前記プロセッサに実行させるためのコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005241198A JP2007058419A (ja) | 2005-08-23 | 2005-08-23 | Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム |
US11/250,436 US7325179B2 (en) | 2005-08-23 | 2005-10-17 | Storage system comprising logical circuit configured in accordance with information in memory on PLD |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005241198A JP2007058419A (ja) | 2005-08-23 | 2005-08-23 | Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007058419A true JP2007058419A (ja) | 2007-03-08 |
Family
ID=37805792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005241198A Pending JP2007058419A (ja) | 2005-08-23 | 2005-08-23 | Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7325179B2 (ja) |
JP (1) | JP2007058419A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009017010A (ja) * | 2007-07-02 | 2009-01-22 | Nec Electronics Corp | 再構成可能デバイス |
WO2010052809A1 (ja) * | 2008-11-06 | 2010-05-14 | パナソニック株式会社 | 遅延シミュレーション装置、遅延シミュレーション方法、pldマッピング装置、pldマッピング方法、及び半導体集積回路 |
EP2608471A1 (en) | 2011-12-19 | 2013-06-26 | ALAXALA Networks Corporation | Network relay apparatus |
JP2014052781A (ja) * | 2012-09-06 | 2014-03-20 | Fujitsu Telecom Networks Ltd | Fpga監視制御回路 |
JP2014071576A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム |
WO2015068285A1 (ja) * | 2013-11-08 | 2015-05-14 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
JP2016025464A (ja) * | 2014-07-18 | 2016-02-08 | 株式会社デンソー | 信号処理装置 |
JP2016092546A (ja) * | 2014-10-31 | 2016-05-23 | 東日本電信電話株式会社 | 制御装置、制御方法及びコンピュータプログラム |
WO2016110968A1 (ja) * | 2015-01-07 | 2016-07-14 | 株式会社日立製作所 | プログラマブルデバイス及びそれを用いた制御装置、及びその障害対策方法 |
WO2016121015A1 (ja) * | 2015-01-28 | 2016-08-04 | 株式会社日立製作所 | フィールドプログラマブルゲートアレイ |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7425841B2 (en) | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US7330050B2 (en) | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
US7230869B1 (en) | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
US7443196B2 (en) | 2005-07-15 | 2008-10-28 | Tabula, Inc. | Configuration network for a configurable IC |
US7434123B2 (en) * | 2005-08-25 | 2008-10-07 | Honeywell International Inc. | Single event functional interrupt detection system |
US7669097B1 (en) * | 2006-03-27 | 2010-02-23 | Tabula, Inc. | Configurable IC with error detection and correction circuitry |
US7953907B1 (en) | 2006-08-22 | 2011-05-31 | Marvell International Ltd. | Concurrent input/output control and integrated error management in FIFO |
US8112468B1 (en) | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
US7562162B2 (en) * | 2007-04-25 | 2009-07-14 | At&T Intellectual Property I, L.P. | Systems and methods for distributed computing utilizing a smart memory apparatus |
US7925794B2 (en) * | 2007-08-17 | 2011-04-12 | At&T Intellectual Property I, L.P. | Systems and methods for localizing a network storage device |
WO2009035586A1 (en) | 2007-09-06 | 2009-03-19 | Tabula, Inc. | Configuration context switcher |
US8990651B2 (en) * | 2007-09-19 | 2015-03-24 | Tabula, Inc. | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
WO2010016857A1 (en) | 2008-08-04 | 2010-02-11 | Tabula, Inc. | Trigger circuits and event counters for an ic |
EP2553815A1 (en) | 2010-04-02 | 2013-02-06 | Tabula, Inc. | System and method for reducing reconfiguration power usage |
US8941409B2 (en) | 2011-07-01 | 2015-01-27 | Tabula, Inc. | Configurable storage elements |
JP6745586B2 (ja) * | 2015-04-28 | 2020-08-26 | 株式会社ソニー・インタラクティブエンタテインメント | プログラマブルデバイス、情報処理装置、およびプログラマブルデバイスにおける処理回路の制御方法 |
JP6880795B2 (ja) * | 2017-02-08 | 2021-06-02 | オムロン株式会社 | 制御装置およびその制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137764A (ja) | 1994-11-10 | 1996-05-31 | Fujitsu Ltd | 記憶装置のソフトエラー回復方法と固定障害検出方法 |
US6018817A (en) * | 1997-12-03 | 2000-01-25 | International Business Machines Corporation | Error correcting code retrofit method and apparatus for multiple memory configurations |
JP4643977B2 (ja) * | 2004-11-30 | 2011-03-02 | 富士通株式会社 | プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法 |
-
2005
- 2005-08-23 JP JP2005241198A patent/JP2007058419A/ja active Pending
- 2005-10-17 US US11/250,436 patent/US7325179B2/en not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009017010A (ja) * | 2007-07-02 | 2009-01-22 | Nec Electronics Corp | 再構成可能デバイス |
WO2010052809A1 (ja) * | 2008-11-06 | 2010-05-14 | パナソニック株式会社 | 遅延シミュレーション装置、遅延シミュレーション方法、pldマッピング装置、pldマッピング方法、及び半導体集積回路 |
US9237096B2 (en) | 2011-12-19 | 2016-01-12 | Alaxala Networks Corporation | Network relay apparatus |
EP2608471A1 (en) | 2011-12-19 | 2013-06-26 | ALAXALA Networks Corporation | Network relay apparatus |
JP2014052781A (ja) * | 2012-09-06 | 2014-03-20 | Fujitsu Telecom Networks Ltd | Fpga監視制御回路 |
JP2014071576A (ja) * | 2012-09-28 | 2014-04-21 | Fujitsu Ltd | ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム |
US9342407B2 (en) | 2012-09-28 | 2016-05-17 | Fujitsu Limited | Storage control apparatus and computer-readable recording medium recorded with control program |
WO2015068285A1 (ja) * | 2013-11-08 | 2015-05-14 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
JPWO2015068285A1 (ja) * | 2013-11-08 | 2017-03-09 | 株式会社日立製作所 | プログラマブルデバイス及びこれを用いた電子システム装置 |
JP2016025464A (ja) * | 2014-07-18 | 2016-02-08 | 株式会社デンソー | 信号処理装置 |
JP2016092546A (ja) * | 2014-10-31 | 2016-05-23 | 東日本電信電話株式会社 | 制御装置、制御方法及びコンピュータプログラム |
WO2016110968A1 (ja) * | 2015-01-07 | 2016-07-14 | 株式会社日立製作所 | プログラマブルデバイス及びそれを用いた制御装置、及びその障害対策方法 |
JPWO2016110968A1 (ja) * | 2015-01-07 | 2017-04-27 | 株式会社日立製作所 | プログラマブルデバイス及びそれを用いた制御装置、及びその障害対策方法 |
WO2016121015A1 (ja) * | 2015-01-28 | 2016-08-04 | 株式会社日立製作所 | フィールドプログラマブルゲートアレイ |
US10425081B2 (en) | 2015-01-28 | 2019-09-24 | Hitachi, Ltd. | Field programmable logic array |
Also Published As
Publication number | Publication date |
---|---|
US20070050689A1 (en) | 2007-03-01 |
US7325179B2 (en) | 2008-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007058419A (ja) | Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム | |
JP4723290B2 (ja) | ディスクアレイ装置及びその制御方法 | |
US7457916B2 (en) | Storage system, management server, and method of managing application thereof | |
JP4041473B2 (ja) | マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ | |
US7574623B1 (en) | Method and system for rapidly recovering data from a “sick” disk in a RAID disk group | |
EP1585022B1 (en) | Disk array device and data processing method thereof | |
US7558981B2 (en) | Method and apparatus for mirroring customer data and metadata in paired controllers | |
US9329954B2 (en) | False power failure alert impact mitigation | |
JP2004021811A (ja) | 不揮発メモリを使用したディスク制御装置 | |
JP2005267111A (ja) | 記憶制御システム及び記憶制御システムの制御方法 | |
US20230251931A1 (en) | System and device for data recovery for ephemeral storage | |
US7457990B2 (en) | Information processing apparatus and information processing recovery method | |
US11385815B2 (en) | Storage system | |
JP2005122763A (ja) | 記憶装置 | |
JP2007206949A (ja) | ディスクアレイ装置、ディスクアレイ装置の制御方法、ディスクアレイ装置の制御プログラム | |
US11755223B2 (en) | Systems for modular hybrid storage devices | |
JP2007058873A (ja) | 不揮発メモリを使用したディスク制御装置 | |
US11586508B2 (en) | Systems and methods for backing up volatile storage devices | |
US20220404967A1 (en) | Storage system and data management method | |
JP2008217811A (ja) | 不揮発メモリを使用したディスク制御装置 |