JP2008310896A - 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 - Google Patents
不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2008310896A JP2008310896A JP2007158750A JP2007158750A JP2008310896A JP 2008310896 A JP2008310896 A JP 2008310896A JP 2007158750 A JP2007158750 A JP 2007158750A JP 2007158750 A JP2007158750 A JP 2007158750A JP 2008310896 A JP2008310896 A JP 2008310896A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error correction
- correction code
- area
- 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.)
- 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
-
- 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/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/1008—Adding 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/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
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)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】データ領域の効率的な使用を可能とし、かつ、読み出しデータの信頼性を高めることが可能な不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法を提供すること。
【解決手段】不揮発性記憶装置1は、データを保持する複数のデータ領域13と、データ領域13の各々に対応して備えられ、データ領域13に保持されるデータに関するエラー訂正コードECCを保持するECC領域14と、入力されるコード生成コマンドCMDに応じて、データ領域13に保持される全てのデータに関するエラー訂正コードECCを生成しECC領域14へ保持するエラー訂正コード生成部2と、エラー訂正コードECCが生成されていることを検知する検知回路15と、検知回路15で検知動作が行われることに応じて、データ領域13から読み出されるデータをエラー訂正コードECCを用いて訂正する読出し部3とを備える。
【選択図】図1
【解決手段】不揮発性記憶装置1は、データを保持する複数のデータ領域13と、データ領域13の各々に対応して備えられ、データ領域13に保持されるデータに関するエラー訂正コードECCを保持するECC領域14と、入力されるコード生成コマンドCMDに応じて、データ領域13に保持される全てのデータに関するエラー訂正コードECCを生成しECC領域14へ保持するエラー訂正コード生成部2と、エラー訂正コードECCが生成されていることを検知する検知回路15と、検知回路15で検知動作が行われることに応じて、データ領域13から読み出されるデータをエラー訂正コードECCを用いて訂正する読出し部3とを備える。
【選択図】図1
Description
本発明は不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法に関し、特に、データ領域の効率的な使用を可能とし、かつ、読み出しデータの信頼性を高めることが可能な技術に関するものである。
不揮発性記憶装置の信頼性向上のために、エラー訂正コードが用いられている。エラー訂正コードは、所定のデータ領域に保持される全データを用いて生成される。生成されたエラー訂正コードは、各々のデータ領域に対応して備えられるECC領域に保持される。データ領域からデータを読み出す際には、ECC領域に保持されたエラー訂正コードを用いて、読み出されるデータのエラー検出およびエラー訂正が行われる。
尚、上記の関連技術として特許文献1および2が開示されている。
特開2004−220676号公報
特開2003−248631号公報
データ領域にデータの追加書き込みをすることにより、エラー訂正コードは更新される。しかしエラー訂正コードを保持するECC領域は、上書きすることができない不揮発性記憶素子で構成されているため、エラー訂正コードの書込みは1回限りとされる。するとエラー訂正コードを生成し、ECC領域へ書込みを行った後においては、更新されたエラー訂正コードを上書きすることができないため、データ領域へのデータの追加書き込みが禁止される。すると、データ領域の効率的な使用ができないため問題である。
本発明は前記背景技術に鑑みなされたものであり、データ領域の効率的な使用を可能とし、かつ、読み出しデータの信頼性を高めることが可能な不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法を提供することを目的とする。
前記目的を達成するためになされた本発明に係る不揮発性記憶装置は、データを保持する複数のデータ領域と、前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域とを備える不揮発性記憶装置において、入力されるコード生成コマンドに応じて、前記データ領域に保持される全ての前記データに関する前記エラー訂正コードを生成し前記ECC領域へ保持するエラー訂正コード生成部と、前記エラー訂正コードが生成されていることを検知する検知回路と、前記検知回路で検知動作が行われることに応じて、前記データ領域から読み出される前記データを前記エラー訂正コードを用いて訂正する読出し部とを備えることを特徴とする。
また本発明に係る不揮発性記憶システムは、データを保持する複数のデータ領域と、前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域とを備える不揮発性記憶システムにおいて、入力されるコード生成コマンドに応じて、前記データ領域に保持される全ての前記データに関する前記エラー訂正コードを生成し前記ECC領域へ保持するエラー訂正コード生成部と、前記エラー訂正コードが生成されていることを検知する検知回路と、前記検知回路で検知動作が行われることに応じて、前記データ領域から読み出される前記データを前記エラー訂正コードを用いて訂正する読出し部とを備えることを特徴とする。
本発明に係る不揮発性記憶装置および不揮発性記憶システムでは、データを保持する複数のデータ領域と、データ領域の各々に対応して備えられるECC領域とが備えられる。データ領域にはデータが書き込まれる。データの書込みには、初回書込みと追加書込みとが存在する。初回書込みとはデータ領域に初めてデータを書き込む動作である。また追加書込みとは、初回書込みが行われたデータ領域の空き領域に対して、追加してデータを書き込む動作である。また追加書込みは、空き領域が存在する限り、複数回可能とされる。
またECC領域には、対応するデータ領域に保持されているデータに関するエラー訂正コードが保持される。エラー訂正コードとは、データ領域から読み出されるデータの誤りを検出・訂正するための情報である。なお、データ領域およびECC領域へは、データの上書きをすることはできない。
エラー訂正コード生成部には、コード生成コマンドが入力される。コード生成コマンドは不揮発性記憶装置の外部から入力される。またコード生成コマンドは任意のタイミングで入力することが可能とされる。よってコード生成コマンドの入力は、データ領域への初回書込みが行われた後でもよいし、データ領域への追加書込みが行われる際と同時でもよいし、追加書込みが行われた後でもよい。
コード生成コマンドが入力されることに応じて、エラー訂正符号生成回路は、データ領域に保持される全てのデータを用いてエラー訂正コードを生成する。ここで全てのデータとは、データ領域に初回書込みデータと追加書込みデータとが保持されている場合には、それら全てのデータを指す。またコード生成コマンドと同時に入力される追加データがあれば、その追加データも含むデータを指す。すなわち、コード生成コマンドが入力された時点における、データ領域に保持されるべき全てのデータを指している。
検知回路は、エラー訂正コードの生成の有無を検知する。読出し部は、検知回路で検知動作が行われることに応じて、データ領域から読み出されるデータをエラー訂正コードを用いて訂正する。
動作を説明する。エラー訂正コードは、データ領域に保持される全てのデータを用いて生成されるため、データ領域にデータの追加書き込みが行われると、エラー訂正コードは更新される。しかしエラー訂正コードを保持するECC領域は、上書きすることができない不揮発性記憶素子で構成されているため、エラー訂正コードをECC領域に一度書き込んだ後においては、更新されたエラー訂正コードを上書きすることができない。よってエラー訂正コードをECC領域に一度書き込んだ後においては、データ領域へのデータの追加書き込みをすることができない。
コード生成コマンドが入力される前の期間では、エラー訂正コードの生成・書込みはまだ行われていないため、データ領域に追加書込みをすることが可能とされる。また検知回路では、エラー訂正コードが生成されていないことが検知される。また読出し部では、エラー訂正コードが未生成のため、データ領域から読み出されるデータに対する訂正は行われない。
そしてコード生成コマンドが入力されると、エラー訂正コード生成部では、エラー訂正コードが生成され、生成されたエラー訂正コードはECC領域に書き込まれる。
コード生成コマンドが入力された後の期間においては、ECC領域へエラー訂正コードが書き込まれているため、データ領域に追加書込みをすることはできない。そして検知回路では、エラー訂正コードが生成されていることが検知される。また読出し部では、検知回路において検知動作が行われることに応じて、データ領域から読み出されるデータをエラー訂正コードを用いて訂正した上で出力する。
また本発明に係る不揮発性記憶装置の制御方法は、データを保持する複数のデータ領域と、前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域とを備える不揮発性記憶装置の制御方法において、前記データ領域へのデータの書き込みまたは読み出しを行うステップと、前記エラー訂正コードを生成する旨のコード生成コマンドの入力に応じて、前記データ領域に保持される全ての前記データから前記エラー訂正コードを生成し前記ECC領域に保持するステップと、前記エラー訂正コードが生成されることに応じて、前記データ領域から前記データを読み出す際に、前記エラー訂正コードを用いて前記データを訂正するステップとを備えることを特徴とする。
コード生成コマンドの入力前においては、エラー訂正コードの生成・書込みはまだ行われていないため、データ領域に追加書込みをすることが可能とされる。またデータ領域から読み出されるデータに対する訂正は行われない。コード生成コマンドが入力されると、前記データ領域に保持される全ての前記データから前記エラー訂正コードが生成される。コード生成コマンドが入力された後の期間においては、ECC領域へエラー訂正コードが書き込まれているため、データ領域に追加書込みをすることはできない。そして前記データ領域から読み出される前記データはエラー訂正コードを用いて訂正される。
以上より、データ領域を、コード生成コマンド入力前の期間においては追加書き込みが可能なデータ領域として用い、コード生成コマンド入力後の期間においては高い読み出しの信頼性を有するデータ領域として用いることができる。すなわちコード生成コマンドによって、任意のタイミングで、データ領域の状態を追加書き込みが可能な状態から高い読み出しの信頼性を有する状態へ切り替えることができる。これにより、データ領域への上書きを可能とすることと、データ読み出しの高信頼性の得ることという、相反する2つの要望を両立することができる。
本発明によれば、データ領域の効率的な使用を可能とし、かつ、読み出しデータの信頼性を高めることが可能な不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法を提供することができる。
本発明の原理図を図1に示す。フラッシュメモリ1Gは、データ領域13、ECC領域14、検知回路15、エラー訂正コード生成部2、読出し部3を備える。なおデータ領域13およびECC領域14は、上書きすることができない不揮発性記憶素子で構成されている。
データ領域13には、外部から第1データID1および第2データID2が順次入力される。まず第1データID1が入力されると、データ領域13に初回書込みされる。次に第2データID2が入力されると、データ領域13の空き領域に対して、追加書き込みされる。なお追加書込みは、空き領域が存在する限り複数回可能とされるため、第2データID2以降のデータが追加書き込みされるとしてもよい。またデータ領域13には、フラッシュメモリ1Gの外部に備えられる不図示のメモリコントローラ等から、コード生成コマンドCMDが入力される。なおコード生成コマンドCMDは、任意のタイミングで入力可能とされる。
エラー訂正コード生成部2には、データ領域13から第1データID1および第2データID2が入力されると共に、外部からコード生成コマンドCMDが入力される。エラー訂正コード生成部2で生成されたエラー訂正コードECCおよびフラグ信号FSは、ECC領域14に入力・保持される。ECC領域14から出力されるエラー訂正コードECCは読出し部3へ入力され、ECC領域14から出力されるフラグ信号FSは検知回路15へ入力される。検知回路15からは検知信号DSが出力される。読出し部3には第1データID1および第2データID2、エラー訂正コードECCおよび検知信号DSが入力され、出力データODが出力される。
フラッシュメモリ1Gの動作を説明する。エラー訂正コードECCは、データ領域13に保持される全てのデータを用いて生成されるため、データ領域13にデータの追加書き込みが行われると、エラー訂正コードECCは更新される。しかしエラー訂正コードECCを保持するECC領域14は、上書きすることができない不揮発性記憶素子で構成されているため、エラー訂正コードECCをECC領域14に一度書き込んだ後においては、その後に更新されたエラー訂正コードECCをECC領域14に上書きすることができない。よってECC領域14にエラー訂正コードECCを一度書き込んだ後においては、データ領域13へのデータの追加書き込みをすることができない。
コード生成コマンドCMDが入力される前の期間では、エラー訂正コード生成部2は動作停止状態とされ、エラー訂正コードECCおよびフラグ信号FSの生成・書込みはまだ行われていないため、データ領域13にデータの初回書込みおよび追加書込みをすることが可能とされる。よって外部から第1データID1が入力されるとデータ領域13に初回書込みされ、その後第2データID2が入力されるとデータ領域13の空き領域に追加書込みされる。またこの期間では、検知回路15は、フラグ信号FSが生成されていないことを検知し、エラー訂正コードECCが生成されていない旨の検知信号DSを出力する。読出し部3は、検知信号DSに応じて、データ領域13から読み出される第1データID1および第2データID2を訂正せずに出力データODとして出力する。
そしてコード生成コマンドCMDが入力されることに応じて、エラー訂正コードECCおよびフラグ信号FSの生成が開始される。まず、データ領域13に保持されている全データである第1データID1および第2データID2がコード生成コマンドCMDに応じて読み出され、エラー訂正コード生成部2へ入力される。エラー訂正コード生成部2では、第1データID1および第2データID2を元に、エラー訂正コードECCおよびフラグ信号FSを生成する。生成されたエラー訂正コードECCおよびフラグ信号FSは、ECC領域14に書き込まれる。
コード生成コマンドCMDが入力された後の期間では、検知回路15において、フラグ信号FSによってエラー訂正コードECCが生成されていることが検知される。そして検知回路15からはその旨を報知する検知信号DSが出力される。読出し部3は、検知信号DSに応じて、データ領域13から読み出される第1データID1および第2データID2をエラー訂正コードECCを用いて訂正した上で、出力データODとして出力する。
以上より、データ領域13を、コード生成コマンドCMD入力前の期間においては追加書き込みが可能なデータ領域として用い、コード生成コマンドCMD入力後の期間においては高い読み出しの信頼性を有するデータ領域として用いることができる。すなわちコード生成コマンドCMDによって、任意のタイミングで、データ領域13の状態を追加書き込みが可能な状態から高い読み出しの信頼性を有する状態へ切り替えることができる。これにより、データ領域へのデータ上書きの要請と、データ領域からのデータ読み出しの高信頼性の要望という、相反する2つの要望を両立することができるフラッシュメモリ1Gを構成できる。
本発明の実施形態を図2に示す。フラッシュメモリ1は、エラー訂正コード生成部2、読出し部3、データ用プログラムバッファ12、データ領域13、ECC用プログラムバッファ19、ECC領域14、検知回路15、制御回路16、コマンドデコーダ22を備える。エラー訂正コード生成部2は、ライトバッファ10、ECC生成回路11、スイッチ20を備える。読出し部3は、シンドローム算出回路23、訂正回路24、セレクタ回路18を備える。
コマンドデコーダ22には、フラッシュメモリ1の外部に備えられる不図示のメモリコントローラ等からコード生成コマンドCMDが入力され、コード生成指令GCが出力される。またコード生成コマンドCMDは任意のタイミングで入力することが可能とされる。ライトバッファ10には、外部から第1データID1および第2データID2が順次入力される。またライトバッファ10には、データ領域13から出力された第1データID1および第2データID2が、内部経路30およびスイッチ20を介して入力される。ライトバッファ10はユーザデータを蓄えるバッファであり、データ領域13よりも大きい記憶容量を備える。ライトバッファ10から出力される第1データID1および第2データID2は、ECC生成回路11およびデータ用プログラムバッファ12に入力される。またECC生成回路11には、制御回路16から制御信号S1が入力される。そしてECC生成回路11からは、エラー訂正コードECCおよびフラグ信号FSが出力される。
データ用プログラムバッファ12には第1データID1および第2データID2、検知信号DSが入力される。データ用プログラムバッファ12は、実際にデータ領域13へ書き込まれるデータを蓄えるバッファである。またECC用プログラムバッファ19にはエラー訂正コードECC、フラグ信号FSが入力される。ECC用プログラムバッファ19は、実際にECC領域14へ書き込まれるデータを蓄えるバッファである。データ領域13には、第1データID1および第2データID2が入力・保持される。またデータ領域13にはコード生成指令GCが入力される。またECC領域14には、エラー訂正コードECCおよびフラグ信号FSが入力・保持される。検知回路15にはECC領域14から出力されるフラグ信号FSが入力され、検知回路15からは検知信号DSが出力される。制御回路16には、コード生成指令GCが入力され、制御信号S1が出力される。
データ領域13からは、第1データID1および第2データID2が出力される。シンドローム算出回路23には、エラー訂正コードECC、第1データID1および第2データID2が入力され、シンドロームSDが出力される。訂正回路24には、シンドロームSD、第1データID1および第2データID2が入力され、訂正データCDが出力される。セレクタ回路18には、訂正データCD、第1データID1および第2データID2が入力され、出力データODが出力される。
図3に、データ領域13およびECC領域14の詳細図を示す。データ領域13は複数のセクタ13aないし13cを備える。またECC領域14は、複数のセクタ13aないし13cの各々に対応して、セクタ14aないし14cを備える。ここでコード生成コマンドCMDおよびコード生成指令GCは、セクタナンバーの情報を有している。よってデータ領域13は、コード生成指令GCに含まれるセクタナンバーの情報に応じて、セクタ13aないし13cの何れかを指定し、保持されているデータを読出すことができる。またECC生成回路11は、指定されたセクタから読み出されたデータを用いて、エラー訂正コードECCおよびフラグ信号FSを生成する。また制御回路16は、コード生成指令GCに含まれるセクタナンバーの情報に応じて制御信号S1を出力する。制御信号S1に応じて、セクタ13aが指定された場合にはセクタ14aが選択され、セクタ13bが指定された場合にはセクタ14bが選択され、セクタ13cが指定された場合にはセクタ14cが選択される。そしてセクタ14aないし14cのうちから選択されたセクタに、ECC生成回路11から出力されるエラー訂正コードECCおよびフラグ信号FSが入力・保持される。以上より、セクタ13aないし13cの何れかを指定してECC生成回路11を活性化し、エラー訂正コードECCを生成した上で、対応するセクタ14aないし14cに生成したエラー訂正コードECCを書き込むことができる。
なおデータ領域13のセクタ13aないし13c、およびECC領域14のセクタ14aないし14cは、セクタ内の全ビットを一斉に”0”から”1”へ書き換えをすることはできるが、ビット単位で”0”から”1”への書き換えをすることが出来ない。従って一度書き込まれた”0”状態を”1”に変えることができないため、セクタにデータの上書きをすることは不可とされる。
フラッシュメモリ1の動作を説明する。例として、データ領域13のセクタ13aにアクセスする場合を説明する。フラッシュメモリ1では、コード生成コマンドCMDの入力タイミングに応じて3つの動作期間がある。第1にコード生成コマンドCMDが入力される前の期間、第2にコード生成コマンドCMDの入力時、第3にコード生成コマンドCMDが入力された後の期間である。
まず第1に、コード生成コマンドCMDが入力される前の期間について説明する。この期間では、ECC領域14のセクタ14aにはまだエラー訂正コードECCおよびフラグ信号FSは書込まれていない。検知回路15では、フラグ信号FSが書き込まれていないことが検知され、その旨を報知するローレベルの検知信号DSが検知回路15から出力される。データ用プログラムバッファ12は、ローレベルの検知信号DSに応じて活性状態とされる。よってこの期間では、セクタ13aにデータ書込みをすることが可能とされる。またECC生成回路11は、制御信号S1が未入力のため不活性状態とされる。
外部から第1データID1が入力されると、ライトバッファ10を介してデータ用プログラムバッファ12およびECC生成回路11に入力される。データ用プログラムバッファ12は、データ領域13のセクタ13aに、第1データID1の初回書き込みを行う(図3、領域A)。一方、ECC生成回路11は不活性状態であるため、ECC生成回路11では第1データID1に関するエラー訂正コードECCは生成されない。
またコード生成コマンドCMDが入力される前の期間では、データ領域13のセクタ13aに追加書込みをすることが可能である。よって外部から第2データID2が入力されると、データ用プログラムバッファ12を介してセクタ13aの空き領域に追加書込みされる(図3、領域B)。
また読出し部3では、ローレベルの検知信号DSに応じて、シンドローム算出回路23および訂正回路24は不活性状態にされると共に、セレクタ回路18は入力元としてデータ領域13を選択する。よってこの期間では、データ領域13のセクタ13aから読み出される第1データID1および第2データID2は、訂正回路24で訂正されることなく、セレクタ回路18から出力データODとして出力される。以上よりこの期間では、フラッシュメモリ1は、追加書き込みが可能なメモリとして使用可能とされる。
第2に、セクタ13aに対するコード生成コマンドCMDが入力された時の動作について説明する。コマンドデコーダ22は、入力されるコード生成コマンドCMDをデコードし、セクタ13aに対するコード生成指令GCを出力する。制御回路16は、コード生成指令GCの入力に応じて制御信号S1を出力し、ECC生成回路11を不活性状態から活性状態へ遷移させる。コード生成指令GCの入力に応じて、データ領域13のセクタ13aに保持されている全データである第1データID1および第2データID2が読み出される。またスイッチ20は、コード生成指令GCの入力に応じて導通状態とされるため、データ領域13から読み出された第1データID1および第2データID2が、内部経路30を介してライトバッファ10へ保持される。
ライトバッファ10に保持された第1データID1および第2データID2は、ECC生成回路11に入力される。ECC生成回路11は、第1データID1および第2データID2からエラー訂正コードECCおよびフラグ信号FSを生成する。生成されたエラー訂正コードECCおよびフラグ信号FSは、ECC用プログラムバッファ19を介してECC領域14のセクタ14aに書き込まれる(図3、領域C)。以上よりこの期間では、セクタ13aに保持される第1データID1および第2データID2についてのエラー訂正コードECCおよびフラグ信号FSが生成され、ECC領域14のセクタ14aに書き込まれる。
第3に、コード生成コマンドCMDが入力された後の期間において、セクタ13aにアクセスする場合を説明する。このとき検知回路15では、フラグ信号FSがセクタ14aに書き込まれていることが検知され、その旨を報知するハイレベルの検知信号DSが検知回路15から出力される。検知信号DSはフラッシュメモリ1外部の不図示のメモリコントローラへ報知され、メモリコントローラはセクタ13aへのデータ書込みを禁止する。またデータ用プログラムバッファ12は、ハイレベルの検知信号DSに応じて不活性状態とされる。よってこの期間では、セクタ13aにデータ書込みをすることが不可とされる。
また読出し部3では、ハイレベルの検知信号DSに応じて、シンドローム算出回路23および訂正回路24は活性状態にされると共に、セレクタ回路18は入力元として訂正回路24を選択する。セクタ13aから読み出された第1データID1および第2データID2は、シンドローム算出回路23、訂正回路24、セレクタ回路18に入力される。シンドローム算出回路23は、第1データID1および第2データID2とエラー訂正コードECCとからシンドロームSDを算出する。訂正回路24は、シンドロームSDに基づいて、誤りがあるときには誤り訂正処理を行い、訂正データCDを出力する。セレクタ回路18は、訂正データCDを出力データODとして出力する。以上よりコード生成コマンドCMDが入力された後の期間においては、セクタ13aから読み出される第1データID1および第2データID2が、エラー訂正コードECCを用いて訂正されるため、フラッシュメモリ1は高い読み出しの信頼性を有するメモリとして使用される。
以上の説明から明らかなように、本実施形態によれば、データ領域13を、コード生成コマンドCMD入力前の期間においては追加書き込みが可能なデータ領域として用い、コード生成コマンドCMD入力後の期間においては高い読み出しの信頼性を有するデータ領域として用いることができる。すなわちコード生成コマンドCMDによって、任意のタイミングで、データ領域13の状態を追加書き込みが可能な状態から高い読み出しの信頼性を有する状態へ切り替えることができる。これにより、データ領域へのデータ上書きの要請と、データ領域からのデータ読み出しの高信頼性の要望という、相反する2つの要望を両立することができるフラッシュメモリ1を構成できる。
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良、変形が可能であることは言うまでもない。本実施形態では、コード生成コマンドCMDが単独でコマンドデコーダ22に入力される場合を説明したが、この形態に限られない。コード生成コマンドCMDの入力と同時に、第3データID3がライトバッファ10へ入力されるとしてもよい。ライトバッファ10は、新たに入力された第3データID3と、内部経路30を介して読み出された第1データID1および第2データID2とを結合された上で保持する。すなわちライトバッファ10には、コード生成指令GCが入力された時点においてデータ領域13に保持されるべき全データである、第1データID1ないし第3データID3が保持される。そしてライトバッファ10から出力された第1データID1ないし第3データID3を用いて、ECC生成回路11では、エラー訂正コードECCが生成される。またセクタ13aの空き領域には、ライトバッファ10およびデータ用プログラムバッファ12を介して第3データID3が追加書き込みされる。
また本実施形態では、コード生成コマンドCMDを入力してフラッシュメモリ1を使用する場合を説明したが、この形態に限られず、コード生成コマンドCMDを入力せずにフラッシュメモリ1を使用することも可能であることは言うまでもない。すなわち、高い読み出しの信頼性が必要な場合には、コード生成コマンドCMDを入力してフラッシュメモリ1を使用する。また読出しデータのさらなる高信頼性は必要ないが、常時データの追加書き込みをする必要がある場合には、コード生成コマンドCMDを入力せずにフラッシュメモリ1を使用する。これにより、コード生成コマンドCMDの入力の有無で、フラッシュメモリ1の使い分けをすることができる。これにより、1種類のフラッシュメモリ1で、高い読み出しの信頼性を有するメモリと、常時データの追加書き込みが可能なメモリとの2種類のメモリを実現することができるため、種類ごとに不揮発性記憶装置を設計する必要がなく、コスト削減を図る事が可能となる。
また本実施形態では、検知回路15は、ECC領域14に書き込まれたフラグ信号FSによって、エラー訂正コードECCが生成されているか否かを判定するとしたが、この形態に限られない。検知回路15は、ECC領域14に保持されているエラー訂正コードECCを直接監視することによって、エラー訂正コードECCが生成されているか否かを判定するとしてもよいことは言うまでもない。例えばECC領域14に保持されているエラー訂正コードECCのビットが全て”1”である場合にはエラー訂正コードECCが未生成・未書込みであると判定し、エラー訂正コードECCのビットの少なくとも1つが”0”である場合には、エラー訂正コードECCが生成・書込み済みであると判定することができる。これにより、フラグ信号FSを省略することができ、ECC領域14からフラグ信号FSを保持する領域を不要とすることができるため、ECC領域14の縮小化を図ることが可能となる。
また本実施形態では、コード生成コマンドCMDおよびコード生成指令GCは、セクタナンバーの情報を有しており、任意のセクタを指定してエラー訂正コードECCを生成する事が出来るとしたが、この形態に限られない。コード生成コマンドCMDおよびコード生成指令GCはセクタナンバーの情報を有さず、全てのセクタに対して一括にエラー訂正コードECCを生成する形態としてもよいことは言うまでもない。
なお、ECC生成回路11はコード生成回路の一例、ライトバッファ10はバッファの一例、内部経路30およびスイッチ20は入力経路のそれぞれ一例である。
13 データ領域
14 ECC領域
ECC エラー訂正コード
CMD コード生成コマンド
2 エラー訂正コード生成部
15 検知回路
3 読出し部
10 ライトバッファ
30 内部経路
20 スイッチ
24 訂正回路
18 セレクタ回路
14 ECC領域
ECC エラー訂正コード
CMD コード生成コマンド
2 エラー訂正コード生成部
15 検知回路
3 読出し部
10 ライトバッファ
30 内部経路
20 スイッチ
24 訂正回路
18 セレクタ回路
Claims (12)
- データを保持する複数のデータ領域と、
前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域と
を備える不揮発性記憶装置において、
入力されるコード生成コマンドに応じて、前記データ領域に保持される全ての前記データに関する前記エラー訂正コードを生成し前記ECC領域へ保持するエラー訂正コード生成部と、
前記エラー訂正コードが生成されていることを検知する検知回路と、
前記検知回路で検知動作が行われることに応じて、前記データ領域から読み出される前記データを前記エラー訂正コードを用いて訂正する読出し部と
を備えることを特徴とする不揮発性記憶装置。 - 前記エラー訂正コード生成部は前記エラー訂正コードの生成に際してフラグ情報を生成し、
前記検知回路は前記フラグ情報に応じて前記エラー訂正コードが生成されていることを検知する
ことを特徴とする請求項1に記載の不揮発性記憶装置。 - 前記ECC領域は前記フラグ情報を格納し、
前記検知回路は前記ECC領域から前記フラグ情報が入力される
ことを特徴とする請求項2に記載の不揮発性記憶装置。 - 前記検知回路は、
前記ECC領域に保持される前記エラー訂正コードの全ビットが同一ビットである場合には前記エラー訂正コードが生成されていない旨の検知結果を出力し、
前記ECC領域に保持される前記エラー訂正コードの全ビットのうち少なくとも1ビットが異なる場合には前記エラー訂正コードが生成されている旨の検知結果を出力することを特徴とする請求項1に記載の不揮発性記憶装置。 - 前記エラー訂正コード生成部は、
前記エラー訂正コードを生成するコード生成回路と、
前記コード生成回路に入力される前記データを保持するバッファと、
前記コード生成コマンドに応じて、前記データ領域に保持される全ての前記データを前記バッファへ入力する入力経路と
を備えることを特徴とする請求項1に記載の不揮発性記憶装置。 - 前記バッファは、
前記コード生成コマンドの入力と同時期に外部から前記バッファへ入力される前記データと、前記入力経路を介して前記バッファへ入力される前記データとを結合して前記コード生成回路へ出力することを特徴とする請求項5に記載の不揮発性記憶装置。 - 前記読出し部は、
前記データ領域から読み出される前記データを前記エラー訂正コードを用いて訂正する訂正回路と、
前記訂正回路の出力と前記データ領域の出力とが入力され、前記検知回路から前記エラー訂正コードが生成されていない旨が報知される場合には前記データ領域の出力を選択して出力し、前記検知回路から前記エラー訂正コードが生成されている旨が報知される場合には前記訂正回路の出力を選択して出力するセレクタと
を備えることを特徴とする請求項1に記載の不揮発性記憶装置。 - データを保持する複数のデータ領域と、
前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域と
を備える不揮発性記憶システムにおいて、
入力されるコード生成コマンドに応じて、前記データ領域に保持される全ての前記データに関する前記エラー訂正コードを生成し前記ECC領域へ保持するエラー訂正コード生成部と、
前記エラー訂正コードが生成されていることを検知する検知回路と、
前記検知回路で検知動作が行われることに応じて、前記データ領域から読み出される前記データを前記エラー訂正コードを用いて訂正する読出し部と
を備えることを特徴とする不揮発性記憶システム。 - 前記検知回路において検知動作が行われることに応じて、前記データ領域の前記データが書き込まれていない空き領域に対して新たな前記データの追加書き込みを禁止することを特徴とする請求項8に記載の不揮発性記憶システム。
- データを保持する複数のデータ領域と、
前記データ領域の各々に対応して備えられ、前記データ領域に保持される前記データに関するエラー訂正コードを保持するECC領域と
を備える不揮発性記憶装置の制御方法において、
前記データ領域へのデータの書き込みまたは読み出しを行うステップと、
前記エラー訂正コードを生成する旨のコード生成コマンドの入力に応じて、前記データ領域に保持される全ての前記データから前記エラー訂正コードを生成し前記ECC領域に保持するステップと、
前記エラー訂正コードが生成されることに応じて、前記データ領域から前記データを読み出す際に、前記エラー訂正コードを用いて前記データを訂正するステップと
を備えることを特徴とする不揮発性記憶装置の制御方法。 - 前記コード生成コマンドが入力されることに応じて、前記データ領域の前記データが書き込まれていない空き領域に対して新たな前記データの追加書き込みを禁止することを特徴とする請求項10に記載の不揮発性記憶装置の制御方法。
- 前記エラー訂正コードを生成するステップは、
前記データ領域に書き込まれた全ての前記データを読み出すステップと、
読み出された前記データと、前記コード生成コマンドと同時期に外部から入力される外部入力データとを結合して結合データを生成するステップと、
前記結合データから前記エラー訂正コードを生成するステップと
を備えることを特徴とする請求項10に記載の不揮発性記憶装置の制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007158750A JP2008310896A (ja) | 2007-06-15 | 2007-06-15 | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 |
TW097121367A TWI378464B (en) | 2007-06-15 | 2008-06-09 | Non-volatile memory device, non-volatile memory system, and control method for the non-volatile memory device |
US12/139,650 US8225172B2 (en) | 2007-06-15 | 2008-06-16 | Error correction scheme for non-volatile memory |
PCT/US2008/007557 WO2008156767A2 (en) | 2007-06-15 | 2008-06-16 | Error correction scheme for non-volatile memory |
US13/531,282 US8438460B2 (en) | 2007-06-15 | 2012-06-22 | Error correction scheme for non-volatile memory |
US13/886,507 US8769377B2 (en) | 2007-06-15 | 2013-05-03 | Error correction scheme for non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007158750A JP2008310896A (ja) | 2007-06-15 | 2007-06-15 | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008310896A true JP2008310896A (ja) | 2008-12-25 |
Family
ID=39938254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007158750A Pending JP2008310896A (ja) | 2007-06-15 | 2007-06-15 | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8225172B2 (ja) |
JP (1) | JP2008310896A (ja) |
TW (1) | TWI378464B (ja) |
WO (1) | WO2008156767A2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4905510B2 (ja) * | 2009-06-29 | 2012-03-28 | 富士通株式会社 | ストレージ制御装置及びストレージ装置のデータ回復方法 |
JP2011108306A (ja) * | 2009-11-16 | 2011-06-02 | Sony Corp | 不揮発性メモリおよびメモリシステム |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
WO2014199199A1 (zh) * | 2013-06-14 | 2014-12-18 | 三星电子株式会社 | 半导体存储器装置及其ecc方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0618535B1 (en) * | 1989-04-13 | 1999-08-25 | SanDisk Corporation | EEPROM card with defective cell substitution and cache memory |
US5583650A (en) * | 1992-09-01 | 1996-12-10 | Hitachi America, Ltd. | Digital recording and playback device error correction methods and apparatus for use with trick play data |
AU3832297A (en) * | 1996-02-29 | 1997-09-16 | Hitachi Limited | Semiconductor memory device having faulty cells |
JP3565687B2 (ja) | 1997-08-06 | 2004-09-15 | 沖電気工業株式会社 | 半導体記憶装置およびその制御方法 |
JP2001297038A (ja) * | 2000-04-11 | 2001-10-26 | Toshiba Corp | データ記憶装置および記録媒体並びに記録媒体制御方法 |
JP4373615B2 (ja) * | 2001-01-25 | 2009-11-25 | 富士通マイクロエレクトロニクス株式会社 | 初期不良ブロックのマーキング方法 |
CN1288658C (zh) * | 2002-04-25 | 2006-12-06 | 三洋电机株式会社 | 数据处理装置 |
JP4129381B2 (ja) * | 2002-09-25 | 2008-08-06 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP4073799B2 (ja) * | 2003-02-07 | 2008-04-09 | 株式会社ルネサステクノロジ | メモリシステム |
JP2004253099A (ja) * | 2003-02-21 | 2004-09-09 | Toshiba Corp | シンクフレーム構造、情報記憶媒体、情報記録方法、情報再生方法、および情報再生装置 |
US20040207743A1 (en) | 2003-04-15 | 2004-10-21 | Nikon Corporation | Digital camera system |
JP2004320286A (ja) | 2003-04-15 | 2004-11-11 | Nikon Gijutsu Kobo:Kk | デジタルカメラ |
GB0315063D0 (en) * | 2003-06-27 | 2003-07-30 | Ibm | Memory devices |
US6906961B2 (en) | 2003-06-24 | 2005-06-14 | Micron Technology, Inc. | Erase block data splitting |
JP2005293724A (ja) * | 2004-03-31 | 2005-10-20 | Sanyo Electric Co Ltd | 誤り箇所の検出方法、その方法を利用する誤り検出回路、誤り訂正回路、および再生装置 |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
JP2006267221A (ja) | 2005-03-22 | 2006-10-05 | Fujinon Corp | オートフォーカスシステム |
US7561790B2 (en) | 2004-12-28 | 2009-07-14 | Fujinon Corporation | Auto focus system |
US7426623B2 (en) * | 2005-01-14 | 2008-09-16 | Sandisk Il Ltd | System and method for configuring flash memory partitions as super-units |
JP2007025595A (ja) | 2005-07-21 | 2007-02-01 | Fujinon Corp | オートフォーカス装置 |
JP4528242B2 (ja) * | 2005-10-20 | 2010-08-18 | 富士通セミコンダクター株式会社 | メモリシステムおよびメモリシステムの動作方法 |
US7810017B2 (en) * | 2006-03-20 | 2010-10-05 | Micron Technology, Inc. | Variable sector-count ECC |
JP2007311861A (ja) | 2006-05-16 | 2007-11-29 | Fujifilm Corp | 撮影装置及び方法 |
US8051358B2 (en) * | 2007-07-06 | 2011-11-01 | Micron Technology, Inc. | Error recovery storage along a nand-flash string |
JP2010097167A (ja) | 2008-09-22 | 2010-04-30 | Fujinon Corp | オートフォーカス装置 |
JP2010096962A (ja) | 2008-10-16 | 2010-04-30 | Fujinon Corp | Af枠自動追尾機能を備えたオートフォーカスシステム |
JP5474528B2 (ja) | 2009-12-25 | 2014-04-16 | 富士フイルム株式会社 | オートフォーカスシステム |
-
2007
- 2007-06-15 JP JP2007158750A patent/JP2008310896A/ja active Pending
-
2008
- 2008-06-09 TW TW097121367A patent/TWI378464B/zh active
- 2008-06-16 WO PCT/US2008/007557 patent/WO2008156767A2/en active Application Filing
- 2008-06-16 US US12/139,650 patent/US8225172B2/en active Active
-
2012
- 2012-06-22 US US13/531,282 patent/US8438460B2/en active Active
-
2013
- 2013-05-03 US US13/886,507 patent/US8769377B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2008156767A2 (en) | 2008-12-24 |
US8438460B2 (en) | 2013-05-07 |
TW200910365A (en) | 2009-03-01 |
US20090158123A1 (en) | 2009-06-18 |
WO2008156767A3 (en) | 2009-04-16 |
US8225172B2 (en) | 2012-07-17 |
US20120266047A1 (en) | 2012-10-18 |
US20130268823A1 (en) | 2013-10-10 |
TWI378464B (en) | 2012-12-01 |
US8769377B2 (en) | 2014-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5492679B2 (ja) | 記憶装置およびメモリコントローラ | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
JP2008226245A (ja) | フラッシュメモリに基づくメモリシステム | |
JP2008192054A (ja) | 半導体メモリシステム | |
JP2008299621A (ja) | データリフレッシュ装置、及びデータリフレッシュ方法 | |
JP2016118815A (ja) | 不揮発性メモリ装置 | |
JP4866107B2 (ja) | 不揮発性記憶装置及びその書き込み判定方法 | |
JP2010003348A (ja) | 半導体記憶装置及び誤り訂正方法 | |
JP2008310896A (ja) | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 | |
US20160011937A1 (en) | Semiconductor memory device, memory controller, and control method of memory controller | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
JP2007102566A (ja) | メモリバックアップシステム | |
JP4624008B2 (ja) | 書き込み防止可能なバッファメモリを有するメモリ装置及びそれを含む情報処理システム | |
JP4956230B2 (ja) | メモリコントローラ | |
KR101627322B1 (ko) | 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법 | |
JP6497395B2 (ja) | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 | |
JP6941971B2 (ja) | 半導体記憶装置、メモリコントローラ及びメモリの監視方法 | |
JP2007193905A (ja) | 半導体記憶装置 | |
JP6438763B2 (ja) | エラー訂正装置 | |
US10120614B2 (en) | Storage device, storage system, and method of controlling storage device | |
TWI482014B (zh) | 具有動態錯誤偵測及更正的記憶體 | |
US9104596B2 (en) | Memory system | |
JP2012033222A (ja) | 半導体記憶装置およびその制御方法 | |
JP2006331233A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2008102693A (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091020 |