JPWO2007119267A1 - フラッシュメモリ用のメモリコントローラ - Google Patents

フラッシュメモリ用のメモリコントローラ Download PDF

Info

Publication number
JPWO2007119267A1
JPWO2007119267A1 JP2007509790A JP2007509790A JPWO2007119267A1 JP WO2007119267 A1 JPWO2007119267 A1 JP WO2007119267A1 JP 2007509790 A JP2007509790 A JP 2007509790A JP 2007509790 A JP2007509790 A JP 2007509790A JP WO2007119267 A1 JPWO2007119267 A1 JP WO2007119267A1
Authority
JP
Japan
Prior art keywords
page
data
segment
last valid
area
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.)
Granted
Application number
JP2007509790A
Other languages
English (en)
Other versions
JP4524309B2 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2007119267A1 publication Critical patent/JPWO2007119267A1/ja
Application granted granted Critical
Publication of JP4524309B2 publication Critical patent/JP4524309B2/ja
Expired - Fee Related 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

物理ブロック(201)の先頭ページから順に、データ領域(202)にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを冗長領域(203)に書き込む。この物理ブロック(201)の書き込み情報を作成する際に、各ページの冗長領域(203)を二分探索することで最終有効ページを仮特定したうえ、当該仮特定された最終有効ページとその隣接ページとの全領域(データ領域及び冗長領域)の内容を調べることで、最終有効ページの特定と電断に起因したエラーページの有無判定とを実施する。

Description

