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

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

Info

Publication number
JP2014086062A
JP2014086062A JP2012237383A JP2012237383A JP2014086062A JP 2014086062 A JP2014086062 A JP 2014086062A JP 2012237383 A JP2012237383 A JP 2012237383A JP 2012237383 A JP2012237383 A JP 2012237383A JP 2014086062 A JP2014086062 A JP 2014086062A
Authority
JP
Japan
Prior art keywords
read
error correction
accuracy
error
standard
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
Application number
JP2012237383A
Other languages
English (en)
Inventor
Kenichi Nakanishi
健一 中西
Yasushi Fujinami
靖 藤波
Keiichi Tsutsui
敬一 筒井
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 JP2012237383A priority Critical patent/JP2014086062A/ja
Priority to US14/030,016 priority patent/US9176811B2/en
Priority to CN201310499690.5A priority patent/CN103793335B/zh
Publication of JP2014086062A publication Critical patent/JP2014086062A/ja
Pending legal-status Critical Current

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/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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】標準の精度によるリードおよび高い精度によるリードの何れにも対応するメモリにおいて、エラー訂正の状態に応じてリード要求を制御する。
【解決手段】標準リード要求部は、メモリ上のリードアドレスに対して標準の精度によるリードを要求する。エラー訂正部は、標準の精度によるリード要求に応答してメモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行う。高精度リード要求部は、エラー訂正によって訂正できないエラーが発生した場合にはリードアドレスに対して標準の精度より高い精度によるリードを再度要求する。
【選択図】図1

Description

