JP2009271993A - 不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 - Google Patents
不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 Download PDFInfo
- Publication number
- JP2009271993A JP2009271993A JP2008121134A JP2008121134A JP2009271993A JP 2009271993 A JP2009271993 A JP 2009271993A JP 2008121134 A JP2008121134 A JP 2008121134A JP 2008121134 A JP2008121134 A JP 2008121134A JP 2009271993 A JP2009271993 A JP 2009271993A
- Authority
- JP
- Japan
- Prior art keywords
- data
- written
- sector
- backup
- flash memory
- 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
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】特別なシステムを必要とすることなく、回復不可能とされていたECCエラーの発生を回避することが可能な不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器を提供する。
【解決手段】NAND型フラッシュメモリ108は、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値であるNOPの仕様の制約がある。このために、NAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
【選択図】図1
【解決手段】NAND型フラッシュメモリ108は、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値であるNOPの仕様の制約がある。このために、NAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
【選択図】図1
Description
本発明は、NAND型フラッシュメモリ等の不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器に関するものである。
半導体記憶装置の一つとして、電気的書き換えを可能としたフラッシュメモリが知られている。
なかでも、メモリセルを複数個直列接続してNANDセル・ブロックを構成するNAND型フラッシュメモリは、高集積化ができるものとして注目されている。
なかでも、メモリセルを複数個直列接続してNANDセル・ブロックを構成するNAND型フラッシュメモリは、高集積化ができるものとして注目されている。
NAND型フラッシュメモリの1つのメモリセルは、半導体基板上に絶縁膜を介して浮遊ゲート(電荷蓄積層)と制御ゲートが積層されたFETMOS構造を有する。
そして、NAND型フラッシュメモリにおいて、複数個のメモリセルが隣接するもの同士でソース・ドレインを共有する形で直列接続されてNANDセルを構成する。このようなNANDセルがマトリクス配列されてメモリセルアレイが構成される。
そして、NAND型フラッシュメモリにおいて、複数個のメモリセルが隣接するもの同士でソース・ドレインを共有する形で直列接続されてNANDセルを構成する。このようなNANDセルがマトリクス配列されてメモリセルアレイが構成される。
このようなNAND型等のフラッシュメモリは、たとえばデジタルカメラのプロセッサの記憶装置やコンピュータに接続可能なメモリカードの記憶装置等、各種電子機器の記憶装置として用いられている(たとえば特許文献1参照)。
また、特許文献1には、欠陥のあるフラッシュメモリセルから発生する誤りを訂正するための誤り訂正回路(ECC回路)に関する技術が開示されている。
この特許文献1に開示された技術では、ECCエラー(ビットエラー)に対して、専用のエラー検出回路を搭載することにより、ECCエラーの検出および修正を行っている。
特許第3226042号
この特許文献1に開示された技術では、ECCエラー(ビットエラー)に対して、専用のエラー検出回路を搭載することにより、ECCエラーの検出および修正を行っている。
しかし、上述した方法では、2ビット(bit)のECCエラー(以下、回復不可能なエラー)に関しては検出しか行えず、2ビットECCエラーを修正する場合はそれに必要なECCのビット数を増やす必要がある。
この問題は、チップの集積化の妨げになると同時に、コストの増加を招く。
この問題は、チップの集積化の妨げになると同時に、コストの増加を招く。
そのため、現状のNAND型フラッシュメモリにおいては、1ビットECCエラー(以下、回復可能なエラー)のみを修正し、2ビットエラーに関してはエラー検出のみを行い修正は行わない、という実装になっているものがほとんどである。
本発明は、特別なシステムを必要とすることなく、回復不可能とされていたECCエラーの発生を回避することが可能な不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器を提供することにある。
本発明の第1の観点の不揮発性半導体記憶装置は、不揮発性フラッシュメモリと、上記不揮発性フラッシュメモリのアクセスを制御する制御部と、を有し、上記不揮発性フラッシュメモリは、上記制御部の制御により、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有し、上記制御部は、上記不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む。
好適には、上記制御部は、ライトリクエストを受けて、書き込むべきオリジナルデータをコピーし、オリジナルデータが書き込まれるセクタに後続するセクタにバックアップのデータセクタを作成し、当該オリジナルデータおよびバックアップデータを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う。
好適には、上記制御部は、リードリクエストを受けて、上記オリジナルデータが書き込まれたセクタのデータを読み出し、当該読み出しにおいて回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが発生した場合は、上記バックアップデータが書き込まれたバックアップセクタのデータを読み出す。
好適には、上記制御部は、バックアップセクタのデータを読み出した際に、回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが起きた際は、エラー情報を上位のアプリケーションへ通知する。
好適には、上記制御部は、ライトリクエストを受けて、リクエストデータ内にバックアップ可能なセクタがあるか否かを判定し、バックアップが可能であると判定した場合は、バックアップデータ、およびオリジナルデータのセクタに後続するセクタにバックアップデータがあることを示す管理情報を作成し、オリジナルデータとバックアップデータと管理情報データを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う。
好適には、上記制御部は、バックアップ不可能であると判定した場合は、オリジナルデータデータを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う。
好適には、上記制御部は、リードリクエストを受けて、上記オリジナルデータが書き込まれたセクタのデータを読み出し、当該読み出しにおいて回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが発生した場合は、上記管理情報を読み出してバックアップがある領域であるか否かを判定し、バックアップがあると判定すると、上記バックアップデータが書き込まれたバックアップセクタのデータを読み出し、回復不可能なエラーが発生したか否かを再度判定し、回復可能なエラーが発生した場合、エラー情報を上位のアプリケーションへ通知する。
好適には、上記制御部は、回復不可能なエラーが発生しなかった場合は、アクセスを正常終了する。
好適には、バックアップのために使用可能な領域の最大サイズは、単位ページサイズをNOPで割った値からオリジナルデータサイズを減算した値である。
好適には、上記制御部は、バックアップのためのデータを、単位ページ内で複数個バックアップする。
本発明の第2の観点の不揮発性半導体記憶装置のアクセス方法は、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有するし不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む。
本発明の第3の観点は、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有する不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む処理をコンピュータに実行させるプログラムである。
本発明の第4の観点の電子機器は、不揮発性フラッシュメモリと、上記不揮発性フラッシュメモリのアクセスを制御するプロセッサと、を有し、上記不揮発性フラッシュメモリは、上記制御部の制御により、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有し、上記プロセッサは、上記不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む。
本発明によれば、制御部は、不揮発性フラッシュメモリにオリジナルデータを書き込み、その際に生じる空セクタにバックアップのためのデータを書き込む。
本発明によれば、特別なシステムを必要とすることなく、回復不可能とされていたECCエラーの発生を回避することができる。
以下、本発明の実施形態を図面に関連付けて説明する。
本実施形態においては、本発明の説明をするにあたり電子機器である撮像装置の一例として、一般的なデジタルビデオカメラあるいはデジタルスチルカメラのカメラシステムをとり上げる。
図1は、第1の実施形態に係る撮影装置(カメラ)の構成例を示すブロック図である。
本撮影装置100は、光学レンズ系101、撮像素子102、カメラ信号処理回路103、ネットワークインタフェース104、キー操作部105、コーデック部(Codec)106、SDRAM107、フラッシュメモリ108、およびSDRAM109を有する。
撮像装置100は、制御部としてのプロセッサ110を有する。
さらに、撮像装置100は、アナログフロントエンド部111、接続機器112、ディスプレイコントローラ113、ディスプレイデバイス114、USBインタフェース115、および記録媒体116を有する。
撮像装置100は、制御部としてのプロセッサ110を有する。
さらに、撮像装置100は、アナログフロントエンド部111、接続機器112、ディスプレイコントローラ113、ディスプレイデバイス114、USBインタフェース115、および記録媒体116を有する。
光学レンズ系101は、たとえばズームレンズおよびフォーカスレンズを含み、被写体像を撮像素子102の撮像面に結像する。
撮像素子102は、たとえばCCDやCMOSセンサを含み、光学レンズ系101による結像情報をアナログの電気信号に変換する。
また、撮像素子102は、たとえばアナログフロントエンド部の機能をも持ち合わせている。
このアナログフロントエンド部は、撮像素子102におけるアナログ出力を相関二重サンプリング処理(CDS)、アナログ増幅処理、デジタル信号に変換するアナログ/デジタル(A/D)変換処理や、撮像素子に画像読み出しのタイミング信号を供給する処理を行うデバイスである。
また、撮像素子102は、たとえばアナログフロントエンド部の機能をも持ち合わせている。
このアナログフロントエンド部は、撮像素子102におけるアナログ出力を相関二重サンプリング処理(CDS)、アナログ増幅処理、デジタル信号に変換するアナログ/デジタル(A/D)変換処理や、撮像素子に画像読み出しのタイミング信号を供給する処理を行うデバイスである。
カメラ信号処理回路103は、撮影に先立って撮影のシャッタスピードを決める処理や撮影した画像の明るさや色を調整するための処理等の処理を行い、処理結果を制御部としてのプロセッサ110に供給する。
ネットワークインタフェース104は、プロセッサ110とネットワークとのインタフェース処理を行う。
キー操作部105は、カメラ操作にかかわる各種キーを含み、操作されたキー入力情報をプロセッサ110に供給する。
コーデック部106は、プロセッサ110の制御の下、ビデオやオーディオに関するコーデック処理を行う。
なおSDRAM107は、コーデック部106によりアクセス可能に構成されている。
なおSDRAM107は、コーデック部106によりアクセス可能に構成されている。
フラッシュメモリ108は、NAND型フラッシュメモリにより構成され、プロセッサ110の記憶装置として用いられる。
このフラッシュメモリ108と、フラッシュメモリ108をアクセスするプロセッサ110の特徴的な構成および機能については後で詳述する。
このフラッシュメモリ108と、フラッシュメモリ108をアクセスするプロセッサ110の特徴的な構成および機能については後で詳述する。
SDRAM109は、撮影した画像の一時的な保存、カメラ信号処理で行われる演算の途中結果の一時的な保存など司るメモリである。
SDRAM109は、プロセッサ110によりアクセスされる。
SDRAM109は、プロセッサ110によりアクセスされる。
プロセッサ110は、カメラ信号処理で行われる演算や撮影した画像を記録媒体へ書き込むための制御を司り、カメラの信号処理全般の制御を司る。
このプロセッサ110とフラッシュメモリ108の特徴的な構成および機能については後で詳述する。
このプロセッサ110とフラッシュメモリ108の特徴的な構成および機能については後で詳述する。
アナログフロントエンド部111は、オーディオ機器112a、ビデオ機器112b、マイクロフォン(MIC)112c等の接続機器112が接続され、プロセッサ110の制御の下、プロセッサ110とこれらの接続機器112との情報授受の制御を行う。
ディスプレイコントローラ113は、プロセッサ110の制御の下、液晶表示装置(LCD)等のディスプレイデバイス114の駆動制御を行う。
USB(Universal Serial Bus)インタフェース115は、たとえばUSBメモリ等、USB機能を有する電子機器が接続される。
記録媒体116は、たとえば撮影した画像を長時間保存するためにプロセッサ110からアクセス可能に構成される。
記録媒体116としては、メモリカード等を構成するフラッシュメモリ116a、DVD(Digital Versatile Disc)116b、ハードディスクドライブ(HDD)116c等が適用される。
記録媒体116としては、メモリカード等を構成するフラッシュメモリ116a、DVD(Digital Versatile Disc)116b、ハードディスクドライブ(HDD)116c等が適用される。
次に、本実施形態おけるNAND型フラッシュメモリ108と、フラッシュメモリ108をアクセス制御するプロセッサ110の特徴的な構成および機能については詳述する。
NAND型フラッシュメモリは、計算機やビデオカメラやデジタルスチルカメラ、携帯オーディオプレーヤーなどのシステムの記憶媒体として用いられる。
本実施形態のNAND型フラッシュメモリ108は、カメラシステムに適用した場合を例示されている。
本実施形態のNAND型フラッシュメモリ108は、カメラシステムに適用した場合を例示されている。
このNAND型フラッシュメモリ108は、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(以下NOP: Number Of Partial program とする)の仕様の制約がある。
このために、本実施形態のNAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。
これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
後で述べるように、本実施形態において、バックアップのためのデータは単位ページ内で冗長に複数個バックアップすることも可能である。
本実施形態において、バックアップのために使用可能な領域の最大サイズ(最大バックアップ領域)MBUAは、以下に示すように、単位ページサイズUPSをNOPで割った値からオリジナルデータサイズODSを減算した値である。
このために、本実施形態のNAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。
これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
後で述べるように、本実施形態において、バックアップのためのデータは単位ページ内で冗長に複数個バックアップすることも可能である。
本実施形態において、バックアップのために使用可能な領域の最大サイズ(最大バックアップ領域)MBUAは、以下に示すように、単位ページサイズUPSをNOPで割った値からオリジナルデータサイズODSを減算した値である。
[数1]
MBUA=(UPS/NOP)−ODS
MBUA=(UPS/NOP)−ODS
前述したように、NAND型フラッシュメモリ108は、プロセッサ110により制御される。
図2は、本実施形態に係るプロセッサとNAND型フラッシュメモリ間のレイヤー構造を示す図である。なお、図2のレイヤー構造は一例として、UNIX(登録商標)システムのものを記載している。
また、ここで説明するシステムはファイルシステムを使用しないシステム構成を想定している。
また、ここで説明するシステムはファイルシステムを使用しないシステム構成を想定している。
図2において、プロセッサ110は、デバイスドライバ1101、ブロック/キャラクタデバイスインタフェース1102を含む。デバイスドライバ1101は、ブロック/キャラクタデバイスインタフェース1102を通してアプリケーション1103やミドルウェア1104との関連を有する。
また、図2のハードウェアデバイスが本実施形態のNAND型フラッシュメモリ108に相当する。
また、図2のハードウェアデバイスが本実施形態のNAND型フラッシュメモリ108に相当する。
一般にNAND型フラッシュメモリ108に対してリード(read)/ライト(write)を行う際、アプリケーション1103より、リクエストコマンドREQが発行され、デバイスドライバ1101を介して、ハードウェアデバイス108にデータのリード、ライトが実行される。
リードを行う際一般に、ECCエラーが発生する可能性があり、この問題に対してNAND型フラッシュメモリ108にはエラー検出・修正回路が搭載されている。
リードを行う際一般に、ECCエラーが発生する可能性があり、この問題に対してNAND型フラッシュメモリ108にはエラー検出・修正回路が搭載されている。
<NAND型フラッシュに関する説明>
図3は、NAND型フラッシュメモリのページ構成の一例を示す図である。
図3は、NAND型フラッシュメモリのページ構成の一例を示す図である。
1ページはメインエリアMNAで4セクタSCT、スペアエリアSPAで4セクタSCTにより構成されている。
メインエリアMNAはユーザーが使用可能なエリアであり、スペアエリアSPAはデバイスドライバ1101が管理領域として使用するエリアである。
管理領域には、オリジナルデータのセクタに後続するセクタにバックアップデータがあることを示す管理情報等が書き込まれる。
メインエリアMNAはユーザーが使用可能なエリアであり、スペアエリアSPAはデバイスドライバ1101が管理領域として使用するエリアである。
管理領域には、オリジナルデータのセクタに後続するセクタにバックアップデータがあることを示す管理情報等が書き込まれる。
NAND型フラッシュメモリ108には,以下の仕様(制限)が存在する。
・リードライト(読書き)できる最小単位は1セクタ(512byte)単位である。1セクタSCTは512バイトである。
・デバイスの種類ごとにNOPが定められている。ここではNOP2回と仮定する。
・NAND型フラッシュメモリ108はデータを書き込む前に必ず消去(イレーズ)を行ってからデータを書き込む(上書き禁止)という仕様である。
・初期状態およびイレーズ済みの領域は0xffで初期化されている。
・512バイト以下のデータをライトする際、512バイトに満たない領域には0xffがライトされる。
・リードライト(読書き)できる最小単位は1セクタ(512byte)単位である。1セクタSCTは512バイトである。
・デバイスの種類ごとにNOPが定められている。ここではNOP2回と仮定する。
・NAND型フラッシュメモリ108はデータを書き込む前に必ず消去(イレーズ)を行ってからデータを書き込む(上書き禁止)という仕様である。
・初期状態およびイレーズ済みの領域は0xffで初期化されている。
・512バイト以下のデータをライトする際、512バイトに満たない領域には0xffがライトされる。
また、説明を行うに当たり以下の前提条件を追加する。
・ライト(書き込み)を行った際ページ内に書き込みが行われないセクタが存在する。
・データのライトは先頭のセクタから順に使用するものとする。
・オリジナルデータとバックアップデータは必ず隣接したセクタである必要がある。
・ライト(書き込み)を行った際ページ内に書き込みが行われないセクタが存在する。
・データのライトは先頭のセクタから順に使用するものとする。
・オリジナルデータとバックアップデータは必ず隣接したセクタである必要がある。
図4は、本実施形態におけるライトの際のプロセッサ110とNAND型フラッシュメモリ108間のデータ転送のシステム構成を示す図である。
プロセッサ110のデバイスドライバ1101は、データ処理部11011とバッファ11012を含んで構成されている。
また、図3のNAND型フラッシュメモリ108は、データバッファ1081およびデータエリア(セルアレイエリア)1082を含んで構成されている。
また、図3のNAND型フラッシュメモリ108は、データバッファ1081およびデータエリア(セルアレイエリア)1082を含んで構成されている。
ここでは、データ長は、512バイトである。
プロセッサ110がライトリクエストWREQを受けると、データはデータ処理部11011のバッファからバッファ11012へコピーされる。
その際に、デバイスドライバ1101は、必要なセクタ数分のバックアップを作成する。
その後、バッファ11012からNAND型フラッシュメモリ108側のデータバッファ1081へコピーもしくはDMA転送される。
最後に、データバッファ1081からデータエリア1082にデータ転送さ、フラッシュメモリにデータの書き込みが行われる。
なお、ここでいうデータエリアとは、NAND型フラッシュメモリ内の メインエリアとスペアエリアSPAを含む。
プロセッサ110がライトリクエストWREQを受けると、データはデータ処理部11011のバッファからバッファ11012へコピーされる。
その際に、デバイスドライバ1101は、必要なセクタ数分のバックアップを作成する。
その後、バッファ11012からNAND型フラッシュメモリ108側のデータバッファ1081へコピーもしくはDMA転送される。
最後に、データバッファ1081からデータエリア1082にデータ転送さ、フラッシュメモリにデータの書き込みが行われる。
なお、ここでいうデータエリアとは、NAND型フラッシュメモリ内の メインエリアとスペアエリアSPAを含む。
以上の前提条件の下に、より具体的な説明を行う。
<一般的なリード / ライト>
はじめにNAND型フラッシュのリード/ライト動作について説明する。
はじめにNAND型フラッシュのリード/ライト動作について説明する。
まず、ライトの場合について説明する。例として、NOP2回で、書き込みデータのサイズが1セクタ以下のデータを記録する場合を考える。
図5は、データサイズが1セクタ以下の場合の書き込み例を示す図である。
図5は、データサイズが1セクタ以下の場合の書き込み例を示す図である。
NAND型フラッシュメモリ108に1セクタずつ書き込みを行うと、1ページ内のデータ構成は図5に示すようなる。
NOPは2回であるため、第3セクタSCT3と第4セクタSCT4には書き込みを行うことができず、データの無い空セクタが発生する。この空領域を使用するのが本発明の特徴的な構成である。
NOPは2回であるため、第3セクタSCT3と第4セクタSCT4には書き込みを行うことができず、データの無い空セクタが発生する。この空領域を使用するのが本発明の特徴的な構成である。
次に、リードについて考える。
リードを行う際も1セクタ単位でECCエラーのチェックが行われる。
たとえば、セクタSCT1を読み出した際に回復可能なECCエラーが起きた場合は検出回路が検出し、自動修正され、データは正しくロードされる。
しかし、回復不可能なECCエラーが生じた際は検出回路が検出は行うが、セクタ内のどこで発生したかがわからないため修正が行うことができない。
そのため、エラーとして上位のアプリケーションに通知される。
本発明の実施形態では、この検出はできるが回復不可能なECCエラーを回避することを特徴としている。
リードを行う際も1セクタ単位でECCエラーのチェックが行われる。
たとえば、セクタSCT1を読み出した際に回復可能なECCエラーが起きた場合は検出回路が検出し、自動修正され、データは正しくロードされる。
しかし、回復不可能なECCエラーが生じた際は検出回路が検出は行うが、セクタ内のどこで発生したかがわからないため修正が行うことができない。
そのため、エラーとして上位のアプリケーションに通知される。
本発明の実施形態では、この検出はできるが回復不可能なECCエラーを回避することを特徴としている。
<書き込みデータサイズが常に1セクタ(512byte)以下の場合(NOPが2の場合)>
図6は、データサイズが常に1セクタ以下の場合であってNOPが2の場合の書き込み例を示す図である。
図6は、データサイズが常に1セクタ以下の場合であってNOPが2の場合の書き込み例を示す図である。
この場合、セクタSCT11に1回目のデータDT1の書き込みを行う際、バックアップとして次のセクタSCT12にも同じデータDT1を書き込む。
同様に、2回目のデータDT2の書き込みをセクタST13に行う際に、バックアップを次のセクタSCT14に書き込む。
こうすることによりNOP2回の仕様を守った上で、新たな領域を必要とせずにデータのバックアップを作成できる。
同様に、2回目のデータDT2の書き込みをセクタST13に行う際に、バックアップを次のセクタSCT14に書き込む。
こうすることによりNOP2回の仕様を守った上で、新たな領域を必要とせずにデータのバックアップを作成できる。
図7は、図6におけるライト時のシーケンスを示すフローチャートである。
まず、ステップST1において、1セクタ単位でアプリケーション1103からライトリクエストWREQが発行される。
その際、ステップST2においてデバイスドライバ1101でデータをコピーし、オリジナルデータの1つ後ろのセクタにバックアップのデータセクタを作成する。
そして、ステップST3において、たとえばこの2セクタを一度にまとめてNAND型フラッシュメモリ108にライトする。
その際、ステップST2においてデバイスドライバ1101でデータをコピーし、オリジナルデータの1つ後ろのセクタにバックアップのデータセクタを作成する。
そして、ステップST3において、たとえばこの2セクタを一度にまとめてNAND型フラッシュメモリ108にライトする。
図8は、図6におけるリード時のシーケンスを示すフローチャートである。
ステップST11において、リードリクエストRREQによりセクタSCT1をリードする。
ステップST2において、回復不可能なECCエラーが発生したか否かを判定する。ステップST2において回復不可能なECCエラーが発生しなかった場合は、ステップST13の正常終了となる。
ステップST2において、回復不可能なECCエラーが発生した場合は、ステップST14においてバックアップセクタをリードする。
これにより、回復不可能なECCエラーを回避できる。
ステップST14においてバックアップセクタをリードした際にもステップST15において回復不可能なECCエラーが発生したか否かを判定する。
ステップST15において、で回復不可能なECCエラーが起きた際は、ステップST16においてエラーを上位のアプリケーション1103へ通知する。
ステップST2において、回復不可能なECCエラーが発生したか否かを判定する。ステップST2において回復不可能なECCエラーが発生しなかった場合は、ステップST13の正常終了となる。
ステップST2において、回復不可能なECCエラーが発生した場合は、ステップST14においてバックアップセクタをリードする。
これにより、回復不可能なECCエラーを回避できる。
ステップST14においてバックアップセクタをリードした際にもステップST15において回復不可能なECCエラーが発生したか否かを判定する。
ステップST15において、で回復不可能なECCエラーが起きた際は、ステップST16においてエラーを上位のアプリケーション1103へ通知する。
以上、NOPが2の場合について説明した。
次に、NOPが1の場合について説明する。
次に、NOPが1の場合について説明する。
<NOPが1の場合であって、バックアップが1個の場合>
図9は、データサイズが常に1セクタ以上の場合であってNOPが1の場合の書き込み例を示す図である。
図9は、データサイズが常に1セクタ以上の場合であってNOPが1の場合の書き込み例を示す図である。
この場合は、バックアップできるデータサイズが図9中、符号DTS1,DTS2で示すように2セクタになるため、最大1kバイトのデータまでの回復不可能なECCエラーを回避できるようになる。
このように、回復不可能なECCエラーを回避(バックアップ)可能なデータの最大サイズMBUAは、前述したように、単位ページサイズUPSをNOPで割った値からオリジナルデータサイズODSを減算した値となる(eq.1)。
このように、回復不可能なECCエラーを回避(バックアップ)可能なデータの最大サイズMBUAは、前述したように、単位ページサイズUPSをNOPで割った値からオリジナルデータサイズODSを減算した値となる(eq.1)。
[数2]
MBUA=(UPS/NOP)−ODS
MBUA=(UPS/NOP)−ODS
<バックアップが複数個の場合>
図10は、データサイズが常に1セクタ以下で、NOPが1の場合であってバックアップが複数個の場合の書き込み例を示す図である。
図10は、データサイズが常に1セクタ以下で、NOPが1の場合であってバックアップが複数個の場合の書き込み例を示す図である。
データの中でも管理情報など、特に重要なデータは、図10に示すように、セクタSCT31にオリジナルデータODT1を書き込み、セクタSCT32,SCT33,SCT34に冗長にバックアップデータBUDT1〜BUDT3を取ることも可能である。
この場合は、バックアップの数が増加しているため、回復不可能なエラーを回避できる確率も増え、信頼性を向上させることができる。
この場合は、バックアップの数が増加しているため、回復不可能なエラーを回避できる確率も増え、信頼性を向上させることができる。
<書き込みデータサイズが未知の場合であってNOPが1の場合>
これまで述べてきた例は、書き込みデータのサイズが1セクタ以下のものしか来ないという前提であったが、書き込みデータサイズが未知で、様々なサイズのデータが混ざっていた場合を考える。
これまで述べてきた例は、書き込みデータのサイズが1セクタ以下のものしか来ないという前提であったが、書き込みデータサイズが未知で、様々なサイズのデータが混ざっていた場合を考える。
図11は、データサイズが3セクタで、NOPが1でバックアップをとる場合の書き込み例を示す図である。
たとえば、3セクタにまたがるようなデータが存在した際、通常は図11に示すように、セクタSCT41とセクタSCT42とセクタSCT43にオリジナルデータODTを一度に書き込む。
しかし、セクタSCT44に空領域が発生するため、セクタSCT43に関してはバックアップをセクタSCT44にとることが可能である。
しかし、セクタSCT44に空領域が発生するため、セクタSCT43に関してはバックアップをセクタSCT44にとることが可能である。
図12は、データサイズを限定しない場合のライト時のシーケンスを示すフローチャートである。
この場合、まず、ステップST21でアプリケーション1103からライトリクエストWREQが発行される。
次に、ステップST22において、リクエストデータ内にバックアップ可能なセクタがあるか否かを判定する。
ステップST23において、バックアップ不可能であると判定した場合は、ステップST23においてデータを通常どおり書き込む。
ステップST23においてバックアップが可能であると判定した場合は、ステップST24においてデバイスドライバ1101でのバックアップ作成をする。
次に、ステップST25においてオリジナルデータODTとバックアップデータBUDTと管理情報データ、この例では、このセクタはバックアップを一つ後ろのセクタに持っているというフラ)をセクタ3のスペアエリアSPAに一度にライトする。
次に、ステップST22において、リクエストデータ内にバックアップ可能なセクタがあるか否かを判定する。
ステップST23において、バックアップ不可能であると判定した場合は、ステップST23においてデータを通常どおり書き込む。
ステップST23においてバックアップが可能であると判定した場合は、ステップST24においてデバイスドライバ1101でのバックアップ作成をする。
次に、ステップST25においてオリジナルデータODTとバックアップデータBUDTと管理情報データ、この例では、このセクタはバックアップを一つ後ろのセクタに持っているというフラ)をセクタ3のスペアエリアSPAに一度にライトする。
管理情報のフォーマットは、デバイスドライバ設計者が任意に決めた仕様でよい。たとえば、スペアエリアSPAのある特定のビットを0か1で判断するなどである。
図13は、データサイズを限定しない場合のリード時のシーケンスを示すフローチャートである。
この場合、ステップST31において、アプリケーション1103からリードリクエストRREQが発行され、ステップST32において、リードリクエストRREQによりセクタSCT1をリードする。
ステップST33において、回復不可能なECCエラーが発生したか否かを判定する。ステップST33おいて回復不可能なECCエラーが発生しなかった場合は、ステップST34の正常終了となる。
ステップST33において、回復不可能なECCエラーが発生した場合、ステップST35において管理情報を読み出し、ステップST36においてリードセクタがバックアップのあるセクタか否かの判別が行われる。
ステップST36において、バックアップがある領域であると判別すると、ステップST37においてバックアップセクタをリードする。
ステップST37においてバックアップセクタをリードした際にもステップST38において回復不可能なECCエラーが発生したか否かを判定する。
ステップST38において、回復不可能なECCエラーが起きた際、あるいはステップST36でバックアップ領域がないと判別した場合は、ステップST39においてエラーを上位のアプリケーション1103へ通知する。
ステップST33において、回復不可能なECCエラーが発生したか否かを判定する。ステップST33おいて回復不可能なECCエラーが発生しなかった場合は、ステップST34の正常終了となる。
ステップST33において、回復不可能なECCエラーが発生した場合、ステップST35において管理情報を読み出し、ステップST36においてリードセクタがバックアップのあるセクタか否かの判別が行われる。
ステップST36において、バックアップがある領域であると判別すると、ステップST37においてバックアップセクタをリードする。
ステップST37においてバックアップセクタをリードした際にもステップST38において回復不可能なECCエラーが発生したか否かを判定する。
ステップST38において、回復不可能なECCエラーが起きた際、あるいはステップST36でバックアップ領域がないと判別した場合は、ステップST39においてエラーを上位のアプリケーション1103へ通知する。
<NAND型フラッシュメモリがリムーバブルな場合>
図14は、NAND型フラッシュメモリがリムーブバルである場合のNOP情報取得シーケンスを示すフローチャートである。
図14は、NAND型フラッシュメモリがリムーブバルである場合のNOP情報取得シーケンスを示すフローチャートである。
その他の変形例として、NAND型フラッシュメモリが内蔵式ではなく、リムーバブルだった場合は、毎回初期化時に図14のシーケンスを追加することで、デバイスの違いによるNOPの変化に対応できる。
この場合、まず、ステップST41においてシステムの電源がオンになる。
するとステップST42において、NAND型フラッシュメモリ108の初期化時にNANDのデバイス情報を取得する。
次に、ステップST43において、このデバイス情報によりNOPを認識する。
するとステップST42において、NAND型フラッシュメモリ108の初期化時にNANDのデバイス情報を取得する。
次に、ステップST43において、このデバイス情報によりNOPを認識する。
ここでいうデバイス情報とは、デバイスのモデル番号などである。モデル番号とNOPの対応は基本的に既知であるとすればリムーバブルなNANDに対しても対応することが可能である。
以上説明したように、本実施形態によれば、NAND型フラッシュメモリ108は、データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値であるNOPの仕様の制約がある。
このために、本実施形態のNAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。
これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
したがって、本実施形態によれば、以下の効果を得ることができる。
このために、本実施形態のNAND型フラッシュメモリ108は、プロセッサ110の制御の下、生じる空セクタにバックアップのためのデータを書き込む。
これにより、NAND型フラッシュメモリ108およびプロセッサ110は、データ読み出しの際に生じるデバイスが検出可能である最大nビットのECC(ビット化けエラー)エラーを回避するように構成されている。
したがって、本実施形態によれば、以下の効果を得ることができる。
すなわち、本実施形態によれば、計算機やビデオカメラやデジタルスチルカメラ、携帯オーディオプレーヤーなどの記憶媒体であるNAND型フラッシュメモリにおいて、書き込みデータが非常に小さい場合に、ページ内の空いたセクタをそのバックアップとして使用することにより、これまで回復不可能であったECCエラーを回避することが可能である。
一般にNAND型フラッシュメモリにおいて、回復不可能なECCエラーが発生した場合はそのブロックをバッドブロックとして、他の正常なブロックと交換し、バッドブロックはその後使用しない。なお、バッドブロックとは、回復不可能な何らかのエラーは発生したため二度と使用されないエラーブロックをいう。
そのため、回復不可能なECCエラーが発生すると、ユーザエリアが1ブロック減少する。
しかし、本実施形態の手法では、回復不可能なECCエラーがオリジナルセクタとバックアップセクタの両方で起きない限りは、その領域をバッドブロックにする必要が無いため、回復不可能なECCエラーによるユーザー領域の減少を抑えることができる。
そのため、回復不可能なECCエラーが発生すると、ユーザエリアが1ブロック減少する。
しかし、本実施形態の手法では、回復不可能なECCエラーがオリジナルセクタとバックアップセクタの両方で起きない限りは、その領域をバッドブロックにする必要が無いため、回復不可能なECCエラーによるユーザー領域の減少を抑えることができる。
また、たとえばビデオカメラにおいて映像データや音声データをリアルタイムに記録する際、トータルの記録量は非常に大きいものになる。
しかし、リアルタイムに記録する際、ある単位時間当たりでは、1セクタ以下のデータを記録する場合が非常に多い。
つまり、本発明はビデオカメラの記録データなどをNAND型フラッシュメモリに記録する際に有効である。
また、本発明は管理データなどの書き込みなどにも有効と考えられる。その理由は、一般に管理データは画像データなどに比べて小さいためである。
しかし、リアルタイムに記録する際、ある単位時間当たりでは、1セクタ以下のデータを記録する場合が非常に多い。
つまり、本発明はビデオカメラの記録データなどをNAND型フラッシュメモリに記録する際に有効である。
また、本発明は管理データなどの書き込みなどにも有効と考えられる。その理由は、一般に管理データは画像データなどに比べて小さいためである。
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
100・・・撮影装置(カメラ)、101・・・光学レンズ系、102・・・撮像素子、103・・・カメラ信号処理回路、104・・・ネットワークインタフェース、105・・・キー操作部、106・・・コーデック部(Codec)、107・・・SDRAM、108・・・フラッシュメモリ、1081・・・データバッファ、1082・・・データエリア、109・・・SDRAM、110・・・プロセッサ、1101・・・デバイスドライバ、11011・・・データ処理部、11012・・・バッファ、1103・・・アプリケーション、111・・・アナログフロントエンド部、112・・・接続機器、113・・・ディスプレイコントローラ、114・・・ディスプレイデバイス、115・・・USBインタフェース、116・・・記録媒体。
Claims (15)
- 不揮発性フラッシュメモリと、
上記不揮発性フラッシュメモリのアクセスを制御する制御部と、を有し、
上記不揮発性フラッシュメモリは、
上記制御部の制御により、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、
データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、
データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有し、
上記制御部は、
上記不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む
不揮発性半導体記憶装置。 - 上記制御部は、
ライトリクエストを受けて、書き込むべきオリジナルデータをコピーし、オリジナルデータが書き込まれるセクタに後続するセクタにバックアップのデータセクタを作成し、当該オリジナルデータおよびバックアップデータを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う
請求項1記載の不揮発性半導体記憶装置。 - 上記制御部は、
リードリクエストを受けて、上記オリジナルデータが書き込まれたセクタのデータを読み出し、当該読み出しにおいて回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが発生した場合は、上記バックアップデータが書き込まれたバックアップセクタのデータを読み出す
請求項2記載の不揮発性半導体記憶装置。 - 上記制御部は、
バックアップセクタのデータを読み出した際に、回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが起きた際は、エラー情報を上位のアプリケーションへ通知する
請求項3記載の不揮発性半導体記憶装置。 - 上記制御部は、
回復不可能なエラーが発生しなかった場合は、アクセスを正常終了する
請求項3記載の不揮発性半導体記憶装置。 - 上記制御部は、
回復不可能なエラーが発生しなかった場合は、アクセスを正常終了する
請求項4記載の不揮発性半導体記憶装置。 - 上記制御部は、
ライトリクエストを受けて、リクエストデータ内にバックアップ可能なセクタがあるか否かを判定し、バックアップが可能であると判定した場合は、バックアップデータ、およびオリジナルデータのセクタに後続するセクタにバックアップデータがあることを示す管理情報を作成し、オリジナルデータとバックアップデータと管理情報データを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う
請求項1記載の不揮発性半導体記憶装置。 - 上記制御部は、
バックアップ不可能であると判定した場合は、オリジナルデータデータを上記不揮発性フラッシュメモリに転送してデータの書き込みを行う
請求項7記載の不揮発性半導体記憶装置。 - 上記制御部は、
リードリクエストを受けて、上記オリジナルデータが書き込まれたセクタのデータを読み出し、当該読み出しにおいて回復不可能なエラーが発生したか否かを判定し、回復不可能なエラーが発生した場合は、上記管理情報を読み出してバックアップがある領域であるか否かを判定し、バックアップがあると判定すると、上記バックアップデータが書き込まれたバックアップセクタのデータを読み出し、回復不可能なエラーが発生したか否かを再度判定し、回復可能なエラーが発生した場合、エラー情報を上位のアプリケーションへ通知する
請求項7記載の不揮発性半導体記憶装置。 - 上記制御部は、
回復不可能なエラーが発生しなかった場合は、アクセスを正常終了する
請求項9記載の不揮発性半導体記憶装置。 - バックアップのために使用可能な領域の最大サイズは、単位ページサイズをNOPで割った値からオリジナルデータサイズを減算した値である
請求項1から10のいずれか一に記載の不揮発性半導体記憶装置。 - 上記制御部は、
バックアップのためのデータを、単位ページ内で複数個バックアップする
請求項11記載の不揮発性半導体記憶装置。 - データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、
データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、
データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有するし不揮発性フラッシュメモリにデータを書き込むに際し、
データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む
不揮発性半導体記憶装置のアクセス方法。 - データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、
データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、
データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有する不揮発性フラッシュメモリにデータを書き込むに際し、
データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む処理をコンピュータに実行させるプログラム。 - 不揮発性フラッシュメモリと、
上記不揮発性フラッシュメモリのアクセスを制御するプロセッサと、を有し、
上記不揮発性フラッシュメモリは、
上記制御部の制御により、データの読み書きがセクタを最小単位として行われ、複数のセクタによりページが形成され、
データの書き込みを行う前に消去を行ってからデータの書き込みが行われ、
データを一度消去してから次にデータを消去するまでの間に、単位ページ内に書き込みが行える回数の上限値(NOP)の仕様の制約を有し、
上記プロセッサは、
上記不揮発性フラッシュメモリにデータを書き込むに際し、データの書き込みにより生じる空セクタに、バックアップのためのデータを少なくとも一つ書き込む
電子機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008121134A JP2009271993A (ja) | 2008-05-07 | 2008-05-07 | 不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008121134A JP2009271993A (ja) | 2008-05-07 | 2008-05-07 | 不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009271993A true JP2009271993A (ja) | 2009-11-19 |
Family
ID=41438408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008121134A Pending JP2009271993A (ja) | 2008-05-07 | 2008-05-07 | 不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009271993A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012252557A (ja) * | 2011-06-03 | 2012-12-20 | Mega Chips Corp | メモリコントローラ |
-
2008
- 2008-05-07 JP JP2008121134A patent/JP2009271993A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012252557A (ja) * | 2011-06-03 | 2012-12-20 | Mega Chips Corp | メモリコントローラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101425957B1 (ko) | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 | |
JP4314057B2 (ja) | 不揮発性半導体記憶装置および電子装置 | |
US7424648B2 (en) | Nonvolatile memory system, nonvolatile memory device, data read method, and data read program | |
JP5492679B2 (ja) | 記憶装置およびメモリコントローラ | |
US20110238898A1 (en) | Nonvolatile memory controller and nonvolatile storage device | |
JP2010517168A (ja) | Nandメモリのためのプログラミング管理データ | |
JP2011048725A (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
JP2004139503A (ja) | 記憶装置及びその制御方法 | |
US6345333B1 (en) | Method and apparatus for reverse rewriting | |
JP5592478B2 (ja) | 不揮発性記憶装置及びメモリコントローラ | |
JP4866107B2 (ja) | 不揮発性記憶装置及びその書き込み判定方法 | |
US20090292863A1 (en) | Memory system with a semiconductor memory device | |
US20100174951A1 (en) | Semiconductor memory device, host device and semiconductor memory system | |
TWI473103B (zh) | 快閃記憶體儲存裝置及其不良儲存區域的判定方法 | |
US6680870B2 (en) | Memory device, data processing method and data processing program | |
TWI321323B (en) | Semiconductor memory system | |
US20100005239A1 (en) | Methods and apparatus for copying data | |
JP4254932B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US20170090768A1 (en) | Storage device that performs error-rate-based data backup | |
US8065495B2 (en) | Apparatus, method and computer program for processing information | |
JP2009271993A (ja) | 不揮発性半導体記憶装置およびそのアクセス方法、プログラム、並びに電子機器 | |
US7904669B2 (en) | Information processing device, image pickup device, information processing method and computer program | |
JP2005078378A (ja) | データ記憶装置及び不揮発性メモリに対するデータ書き込み方法 | |
JP4544167B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP2006285976A (ja) | 不揮発性記憶システム、不揮発性記憶装置、データ読出方法及び読出プログラム |