本発明は、不揮発性半導体メモリのアクセス制御技術に関し、特に順次書き込み制約を持つフラッシュメモリへのアクセスを制御するためのメモリコントローラに関するものである。
不揮発性半導体メモリが市場規模を拡大している。フラッシュメモリは、フローティングゲートトランジスタを利用してデータの不揮発性を実現した半導体メモリである。
ある従来技術に係るフラッシュメモリでは、複数ページからなる物理ブロック単位で消去が行われ、かつデータの読み出し(リード)及び書き込み(ライト)がページ単位で行われる。しかも、ランダムなページ書き込み要求を受信しても、物理ブロックの消去済みの全ページのうち先頭ページから順にデータが書き込まれるように制御される。このようなフラッシュメモリへの順次書き込み制約付きアクセスは、論理(仮想)ページから物理ページへのマッピングに従って制御される。各ページは、データを格納するデータ領域と、データ管理情報を格納する冗長領域とを有する。各ページの冗長領域には、そのページのデータ領域に書き込まれたデータに対応する論理ページ番号(アドレス)がデータ管理情報として格納される(特許文献1参照)。
他の従来技術によれば、順次書き込み制約を持つフラッシュメモリの1つの物理ブロック内のページの書き換え又は追記が要求されたとき、新たなページデータを消去済みの新物理ブロックの先頭ページから順に書き込んだ後、元の物理ブロックの非更新ページのデータを新物理ブロックの残りのページへ転送する。論理ページ番号と物理ページ番号との差であるページオフセットは、フラッシュメモリの冗長領域に格納される。各ページの冗長領域中のデータ管理情報は、その所属する物理ページに対応する論理アドレスと、そのページが空きページか否かを示すフラグと、そのページに書き込まれたデータの有効/無効を示すフラグと、そのデータのエラー検出のための情報とを含む。論理ブロックアドレスと物理ブロックアドレスとの対応関係は、アドレス変換テーブルにより管理される(特許文献2参照)。
国際公開第2003/030180号パンフレット 国際公開第2004/021191号パンフレット
フラッシュメモリにデータを書き込んでいる(プログラムしている)最中に電源オフ(電断)が発生した場合、書き込み途中のページのデータが破壊される。順次書き込み制約を持つフラッシュメモリのアクセス管理には、電断に起因したエラーページの有無に関する情報とともに、物理ブロックの最終有効ページのアドレスが必要である。最終有効ページとは、当該物理ブロック内で最後に書かれた、書き込み有りかつ訂正不能エラー無しのページをいう。
物理ブロックの最終有効ページのアドレスを取得し、かつ訂正不能エラーの有無を判定するには、当該物理ブロック内を探索する必要がある。この場合に先頭ページから順に1ページ毎にデータ領域と冗長領域とを読み出して調べることとすると、探索に長い時間を要してしまう。1つの物理ブロックを構成するページの数が増えつつある昨今では、探索の長時間化が顕著になってきている。
本発明の目的は、順次書き込み制約を持つフラッシュメモリへのアクセスを制御するためのメモリコントローラにおいて、最終有効ページの特定と電断に起因したエラーページの有無判定とを高速かつ正確に実施できるようにすることにある。
上記目的を達成するため、本発明では、各ページの冗長領域を二分探索(binary search)することで最終有効ページを仮特定したうえ、当該仮特定された最終有効ページとその隣接ページとの全領域(データ領域及び冗長領域)の内容を調べることで、最終有効ページの特定と電断に起因したエラーページの有無判定とを実現することとした。
具体的に説明すると、本発明は、複数のページからなる物理ブロックを有しかつ各ページがデータを格納するデータ領域とデータ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御するためのメモリコントローラにおいて、物理ブロックの消去済みの全ページのうち先頭ページから順にデータ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と当該データが書き込み済みであることを示すステータス情報とをデータ管理情報として冗長領域に書き込むページ書き込み実行部と、各ページの冗長領域中のステータス情報を二分探索しながら読み出して最終有効ページを仮特定する二分探索実行部と、この二分探索実行部により仮特定された最終有効ページと当該仮特定された最終有効ページに隣接するページとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの有無とデータ領域への書き込みの有無とに関するチェックの結果に応じて最終有効ページの特定とページ書き込み実行部の動作途中の電源オフに起因したエラーページの有無判定とを行う最終有効データ特定実行部とを備えた構成を採用したものである。
複数の物理ブロックからなる物理ユニットを有しかつこれら複数の物理ブロックの各々の所定数のページからなるセグメントを書き込み単位とするフラッシュメモリの場合には、物理ユニットの消去済みの全セグメントのうち先頭セグメントから順にデータ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と当該データが書き込み済みであることを示すステータス情報とをデータ管理情報として冗長領域に書き込むページ書き込み実行部と、各セグメントの先頭ページの冗長領域中のステータス情報を二分探索しながら読み出して最終有効セグメントを仮特定する二分探索実行部と、この二分探索実行部により仮特定された最終有効セグメントに属する全ページと当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのセグメントにおける訂正不能エラーの有無とデータ領域への書き込みの有無とに関するチェックの結果に応じて最終有効セグメントの特定とページ書き込み実行部の動作途中の電源オフに起因したエラーセグメントの有無判定とを行う最終有効データ特定実行部とを備えることとする。
本発明によれば、ページ単位の書き込みを採用するフラッシュメモリの場合には最終有効ページの特定と電断に起因したエラーページの有無判定とを、またセグメント単位の書き込みを採用するフラッシュメモリの場合には最終有効セグメントの特定と電断に起因したエラーセグメントの有無判定とをいずれも高速かつ正確に実施できる。
図1は、本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカードを含むシステムの構成例を示すブロック図である。 図2は、図1中のフラッシュメモリの内部構成例を示す概念図である。 図3は、図2の構成を採用した場合の図1中の二分探索実行部の動作を示すフローチャート図である。 図4は、図2の構成を採用した場合の図1中の最終有効データ特定実行部の動作を示すフローチャート図である。 図5は、図3の変形例に係るフローチャート図である。 図6は、図1中のフラッシュメモリの他の内部構成例を示す概念図である。 図7は、図6の構成を採用した場合の図1中の二分探索実行部の動作を示すフローチャート図である。 図8は、図6の構成を採用した場合の図1中の最終有効データ特定実行部の動作を示すフローチャート図である。
符号の説明
101 メモリカード
102 ホスト
103 メモリコントローラ
104 フラッシュメモリ
105 入出力部
106 RAM制御部
107 転送RAM
108 テーブルRAM
109 CPU
110 フラッシュ制御部
111 ECC回路
112 ブロック消去実行部
113 ページ書き込み実行部
114 二分探索実行部
115 最終有効データ特定実行部
201 物理ブロック
202 データ領域
203 冗長領域
601 物理ユニット
以下、本発明の実施の形態について、添付図面を参照して説明する。
図1は、本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカードを含むシステムの構成例を示している。図1のシステムは、不揮発性記憶装置の1つであるメモリカード101と、このメモリカード101へのアクセスを要求するホスト102とを備えた不揮発性記憶システムである。ホスト102は、携帯電話機、デジタルスチルカメラ、パーソナルコンピュータ、携帯デジタル音楽プレーヤ等である。ホスト102の記憶メディアとして使われるものであれば、メモリカード101のようなカード形態の不揮発性記憶装置に限らない。
ここでは、ホスト102がメモリカード101の挿入スロットを持つ携帯電話機であるものとする。メモリカード101はホスト102に設けられたスロットに装着されることにより、ホスト102と通信を行う。メモリカード101とホスト102との通信は、ホスト102をマスタとし、メモリカード101をスレーブとするマスタスレーブ方式の通信である。
メモリカード101は、メモリコントローラ103と、このメモリコントローラ103によりアクセスが制御されるフラッシュメモリ104とを有する。フラッシュメモリ104は、例えば前述の順次書き込み制約を持つNAND型のフラッシュメモリであって、1つのメモリセルが0、1の2つの値のいずれかを持つ2値フラッシュメモリであっても、また1つのメモリセルが00、01、10、11の4つの値のいずれかを持つ多値フラッシュメモリであってもよい。メモリコントローラ103とフラッシュメモリ104とは、各々別個のLSIチップとして構成されても、また1個に統合されたLSIチップとして構成されてもよい。
メモリコントローラ103は、入出力部105と、RAM(random access memory)制御部106と、転送RAM107と、テーブルRAM108と、CPU(central processing unit)109と、フラッシュ制御部110と、ECC(error correcting code:エラー訂正符号)回路111とを有する。
入出力部105は、ホスト102から送られてきたコマンド信号やデータ信号を受信し、またホスト102に対してレスポンス信号やデータ信号を送信する。ホスト102からデータ信号を受信した場合には、このデータ信号を一時記憶させるべく転送RAM107に転送し、かつCPU109に割り込み信号を出力する。ホスト102へデータを送信する場合には、転送RAM107のデータをホスト102へ出力する。
RAM制御部106は、CPU109の設定に従い、アクセス可能なRAMの設定を転送RAM107とテーブルRAM108とで切り換える。RAM制御部106の設定に応じて、CPU109及びフラッシュ制御部110は、転送RAM107及びテーブルRAM108のいずれにもアクセスすることができる。また入出力部105は、転送RAM107にアクセスすることができる。
転送RAM107は、ホスト102から転送されたデータや、フラッシュ制御部110がフラッシュメモリ104から読み出したデータを一時記憶する。一方、テーブルRAM108は、フラッシュメモリ104の書き込み情報を記憶する。書き込み情報とは、物理ブロックの使用状況(書き込み有りブロックか未使用ブロックか)、論理アドレスと物理アドレスとの対応関係を示すアドレス変換テーブル、書き込み途中の物理ブロックの最終有効ページのアドレス等の情報をいう。これらのテーブルRAM108の情報は、メモリカード101の電源投入後のデータのリード/ライトを行う前の初期化期間中にフラッシュ制御部110がフラッシュメモリ104にアクセスして作成され、初期化後にホスト102からのデータを受信したり、あるいは消去命令を受信したりした時に更新される。なお、物理ブロックが未使用ブロックか否かの情報は、例えば物理ブロックの先頭ページを読み出して書き込み有り/無しを判定すれば、簡単に作成することができる。
CPU109は、RAM制御部106を経由して転送RAM107及びテーブルRAM108のデータをリード/ライトする。ホスト102から一定期間コマンド信号やデータ信号を受信しない場合には、CPU109内の割り込み制御部以外のブロックが動作を停止し、入出力部105からの割り込み信号により動作を再開する省電力機能をサポートしている。CPU109がフラッシュメモリ104にアクセスする場合には、フラッシュ制御部110に所定の動作命令を送って当該アクセスを実現する。動作命令には、物理ブロックの消去命令、物理ブロック内のページへの書き込み命令、冗長領域を二分探索しながら読み出す命令、ページ全領域の読み出しを行って最終有効ページの特定と電断発生有無の判定とを実行する命令等がある。
フラッシュ制御部110は、ブロック消去実行部112と、ページ書き込み実行部113と、二分探索実行部114と、最終有効データ特定実行部115とを有する。CPU109から命令を受信し、各実行部112〜115が動作することにより、フラッシュメモリ104に対してリード/ライト/消去等のアクセスを行う。ブロック消去実行部112は、フラッシュメモリ104の指定された物理ブロックのデータを消去する。ページ書き込み実行部113は、転送RAM107のデータを読み出し、エラー訂正のためのシンドロームを追加して、物理ブロックの所定のページに書き込む。このとき、書き込みページの冗長領域にエラー訂正のためのシンドロームを書き込むとともに、同冗長領域中の書き込みステータス情報に該当するビットに書き込み済みのマーク“Low”を入れる。二分探索実行部114は、初期化時のテーブルRAM108のデータ作成時において、対象物理ブロックの冗長領域を二分探索しながら読み出し、最終有効ページを仮特定する(詳細は後述する)。なお、二分探索実行部114は冗長領域中の書き込みステータス情報のみを読み出してもよい。最終有効データ特定実行部115は、物理ブロックの所定のページの全領域の内容を読み出し、ECC回路111を経由させた後、データを転送RAM107に格納する。そして、訂正不能エラーの発生有無から、最終有効ページの特定と電断発生有無の判定とを行う(詳細は後述する)。
ECC回路111は、フラッシュメモリ104への書き込みデータに対しては、エラー訂正のためのシンドロームを生成する。一方、フラッシュメモリ104からの読み出しデータに対してはエラーの検出及び訂正を行い、訂正不能エラーを検出した場合には訂正不能エラー信号を返す。あるページのデータを読み出した時にECC回路111にて訂正不能エラーを検出すれば、当該ページが電断発生のエラーページであることが判明する。
図2は、図1中のフラッシュメモリ104の内部構成例を示している。図1中のフラッシュメモリ104は複数の物理ブロックからなるものであるが、図2には1つの物理ブロック201のみが説明のために示されている。図2に示した物理ブロック201は、ページ0からページ31までの32物理ページで構成される。各ページは、例えば、512バイトのデータ領域(DA)202と、16バイトの冗長領域(RA)203とで構成される。データ領域202は、主にホスト102から転送されたデータの記憶に使用される。冗長領域203は、ECCシンドローム、ページオフセット、書き込み済みを示すステータス情報等のデータ管理情報の記憶に使用される。
図2の物理ブロック201は、必ず先頭ページから順にデータを書き込むことが要求されるものである。図2中のハッチングは、ページ0からページ20までがデータ書き込み済みであることを示している。なお、各々のページに対して2度書き(例えばデータ領域202に書き込んだ後に、別のタイミングで冗長領域203に書き込むといった書き込み方法)は行わないものとする。
図3は、図2の構成を採用した場合の図1中の二分探索実行部114の動作を示している。ここでは、最終有効ページを検索する物理ブロック201は少なくともページ0への書き込みが必ずあるものとする。
図3によれば、まずはステップ301で読み出し回数を表す変数nの値を1に設定し、ステップ302において読み出しページアドレスを表す変数Mの値を「(物理ブロック201の全ページ数)/2」で決定する。次にステップ303でページMの冗長領域203を読み出す。このようにして読み出したページMの冗長領域203に格納されたデータ管理情報中の書き込みステータス情報をもとに、書き込み有り/無しの判定を行うことができる。書き込みステータス情報が“Low”のビットであれば書き込み有りであり、“High”であれば書き込み無しである。
次にステップ304で変数nを1だけインクリメントし、ステップ305で「(物理ブロック201の全ページ数)≧2」かどうかを判定する。このステップ305は、ステップ303から後述のステップ307又はステップ308までのループ動作の終了条件にあたる。
ステップ305で「Yes」の場合には、ステップ306に進む。ステップ306においてステップ303で読み出したステータス情報が書き込み有りを表す場合にはステップ307に進む。ステップ307では、変数Mを「(物理ブロック201の全ページ数)/2」だけ増加させる。一方、ステップ306においてステップ303で読み出したステータス情報が書き込み無しを表す場合にはステップ308に進む。ステップ308では、変数Mを「(物理ブロック201の全ページ数)/2」だけ減少させる。ステップ307又はステップ308の次は、ステップ303に戻って再度処理を実行する。
ステップ305で「No」の場合にはステップ309に進む。ステップ309において、ステップ303で読み出したステータス情報が書き込み有りを表す場合にはステップ310に進む。ステップ310では、ページMが最終有効ページであると仮特定する。一方、ステップ309において、ステップ303で読み出したステータス情報が書き込み無しを表す場合にはステップ311に進む。ステップ311では、ページ(M−1)が最終有効ページであると仮特定する。
図2に示した物理ブロック201の例では、(1)ページ16、(2)ページ24、(3)ページ20、(4)ページ22、(5)ページ21の順に各ページの冗長領域203が読み出され、ページ20が最終有効ページであると仮特定される。
図4は、図2の構成を採用した場合の図1中の最終有効データ特定実行部115の動作を示している。なお、二分探索実行部114による最終有効ページの仮特定が既に終わっているものとする。
図4によれば、まずステップ401において、二分探索実行部114が仮特定した最終有効ページをページNとする。次にステップ402において、ページNの全領域(データ領域202及び冗長領域203)の内容を読み出して、ECC回路111を経由後、転送RAM107に一時記憶させる。次に、ステップ403でページNの訂正不能エラーの有無を判定する。ページNの訂正不能エラー無しの場合にはステップ404に進む。ステップ404ではページ(N+1)の全領域を読み出す。これは、ページ(N+1)がエラーページであるか否かを判断するために実行する。ステップ405ではページ(N+1)のデータ領域202が消去済み(書き込み無し)か否かを判定する。ページ(N+1)が消去済みの場合にはステップ406に進む。このケースは当該物理ブロック201に電断発生に起因したエラーページが無いケースである。ステップ406では、ページNを最終有効ページであると特定し、かつ当該物理ブロック201に電断発生無しと判定する。
ステップ405でページ(N+1)のデータ領域202への書き込み有りの場合にはステップ407に進む。ページ(N+1)は冗長領域203が消去済みであるのに対してデータ領域202への書き込みがあるので、電断による異常状態と判定することができる。ステップ407でページNを最終有効ページであると特定し、かつページ(N+1)の書き込み中の電断発生有りと判定する。
ステップ403でページNの訂正不能エラー有りの場合にはステップ408へ進む。ページNは冗長領域203が消去済みであるのに対してデータ領域202への書き込みがあるので、電断による異常状態と判定することができる。ただし、ページ(N−1)にも訂正不能エラーが存在するか否かを判定する必要がある。そこで、ステップ408ではページ(N−1)の全領域を読み出す。次にステップ409でページ(N−1)の訂正不能エラー無しの場合にはステップ410に進む。ステップ410では、ページ(N−1)を最終有効ページであると特定し、かつページNの書き込み中の電断発生有りと判定する。
ステップ409でページ(N−1)の訂正不能エラー有りの場合にはステップ411に進む。これは、ページN及びページ(N−1)の両ページにおいて訂正不能エラーが発生したケースである。このケースは電断1回では生じない異常状態のため、当該物理ブロック201には有効なページが全く無いものとして処理を終了する。
図2に示した物理ブロック201には電断発生に起因したエラーページが全く無いものとすると、ページ20が最終有効ページであると仮特定された後、(i)ページ20、(ii)ページ21の順に各々の全領域(データ領域202及び冗長領域203)が読み出され、ページ20が最終有効ページであると特定され、かつ当該物理ブロック201に電断発生無しと判定される。
なお、最終有効ページが特定できた後は、CPU109がテーブルRAM108の情報を更新する。ただし、電断が発生したページ以降に書き込みを行うと、データ化けの可能性があり、またデータの書き込み管理が正しくできない。したがって、電断による訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ブロックにコピーした後に、テーブルRAM108の情報を更新する。
図5は、図3の変形例に係る二分探索実行部114の動作を示している。図5によれば、まずはステップ501で物理ブロック201の先頭ページ(ページ0)の冗長領域203を読み出す。次にステップ502で、ステップ501で読み出したステータス情報をもとに、ページ0が消去済み(書き込み無し)かどうかを判定する。ステップ502で消去済みと判定された場合には、ステップ503に進み、ページ0が最終有効ページであると仮特定して終了する。このようにしてページ0が最終有効ページであると早期に仮特定した後は、最終有効データ特定実行部115が図4に示すフローチャートどおりの動作をする。また、ステップ502で書き込み有りと判定された場合には、二分探索実行部114が図3のステップ301以下の動作をする。
図5の処理によれば、物理ブロック201の状態として書き込み途中又は消去済みのどちらの可能性もあり、かつ消去済みの可能性が比較的高い場合においても、最終有効ページの特定と電断に起因したエラーページの有無判定とを高速かつ正確に実施することができる。
図6は、図1中のフラッシュメモリ104の他の内部構成例を示している。図6に示した例では、4つの物理ブロックA,B,C,Dが1つの物理ユニット601を構成する。しかも、4つの物理ブロックA,B,C,Dの各々の8ページからなるセグメントを単位として書き込みが実行されるようになっている。4つの物理ブロックA,B,C,Dは、各々128ページで構成される。つまり、図6の物理ユニット601は、セグメント0からセグメント15までの16セグメントで構成される。各ページは、図2の場合と同様にデータ領域(DA)と、冗長領域(RA)とで構成される。
図6の物理ユニット601は、必ず先頭セグメントから順にデータを書き込むことが要求されるものである。図6中のハッチングは、セグメント0からセグメント9までがデータ書き込み済みであることを示している。
図1中のページ書き込み実行部113は、次のように動作する。すなわち、物理ユニット601に対する書き込みは、ホスト102からの転送バイト数にかかわらず、必ず8ページからなるセグメント単位で行う。各セグメントの書き込みステータス情報は、当該セグメント中の少なくとも先頭ページの冗長領域に記憶される。
具体的には、ホスト102からデータが転送されてきた場合、まず物理ブロックAのページ0にデータを書き込む。その後は物理ブロックBのページ0、物理ブロックCのページ0、物理ブロックDのページ0の順にデータを書き込む。各物理ブロックのページ0が書き込み済みになったら、次は物理ブロックAのページ1に書き込みを行い、その後は物理ブロックBのページ1、物理ブロックCのページ1、物理ブロックDのページ1の順にデータを書き込む。もし物理ブロックBのページ1にデータを書き込んだ後にホスト102からの転送データが停止した場合には、残りのページに全ビットが“1”のデータや、元データをコピーして書き込む。
次に、図6の物理ユニット601における最終有効セグメントの特定と、電断に起因したエラーセグメントの有無判定とを説明する。ここに、最終有効セグメントとは、当該物理ユニット601内で最後に書かれた、書き込み有りかつ訂正不能エラー無しのセグメントをいう。
図7は、図6の構成を採用した場合の図1中の二分探索実行部114の動作を示している。ここでは、最終有効セグメントを検索する物理ユニット601は少なくともセグメント0への書き込みが必ずあるものとする。
図7によれば、まずはステップ701で読み出し回数を表す変数nの値を1に設定し、ステップ702において読み出しセグメントアドレスを表す変数Lの値を「(物理ユニット601の全セグメント数)/2」で決定する。次にステップ703でセグメントLの先頭ページの冗長領域を読み出す。このようにして読み出したセグメントLの先頭ページの冗長領域に格納されたデータ管理情報中の書き込みステータス情報をもとに、書き込み有り/無しの判定を行うことができる。書き込みステータス情報が“Low”のビットであれば書き込み有りであり、“High”であれば書き込み無しである。
次にステップ704で変数nを1だけインクリメントし、ステップ705で「(物理ユニット601の全セグメント数)≧2」かどうかを判定する。このステップ705は、ステップ703から後述のステップ707又はステップ708までのループ動作の終了条件にあたる。
ステップ705で「Yes」の場合には、ステップ706に進む。ステップ706においてステップ703で読み出したステータス情報が書き込み有りを表す場合にはステップ707に進む。ステップ707では、変数Lを「(物理ユニット601の全セグメント数)/2」だけ増加させる。一方、ステップ706においてステップ703で読み出したステータス情報が書き込み無しを表す場合にはステップ708に進む。ステップ708では、変数Lを「(物理ユニット601の全セグメント数)/2」だけ減少させる。ステップ707又はステップ708の次は、ステップ703に戻って再度処理を実行する。
ステップ705で「No」の場合にはステップ709に進む。ステップ709において、ステップ703で読み出したステータス情報が書き込み有りを表す場合にはステップ710に進む。ステップ710では、セグメントLが最終有効セグメントであると仮特定する。一方、ステップ709において、ステップ703で読み出したステータス情報が書き込み無しを表す場合にはステップ711に進む。ステップ711では、セグメント(L−1)が最終有効セグメントであると仮特定する。
図6に示した物理ユニット601の例では、(1)セグメント8、(2)セグメント12、(3)セグメント10、(4)セグメント9の順に各セグメントの先頭ページの冗長領域が読み出され、セグメント9が最終有効セグメントであると仮特定される。
図8は、図6の構成を採用した場合の図1中の最終有効データ特定実行部115の動作を示している。なお、二分探索実行部114による最終有効セグメントの仮特定が既に終わっているものとする。
図8によれば、まずステップ801において、二分探索実行部114が仮特定した最終有効セグメントをセグメントNとする。次にステップ802において、セグメントNの全ページの全領域(データ領域及び冗長領域)の内容を順に読み出して、ECC回路111を経由後、転送RAM107に一時記憶させる。次に、ステップ803でセグメントNの訂正不能エラーの有無を判定する。セグメントNの全ページにおいて訂正不能エラー無しの場合にはステップ804に進む。ステップ804ではセグメント(N+1)の全ページの全領域を読み出す。これは、セグメント(N+1)がエラーセグメントであるか否かを判断するために実行する。ステップ805ではセグメント(N+1)の全ページのデータ領域が消去済み(書き込み無し)か否かを判定する。セグメント(N+1)が消去済みの場合にはステップ806に進む。このケースは当該物理ユニット601に電断発生に起因したエラーセグメントが無いケースである。ステップ806では、セグメントNを最終有効セグメントであると特定し、かつ当該物理ユニット601に電断発生無しと判定する。
ステップ805でセグメント(N+1)のデータ領域への書き込み有りの場合にはステップ807に進む。セグメント(N+1)は冗長領域が消去済みであるのに対してデータ領域への書き込みがあるので、電断による異常状態と判定することができる。ステップ807でセグメントNを最終有効セグメントであると特定し、かつセグメント(N+1)の書き込み中の電断発生有りと判定する。
ステップ803でセグメントNの訂正不能エラー有りの場合にはステップ808へ進む。セグメントNは冗長領域が消去済みであるのに対してデータ領域への書き込みがあるので、電断による異常状態と判定することができる。ただし、セグメント(N−1)にも訂正不能エラーが存在するか否かを判定する必要がある。そこで、ステップ808ではセグメント(N−1)の全ページの全領域を読み出す。次にステップ809でセグメント(N−1)の訂正不能エラー無しの場合にはステップ810に進む。ステップ810では、セグメント(N−1)を最終有効セグメントであると特定し、かつセグメントNの書き込み中の電断発生有りと判定する。
ステップ809でセグメント(N−1)の訂正不能エラー発生有りの場合にはステップ811に進む。これは、セグメントN及びセグメント(N−1)の両セグメントにおいて訂正不能エラーが発生したケースである。このケースは電断1回では生じない異常状態のため、当該物理ユニット601には有効なセグメントが全く無いものとして処理を終了する。
図6に示した物理ユニット601には電断発生に起因したエラーセグメントが全く無いものとすると、セグメント9が最終有効セグメントであると仮特定された後、(i)セグメント9、(ii)セグメント10の順に各々の全ページの全領域(データ領域及び冗長領域)が読み出され、セグメント9が最終有効セグメントであると特定され、かつ当該物理ユニット601に電断発生無しと判定される。
なお、最終有効セグメントが特定できた後は、CPU109がテーブルRAM108の情報を更新する。ただし、電断が発生したセグメント以降に書き込みを行うと、データ化けの可能性があり、またデータの書き込み管理が正しくできない。したがって、電断による訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ユニットにコピーした後に、テーブルRAM108の情報を更新する。
以上説明してきたとおり、本発明に係るメモリコントローラは、最終有効ページ又は最終有効セグメントの特定と電断に起因したエラーページ又はエラーセグメントの有無判定とを高速かつ正確に実施でき、順次書き込み制約を持つフラッシュメモリへのアクセス制御技術として有用である。
本発明は、不揮発性半導体メモリのアクセス制御技術に関し、特に順次書き込み制約を持つフラッシュメモリへのアクセスを制御するためのメモリコントローラに関するものである。
不揮発性半導体メモリが市場規模を拡大している。フラッシュメモリは、フローティングゲートトランジスタを利用してデータの不揮発性を実現した半導体メモリである。
ある従来技術に係るフラッシュメモリでは、複数ページからなる物理ブロック単位で消去が行われ、かつデータの読み出し(リード)及び書き込み(ライト)がページ単位で行われる。しかも、ランダムなページ書き込み要求を受信しても、物理ブロックの消去済みの全ページのうち先頭ページから順にデータが書き込まれるように制御される。このようなフラッシュメモリへの順次書き込み制約付きアクセスは、論理(仮想)ページから物理ページへのマッピングに従って制御される。各ページは、データを格納するデータ領域と、データ管理情報を格納する冗長領域とを有する。各ページの冗長領域には、そのページのデータ領域に書き込まれたデータに対応する論理ページ番号(アドレス)がデータ管理情報として格納される(特許文献1参照)。
他の従来技術によれば、順次書き込み制約を持つフラッシュメモリの1つの物理ブロック内のページの書き換え又は追記が要求されたとき、新たなページデータを消去済みの新物理ブロックの先頭ページから順に書き込んだ後、元の物理ブロックの非更新ページのデータを新物理ブロックの残りのページへ転送する。論理ページ番号と物理ページ番号との差であるページオフセットは、フラッシュメモリの冗長領域に格納される。各ページの冗長領域中のデータ管理情報は、その所属する物理ページに対応する論理アドレスと、そのページが空きページか否かを示すフラグと、そのページに書き込まれたデータの有効/無効を示すフラグと、そのデータのエラー検出のための情報とを含む。論理ブロックアドレスと物理ブロックアドレスとの対応関係は、アドレス変換テーブルにより管理される(特許文献2参照)。
国際公開第2003/030180号パンフレット 国際公開第2004/021191号パンフレット
フラッシュメモリにデータを書き込んでいる(プログラムしている)最中に電源オフ(電断)が発生した場合、書き込み途中のページのデータが破壊される。順次書き込み制約を持つフラッシュメモリのアクセス管理には、電断に起因したエラーページの有無に関する情報とともに、物理ブロックの最終有効ページのアドレスが必要である。最終有効ページとは、当該物理ブロック内で最後に書かれた、書き込み有りかつ訂正不能エラー無しのページをいう。
物理ブロックの最終有効ページのアドレスを取得し、かつ訂正不能エラーの有無を判定するには、当該物理ブロック内を探索する必要がある。この場合に先頭ページから順に1ページ毎にデータ領域と冗長領域とを読み出して調べることとすると、探索に長い時間を要してしまう。1つの物理ブロックを構成するページの数が増えつつある昨今では、探索の長時間化が顕著になってきている。
本発明の目的は、順次書き込み制約を持つフラッシュメモリへのアクセスを制御するためのメモリコントローラにおいて、最終有効ページの特定と電断に起因したエラーページの有無判定とを高速かつ正確に実施できるようにすることにある。
上記目的を達成するため、本発明では、各ページの冗長領域を二分探索(binary search)することで最終有効ページを仮特定したうえ、当該仮特定された最終有効ページとその隣接ページとの全領域(データ領域及び冗長領域)の内容を調べることで、最終有効ページの特定と電断に起因したエラーページの有無判定とを実現することとした。
具体的に説明すると、本発明は、複数のページからなる物理ブロックを有しかつ各ページがデータを格納するデータ領域とデータ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御するためのメモリコントローラにおいて、物理ブロックの消去済みの全ページのうち先頭ページから順にデータ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と当該データが書き込み済みであることを示すステータス情報とをデータ管理情報として冗長領域に書き込むページ書き込み実行部と、各ページの冗長領域中のステータス情報を二分探索しながら読み出して最終有効ページを仮特定する二分探索実行部と、この二分探索実行部により仮特定された最終有効ページと当該仮特定された最終有効ページに隣接するページとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの有無とデータ領域への書き込みの有無とに関するチェックの結果に応じて最終有効ページの特定とページ書き込み実行部の動作途中の電源オフに起因したエラーページの有無判定とを行う最終有効データ特定実行部とを備えた構成を採用したものである。
複数の物理ブロックからなる物理ユニットを有しかつこれら複数の物理ブロックの各々の所定数のページからなるセグメントを書き込み単位とするフラッシュメモリの場合には、物理ユニットの消去済みの全セグメントのうち先頭セグメントから順にデータ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と当該データが書き込み済みであることを示すステータス情報とをデータ管理情報として冗長領域に書き込むページ書き込み実行部と、各セグメントの先頭ページの冗長領域中のステータス情報を二分探索しながら読み出して最終有効セグメントを仮特定する二分探索実行部と、この二分探索実行部により仮特定された最終有効セグメントに属する全ページと当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとから各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのセグメントにおける訂正不能エラーの有無とデータ領域への書き込みの有無とに関するチェックの結果に応じて最終有効セグメントの特定とページ書き込み実行部の動作途中の電源オフに起因したエラーセグメントの有無判定とを行う最終有効データ特定実行部とを備えることとする。
本発明によれば、ページ単位の書き込みを採用するフラッシュメモリの場合には最終有効ページの特定と電断に起因したエラーページの有無判定とを、またセグメント単位の書き込みを採用するフラッシュメモリの場合には最終有効セグメントの特定と電断に起因したエラーセグメントの有無判定とをいずれも高速かつ正確に実施できる。
以下、本発明の実施の形態について、添付図面を参照して説明する。
図1は、本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカードを含むシステムの構成例を示している。図1のシステムは、不揮発性記憶装置の1つであるメモリカード101と、このメモリカード101へのアクセスを要求するホスト102とを備えた不揮発性記憶システムである。ホスト102は、携帯電話機、デジタルスチルカメラ、パーソナルコンピュータ、携帯デジタル音楽プレーヤ等である。ホスト102の記憶メディアとして使われるものであれば、メモリカード101のようなカード形態の不揮発性記憶装置に限らない。
ここでは、ホスト102がメモリカード101の挿入スロットを持つ携帯電話機であるものとする。メモリカード101はホスト102に設けられたスロットに装着されることにより、ホスト102と通信を行う。メモリカード101とホスト102との通信は、ホスト102をマスタとし、メモリカード101をスレーブとするマスタスレーブ方式の通信である。
メモリカード101は、メモリコントローラ103と、このメモリコントローラ103によりアクセスが制御されるフラッシュメモリ104とを有する。フラッシュメモリ104は、例えば前述の順次書き込み制約を持つNAND型のフラッシュメモリであって、1つのメモリセルが0、1の2つの値のいずれかを持つ2値フラッシュメモリであっても、また1つのメモリセルが00、01、10、11の4つの値のいずれかを持つ多値フラッシュメモリであってもよい。メモリコントローラ103とフラッシュメモリ104とは、各々別個のLSIチップとして構成されても、また1個に統合されたLSIチップとして構成されてもよい。
メモリコントローラ103は、入出力部105と、RAM(random access memory)制御部106と、転送RAM107と、テーブルRAM108と、CPU(central processing unit)109と、フラッシュ制御部110と、ECC(error correcting code:エラー訂正符号)回路111とを有する。
入出力部105は、ホスト102から送られてきたコマンド信号やデータ信号を受信し、またホスト102に対してレスポンス信号やデータ信号を送信する。ホスト102からデータ信号を受信した場合には、このデータ信号を一時記憶させるべく転送RAM107に転送し、かつCPU109に割り込み信号を出力する。ホスト102へデータを送信する場合には、転送RAM107のデータをホスト102へ出力する。
RAM制御部106は、CPU109の設定に従い、アクセス可能なRAMの設定を転送RAM107とテーブルRAM108とで切り換える。RAM制御部106の設定に応じて、CPU109及びフラッシュ制御部110は、転送RAM107及びテーブルRAM108のいずれにもアクセスすることができる。また入出力部105は、転送RAM107にアクセスすることができる。
転送RAM107は、ホスト102から転送されたデータや、フラッシュ制御部110がフラッシュメモリ104から読み出したデータを一時記憶する。一方、テーブルRAM108は、フラッシュメモリ104の書き込み情報を記憶する。書き込み情報とは、物理ブロックの使用状況(書き込み有りブロックか未使用ブロックか)、論理アドレスと物理アドレスとの対応関係を示すアドレス変換テーブル、書き込み途中の物理ブロックの最終有効ページのアドレス等の情報をいう。これらのテーブルRAM108の情報は、メモリカード101の電源投入後のデータのリード/ライトを行う前の初期化期間中にフラッシュ制御部110がフラッシュメモリ104にアクセスして作成され、初期化後にホスト102からのデータを受信したり、あるいは消去命令を受信したりした時に更新される。なお、物理ブロックが未使用ブロックか否かの情報は、例えば物理ブロックの先頭ページを読み出して書き込み有り/無しを判定すれば、簡単に作成することができる。
CPU109は、RAM制御部106を経由して転送RAM107及びテーブルRAM108のデータをリード/ライトする。ホスト102から一定期間コマンド信号やデータ信号を受信しない場合には、CPU109内の割り込み制御部以外のブロックが動作を停止し、入出力部105からの割り込み信号により動作を再開する省電力機能をサポートしている。CPU109がフラッシュメモリ104にアクセスする場合には、フラッシュ制御部110に所定の動作命令を送って当該アクセスを実現する。動作命令には、物理ブロックの消去命令、物理ブロック内のページへの書き込み命令、冗長領域を二分探索しながら読み出す命令、ページ全領域の読み出しを行って最終有効ページの特定と電断発生有無の判定とを実行する命令等がある。
フラッシュ制御部110は、ブロック消去実行部112と、ページ書き込み実行部113と、二分探索実行部114と、最終有効データ特定実行部115とを有する。CPU109から命令を受信し、各実行部112〜115が動作することにより、フラッシュメモリ104に対してリード/ライト/消去等のアクセスを行う。ブロック消去実行部112は、フラッシュメモリ104の指定された物理ブロックのデータを消去する。ページ書き込み実行部113は、転送RAM107のデータを読み出し、エラー訂正のためのシンドロームを追加して、物理ブロックの所定のページに書き込む。このとき、書き込みページの冗長領域にエラー訂正のためのシンドロームを書き込むとともに、同冗長領域中の書き込みステータス情報に該当するビットに書き込み済みのマーク“Low”を入れる。二分探索実行部114は、初期化時のテーブルRAM108のデータ作成時において、対象物理ブロックの冗長領域を二分探索しながら読み出し、最終有効ページを仮特定する(詳細は後述する)。なお、二分探索実行部114は冗長領域中の書き込みステータス情報のみを読み出してもよい。最終有効データ特定実行部115は、物理ブロックの所定のページの全領域の内容を読み出し、ECC回路111を経由させた後、データを転送RAM107に格納する。そして、訂正不能エラーの発生有無から、最終有効ページの特定と電断発生有無の判定とを行う(詳細は後述する)。
ECC回路111は、フラッシュメモリ104への書き込みデータに対しては、エラー訂正のためのシンドロームを生成する。一方、フラッシュメモリ104からの読み出しデータに対してはエラーの検出及び訂正を行い、訂正不能エラーを検出した場合には訂正不能エラー信号を返す。あるページのデータを読み出した時にECC回路111にて訂正不能エラーを検出すれば、当該ページが電断発生のエラーページであることが判明する。
図2は、図1中のフラッシュメモリ104の内部構成例を示している。図1中のフラッシュメモリ104は複数の物理ブロックからなるものであるが、図2には1つの物理ブロック201のみが説明のために示されている。図2に示した物理ブロック201は、ページ0からページ31までの32物理ページで構成される。各ページは、例えば、512バイトのデータ領域(DA)202と、16バイトの冗長領域(RA)203とで構成される。データ領域202は、主にホスト102から転送されたデータの記憶に使用される。冗長領域203は、ECCシンドローム、ページオフセット、書き込み済みを示すステータス情報等のデータ管理情報の記憶に使用される。
図2の物理ブロック201は、必ず先頭ページから順にデータを書き込むことが要求されるものである。図2中のハッチングは、ページ0からページ20までがデータ書き込み済みであることを示している。なお、各々のページに対して2度書き(例えばデータ領域202に書き込んだ後に、別のタイミングで冗長領域203に書き込むといった書き込み方法)は行わないものとする。
図3は、図2の構成を採用した場合の図1中の二分探索実行部114の動作を示している。ここでは、最終有効ページを検索する物理ブロック201は少なくともページ0への書き込みが必ずあるものとする。
図3によれば、まずはステップ301で読み出し回数を表す変数nの値を1に設定し、ステップ302において読み出しページアドレスを表す変数Mの値を「(物理ブロック201の全ページ数)/2」で決定する。次にステップ303でページMの冗長領域203を読み出す。このようにして読み出したページMの冗長領域203に格納されたデータ管理情報中の書き込みステータス情報をもとに、書き込み有り/無しの判定を行うことができる。書き込みステータス情報が“Low”のビットであれば書き込み有りであり、“High”であれば書き込み無しである。
次にステップ304で変数nを1だけインクリメントし、ステップ305で「(物理ブロック201の全ページ数)≧2」かどうかを判定する。このステップ305は、ステップ303から後述のステップ307又はステップ308までのループ動作の終了条件にあたる。
ステップ305で「Yes」の場合には、ステップ306に進む。ステップ306においてステップ303で読み出したステータス情報が書き込み有りを表す場合にはステップ307に進む。ステップ307では、変数Mを「(物理ブロック201の全ページ数)/2」だけ増加させる。一方、ステップ306においてステップ303で読み出したステータス情報が書き込み無しを表す場合にはステップ308に進む。ステップ308では、変数Mを「(物理ブロック201の全ページ数)/2」だけ減少させる。ステップ307又はステップ308の次は、ステップ303に戻って再度処理を実行する。
ステップ305で「No」の場合にはステップ309に進む。ステップ309において、ステップ303で読み出したステータス情報が書き込み有りを表す場合にはステップ310に進む。ステップ310では、ページMが最終有効ページであると仮特定する。一方、ステップ309において、ステップ303で読み出したステータス情報が書き込み無しを表す場合にはステップ311に進む。ステップ311では、ページ(M−1)が最終有効ページであると仮特定する。
図2に示した物理ブロック201の例では、(1)ページ16、(2)ページ24、(3)ページ20、(4)ページ22、(5)ページ21の順に各ページの冗長領域203が読み出され、ページ20が最終有効ページであると仮特定される。
図4は、図2の構成を採用した場合の図1中の最終有効データ特定実行部115の動作を示している。なお、二分探索実行部114による最終有効ページの仮特定が既に終わっているものとする。
図4によれば、まずステップ401において、二分探索実行部114が仮特定した最終有効ページをページNとする。次にステップ402において、ページNの全領域(データ領域202及び冗長領域203)の内容を読み出して、ECC回路111を経由後、転送RAM107に一時記憶させる。次に、ステップ403でページNの訂正不能エラーの有無を判定する。ページNの訂正不能エラー無しの場合にはステップ404に進む。ステップ404ではページ(N+1)の全領域を読み出す。これは、ページ(N+1)がエラーページであるか否かを判断するために実行する。ステップ405ではページ(N+1)のデータ領域202が消去済み(書き込み無し)か否かを判定する。ページ(N+1)が消去済みの場合にはステップ406に進む。このケースは当該物理ブロック201に電断発生に起因したエラーページが無いケースである。ステップ406では、ページNを最終有効ページであると特定し、かつ当該物理ブロック201に電断発生無しと判定する。
ステップ405でページ(N+1)のデータ領域202への書き込み有りの場合にはステップ407に進む。ページ(N+1)は冗長領域203が消去済みであるのに対してデータ領域202への書き込みがあるので、電断による異常状態と判定することができる。ステップ407でページNを最終有効ページであると特定し、かつページ(N+1)の書き込み中の電断発生有りと判定する。
ステップ403でページNの訂正不能エラー有りの場合にはステップ408へ進む。ページNは冗長領域203が消去済みであるのに対してデータ領域202への書き込みがあるので、電断による異常状態と判定することができる。ただし、ページ(N−1)にも訂正不能エラーが存在するか否かを判定する必要がある。そこで、ステップ408ではページ(N−1)の全領域を読み出す。次にステップ409でページ(N−1)の訂正不能エラー無しの場合にはステップ410に進む。ステップ410では、ページ(N−1)を最終有効ページであると特定し、かつページNの書き込み中の電断発生有りと判定する。
ステップ409でページ(N−1)の訂正不能エラー有りの場合にはステップ411に進む。これは、ページN及びページ(N−1)の両ページにおいて訂正不能エラーが発生したケースである。このケースは電断1回では生じない異常状態のため、当該物理ブロック201には有効なページが全く無いものとして処理を終了する。
図2に示した物理ブロック201には電断発生に起因したエラーページが全く無いものとすると、ページ20が最終有効ページであると仮特定された後、(i)ページ20、(ii)ページ21の順に各々の全領域(データ領域202及び冗長領域203)が読み出され、ページ20が最終有効ページであると特定され、かつ当該物理ブロック201に電断発生無しと判定される。
なお、最終有効ページが特定できた後は、CPU109がテーブルRAM108の情報を更新する。ただし、電断が発生したページ以降に書き込みを行うと、データ化けの可能性があり、またデータの書き込み管理が正しくできない。したがって、電断による訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ブロックにコピーした後に、テーブルRAM108の情報を更新する。
図5は、図3の変形例に係る二分探索実行部114の動作を示している。図5によれば、まずはステップ501で物理ブロック201の先頭ページ(ページ0)の冗長領域203を読み出す。次にステップ502で、ステップ501で読み出したステータス情報をもとに、ページ0が消去済み(書き込み無し)かどうかを判定する。ステップ502で消去済みと判定された場合には、ステップ503に進み、ページ0が最終有効ページであると仮特定して終了する。このようにしてページ0が最終有効ページであると早期に仮特定した後は、最終有効データ特定実行部115が図4に示すフローチャートどおりの動作をする。また、ステップ502で書き込み有りと判定された場合には、二分探索実行部114が図3のステップ301以下の動作をする。
図5の処理によれば、物理ブロック201の状態として書き込み途中又は消去済みのどちらの可能性もあり、かつ消去済みの可能性が比較的高い場合においても、最終有効ページの特定と電断に起因したエラーページの有無判定とを高速かつ正確に実施することができる。
図6は、図1中のフラッシュメモリ104の他の内部構成例を示している。図6に示した例では、4つの物理ブロックA,B,C,Dが1つの物理ユニット601を構成する。しかも、4つの物理ブロックA,B,C,Dの各々の8ページからなるセグメントを単位として書き込みが実行されるようになっている。4つの物理ブロックA,B,C,Dは、各々128ページで構成される。つまり、図6の物理ユニット601は、セグメント0からセグメント15までの16セグメントで構成される。各ページは、図2の場合と同様にデータ領域(DA)と、冗長領域(RA)とで構成される。
図6の物理ユニット601は、必ず先頭セグメントから順にデータを書き込むことが要求されるものである。図6中のハッチングは、セグメント0からセグメント9までがデータ書き込み済みであることを示している。
図1中のページ書き込み実行部113は、次のように動作する。すなわち、物理ユニット601に対する書き込みは、ホスト102からの転送バイト数にかかわらず、必ず8ページからなるセグメント単位で行う。各セグメントの書き込みステータス情報は、当該セグメント中の少なくとも先頭ページの冗長領域に記憶される。
具体的には、ホスト102からデータが転送されてきた場合、まず物理ブロックAのページ0にデータを書き込む。その後は物理ブロックBのページ0、物理ブロックCのページ0、物理ブロックDのページ0の順にデータを書き込む。各物理ブロックのページ0が書き込み済みになったら、次は物理ブロックAのページ1に書き込みを行い、その後は物理ブロックBのページ1、物理ブロックCのページ1、物理ブロックDのページ1の順にデータを書き込む。もし物理ブロックBのページ1にデータを書き込んだ後にホスト102からの転送データが停止した場合には、残りのページに全ビットが“1”のデータや、元データをコピーして書き込む。
次に、図6の物理ユニット601における最終有効セグメントの特定と、電断に起因したエラーセグメントの有無判定とを説明する。ここに、最終有効セグメントとは、当該物理ユニット601内で最後に書かれた、書き込み有りかつ訂正不能エラー無しのセグメントをいう。
図7は、図6の構成を採用した場合の図1中の二分探索実行部114の動作を示している。ここでは、最終有効セグメントを検索する物理ユニット601は少なくともセグメント0への書き込みが必ずあるものとする。
図7によれば、まずはステップ701で読み出し回数を表す変数nの値を1に設定し、ステップ702において読み出しセグメントアドレスを表す変数Lの値を「(物理ユニット601の全セグメント数)/2」で決定する。次にステップ703でセグメントLの先頭ページの冗長領域を読み出す。このようにして読み出したセグメントLの先頭ページの冗長領域に格納されたデータ管理情報中の書き込みステータス情報をもとに、書き込み有り/無しの判定を行うことができる。書き込みステータス情報が“Low”のビットであれば書き込み有りであり、“High”であれば書き込み無しである。
次にステップ704で変数nを1だけインクリメントし、ステップ705で「(物理ユニット601の全セグメント数)≧2」かどうかを判定する。このステップ705は、ステップ703から後述のステップ707又はステップ708までのループ動作の終了条件にあたる。
ステップ705で「Yes」の場合には、ステップ706に進む。ステップ706においてステップ703で読み出したステータス情報が書き込み有りを表す場合にはステップ707に進む。ステップ707では、変数Lを「(物理ユニット601の全セグメント数)/2」だけ増加させる。一方、ステップ706においてステップ703で読み出したステータス情報が書き込み無しを表す場合にはステップ708に進む。ステップ708では、変数Lを「(物理ユニット601の全セグメント数)/2」だけ減少させる。ステップ707又はステップ708の次は、ステップ703に戻って再度処理を実行する。
ステップ705で「No」の場合にはステップ709に進む。ステップ709において、ステップ703で読み出したステータス情報が書き込み有りを表す場合にはステップ710に進む。ステップ710では、セグメントLが最終有効セグメントであると仮特定する。一方、ステップ709において、ステップ703で読み出したステータス情報が書き込み無しを表す場合にはステップ711に進む。ステップ711では、セグメント(L−1)が最終有効セグメントであると仮特定する。
図6に示した物理ユニット601の例では、(1)セグメント8、(2)セグメント12、(3)セグメント10、(4)セグメント9の順に各セグメントの先頭ページの冗長領域が読み出され、セグメント9が最終有効セグメントであると仮特定される。
図8は、図6の構成を採用した場合の図1中の最終有効データ特定実行部115の動作を示している。なお、二分探索実行部114による最終有効セグメントの仮特定が既に終わっているものとする。
図8によれば、まずステップ801において、二分探索実行部114が仮特定した最終有効セグメントをセグメントNとする。次にステップ802において、セグメントNの全ページの全領域(データ領域及び冗長領域)の内容を順に読み出して、ECC回路111を経由後、転送RAM107に一時記憶させる。次に、ステップ803でセグメントNの訂正不能エラーの有無を判定する。セグメントNの全ページにおいて訂正不能エラー無しの場合にはステップ804に進む。ステップ804ではセグメント(N+1)の全ページの全領域を読み出す。これは、セグメント(N+1)がエラーセグメントであるか否かを判断するために実行する。ステップ805ではセグメント(N+1)の全ページのデータ領域が消去済み(書き込み無し)か否かを判定する。セグメント(N+1)が消去済みの場合にはステップ806に進む。このケースは当該物理ユニット601に電断発生に起因したエラーセグメントが無いケースである。ステップ806では、セグメントNを最終有効セグメントであると特定し、かつ当該物理ユニット601に電断発生無しと判定する。
ステップ805でセグメント(N+1)のデータ領域への書き込み有りの場合にはステップ807に進む。セグメント(N+1)は冗長領域が消去済みであるのに対してデータ領域への書き込みがあるので、電断による異常状態と判定することができる。ステップ807でセグメントNを最終有効セグメントであると特定し、かつセグメント(N+1)の書き込み中の電断発生有りと判定する。
ステップ803でセグメントNの訂正不能エラー有りの場合にはステップ808へ進む。セグメントNは冗長領域が消去済みであるのに対してデータ領域への書き込みがあるので、電断による異常状態と判定することができる。ただし、セグメント(N−1)にも訂正不能エラーが存在するか否かを判定する必要がある。そこで、ステップ808ではセグメント(N−1)の全ページの全領域を読み出す。次にステップ809でセグメント(N−1)の訂正不能エラー無しの場合にはステップ810に進む。ステップ810では、セグメント(N−1)を最終有効セグメントであると特定し、かつセグメントNの書き込み中の電断発生有りと判定する。
ステップ809でセグメント(N−1)の訂正不能エラー発生有りの場合にはステップ811に進む。これは、セグメントN及びセグメント(N−1)の両セグメントにおいて訂正不能エラーが発生したケースである。このケースは電断1回では生じない異常状態のため、当該物理ユニット601には有効なセグメントが全く無いものとして処理を終了する。
図6に示した物理ユニット601には電断発生に起因したエラーセグメントが全く無いものとすると、セグメント9が最終有効セグメントであると仮特定された後、(i)セグメント9、(ii)セグメント10の順に各々の全ページの全領域(データ領域及び冗長領域)が読み出され、セグメント9が最終有効セグメントであると特定され、かつ当該物理ユニット601に電断発生無しと判定される。
なお、最終有効セグメントが特定できた後は、CPU109がテーブルRAM108の情報を更新する。ただし、電断が発生したセグメント以降に書き込みを行うと、データ化けの可能性があり、またデータの書き込み管理が正しくできない。したがって、電断による訂正不能エラーが発見された場合には、有効なデータを消去済みの他の物理ユニットにコピーした後に、テーブルRAM108の情報を更新する。
以上説明してきたとおり、本発明に係るメモリコントローラは、最終有効ページ又は最終有効セグメントの特定と電断に起因したエラーページ又はエラーセグメントの有無判定とを高速かつ正確に実施でき、順次書き込み制約を持つフラッシュメモリへのアクセス制御技術として有用である。
本発明に係るメモリコントローラとフラッシュメモリとを搭載したメモリカードを含むシステムの構成例を示すブロック図である。 図1中のフラッシュメモリの内部構成例を示す概念図である。 図2の構成を採用した場合の図1中の二分探索実行部の動作を示すフローチャート図である。 図2の構成を採用した場合の図1中の最終有効データ特定実行部の動作を示すフローチャート図である。 図3の変形例に係るフローチャート図である。 図1中のフラッシュメモリの他の内部構成例を示す概念図である。 図6の構成を採用した場合の図1中の二分探索実行部の動作を示すフローチャート図である。 図6の構成を採用した場合の図1中の最終有効データ特定実行部の動作を示すフローチャート図である。
符号の説明
101 メモリカード
102 ホスト
103 メモリコントローラ
104 フラッシュメモリ
105 入出力部
106 RAM制御部
107 転送RAM
108 テーブルRAM
109 CPU
110 フラッシュ制御部
111 ECC回路
112 ブロック消去実行部
113 ページ書き込み実行部
114 二分探索実行部
115 最終有効データ特定実行部
201 物理ブロック
202 データ領域
203 冗長領域
601 物理ユニット

