JP2015215675A - 制御装置、制御方法、及び制御プログラム - Google Patents
制御装置、制御方法、及び制御プログラム Download PDFInfo
- Publication number
- JP2015215675A JP2015215675A JP2014096788A JP2014096788A JP2015215675A JP 2015215675 A JP2015215675 A JP 2015215675A JP 2014096788 A JP2014096788 A JP 2014096788A JP 2014096788 A JP2014096788 A JP 2014096788A JP 2015215675 A JP2015215675 A JP 2015215675A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error check
- unit
- storage device
- check information
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】情報処理装置の信頼性を向上させる。【解決手段】制御装置7は、データ保護機能のない経路21を経由して第1の記憶装置4からデータを読み出し、このデータのエラーチェック用のエラーチェック情報を生成する生成部27と、データとエラーチェック情報とを第2の記憶装置6に書き込むと共に、経路21を経由せずにエラーチェック情報を一時記憶領域23に書き込む第1の書き込み部27と、エラーチェック情報を、経路21を経由して第1の記憶装置4に書き込む第2の書き込み部29と、第1の書き込み部27が第1の記憶装置4が書き込んだエラーチェック情報と、第2の書き込み部29が一時記憶領域23に書き込んだエラーチェック情報とを比較し、両者が一致しない場合に、経路21でエラーが発生していると判定する判定部28と、をそなえる。【選択図】図1
Description
本発明は、制御装置、制御方法、及び制御プログラムに関する。
ストレージ装置にそなえられているControl Module(CM)等の情報処理装置では、停電等の発生時に、Central Processing Unit(CPU)配下のキャッシュメモリ内のデータを、停電時給電ユニットからの電力を用いて不揮発性メモリに退避させる。そして、次に情報処理装置を起動する際に、不揮発性メモリに退避(バックアップ)させたデータがキャッシュメモリに戻され、情報処理装置の処理が再開される。なお、以下の説明では、停電など、情報処理装置への電力供給が絶たれる状況を総称して「停電」と呼ぶ。
キャッシュメモリのデータのバックアップ先のメモリとしては、Serial Advanced Technology Attachment(SATA)準拠のSolid State Drive(SSD)(SATA−SSD)が多く用いられる。
SATA−SSDに対して、電源の切断前に、Standby、Standby Immediate、Sleep等のコマンドを実行して、パワーオフ(P−OFF)シーケンス(SEQ)を実行する必要がある。パワーオフシーケンスを実行せずに電力供給が絶たれると、期待外のパワーオフが発生して、SATA−SSDが故障する可能性がある。ここで、StandbyコマンドはSATA−SSDをスタンドバイモードに移行させるコマンドであり、Standby ImmediateコマンドはSATA−SSDを即時にスタンドバイモードに移行させるコマンである。又、Sleepコマンドは、SATA−SSDスリープモードに移行させるコマンドである。これらのコマンドやパワーオフシーケンスはATAにおいて一般的な概念であるため、その詳細な説明は省略する。なお、以下、簡潔を期するためにSATA−SSDを単にSSDと呼ぶ。
SATA−SSDに対して、電源の切断前に、Standby、Standby Immediate、Sleep等のコマンドを実行して、パワーオフ(P−OFF)シーケンス(SEQ)を実行する必要がある。パワーオフシーケンスを実行せずに電力供給が絶たれると、期待外のパワーオフが発生して、SATA−SSDが故障する可能性がある。ここで、StandbyコマンドはSATA−SSDをスタンドバイモードに移行させるコマンドであり、Standby ImmediateコマンドはSATA−SSDを即時にスタンドバイモードに移行させるコマンである。又、Sleepコマンドは、SATA−SSDスリープモードに移行させるコマンドである。これらのコマンドやパワーオフシーケンスはATAにおいて一般的な概念であるため、その詳細な説明は省略する。なお、以下、簡潔を期するためにSATA−SSDを単にSSDと呼ぶ。
データの保護のため、キャッシュメモリのデータをSSDに退避させる際に、所定のサイズのデータブロックに対してCyclic Redundancy Check(CRC)コードを生成して、データと共にCRCコードをSSDに退避させることが一般的に行なわれている。
一方、SSDにバックアップする対象となるキャッシュメモリのデータには、ハードウェアやファームウェアによってデータが保護されている領域と、データの保護が一切されてない領域とが存在する。
一方、SSDにバックアップする対象となるキャッシュメモリのデータには、ハードウェアやファームウェアによってデータが保護されている領域と、データの保護が一切されてない領域とが存在する。
一般に、キャッシュメモリのデータをSSDにバックアップする機能は、Field-Programmable Gate Array(FPGA)として実装されるが、FPGAのベンダーから提供されるハードウェア部品の中には、データ保護機構を持たないものもある。このようなデータ保護機能を持たないハードウェア部品が故障すると、データの破損を引き起こすおそれがある。
このような部品が使用されている場合には、キャッシュメモリのデータ保護が行なわれていない領域のデータがハードウェア故障等により破損し、破損したデータがSSDにバックアップされることが考えられる。情報処理システムの電源復旧(復電)後に、破損したデータがSSDからキャッシュメモリに復元されると、情報処理システムがシステムダウンしてしまうおそれがある。
このため、ハードウェアやファームウェアによるデータ保護が提供されないデータに対しても、何らかのデータ保護機能を提供することが望ましい。
しかし、情報処理システムにデータ保護機能を新たに設ける場合、既存のハードウェアやファームウェアを変更する必要があり、コストの上昇を招く。このため、情報処理システムの既存の構成を利用してデータ保護を提供することが望ましい。
しかし、情報処理システムにデータ保護機能を新たに設ける場合、既存のハードウェアやファームウェアを変更する必要があり、コストの上昇を招く。このため、情報処理システムの既存の構成を利用してデータ保護を提供することが望ましい。
上記課題に鑑みて、1つの側面では、本発明は、情報処理装置の信頼性を向上させることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、制御装置は、データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成する生成部と、前記データと前記エラーチェック情報とを第2の記憶装置に書き込むと共に、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込む第1の書き込み部と、前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込む第2の書き込み部と、前記第1の書き込み部が前記第1の記憶装置が書き込んだ前記エラーチェック情報と、前記第2の書き込み部が前記一時記憶領域に書き込んだ前記エラーチェック情報とを比較し、両者が一致しない場合に、前記経路でエラーが発生していると判定する判定部と、をそなえる。
又、制御方法は、データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成し、前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する。
更に、制御プログラムは、データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成し、前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する処理をコンピュータに実行させる。
本発明によれば、情報処理装置の信頼性を向上させることができる。
以下、図面を参照して、本実施の形態の一例としての制御装置、制御方法、及び制御プログラムについて説明する。
ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実行することができる。
(A)構成
最初に、図1,図2(a)〜(c)を参照して、実施形態の一例としての情報処理装置1の構成を説明する。
ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実行することができる。
(A)構成
最初に、図1,図2(a)〜(c)を参照して、実施形態の一例としての情報処理装置1の構成を説明する。
図1は、実施形態の一例としての情報処理装置(コンピュータ)1のハードウェア構成を示す図である。
情報処理装置1は、例えば不図示のストレージ装置にそなえられるストレージ制御装置(Control Module;CM)などである。
情報処理装置1は、CPU2、メモリコントローラ3、キャッシュメモリ(第1の記憶装置)4、Magnetoresistive Random Access Memory(MRAM)5、SATA−SSD6、及びバックアップ制御部7(制御装置)をそなえる。
情報処理装置1は、例えば不図示のストレージ装置にそなえられるストレージ制御装置(Control Module;CM)などである。
情報処理装置1は、CPU2、メモリコントローラ3、キャッシュメモリ(第1の記憶装置)4、Magnetoresistive Random Access Memory(MRAM)5、SATA−SSD6、及びバックアップ制御部7(制御装置)をそなえる。
CPU2は、種々の制御や演算を行なう処理装置であり、不図示のメモリ等に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。CPU2は、例えば、公知のCPUを使用して実装することができる。
メモリコントローラ3は、CPU2と後述するキャッシュメモリ4との間、CPU2と後述するバックアップ制御部7との間、及びキャッシュメモリ4とバックアップ制御部7との間のデータの転送を制御する。
メモリコントローラ3は、CPU2と後述するキャッシュメモリ4との間、CPU2と後述するバックアップ制御部7との間、及びキャッシュメモリ4とバックアップ制御部7との間のデータの転送を制御する。
キャッシュメモリ4は、CPU2に対して読み書きされるデータを、一時的に記憶するための高速アクセスが可能なメモリである。
ここで、キャッシュメモリ4の構成について説明する。
図2(a)〜(c)は、実施形態の一例としてのキャッシュメモリ4を示す図であり、図2(a)はキャッシュメモリ4内のデータの配置を、図2(b)は停電時のキャッシュメモリ4のバックアップ途中の状態を、図2(c)は停電時のキャッシュメモリ4へのCRCコードの書き込みをそれぞれ示す。
ここで、キャッシュメモリ4の構成について説明する。
図2(a)〜(c)は、実施形態の一例としてのキャッシュメモリ4を示す図であり、図2(a)はキャッシュメモリ4内のデータの配置を、図2(b)は停電時のキャッシュメモリ4のバックアップ途中の状態を、図2(c)は停電時のキャッシュメモリ4へのCRCコードの書き込みをそれぞれ示す。
図2(a)に示すように、通常時、キャッシュメモリ4には、ユーザデータが書き込まれるユーザデータ領域34と、情報処理装置1の各ファームウェアコンポーネントによって管理される制御テーブルが書き込まれる制御テーブル領域35とが存在する。
ユーザデータ領域34には、ユーザデータの所定サイズのブロック毎に、当該ブロックのデータを保護するためのBlock Check Code(BCC)コードが生成される。このBCCコードは、メモリコントローラ3や後述するバックアップ制御部7等のファームウェアによって生成され、ユーザデータの直後に書き込まれる。
ユーザデータ領域34には、ユーザデータの所定サイズのブロック毎に、当該ブロックのデータを保護するためのBlock Check Code(BCC)コードが生成される。このBCCコードは、メモリコントローラ3や後述するバックアップ制御部7等のファームウェアによって生成され、ユーザデータの直後に書き込まれる。
このように、ユーザデータ領域34のデータはBCCコードが生成されるため、これによりデータが保護される。例えば、ユーザデータ領域34のユーザデータを、後述するPCIe IF制御部21経由で読み出したときに、PCIe IF制御部21のハードウェア故障等によりデータが破損しても、BCCコードからこのデータ破損を検出することができる。なお、BCCコードの生成は、当業界で公知のBCCコード生成手法によって行なわれる。
制御テーブル領域35には、情報処理装置1の各種ハードウェアやファームウェアによって使用される制御テーブルが格納される。制御テーブル領域35のデータには、BCCコードが付与されていないため、データ保護はされていない。
このため、制御テーブル領域35のデータを、後述するPCIe IF制御部21経由で読み出した場合には、PCIe IF制御部21のハードウェア故障等によりデータが破損しても、データの破損は検出されない。
このため、制御テーブル領域35のデータを、後述するPCIe IF制御部21経由で読み出した場合には、PCIe IF制御部21のハードウェア故障等によりデータが破損しても、データの破損は検出されない。
ここで、制御テーブル領域35のデータにBCCコードを付与しない第1の理由は、制御テーブル領域35のデータは、ユーザデータ領域34のデータとは異なり固定ブロック長ではなく、データ長が可変であるため、BCCコードの管理が困難であるためである。第2の理由は、制御テーブル領域35のデータは頻繁に更新されるので、データが更新される度にBCCコードを生成すると、情報処理装置1の性能の低下を招くためである。
そこで、本実施形態の一例においては、情報処理装置1の停電時に、図2(b)に示すキャッシュメモリ4のデータバックアップの後に、図2(c)に示すように、制御テーブル領域35のエラー検出用のCRCコードが、制御テーブル領域35に書き込まれる。
なお、キャッシュメモリ4としては、例えば、Static Random Access Memory(SRAM)を用いることができる。その際の詳細な処理については後述する。
なお、キャッシュメモリ4としては、例えば、Static Random Access Memory(SRAM)を用いることができる。その際の詳細な処理については後述する。
MRAM5は、磁気を利用した不揮発性メモリであり、情報処理装置1の電源切断後も保持される管理用の各種データの保持に使用される。本実施形態においては、MRAM5は、比較結果8及び停電処理結果9を記憶するために使用される。
比較結果8は、後述するCRC比較部28によるCRCの比較処理の結果を示す値を格納している。例えば、比較結果8には、停電処理時にエラーが発生した場合には値‘0’が、停電処理に成功した場合には値‘1’がそれぞれ格納される。停電処理時のエラーの原因としては、例えば、PCI Express(PCIe) Interface(IF)を制御する後述するPCIe IF制御部21のハードウェア故障等が挙げられる。
比較結果8は、後述するCRC比較部28によるCRCの比較処理の結果を示す値を格納している。例えば、比較結果8には、停電処理時にエラーが発生した場合には値‘0’が、停電処理に成功した場合には値‘1’がそれぞれ格納される。停電処理時のエラーの原因としては、例えば、PCI Express(PCIe) Interface(IF)を制御する後述するPCIe IF制御部21のハードウェア故障等が挙げられる。
停電処理結果9は、情報処理装置1のパワーオフシーケンスの結果を示す値を格納している。例えば、停電処理結果9には、パワーオフシーケンスでエラーが発生した場合には値‘0’が、パワーオフシーケンスに成功した場合には値‘1’がそれぞれ格納される。停電処理時のエラーの原因としては、情報処理装置1の部品のハードウェア故障等が挙げられる。
SATA−SSD6は、停電等の発生時に、キャッシュメモリ4に記憶されているデータをバックアップする先の不揮発性のメモリである。SATA−SSD6としては、公知のSATA−SSDを使用することができる。以降簡潔を期するために、SATA−SSD6を単にSSD6とも称する。又、以下の説明では、停電など、情報処理装置1への電力供給が絶たれる状況を総称して「停電」と呼ぶ。
バックアップ制御部7は、停電時に停電処理を行なうFPGAである。詳細には、バックアップ制御部7は、不図示の停電時給電部からDC電力の給電を受けて、キャッシュメモリ4に格納されているデータをSSD6にバックアップし、その後SSD6のパワーオフシーケンスを実行する。
情報処理装置1において、メモリコントローラ3とバックアップ制御部7とは、例えば4レーンのPCIeリンク11によって接続されている。このPCIeリンク11を介して、キャッシュメモリ4からSSD6にバックアップされるユーザデータが、キャッシュメモリ4からメモリコントローラ3経由でバックアップ制御部7に送られる。
情報処理装置1において、メモリコントローラ3とバックアップ制御部7とは、例えば4レーンのPCIeリンク11によって接続されている。このPCIeリンク11を介して、キャッシュメモリ4からSSD6にバックアップされるユーザデータが、キャッシュメモリ4からメモリコントローラ3経由でバックアップ制御部7に送られる。
又、バックアップ制御部7とSSD6とは、SATAリンク12を介して接続されている。このSATAリンク12を介して、キャッシュメモリ4からSSD6にバックアップされるユーザデータが、バックアップ制御部7からSSD6に送られる。
バックアップ制御部7は、PCIe IF制御部(経路)21、SATA IF制御部22、退避用Random Access Memory(RAM)(一時記憶領域)23、ライトDMA部(ライトDMAとも称する)24、停電シーケンス(SEQ)部25、及びリードDMA部(リードDMAとも称する)26をそなえる。
バックアップ制御部7は、PCIe IF制御部(経路)21、SATA IF制御部22、退避用Random Access Memory(RAM)(一時記憶領域)23、ライトDMA部(ライトDMAとも称する)24、停電シーケンス(SEQ)部25、及びリードDMA部(リードDMAとも称する)26をそなえる。
PCIe IF制御部21は、メモリコントローラ3とバックアップ制御部7との間のPCIeリンク11を介した通信を制御する処理部である。PCIe IF制御部21は、例えば回路として実施することができる。
SATA IF制御部22は、バックアップ制御部7とSSD6との間のSATAリンク12を介した通信を制御する処理部である。SATA IF制御部22は、例えば回路として実施することができる。
SATA IF制御部22は、バックアップ制御部7とSSD6との間のSATAリンク12を介した通信を制御する処理部である。SATA IF制御部22は、例えば回路として実施することができる。
退避用RAM23は、後述するCRC生成部27が、キャッシュメモリ4からリードしたデータから生成したCRCコードを格納する記憶領域である。本実施形態の一例においては、退避用RAM23として、バックアップ制御部7のFPGAにそなえられている予備の未使用のRAMを使用する。このように、予備のRAMを使用することで、本実施形態の一例としての情報処理装置1の機能を実装するために、バックアップ制御部7のハードウェアの変更や追加を行なう必要がない。
停電シーケンス部25は、情報処理装置1において停電が発生した際に、停電シーケンスを実行する。停電シーケンス部25は、例えば回路として実施することができる。
本実施形態の一例においては、停電シーケンス部25は、後述するライトDMA部24を起動して、ライトDMA部24にキャッシュメモリ4のデータをSSD6にバックアップさせる。その後、停電シーケンス部25は、後述するリードDMA部26を起動して、CRCコードをキャッシュメモリ4の制御テーブル領域35に書き込ませる。
本実施形態の一例においては、停電シーケンス部25は、後述するライトDMA部24を起動して、ライトDMA部24にキャッシュメモリ4のデータをSSD6にバックアップさせる。その後、停電シーケンス部25は、後述するリードDMA部26を起動して、CRCコードをキャッシュメモリ4の制御テーブル領域35に書き込ませる。
又、停電シーケンス部25は、キャッシュ先頭アドレス31、バックアップデータサイズ32、及び制御テーブル先頭アドレス33の各レジスタを有する。
キャッシュ先頭アドレス31は、停電時にSSD6にバックアップするキャッシュメモリ4の先頭アドレスを示す値を格納する。
バックアップデータサイズ32は、停電時にSSD6にバックアップするキャッシュメモリ4のデータサイズを示す値を格納する。
キャッシュ先頭アドレス31は、停電時にSSD6にバックアップするキャッシュメモリ4の先頭アドレスを示す値を格納する。
バックアップデータサイズ32は、停電時にSSD6にバックアップするキャッシュメモリ4のデータサイズを示す値を格納する。
制御テーブル先頭アドレス33は、キャッシュメモリ4内の制御テーブル領域35の先頭アドレスを示す値を格納する。
キャッシュ先頭アドレス31、バックアップデータサイズ32、及び制御テーブル先頭アドレス33のそれぞれの値は、例えば、停電動作時にCPU2によって設定される。
ライトDMA部24は、メモリコントローラ3とSSD6との間で、データのダイレクトメモリアクセスによるライトを行なう処理部である。例えば、ライトDMA部24は、キャッシュメモリ4からSSD6にバックアップするデータを、キャッシュメモリ4からメモリコントローラ3経由でSSD6にライトする。
キャッシュ先頭アドレス31、バックアップデータサイズ32、及び制御テーブル先頭アドレス33のそれぞれの値は、例えば、停電動作時にCPU2によって設定される。
ライトDMA部24は、メモリコントローラ3とSSD6との間で、データのダイレクトメモリアクセスによるライトを行なう処理部である。例えば、ライトDMA部24は、キャッシュメモリ4からSSD6にバックアップするデータを、キャッシュメモリ4からメモリコントローラ3経由でSSD6にライトする。
ライトDMA部24は、キャッシュメモリ4からデータをリードして、そのデータをSSD6に対してライトする。なお、ここで、ライトDMA部24の「ライト」とは、SSD6に対するライトを指し、キャッシュメモリ4に対してはリード動作を行なう。
本実施形態の一例においては、ライトDMA部24は、CRC生成部(生成部、第1の書き込み部)27とCRC比較部(判定部)28とをそなえる。
本実施形態の一例においては、ライトDMA部24は、CRC生成部(生成部、第1の書き込み部)27とCRC比較部(判定部)28とをそなえる。
CRC生成部27は、停電処理時に、PCIe IF制御部21経由でキャッシュメモリ4から読み出したバックアップ対象データから、CRCコード(エラーチェック情報)を生成して、読み出したデータと共にCRCコードをSSD6に書き込む(バックアップする)。
一般に、情報処理装置1内でのデータ転送においては、転送するデータ量が大きい場合、転送するデータを複数のブロックに分割して、分割したブロック単位でデータ転送が複数回に分けて行なわれる。このため、ライトDMA部24は、バックアップするデータを、キャッシュメモリ4の先頭アドレスから順に、数回に分けてリードする。そして、CRC生成部27は、キャッシュメモリ4から読み出したデータのブロック毎にCRCコードを生成する。その際、CRC生成部27は、当業界において公知のCRC生成アルゴリズムを用いてCRCコードの生成を行なう。そして、キャッシュメモリ4から読み出したデータが制御テーブル領域35に格納されていたデータである場合には、生成したCRCコードを、キャッシュメモリ4のブロック毎に退避用RAM23に格納する。
一般に、情報処理装置1内でのデータ転送においては、転送するデータ量が大きい場合、転送するデータを複数のブロックに分割して、分割したブロック単位でデータ転送が複数回に分けて行なわれる。このため、ライトDMA部24は、バックアップするデータを、キャッシュメモリ4の先頭アドレスから順に、数回に分けてリードする。そして、CRC生成部27は、キャッシュメモリ4から読み出したデータのブロック毎にCRCコードを生成する。その際、CRC生成部27は、当業界において公知のCRC生成アルゴリズムを用いてCRCコードの生成を行なう。そして、キャッシュメモリ4から読み出したデータが制御テーブル領域35に格納されていたデータである場合には、生成したCRCコードを、キャッシュメモリ4のブロック毎に退避用RAM23に格納する。
CRC比較部28は、後述するCRCチェック部29がキャッシュメモリ4の制御テーブル領域35に書き込んだCRCコードと、CRC生成部27が退避用RAM23に退避させた対応するCRCコードとを比較する。そして、CRC比較部28は、MRAM5の比較結果8に、例えば、両者が一致する場合には‘1’を、一致しない場合には値‘0’を、それぞれ設定する。
なお、キャッシュメモリ4の制御テーブル領域35のCRCコードと退避用RAM23のCRCコードとの不一致の原因の1つとして、データ保護機構がないPCIe IF制御部21のハードウェア故障が挙げられる。CRCチェック部29がキャッシュメモリ4の制御テーブル領域35に書き込むCRCコードは、PCIe IF制御部21を経由して読み書きされるので、PCIe IF制御部21でハードウェア故障が発生するとデータが破損する可能性がある。一方、CRC生成部27が退避用RAM23に書き込む(退避させる)CRCコードは、PCIe IF制御部21を経由せずに読み書きされるので、PCIe IF制御部21に発生したハードウェア故障の影響を受けない。
ライトDMA部24は、例えば回路として実施することができる。
リードDMA部26は、メモリコントローラ3とSSD6との間で、データのダイレクトメモリアクセスによるリードを行なう処理部である。リードDMA部26は、情報処理装置1の停電後の電源復旧(以下、復電と呼ぶ)時に、SSD6にバックアップしておいたデータをキャッシュメモリ4に書き戻す。なお、ここで、リードDMA部26の「リード」とは、SSD6に対するライトを指し、キャッシュメモリ4に対してはリード動作を行なう。
リードDMA部26は、メモリコントローラ3とSSD6との間で、データのダイレクトメモリアクセスによるリードを行なう処理部である。リードDMA部26は、情報処理装置1の停電後の電源復旧(以下、復電と呼ぶ)時に、SSD6にバックアップしておいたデータをキャッシュメモリ4に書き戻す。なお、ここで、リードDMA部26の「リード」とは、SSD6に対するライトを指し、キャッシュメモリ4に対してはリード動作を行なう。
又、本実施形態の一例においては、リードDMA部26は、情報処理装置1の停電処理において、PCIe IF制御部21のハードウェアエラーの有無の判定を行なうために使用される。
このため、リードDMA部26は、CRCチェック部29をそなえる。
CRCチェック部29は、CRC生成部27が退避用RAM23に格納したCRCコード(例えば図4参照)を、図2(c)に示すように、キャッシュメモリ4の制御テーブル領域35のうち、SSD6へのバックアップが既に終了した先頭の領域から順に書き込む。CRCチェック部29がキャッシュメモリ4のバックアップ完了後に書き込んだCRCコードは、その後、ライトDMA部24のCRC比較部28が、キャッシュメモリ4から読み出して、データ保護機構がないPCIe IF制御部21を再度経由して退避させたCRCコードと比較する。これにより、CRC比較部28は、PCIe IF制御部21のハードウェア故障等によるデータ異常の有無を検出する。
このため、リードDMA部26は、CRCチェック部29をそなえる。
CRCチェック部29は、CRC生成部27が退避用RAM23に格納したCRCコード(例えば図4参照)を、図2(c)に示すように、キャッシュメモリ4の制御テーブル領域35のうち、SSD6へのバックアップが既に終了した先頭の領域から順に書き込む。CRCチェック部29がキャッシュメモリ4のバックアップ完了後に書き込んだCRCコードは、その後、ライトDMA部24のCRC比較部28が、キャッシュメモリ4から読み出して、データ保護機構がないPCIe IF制御部21を再度経由して退避させたCRCコードと比較する。これにより、CRC比較部28は、PCIe IF制御部21のハードウェア故障等によるデータ異常の有無を検出する。
リードDMA部26は、例えば回路として実施することができる。
(B)動作
以下、図3〜図7を参照して、実施形態の一例としての情報処理装置1の動作を示す。
図3は、実施形態の一例としての情報処理装置1における停電発生時の停電処理を示すフローチャート(ステップS1〜S15)である。図4は、そのときの情報処理装置1の停電処理を例示する図であり、図5は、停電処理においてデータの破損が発生した場合を例示する図である。なお、図4,図5の矢印と共に示すステップ番号は、図3のステップ番号と対応している。
(B)動作
以下、図3〜図7を参照して、実施形態の一例としての情報処理装置1の動作を示す。
図3は、実施形態の一例としての情報処理装置1における停電発生時の停電処理を示すフローチャート(ステップS1〜S15)である。図4は、そのときの情報処理装置1の停電処理を例示する図であり、図5は、停電処理においてデータの破損が発生した場合を例示する図である。なお、図4,図5の矢印と共に示すステップ番号は、図3のステップ番号と対応している。
ステップS1において、情報処理装置1において停電が発生する。この時CPU2が、SSD6にデータを退避させるキャッシュメモリ4の先頭アドレス、バックアップ対象の全データサイズ、及び制御テーブル領域35の先頭アドレスを、停電シーケンス部25の先頭アドレス31、バックアップデータサイズ32、及び制御テーブル領域先頭アドレス33の各レジスタに格納する。そして、CPU2は、停電シーケンス部25を起動したのち、不図示の停電時給電部のバッテリの消費を抑えるためスリープモードに入る。
ステップS2において、停電シーケンス部25が、ライトDMA部24を起動する。
ステップS3において、ライトDMA部24が、ステップS1でCPU2が停電シーケンス部25の各レジスタに格納した情報に基づいて、SSD6にバックアップする対象のデータを、PCIe IF制御部21を介して、キャッシュメモリ4からリードする。
一般に、情報処理装置1内でのデータ転送においては、転送するデータ量が大きい場合、転送するデータを複数のブロックに分割して、分割したブロック単位でデータ転送が複数回に分けて行なわれる。このため、ライトDMA部24は、バックアップするデータを、キャッシュメモリ4の先頭アドレスから順に、数回に分けてリードする。
ステップS3において、ライトDMA部24が、ステップS1でCPU2が停電シーケンス部25の各レジスタに格納した情報に基づいて、SSD6にバックアップする対象のデータを、PCIe IF制御部21を介して、キャッシュメモリ4からリードする。
一般に、情報処理装置1内でのデータ転送においては、転送するデータ量が大きい場合、転送するデータを複数のブロックに分割して、分割したブロック単位でデータ転送が複数回に分けて行なわれる。このため、ライトDMA部24は、バックアップするデータを、キャッシュメモリ4の先頭アドレスから順に、数回に分けてリードする。
ステップS4において、ライトDMA部24のCRC生成部27が、ステップS3でキャッシュメモリ4からリードしたバックアップ対象のデータからCRCコードを生成する。
ステップS5において、ライトDMA部24は、ステップS3でリードしたバックアップデータに、ステップS4で生成したCRCコードを付加して、SATA IF制御部22を経由して、SSD6にライトする。
ステップS5において、ライトDMA部24は、ステップS3でリードしたバックアップデータに、ステップS4で生成したCRCコードを付加して、SATA IF制御部22を経由して、SSD6にライトする。
ステップS6において、ライトDMA部24のCRC比較部28が、ステップS3でリードしたキャッシュメモリ4のアドレスと、停電シーケンス部25の制御テーブル先頭アドレス33に格納されている値とを比較し、データが制御テーブル、ユーザデータのいずれであるかを判定する。
データが制御テーブル領域35から読み出したデータである場合(ステップS6の「制御テーブル領域」ルート参照)、ステップS7において、ライトDMA部24は、CRC生成部27が生成したCRCコードを、退避用RAM23に格納し、その旨を停電シーケンス部25に通知する。
データが制御テーブル領域35から読み出したデータである場合(ステップS6の「制御テーブル領域」ルート参照)、ステップS7において、ライトDMA部24は、CRC生成部27が生成したCRCコードを、退避用RAM23に格納し、その旨を停電シーケンス部25に通知する。
ステップS7でライトDMA部24からの通知を受けた停電シーケンス部25は、ステップS8において、リードDMA部26を起動する。
ステップS9において、リードDMA部26は、ステップS7でライトDMA部24が退避用RAM23に退避させたCRCコードを退避用RAM23から読み出して、キャッシュメモリ4の制御テーブル領域35の先頭アドレスにそのCRCコードを書き込む(図2(b)参照)。
ステップS9において、リードDMA部26は、ステップS7でライトDMA部24が退避用RAM23に退避させたCRCコードを退避用RAM23から読み出して、キャッシュメモリ4の制御テーブル領域35の先頭アドレスにそのCRCコードを書き込む(図2(b)参照)。
一方、ステップS5で読み出したデータがユーザデータ領域34から読み出したデータである場合(ステップS6の「ユーザデータ領域」ルート参照)、ステップS10において、ライトDMA部24は、バックアップ対象の全データのデータサイズを全て転送したかどうかを判定する。
バックアップ対象の全データを転送していない場合(ステップS10のNOルート参照)、ライトDMA部24は、ステップS3に戻って、キャッシュメモリ4の次のデータブロックに対して、ステップS3〜S10の処理を繰り返す。
バックアップ対象の全データを転送していない場合(ステップS10のNOルート参照)、ライトDMA部24は、ステップS3に戻って、キャッシュメモリ4の次のデータブロックに対して、ステップS3〜S10の処理を繰り返す。
一方、バックアップ対象の全データを転送した場合(ステップS10のYESルート参照)、ステップS11において、ライトDMA部24は、バックアップ対象の全データの転送が完了した旨を停電シーケンス部25に通知する。
ステップS12において、ライトDMA部24は、ステップS9でキャッシュメモリ4の制御テーブル領域35に書き込んだCRCコードを、PCIe IF制御部21を介して制御テーブル領域35から読み出す。
ステップS12において、ライトDMA部24は、ステップS9でキャッシュメモリ4の制御テーブル領域35に書き込んだCRCコードを、PCIe IF制御部21を介して制御テーブル領域35から読み出す。
ステップS13において、ライトDMA部24のCRC比較部28は、ステップS12で読み出したCRCコードを、ステップS7でライトDMA部24が退避用RAM23に退避したCRCコードと比較する。
例えば、図5に示す例では、PCIe IF制御部21のハードウェア故障等により、キャッシュメモリ4から読み出してSSD6にバックアップしたデータが破損している。図5において、破損しているデータに「×」を付す。この場合、PCIe IF制御部21を経由してキャッシュメモリ4から読み出したCRCコードと、PCIe IF制御部21を経由せず退避用RAM23から読み出したCRCコードとが不一致となる。
例えば、図5に示す例では、PCIe IF制御部21のハードウェア故障等により、キャッシュメモリ4から読み出してSSD6にバックアップしたデータが破損している。図5において、破損しているデータに「×」を付す。この場合、PCIe IF制御部21を経由してキャッシュメモリ4から読み出したCRCコードと、PCIe IF制御部21を経由せず退避用RAM23から読み出したCRCコードとが不一致となる。
そして、CRC比較部28は、比較の結果を、MRAM5の比較結果8に設定する。なお、この図では本比較を一度しか行なっていない。しかし、CRC生成部27がキャッシュメモリ4の制御テーブル領域35のデータを複数回に分けて読み出す場合には、CRC生成部27によるCRCコードの生成及び退避用RAM23への書き込み、CRCチェック部29によるキャッシュメモリ4への書き込み、並びにCRC比較部28によるCRCの比較が、複数回実行される。そして、CRC比較部28によるCRCの比較が一度でも不一致となった場合には、不一致(NG)を示す値が、MRAM5の比較結果8に設定される。
また、ステップS8の後にステップS14において、停電シーケンス部25がSSD6に対してStandby Immediateを発行する。Standby Immediateについては、当業界で公知であるため、詳細な説明は省略する。
ステップS15において、停電シーケンス部25は、ステップS14の停電処理の結果を、MRAM5の停電処理結果9に設定する。
ステップS15において、停電シーケンス部25は、ステップS14の停電処理の結果を、MRAM5の停電処理結果9に設定する。
図6は、停電処理が失敗した場合、図7は、停電処理が成功した場合の情報処理装置1の復電時の動作をそれぞれ例示する図である。
ステップS15でMRAM5に格納した値は、情報処理装置1の電源が復旧した際に、リードDMA部26によって読み出され、この値に基づいてSSD6にバックアップしたデータがキャッシュメモリ4に書き戻される。
ステップS15でMRAM5に格納した値は、情報処理装置1の電源が復旧した際に、リードDMA部26によって読み出され、この値に基づいてSSD6にバックアップしたデータがキャッシュメモリ4に書き戻される。
図6に示すように、MRAM5の比較結果8又は停電処理結果9に、停電処理失敗を示す値、例えば値‘0’(NG)が格納されている場合には、リードDMA部26は、SSD6にバックアップされているデータをキャッシュメモリ4に書き戻さない。
一方、図7に示すように、MRAM5の比較結果8及び停電処理結果9に、停電処理成功を示す値、例えば値‘1’(OK)が格納されている場合には、リードDMA部26は、SSD6にバックアップされているデータをキャッシュメモリ4に書き戻す。
一方、図7に示すように、MRAM5の比較結果8及び停電処理結果9に、停電処理成功を示す値、例えば値‘1’(OK)が格納されている場合には、リードDMA部26は、SSD6にバックアップされているデータをキャッシュメモリ4に書き戻す。
図8は、実施形態の一例としての情報処理装置1における停電処理を示すタイムチャート(ステップS31〜S36)である。
情報処理装置1において停電が発生すると、ステップS31において、ライトDMA部24が、キャッシュメモリ4のユーザデータ領域34のデータを、数回に分けてSSD6にバックアップする。図8の例では、5回のデータ転送が行なわれる。
情報処理装置1において停電が発生すると、ステップS31において、ライトDMA部24が、キャッシュメモリ4のユーザデータ領域34のデータを、数回に分けてSSD6にバックアップする。図8の例では、5回のデータ転送が行なわれる。
その後、ステップS32において、ライトDMA部24は、キャッシュメモリ4の制御テーブル領域35のデータを、数回に分けてSSD6にバックアップする。図8の例では、4回のデータ転送が行なわれる。その際、ライトDMA部24のCRC生成部28が、制御テーブル領域35の各データのCRCコードを生成して、退避用RAM23に格納する。
ステップS33において、リードDMA部26が、退避用RAM23に退避されている各CRCコードを読み出して、キャッシュメモリ4の制御テーブル領域35に書き込む。なお、PCI−Expressは双方向制御が可能なため、ステップS32の処理と並行してステップS33の処理を行なうことができる。
そして、ステップS34において、ライトDMA部24のCRC比較部28が、ステップS32でリードDMA部26がキャッシュメモリ4に書き込んだCRCコードを読み出す。
そして、ステップS34において、ライトDMA部24のCRC比較部28が、ステップS32でリードDMA部26がキャッシュメモリ4に書き込んだCRCコードを読み出す。
そして、ステップS35において、CRC比較部28は、そのCRCコードと、ステップS34で退避用RAM23に退避されているCRCコードと比較し、比較の結果をMRAM5の比較結果8に設定する。
ステップS36において、ライトDMA部24がStandby Immediateコマンドを発行する。
(C)効果
上記の実施形態の一例においては、情報処理装置1の停電時に、ライトDMA部24のCRC生成部27が、キャッシュメモリ4のデータを読み出して、読み出したデータのCRCコードを生成して、読み出したデータとCRCコードとをSSD6にバックアップする。そして、キャッシュメモリ4から読み出したデータが制御テーブル領域35のデータである場合には、生成したCRCコードを退避用RAM23に退避させる。
ステップS36において、ライトDMA部24がStandby Immediateコマンドを発行する。
(C)効果
上記の実施形態の一例においては、情報処理装置1の停電時に、ライトDMA部24のCRC生成部27が、キャッシュメモリ4のデータを読み出して、読み出したデータのCRCコードを生成して、読み出したデータとCRCコードとをSSD6にバックアップする。そして、キャッシュメモリ4から読み出したデータが制御テーブル領域35のデータである場合には、生成したCRCコードを退避用RAM23に退避させる。
次に、リードDMA部26のCRCチェック部29が、退避用RAM23に退避されているCRCコードをキャッシュメモリ4に書き込む。
そして、ライトDMA部24のCRC比較部28が、退避用RAM23に退避されているCRCコードと、キャッシュメモリ4に書き込まれているCRCコードとを比較し、両者が不一致の場合は、情報処理装置1にハードウェアエラー等が発生していると判定する。
そして、ライトDMA部24のCRC比較部28が、退避用RAM23に退避されているCRCコードと、キャッシュメモリ4に書き込まれているCRCコードとを比較し、両者が不一致の場合は、情報処理装置1にハードウェアエラー等が発生していると判定する。
これにより、本実施形態の一例においては、データ保護のためのBCCコードを持たないキャッシュメモリ4の制御テーブル領域35のデータについても、エラー検出を行なうことができる。
又、CRC比較部28は、エラーが発生していると判定した場合に、MRAM5の比較結果8に、CRCが不一致であることを示す値を設定し、情報処理装置1の復電後に、SSD6にバックアップされたデータがキャッシュメモリ4に復元されるのを阻止する。
又、CRC比較部28は、エラーが発生していると判定した場合に、MRAM5の比較結果8に、CRCが不一致であることを示す値を設定し、情報処理装置1の復電後に、SSD6にバックアップされたデータがキャッシュメモリ4に復元されるのを阻止する。
これにより、復電後に、破損したデータがキャッシュメモリ4に復元されることにより情報処理装置1のシステムダウンやデータ破壊を回避することができる。
さらに、リードDMA部26のCRCチェック部29は、退避用RAM23に退避されているCRCコードをキャッシュメモリ4の制御テーブル領域35に書き込むので、既存のキャッシュメモリ4の容量を増やさずに、データの保護を提供することができる。
さらに、リードDMA部26のCRCチェック部29は、退避用RAM23に退避されているCRCコードをキャッシュメモリ4の制御テーブル領域35に書き込むので、既存のキャッシュメモリ4の容量を増やさずに、データの保護を提供することができる。
又、PCI−Expressは双方向制御が可能なため、CRCチェック部29によるキャッシュメモリ4へのCRCコードの書き込みとCRC生成部27によるSSD6へのバックアップ処理とを並行して実施することができる。また、CRC比較部28によるCRCコードのリード及び比較処理と、SSD6へのStandby Immediate処理とを並行して実施することができる。このため、従来の停電処理性能に影響を与えることなく、既存の停電処理時間内に追加処理を行なうことが可能となる。
又、上記の機能は全て、バックアップ制御部7にそなえられているRAM23やリードDMA部26を利用して実現することができる。このため、追加の部品を必要とすることなく、バックアップ制御部7の既存のハードウェア構成を使用して、コストの上昇を招くことなく、信頼性の高い停電処理を実行することができる。
(D)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
(D)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態の一例を、情報処理装置1の停電時のパワーオフシーケンス処理の際のデータのリード及びライトデータの保護を例に挙げて記載したが、本手法は、他の場合のデータ保護にも使用することができる。
例えば、本実施形態の一例の技術を、データ保護機能のないデータの伝送に使用することができる。
例えば、本実施形態の一例の技術を、データ保護機能のないデータの伝送に使用することができる。
或いは、上記の実施形態の一例においては、図6,7に示すMRAM5の比較結果8と停電処理結果9とがAND条件で比較されている。すなわち、比較結果8と停電処理結果9との両方に、停電処理失敗を示す値が格納されているかどうか(図6)、或いは、比較結果8と停電処理結果9との両方に、停電処理成功を示す値が格納されているかどうか(図7)が比較されている。しかし、比較結果8と停電処理結果9とに他の比較のロジックが使用されてもよい。
又、上記の実施形態の一例においては、バックアップ制御部7をFPGAとして実施し、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26を回路として実施する例を取り上げた。
しかし、バックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26をソフトウェアとして実施してもよい。
しかし、バックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26をソフトウェアとして実施してもよい。
その場合、情報処理装置1のCPU2が、制御プログラムを実行することにより、上述したバックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26として機能するようになっている。
なお、上述したバックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26としての機能を実現するための制御プログラムは、例えばフレキシブルディスク、CD(CD−ROM,CD−R,CD−RW等)、DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から、不図示の媒体リーダーを用いてプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク、光ディスク、光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
なお、上述したバックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26としての機能を実現するための制御プログラムは、例えばフレキシブルディスク、CD(CD−ROM,CD−R,CD−RW等)、DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から、不図示の媒体リーダーを用いてプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク、光ディスク、光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
上述したバックアップ制御部7、PCIe IF制御部21、SATA IF制御部22、ライトDMA部24、停電シーケンス部25、及びリードDMA部26としての機能を実現する際には、内部記憶装置(本実施形態では不図示のメモリ等)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU2)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成する生成部と、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込むと共に、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込む第1の書き込み部と、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込む第2の書き込み部と、
前記第1の書き込み部が前記第1の記憶装置が書き込んだ前記エラーチェック情報と、前記第2の書き込み部が前記一時記憶領域に書き込んだ前記エラーチェック情報とを比較し、両者が一致しない場合に、前記経路でエラーが発生していると判定する判定部と、
をそなえることを特徴とする制御装置。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成する生成部と、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込むと共に、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込む第1の書き込み部と、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込む第2の書き込み部と、
前記第1の書き込み部が前記第1の記憶装置が書き込んだ前記エラーチェック情報と、前記第2の書き込み部が前記一時記憶領域に書き込んだ前記エラーチェック情報とを比較し、両者が一致しない場合に、前記経路でエラーが発生していると判定する判定部と、
をそなえることを特徴とする制御装置。
(付記2)
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第2の書き込み部は、前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
ことを特徴とする付記1記載の制御装置。
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第2の書き込み部は、前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
ことを特徴とする付記1記載の制御装置。
(付記3)
前記制御装置は、主電源の電力供給停止時に副電源から電力の供給を受けて前記生成部、前記第1の書き込み部、前記第2の書き込み部、及び判定部の処理を実行させる
ことを特徴とする付記1又は2記載の制御装置。
(付記4)
前記判定部は、前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
ことを特徴とする付記3記載の制御装置。
前記制御装置は、主電源の電力供給停止時に副電源から電力の供給を受けて前記生成部、前記第1の書き込み部、前記第2の書き込み部、及び判定部の処理を実行させる
ことを特徴とする付記1又は2記載の制御装置。
(付記4)
前記判定部は、前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
ことを特徴とする付記3記載の制御装置。
(付記5)
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
ことを特徴とする制御方法。
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
ことを特徴とする制御方法。
(付記6)
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
ことを特徴とする付記5記載の制御方法。
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
ことを特徴とする付記5記載の制御方法。
(付記7)
主電源の電力供給停止時に副電源から電力の供給を受けて実行される
ことを特徴とする付記5又は6記載の制御方法。
(付記8)
前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
ことを特徴とする付記7記載の制御方法。
主電源の電力供給停止時に副電源から電力の供給を受けて実行される
ことを特徴とする付記5又は6記載の制御方法。
(付記8)
前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
ことを特徴とする付記7記載の制御方法。
(付記9)
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
処理をコンピュータに実行させることを特徴とする制御プログラム。
データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
処理をコンピュータに実行させることを特徴とする制御プログラム。
(付記10)
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
処理を前記コンピュータに実行させることを特徴とする付記9記載の制御プログラム。
前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
処理を前記コンピュータに実行させることを特徴とする付記9記載の制御プログラム。
(付記11)
前記コンピュータは、主電源の電力供給停止時に副電源から電力の供給を受けて前記制御プログラムを実行する
ことを特徴とする付記9又は10記載の制御プログラム。
(付記12)
前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
処理を前記コンピュータに実行させることを特徴とする付記11記載の制御プログラム。
前記コンピュータは、主電源の電力供給停止時に副電源から電力の供給を受けて前記制御プログラムを実行する
ことを特徴とする付記9又は10記載の制御プログラム。
(付記12)
前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
処理を前記コンピュータに実行させることを特徴とする付記11記載の制御プログラム。
1 情報処理装置(コンピュータ)
2 CPU
3 メモリコントローラ
4 キャッシュメモリ(第1の記憶装置)
5 MRAM
6 SSD(第2の記憶装置)
7 バックアップ制御部(制御装置)
8 比較結果
9 停電処理結果
21 PCIe IF制御部(データ保護のない経路)
22 SATA IF部
23 退避用RAM(一時記憶領域)
24 ライトDMA部
25 停電シーケンス部
26 リードDMA部
27 CRC生成部(生成部、第1の書き込み部)
28 CRC比較部(判定部)
29 CRCチェック部(第2の書き込み部)
34 ユーザデータ領域(第1の領域)
35 制御テーブル領域(第2の領域)
2 CPU
3 メモリコントローラ
4 キャッシュメモリ(第1の記憶装置)
5 MRAM
6 SSD(第2の記憶装置)
7 バックアップ制御部(制御装置)
8 比較結果
9 停電処理結果
21 PCIe IF制御部(データ保護のない経路)
22 SATA IF部
23 退避用RAM(一時記憶領域)
24 ライトDMA部
25 停電シーケンス部
26 リードDMA部
27 CRC生成部(生成部、第1の書き込み部)
28 CRC比較部(判定部)
29 CRCチェック部(第2の書き込み部)
34 ユーザデータ領域(第1の領域)
35 制御テーブル領域(第2の領域)
Claims (6)
- データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、該データのエラーチェック用のエラーチェック情報を生成する生成部と、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込むと共に、前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込む第1の書き込み部と、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込む第2の書き込み部と、
前記第1の書き込み部が前記第1の記憶装置が書き込んだ前記エラーチェック情報と、前記第2の書き込み部が前記一時記憶領域に書き込んだ前記エラーチェック情報とを比較し、両者が一致しない場合に、前記経路でエラーが発生していると判定する判定部と、
をそなえることを特徴とする制御装置。 - 前記第1の記憶装置は、データが保護されている第1の領域と、データが保護されていない第2の領域とを有し、
前記第2の書き込み部は、前記第1の記憶装置の前記第2の領域のデータに対して前記エラーチェック情報を第1の記憶装置の前記第2の領域に書き込む
ことを特徴とする請求項1記載の制御装置。 - 前記制御装置は、主電源の電力供給停止時に副電源から電力の供給を受けて前記生成部、前記第1の書き込み部、前記第2の書き込み部、及び判定部の処理を実行させる
ことを特徴とする請求項1又は2記載の制御装置。 - 前記判定部は、前記経路でエラーが発生していると判定した場合に、前記主電源の電力復旧後の前記第2の記憶装置から前記第1の記憶装置への前記データの書き戻しを阻止させる
ことを特徴とする請求項3記載の制御装置。 - データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
ことを特徴とする制御方法。 - データ保護機能のない経路を経由して第1の記憶装置からデータを読み出し、
該データのエラーチェック用のエラーチェック情報を生成し、
前記データと前記エラーチェック情報とを第2の記憶装置に書き込み、
前記経路を経由せずに前記エラーチェック情報を一時記憶領域に書き込み、
前記エラーチェック情報を、前記経路を経由して前記第1の記憶装置に書き込み、
前記第1の記憶装置に書き込まれた前記エラーチェック情報と、前記一時記憶領域に書き込まれた前記エラーチェック情報とを比較して、両者が一致しない場合に、前記経路でエラーが発生していると判定する
処理をコンピュータに実行させることを特徴とする制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014096788A JP2015215675A (ja) | 2014-05-08 | 2014-05-08 | 制御装置、制御方法、及び制御プログラム |
US14/644,293 US20150324248A1 (en) | 2014-05-08 | 2015-03-11 | Information processing device, control method and recording medium for recording control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014096788A JP2015215675A (ja) | 2014-05-08 | 2014-05-08 | 制御装置、制御方法、及び制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015215675A true JP2015215675A (ja) | 2015-12-03 |
Family
ID=54367935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014096788A Pending JP2015215675A (ja) | 2014-05-08 | 2014-05-08 | 制御装置、制御方法、及び制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150324248A1 (ja) |
JP (1) | JP2015215675A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020191055A (ja) * | 2019-05-21 | 2020-11-26 | 慧栄科技股▲フン▼有限公司Silicon Motion Inc. | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11157356B2 (en) * | 2018-03-05 | 2021-10-26 | Samsung Electronics Co., Ltd. | System and method for supporting data protection across FPGA SSDs |
US11698869B1 (en) * | 2022-03-10 | 2023-07-11 | Nvidia Corporation | Computing an authentication tag for partial transfers scheduled across multiple direct memory access (DMA) engines |
CN117706260B (zh) * | 2024-02-06 | 2024-04-30 | 禹创半导体(深圳)有限公司 | Esd事件检测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587813B1 (en) * | 2000-04-11 | 2003-07-01 | Lsi Logic Corporation | PCI bus system testing and verification apparatus and method |
US7287202B1 (en) * | 2005-04-05 | 2007-10-23 | Brad Simeral | Method and apparatus for testing a memory interface |
JP4762323B2 (ja) * | 2009-03-03 | 2011-08-31 | 富士通株式会社 | アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法 |
JP2013137708A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリコントローラ、データ記憶装置およびメモリ制御方法 |
KR20150006616A (ko) * | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
-
2014
- 2014-05-08 JP JP2014096788A patent/JP2015215675A/ja active Pending
-
2015
- 2015-03-11 US US14/644,293 patent/US20150324248A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020191055A (ja) * | 2019-05-21 | 2020-11-26 | 慧栄科技股▲フン▼有限公司Silicon Motion Inc. | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20150324248A1 (en) | 2015-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4939234B2 (ja) | フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法 | |
US9632714B2 (en) | Solid-state drive device | |
TWI479309B (zh) | 控制固態硬碟的裝置及方法 | |
JP6455132B2 (ja) | 情報処理装置,処理方法及びプログラム | |
US8996933B2 (en) | Memory management method, controller, and storage system | |
US9817600B2 (en) | Configuration information backup in memory systems | |
US20110010499A1 (en) | Storage system, method of controlling storage system, and method of controlling control apparatus | |
JP2004038290A (ja) | 情報処理システムおよび同システムで用いられるディスク制御方法 | |
WO2016078202A1 (zh) | 一种掉电保护方法及固态硬盘 | |
JP2005122338A (ja) | スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法 | |
TWI670601B (zh) | 斷電保護方法及系統 | |
JP2011170589A (ja) | ストレージ制御装置、ストレージ装置およびストレージ制御方法 | |
US9547566B2 (en) | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor | |
JP2012063884A (ja) | 記憶装置、電子機器、および記憶装置の制御方法 | |
US20150019904A1 (en) | Data processing system and operating method thereof | |
JP2015215675A (ja) | 制御装置、制御方法、及び制御プログラム | |
US8117391B2 (en) | Storage system and data management method | |
JP2007310916A (ja) | メモリカード | |
US20130151886A1 (en) | Computing device and method for switching physical links of a sas expander of the computing device | |
JP5200410B2 (ja) | ストレージ装置 | |
WO2017012507A1 (zh) | 一种数据恢复方法及装置 | |
US9588567B2 (en) | Control apparatus, computer-readable storage medium, and information processing apparatus | |
US20100169572A1 (en) | Data storage method, apparatus and system for interrupted write recovery | |
US10120614B2 (en) | Storage device, storage system, and method of controlling storage device | |
JP2011018371A (ja) | メモリ記憶装置 |