JP6028709B2 - 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 - Google Patents

記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 Download PDF

Info

Publication number
JP6028709B2
JP6028709B2 JP2013216912A JP2013216912A JP6028709B2 JP 6028709 B2 JP6028709 B2 JP 6028709B2 JP 2013216912 A JP2013216912 A JP 2013216912A JP 2013216912 A JP2013216912 A JP 2013216912A JP 6028709 B2 JP6028709 B2 JP 6028709B2
Authority
JP
Japan
Prior art keywords
error
correction code
error detection
data
ecc
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.)
Active
Application number
JP2013216912A
Other languages
English (en)
Other versions
JP2015079402A (ja
Inventor
中西 健一
健一 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2013216912A priority Critical patent/JP6028709B2/ja
Priority to US14/487,729 priority patent/US9547566B2/en
Publication of JP2015079402A publication Critical patent/JP2015079402A/ja
Application granted granted Critical
Publication of JP6028709B2 publication Critical patent/JP6028709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor

Description

本技術は、メモリのエラー検出訂正を行う記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
不揮発性メモリおよびそれを制御するメモリコントローラからなる記憶装置において、メモリコントローラはデータの保持特性を改善するために入力されたデータに対して書込み単位毎にエラー検出訂正コード(ECC)を生成する。メモリ上にはデータとともにECCパリティが関連付けて記憶される。このデータの読出し時にはデータとともにECCパリティが読み出され、ビット誤りの検出処理およびビット誤り訂正処理を行ったデータが出力される。不揮発性メモリのセルのデータ保持特性は、書換え回数の増大とともに劣化するという特性があり、より訂正能力の高いECCを使用することは信頼性の強化につながる。一方、訂正能力が高いと同じ書込み単位を保護するためのパリティサイズが大きくなるため、ECCパリティを保存するための容量を拡張する必要が生じ、コストが高くなってしまう。
そこで、従来は、所定の書込み単位を保護するための第1ECCに加えて、複数の書込み単位を保護するためのより訂正能力の高い第2ECCを用意することによりデータの信頼性を改善することが提案されている(例えば、特許文献1参照。)。
特開2011−081776号公報
上述の従来技術では、第1ECCに加えて第2ECCを用意することにより、第1のECCでは訂正不可能なエラーが発生した場合に、第2ECCを使用してエラー訂正を行うことができるため、データの信頼性を向上することができる。しかしながら、第2のECCが対象とするデータのサイズは、第1ECCが対象とするデータよりも大きいため、新たなデータのライトによって第2ECCの無効化または再生成が必要になるケースが多くなる。その際、第1ECCでは訂正不可能なデータを含んでいるとすると、第2ECCをそのまま無効にしたのでは、データを訂正する機会が失われてしまう。一方、そのたびに第2ECCによりデータを訂正してから第2のECCを生成するという処理を行っていたのでは、そのために比較的長い時間を要することから、メモリのアクセス性能に影響を与えるおそれがある。
本技術はこのような状況に鑑みて生み出されたものであり、第1ECCでは訂正不可能なデータが発生した際に、第2ECCによる訂正を任意のタイミングで行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、第1のデータ単位に対応する第1のエラー検出訂正コードおよび上記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリにおいて上記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを上記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位を修復する場合には上記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部とを具備する記憶制御装置およびその記憶制御方法である。これにより、第1のエラー検出訂正コードでは訂正できないエラーを、第2のエラー検出訂正コードにより訂正する際のタイミングを柔軟にするという作用をもたらす。なお、上記第2のデータ単位は、複数の上記第1のデータ単位の各々に対応する付加情報をさらに備えてもよい。
また、この第1の側面において、上記制御部は、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位に対してライトアクセス指令が生じた場合にはライトアクセスが禁止である旨を上記ライトアクセス指令の指令元に通知を行うようにしてもよい。これにより、第2のエラー検出訂正コードによる訂正を促すという作用をもたらす。
また、この第1の側面において、上記第2のエラー検出訂正コードが有効であるか否かを指示する第2のエラー検出訂正コード有効フラグを上記第2のデータ単位毎に管理する第2のエラー検出訂正コード有効フラグ管理部をさらに具備し、上記制御部は、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した上記第2のデータ単位に対してリードアクセス指令が生じた場合には上記第2のエラー検出訂正コード有効フラグに基づいて上記リードアクセス指令の指令元に通知を行うようにしてもよい。これにより、第2のエラー検出訂正コードによる訂正が可能か否かを指令元に知らせるという作用をもたらす。
また、この第1の側面において、上記制御部は、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位に対して上記第2のエラー検出訂正コードの削除指令が生じた場合には上記第2のエラー検出訂正コードの削除が禁止である旨を上記削除指令の指令元に通知を行うようにしてもよい。これにより、訂正の余地を担保するという作用をもたらす。
また、この第1の側面において、上記第2のデータ単位の少なくとも一部に対応する一時代替領域が存在するか否かを指示する一時代替領域有効フラグを上記第2のデータ単位毎に管理する一時代替領域有効フラグ管理部をさらに具備し、上記制御部は、上記一時代替領域が存在する領域に対してライトアクセス指令が生じた場合には上記一時代替領域に対してライトアクセスを行い、上記一時代替領域が存在する領域に対してリードアクセス指令が生じた場合には上記一時代替領域に対してリードアクセスを行うようにしてもよい。これにより、第2のエラー検出訂正コードの利用を維持するという作用をもたらす。
また、この第1の側面において、上記制御部は、上記一時代替領域の解消指令が生じた場合には上記一時代替領域の記憶内容を上記メモリに反映して上記第1および第2のエラー検出訂正コードを生成し直すようにしてもよい。これにより、一時代替領域を解消して、第1および第2のエラー検出訂正コードを生成し直すという作用をもたらす。
また、この第1の側面において、上記制御部は、システムのシャットダウンの際に、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位を上記第2のエラー検出訂正コードを利用して修復するようにしてもよい。これにより、次のシステム起動までの時間が空いた場合に備えてデータの保護を高めるという作用をもたらす。
また、本技術の第2の側面は、第1のデータ単位に対応する第1のエラー検出訂正コードおよび上記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、上記メモリにおいて上記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを上記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位を修復する場合には上記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部とを具備する記憶装置である。これにより、メモリにおける第1のエラー検出訂正コードでは訂正できないエラーを、第2のエラー検出訂正コードにより訂正する際のタイミングを柔軟にするという作用をもたらす。
また、本技術の第3の側面は、第1のデータ単位に対応する第1のエラー検出訂正コードおよび上記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、上記メモリに対するアクセス指令を発行するホストコンピュータと、上記メモリにおいて上記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを上記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位に対してデータ変更を伴う上記アクセス指令が生じた場合には当該アクセスを禁止する制御部と、上記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している上記第2のデータ単位を修復する場合には上記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部とを具備する情報処理システムである。これにより、メモリにおいて生じた第1のエラー検出訂正コードでは訂正できないエラーを、第2のエラー検出訂正コードにより訂正する際に、そのタイミングをホストコンピュータから柔軟に指令するという作用をもたらす。
本技術によれば、第1ECCでは訂正不可能なデータが発生した際に、第2ECCによる訂正を任意のタイミングで行うことができるという優れた効果を奏し得る。
本技術の第1の実施の形態における情報処理システムの一構成例を示す図である。 本技術の実施の形態におけるメモリセルアレイ320の記憶形式の一例を示す図である。 本技術の第1の実施の形態におけるメモリセルアレイ320の第2ECC領域323の記憶形式の一例を示す図である。 本技術の実施の形態におけるメモリセルアレイ320の記憶形式の他の例を示す図である。 本技術の第1の実施の形態における第2ECC設定処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるリード処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるライト処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態における第2ECC削除処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態における起動処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるシャットダウン処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態における情報処理システムの一構成例を示す図である。 本技術の第2の実施の形態におけるメモリセルアレイ320の第2ECC領域323の記憶形式の一例を示す図である。 本技術の第2の実施の形態における第2ECC設定処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態における訂正不可エラー修復処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるデータ一時代替解消処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるリード処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるライト処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態における第2ECC削除処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるシャットダウン処理の処理手順例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(訂正不可エラー発生フラグによるアクセス制御)
2.第2の実施の形態(一時代替領域を組み合わせたアクセス制御)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の第1の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とから構成される。メモリコントローラ200およびメモリ300はストレージシステムを構成する。
ホストコンピュータ100は、メモリ300に対してデータのリード処理およびライト処理や、エラー訂正に関する処理等を指令するコマンドを発行するものである。このホストコンピュータ100は、ホストコンピュータ100としての処理を実行するプロセッサ110と、メモリコントローラ200との間のやりとりを行うためのコントローラインターフェース101とを備える。
メモリコントローラ200は、ホストコンピュータ100からのコマンドに従って、メモリ300に対するリクエスト制御を行うものである。このメモリコントローラ200は、制御部210と、ECC処理部220と、データバッファ230と、ホストインターフェース201と、メモリインターフェース202とを備える。
制御部210は、メモリコントローラ200全体の制御を行うものである。この制御部210は、ホストコンピュータ100から指令されたコマンドを解釈して、メモリ300に対して必要なリクエストを要求する。この例では、ホストコンピュータ100からのコマンドとして、第2ECC設定コマンド、リードコマンド、ライトコマンド、第2ECC削除コマンド、起動コマンド、シャットダウンコマンド等が想定される。
ECC処理部220は、メモリ300に記録されるデータのエラー訂正コード(ECC:Error Correcting Code)の生成、および、メモリ300から読み出したデータのエラー検出および訂正処理を実行するものである。後述するように、この実施の形態においては、エラー訂正コードとして第1ECCおよび第2ECCの2種類を想定する。なお、ECC処理部220は、特許請求の範囲に記載の訂正部の一例である。
データバッファ230は、ホストコンピュータ100から受け取ったライトデータや、メモリ300から受け取ったリードデータなどを転送する際に一時的に保持するためのバッファである。
ホストインターフェース201は、ホストコンピュータ100との間のやりとりを行うためのインターフェースである。メモリインターフェース202は、メモリ300との間のやりとりを行うためのインターフェースである。
メモリ300は、制御部310と、メモリセルアレイ320と、コントローラインターフェース301とを備えている。制御部310は、メモリ300全体の制御を行うものであり、メモリコントローラ200から受け取った要求に従って、メモリセルアレイ320に対するアクセスを制御する。コントローラインターフェース301は、メモリコントローラ200との間のやりとりを行うためのインターフェースである。
メモリセルアレイ320は、複数のメモリセルからなるメモリセルアレイであり、ビット毎に2値の何れかの値を記憶するメモリセルが2次元状(マトリクス状)に多数配列されている。このメモリセルアレイ320は不揮発性メモリ(NVM:Non-Volatile Memory)を想定する。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。
メモリセルアレイ320の各メモリセルは、データ領域321、第1ECC領域322および第2ECC領域323を含む。データ領域321は、通常のデータを記憶するための領域である。データ領域321は、後述のように第1のデータ単位に区分けされる。
第1ECC領域322は、第1のデータ単位に対応する第1ECCを記憶するための領域である。第2ECC領域323は、第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2ECCを記憶するための領域である。
メモリセルアレイ320へのデータ書込み時には、メモリコントローラ200はデータに第1ECCパリティを加えたデータをメモリ300に送信する。データおよび第1ECCパリティは、メモリ300に同時に書き込まれる。読出し時にはデータおよび第1ECCパリティが同時に読み出され、メモリコントローラ200は第1ECCによるエラー検出訂正処理を行った後、そのデータをデータバッファ230からホストコンピュータ100に対して送信する。メモリコントローラ200は、第2ECCを設定する指令をホストコンピュータ100から受けた場合に、対象となる複数の第1のデータ単位を含むデータ領域を読み出し、その際、ECC処理部220によって第1ECCによるエラー検出訂正処理を行う。そして、エラーが全て訂正されたデータを順次ECC処理部220に入力して、複数の第1のデータ単位のデータが入力された結果として生成された第2ECCパリティを第2ECC領域323の一部に書き込む。その際、第2ECCパリティ以外のフラグ情報を保持するために、第2ECCパリティを記憶する第2ECC領域323に対しても第1ECCで保護することが望ましい。
[メモリセルアレイの記憶形式]
図2は、本技術の実施の形態におけるメモリセルアレイ320の記憶形式の一例を示す図である。ここでは、nページからなる第2ECCブロックを示している。ここにいうページは物理的な書込み単位を表す。この第2ECCブロックは、第1ECCの対象となる第1のデータ単位のデータをデータ領域に記憶し、第1ECCのパリティを冗長領域に記憶する。各ページにおいて、データと第1ECCパリティとが1対1に対応して関連付けて記憶される。また、第(n×m+1)ページは、第2ECC保存用のページとしてm個分の第2ECCブロックの第2ECCパリティとそれらを保護する第1ECCパリティとが関連付けて記憶される。
第2ECCブロック#1を構成する第1ページから第nページまでのデータ#1乃至nについての、第2のデータ単位に対応するエラー検出訂正コードを第2ECCエントリ#1と称する(図3参照)。第2ECCエントリ#2以降についても同様である。第2のデータ単位は第1のデータ単位を複数毎にまとめたものであるため、第2のデータ単位の方が第1のデータ単位よりも大きくなる。なお、この例では、第1のデータ単位のみを複数毎にまとめたものを第2のデータ単位としているが、第1のデータ単位に対応する第1ECCパリティ等の付加情報をそれぞれ含めて複数毎にまとめたものを第2のデータ単位としてもよい。
ここで、具体的な実施例として512バイトを1セクタとし、第1ECCが1セクタサイズのデータを保護するのに対して、第2ECCが連続する8セクタサイズ(4Kバイト)のデータを保護することを想定する。第1ECCが2ビット訂正可能である場合のパリティサイズは26ビットであり、訂正前のBER(ビットエラーレート)が10-6に対して訂正後のBERは約10-11となる。一方、第2ECCが5ビット訂正可能である場合のパリティサイズは80ビットであり、訂正前のBERが10-6に対して訂正後のBERは約10-15となり、上の第1ECCよりも改善されている。なお、この第2ECCと同等のBERを第1ECCのみによって得るにはセクタ単位で6ビット訂正が必要となり、その場合の第1ECCのパリティサイズは78ビットである。すなわち、8セクタ分では624ビットとなることから、上の第2ECCのパリティサイズの7倍以上の容量が必要となる。したがって、第2ECCを設けることにより、結果的にパリティサイズを小さくすることができることがわかる。
図3は、本技術の第1の実施の形態におけるメモリセルアレイ320の第2ECC領域323の記憶形式の一例を示す図である。上述のように、第(n×m+1)ページでは第2ECCとその第1ECCパリティとが関連付けて記憶される。ここでは、m個の第2ECCエントリ610に対して1つの第1ECCパリティ620が関連付けて記憶されるものとしている。書込み単位のデータ領域のサイズに合わせて複数の第2ECCパリティと付加情報を複数個記憶することにより、第2ECCパリティの記憶に必要な領域を効率化することができる。
第2ECCエントリ610は、それぞれ、第2ECCパリティ611と、対象物理アドレス612と、第2ECC有効フラグ613と、訂正不可エラー発生フラグ614とを付加情報として記憶する。図2のように第2ECCブロック#1乃至#mが常に物理的に連続に配置される場合には、対象物理アドレス612の情報は先頭となる書込み単位の物理アドレスを示す。
第2ECCパリティ611は、第1のデータ単位を複数毎にまとめた第2のデータ単位に対するエラー検出訂正コードのパリティである。
対象物理アドレス612は、第2ECCパリティ611の保護対象となるデータ領域のメモリ300における物理アドレスを示すものである。この対象物理アドレス612は、連続する書込み単位が保護対象である場合にはその先頭となる物理アドレスを有し、不連続の書込みを許容する場合にはm個の物理アドレスを有する。
第2ECC有効フラグ613は、第2ECCパリティ611が有効であるか否かを示すフラグである。ここでは、第2ECCパリティ611が有効であれば「ON」、第2ECCパリティ611が有効でなければ「OFF」であるものとする。
訂正不可エラー発生フラグ614は、第2ECCパリティ611の保護対象となるデータ領域内で第1ECCでは訂正できないエラーが発生しているか否かを示すフラグである。ここでは、第1ECCでは訂正できないエラーが発生していれば「ON」、未発生であれば「OFF」であるものとする。
なお、ここでは付加情報をメモリセルアレイ320に記憶する例を示したが、この付加情報はメモリコントローラ200において記憶して、管理するようにしてもよい。
図4は、本技術の実施の形態におけるメモリセルアレイ320の記憶形式の他の例を示す図である。メモリ300は、書込み単位としてはデータ領域のみを記憶し、第1ECCパリティをデータ領域とは独立した領域に書込む場合を示したものである。
この例において、データ領域と冗長領域とが異なるバンク領域であった場合には、上述の例と同様にデータ書込み時に並行して第1ECCパリティの書込みを開始することができる。また、第2ECCパリティの記憶態様として、データ領域に第2ECCパリティとその付加情報とを記憶し、これらのデータも他のデータと同様に第1ECCによって保護することが望ましい。
[メモリコントローラの動作]
図5は、本技術の第1の実施の形態における第2ECC設定処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100から第2ECC設定コマンドの指令を受けると、以下の第2ECC設定処理を行う。この第2ECC設定処理では、対象となる領域の第2ECCが有効でなければ第2ECCを有効にする。一方、第2ECCが有効であって、第1ECCによる訂正不可エラーが発生していない場合には、何も動作しない。第1ECCによる訂正不可エラーが発生している場合には、第2ECCによってエラー訂正を行う。
そのために、まず第2ECC有効フラグ613がチェックされ、無効であればステップS912以降の第2ECCを有効にする処理を行い(ステップS911:OFF)、有効であればステップS921以降の処理を行う(ステップS911:ON)。
第2ECCを有効にする処理では、第1のデータ単位が順次読み出される(ステップS912)。読み出された第1のデータ単位についてエラーが検出され、そのエラーが第1ECCによって訂正不可能な場合には(ステップS913)、第2ECCを生成することなく第2ECC設定処理をエラー終了する。一方、第1のデータ単位についてエラーが検出されず、または、検出されたエラーが第1ECCによって訂正可能な場合には、第2ECCが生成される(ステップS914)。対象となる領域の第1ECCが全て読み出されると(ステップS915:No)、生成された第2ECCが第2ECCパリティ611に書き込まれる(ステップS916)。そして、第2ECC有効フラグ613が「有効」を示す「ON」に設定される(ステップS917)。また、訂正不可エラー発生フラグ614は「未発生」を示す「OFF」にクリアされる(ステップS918)。
第2ECC有効フラグ613が有効である旨を示している場合(ステップS911:ON)、訂正不可エラー発生フラグ614がチェックされ、第1ECCによる訂正不可エラーが発生していなければそのまま処理を終了する(ステップS921:OFF)。第1ECCによる訂正不可エラーが発生している場合には(ステップS921:ON)、以下の処理が行われる。すなわち、第1のデータ単位が順次読み出され(ステップS922)、対象となる領域の第1ECCが全て読み出されるまで(ステップS924:No)、第2ECCによるエラー検出が行われる(ステップS923)。そして、エラーを発生しているデータについて第2ECCによる訂正が試みられる(ステップS925)。このとき、第2ECCによる訂正が不可能であれば(ステップS926:No)、メモリ300に反映することなく第2ECC設定処理をエラー終了する。一方、第2ECCによる訂正が可能であれば(ステップS926:Yes)、訂正された第1のデータ単位がメモリ300に上書きされる(ステップS927)。対象となる領域について訂正が完了すると(ステップS928)、第1ECCによる訂正不可エラーを有する状態は修正されるため、訂正不可エラー発生フラグ614は「未発生」を示す「OFF」にクリアされる(ステップS929)。
図6は、本技術の第1の実施の形態におけるリード処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からリードコマンドの指令を受けると、以下のリード処理を行う。このリード処理では、制御部210の指示により、指定されたサイズのデータが第1のデータ単位を最小単位として読み出される(ステップS941)。読み出された第1のデータ単位について第1ECCによるエラーの検出訂正処理が行われる(ステップS942)。エラーが検出されず、または、検出されたエラーが訂正された場合には(ステップS943:No)、そのエラーを含まないデータが出力される(ステップS944)。これらの処理が指定されたサイズを満たすまで繰り返される(ステップS945)。
ただし、第1ECCにより訂正できないエラーが発生した場合には(ステップS943:Yes)、リード処理は中止され、訂正不可エラー発生フラグ614は「発生」を示す「ON」に設定される(ステップS946)。さらに、第2ECC有効フラグ613が有効を示さない場合には(ステップS947:OFF)、訂正の余地がない旨をホストコンピュータ100に通知する(ステップS949)。第2ECC有効フラグ613が有効を示す場合には(ステップS947:ON)、第1ECCによる訂正は不可能なものの、第2ECCを利用した訂正の余地がある旨をホストコンピュータ100に通知する(ステップS948)。これにより、ホストコンピュータ100からの第2ECCによる修復指令を促すことができる。これに対し、ホストコンピュータ100は、上述の第2ECC設定コマンドを指令することにより、訂正不可エラーが発生している状態の解消を試みる。
図7は、本技術の第1の実施の形態におけるライト処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からライトコマンドの指令を受けると、以下のライト処理を行う。このライト処理では、まず、第2ECC有効フラグ613がチェックされる。第2ECC有効フラグ613が「OFF」に設定されている場合には(ステップS961:OFF)、そのまま通常の書込みを開始する。第2ECC有効フラグ613が「ON」に設定されている場合には(ステップS961:ON)、次に訂正不可エラー発生フラグ614がチェックされる(ステップS962)。そして、第1ECCにより訂正できないエラーが発生している場合には(ステップS962:ON)、書込み禁止である旨をホストコンピュータ100に通知する(ステップS972)。これにより、ホストコンピュータ100からの第2ECCによる修復指令を促すことができる。これに対し、ホストコンピュータ100は、上述の第2ECC設定コマンドを指令することにより、訂正不可エラーが発生している状態の解消を試みる。
第1ECCにより訂正できないエラーが発生していない場合には(ステップS962:OFF)、第2ECC有効フラグ613が「OFF」にクリアされる(ステップS963)。
ホストコンピュータ100からライトデータを第1のデータ単位毎に受け取ると(ステップS964)、ECC処理部220によって第1ECCが生成されて(ステップS965)、制御部210の指示によりメモリ300に書き込まれる(ステップS966)。
ステップS964からS966の処理は、指定されたサイズのライトデータについて、第1のデータ単位を最小単位として繰り返される(ステップS968)。ただし、第2のデータ単位の区切りを挟むときには、ステップS961に戻って処理を繰り返す(ステップS967)。
ステップS963において第2ECC有効フラグ613が「ON」から「OFF」にクリアされた場合には(ステップS969:Yes)、第2ECC有効フラグ613が無効を示すようになった旨をホストコンピュータ100に通知する(ステップS971)。これにより、ホストコンピュータ100からの第2ECCの新たな設定指令を促すことができる。これに対し、ホストコンピュータ100は、上述の第2ECC設定コマンドを指令することにより、第2ECCを新たに設定することを試みる。
図8は、本技術の第1の実施の形態における第2ECC削除処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100から第2ECC削除コマンドの指令を受けると、以下の第2ECC削除処理を行う。この第2ECC削除処理は、第2ECCが必要なくなった場合や、ライト処理の前にいったん第2ECCをクリアしたい場合などに指令される。より具体的には、長期に亘って書換えが生じないコールドデータから、頻繁に書換えが発生するホットデータへの切替え時に第2ECC削除処理が行われることが想定される。
この第2ECC削除処理では、まず、第2ECC有効フラグ613がチェックされ、「OFF」に設定されている場合には(ステップS981:OFF)、そのまま完了する。第2ECC有効フラグ613が「ON」に設定されている場合には(ステップS981:ON)、次に訂正不可エラー発生フラグ614がチェックされる。そして、第1ECCにより訂正できないエラーが発生している場合には(ステップS982:ON)、第2ECCが削除できない旨をホストコンピュータ100に通知する(ステップS987)。これにより、ホストコンピュータ100からの第2ECCによる修復指令を促すことができる。これに対し、ホストコンピュータ100は、上述の第2ECC設定コマンドを指令することにより、訂正不可エラーが発生している状態の解消を試みる。
第1ECCにより訂正できないエラーが発生していない場合には(ステップS982:OFF)、第2ECC有効フラグ613を「OFF」にクリアして、第2ECCが無効な状態に変更する(ステップS985)。そして、第2ECCが正常に削除された旨をホストコンピュータ100に通知する(ステップS986)。
図9は、本技術の第1の実施の形態における起動処理の処理手順例を示す流れ図である。メモリコントローラ200は、ストレージシステムの起動が指令された際、以下の起動処理を行う。この起動処理では、全てのストレージ領域を対象に前回のシャットダウンまでに発生していた全ての読出し不可能エラーを起動時に第2ECCによって訂正する。もし、第1ECCによる訂正不可エラーが発生していないことを確認した場合には第2ECCを削除し、そうではない場合にはそのエラーを訂正することにより、ストレージシステムとしての運用準備作業を行う。これらの処理は、メモリコントローラ200が起動した直後に、または、メモリコントローラ200がホストから起動が指令された際に、実行される。
まず、最初の第2のデータ単位について訂正不可エラー発生フラグ614がチェックされる(ステップS711)。訂正不可エラー発生フラグ614が「OFF」を示す場合には(ステップS711:OFF)、第2ECC有効フラグ613がチェックされ(ステップS712)、対応する第2ECCパリティ611が有効ではない第2のデータ単位についてはスキップされる(ステップS712:OFF)。
第2ECC有効フラグ613が「ON」を示す場合には(ステップS712:ON)、その第2データ単位について第1のデータ単位が順次読み出され(ステップS713)、第1ECCによる訂正不能が確認される(ステップS714)。対象となる第2データ単位の読出しと確認が終了するまで、次の第1データ単位についての処理が繰り返される(ステップS715)。対象となる第2データ単位について第1データ単位の読出しが完了すると、対象となる第2ECCの削除処理が行われる(ステップS716)。この第2ECC削除処理は、図8により説明したものと同様である。
訂正不可エラー発生フラグ614が「ON」を示す場合(ステップS711:ON)、または、第1ECCでは訂正できないエラーが発生した場合(ステップS714:Yes)、第2ECCの設定処理が行われる(ステップS717)。この第2ECC設定処理は、図5により説明したものと同様である。そして、第2ECC設定処理におけるビットエラー訂正処理に成功した場合には(ステップS719:Yes)、次の第2のデータ単位の処理に進む。第2ECC設定処理におけるビットエラー訂正処理に失敗(エラー終了)した場合には(ステップS719:No)、起動処理の失敗をホストコンピュータ100に通知する(ステップS723)。
全ての第2のデータ単位について処理が完了した場合には(ステップS721:No)、起動処理の成功をホストコンピュータ100に通知する(ステップS722)。
図10は、本技術の第1の実施の形態におけるシャットダウン処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からストレージシステムのシャットダウンが指令された際、以下のシャットダウン処理を行う。このシャットダウン処理では、メモリ300の状態を調べ、第2ECCにより訂正が可能な第2のデータ単位については第2ECCの設定処理を行うことにより訂正し、シャットダウンの準備作業を行う。いったんシャットダウンされた後は、次に起動されて書換えが発生するまでに時間が空いてしまうことが予想されるため、第2ECCによる保護を行うものである。
まず、最初の第2のデータ単位を対象として、訂正不可エラー発生フラグ614がチェックされ、第1ECCでは訂正できないエラーが発生していない場合には(ステップS731:OFF)、第2ECC有効フラグ613がチェックされる(ステップS731)。
第2ECCが有効な第2のデータ単位については(ステップS732:ON)、既に第2ECCが有効であり、訂正不可能データも発生していないことから、次の第2データ単位の処理へ移行する(ステップS738:Yes)。
第1ECCでは訂正できないエラーが発生している場合(ステップS731:ON)、または、そのエラーが発生していなくても第2ECCが無効な第2のデータ単位である場合には(ステップS732:OFF)、第2ECC設定処理が行われる(ステップS741)。この第2ECC設定処理は、図5により説明したものと同様である。第2ECCの設定に成功した場合には次の第2のデータ単位の処理に進み(ステップS742:Yes)、第2ECCの設定に失敗した場合にはシャットダウン失敗をホストコンピュータ100に通知する(ステップS743)。これらステップS741乃至S743の処理は、以下において共通する処理である。
これまでの処理は、全ての第2のデータ単位について順次行われる。そして、全ての第2のデータ単位について処理が完了すると(ステップS738:No)、シャットダウンの成功をホストコンピュータ100に通知する(ステップS739)。
このように、本技術の第1の実施の形態によれば、第1ECCによる訂正不可エラーの発生を訂正不可エラー発生フラグ614として記憶しておくことにより、第2ECCによる訂正処理を任意のタイミングで行うことを可能とする。
<2.第2の実施の形態>
[情報処理システムの構成]
図11は、本技術の第2の実施の形態における情報処理システムの一構成例を示す図である。この第2の実施の形態の情報処理システムは、データ領域321に一時代替領域324を設けた点で第1の実施の形態と異なっている。他の点においては同様であるため、詳細な説明は省略する。
この一時代替領域324は、第2ECCにより保護される領域について新たな書込みが生じた場合に、それまでの第2ECCを引き続き利用できるように、新たな書込みの内容を一時的に記憶するための領域である。
[メモリセルアレイの記憶形式]
図12は、本技術の第2の実施の形態におけるメモリセルアレイ320の第2ECC領域323の記憶形式の一例を示す図である。この第2の実施の形態の第2ECCエントリ610は、一時代替領域有効フラグ群615をさらに備える点で第1の実施の形態と異なっている。他の点においては同様であるため、詳細な説明は省略する。
この一時代替領域有効フラグ群615は、各ページ#1乃至#(n−1)に対応する一時代替領域がそれぞれ有効に存在するか否かを示すフラグ群である。ここでは、対応する一時代替領域が有効であれば「ON」、有効でなければ(存在しなければ)「OFF」であるものとする。
なお、ここでは一時代替領域有効フラグ群615を含む付加情報をメモリセルアレイ320に記憶する例を示したが、この付加情報はメモリコントローラ200において記憶して、管理するようにしてもよい。
[メモリコントローラの動作]
図13は、本技術の第2の実施の形態における第2ECC設定処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100から第2ECC設定コマンドの指令を受けると、以下の第2ECC設定処理を行う。この第2の実施の形態における第2ECC設定処理は、第2ECC有効フラグ613が有効な場合(ステップS811:OFF)の処理内容は第1の実施の形態と同様である(ステップS811乃至S817)。また、第2ECCが無効な場合については(ステップS811:ON)、第1ECCによる訂正不可エラーの修復処理(ステップS820)については第1の実施の形態と同様であるが、データ一時代替解消処理(ステップS830)を伴う点において異なっている。
図14は、本技術の第2の実施の形態における訂正不可エラー修復処理(ステップS820)の処理手順例を示す流れ図である。この訂正不可エラー修復処理は、第1の実施の形態におけるステップS921乃至S928と基本的に同様である。
まず、訂正不可エラー発生フラグ614がチェックされ、第1ECCによる訂正不可エラーが発生していなければそのまま処理を終了する(ステップS821:OFF)。第1ECCによる訂正不可エラーが発生している場合には(ステップS821:ON)、以下の処理が行われる。すなわち、第1のデータ単位が順次読み出され(ステップS822)、対象となる領域の第1ECCが全て読み出されるまで(ステップS825:No)、エラー検出が行われる(ステップS823、S824)。ここで、第1ECCにより訂正できないエラーが検出された場合には(ステップS823:訂正不可)、そのまま処理を終了する。一方、第1ECCにより訂正可能なエラーが検出されて訂正が行われた場合、または、エラーが検出されず訂正不要な場合には(ステップS823:訂正可/不要)、第2ECCによるエラー検出が行われる(ステップS824)。そして、エラーを発生しているデータについて第2ECCによる訂正が行われ(ステップS826)、訂正された第1のデータ単位がメモリ300に上書きされる(ステップS827)。対象となる領域について訂正が完了すると(ステップS828)、第1ECCによる訂正不可エラーを有する状態は修正されるため、訂正不可エラー発生フラグ614は「未発生」を示す「OFF」にクリアされる(ステップS829)。
図15は、本技術の第2の実施の形態におけるデータ一時代替解消処理(ステップS830)の処理手順例を示す流れ図である。このデータ一時代替解消処理では、各ページのデータ領域のデータを第1のデータ単位として、一時代替領域の存在を順次調べて解消していく。
一時代替領域有効フラグ群615における対応するページのフラグが有効を示していなければ(ステップS831:OFF)、対応する一時代替領域が存在しないため、データ領域から第1のデータ単位の読出しが行われる(ステップS891)。第1ECCにより訂正できないエラーが検出された場合には(ステップS893:訂正不可)、訂正できない旨をホストコンピュータ100に報告して(ステップS899)、そのまま処理を終了する。一方、第1ECCにより訂正可能なエラーが検出されて訂正が行われた場合、または、エラーが検出されず訂正不要な場合には(ステップS893:訂正可/不要)、第2ECC生成の処理(ステップS836)に進む。
一方、一時代替領域有効フラグ群615における対応するページのフラグが有効を示していれば(ステップS831:ON)、一時代替領域から第1のデータ単位の読出しが行われる(ステップS832)。ここで、第1ECCにより訂正できないエラーが検出された場合には(ステップS833:訂正不可)、そのまま処理を終了する。一方、第1ECCにより訂正可能なエラーが検出されて訂正が行われた場合、または、エラーが検出されず訂正不要な場合には(ステップS833:訂正可/不要)、読み出された第1のデータ単位は、データ領域に書き込まれる(ステップS834)。そして、一時代替領域の第1のデータ単位は解放され、一時代替領域有効フラグ群615における対応するページのフラグは「OFF」にクリアされる(ステップS835)。
何れの場合であっても、得られた第1のデータ単位に基づいて第2ECCが生成される(ステップS836)。これらの処理は対象となる第2のデータ単位に含まれる第1のデータ単位について繰り返される(ステップS837)。このようにして生成された第2ECCが第2ECC領域323に書き込まれる(ステップS838)。これにより、当該第2のデータ単位に対応する一時代替領域は解消される。
図16は、本技術の第2の実施の形態におけるリード処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からリードコマンドの指令を受けると、以下のリード処理を行う。この第2の実施の形態におけるリード処理は、一時代替領域有効フラグ群615における対応するページのフラグが有効を示していなければ(ステップS851:OFF)、第1の実施の形態と同様の処理となる(ステップS841乃至S849)。
一方、一時代替領域有効フラグ群615における対応するページのフラグが有効を示していれば(ステップS851:ON)、その一時代替領域の第1のデータ単位が読み出され(ステップS852)、第1ECCによるエラー検出訂正処理が行われる(ステップS853)。そして、第1ECCでは訂正できないエラーが発生した場合には(ステップS854:Yes)、訂正の余地がない旨をホストコンピュータ100に通知する(ステップS849)。
エラーが検出されず、または、検出されたエラーが訂正された場合には(ステップS854:No)、そのエラーを含まないデータが出力される(ステップS844)。これらの処理が指定されたサイズを満たすまで繰り返される(ステップS845)。
図17は、本技術の第2の実施の形態におけるライト処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からライトコマンドの指令を受けると、以下のライト処理を行う。この第2の実施の形態におけるライト処理は、第2ECC有効フラグ613が有効を示していなければ(ステップS861:OFF)、第1の実施の形態と同様の処理となる(ステップS863乃至S867)。
一方、第2ECC有効フラグ613が有効を示している場合には(ステップS861:ON)、一時代替領域有効フラグ群615における対応するページのフラグがチェックされ、有効でなければ(ステップS871:OFF)、有効に設定される(ステップS872)。これにより一時代替領域の使用準備が整ったことになる。そして、ホストコンピュータ100からライトデータを第1のデータ単位毎に受け取ると(ステップS873)、ECC処理部220によって第1ECCが生成されて(ステップS874)、一時代替領域に書き込まれる(ステップS875)。
ステップS871からS875の処理は、指定されたサイズのライトデータについて、第1のデータ単位を最小単位として繰り返される(ステップS877)。ただし、第2のデータ単位の区切りを挟むときには、ステップS861に戻って処理を繰り返す(ステップS876)。
ステップS872において一時代替領域が新たに確保された場合には(ステップS878:Yes)、一時代替領域が新たに発生した旨をホストコンピュータ100に通知する(ステップS879)。
図18は、本技術の第2の実施の形態における第2ECC削除処理の処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100から第2ECC削除コマンドの指令を受けると、以下の第2ECC削除処理を行う。この第2の実施の形態における第2ECC削除処理は、一時代替領域有効フラグ群615をチェックする点以外は、第1の実施の形態と同様の処理となる(ステップS881、S884乃至S886)。
この第2ECC削除処理では、まず、第2ECC有効フラグ613がチェックされ(ステップS880)、OFFの場合には(ステップS881:OFF)そのまま処理を完了する。第2ECC有効フラグ613がONの場合には(ステップ881:ON)、次に訂正不可エラー発生フラグ614がチェックされる(ステップS882)。そして、第1ECCにより訂正できないエラーが発生している場合には(ステップS882:ON)、第2ECCが削除できない旨をホストコンピュータ100に通知する(ステップS887)。また、一時代替領域有効フラグ群615における対応するページのフラグが順次チェックされ(ステップS884)、有効な一時代替領域が存在する場合にも(ステップS883:ON)、第2ECCが削除できない旨をホストコンピュータ100に通知する(ステップS887)。これにより、ホストコンピュータ100からの第2ECCによる修復指令を促すことができる。これに対し、ホストコンピュータ100は、上述の第2ECC設定コマンドを指令することにより、訂正不可エラーが発生している状態の解消を試みる。
それ以外の場合には、第2ECC有効フラグ613を「OFF」にクリアして、第2ECCが無効な状態に変更する(ステップS885)。そして、第2ECCが正常に削除された旨をホストコンピュータ100に通知する(ステップS886)。
図19は、本技術の第2の実施の形態におけるシャットダウン処理の処理手順例を示す流れ図である。メモリコントローラ200は、ストレージシステムのシャットダウンが指令された際、以下のシャットダウン処理を行う。この第2の実施の形態におけるシャットダウン処理は、一時代替領域有効フラグ群615をチェックする点以外は、第1の実施の形態と同様の処理となる(ステップS771、S772、S774乃至S783)。なお、ステップS776において、第1ECCにより訂正されるビット数がある閾値以上であった場合には、次の起動までに訂正不可能になる可能性が高いと判断して、シャットダウン前にデータを修正するために第2ECC設定処理を行う。
対象となる第2のデータ単位におけるチェックの一環として、一時代替領域有効フラグ群615における対応するページのフラグが順次チェックされ(ステップS773)、有効な一時代替領域が存在する場合には第2ECC設定処理が行われる(ステップS781)。この第2ECC設定処理は、図13により説明したものと同様である。
なお、第2の実施の形態における起動処理については特に図示していないが、基本的には第1の実施の形態と同様である。
このように、本技術の第2の実施の形態によれば、一時代替領域を設けることにより、第2ECCにより保護される領域に新たな書込みが生じた際に、それまでの第2ECCを引き続き利用できるようにすることができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
を具備する記憶制御装置。
(2)前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してライトアクセス指令が生じた場合にはライトアクセスが禁止である旨を前記ライトアクセス指令の指令元に通知を行う
前記(1)に記載の記憶制御装置。
(3)前記第2のエラー検出訂正コードが有効であるか否かを指示する第2のエラー検出訂正コード有効フラグを前記第2のデータ単位毎に管理する第2のエラー検出訂正コード有効フラグ管理部をさらに具備し、
前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した前記第2のデータ単位に対してリードアクセス指令が生じた場合には前記第2のエラー検出訂正コード有効フラグに基づいて前記リードアクセス指令の指令元に通知を行う
前記(1)または(2)に記載の記憶制御装置。
(4)前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対して前記第2のエラー検出訂正コードの削除指令が生じた場合には前記第2のエラー検出訂正コードの削除が禁止である旨を前記削除指令の指令元に通知を行う
前記(1)から(3)のいずれかに記載の記憶制御装置。
(5)前記第2のデータ単位の少なくとも一部に対応する一時代替領域が存在するか否かを指示する一時代替領域有効フラグを前記第2のデータ単位毎に管理する一時代替領域有効フラグ管理部をさらに具備し、
前記制御部は、前記一時代替領域が存在する領域に対してライトアクセス指令が生じた場合には前記一時代替領域に対してライトアクセスを行い、前記一時代替領域が存在する領域に対してリードアクセス指令が生じた場合には前記一時代替領域に対してリードクセスを行う
前記(1)から(4)のいずれかに記載の記憶制御装置。
(6)前記制御部は、前記一時代替領域の解消指令が生じた場合には前記一時代替領域の記憶内容を前記メモリに反映して前記第1および第2のエラー検出訂正コードを生成し直す前記(5)に記載の記憶制御装置。
(7)前記制御部は、システムのシャットダウンの際に、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を前記第2のエラー検出訂正コードを利用して修復する
前記(1)から(6)のいずれかに記載の記憶制御装置。
(8)前記第2のデータ単位は、複数の前記第1のデータ単位の各々に対応する付加情報をさらに備える
前記(1)から(7)のいずれかに記載の記憶制御装置。
(9)第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、
前記メモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
を具備する記憶装置。
(10)第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、
前記メモリに対するアクセス指令を発行するホストコンピュータと、
前記メモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴う前記アクセス指令が生じた場合には当該アクセスを禁止する制御部と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
を具備する情報処理システム。
(11)第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理手順と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御手順と、
前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正手順と
を具備する記憶制御方法。
100 ホストコンピュータ
101 コントローラインターフェース
110 プロセッサ
200 メモリコントローラ
201 ホストインターフェース
202 メモリインターフェース
210 制御部
220 ECC処理部
230 データバッファ
300 メモリ
301 コントローラインターフェース
310 制御部
320 メモリセルアレイ
321 データ領域
322 第1ECC領域
323 第2ECC領域
324 一時代替領域

Claims (11)

  1. 第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
    を具備する記憶制御装置。
  2. 前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してライトアクセス指令が生じた場合にはライトアクセスが禁止である旨を前記ライトアクセス指令の指令元に通知を行う
    請求項1記載の記憶制御装置。
  3. 前記第2のエラー検出訂正コードが有効であるか否かを指示する第2のエラー検出訂正コード有効フラグを前記第2のデータ単位毎に管理する第2のエラー検出訂正コード有効フラグ管理部をさらに具備し、
    前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した前記第2のデータ単位に対してリードアクセス指令が生じた場合には前記第2のエラー検出訂正コード有効フラグに基づいて前記リードアクセス指令の指令元に通知を行う
    請求項1記載の記憶制御装置。
  4. 前記制御部は、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対して前記第2のエラー検出訂正コードの削除指令が生じた場合には前記第2のエラー検出訂正コードの削除が禁止である旨を前記削除指令の指令元に通知を行う
    請求項1記載の記憶制御装置。
  5. 前記第2のデータ単位の少なくとも一部に対応する一時代替領域が存在するか否かを指示する一時代替領域有効フラグを前記第2のデータ単位毎に管理する一時代替領域有効フラグ管理部をさらに具備し、
    前記制御部は、前記一時代替領域が存在する領域に対してライトアクセス指令が生じた場合には前記一時代替領域に対してライトアクセスを行い、前記一時代替領域が存在する領域に対してリードアクセス指令が生じた場合には前記一時代替領域に対してリードクセスを行う
    請求項1記載の記憶制御装置。
  6. 前記制御部は、前記一時代替領域の解消指令が生じた場合には前記一時代替領域の記憶内容を前記メモリに反映して前記第1および第2のエラー検出訂正コードを生成し直す請求項5記載の記憶制御装置。
  7. 前記制御部は、システムのシャットダウンの際に、前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を前記第2のエラー検出訂正コードを利用して修復する
    請求項1記載の記憶制御装置。
  8. 前記第2のデータ単位は、複数の前記第1のデータ単位の各々に対応する付加情報をさらに備える
    請求項1記載の記憶制御装置。
  9. 第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、
    前記メモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
    を具備する記憶装置。
  10. 第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリと、
    前記メモリに対するアクセス指令を発行するホストコンピュータと、
    前記メモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴う前記アクセス指令が生じた場合には当該アクセスを禁止する制御部と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正部と
    を具備する情報処理システム。
  11. 第1のデータ単位に対応する第1のエラー検出訂正コードおよび前記第1のデータ単位を複数毎にまとめた第2のデータ単位に対応する第2のエラー検出訂正コードを記憶するメモリにおいて前記第1のエラー検出訂正コードでは訂正できないエラーが発生したか否かを指示する訂正不可エラー発生フラグを前記第2のデータ単位毎に管理する訂正不可エラー発生フラグ管理手順と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位に対してデータ変更を伴うアクセス指令が生じた場合には当該アクセスを禁止する制御手順と、
    前記第1のエラー検出訂正コードでは訂正できないエラーが発生した旨を指示している前記第2のデータ単位を修復する場合には前記第2のエラー検出訂正コードを利用して当該第2のデータ単位を訂正する訂正手順と
    を具備する記憶制御方法。
JP2013216912A 2013-10-18 2013-10-18 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 Active JP6028709B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013216912A JP6028709B2 (ja) 2013-10-18 2013-10-18 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US14/487,729 US9547566B2 (en) 2013-10-18 2014-09-16 Storage control apparatus, storage apparatus, information processing system, and storage control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013216912A JP6028709B2 (ja) 2013-10-18 2013-10-18 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法

Publications (2)

Publication Number Publication Date
JP2015079402A JP2015079402A (ja) 2015-04-23
JP6028709B2 true JP6028709B2 (ja) 2016-11-16

Family

ID=52827270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013216912A Active JP6028709B2 (ja) 2013-10-18 2013-10-18 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法

Country Status (2)

Country Link
US (1) US9547566B2 (ja)
JP (1) JP6028709B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799513B (zh) * 2012-06-28 2016-04-06 腾讯科技(深圳)有限公司 故障问题的展示方法及展示系统
US10606694B2 (en) * 2018-04-20 2020-03-31 Micron Technology, Inc. Error correction using hierarchical decoders
JP2020042888A (ja) * 2018-09-13 2020-03-19 株式会社東芝 磁気ディスク装置および磁気ディスク装置の制御方法
CN114127726A (zh) * 2019-07-12 2022-03-01 松下知识产权经营株式会社 车载安全存储系统
US11528038B2 (en) * 2020-11-06 2022-12-13 Western Digital Technologies, Inc. Content aware decoding using shared data statistics
JP2022144469A (ja) * 2021-03-19 2022-10-03 キオクシア株式会社 メモリシステム
KR20230026016A (ko) * 2021-08-17 2023-02-24 삼성전자주식회사 스토리지 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3305966B2 (ja) * 1995-12-25 2002-07-24 ソニー株式会社 データ復号装置及びその方法並びにデータ再生装置
US6018817A (en) * 1997-12-03 2000-01-25 International Business Machines Corporation Error correcting code retrofit method and apparatus for multiple memory configurations
US6622268B2 (en) * 2000-11-29 2003-09-16 Intel Corp Method and apparatus for propagating error status over an ECC protected channel
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
KR100856399B1 (ko) * 2002-01-23 2008-09-04 삼성전자주식회사 디코딩 방법 및 그 장치
JP2003346432A (ja) * 2002-05-22 2003-12-05 Internatl Business Mach Corp <Ibm> データ記憶装置およびデータ処理方法
US7222270B2 (en) * 2003-01-10 2007-05-22 International Business Machines Corporation Method for tagging uncorrectable errors for symmetric multiprocessors
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
US7424648B2 (en) * 2005-03-10 2008-09-09 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory system, nonvolatile memory device, data read method, and data read program
JP5540969B2 (ja) * 2009-09-11 2014-07-02 ソニー株式会社 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
US8478796B2 (en) * 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
KR101712619B1 (ko) * 2011-01-19 2017-03-06 삼성전자주식회사 에러 정정 코드의 인코딩 및 디코딩 방법
US8484542B2 (en) * 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
JP5329689B2 (ja) * 2011-06-08 2013-10-30 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置
US8806112B2 (en) * 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
JP5845876B2 (ja) * 2011-12-20 2016-01-20 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Also Published As

Publication number Publication date
US20150113311A1 (en) 2015-04-23
JP2015079402A (ja) 2015-04-23
US9547566B2 (en) 2017-01-17

Similar Documents

Publication Publication Date Title
JP6028709B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP6149598B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US20110029716A1 (en) System and method of recovering data in a flash storage system
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
CN103136067A (zh) 存储控制器、存储设备、信息处理系统以及存储控制方法
JP2010015197A (ja) ストレージ制御装置、データ復元装置およびストレージシステム
JP2012514274A (ja) ソリッドステートディスクにおける改良された誤り訂正
CN103995756A (zh) 存储控制器、存储设备、信息处理系统和存储控制方法
US20180157428A1 (en) Data protection of flash storage devices during power loss
JP2013239099A (ja) 制御装置、記憶装置、記憶制御方法
JP2013092854A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
JP2009301194A (ja) 半導体記憶装置の制御システム
WO2016017321A1 (ja) メモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法
JP2014086062A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US20130036259A1 (en) Solid state drive and data storing method thereof
JP6524126B2 (ja) メモリ制御装置及びメモリ制御方法
JP2013228767A (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP2008077458A (ja) 記憶データ処理装置、記憶装置、記憶データ処理プログラム
US8924814B2 (en) Write management using partial parity codes
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
US9063903B2 (en) Memory system provided with NAND flash memory and method including simultaneously writing data to first and second memory arrays
WO2015182439A1 (ja) 記憶装置、記憶システムおよび記憶装置の制御方法
WO2019244417A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
JP2013101455A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

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: 20160920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161003

R151 Written notification of patent or utility model registration

Ref document number: 6028709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250