Claims (12)

  1. 複数のページからなる物理ブロックを有し、かつ各ページがデータを格納するデータ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御するためのメモリコントローラであって、
    前記物理ブロックの消去済みの全ページのうち先頭ページから順に、前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情報として前記冗長領域に書き込むページ書き込み実行部と、
    各ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して最終有効ページを仮特定する二分探索実行部と、
    前記二分探索実行部により仮特定された最終有効ページと、当該仮特定された最終有効ページに隣接するページとから、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの有無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最終有効ページの特定と、前記ページ書き込み実行部の動作途中の電源オフに起因したエラーページの有無判定とを行う最終有効データ特定実行部とを備えたことを特徴とするメモリコントローラ。
  2. 請求項1記載のメモリコントローラにおいて、
    前記二分探索実行部は、前記ステータス情報の二分探索の実行前に、前記物理ブロックの先頭ページから前記ステータス情報を読み出して当該先頭ページが消去済みかどうかを検出し、消去済みである場合には当該先頭ページを最終有効ページとして仮特定する機能を更に有することを特徴とするメモリコントローラ。
  3. 請求項1記載のメモリコントローラと、当該メモリコントローラによりアクセスが制御されるフラッシュメモリとを備えたことを特徴とする不揮発性記憶装置。
  4. 請求項3記載の不揮発性記憶装置において、
    前記メモリコントローラと前記フラッシュメモリとが1チップに構成されたことを特徴とする不揮発性記憶装置。
  5. 請求項3記載の不揮発性記憶装置と、当該不揮発性記憶装置へのアクセスを要求するホストとを備えたことを特徴とする不揮発性記憶システム。
  6. 複数の物理ブロックからなる物理ユニットを有し、前記複数の物理ブロックは各々複数のページからなり、かつ各ページがデータを格納するデータ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御するためのメモリコントローラであって、
    前記複数の物理ブロックの各々の所定数のページからなるセグメントを書き込み単位として、前記物理ユニットの消去済みの全セグメントのうち先頭セグメントから順に、前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情報として前記冗長領域に書き込むページ書き込み実行部と、
    各セグメントの先頭ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して最終有効セグメントを仮特定する二分探索実行部と、
    前記二分探索実行部により仮特定された最終有効セグメントに属する全ページと、当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとから、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのセグメントにおける訂正不能エラーの有無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最終有効セグメントの特定と、前記ページ書き込み実行部の動作途中の電源オフに起因したエラーセグメントの有無判定とを行う最終有効データ特定実行部とを備えたことを特徴とするメモリコントローラ。
  7. 請求項6記載のメモリコントローラと、当該メモリコントローラによりアクセスが制御されるフラッシュメモリとを備えたことを特徴とする不揮発性記憶装置。
  8. 請求項7記載の不揮発性記憶装置において、
    前記メモリコントローラと前記フラッシュメモリとが1チップに構成されたことを特徴とする不揮発性記憶装置。
  9. 請求項7記載の不揮発性記憶装置と、当該不揮発性記憶装置へのアクセスを要求するホストとを備えたことを特徴とする不揮発性記憶システム。
  10. 複数のページからなる物理ブロックを有し、かつ各ページがデータを格納するデータ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御する方法であって、
    前記物理ブロックの消去済みの全ページのうち先頭ページから順に、前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情報として前記冗長領域に書き込むページ書き込みステップと、
    各ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して最終有効ページを仮特定する二分探索ステップと、
    前記二分探索ステップにより仮特定された最終有効ページと、当該仮特定された最終有効ページに隣接するページとから、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのページにおける訂正不能エラーの有無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最終有効ページの特定と、前記ページ書き込みステップの動作途中の電源オフに起因したエラーページの有無判定とを行う最終有効データ特定ステップとを備えたことを特徴とするフラッシュメモリのアクセス制御方法。
  11. 請求項10記載のフラッシュメモリのアクセス制御方法において、
    前記二分探索ステップは、前記ステータス情報の二分探索の実行前に、前記物理ブロックの先頭ページから前記ステータス情報を読み出して当該先頭ページが消去済みかどうかを検出し、消去済みである場合には当該先頭ページを最終有効ページとして仮特定するステップを有することを特徴とするフラッシュメモリのアクセス制御方法。
  12. 複数の物理ブロックからなる物理ユニットを有し、前記複数の物理ブロックは各々複数のページからなり、かつ各ページがデータを格納するデータ領域と、データ管理情報を格納する冗長領域とを有するフラッシュメモリへのアクセスを制御する方法であって、
    前記複数の物理ブロックの各々の所定数のページからなるセグメントを書き込み単位として、前記物理ユニットの消去済みの全セグメントのうち先頭セグメントから順に、前記データ領域にデータを書き込み、かつ当該データのエラー訂正のための情報と、当該データが書き込み済みであることを示すステータス情報とを前記データ管理情報として前記冗長領域に書き込むページ書き込みステップと、
    各セグメントの先頭ページの前記冗長領域中の前記ステータス情報を二分探索しながら読み出して最終有効セグメントを仮特定する二分探索ステップと、
    前記二分探索ステップにより仮特定された最終有効セグメントに属する全ページと、当該仮特定された最終有効セグメントに隣接するセグメントに属する全ページとから、各データ領域中のデータ及び各冗長領域中のデータ管理情報を読み出し、それぞれのセグメントにおける訂正不能エラーの有無と前記データ領域への書き込みの有無とに関するチェックの結果に応じて、最終有効セグメントの特定と、前記ページ書き込みステップの動作途中の電源オフに起因したエラーセグメントの有無判定とを行う最終有効データ特定ステップとを備えたことを特徴とするフラッシュメモリのアクセス制御方法。
JP2007509790A 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ Expired - Fee Related JP4524309B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006067385 2006-03-13
JP2006067385 2006-03-13
PCT/JP2006/318597 WO2007119267A1 (ja) 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ

Publications (2)

Publication Number Publication Date
JPWO2007119267A1 true JPWO2007119267A1 (ja) 2009-08-27
JP4524309B2 JP4524309B2 (ja) 2010-08-18

Family

ID=38609089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509790A Expired - Fee Related JP4524309B2 (ja) 2006-03-13 2006-09-20 フラッシュメモリ用のメモリコントローラ

Country Status (7)

Country Link
US (1) US8006030B2 (ja)
EP (1) EP2003569B1 (ja)
JP (1) JP4524309B2 (ja)
CN (1) CN101288056A (ja)
DE (1) DE602006014734D1 (ja)
TW (1) TW200736909A (ja)
WO (1) WO2007119267A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020064350A (ja) * 2018-10-15 2020-04-23 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142685B2 (ja) * 2007-11-29 2013-02-13 株式会社東芝 メモリシステム
US8413016B2 (en) * 2009-04-28 2013-04-02 Panasonic Corporation Nonvolatile memory device and controller for judging a normal or anomalous condition of an error-corrected bit pattern
CN101587744B (zh) * 2009-06-19 2011-11-23 上海微小卫星工程中心 一种大规模flash存储阵列的多层次数据冗余方法
JP4818404B2 (ja) * 2009-06-26 2011-11-16 株式会社東芝 素材サーバおよび素材蓄積方法
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
CN102103558B (zh) * 2009-12-18 2013-09-18 上海华虹集成电路有限责任公司 一种带有写重传功能的多通道NANDflash控制器
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
TWI451435B (zh) * 2010-10-08 2014-09-01 Phison Electronics Corp 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
JP5643708B2 (ja) * 2011-03-30 2014-12-17 株式会社ケーヒン 電子制御装置
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
CN102411548B (zh) * 2011-10-27 2014-09-10 忆正存储技术(武汉)有限公司 闪存控制器以及闪存间数据传输方法
CN102609334B (zh) * 2012-01-09 2016-05-04 晨星软件研发(深圳)有限公司 非易失闪存擦除异常存储块修复方法和装置
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
WO2013171806A1 (en) * 2012-05-18 2013-11-21 Hitachi, Ltd. Semiconductor storage device and control method of nonvolatile memory
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
CN103020323B (zh) * 2013-01-15 2016-01-20 山东大学 一种基于未知长度二分查找的闪存数据检索存储的方法
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9183081B2 (en) * 2013-03-12 2015-11-10 Sandisk Technologies Inc. Systems and methods for performing defect detection and data recovery in a memory system
JP5695112B2 (ja) * 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) * 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN105808153B (zh) * 2014-12-31 2018-11-13 深圳市硅格半导体有限公司 存储系统及其读写操作方法
KR102547642B1 (ko) * 2016-05-18 2023-06-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN107544925B (zh) * 2016-06-24 2020-05-08 爱思开海力士有限公司 存储器系统及加速引导时间的方法
JP7109949B2 (ja) * 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
JP7030636B2 (ja) * 2018-07-12 2022-03-07 キオクシア株式会社 メモリシステムおよびその制御方法
JP2020021385A (ja) * 2018-08-03 2020-02-06 キオクシア株式会社 メモリシステム
TWI696951B (zh) * 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
JP2020047834A (ja) 2018-09-20 2020-03-26 キオクシア株式会社 記憶装置
JP6708762B1 (ja) * 2019-01-29 2020-06-10 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN111949426A (zh) * 2019-05-16 2020-11-17 北京兆易创新科技股份有限公司 一种固件程序错误的检测方法、装置及存储设备
TWI745695B (zh) * 2019-05-22 2021-11-11 慧榮科技股份有限公司 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) * 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110764693B (zh) * 2019-09-12 2023-03-28 深圳市德明利技术股份有限公司 一种提高Nand flash数据稳定性的方法以及装置
JP7500365B2 (ja) * 2020-09-14 2024-06-17 キオクシア株式会社 メモリシステム
CN114116309B (zh) * 2021-11-19 2023-04-14 合肥康芯威存储技术有限公司 一种存储器的数据存取方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073425A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 媒体再生装置
JP2003015929A (ja) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd 不揮発性メモリの制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
CN1255733C (zh) * 2001-07-25 2006-05-10 索尼株式会社 非易失性存储器和非易失性存储器的数据改写方法
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
CN100347685C (zh) 2002-08-29 2007-11-07 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
US7003532B2 (en) * 2002-11-27 2006-02-21 Microsoft Corporation System and method for scaleable multiplexed transactional log recovery
DE10322723B3 (de) * 2003-05-20 2004-10-14 Infineon Technologies Ag Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
JP2006285600A (ja) * 2005-03-31 2006-10-19 Tokyo Electron Device Ltd 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム
US7747903B2 (en) * 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073425A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 媒体再生装置
JP2003015929A (ja) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd 不揮発性メモリの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020064350A (ja) * 2018-10-15 2020-04-23 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法

Also Published As

Publication number Publication date
EP2003569B1 (en) 2010-06-02
EP2003569A4 (en) 2009-04-22
WO2007119267A1 (ja) 2007-10-25
US8006030B2 (en) 2011-08-23
TW200736909A (en) 2007-10-01
CN101288056A (zh) 2008-10-15
US20090228634A1 (en) 2009-09-10
EP2003569A9 (en) 2009-04-15
EP2003569A2 (en) 2008-12-17
DE602006014734D1 (de) 2010-07-15
JP4524309B2 (ja) 2010-08-18

Similar Documents

Publication Publication Date Title
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
JP5585919B2 (ja) 電源遮断管理
JP4129381B2 (ja) 不揮発性半導体記憶装置
TWI592800B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP4729062B2 (ja) メモリシステム
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
US9009399B2 (en) Flash memory storage system and controller and data writing method thereof
US20120072798A1 (en) Semiconductor device
US9122498B2 (en) Firmware code loading method, memory controller and memory storage apparatus
US20140258769A1 (en) Partial r-block recycling
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP4661369B2 (ja) メモリコントローラ
JP2008251154A (ja) 不揮発性半導体記憶装置
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN112988069B (zh) 存储器管理方法、存储器存储装置及存储器控制器
CN112988076A (zh) 快闪存储器控制方法、存储装置及控制器
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
TWI813362B (zh) 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
US20240232093A1 (en) Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search

Legal Events

Date Code Title Description
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: 20100511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees