JP2008009932A - 半導体記憶装置およびその制御方法 - Google Patents

半導体記憶装置およびその制御方法 Download PDF

Info

Publication number
JP2008009932A
JP2008009932A JP2006182435A JP2006182435A JP2008009932A JP 2008009932 A JP2008009932 A JP 2008009932A JP 2006182435 A JP2006182435 A JP 2006182435A JP 2006182435 A JP2006182435 A JP 2006182435A JP 2008009932 A JP2008009932 A JP 2008009932A
Authority
JP
Japan
Prior art keywords
block
address
block address
bad block
data
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
JP2006182435A
Other languages
English (en)
Other versions
JP4956068B2 (ja
Inventor
Takeshi Nakano
武 中野
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.)
Toshiba Corp
Kioxia Systems Co Ltd
Original Assignee
Toshiba Corp
Toshiba Memory Systems 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 Toshiba Corp, Toshiba Memory Systems Co Ltd filed Critical Toshiba Corp
Priority to JP2006182435A priority Critical patent/JP4956068B2/ja
Priority to US11/767,756 priority patent/US7849357B2/en
Publication of JP2008009932A publication Critical patent/JP2008009932A/ja
Application granted granted Critical
Publication of JP4956068B2 publication Critical patent/JP4956068B2/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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】判定処理の回数および検索処理の回数を低減でき、処理速度を向上できる半導体記憶装置およびその制御方法を提供する。
【解決手段】半導体記憶装置は、アドレス変換テーブルと、有効ブロックアドレスのみが登録された空きテーブルと、第1バッドブロックテーブルと、予備テーブルとを格納した第1集中管理ブロックB1を備えた半導体メモリ11と、前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記予備テーブルから取得した代替ブロックアドレスにより前記バッドブロックアドレスを代替するように構成されたコントローラ12とを具備する。
【選択図】 図6

Description

この発明は、半導体記憶装置およびその制御方法に関し、例えば、メモリにホスト機器が外部からアクセスする際に使用する論理ブロックアドレスと、メモリ内の物理ブロックアドレス(実ブロックアドレス)とを1対1に対応付けるアドレス変換テーブル方式のメモリカード等に適用されるものである。
音楽データや映像データの記録メディアとしてフラッシュメモリ等の不揮発性半導体メモリを用いたメモリカードが使われている(例えば、特許文献1参照)。メモリカードに使用されるフラッシュメモリの一例として、例えば、NANDフラッシュTMメモリが挙げられる。
上記NANDフラッシュTMメモリにデータを書き込む際には、消去が可能な最小単位であるブロック全体を消去してから書き込みを行わなければならない。そのため、データを書き込む場合には、まず、消去済みのブロック(消去ブロック)を用意し、そこに書き換えたいページと、ブロック内で書き換えを行わないデータとをコピーする必要がある。
このような消去ブロックが生じるため、アドレス変換テーブル(L2P(Logical to Physical)テーブル)方式では、メモリコントローラがRAM上に展開された複数の物理テーブルを複雑に管理する必要がある。
そのため、上記物理テーブルの管理の際には、どうしても判定処理の回数および検索処理の回数が増大して処理速度が低下し、処理の複雑度が増大するという問題がある。また、このような判定処理や検索処理は、通常の書き込み/消去アクセスの書き換え動作の際に、頻繁に行う必要がある。そのため、メモリ全体のパフォーマンス低下に与える影響が大きい。
上記のように、従来の半導体記憶装置およびその制御方法は、判定処理の回数および検索処理の回数の増大に伴って、処理速度が低下し、処理の複雑度が増大するという問題があった。
米国特許 6,845,438号 明細書
この発明は、判定処理の回数および検索処理の回数を低減でき、処理速度を向上できる半導体記憶装置およびその管理方法を提供する。
この発明の一態様によれば、アドレス変換テーブルと、有効ブロックアドレスのみが登録された空きテーブルと、第1バッドブロックテーブルと、予備テーブルとを格納した第1集中管理ブロックを備えた半導体メモリと、前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記予備テーブルから取得した代替ブロックアドレスにより前記バッドブロックアドレスを代替するように構成されたコントローラとを具備する半導体記憶装置を提供できる。
この発明の一態様によれば、アドレス変換テーブルと、有効ブロックアドレスのみが登録された空きテーブルと、バッドブロックテーブルと、予備テーブルとを格納した集中管理ブロックを備えた半導体メモリと、コントローラとを具備し、前記コントローラは、前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記バッドブロックアドレスを前記バッドブロックテーブルに登録し、前記予備テーブルから代替ブロックアドレスを取得し、前記代替ブロックアドレスにより前記バッドブロックアドレスを代替する半導体記憶装置の制御方法を提供できる。
この発明によれば、判定処理の回数および検索処理の回数を低減でき、処理速度を向上できる半導体記憶装置およびその制御方法が得られる。
以下、この発明の一実施形態について図面を参照して説明する。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
まず、図1乃至図5を用いて、この発明の一実施形態に係る半導体記憶装置の概要を説明する。図1はこの実施形態に係る半導体記憶装置を説明するためのブロック図である。本例では、半導体記憶装置の一例としてメモリカードを例に挙げて説明する。
図示するように、メモリカード1は、ホスト機器2とバスインタフェース14を介して情報の授受を行う。メモリカード1は、NANDフラッシュTMメモリ(以下、単にフラッシュメモリと記載する)チップ11、このフラッシュメモリチップ11を制御するカードコントローラ12、および複数の信号ピン(第1ピン乃至第9ピン)13を備えている。
複数の信号ピン13は、カードコントローラ12と電気的に接続されている。複数の信号ピン13における第1ピン乃至第9ピンに対する信号の割り当ては、例えば、図2に示すようになっている。
データ0乃至データ3は、第7ピン、第8ピン、第9ピン、および第1ピンにそれぞれ割り当てられている。第1ピンは、また、カード検出信号に対しても割り当てられている。さらに、第2ピンはコマンドに割り当てられ、第3ピンおよび第6ピンは接地電位Vssに、第4ピンは電源電位Vddに、第5ピンはクロック信号に割り当てられている。
また、メモリカード1は、ホスト機器2に設けられたスロットに対して挿抜可能なように形成されている。ホスト機器2に設けられたホストコントローラ(図示せず)は、これら第1ピン乃至第9ピンを介してメモリカード1内のカードコントローラ12と各種信号およびデータを通信する。例えば、メモリカード1にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、第2ピンを介してカードコントローラ12にシリアルな信号として送出する。このとき、カードコントローラ12は、第5ピンに供給されているクロック信号に応答して、第2ピンに与えられる書き込みコマンドを取り込む。
ここで、前述したように、書き込みコマンドは、第2ピンのみを利用してカードコントローラ12にシリアルに入力される。コマンドの入力に割り当てられている第2ピンは、図2に示すように、データ3用の第1ピンと接地電位Vss用の第3ピンとの間に配置されている。複数の信号ピン13とそれに対するバスインタフェース14は、ホスト機器2内のホストコントローラとメモリカード1とが通信するのに使用される。
これに対し、フラッシュメモリ11とカードコントローラ12との間の通信は、NANDフラッシュTMメモリ用のインタフェースによって行われる。したがって、ここでは図示しないが、フラッシュメモリ11とカードコントローラ12とは8ビットの入出力(I/O)線により接続されている。
例えば、カードコントローラ12がフラッシュメモリ11にデータを書き込む際には、カードコントローラ12は、これらI/O線を介してデータ入力コマンド80H、カラムアドレス、ページアドレス、データ、およびプログラムコマンド10Hをフラッシュメモリ11に順次入力する。ここで、コマンド80Hの“H”は16進数を示すものであり、実際には“10000000”という8ビットの信号が、8ビットのI/O線にパラレルに与えられる。つまり、このNANDフラッシュTMメモリ用のインタフェースでは、複数ビットのコマンドがパラレルに与えられる。
また、NANDフラッシュTMメモリ用のインタフェースでは、フラッシュメモリ11に対するコマンドとデータが同じI/O線を共用して通信されている。このように、ホスト機器2内のホストコントローラとメモリカード1とが通信するインタフェースと、フラッシュメモリ11とカードコントローラ12とが通信するインタフェースとは異なる。
図3は、本例に係るメモリカードのハード構成を示すブロック図である。
図示するように、ホスト機器2は、バスインタフェース14を介して接続されるメモリカード1に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。メモリカード1は、ホスト機器2に接続された時に電源供給を受けて動作し、ホスト機器2からのアクセスに応じた処理を行う。
メモリカード1は、前述したように、フラッシュメモリ11およびカードコントローラ12を含む。フラッシュメモリ11は、消去時の消去ブロックサイズ(消去単位のブロックサイズ)が所定サイズ(例えば、256kB)に定められている。また、このフラッシュメモリ11に対して、ページと称する単位(例えば、2kB)でデータの書き込みおよび読み出しが行われる。
カードコントローラ12は、フラッシュメモリ11内部の物理状態(例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか)を制御する。カードコントローラ12は、ホストインタフェースモジュール21、MPU(Micro processing unit)22、フラッシュコントローラ23、ROM(Read-only memory)24、RAM(Random access memory)25、およびバッファ26を有する。
ホストインタフェースモジュール21は、カードコントローラ12とホスト機器2との間のインタフェース処理を行い、レジスタ部27を含む。図4に、レジスタ部27の詳細な構成を示す。レジスタ部27は、カードステータスレジスタ、およびCID、RCA、DSR、CSD、SCR、OCRの各種レジスタを有する。
これらレジスタは、以下のように定義されている。カードステータスレジスタは、通常動作において使用され、例えば後述するエラー情報が記憶される。CID、RCA、DSR、CSD、SCR、およびOCRは、主にメモリカードの初期化時に使用される。
CID(Card identification number)には、メモリカード1の個体番号が記憶される。RCA(Relative card address)には、相対カードアドレス(初期化時にホスト機器が動的に決める)が記憶される。DSR(Driver stage register)には、メモリカード1のバス駆動力等が記憶される。
CSD(Card specific data)には、メモリカード1の特性パラメータ値が記憶され、第1実施形態の、バージョン情報、性能識別コード、性能パラメータを保持する。
SCR(SD configuration data register)には、メモリカード1のデータ配置が記憶される。OCR(Operation condition resister)には、動作範囲電圧に制限のあるメモリカードの場合の動作電圧が記憶される。
MPU22は、メモリカード1全体の動作を制御する。MPU22、例えばメモリカード1が電源供給を受けたときに、ROM24に格納されているファームウェア(制御プログラム)をRAM25上に読み出して所定の処理を実行することにより、各種のテーブルをRAM25上に作成する。
MPU22は、また、ホスト機器2から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、フラッシュメモリ11に対して所定の処理を実行したり、バッファ26を通じたデータ転送処理を制御したりする。
ROM24は、MPU22により制御される制御プログラムなどを格納する。RAM25は、MPU22の作業エリアとして使用され、制御プログラムや各種のテーブル(表)を記憶する。フラッシュコントローラ23は、カードコントローラ12とフラッシュメモリ11との間のインタフェース処理を行う。
バッファ26は、ホスト機器2から送られてくるデータをフラッシュメモリ11へ書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶したり、フラッシュメモリ11から読み出されるデータをホスト機器2へ送り出す際に、一定量のデータを一時的に記憶したりする。
図5は、メモリカード1内のフラッシュメモリ11におけるデータ配置を示している。図示するように、フラッシュメモリ11の各ページは、2112B(512B分のデータ記憶部×4+10B分の冗長部×4+24B分の管理データ記憶部)を有しており、例えば128ページ分が1つの消去単位(256kB+8kB(ここで、kは1024))である。なお、以下の説明においては、便宜上、このフラッシュメモリ11の消去単位を256kBとする。
また、フラッシュメモリ11は、フラッシュメモリ11へのデータ入出力を行うためのページバッファ11Aを備えている。ページバッファ11Aの記憶容量は、2112B(2048B+64B)である。データ書き込みなどの際、ページバッファ11Aは、フラッシュメモリ11に対するデータ入出力処理を、自身の記憶容量に相当する1ページ分の単位で実行する。
フラッシュメモリ11の記憶容量が、例えば、1Gビットである場合、256kBブロック(消去単位)の数は、512個となる。
尚、図5においては消去単位が256kBブロックである場合を例示しているが、消去単位が例えば16kBブロックとなるように構築することも実用上有効である。この場合、各ページは528B(512B分のデータ記憶部+16B分の冗長部)を有しており、32ページ分が1つの消去単位(16kB+0.5kB)である。
また、図3に示すように、フラッシュメモリ11のデータが書き込まれる領域(データ記憶領域)は、保存されるデータに応じて複数の領域に区分けされている。フラッシュメモリ11は、データ記憶領域として、管理データ領域32と、機密データ領域32と、保護データ領域33と、ユーザデータ領域34と、を備えている。
管理データ領域31は、主にメモリカードに関する管理情報を格納し、すなわち、メモリカード1のセキュリティ情報やメディアIDなどのカード情報を格納する。
機密データ領域32は、暗号化に用いる鍵情報や認証時に使用する機密データを格納し、ホスト機器2からはアクセス不可能な領域である。
保護データ領域33は、重要なデータを格納し、メモリカード1に接続されたホスト機器2との相互認証によりホスト機器2の正当性が証明された場合にのみアクセスが可能となる領域である。
ユーザデータ領域34は、ユーザデータを格納し、メモリカード1を使用するユーザが自由にアクセスおよび使用することが可能な領域である。
<メモリ空間>
次に、この実施形態に係るNANDフラッシュメモリ11のメモリ空間およびデータフォーマットについて、図6乃至図10を用いて説明する。
本例では、アドレス変換テーブル(L2P(Logical to Physical)テーブル)方式のNANDフラッシュメモリ11について説明する。ここで、アドレス変換テーブル(L2Pテーブル)方式とは、メモリカード1にホスト機器2が外部からアクセスする際に使用する論理ブロックアドレス(LBA)と、NANDフラッシュメモリ11内の物理ブロックアドレス(PBA)とを1対1に対応付ける方式をいう。
アドレス変換テーブル(L2Pテーブル)には、カード1出荷の際に、どの論理ブロックアドレスが、どの物理ブロックアドレスに対応しているかがテーブル情報として対応付けられている。
論理ブロックアドレス(LBA)とは、ホスト装置2が発行し、且つホスト装置2側で管理されているブロックアドレスをいう。
物理ブロックアドレス(PBA)とは、NANDフラッシュメモリ11側の実際のブロックアドレスをいう。
図6に示すように、NANDフラッシュメモリ11は、最小の消去単位であるブロックBlock 0 〜 Block n+1を備えている。ブロックBlock 0 〜 Block n+1は、最小の書き込み単位であるページを、例えば、32ページ、256ページ或いは512ページ等にまとめて構成されるものである。
さらに、NANDフラッシュメモリ11は、上記ブロックBlock 0 〜 Block n+1のうち、集中管理ブロックB1(Block n)、B2(Block 0)を備えている。
集中管理ブロックB1(Block n)は、ページ1、およびページ2を備えている。
ページ1には、アドレス変換テーブル(以下、L2Pテーブルと称する)が格納されている。L2Pテーブルとは、上記のように、どの論理ブロックアドレスが、どの物理ブロックアドレスに対応しているかを示すテーブル情報である。
ページ2には、空きブロックアドレステーブル、バッドブロック(Bad Block:不良領域)アドレステーブル、予備ブロックアドレステーブルが格納されている。以下、上記テーブルをそれぞれ、空きテーブル、BBテーブル、予備テーブルと称する。
空きテーブルには、有効なブロックアドレスのみが登録されている。BBテーブルは、後天的に発生したエラーにより使用不可となったブロックアドレス(不良ブロックアドレス)を登録するテーブルである。予備テーブルは、後述する動作の際に必要となるテーブルである。
集中管理ブロックB2(Block 0)は、ページP0を備えている。
ページP0には、BBテーブルが格納されているが、このBBテーブルは、先天的に発生したエラーにより使用不可となった不良ブロックアドレスを登録するテーブルである。具体的には、NANDフラッシュメモリ11が封止された後の正常に機能するか否かの機能テストの際に、あらかじめ発見された不良ブロックアドレスが登録されている点で、ページ2に格納された上記BBテーブルと相違している。
また、集中管理ブロックB1に格納された上記複数のテーブル(L2Pテーブル、空きテーブル、後天性BBテーブル、予備テーブル)は、後述する書き込み動作等の際に、RAM25上に展開され、コントローラ12中のMPU22により管理される。一方、集中管理ブロックB2に格納された後天性BBテーブルは、RAM上には展開されない。
このように、NANDフラッシュメモリ11が、複数のテーブルが必要な理由は、下記ように、NANDフラッシュメモリ11はページP単位の書き換えができず、ブロックBlock 0 〜 Block n+1を消去してから書き込みを行う必要があるからである。
例えば、ブロックBlock 1中のあるページのデータを書き換える場合、ブロックBlock 1とは異なるブロックに新たに書き換えたいページと、Block 1内で書き換えを行わないデータとをコピーする制御が発生する。すなわち、違うブロック、例えば、ブロックBlock 2等へのデータのコピー処理が発生する。
このように、データを書き換える場合、書き換え後のデータは書き換え前のブロックBlockと異なるブロックBlockに書き込まれるため、論理ブロックアドレス(LBA)と、この論理ブロックアドレスに対応する物理ブロックアドレス(PBA)との対応関係は、データを書き換える毎に動的に変化する。従って、ブロックアドレス変換テーブル(L2Pテーブル)により、論理ブロックアドレス(LBA)を物理ブロックアドレス(PBA)に変換した後、物理ブロックアドレス(PBA)に基づいて実際にアクセスすべきブロックBlock 0 〜 Block n+1が特定される。
そのため、図7に示すように、データを書き換える場合、ページP1に格納されていたL2Pテーブルは、その書き換えに関わった部分の対応関係が更新された後、例えば、ページP3に格納される。
同様の理由から、データを書き換える場合、ページP2に格納されていたBBテーブル、予備テーブル、および空きテーブルは、その書き換えに関わった部分の対応関係が更新され、例えば、ページP4に格納される。
このように、コントローラ12は、L2Pテーブルや空きテーブル等の変更がある度に、追記式でNAND型フラッシュメモリ11の集中管理ブロックB1(Block n)に記憶する。
上記に説明したように、NANDフラッシュメモリ11の特性によりデータ上書きができない。そのため、同じ論理ブロックアドレスへデータを書き込む(データ上書き)場合には、別の物理ブロックアドレスを割り当てることで、見かけ上のデータ上書きが行えるようにする必要がある。
また、本例の場合、空きテーブルのデータフォーマットは、例えば、図8のように示される。図示するように、使用可能(書き込み/消去可能)なブロック情報が、2バイト情報の物理ブロックアドレス表現で表わされている。このテーブルには、上記先天性バッドブロックアドレスでないブロックアドレスのみが登録されている。即ち、このテーブルには、有効なブロックアドレスのみが登録されている。
このように物理ブロックアドレス表現でフォーマットされているため、後述する動作の際に、コントローラ12が、ポインタを移動させることができる。そのため、次に使用するテーブル情報(アドレスデータ)を検索する必要がない。例えば、コントローラ12は、所定の動作の後、テーブル情報0x005Fのポインタ55を、テーブル情報0x006Dのポインタ56に移動させる。
BBテーブルのデータフォーマットは、例えば、図9のように示される。図示するように、バッドブロックアドレスとなったブロック情報が、2バイト情報の物理ブロックアドレス表現で表わされている。BBテーブルとしては、上記のように先天性BBテーブルと後天性BBテーブルとが存在する。
予備テーブルのデータフォーマットは、例えば、図10のように示される。図示するように、バッドブロックが発生した際に代替可能なブロックアドレスの情報が、2バイト情報の物理ブロックアドレス表現で表わされている。
このように物理ブロックアドレス表現でフォーマットされているため、後述する動作の際に、コントローラ12は、ポインタを移動させることができる。そのため、次に使用するテーブル情報(アドレスデータ)を検索する必要がない。例えば、コントローラ12は、所定の動作の後、テーブル情報0x103Fのポインタ58を、テーブル情報0x106Dのポインタ59に移動させる。
<書き換えの際のテーブル管理動作>
次に、この実施形態に係るNANDフラッシュメモリ11の書き換えの際のテーブル管理動作について、図11乃至図13を用いて説明する。このテーブル管理動作は、コントローラ12中のMPU22が上記ページP0〜P2に格納されたL2Pテーブル等の各種テーブルをRAM25上で展開されたRAM空間で行うものである。以下、この説明においては、図11のフロー図に則して説明する。
(ステップST1)
まず、図12に示すように、例えば、ホスト機器2が指定する論理ブロックアドレス(LBAアドレス)LBA1に対して書き換えが発生した場合を考える。
この際、MPU22は、論理ブロックアドレスLBA1に対応する消去ブロックである、例えば、物理ブロックアドレスPBAn-1を更新するため、空きテーブル中の空きブロックアドレスを参照する。
(ステップST2)
続いて、図12に示すように、MPU22は、参照した空きテーブル中のブロックアドレスを即座に有効ブロックとして扱い、ブロックアドレスPBAnを取得する。
この際、MPU22は、空きテーブル中の空きテーブルポインタ位置を更新する(ポインタ55→ポインタ56)。このように、空きテーブルポインタ位置を更新しないと、後の書き換え動作によって、空きブロックアドレスPBAn-1のデータに対する上書きとなり、このような上書きを防止するためである。
(ステップST3(割り当てられた物理ブロックアドレスがBBアドレスか否か?))
続いて、MPU22は、次に割り当てられ予約された物理ブロックアドレスPBAnが正常に書き込みできるか否かの確認を行う。即ち、MPU22は、次に割り当てられ予約された上記物理ブロックアドレスPBAnが、例えば、ECC訂正不可能なエラー、書き込みエラー、Eraseエラー等のエラーによってバッドブロックアドレス(後天性バッドブロックアドレスまたは後天性不良領域)であるか否かの確認を行う。
(ステップST6)
続いて、上記物理ブロックアドレスPBAnがバッドブロックアドレスでない場合には、図12に示すように、MPU22は、次のブロックアドレスとして割り当てに予約されたL2Pテーブル中の物理ブロックアドレスPBAnをそのまま使用し、ブロックアドレスPBAn を、L2Pテーブルに登録する。さらに、その後、MPU22は、使用していたブロックアドレスPBAn-1を空きテーブルに登録する。
(ステップST4)
一方、上記物理ブロックアドレスPBAnがバッドブロックアドレスである場合には、図13に示すように、MPU22は、そのブロックアドレスPBAnをバッドブロックアドレスとして認識する。そして、MPU22は、BBアドレステーブルに新規に割り当てられたブロックアドレスPBAnとして隔離して登録する。
(ステップST5)
続いて、上記物理ブロックアドレスPBAnがバッドブロックアドレスである場合には、、図13に示すように、MPU22は、予備テーブルから代替ブロックアドレスPBArを取得し、代替ブロックアドレスPBArをL2Pテーブル中に登録する。即ち、MPU22は、予備テーブルから正常なブロックアドレスを取得する。この際、MPU22は、予備ブロックアドレステーブルの予備テーブルポインタ位置を更新する(ポインタ58→ポインタ59)
その後、MPU22は、上記ステップST1〜同様の動作を繰り返すことにより、NANDフラッシュメモリ11の書き換えの際のテーブル管理動作を行う。
上記に説明したこの実施形態に係る半導体記憶装置およびその制御方法によれば、下記(1)および(2)の効果が得られる。
(1)判定処理の回数および検索処理の回数を低減でき、処理速度を向上できる。
上記のように、本例に係る半導体記憶装置は、L2Pテーブル、空きテーブル、後天性BBテーブル、予備テーブルを格納した集中管理ブロックB1(第1集中管理ブロック)を備えている。ここで、上記空きテーブルには、有効なブロックアドレスのみが登録されている。
そのため、MPU22は、参照した空きテーブル中のブロックアドレスを即座に有効ブロックとして扱い、ブロックアドレスPBAnを取得することができる(ステップST2)。つまり、MPU22は、このステップST2の際に、空きテーブル中のブロックアドレスが有効ブロックか否かを判定する必要なく、このステップST2の際の判定処理を削減することができる。その結果、半導体記憶装置の処理速度を向上することができる。
さらに、集中管理ブロックB1には、予備テーブルが格納されている。
そのため、上記物理ブロックアドレスPBAnがバッドブロックアドレスである際(ステップST4)には、MPU22は、そのブロックアドレスPBAnを代替する代替ブロックアドレスPBArを予備テーブルから取得することができる(ステップST5)。
そのため、上記物理ブロックアドレスPBAnがバッドブロックアドレスである場合であっても、即座に代替ブロックアドレス取得することができる。
一方、従来において、バッドブロックアドレスが発生した場合には、BBテーブル等のL2Pテーブル以外のその他のテーブルから代替できるブロックアドレスを取得していた。そのため、代替できるブロックアドレスを、L2Pテーブル以外の全てのテーブルから検索する検索処理が必要であった。
しかし、本例の集中管理ブロックB1には、バッドブロックアドレスが発生した際に、代替できる代替ブロックアドレスがあらかじめ割り当てられた予備テーブルが格納されている。
従って、MPU22は、バッドブロックアドレスが発生した際(ステップST4)であっても、全てのテーブルから代替できるブロックアドレスを検索する検索処理の必要がない。その結果、検索処理の回数を低減でき、処理速度を向上することができる。
このように、本例では、1度の書き換え動作の際に、判定処理の回数、検索処理の回数をそれぞれ1つ少なくすることができる。このような判定処理や検索処理があると、通常の書き込み/消去アクセスの書き換え動作の際に、これらの処理を頻繁に行う必要がある。そのため、本例によれば、メモリ全体の高速動作のパフォーマンス向上に大きく寄与し得る。
さらに、本例のようなテーブルの管理によれば、判定処理の回数および検索処理の回数を低減できるため、テーブルの管理を簡素化することができる。そのため、コントローラ12の設計負担を低減できるというメリットもある。
(2)一部の物理ブロックBlockに書き換え動作が集中することを防止でき、書き換え回数の平準化を行うことができる。
上記のように、ステップST2の際、MPU22は、空きテーブル中の空きテーブルポインタ位置を更新する(ポインタ55→ポインタ56)。このように、空きテーブルポインタ位置を更新することによって、空きブロックアドレスPBAn-1のデータに対する上書きを防止することができる。さらに、ステップST5の際、MPU22は、予備ブロックアドレステーブルの予備テーブルポインタ位置を更新する(ポインタ58→ポインタ59)。
上記ポインタを更新することができるため、一部の空きテーブルおよび予備テーブルのブロックアドレスを分散化できる。そのため、NAND型フラッシュメモリ11の一部の物理ブロックBlockに書き込み/消去の書き換え動作が集中することを防止でき、書き換え回数の平準化を行うことができる。一部の物理ブロックBlockに書き換え動作が集中すると、その物理ブロックBlock中のメモリセルが劣化してしまう。そのため、書き換え回数を平準化により、その物理ブロックBlock中のメモリセルの劣化を防止することができる。
このように、ポインタを更新することができるのは、図8乃至図10に示したように空きテーブル、BBテーブル、および予備テーブルが物理ブロックアドレス表現でフォーマットされているからである。
一方、従来のATテーブル(アサインテーブル)およびBBテーブルは、図14、図15に示すように、1バイト8ブロック情報のビット表現によりフォーマットされていた。そのため、次の参照位置情報を持たず、どのブロックかを検索する演算処理が必要であった。
このように、空きテーブル、BBテーブル、および予備テーブルが物理ブロックアドレス表現でフォーマットされているため、検索する演算処理を省くことができ、上記のようにポインタ位置を更新することができる。
尚、本例では、L2Pテーブルの一例として、物理ブロックアドレス(PBA)のアドレスが順次示されているものを示したが、このアドレスは必ずしも順次示されている必要はない。例えば、本例では、図12、図13に示したように、L2Pテーブルには物理ブロックアドレスPBA0,…,PBAnと順次示されている。しかし、例えば、物理ブロックアドレスPBA1,PBAn+1,…,PBA0のようにランダムに示されているL2Pテーブルであっても上記同様の効果が得られる。
以上、上記実施形態を用いて本発明の説明を行ったが、この発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば上記実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
この発明の一実施形態に係る半導体記憶装置を説明するためのブロック図。 一実施形態に係る半導体記憶装置の信号ピンに対する信号の割り当てを示す図。 一実施形態に係る半導体記憶装置のハード構成を示すブロック図。 一実施形態に係る半導体記憶装置のレジスタ部の詳細な構成を示す図。 一実施形態に係る半導体記憶装置のフラッシュメモリにおけるデータ配置を示す図。 一実施形態に係る半導体記憶装置のフラッシュメモリのメモリ空間を示す図。 一実施形態に係る半導体記憶装置の更新後のフラッシュメモリのメモリ空間を示す図。 一実施形態に係る空きテーブルのデータフォーマットを示す図。 一実施形態に係るBBテーブルのデータフォーマットを示す図。 一実施形態に係る予備テーブルのデータフォーマットを示す図。 一実施形態に係るフラッシュメモリの書き換えの際のテーブル管理動作を示すフロー図。 一実施形態に係る半導体記憶装置の一テーブル管理動作(ST1〜ST6)を示す図。 一実施形態に係る半導体記憶装置の一テーブル管理動作(ST3〜ST5)を示す図。 一実施形態に係る半導体記憶装置の一テーブル管理動作(ST1〜ST6)を示す図。 一実施形態に係る半導体記憶装置の一テーブル管理動作(ST3〜ST5)を示す図。
符号の説明
11…NAND型フラッシュメモリ、B1、B2…集中管理ブロック、P0〜P2…ページ、Block 0〜Block n+1…ブロック。