本技術は、記憶制御装置に関する。詳しくは、エラー訂正コードをデータとともに記憶するメモリに対して記憶制御を行う記憶制御装置、記憶装置、および、これらにおける処理方法に関する。
従来、プロセッサとそのワークメモリ(主記憶装置)からなる情報処理システムにおいて、さらにストレージ(補助記憶装置)を備えることにより記憶容量を増やす技術が開発されている。このような情報処理システムにおいては、ワークメモリとしてDRAM(Dynamic Random Access Memory)等が用いられる。一方、ストレージとして不揮発性メモリ(NVM:Non-Volatile Memory)が用いられることがある。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)、ReRAM(Resistance RAM)などが挙げられる。
従来の不揮発性メモリにおいては、通常のリード方法に加えて、リード時間を要するが高い精度を有するリード方法を備えるものが提案されている(例えば、特許文献1参照。)。すなわち、高速であるが比較的精度の低い通常のリード方法であるダイナミックリードと、高精度であるが比較的速度の低いリード方法であるスタティックリードの両者が開示されている。
特開2011−165297号公報
不揮発性メモリは、ライトやリードのアクセスを繰り返すことによって劣化するメカニズムを有する。そのような状態のセルから読み出されたデータは、ビット誤りを含んでリードされる場合がある。したがって、各セルの状態の影響を受けて、各リード動作による結果によって発生するビット誤りも変化する。例えば、あるデータが劣化したセルに保存されている場合に、高速なダイナミックリードを行った場合にはビット誤りが増加しやすくなる。このような場合、上述の従来技術においては不揮発性メモリデバイス内でビット誤りを検出する手段はなく、また、用途別にリード動作を割り当てているため、リードされたデータの結果を改善することはできない。不揮発性メモリ上に保存されたデータが正しくリードされない状態は、その情報を失ったことを意味するため、システムとしては致命的な状態となる。すなわち、それを防ぐ有効な手段として精度の高いリード方法を活かし切れていないことになる。
本技術はこのような状況に鑑みて生み出されたものであり、標準の精度によるリードおよび高い精度によるリードの何れにも対応するメモリにおいて、エラー訂正の状態に応じてリード要求を制御することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリ上のリードアドレスに対して標準の精度によるリードを要求する標準リード要求部と、上記標準の精度によるリード要求に応答して上記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、上記エラー訂正によって訂正できないエラーが発生した場合には上記リードアドレスに対して上記標準の精度より高い精度によるリードを再度要求する高精度リード要求部とを具備する記憶制御装置およびその記憶制御方法である。これにより、メモリに対する標準の精度によるリードにおいてエラー訂正できない場合に、高精度によるリードをメモリに要求するという作用をもたらす。
また、この第1の側面において、上記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には上記リードアドレスを記録する記録部をさらに具備し、新たなリード要求に係る新たなリードアドレスが上記記録部に記録されている場合には上記標準の精度によるリード要求を行うことなく上記高精度によるリード要求を上記新たなリードアドレスに対して行うようにしてもよい。これにより、訂正されたビット数が一定の要件を満たすアドレスについて高精度によるリードを行うという作用をもたらす。この場合において、上記記録部は、上記訂正されたビット数が所定の閾値を超えた場合に上記一定の要件を満たしたものとして上記リードアドレスを記録するようにしてもよい。
また、この第1の側面において、上記リードアドレスが所定のアドレス領域に該当する場合には上記標準の精度によるリード要求を行うことなく上記高精度によるリード要求を上記リードアドレスに対して行うようにしてもよい。これにより、アドレス領域に応じて高精度によるリードを行うという作用をもたらす。この場合において、上記所定のアドレス領域はシステム領域を想定することができる。
また、この第1の側面において、上記エラー訂正部は、第1サイズのデータに対しては第1のエラー訂正コードに基づいてエラー訂正を行い、上記第1サイズよりも大きい第2サイズのデータに対しては上記第1のエラー訂正コードよりも訂正能力の高い第2のエラー訂正コードに基づいてエラー訂正を行い、上記リードアドレスに対するリード要求が上記第1サイズを超えない場合には上記標準の精度によるリード要求を行うことなく上記高精度によるリード要求を上記リードアドレスに対して行うようにしてもよい。これにより、第1サイズを超えない場合に高精度によるリードを行うという作用をもたらす。
また、この第1の側面において、上記リードアドレスへのアクセス頻度が一定の要件を満たす場合には上記標準の精度によるリード要求を行うことなく上記高精度によるリード要求を上記リードアドレスに対して行うようにしてもよい。これにより、アクセス頻度に応じて高精度によるリードを行うという作用をもたらす。
また、この第1の側面において、上記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には上記リードアドレスに対してリフレッシュを要求するリフレッシュ要求部をさらに具備してもよい。これにより、訂正されたビット数が一定の要件を満たすアドレスについてリフレッシュを行うという作用をもたらす。この場合において、上記リフレッシュ要求部は、上記リードアドレスにおいて上記標準の精度より高い精度によるリードを行ってそのリード結果を上記リードアドレスにライトする旨を上記リフレッシュ要求として指示してもよい。これにより、リフレッシュのためのリードを高い精度により行うという作用をもたらす。
また、本技術の第2の側面は、標準の精度によるリードおよび上記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、上記メモリ上のリードアドレスに対して上記標準の精度によるリードを要求する標準リード要求部と、上記標準の精度によるリード要求に応答して上記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、上記エラー訂正によって訂正できないエラーが発生した場合には上記リードアドレスに対して上記標準の精度より高い精度によるリードを再度要求する高精度リード要求部とを具備する記憶装置である。これにより、標準の精度によるリードにおいてエラー訂正できない場合に高精度によるリードを行うという作用をもたらす。
また、本技術の第3の側面は、標準の精度によるリードおよび上記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、上記メモリへのリードアクセスを発行するホストコンピュータと、上記リードアクセスに応答して上記メモリ上のリードアドレスに対して上記標準の精度によるリードを要求する標準リード要求部と、上記標準の精度によるリード要求に応答して上記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、上記エラー訂正によって訂正できないエラーが発生した場合には上記リードアドレスに対して上記標準の精度より高い精度によるリードを再度要求する高精度リード要求部とを具備する情報処理システムである。これにより、ホストコンピュータからのメモリへのリードアクセスに際し、標準の精度によるリードにおいてエラー訂正できない場合に高精度によるリードを行うという作用をもたらす。
本技術によれば、標準の精度によるリードおよび高い精度によるリードの何れにも対応するメモリにおいて、エラー訂正の状態に応じてリード要求を制御することができるという優れた効果を奏し得る。
本技術の実施の形態における情報処理システムの構成例を示す図である。 本技術の実施の形態におけるリード処理部240周辺の構成例を示す図である。 本技術の第1の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第2の実施の形態におけるエラーログ保持部242の構成例を示す図である。 本技術の第2の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第3の実施の形態において想定される論理ページと物理ページの対応関係の一例を示す図である。 本技術の第3の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第4の実施の形態において想定されるデータとエラー訂正コードの対応関係の一例を示す図である。 本技術の第4の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第5の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第6の実施の形態における情報処理システムのリード処理の手順例を示す図である。 本技術の第6の実施の形態における情報処理システムのリフレッシュ処理の手順例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(基本的制御)
2.第2の実施の形態(エラー訂正ログに基づく制御例)
3.第3の実施の形態(アクセス領域に基づく制御例)
4.第4の実施の形態(エラー訂正コードを二重にした場合の制御例)
5.第5の実施の形態(アクセス頻度に基づく制御例)
6.第6の実施の形態(リフレッシュを併用した制御例)
7.変形例
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、不揮発性メモリ300とを備えている。メモリコントローラ200および不揮発性メモリ300は、メモリシステムを構成する。ホストコンピュータ100は、メモリシステムに対してデータのリードまたはライト等を要求するコマンドを発行するものである。
不揮発性メモリ300は、電源が供給されていない状態においてもその内容を保持し続ける不揮発性の性質を有するメモリ(NVM:Non-Volatile Memory)である。不揮発性メモリ300としては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、NVRAMの例としては、PCRAM、MRAM、ReRAMなどが挙げられる。
この不揮発性メモリ300は、制御インターフェース310と、メモリバッファ320と、メモリセルアレイ330とを備える。メモリセルアレイ330は、各ビットのデータ値を記憶するメモリセルを、マトリクス状に配置したものである。各メモリセルは電源が供給されていない状態においてもその内容を保持し続ける不揮発性の性質を有する。メモリバッファ320は、メモリセルアレイ330にライトするためのデータまたはメモリセルアレイ330からリードしたデータを保持するためのバッファである。制御インターフェース310は、メモリコントローラ200との間のやり取りを行うインターフェースである。
メモリセルアレイ330は、精度の異なる2種類のリード方法(リードモード)を有する。一方は、高速であるが比較的精度の低い通常のリード方法であり、このリード方法によるアクセスを通常アクセスと称する。他方は、高精度であるが比較的速度の低いリード方法であり、このリード方法によるアクセスを高精度アクセスと称する。何れのリード方法によるかはメモリコントローラ200からの指示に従う。
メモリコントローラ200は、不揮発性メモリ300を制御するためのものであり、ホストコンピュータ100からの指示に従って、不揮発性メモリ300に対してリードやライト等のリクエストを発行する。このメモリコントローラ200は、ホストインターフェース210と、ライト処理部220と、エラー訂正コード生成部230と、リード処理部240と、エラー検出部250と、エラー訂正部260と、メモリインターフェース270とを備えている。
ライト処理部220は、不揮発性メモリ300に対してデータをライトする処理を行うものである。ライト処理部220は、ホストコンピュータ100からのライトコマンドに従って、ライトリクエストを不揮発性メモリ300に発行する。ホストコンピュータ100からのライトコマンドには、ライト処理の対象となるライトアドレスが含まれる。メモリコントローラ200は、このライトアドレスを論理アドレスから物理アドレスに変換してもよく、また、そのままのアドレスを出力してもよい。ライト処理の対象となるライトデータは、通常の場合、ホストコンピュータ100からのライトコマンドに含まれ、または、ライトコマンドとともに指示される。また、リフレッシュ処理が行われる場合には、リード処理部240によってリードされたデータがライトデータとして用いられることもある。
エラー訂正コード生成部230は、ライトデータに対するエラー訂正コード(ECC:Error Correcting Code)を生成するものである。生成されたエラー訂正コードは、ライトデータとともに不揮発性メモリ300に書き込まれる。
リード処理部240は、不揮発性メモリ300からデータをリードする処理を行うものである。リード処理部240は、ホストコンピュータ100からのリードコマンドに従って、リードリクエストを不揮発性メモリ300に発行する。ホストコンピュータ100からのリードコマンドには、リード処理の対象となるリードアドレスが含まれる。メモリコントローラ200は、このリードアドレスを論理アドレスから物理アドレスに変換してもよく、また、そのままのアドレスを出力してもよい。このリード処理により、対象となるリードデータとともに、それに対するエラー訂正コードが不揮発性メモリ300から読み出される。なお、リード処理部240は、特許請求の範囲に記載の標準リード要求部および高精度リード要求部の一例である。
エラー検出部250は、不揮発性メモリ300から読み出されたリードデータおよびエラー訂正コードに基づいてビットエラーを検出するものである。エラー訂正部260は、エラー検出部250においてビットエラーが検出された場合に、不揮発性メモリ300から読み出されたリードデータおよびエラー訂正コードに基づいてビットエラーを訂正するものである。これにより、エラー訂正部260によれば、エラー訂正コードが持つ訂正能力以内のビット数までのビットエラーであれば訂正され、データの保持特性が改善される。ただし、エラー訂正コードが持つ訂正能力以上のビットエラーが発生した場合には訂正不可能となる。
ホストインターフェース210は、ホストコンピュータ100との間のやり取りを行うインターフェースである。メモリインターフェース270は、不揮発性メモリ300との間のやり取りを行うインターフェースである。
図2は、本技術の実施の形態におけるリード処理部240周辺の構成例を示す図である。リード処理部240は、リードモード設定部241と、エラーログ保持部242とを含んで構成される。
リードモード設定部241は、不揮発性メモリ300に対してリードリクエストを発行する際に、通常アクセスまたは高精度アクセスの何れか一方のリードモードを設定するものである。いずれのリードモードに設定するかの判断は、エラー訂正部260によるエラー訂正の可否や、ホストコンピュータ100からのリードアクセスの種類などによって異なる。この判断の詳細については後述する。
エラーログ保持部242は、エラー訂正部260におけるエラー訂正の状況をエラーログとして保持するものである。このエラーログ保持部242については、後述の第2の実施の形態において詳述する。なお、エラーログ保持部242は、特許請求の範囲に記載の記録部の一例である。
[リード処理の動作]
図3は、本技術の第1の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第1の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、不揮発性メモリ300上のリードアドレスに対してリードリクエストを発行する(ステップS913)。この場合、リードモード設定部241において、リードモードとして通常アクセスが設定される。すなわち、これにより不揮発性メモリ300において、高速であるが比較的精度の低い通常のリード方法によりリードアクセスが行われる。
不揮発性メモリ300において通常アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS914:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS915)。エラー訂正部260では、上述の通り、エラー訂正コードが持つ訂正能力以内のビット数までのビットエラーしか許容できず、それを超える場合にはエラー訂正することができなくなる。そのような場合でも、高精度アクセスを使用してデータを読み直すことによってビットエラー数が減少すれば、エラー訂正部260によって訂正可能となることが見込まれる。そこで、ステップS915において、通常アクセスよりも精度の高い高精度アクセスによるリードを同じリードアドレスに対して行う。
高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS916:Yes)、リード処理をエラー終了する。
エラー検出部250においてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS914またはS916:No)、リード処理を正常終了する。
このように、本技術の第1の実施の形態によれば、リードモードとエラー訂正とを組み合わせることによりデータの訂正能力を改善することができる。すなわち、通常アクセスによるリードではエラー訂正不可能な場合に、高精度アクセスによるリードを行うことによってビットエラー数の減少を図り、エラー訂正可能となる可能性を高めることができる。一方、当初のリードアクセスをアクセス時間の短い通常アクセスとすることにより、アクセス性能への影響を最小限にすることができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、リードコマンドを受け取るたびに、まず通常アクセスによるリードを実行し、エラー訂正不可能な場合にのみ高精度アクセスによるリードを行っていた。この第2の実施の形態では、エラー訂正部260によるエラーログを参照して、状況に応じて通常アクセスを省略して、当初から高精度アクセスによるリードを実行する。なお、情報処理システムの基本的な構成は、図1および図2により説明したものと同様であるため、説明を省略する。
[エラーログ保持部の構成]
図4は、本技術の第2の実施の形態におけるエラーログ保持部242の構成例を示す図である。このエラーログ保持部242は、エラー訂正部260における1回のエラー訂正において訂正されたビットエラーのビット数が所定の閾値を超えた場合に、その際のリードアドレスをエラー訂正ログとして記録管理するものである。この例では、所定の閾値を超えるエラービット数が発生したリードアドレスを16進数により保持している。そして、ログ上に記録された不揮発性メモリのリードアドレスに対してリード処理を行う場合には、高精度アクセスを使用することにより、訂正不可能エラーの発生を未然に防ぐことができる。
なお、この例では、エラーログ保持部242においてリードアドレス自体を保持する構成を想定したが、これ以外の構成を用いることも可能である。例えばリードアドレスの各々に対応するビットマップを用意して、対応するビットマップのフラグをオンにするように構成してもよい。
[リード処理の動作]
図5は、本技術の第2の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第2の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、エラーログ保持部242を参照して、そのリードアドレスがエラーログ保持部242に記録されているか否かを判断する。
エラーログ保持部242に記録されていなければ(ステップS921:No)、通常アクセスによりリードリクエストを発行する(ステップS923)。一方、エラーログ保持部242に記録されている場合には(ステップS921:Yes)、通常アクセスをスキップして高精度アクセスによるリードリクエストを発行する(ステップS925)。
ステップS923において通常アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS924:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS925)。
通常アクセスによるリードについてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS924:No)、リード処理を正常終了する。ただし、エラー訂正が行われた場合において訂正されたエラービット数が所定の閾値を超えているときには(ステップS927:Yes)、エラーログ保持部242においてリードアドレスをエラー訂正ログとして記録する(ステップS928)。このエラー訂正ログは、将来的にエラー訂正不可能となる可能性が高いアドレスを示すものである。このエラー訂正ログはステップS921においてチェックされ、既にエラー訂正ログに記録されている場合には通常アクセス(ステップS923)をスキップして高精度アクセス(ステップS925)によるリードが行われる。
ステップS925において高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS926:Yes)、リード処理をエラー終了する。
高精度アクセスによるリードについてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS926:No)、リード処理を正常終了する。
このように、本技術の第2の実施の形態によれば、将来的にエラー訂正不可能となる可能性が高いアドレスをエラー訂正ログとして記録しておくことにより、通常アクセスをスキップして高精度アクセスを行い、訂正不可能エラーの発生を未然に防ぐことができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、リード対象となるアドレスが何れの領域であっても、まず通常アクセスによるリードを実行し、エラー訂正不可能な場合にのみ高精度アクセスによるリードを行っていた。この第3の実施の形態では、リード対象のアドレスに応じて、通常アクセスを省略して、当初から高精度アクセスによるリードを実行する。なお、情報処理システムの基本的な構成は、図1および図2により説明したものと同様であるため、説明を省略する。
[アドレス空間]
図6は、本技術の第3の実施の形態において想定される論理ページと物理ページの対応関係の一例を示す図である。この第3の実施の形態では、不揮発性メモリをストレージ装置として使用することを想定し、論理ページ610を物理ページ620にマッピングしてアクセスすることにしている。ストレージ装置としての領域を管理するファイルシステムなどの管理情報は正常に読み出されることが必要であり、このようなデータの領域は予め論理フォーマットとして領域を指示するアドレス空間が固定される。そこで、そのような管理情報については高精度アクセスを優先することにより、訂正不可能エラーの発生を抑制する。
論理ページ610は、システム領域とユーザ領域とに分かれている。システム領域において、MBR(Master Boot Record)は、システム起動時に最初に読み出される領域である。FAT(File Allocation Table)は、ファイルの格納位置を管理するためのテーブルである。ルートディレクトリは、階層ディレクトリ構造における最上位に存在するファイルのディレクトリエントリを格納する領域である。ユーザデータはユーザ領域に格納される。
物理ページ620は、高精度アクセスを優先させる高精度アクセス領域と、通常アクセスを優先させる通常アクセス領域とに分かれている。システム領域は高精度アクセス領域に割り当てられ、ユーザ領域は通常アクセス領域に割り当てられる。これにより、システム領域にアクセスする際には高精度アクセスが優先され、ユーザ領域にアクセスする際には高精度アクセスが優先されるようになる。
[リード処理の動作]
図7は、本技術の第3の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第3の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、そのリードアドレスがシステム領域の末尾を超えるか否を判断する。
リードアドレスがシステム領域の末尾を超えていれば(ステップS931:No)、ユーザ領域に該当するため、通常アクセスによりリードリクエストを発行する(ステップS933)。一方、リードアドレスがシステム領域の末尾を超えていない場合には(ステップS931:Yes)、システム領域に該当するため、通常アクセスをスキップして高精度アクセスによるリードリクエストを発行する(ステップS932)。
ステップS933において通常アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS934:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS935)。
ステップS932またはS935において高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS936:Yes)、リード処理をエラー終了する。
エラー検出部250においてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS934またはS936:No)、リード処理を正常終了する。
このように、本技術の第3の実施の形態によれば、システム領域に対するアクセスについては、通常アクセスをスキップして高精度アクセスを行うことにより、訂正不可能エラーの発生を未然に防ぐことができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、エラー訂正コード生成部230、エラー検出部250、および、エラー訂正部260が取り扱うエラー訂正コードは一種類である。すなわち、リード対象となるサイズ等にかかわらず単一のエラー訂正コードを用いることを前提として、まず通常アクセスによるリードを実行し、その後、エラー訂正不可能な場合にのみ高精度アクセスによるリードを行っていた。この第4の実施の形態では、全てのデータに対して512バイトを単位とした第1のエラー訂正コードと、4096バイトを単位とした第2のエラー訂正コードとを付与する。一般に、エラー訂正コードは符号長が長いほどエラー訂正の能力が向上するとされており、ここでは512バイトを単位にした第1のエラー訂正コードよりも、4096バイトを単位とした第2のエラー訂正コードのエラー訂正能力が高いものとする。この第4の実施の形態では、このような二重のエラー訂正コードを想定し、訂正能力の比較的低い512バイト単位のエラー訂正コードを用いるアクセス方法については通常アクセスを省略して、当初から高精度アクセスによるリードを実行する。なお、情報処理システムの基本的な構成は、図1および図2により説明したものと同様であるため、説明を省略する。
[エラー訂正コード]
図8は、本技術の第4の実施の形態において想定されるデータとエラー訂正コード(ECC)の対応関係の一例を示す図である。この第4の実施の形態では、第1サイズのデータに対しては第1のエラー訂正コードに基づいてエラー訂正を行う。また、第1サイズよりも大きい第2サイズのデータに対しては第1のエラー訂正コードよりも訂正能力の高い第2のエラー訂正コードに基づいてエラー訂正を行う。以下では、一例として、第1サイズを512バイトとし、第2サイズを4Kバイトとして説明する。
512バイトデータ331の各々に対して、第1ECC332が付与される。そして、512バイトデータ331と第1ECC332からなる組を8組まとめたものに対して第2ECC333が付与される。すなわち、4Kバイトデータを単位として場合には、第1ECC332に加え、さらに訂正能力の高い第2ECC333を二重に付加することにより、データ保持特性を改善する。すなわち、第1ECC332で訂正不可能であった場合にも第2ECC333を使用することにより、訂正後のデータのリードが可能となる。この場合において、第2ECC333は、512バイトデータ331および第1ECC332を8組まとめたデータに対して訂正能力の高いエラー訂正コードを適用する。
第1ECC332としては、例えば、512バイトに対して1ビットエラー検出および訂正が可能なパリティを想定する。第2ECC333としては、例えば、4Kバイトデータに対して8ビットエラー検出および訂正が可能なBCH符号を想定する。
512バイト単位のリードを行う場合には、パリティによるビットエラー検出および訂正処理に要する時間が短いため、高精度アクセスを適用することにより、1ビットを超えるエラーが発生する可能性を低減する。一方、4Kバイト単位でリードを行う場合には、BCH符号による訂正能力が十分高く、また、ビットエラー検出および訂正処理に際してパリティよりも長い時間を要することから、より高速な通常アクセスを適用する。これにより、第2ECC333が必要となった場合にもアクセス時間の増大を小さくすることができる。
なお、この例では512バイトデータ331の直後に第1ECC332を配置し、第2ECC333を別途まとめて配置しているが、第1ECC332および第2ECC333の格納位置は何れでもよい。
[リード処理の動作]
図9は、本技術の第4の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第4の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、リード対象となるデータサイズが参照される。
データサイズが512バイトを超えていれば(ステップS941:Yes)、4Kバイトデータリードに該当するため、通常アクセスにより4Kバイトのリードリクエストを発行する(ステップS943)。一方、データサイズが512バイトを超えていない場合には(ステップS941:No)、512バイトリードに該当するため、通常アクセスをスキップして高精度アクセスにより512バイトのリードリクエストを発行する(ステップS942)。
ステップS943において通常アクセスによるリードが行われると、4Kバイトデータおよび第2エラー訂正コードがエラー検出部250に供給される。エラー検出部250は、4Kバイトデータおよび第2エラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260が4Kバイトデータおよび第2エラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS944:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS945)。
ステップS942において高精度アクセスによるリードが行われると、512バイトデータおよび第1エラー訂正コードがエラー検出部250に供給される。エラー検出部250は、512バイトデータおよび第1エラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260が512バイトデータおよび第1エラー訂正コードに基づいてエラー訂正を行う。一方、ステップS945において高精度アクセスによるリードが行われると、4Kバイトデータおよび第2エラー訂正コードがエラー検出部250に供給される。エラー検出部250は、4Kバイトデータおよび第2エラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260が4Kバイトデータおよび第2エラー訂正コードに基づいてエラー訂正を行う。これらのエラー訂正の結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS946:Yes)、リード処理をエラー終了する。
エラー検出部250においてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS944またはS946:No)、リード処理を正常終了する。
このように、本技術の第4の実施の形態によれば、訂正能力の低いサイズのリードアクセスについては、通常アクセスをスキップして高精度アクセスを行うことにより、訂正不可能エラーの発生を未然に防ぐことができる。
<5.第5の実施の形態>
上述の第1の実施の形態では、リード対象となるデータがどのような性質を有するものであっても、まず通常アクセスによるリードを実行し、エラー訂正不可能な場合にのみ高精度アクセスによるリードを行っていた。この第5の実施の形態では、リード対象のデータの性質に応じて、通常アクセスを省略して、当初から高精度アクセスによるリードを実行する。なお、情報処理システムの基本的な構成は、図1および図2により説明したものと同様であるため、説明を省略する。
この第5の実施の形態では、ホストコンピュータ100からのアクセスが頻繁に発生するホットデータと、アクセス頻度が低いコールドデータとの2種類にデータを分類して取り扱う。すなわち、ホットデータは、頻繁にアクセスされることから、アクセス時間が短いことが要求されるため、通常アクセスが適用される。一方、コールドデータは、長期保存により保持特性が劣化している場合もあることから、高精度アクセスが適用される。なお、ホットデータとコールドデータの判別は、データへのアクセスログを管理する方法や、そのデータが保存される領域の属性としてホストコンピュータ100から指定する方法等が考えられる。
[リード処理の動作]
図10は、本技術の第5の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第5の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、そのリードデータがホットデータであるかコールドデータであるかを判断する。ホットデータであるかコールドデータであるかの判断は、様々な手法により実現できる。例えば、リードコマンドに情報が含まれる場合にはその情報から判断することができる。また、リードアクセスするデータの記録時にライトコマンドに情報が含まれておりメモリコントローラが保持している場合には、その保持している情報から判断することができる。また、ライト処理の後にリードコマンドやライトコマンドとは異なるコマンドにより、該当データに対する情報がメモリコントローラに指示される場合には、その指示された情報から判断することができる。また、メモリコントローラがアクセス頻度等を計数して判断するようにしてもよい。
リードデータがホットデータに該当する場合には(ステップS951:Yes)、通常アクセスによりリードリクエストを発行する(ステップS953)。一方、リードデータがコールドデータに該当する場合には(ステップS951:No)、通常アクセスをスキップして高精度アクセスによるリードリクエストを発行する(ステップS952)。
ステップS953において通常アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS954:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS955)。
ステップS952またはS955において高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS956:Yes)、リード処理をエラー終了する。
エラー検出部250においてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS954またはS956:No)、リード処理を正常終了する。
このように、本技術の第5の実施の形態によれば、コールドデータに対するアクセスについては、通常アクセスをスキップして高精度アクセスを行うことにより、訂正不可能エラーの発生を未然に防ぐことができる。
<6.第6の実施の形態>
不揮発性メモリ上に保存されたデータは保存期間が長期になるほど劣化が進み、再度書き込み直すことによって、その保持特性もリフレッシュされることが知られている。そこで、この第6の実施の形態においては、通常アクセスによるリードにおいて、ビットエラーの訂正数が所定の閾値を越えた場合には、そのメモリセルに対してリフレッシュが必要であると判断する。そのリフレッシュ動作では正しいデータがリードされることが必要であり、また、リフレッシュ動作自体はホストコンピュータからのデータアクセスではなくリード時間が長くても問題とはならないため、高精度アクセスを適用することができる。なお、情報処理システムの基本的な構成は、図1および図2により説明したものと同様であるため、説明を省略する。
[リード処理の動作]
図11は、本技術の第6の実施の形態における情報処理システムのリード処理の手順例を示す図である。この第6の実施の形態では、リード処理部240はホストコンピュータ100からのリードコマンドを受け取ると、不揮発性メモリ300上のリードアドレスに対してリードリクエストを発行する(ステップS963)。この場合、リードモード設定部241において、リードモードとして通常アクセスが設定される。すなわち、これにより不揮発性メモリ300において、高速であるが比較的精度の低い通常のリード方法によりリードアクセスが行われる。
ステップS963において通常アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS964:Yes)、リード処理部240は不揮発性メモリ300上の同じリードアドレスに対して高精度アクセスによるリードリクエストを発行する(ステップS965)。
通常アクセスによるリードについてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS964:No)、リード処理を正常終了する。ただし、エラー訂正が行われた場合において訂正されたエラービット数が所定の閾値を超えているときには(ステップS967:Yes)、リード処理部240は不揮発性メモリ300に対してリフレッシュ処理を行い(ステップS968)、リード処理を正常終了する。
ステップS965において高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS966:Yes)、リード処理をエラー終了する。
高精度アクセスによるリードについてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合にも(ステップS966:No)、リフレッシュ処理が行われる(ステップS968)。その後、リード処理を正常終了する。
なお、ステップS964において訂正不可能なエラーが発生した場合、高精度アクセスによるリード(ステップS965)を行うことなく、エラー終了するようにしてもよい。また、この場合、高精度アクセスによるリード(ステップS965)を行うことなく、ステップS968と同様にリフレッシュリクエストを発行するようにしてもよい。
[リフレッシュ処理の動作]
図12は、本技術の第6の実施の形態における情報処理システムのリフレッシュ処理(ステップS968)の手順例を示す図である。リフレッシュ処理においては、不揮発性メモリ300のリフレッシュアドレスから高精度アクセスによるリードが行われる(ステップS971)。この高精度アクセスによるリードが行われると、リードデータおよびそのエラー訂正コードがエラー検出部250に供給される。エラー検出部250は、リードデータおよびそのエラー訂正コードに基づいて、エラー発生の有無を検出する。そして、エラーの発生が検出された場合には、エラー訂正部260がリードデータおよびそのエラー訂正コードに基づいてエラー訂正を行う。その結果、エラー訂正部260において訂正不可能なエラーが発生した場合には(ステップS972:Yes)、リード処理をエラー終了する。
一方、ステップS971における高精度アクセスによるリードについてエラーが検出されなかった場合、または、エラーが検出されてもエラー訂正部260におけるエラー訂正に成功した場合には(ステップS972:No)、その訂正されたリードデータが同じアドレスにライトされる(ステップS973)。これによりリフレッシュ動作が完了し、処理を正常終了する。
このように、本技術の第6の実施の形態によれば、将来的にエラー訂正不可能となる可能性が高いアドレスについてリフレッシュを行うことにより、訂正不可能エラーの発生を未然に防ぐことができる。
<7.変形例>
上述の実施の形態では、将来的にエラー訂正不可能となる可能性のバロメータとして、訂正されたエラービット数が所定の閾値を超えていることを要件としたが、これ以外にも様々な変形例が考えられる。
例えば、高温ではセルの保持特性が不安定である場合、周囲温度をバロメータとして、ある閾値より高温での読出し処理の場合には高精度アクセスを適用することにより、訂正不可能エラーの発生によるリード処理の失敗を防ぐことができる。
また、書き換え回数の増加に従ってセルの劣化が進む場合には、その書換え回数をバロメータとして、ある閾値より書換え回数が進んだ場合には高精度アクセスを適用することにより、訂正不可能エラーの発生によるリード処理の失敗を防ぐことができる。
また、データの保持期間の増加に従ってセル上に保存されたデータが劣化する場合には、その保持期間をバロメータとして、ある閾値を保持時間が越えた場合に高精度アクセスを適用することにより、訂正不可能エラーによるリード処理の失敗を防ぐことができる。
なお、上述の実施の形態では、リード処理における精度の改善が2段階であることを前提として説明を行ってきたが、3段階や4段階などである場合にも容易に拡張してその効果を拡大することが可能である。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)メモリ上のリードアドレスに対して標準の精度によるリードを要求する標準リード要求部と、
前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
を具備する記憶制御装置。
(2)前記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には前記リードアドレスを記録する記録部をさらに具備し、
新たなリード要求に係る新たなリードアドレスが前記記録部に記録されている場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記新たなリードアドレスに対して行う
前記(1)に記載の記憶制御装置。
(3)前記記録部は、前記訂正されたビット数が所定の閾値を超えた場合に前記一定の要件を満たしたものとして前記リードアドレスを記録する
前記(2)に記載の記憶制御装置。
(4)前記リードアドレスが所定のアドレス領域に該当する場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
前記(1)から(3)のいずれかに記載の記憶制御装置。
(5)前記所定のアドレス領域はシステム領域である前記(4)に記載の記憶制御装置。
(6)前記エラー訂正部は、第1サイズのデータに対しては第1のエラー訂正コードに基づいてエラー訂正を行い、前記第1サイズよりも大きい第2サイズのデータに対しては前記第1のエラー訂正コードよりも訂正能力の高い第2のエラー訂正コードに基づいてエラー訂正を行い、
前記リードアドレスに対するリード要求が前記第1サイズを超えない場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
前記(1)から(5)のいずれかに記載の記憶制御装置。
(7)前記リードアドレスへのアクセス頻度が一定の要件を満たす場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
前記(1)から(6)のいずれかに記載の記憶制御装置。
(8)前記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には前記リードアドレスに対してリフレッシュを要求するリフレッシュ要求部をさらに具備する
前記(1)から(7)のいずれかに記載の記憶制御装置。
(9)前記リフレッシュ要求部は、前記リードアドレスにおいて前記標準の精度より高い精度によるリードを行ってそのリード結果を前記リードアドレスにライトする旨を前記リフレッシュ要求として指示する
前記(8)に記載の記憶制御装置。
(10)標準の精度によるリードおよび前記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、
前記メモリ上のリードアドレスに対して前記標準の精度によるリードを要求する標準リード要求部と、
前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
を具備する記憶装置。
(11)標準の精度によるリードおよび前記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、
前記メモリへのリードアクセスを発行するホストコンピュータと、
前記リードアクセスに応答して前記メモリ上のリードアドレスに対して前記標準の精度によるリードを要求する標準リード要求部と、
前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
を具備する情報処理システム。
(12)メモリ上のリードアドレスに対して標準の精度によるリードを要求する標準リード要求手順と、
前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正手順と、
前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 メモリコントローラ
210 ホストインターフェース
220 ライト処理部
230 エラー訂正コード生成部
240 リード処理部
241 リードモード設定部
242 エラーログ保持部
250 エラー検出部
260 エラー訂正部
270 メモリインターフェース
300 不揮発性メモリ
310 制御インターフェース
320 メモリバッファ
330 メモリセルアレイ

Claims (12)

  1. メモリ上のリードアドレスに対して標準の精度によるリードを要求する標準リード要求部と、
    前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
    前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
    を具備する記憶制御装置。
  2. 前記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には前記リードアドレスを記録する記録部をさらに具備し、
    新たなリード要求に係る新たなリードアドレスが前記記録部に記録されている場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記新たなリードアドレスに対して行う
    請求項1記載の記憶制御装置。
  3. 前記記録部は、前記訂正されたビット数が所定の閾値を超えた場合に前記一定の要件を満たしたものとして前記リードアドレスを記録する
    請求項2記載の記憶制御装置。
  4. 前記リードアドレスが所定のアドレス領域に該当する場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
    請求項1記載の記憶制御装置。
  5. 前記所定のアドレス領域はシステム領域である請求項4記載の記憶制御装置。
  6. 前記エラー訂正部は、第1サイズのデータに対しては第1のエラー訂正コードに基づいてエラー訂正を行い、前記第1サイズよりも大きい第2サイズのデータに対しては前記第1のエラー訂正コードよりも訂正能力の高い第2のエラー訂正コードに基づいてエラー訂正を行い、
    前記リードアドレスに対するリード要求が前記第1サイズを超えない場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
    請求項1記載の記憶制御装置。
  7. 前記リードアドレスへのアクセス頻度が一定の要件を満たす場合には前記標準の精度によるリード要求を行うことなく前記高精度によるリード要求を前記リードアドレスに対して行う
    請求項1記載の記憶制御装置。
  8. 前記エラー訂正によって全てのエラーが訂正された場合においてその訂正されたビット数が一定の要件を満たした際には前記リードアドレスに対してリフレッシュを要求するリフレッシュ要求部をさらに具備する
    請求項1記載の記憶制御装置。
  9. 前記リフレッシュ要求部は、前記リードアドレスにおいて前記標準の精度より高い精度によるリードを行ってそのリード結果を前記リードアドレスにライトする旨を前記リフレッシュ要求として指示する
    請求項8記載の記憶制御装置。
  10. 標準の精度によるリードおよび前記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、
    前記メモリ上のリードアドレスに対して前記標準の精度によるリードを要求する標準リード要求部と、
    前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
    前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
    を具備する記憶装置。
  11. 標準の精度によるリードおよび前記標準の精度より高い精度によるリードの何れのリード要求にも対応するメモリと、
    前記メモリへのリードアクセスを発行するホストコンピュータと、
    前記リードアクセスに応答して前記メモリ上のリードアドレスに対して前記標準の精度によるリードを要求する標準リード要求部と、
    前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正部と、
    前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求部と
    を具備する情報処理システム。
  12. メモリ上のリードアドレスに対して標準の精度によるリードを要求する標準リード要求手順と、
    前記標準の精度によるリード要求に応答して前記メモリから返送されたデータおよびエラー訂正コードに基づいてエラー訂正を行うエラー訂正手順と、
    前記エラー訂正によって訂正できないエラーが発生した場合には前記リードアドレスに対して前記標準の精度より高い精度によるリードを再度要求する高精度リード要求手順と
    を具備する記憶制御方法。
JP2012237383A 2012-10-29 2012-10-29 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 Pending JP2014086062A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012237383A JP2014086062A (ja) 2012-10-29 2012-10-29 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US14/030,016 US9176811B2 (en) 2012-10-29 2013-09-18 Storage control apparatus, storage apparatus, information processing system, and storage control method
CN201310499690.5A CN103793335B (zh) 2012-10-29 2013-10-22 存储控制设备、存储设备、信息处理系统及存储控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012237383A JP2014086062A (ja) 2012-10-29 2012-10-29 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法

Publications (1)

Publication Number Publication Date
JP2014086062A true JP2014086062A (ja) 2014-05-12

Family

ID=50548644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012237383A Pending JP2014086062A (ja) 2012-10-29 2012-10-29 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法

Country Status (3)

Country Link
US (1) US9176811B2 (ja)
JP (1) JP2014086062A (ja)
CN (1) CN103793335B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045420A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP2017515256A (ja) * 2014-04-30 2017-06-08 クアルコム,インコーポレイテッド 可変読出し遅延システム
JP2019512832A (ja) * 2016-02-19 2019-05-16 華為技術有限公司Huawei Technologies Co.,Ltd. フラッシュメモリデバイスにアクセスするための方法および装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10193576B2 (en) 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
CN108932175B (zh) * 2017-05-24 2022-01-11 建兴储存科技(广州)有限公司 固态储存装置的控制方法
JP7184632B2 (ja) * 2018-12-25 2022-12-06 ルネサスエレクトロニクス株式会社 半導体装置
CN113051100B (zh) * 2020-06-01 2024-05-17 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307270A1 (en) * 2007-06-07 2008-12-11 Micron Technology, Inc. Emerging bad block detection
JP2009205578A (ja) * 2008-02-29 2009-09-10 Toshiba Corp 半導体記憶装置
JP2010128697A (ja) * 2008-11-26 2010-06-10 Toshiba Corp メモリシステム
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000050997A1 (fr) * 1999-02-22 2000-08-31 Hitachi, Ltd. Carte memoire, procede d'affectation d'adresse logique, et procede d'ecriture de donnees
US6853602B2 (en) * 2003-05-09 2005-02-08 Taiwan Semiconductor Manufacturing Company, Ltd. Hiding error detecting/correcting latency in dynamic random access memory (DRAM)
US8041861B2 (en) * 2005-05-27 2011-10-18 Samsung Electronics Co., Ltd. Memory device communicating with a host at different speeds and managing access to shared memory
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
US20110026385A1 (en) * 2008-06-12 2011-02-03 Nobuyuki Nakai Semiconductor storage device, semiconductor device and optical disc reproducing device
KR101603099B1 (ko) * 2009-10-01 2016-03-28 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
JP5521612B2 (ja) 2010-02-15 2014-06-18 ソニー株式会社 不揮発性半導体メモリデバイス
US8812936B2 (en) * 2012-07-06 2014-08-19 Sandisk Technologies Inc. Using slow response memory device on a fast response interface

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307270A1 (en) * 2007-06-07 2008-12-11 Micron Technology, Inc. Emerging bad block detection
JP2010529557A (ja) * 2007-06-07 2010-08-26 マイクロン テクノロジー, インク. 新たな不良ブロック検出
JP2009205578A (ja) * 2008-02-29 2009-09-10 Toshiba Corp 半導体記憶装置
JP2010128697A (ja) * 2008-11-26 2010-06-10 Toshiba Corp メモリシステム
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
JP2012137994A (ja) * 2010-12-27 2012-07-19 Toshiba Corp メモリシステムおよびその制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515256A (ja) * 2014-04-30 2017-06-08 クアルコム,インコーポレイテッド 可変読出し遅延システム
JP2017045420A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP2019512832A (ja) * 2016-02-19 2019-05-16 華為技術有限公司Huawei Technologies Co.,Ltd. フラッシュメモリデバイスにアクセスするための方法および装置
US10732898B2 (en) 2016-02-19 2020-08-04 Huawei Technologies Co., Ltd. Method and apparatus for accessing flash memory device

Also Published As

Publication number Publication date
CN103793335A (zh) 2014-05-14
US20140122972A1 (en) 2014-05-01
CN103793335B (zh) 2017-10-31
US9176811B2 (en) 2015-11-03

Similar Documents

Publication Publication Date Title
JP2014086062A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
EP2800097B1 (en) Storage control device, storage device, information processing system, and processing methods therefor
JP5853899B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US9405608B2 (en) Storage controller, storage device, information processing system, and storage control method
JP5853906B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP5768654B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
CN103136067A (zh) 存储控制器、存储设备、信息处理系统以及存储控制方法
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
TW201800942A (zh) 資料儲存媒體之損壞資料行的篩選方法
US9881697B2 (en) Dynamic-shifting redundancy mapping for non-volatile data storage
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
JP5845876B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US11500721B2 (en) Solid-state disk and reading and writing method thereof
JP2014013635A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2020031435A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
WO2019244417A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
JP2017021877A (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
KR20140101626A (ko) 솔리드 스테이트 드라이브의 데이터 처리 방법
WO2022158120A1 (ja) コントローラ、不揮発性記憶装置、および、制御方法
JP2013114521A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151208