Claims (5)

  1. アドレス変換テーブルと、有効ブロックアドレスのみが登録された空きテーブルと、第1バッドブロックテーブルと、予備テーブルとを格納した第1集中管理ブロックを備えた半導体メモリと、
    前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記予備テーブルから取得した代替ブロックアドレスにより前記バッドブロックアドレスを代替するように構成されたコントローラとを具備すること
    を特徴とする半導体記憶装置。
  2. 前記コントローラは更に、前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記バッドブロックアドレスを前記第1バッドブロックテーブルに登録すること
    を特徴とする請求項1に記載の半導体記憶装置。
  3. 前記第1バッドブロックテーブルは、後天性のバッドブロックアドレスを登録するテーブルであり、
    前記半導体メモリは、先天性のバッドブロックアドレスを登録する第2バッドブロックテーブルを格納する第2集中管理ブロックを更に備えること
    を特徴とする請求項1または2に記載の半導体記憶装置。
  4. アドレス変換テーブルと、有効ブロックアドレスのみが登録された空きテーブルと、バッドブロックテーブルと、予備テーブルとを格納した集中管理ブロックを備えた半導体メモリと、コントローラとを具備し、
    前記コントローラは、前記アドレス変換テーブル中にバッドブロックアドレスが発生した場合に、前記バッドブロックアドレスを前記バッドブロックテーブルに登録し、
    前記予備テーブルから代替ブロックアドレスを取得し、
    前記代替ブロックアドレスにより前記バッドブロックアドレスを代替すること
    を特徴とする半導体記憶装置の制御方法。
  5. 前記コントローラは更に、前記バッドブロックアドレスを前記バッドブロックテーブルに登録した際に、前記空きテーブルのポインタを更新し、
    前記代替ブロックアドレスを取得した際に、前記予備テーブルのポインタを更新すること
    を特徴とする請求項4に記載の半導体記憶装置の制御方法。
JP2006182435A 2006-06-30 2006-06-30 半導体記憶装置およびその制御方法 Expired - Fee Related JP4956068B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006182435A JP4956068B2 (ja) 2006-06-30 2006-06-30 半導体記憶装置およびその制御方法
US11/767,756 US7849357B2 (en) 2006-06-30 2007-06-25 Semiconductor memory device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006182435A JP4956068B2 (ja) 2006-06-30 2006-06-30 半導体記憶装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2008009932A true JP2008009932A (ja) 2008-01-17
JP4956068B2 JP4956068B2 (ja) 2012-06-20

Family

ID=38878263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006182435A Expired - Fee Related JP4956068B2 (ja) 2006-06-30 2006-06-30 半導体記憶装置およびその制御方法

Country Status (2)

Country Link
US (1) US7849357B2 (ja)
JP (1) JP4956068B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526241B2 (en) 2011-01-13 2013-09-03 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device capable of improving failure-relief efficiency
JP2014215981A (ja) * 2013-04-30 2014-11-17 大日本印刷株式会社 情報記憶媒体及びバイトコード実行方法
US9007836B2 (en) 2011-01-13 2015-04-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
JP7443078B2 (ja) 2020-02-06 2024-03-05 アルパイン株式会社 データ処理ユニット

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271564A1 (en) * 2008-04-25 2009-10-29 Hitachi, Ltd. Storage system
JP5132451B2 (ja) * 2008-07-02 2013-01-30 株式会社リコー 画像形成装置
TWI421870B (zh) * 2009-10-30 2014-01-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US20140052899A1 (en) * 2012-08-18 2014-02-20 Yen Chih Nan Memory address translation method for flash storage system
JP2014063551A (ja) 2012-09-21 2014-04-10 Toshiba Corp 半導体記憶装置
US10409500B2 (en) * 2017-09-08 2019-09-10 Intel Corporation Multiple indirection granularities for mass storage devices
KR20190073125A (ko) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10970205B2 (en) 2018-05-31 2021-04-06 Micron Technology, Inc. Logical-to-physical data structures for tracking logical block addresses indicative of a collision
KR20200068944A (ko) * 2018-12-06 2020-06-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0896589A (ja) * 1994-09-28 1996-04-12 Nec Corp 半導体記憶装置
JP2003085054A (ja) * 2001-06-27 2003-03-20 Mitsubishi Electric Corp フラッシュメモリを搭載した半導体記憶装置における装置寿命警告発生システムとその方法
JP2003109384A (ja) * 2001-09-28 2003-04-11 Tokyo Electron Device Ltd データ書込装置、データ書込制御方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335328A (en) * 1989-06-28 1994-08-02 International Business Machines Corporation Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5740349A (en) * 1993-02-19 1998-04-14 Intel Corporation Method and apparatus for reliably storing defect information in flash disk memories
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US7328301B2 (en) * 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0896589A (ja) * 1994-09-28 1996-04-12 Nec Corp 半導体記憶装置
JP2003085054A (ja) * 2001-06-27 2003-03-20 Mitsubishi Electric Corp フラッシュメモリを搭載した半導体記憶装置における装置寿命警告発生システムとその方法
JP2003109384A (ja) * 2001-09-28 2003-04-11 Tokyo Electron Device Ltd データ書込装置、データ書込制御方法及びプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526241B2 (en) 2011-01-13 2013-09-03 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device capable of improving failure-relief efficiency
US8942040B2 (en) 2011-01-13 2015-01-27 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device capable of improving failure-relief efficiency
US9007836B2 (en) 2011-01-13 2015-04-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US9147474B2 (en) 2011-01-13 2015-09-29 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device capable of improving failure-relief efficiency
US9437301B2 (en) 2011-01-13 2016-09-06 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US9741439B2 (en) 2011-01-13 2017-08-22 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
JP2014215981A (ja) * 2013-04-30 2014-11-17 大日本印刷株式会社 情報記憶媒体及びバイトコード実行方法
JP7443078B2 (ja) 2020-02-06 2024-03-05 アルパイン株式会社 データ処理ユニット

Also Published As

Publication number Publication date
JP4956068B2 (ja) 2012-06-20
US20080005530A1 (en) 2008-01-03
US7849357B2 (en) 2010-12-07

Similar Documents

Publication Publication Date Title
JP4956068B2 (ja) 半導体記憶装置およびその制御方法
US8489854B1 (en) Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US7295479B2 (en) Apparatus and method for managing bad blocks in a flash memory
US9037782B2 (en) Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
JP4991320B2 (ja) ホスト装置およびメモリシステム
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9058296B2 (en) Data processing method, memory storage device and memory control circuit unit
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US7773420B2 (en) Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP2007094764A (ja) メモリシステム
TW201339835A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9032135B2 (en) Data protecting method, memory controller and memory storage device using the same
JP4242245B2 (ja) フラッシュrom制御装置
JP2007293917A (ja) メモリシステムの制御方法
TWI571881B (zh) 有效資料合併方法、記憶體控制器與記憶體儲存裝置
TW202024924A (zh) 資料儲存裝置與資料處理方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005115562A (ja) フラッシュrom制御装置
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
Lafi et al. High level modelling and performance evaluation of address mapping in NAND flash memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees