[go: up one dir, main page]

JP4079506B2 - 不揮発性半導体メモリシステムの制御方法 - Google Patents

不揮発性半導体メモリシステムの制御方法 Download PDF

Info

Publication number
JP4079506B2
JP4079506B2 JP11909998A JP11909998A JP4079506B2 JP 4079506 B2 JP4079506 B2 JP 4079506B2 JP 11909998 A JP11909998 A JP 11909998A JP 11909998 A JP11909998 A JP 11909998A JP 4079506 B2 JP4079506 B2 JP 4079506B2
Authority
JP
Japan
Prior art keywords
block
physical
address
zone
logical
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.)
Expired - Fee Related
Application number
JP11909998A
Other languages
English (en)
Other versions
JPH11110283A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP9214561A external-priority patent/JPH10124384A/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP11909998A priority Critical patent/JP4079506B2/ja
Priority to CA 2245271 priority patent/CA2245271C/en
Priority to TW87113055A priority patent/TW392173B/zh
Priority to US09/130,818 priority patent/US6845438B1/en
Priority to KR10-1998-0032271A priority patent/KR100365385B1/ko
Priority to EP20050003250 priority patent/EP1533703A3/en
Priority to EP19980114979 priority patent/EP0896280A3/en
Publication of JPH11110283A publication Critical patent/JPH11110283A/ja
Priority to KR10-2002-0034590A priority patent/KR100438012B1/ko
Priority to US10/786,960 priority patent/US7054991B2/en
Priority to US10/913,865 priority patent/US8756401B2/en
Priority to US11/931,101 priority patent/US8230156B2/en
Publication of JP4079506B2 publication Critical patent/JP4079506B2/ja
Application granted granted Critical
Priority to US12/564,770 priority patent/US20100023680A1/en
Priority to US12/702,134 priority patent/US9009387B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリシステムの制御方法に関し、特に不揮発性半導体メモリカードの制御に使用されるものである。
【0002】
【従来の技術】
近年図1に示すようなフラッシュメモリカードがデジタルスチルカメラやPDA等の携帯情報機器の記憶媒体として注目されている。フラッシュメモリとしてNAND型フラッシュメモリと呼ばれるフラッシュメモリが使用され販売がなされている。
【0003】
このメモリカードは図1に示すように薄型のプラスチックパッケージ1にわずかな窪みが設けられておりその窪みに22ピンの平面電極を有するフラッシュメモリ2が埋め込まれている。本フラッシュメモリカードは専用のコネクタを介してホストシステムに電気的に接続され、データの入出力を行うというものである。
【0004】
これらのメモリカードはコネクタを介して信号のやり取りを行うので、メモリカードの各端子とコネクタの端子との接触が不完全だった場合には、誤動作する可能性が大きくなる。このため、メモリカードの各端子と情報処理機器のコネクタの端子とが確実に接触しているかどうかを確認する方法が考案されてきた。
【0005】
特に、従来のメモリカードを用いた制御システムでは、メモリカードの各端子とコネクタの対応する端子は同時に接続/切断されていたので、挿入/抜去時において、接続/切断のタイミングの僅かなズレが生じることがある。このため、例えば、電源が供給されている状態で、コマンドラッチイネーブル信号等の制御信号が不定になると、意図しない書込みまたは消去コマンド等が取り込まれデータを破壊する可能性があり、メモリカードとコネクタの挿抜制御には細心の注意が必要であった。
【0006】
フラッシュメモリとして、16MビットのNAND型フラッシュメモリの場合を例に取ると、図2に示すように、フラッシュメモリは512個の物理的なメモリブロックに分割されている。このブロックは消去時の最小単位となっている。1ブロックはさらに16ページに分割される。1ページは書き込みおよび読み出しの基本的な単位となる。1ページは264バイトから構成され、うち256バイトはユーザーデータ領域(データ部)、残りの8バイト(冗長部)はエラー訂正符号および管理情報等の格納(冗長部)に使用される。
【0007】
これに対して、パソコン側ではデータは図3に示す論理ブロックによって管理される。論理ブロック(LBA:Logical Block Address )は500個設定されており、1個の論理ブロックは連続した8セクタに相当する。すなわち、論理ブロック0は論理セクタ0〜7を意味する。
【0008】
通常パソコン等ではデータはセクタ(512バイト)単位で管理されるため、本メモリカードでも512バイト単位でのデータ管理を基本とすべく物理ブロックの2ページをペアとして論理ブロックの1セクタ分のデータを記憶させる。データの具体的な格納方法を図4に示す。
【0009】
未使用の正常ブロックは、データ部、冗長部とも“FFh”に設定されている。下記に各々のバイトの意味あいにつき説明する。Data Area−1は512バイトデータのうち、前半の0〜255バイトのデータが格納される。Data Area−2には512バイトデータのうち、後半の256〜511バイトのデータが格納される。User Data Areaのデータは、ユーザーに解放されており使用方法はユーザーに一任される。Data Status Areaはデータが正常か否かを示す。通常は“FFh”だが、正常でないデータが書き込まれている場合に“00h”が設定される。Block StatusAreaはブロックが良か不良かを示す。通常は“FFh”だが、不良ブロックの場合、“00h”(初期不良ブロック)、“F0h”(後発不良ブロック)が設定される。2ビット以上“0”であった場合は、不良ブロックであると判断する。なお、本データは同一ブロック内では全て同じ値を書き込む。BlockAddress Area−1はブロックの論理アドレス情報を示す。なお、1論理ブロックを構成する8セクタには512の物理ブロックのうち1物理ブロックに相当するので、本データは同一ブロック内では全て同じ値が書込まれることになる。同様にして、Block Address Area−2はBlockAddress Area−1のデータと同じ内容が書かれている。ECCArea−1は偶数ページデータ(256バイト)の3バイトECCコードである。ECC Area−2は、奇数ページデータ(256バイト)の3バイトECCコードである。
【0010】
64MビットNAND型フラッシュメモリの場合を例に取ると、図5に示すように、フラッシュメモリは1024個の物理的なメモリブロックに分割されている。このブロックは消去時の最小単位となっている。1ブロックはさらに16ページに分割される。1ページは書き込みおよび読み出しの基本的な単位となる。1ページは528バイトから構成され、うち512バイトはユーザーデータ領域(データ部)、残りの16バイト(冗長部)はエラー訂正符号および管理情報等の格納(冗長部)に使用される。論理ブロックは図6に示すように、1000個に設定されており、1個の論理ブロックは連続した16セクタに相当する。すなわち論理ブロック0は論理セクタ0〜15を意味する。64MビットNAND型フラッシュメモリのデータ格納方法を図7に示す。
【0011】
このようなメモリカードの制御では、データ更新時は消去済み領域に更新データを書き込み、元のデータが存在する領域を消去するという、追加書き込み方式を採用しているため、ある論理ブロックに対応するデータが存在する物理ブロックは、固定では無く、常にメモリ内を移動している。したがって、図8に示すように物理ブロックの冗長部には自分がどの論理ブロックに対応するデータを保持しているかを示す論理ブロックアドレス情報を記憶している。ここで、図4および図7中のBlock Address Area−1及びBlock Address Area−2が、対応する論理ブロックアドレスに相当する。
【0012】
ゆえに、通常は電源投入時に、全物理ブロックの該論理ブロックアドレス情報格納領域をサーチし、システムRAM上に、論理ブロックと物理ブロックの変換テーブルを作る。一度テーブルを作成した後は、該テーブルを参照すれば、論理ブロックに対応する物理ブロックがすぐに判断可能なため、全ブロックのサーチ動作は電源投入時に1回行われる。当然のことながら、データの更新を行い、対応する物理ブロックの位置が変化した場合、メモリシステムは、論理番地/物理番地変換テーブルの更新作業を行い、次のアクセスに備えることになる。
【0013】
しかし、従来のメモリシステムにおいては、前記論理番地/物理番地変換テーブルに要するRAM領域が膨大になってしまうという第1の問題点があった。以下にその内容を詳述する。
【0014】
従来の16MビットNAND型フラッシュメモリの論理番地/物理番地変換テーブルを図9に示す。上述したように、1論理ブロック分のデータ、すなわち連続した8セクタ分のデータは、フラッシュメモリ中の512ブロックのうちのいずれかの物理ブロックに存在する。512個の物理ブロックから1個のブロックを選択するには、9ビット必要となる。ソフトウェアの利便性に配慮してオフセットがそのまま物理ブロックを指し示す様にテーブルを構成すると、1論理ブロックに対し2バイト、計1KBのRAM領域が必要となる。例えば、論理ブロック5の情報が格納されている物理ブロックの番地はテーブルの先頭からオフセット5ワード(10バイト)目に格納される。
【0015】
このように、従来用いられていた方法においては、論理番地/物理番地変換テーブルが必要とするRAM領域が非常に大きいという問題点があった。通常よく用いられる、汎用CPUでは内蔵RAMとして1KB程度のRAMを搭載しているのが一般的である。従って、従来は、論理番地/物理番地変換テーブルだけで1KBを使用する必要があり、内蔵RAMのみではシステム構成ができず、外づけのRAMをシステムとして有することが条件となりコストアップの大きな要因となっていた。
【0016】
図10に従来の64MビットNAND型フラッシュメモリの論理番地/物理番地変換テーブルを示す。この場合、1論理ブロック分のデータ、すなわち連続した16セクタ分のデータはフラッシュメモリ中の1024ブロックのうちのいずれかの物理ブロックに存在する。1024個の物理ブロックから1個の物理ブロックを選択するには、10ビット必要となることから、合計2KBのRAM領域が必要となる。このため、16ビットNAND型フラッシュメモリ同様膨大なRAM領域が必要となる。
【0017】
この問題は、フラッシュメモリの容量が大きくなるほど深刻になる。例えば、1Gビットの時代になるとブロック数は8192個になるため、16KBのRAM容量が必要となる。
【0018】
また、さらにメモリ容量が増加すると、フラッシュメモリの物理ブロックの冗長部に論理アドレスを格納できないという第2の問題が生じる。図7に示す16MビットNAND型フラッシュメモリの物理ブロックの冗長部のBlock Address Areaには自分がどの論理ブロックに対応するデータを保持しているかを示す論理ブロックアドレス情報が格納される。各物理ブロックの冗長部のBlock Address Areaの構造を図11に示す。図11中で、偶数ページの262バイトおよび奇数ページの259バイト目のD4〜D7の4ビットは“0”“0”“0”“1”、偶数ページの263バイトおよび奇数ページの260バイト目のD0の1ビットは“1”固定値となる。従って、格納可能なブロックアドレスの最大値は、BA0〜BA10で表される、2047である。512MビットのNAND型フラッシュメモリでは物理ブロックが4096個存在するため、Block Address Areaの記述方法を変更しない限り、アドレスを格納することはできない。従来のフラッシュメモリと冗長部の制御方法を異にするため、ホストが2種類のプログラムを用意しない限り、広範囲の容量のフラッシュメモリを制御できず、ホストシステムのプログラム格納領域の容量を圧迫する問題が発生する。
【0019】
次に、フラッシュメモリの書き込み、消去について簡単に述べる。フラッシュメモリの書き込みはページ単位で一括して実行される。64MビットNAND型EEPROMの場合は1ページ528バイトである。また消去はブロック単位で実行される。64MビットNAND型EEPROMは16ページで1ブロックを構成する。このようにNAND EEPROMでは書き込みと消去の単位が異なる。従ってあるページのみを消去してデータを更新する事は出来ない。
【0020】
フラッシュメモリカードをパソコンで使用する場合には一般的にDOS支配下のドライブとして取り扱われる。図12に従来のDOSフォーマットパラメータを示す。ここでは、図12(a)として、クラスタサイズ4KBの場合、図12(b)としてクラスタサイズが8KBの場合を示している。クラスタとはDOSのファイル管理の基本最小単位で、ファイルサイズが非常に小さくても1個のクラスタ分の容量は占有する。ファイルサイズが大きい場合は、複数個のクラスタのチェーンとして管理され、その管理情報はFAT(File Allocation Table)に格納される。クラスタのサイズやFATの管理方法等はブートセクタと呼ばれるセクタ内で管理される。1個のデバイスが複数個のドライブとして管理される場合は、マスターブートセクタにその情報が格納される。ファイルの書き込みとしては、OSからクラスタ単位で書き込み命令が発行される。
【0021】
クラスタサイズが4KBの場合を図12(a)に示す。論理セクタ0にマスターブートセクタ、論理セクタ16にブートセクタ、論理セクタ17〜22にFAT、論理セクタ23〜28にFATのコピー、論理セクタ29〜44にディレクトリー、論理セクタ45以降にファイルデータ領域が配置されている。
【0022】
クラスタサイズが8KBの場合を図12(b)に示す。論理セクタ0にマスターブートセクタ、論理セクタ16にブートセクタ、論理セクタ17〜19にFAT、論理セクタ20〜22にFATのコピー、論理セクタ23〜38にディレクトリー、論理セクタ39以降にファイルデータ領域が配置されている。
【0023】
まず、図13を用いて、クラスタサイズ4KBの場合を例に従来の書き換えシーケンスを説明する。クラスタサイズは4KBなので、連続した8セクタ分の書き込み命令がOSから発行される。このとき論理セクタの45〜52(クラスタA)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ32〜44までを元ブロックから新領域NAND Block Cにコピーする。2) 論理セクタ45〜47の新データを新領域NAND Block Cに書き込む。3) 元ブロックNAND Block Aを消去する。4) 論理番地/物理番地変換テーブルの更新。5) 消去済み新領域を探し、論理セクタ48〜52の新データを新領域NAND Block Dに書き込む。6) 元ブロックNAND Block Bの論理セクタ53〜63のデータを新領域NAND Block Dにコピーする。7) 元ブロックNAND Block Bを消去する。8) 論理番地/物理番地変換テーブルの更新。従って、外部からみて8セクタの書き換えを実施した場合、実際デバイスとしては、論理セクタ32〜63の合計32セクタ(32ページ)の書き込み動作と、NAND Block A、NAND Block Bの合計2ブロックに対する消去動作が実施されたことになる。
【0024】
次に、図14を用いて、クラスタBに対する書き込みシーケンスを説明する。この場合論理セクタの53〜60(クラスタB)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ−48〜52までを元ブロックNAND Block Bから新領域NAND Block Cにコピーする。2) 論理セクタ−53〜60の新データを新領域NAND Block Cに書き込む。3) 論理セクタ−61〜63までを元ブロックNAND Block Bから新領域NAND Block Cにコピーする。4) 元ブロックNAND Block Bを消去する。5) 論理番地/物理番地変換テーブルの更新。従って、外部からみて8セクタの書き換えを実施した場合、実際デバイスとしては、論理セクタの48〜63の合計16セクタ(16ページ)の書き込み動作と、NAND Block Bの1ブロックに対する消去動作が実施されたことになる。
【0025】
次に、図15を用いて、クラスタサイズ8KBの場合を例に従来の書き込みシーケンスを説明する。クラスタサイズは8KBなので、連続した16セクタ分の書き込み命令がOSから発行される。このとき論理セクタの39〜54(クラスタA)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ32〜38までを元ブロックNAND Block Aから新領域NAND Block Cにコピーする。2) 論理セクタ39〜47の新データを新領域NAND Block Cに書き込む。3) 元ブロックNAND Block Aを消去する。4) 論理番地/物理番地変換テーブルの更新。5) 消去済み新領域を探し、論理セクタ48〜54の新データを新領域NAND Block Dに書き込む。6) 元ブロックNAND Block Bの論理セクタ55〜63のデータを新領域NAND Block Dにコピーする。7) 元ブロックNAND Block Bを消去する。8) 論理番地/物理番地変換テーブルの更新。従って、外部からみて16セクタの書き換えを実施した場合、実際デバイスとしては、セクタ32〜63の合計32セクタ(32ページ)の書き込み動作と、NAND Block A、NAND BlockBの合計2ブロックに対する消去動作が実施されたことになる。
【0026】
上記クラスタが4KBのものと8KBの場合を同じ8KBのデータが書き込まれる場合を想定し比較すると、クラスタサイズが4KBの場合は、2回の書き込みに処理が分割され合計48セクタの書き込みおよび3ブロック分の消去動作が発生する。クラスタサイズが8KBの場合は、クラスタサイズが4KBの場合に比べて1回の書き込みに処理が集約され合計32セクタの書き込みおよび2ブロック分の消去動作が発生する。
【0027】
このように従来のメモリシステムは、外部から見て更新されたセクタ数に比較し、実際にデバイス上で実行された書き込み動作および消去動作がはるかに多くなるため、外部からみた書き換え速度が遅くなると言う第2の問題点があった。
【0028】
次に、従来のメモリシステムにおけるファイル消去コマンド実行時の動作について説明する。通常DOSのファイルシステムにおいては、ファイル消去コマンド実行時に、ディレクトリー上に該当ファイルが無効である旨のマーキングを行い、該当ファイルが占有していたメモリ領域をFAT(File Allocation Table)上で開放する。従って、ファイル本体のデータ部分はフラッシュメモリ上に消去されずに残っている。消去コマンド実行時の管理領域とデータ領域の関係を図16に示す。図16において、例えばFile−1とFile−4の消去コマンドを実行した場合、管理領域のFile−1とFile−4が開放されdel.markがマーキングされる。このときデータ領域においてはFile−1、File−4は消去されない。
【0029】
このため、その後の書込みコマンド実行時に、前記開放された領域に対し新たなファイルのデータ部分が書き込まれる際に、まずフラッシュメモリの消去動作が必要となる。このため、ファイル書き込み時に必ずフラッシュメモリの消去動作を伴い、ファイル書き込み速度を劣化させるという第3の問題点が生じる。
【0030】
図4に示す、ECC Area−1は偶数ページデータ(256バイト)の3バイトECCコードである。ECC Area−2は、奇数ページデータ(256バイト)の3バイトECCコードである。
【0031】
ここでECC(Error Correction Code)とはエラー訂正のための符号をさす。システムはこのエラー訂正用の符号を利用し、読み出したデータにエラーがあるか否かを判定し、エラーが存在する場合、エラーを訂正することができる。必要なエラー訂正能力はフラッシュメモリ自身の信頼性、例えばメモリのセル構造に依存する。フラッシュメモリには複数のデータ記憶方法があり、これらのフラッシュメモリを例えばデジタルスチルカメラやPDA等のシステムに用いた場合のエラー訂正について考える。
【0032】
例えば、第1のフラッシュメモリカードは、図17に示すようにメモリセルのしきい値に応じた、“0”と“1”の2値の値を保持し、1ページ(256バイト)に対して1ビットエラー訂正用の符号を持たせている。また、第2のフラッシュメモリカードは、図18に示すようにメモリセルのしきい値に応じた、“00”と“01”と“10”と“11”の4値(2ビット分)の値を保持し、1個のメモリセルが破壊されると2ビット分のデータが破壊される可能性があるため、1ページ(256バイト)に対して2ビットエラー訂正用の符号を持たせている。1ビットエラー訂正用と2ビットエラー訂正用では符号の生成、およびエラーの検出、訂正に関してはアルゴリズムが異なる。
【0033】
従来のシステム(例えば、デジタルスチルカメラや、PDA等)では図19に示すように1種類のエラー訂正アルゴリズムのみ搭載していた。このため、上記第1および第2のどちらかのフラッシュメモリカードしか読めないという第4の問題点が生じ、フラッシュメモリの市場での汎用性を高める上での障害となっていた。
【0034】
【発明が解決しようとする課題】
本発明の、第1、第4、第5の実施例に係る発明は、上記第1の問題点を鑑みてなされ、論理番地/物理番地変換テーブルで必要となるRAMの容量を低減し、汎用CPUの内蔵RAMのみでフラッシュメモリを制御する方法を提供し、これにより従来必要であった外付けRAMを不要となし、大幅なコストダウンを実現することを目的とする。
【0035】
さらに、本発明の第2の実施例に係る発明は、上記第2の問題点を鑑みてなされ、物理ブロックにおいて、DOS上のファイル管理の基本単位であるクラスタの区切れが、消去の単位となるブロックをまたがないようにする方法を提供し、データの高速書込みを実現することを目的とする。
【0036】
また、本発明の第3の実施例に係る発明は、上記第3の問題点を鑑みてなされ、消去コマンド実行時に物理ブロックの管理領域を解放すると同時に、そのデータ領域の消去も行うことにより、その後の書込みコマンド実行時の処理速度の向上を実現することを目的とする。
【0037】
さらに、本発明の第6の実施例に係る発明は、上記第4の問題点を鑑みてなされ、2値/多値等の2種類のフラッシュメモリカードのいずれもまたは更に複数のフラッシュメモリがサポート可能なシステムを提供することにある。
【0038】
【課題を解決するための手段】
本発明は、
消去動作の最小単位である物理ブロックが複数配列された不揮発性半導体メモリを有する不揮発性半導体メモリシステムの制御方法において、
複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第1のゾーンに割り当てられる論理ブロックアドレスに対して、前記第1のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第1のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込み、
前記不揮発性半導体メモリシステムへのアクセス要求に際してホストから受けた論理ブロックアドレスが、前記第1のゾーンに割り当てられた論理ブロックアドレスに対応しているか否かを判別し、対応していないと判別された場合は、前記第1のゾーンとは異なる複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第2のゾーンに割り当てられる論理ブロックアドレスに対して、前記第2のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第2のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込むことを特徴とする不揮発性半導体メモリシステムの制御方法
として構成される。
【0039】
さらに、本発明は、
消去動作の最小単位である物理ブロックが複数配列された不揮発性半導体メモリを有する不揮発性半導体メモリシステムの制御方法において、
前記不揮発性半導体メモリシステムの電源投入に際して、複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第1のゾーンに割り当てられるファイル管理領域に相当する論理ブロックアドレスに対して、前記第1のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第1のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込み、
前記不揮発性半導体メモリシステムへのアクセス要求に際してホストから受けた論理ブロックアドレスが、前記第1のゾーンに割り当てられた論理ブロックアドレスに対応しているか否かを判別し、対応していないと判別された場合は、前記第1のゾーンとは異なる複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第2のゾーンに割り当てられるファイルデータ領域に相当する論理ブロックアドレスに対して、前記第2のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第2のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込むことを特徴とする不揮発性半導体メモリシステムの制御方法
として構成される。
【0040】
【発明の実施の形態】
本発明の第1の実施例について詳細に説明する。本実施例は、論理番地/物理番地変換テーブルに必要なRAM領域の容量の削減を行ったフラッシュメモリカードについてである。
【0041】
まず、繰返しになるが本発明のメモリシステムの、物理ブロックの構造と論理ブロックの関係について説明する。
【0042】
本発明のメモリシステム物理ブロック構造及び物理ブロック内のデータ構成は、従来技術の項で説明したもの同様で、図2および図4に示される。以下に、図4を用いて、本発明のメモリシステムにおける物理ブロック内の各々のバイトの意味を説明する。
【0043】
Data Area−1は512バイトデータのうち、前半の0〜255バイトでデータが格納される。Data Area−2には512バイトデータのうち、後半の256〜511バイトのデータが格納される。User DataAreaのデータは、ユーザーに解放されており使用方法はユーザーに一任される。Data Status Areaはデータが正常か否かを示す。通常は“FFh”だが、正常でないデータが書き込まれている場合に“00h”が設定される。Block Status Areaはブロックが良か不良化を示す。通常は“FFh”だが、不良ブロックの場合、“00h”(初期不良ブロック)、“F0h”(後発不良ブロック)が設定される。2ビット以上“0”であった場合は、不良ブロックであると判断する。なお、本データは同一ブロック内では全て同じ値を書き込む。Block Address Area−1はブロックの論理アドレス情報を示す。なお、1論理ブロックを構成する8セクタには512の物理ブロックのうち1物理ブロックに相当するので、本データは同一ブロック内では全て同じ値が書き込まれることになる。同様にして、Block Address Area−2はBlock Address Area−1のデータと同じ内容が書かれている。ECC Area−1は、偶数ページデータ(256バイト)の3バイトECCコードである。ECC Area−2は、奇数ページデータ(256バイト)の3バイトECCコードである。
【0044】
ここで、ECCについて説明する。本実施例では256バイト(2048ビット)単位のデータに対しECC符号を生成する。1ビット訂正の機能を持たせるために、256バイトに対し22ビットのECCデータを使用している。256バイトは図20に示すように、データに並べたものである。
【0045】
即ち、1Byte目の入力のbit0が2048bitの1bit目(アドレス;00000000 000)となり、256Byte目の入力のbit7が2048bitの2048bit目(アドレス;11111111 111)となる。
【0046】
ECCコード(ラインパリティ(LP)とカラムパリティ(CP))は図21に示す条件を満足する1024ビットの奇数パリティとして算出される。
【0047】
カラムパリティ−CP0〜CP5は1バイト(8ビット)でデータが入力される毎に更新される。ECC符号の生成をソフトウェアで行う場合は、1バイトの入力(256通り)に対してのカラムパリティ計算結果を予めシステム内のROM上に持つ方法が考えられる。この方法により、ビット単位の演算が不要になり、計算時間が大幅に短縮できる。またバイトの入力(256通り)に対してのカラムパリティ計算結果を電源投入時に一括で計算し、RAM上に保持する方法も考えられる。前案に比較しROMは無くて済むが、代わりにRAM領域が必要となる。
【0048】
図22は、本発明の第1の実施例に係るフラッシュメモリカードの電源投入時の制御フローチャートである。以下にフローに従い説明する。(ステップS1) コネクタにメモリカードが挿入されたことを受けて、電源電圧の検知を行う。(ステップS2) メモリカードのIDコードを読み出し、記憶容量を読みとる。(ステップS3) もしシステムがサポートしていないIDコードが読み出されたらリジェクトする。(ステップS4) 物理フォーマットの確認を行う。物理番地の先頭ブロックの情報を読む。(ステップS5) もしシステムがサポートしていないフォーマットがなされていればリジェクトする。(ステップS6) 論理番地/物理番地変換テーブルを作るとともに、次の書き込み動作で書き込みを行うための消去済み領域を選択する。
【0049】
図23に上記ステップS6に示した電源投入時に作成する論理番地/物理番地変換テーブルの作成のフローチャートを示す。(ステップS1) 論理番地/物理番地変換テーブルが入るRAM領域をリセットする。(ステップS2) 次のデータ書き込みに使用される消去済みのブロックを記憶するテーブル領域をリセットする。(ステップS3) 物理ブロックの1からサーチを開始する。(ステップS4) ブロックの冗長部を読み出す。(ステップS5) 所定領域のデータを元に該ブロックが正常なブロックか否かを判断する。不良ブロックの場合以下に続く処理は不要となり、次のブロックのサーチに移行する。(ステップS6) 消去済みのエリアかどうかを判断する。(ステップS7) 消去済みのブロックであれば次の書き込みの際に使用するブロックの候補としてテーブル上に格納する。(ステップS8) 消去済みのエリアで無ければ、論理アドレス情報領域を抽出する。このとき、パリティチェックを行い妥当性を確認する。(ステップS9) 上記内容をもとに論理番地/物理番地変換テーブルを作成する。(ステップS10) 物理ブロック番号のカウントアップ。(ステップS11) 512ブロックサーチしたら終了。
【0050】
このフローにしたがって作成された論理番地/物理番地変換テーブルを図24に示す。図24に示す物理ブロックエリア(Physical Block Area )とは、連続した2個の物理ブロックの集合体を意味する。例えば、物理ブロックエリア0とは、物理ブロック0と物理ブロック1を示す。本テーブルでは1個の論理ブロックに対して1個の物理ブロックエリアを割り付けている。例えば、論理ブロック0に対し、物理ブロックエリア5が割り振られている場合、物理ブロックの10もしくは11が実際の論理ブロック0のデータを記憶していることになる。従って、実際にアクセスする時には、物理ブロック10および11の冗長部の論理アドレスとの関連を示すデータ領域を検索し、どちらが論理ブロック0のデータを本当に格納しているのかを判断する必要がある。しかし、極めて限定された領域をリードするのみで済むため、メモリアクセスの性能に及ぼす影響はほとんどない。
【0051】
このとき、物理ブロックエリアは全体で256個(512/2)存在し、8ビットのデータによって記述する事が可能となる。ソフトウェアの利便性に配慮してオフセットがそのまま物理ブロックを指し示す様にテーブルを構成すると、1ブロックに対して1バイト、計0.5KBのRAM領域が必要となる。例えば、論理ブロック5の情報が格納されている物理ブロックエリアの番地はテーブルの先頭からオフセット5バイト目に格納される。
【0052】
この0.5KBのRAM容量は、従来必要であった1KBのRAM容量に対し半分となる。汎用CPUは通常1KB程度のRAM領域をもっているが、本実施例によって得られた0.5KBのRAM領域の削減は非常に大きな役割をしめる。
【0053】
すなわちコストアップを招く外付けRAMを設けなくても、本実施例によって得られた0.5KBの空き領域を使用する事によってシステムを構成する事が可能となりコストダウンをはかることができる。
【0054】
また、上記実施形態に限らず、物理ブロックエリアとして4物理ブロックを定義しても良いし、さらに大きなブロック数を想定しても構わない。
【0055】
図25は本実施例に係るフラッシュメモリカードの読み出し時の動作フローチャートである。以下にフローに従い説明する。(ステップS1) 読み出しを行う先頭セクタアドレスと転送セクタ数をホストから受け取る。(ステップS2) 読み出し範囲が、妥当な範囲か検証する。(ステップS3) セクタを論理ブロックに変換。16Mビット品の場合は1ブロック8セクタ構成なので8で割ることになる。(ステップS4) 論理番地/物理番地変換テーブルを参照し、該当論理ブロックが存在する物理ブロックエリアを得る。(ステップS5) ブロックエリアにある2個の物理ブロックの論理アドレス情報領域を調べ、いずれがホストの指定した論理ブロックのデータを格納しているかを調べる。(ステップS6) 特定された物理ブロックから1セクタ分データを読み出す。例えばセクタ番号が0の時は、物理ブロックの先頭2ページのデータを読み、例えばセクタ番号が7の時は、物理ブロックの最終2ページのデータを読む。1個の物理ブロックの中では、8個のセクタのデータが順番に並んでいる。(ステップS7) 読み出したデータに対しエラーチェックを行い、エラーが無いか確認する。(ステップS8) エラーが検出されたら、訂正可能か否かを判断する。(ステップS9) エラーが検出され、なおかつ訂正可能な場合データを訂正する。(ステップS10) ホストが要求したセクタ数を読み出したら終了する。(ステップS11) 次の読み出しセクタが物理ブロックの境界を越えるかどうかを判断する。例えば、セクタ7から8に移行する場合、データは各々異なる物理ブロックに存在するため、新たに論理番地/物理番地変換テーブルを再度参照する。(ステップS12) 同一ブロック内で読み出しを継続する場合は、読み出すページをカウントアップする。(ステップS13) 別のブロックへ移動する場合は、論理ブロックをカウントアップし、ページのカウントもリセットする。
【0056】
次に、本実施例の書込み時の動作について説明する。書き込みは基本的に以下の3部分の処理に大別される。論理セクタ3を書き換える場合を例に説明する。更新はセクタ3のみだが、セクタ0から7の8セクタ分のデータは同一ブロック上に存在するので、1ブロックに対する処理が必要になる。書き込みは基本的に以下の3部分の処理に大別される。
【0057】
第1に、論理セクタ0、1及び2に関しては、データの更新は無いので、論理セクタ0、1及び2のデータは、元々格納されていた論理ブロックから新しく書き込みを行う物理ブロックへコピーされる。
【0058】
第2に、論理セクタ3は更新するので、元のデータをコピーする必要はなく、ホストから与えられたデータを新たに書込みを行うブロックへ書き込む。
【0059】
第3に、論理セクタ4〜7はデータの更新はないので、論理セクタ4〜7のデータは、元々格納されていた物理ブロックから新しく書き込みを行う物理ブロックへコピーする。
【0060】
以上のように、1ブロックに対して、コピー/更新データ書き込み/コピーの動作が基本となる。勿論、書き込みがセクタ0〜7の様な場合は、1ブロック分全てのデータが更新されるのでコピー動作は不要となることは自明である。以下に示すフローチャートの分岐は主にこれから書き込むセクタが更新データか、もしくはコピー動作なのかを判断しながら進行することになる。
【0061】
図26は本実施例に係るフラッシュメモリカードの書き込み時の動作フローチャートである。以下にフローに従い説明する。(ステップS1) ホストからデータの更新を行う先頭セクタ番地と転送セクタ数を受け取る。(ステップS2) 論理ブロック番号に変換し、論理番地/物理番地変換テーブルを参照する。読み出し動作と同様に論理ブロックエリアの2個のブロックから本当の物理ブロックを選択する。ここで選択したブロックからコピーすべきデータを吸い上げることになる。(ステップS3) 物理ブロックの先頭から処理を開始する。(ステップS4) ブロック前半のコピー動作かもしくはデータの更新かを判断する。(ステップS5) コピーであれば、元ブロックからデータを読み出し、新ブロックに書き込みを実行する。(ステップS6) 次のセクタの処理に移行する。(ステップS7) (ステップS4)で更新領域と判断されたら、ホストから受け取った更新データを基に書き込みを行う。(ステップS8) 次のセクタの処理に移行する。(ステップS9) ホストが要求するセクタ数書き込んだか確認する。(ステップS10) (ステップS9)で要求数の書き込みが終了したと判断された場合、ブロックの境界か否かを判断する。未書き込みの領域が残っていれば、ブロック後半のコピー動作に移行。ブロック境界であれば、これ以上コピー動作を実行する必要はない。(ステップS11) 元のブロックからデータを読み出し、新ブロックに書き込む。(ステップS12) 次のセクタの処理に移行する。(ステップS13) (ステップS4)でホストの要求するセクタ数の書き込みが終了していない場合は更なる書き込みが必要だが、ブロック境界であれば、次の物理ブロックに対する処理に移行する。(ステップS14) 次にブロック処理に移行または、処理を終了する前に、書き込みを行った結果をもとに論理番地/物理番地変換テーブルの更新を行い、さらに元データが存在した物理ブロックを消去し、次の処理での新たな書き込み領域としての候補領域として登録する。(ステップS15) 次のブロックの処理に移行する。
【0062】
以上に述べたように、本実施例のメモリシステムの制御方法によれば、RAM領域の大幅な削減が実現できる。これは、従来のメモリカードシステムは論理番地/物理番地変換テーブルで必要なRAM容量が大きく、汎用CPUの内蔵RAMのみではシステム構成ができず、外づけのRAMを設けることが条件となっていたに対して、本発明のメモリカードシステムは論理番地/物理番地変換テーブルとして必要なRAMの容量を低減し、汎用CPUの内蔵RAMのみ制御可能としたフラッシュメモリを制御する方法を用いるからである。このことにより、従来必要であった外付けRAMを不要とし、大幅なコストダウンを実現することが可能となる。
【0063】
次に、本発明の第2の実施例について詳細に説明する。本実施例はDOSフォーマット形式で用いた場合に、データの書き換え動作を高速化したフラッシュメモリカードについてである。
【0064】
図27に本実施例によるDOSフォーマットパラメータを示す。ここでは、図27(a)として、クラスタサイズ4KBの場合、図27(b)としてクラスタサイズが8KBの場合を示している。クラスタサイズが4KBの場合、論理セクタ0にマスターブートセクタ、論理セクタ19にブートセクタ、論理セクタ20〜25にFAT、論理セクタ26〜31にFATのコピー、論理セクタ32〜47にディレクトリー、論理セクタ48以降にファイルデータ領域が配置されている。クラスタサイズが8KBの場合、論理セクタ0にマスターブートセクタ、論理セクタ25にブートセクタ、論理セクタ26〜28にFAT、論理セクタ29〜31にFATのコピー、論理セクタ32〜47にディレクトリー、論理セクタ48以降にファイルデータ領域が配置されている。このように、クラスタサイズが4KBおよび8KBの場合とも、クラスタの区切れが物理的なブロックの区切れをまたがないようパラメータが設定されている。これは、DOSフォーマットパラメータの内、ブートセクタの配置される場所を調整することにより実現できる。
【0065】
まず、図28を用いて、クラスタサイズ4KBの場合を例に書き込みシーケンスを説明する。クラスタサイズは4KBなので、連続した8セクタ分の書き込み命令がOSから発行される。このとき論理セクタの48〜55(クラスタA)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ48〜55までの新データを新領域NAND BlockCに書き込む2) 論理セクタ56〜63の元データを新領域NAND BlockCにコピーする。3) 元ブロックNAND BlockBを消去する。4) 論理番地/物理番地変換テーブルの更新。
【0066】
従って、外部からみて8セクタの書き換えを実施した場合、実際デバイスとしては、論理セクタ48〜63の合計16セクタ(16ページ)の書き込み動作と、NAND BlockBの1ブロックに対する消去動作が実施されたことになる。
【0067】
次に、図29を用いて、またクラスタBに対する書き込みシーケンスを説明する。この場合論理セクタの56〜63(クラスタB)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ48〜55までの元データを新領域NAND BlockCにコピーする。2) 論理セクタ56〜63の新データを新領域NAND BlockCに書き込む。3) 元ブロックNAND BlockBを消去する。4) 論理番地/物理番地変換テーブルの更新。
【0068】
従って、外部からみて8セクタの書き換えを実施した場合、実際デバイスとしては、論理セクタ48〜63の合計16セクタ(16ページ)の書き込み動作と、NAND BlockBの1ブロックに対する消去動作が実施されたことになる。
【0069】
次に、図30を用いて、クラスタサイズ8KBの場合を例に書き込みシーケンスを説明する。クラスタサイズは8KBなので、連続した16セクタ分の書込み命令がOSから発行される。このとき論理セクタの48〜63(クラスタA)に対する書き込み(データ更新)が発生する。1) 消去済み新領域を探し、論理セクタ48〜63までの新データを新領域NAND Block Cに書き込む。2) 元ブロックNAND BlockBを消去する。3) 論理番地/物理番地変換テーブルの更新。
【0070】
従って、外部からみて16セクタの書き換えを実施した場合、実際デバイスとしては、論理セクタ48〜63の合計16セクタ(16ページ)の書き込み動作と、 NAND Block Bの1ブロックに対する消去動作が実施されたことになる。
【0071】
上記クラスタが4KBのものと8KBの場合を同じ8KBのデータが書き込まれる場合を想定し比較すると、クラスタサイズが4KBの場合は、2回の書き込みに処理が分割され合計32セクタの書き込みおよび2ブロック分の消去動作が発生する。これに対し、クラスタサイズが8KBの場合は、1回の書き込みに処理が集約され合計16セクタの書き込みおよび1ブロック分の消去動作が発生することになる。
【0072】
図12〜図15に示した従来のメモリシステムの書き換え速度と比較すると、クラスタが4KBの場合では、8KBのデータを更新するのに48セクタの書き込みおよび3ブロック分の消去動作が発生していたものが、32セクタの書き込みおよび2ブロック分の消去動作となり、時間的に2/3に短縮されたことになる。また、クラスタが8KBの場合では、8KBのデータを更新するのに32セクタの書き込みおよび2ブロック分の消去動作が発生していたものが、16セクタの書き込みおよび1ブロック分の消去動作となり、時間的に1/2に短縮されたことになる。
【0073】
このように、DOSのファイル管理の単位であるクラスタの区切れが、フラッシュメモリの物理的なブロックの境界をまたがないことにより、書き換え速度の高速化がはかれる。
【0074】
また、クラスタのサイズに着目するとクラスタが4KBの場合では、8KBのデータを更新するのに32セクタの書き込みおよび2ブロック分の消去動作が発生していたものが、クラスタが8KBの場合では16セクタの書き込みおよび1ブロック分の消去動作となり、時間的に1/2になる。すなわち、クラスタのサイズをフラッシュメモリの物理ブロックのサイズと同じにすることによってより高速な書き込みが可能となる。勿論、クラスタのサイズがフラッシュメモリの物理ブロックのサイズの整数倍の場合も同様の効果を得ることができる。
【0075】
次に、本発明の第3の実施例について詳細に説明する。本実施例は消去後の書込みコマンド実行時の処理速度を向上させるフラッシュメモリカードについてである。
【0076】
本実施例のフラッシュメモリカードシステムは、通常DOSのファイルシステムにおけるファイル消去と異なり、ディレクトリー上に該当ファイルが無効である旨のマーキングを行い、該当ファイルが占有していたメモリ領域をFAT(File Allocation Table )上で開放するのみならず、ファイル本体のデータ部分をフラッシュメモリ上で消去することを特徴とする。すなわちファイルの消去命令時に、開放されたクラスタの領域に対する消去動作を実施する。
【0077】
図31に消去コマンド実行時の管理領域とデータ領域の関係を示す。図31において、例えばFile−1とFile−4の消去コマンドを実行した場合、管理領域のFile−1とFile−4が開放されdel.markがマーキングされ、さらにデータ領域においてFile−1とFile−4が記憶されていた領域は消去される。
【0078】
従って、次に新たなファイル書き込み命令が発生したときに選択されるクラスタは既に消去済みであるので、即座に書き込みが可能となり、ファイル書き込み速度が向上する。一般にフラッシュメモリにおいては書き込みより消去の方が時間がかかるため、本実施例によって達成されるファイル書き込み速度の向上効果は顕著である。
【0079】
また本実施例における効果が最も顕著に現れる条件は上述した第2の実施例から分かる様に、クラスタサイズとフラッシュメモリのブロックサイズを一致させた場合である。クラスタサイズがフラッシュメモリのブロックサイズより小さい場合は、ブロックの一部分を消去することになるが、処理が煩雑であることに加え、仕様上ブロックの一部分のみが消去されている状態を許さない場合もある。クラスタサイズとブロックサイズが一致していれば、単純にブロックを消去する事によってクラスタを開放できる。勿論クラスタサイズが物理ブロックサイズの整数倍の場合も同様の効果が得られる。
【0080】
また、本実施例はその主旨を変えない範囲で様々拡張が可能である。例えば、本実施例では、ファイル消去時にデータ領域の該当するクラスタへの消去動作を実行したが、消去動作の実行タイミングはそれに限られない。例えば、フォーマット動作を実行する時点で全クラスタの消去動作を実行しても良い。勿論メモリカードの出荷時点でデータ領域のクラスタを消去済みの状態で出荷すると良い。通常メモリカードの出荷時にはメモリカードの出荷試験を実施する。このテスト終了時にディレクトリーおよびFATの書き換えによって、ファイルが無い状態にするだけでなく、本実施例のようにデータ領域の消去動作を実行しておくと、エンドユーザーの手に渡った時点で、ユーザーが手を加えることなく高速なファイル書き込みが期待できる。
【0081】
さらに例えばデジタルスチルカメラ等で使用する場合を考えると、カメラ上でのファイルの消去、再フォーマット等の画像ファイルの消去を伴う動作時において、FAT等の書換のみならず、ファイル本体が格納されていたクラスタ領域の消去を同時に実行すれば、その後の画像書き込みシーケンスにおいて、高速書き込みが可能となり、連写や動画の取り込み等が可能となる。この際には、クラスタサイズがデバイスのブロックサイズの正数倍で、クラスタの区切れがブロックサイズの区切れと一致しているとファイル本体部分の消去が容易となる。またデジタルカメラ等で電源の投入時等に自動的に不要なファイル部分を消去するようにしても良い。こうすれば、パソコン上で単純にFAT等の更新によってファイル消去がなされていたメモリカードに対しても、ユーザーの手を煩わせることなく書き込み高速化が計れる。またそのタイミングは電源投入時にのみならずいつでもかまわない。また、本発明はコンピュータシステム上等で本メモリカードを使用する場合も同様の手段により書き込みの高速化が計れる。
【0082】
また、本実施例によれば、データの書き換え時に発生する、消去および書き込み回数を減らすことが可能なため、一般的に書き換え回数に制限のあるフラッシュメモリを使用する場合には、メモリの寿命をのばす効果も有する。
【0083】
以上に述べたように、本実施例のメモリシステムの制御方法によれば、DOSのファイル管理の単位であるクラスタの区切れが、フラッシュメモリの物理的なブロックの境界をまたがないことにより、データの書き換え時に発生する消去および書き込み回数を減らすことが可能なため、書き換え速度の高速化が可能となる。さらに、一般的に書き換え回数に制限のあるフラッシュメモリを使用する場合には、メモリの寿命をのばすことも可能となる。
【0084】
次に、本発明の第4の実施例について詳細に説明する。本実施例は、論理番地/物理番地変換テーブルに必要なRAM領域の容量の削減を行ったフラッシュメモリカードについてである。
【0085】
本実施例では、論理番地/物理番地変換テーブル作成に際し、ホストからのアクセスを2種類に分類する。例えば、ケース1は論理ブロック500個の内、前半の250個の論理ブロックをアクセスしている状態、ケース2は論理ブロック500個の内、後半の250個の論理ブロックをアクセスしている状態とする。ケース1の場合は、論理番地/物理番地変換テーブルには前半250ブロック分のテーブルを保持させ、上記ケース2の場合は、論理番地/物理番地変換テーブルは後半250ブロック分のテーブルを保持させる。ケース1の場合のテーブルの状態を図32(a)に示し、ケース2の場合のテーブルの状態を図32(b)に示す。
【0086】
ある瞬間、テーブル上に論理ブロックの前半250個分のテーブルが存在していたとすると、ホストからのアクセス範囲が論理ブロックの後半0〜249ならば、既存のテーブルを使用して論理ブロック−物理ブロックの対応を検索することができる。
【0087】
同様にある瞬間、テーブル上に論理ブロックの後半250個分のテーブルが存在していたとすると、ホストからのアクセス範囲が論理ブロックの後半250〜499ならば、既存のテーブルを使用して論理ブロック−物理ブロックの対応を検索することができる。
【0088】
次に、ある瞬間、テーブル上に論理ブロックの前半250個分のテーブルが存在していたとし、ホストからのアクセス範囲が論理ブロックの後半250〜499ならば、既存のテーブルを使用して論理ブロック−物理ブロックの対応を検索することができない。従ってこの場合は、論理ブロックの後半250個分に相当する論理番地/物理番地変換テーブルを作り直す。これにはフラッシュメモリの全領域の再度の参照が必要となる。
【0089】
同様に、ある瞬間、テーブル上に論理ブロックの後半250個分のテーブルが存在していたとし、ホストからのアクセス範囲が論理ブロックの前半0〜249ならば、既存のテーブルを使用して論理ブロック−物理ブロックの対応を検索することができない。従ってこの場合は、論理ブロックの前半250個分に相当する論理番地/物理番地変換テーブルを作り直す。これにはフラッシュメモリの再度の参照が必要となる。
【0090】
このように、ホストからアクセスした領域に相当する論理番地/物理番地変換テーブルがRAM上になければ再度フラッシュメモリの全領域を参照し必要な論理番地/物理番地変換テーブルを作りなおす。
【0091】
この場合の論理番地/物理番地変換テーブル作成のフローチャートを図33に示す。(ステップS0) アクセスの最初で既に必要な論理番地/物理番地変換テーブルの有無を確認し必要であればテーブル作成ルーチンへ移行。(ステップS1) 論理番地/物理番地変換テーブルが入るRAM領域をリセットする。(ステップS2) 物理ブロックの先頭からサーチを開始する。(ステップS3) ブロックの冗長部を読み出す。(ステップS4) 所定領域のデータを元に該ブロックが正常なブロックか否かを判断する。
【0092】
不良ブロックの場合以下に続く処理は不要となり、次のブロックのサーチに移行する。(ステップS5) 消去済みのエリアかどうかを判断する。(ステップS6) 消去済みのブロックであれば次の書き込みの際に使用するブロックの候補としてテーブル上に格納する。(ステップS7) 消去済みのエリアで無ければ、論理アドレス情報領域を抽出する。(ステップS8) 上記内容をもとに論理番地/物理番地変換テーブルを作成する。(ステップS9) 物理ブロック番号のカウントアップ。全ブロックサーチしたら終了。
【0093】
以上のような動作で必要に応じ論理番地/物理番地変換テーブルを作成する。
【0094】
また本発明は上記実施例にかぎられない。主旨を逸脱しない範囲で種々変更が可能である。
【0095】
例えば本実施例では、フラッシュメモリを前半、後半の2分割したが、分割の数は2個に限定されず、任意の数に分割できる。
【0096】
また本実施例ではフラッシュメモリを前半、後半の等しい大きさに分割したが、本発明はこれに限られない。このように分割の個数、また大きさは自由度を有する。
【0097】
3個以上の領域に分割した際、常に1個のみのテーブルを保持する必要はない。たとえば本フラッシュメモリカードがDOSのデバイスとして、画像ファイル等を格納する場合を考えてみる。通常デバイスの先頭には、ファイルの管理領域、すなわちマスターブートセクタ、パーティションブートセクタ、ファイルアロケーションテーブル(FAT)、ディレクトリー領域が存在する。これらのファイル管理領域はファイルの更新が行われたり、アクセスされるたび頻繁にアクセスされる領域である。この場合このファイル管理領域に相当するエリアを1個の領域、その他のファイルデータ格納領域を2分割する。ファイル管理領域に相当する領域の論理番地/物理番地変換テーブルは、常に保持するようにしても良い。この場合、論理アドレスの後半部分にファイルを書き込む動作を行う際、ファイル管理領域と論理アドレス後半のテーブルを交互に頻繁に作り直す必要はなくなるので性能の劣化が防げる。ここでファイルの管理領域と記述したが、ファイル管理領域以上の領域に対しテーブルを常に保持すれば同様の効果が得られる。
【0098】
以上に述べたように本実施例によれば、論理ブロックと物理ブロックの対応関係のすべてをRAM上に常時保持するのではなく、ホストからのアクセスに応じて必要な領域のみの対応関係をシステム内のRAM上に逐次作成するので、全領域の対応関係を常時RAM上に保持する場合に比べ、システムとして最低限必要なRAM領域を低減でき、これまで不可能であった汎用CPUの内蔵RAMのみでメモリを制御することが可能となり、外付けRAMを有していた従来のケースに対して大幅なコスト削減が可能となる。
【0099】
次に、本発明の第5の実施例について詳細に説明する。本実施例は、論理番地/物理番地変換テーブルに必要なRAM領域の容量の削減を行ったフラッシュメモリカードについてである。
【0100】
本実施例では、フラッシュメモリの物理ブロックアドレスを複数の論理的な領域(以下ゾーンと呼ぶ)に分割する。このとき各ゾーンに割り当てられる物理ブロック数、すなわちゾーン毎の容量は均一であっても、不均一であってもかまわない。またゾーンの数は1個であっても複数個であってもかまわない。また偶数個であっても奇数個であってもかまわない。
【0101】
図34は、16MビットNAND型フラッシュメモリを2つの均等な容量のゾーンに分割した場合の物理ブロックの構造と論理アドレスと物理アドレスの関係を示した図である。
【0102】
ホストが該フラッシュメモリを制御する場合に、必要となる論理ブロック数は500個と定義され、論理ブロックアドレス0〜499の値をとる。物理ブロックの冗長部には自分がどの論理ブロックに対応するデータを保持しているかを示す論理ブロックアドレス情報が格納されるが、本実施例では、論理ブロックアドレスは、ゾーン毎に0からシリーズに付与される。従って、ゾーン1には論理ブロックアドレス0〜249が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス0〜255の256個の物理ブロックのいずれかに対応する。また物理ブロックの冗長部に格納される論理ブロックアドレスは0〜249のいずれかが格納される。また、ゾーン2には論理ブロックアドレス250〜499が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス256〜511の256個の物理ブロックのいずれかに対応する。また物理ブロックの冗長部に格納される論理ブロックアドレスは0〜249のいずれかが格納される。
【0103】
データ更新時の追加書き込み方式は、更新対象となる論理ブロックアドレスを含むゾーン内で行われ、ある論理ブロックに対応するデータが存在する物理ブロックは、固定では無く、常に各ゾーン内で移動している。
【0104】
本実施例では、通常は電源投入時に、ゾーン内の全物理ブロックの冗長部に格納された論理ブロックアドレス情報をサーチし、システムRAM上に論理ブロックと物理ブロックの変換テーブルを作成するが、RAM上に作成するゾーンは、どのゾーンについて行ってもかまわない。通常、該フラッシュメモリがDOS管理下で使用される場合、管理情報であるFATや、ディレクトリー領域等が最初のゾーンに置かれるため、先頭のゾーンについてテーブルを作成すると効率が良い。またRAM上に作成するテーブルは1ゾーンに制限されず、RAM容量が許されるのであれば、複数ゾーン分作成してもかまわない。
【0105】
ホストからアクセス要求に対する変換テーブルの作成過程について以下に説明する。物理ブロックアドレス0〜255を包括する領域を設定し、ゾーン1と呼ぶ。また物理ブロックアドレス256〜511を包括する領域を設定し、ゾーン2と呼ぶことにする。ホストは現在RAM上に作成されている変換テーブルがどのゾーンのものであるかを覚えている。
【0106】
RAM上にゾーン1の変換テーブルが作成されており、論理ブロックアドレス128に対するアクセス要求が来た場合の手順を以下に説明する。(1)論理ブロックアドレス128−250×(n-1 )<250となるようなnを求めるとn=1である事から、ゾーン1の変換テーブルが必要であることが分かる。(2)RAM上にある変換テーブルがゾーン1である為、テーブルの作成は行わない。(3)変換テーブル上のアドレスは0〜249の値をとるため、ホストが要求した論理ブロックアドレス128から、変換テーブル上の参照すべきアドレスを求める。128−250×(1-1 )=128より、変換テーブル上のアドレス128に対応する物理ブロックアドレスに対しアクセスすればよい。(4)書き換えが発生した場合は変換テーブルを更新し、次のアクセスに備える。
【0107】
次に、RAM上にゾーン1の変換テーブルが作成されており、論理ブロックアドレス324に対するアクセス要求がきた場合の手順を以下に説明する。(1)論理ブロックアドレス324−250×(n−1)<250となるようなnを求めるとn=2である事から、ゾーン2の変換テーブルが必要であることが分かる。(2)RAM上にある変換テーブルがゾーン1である為、ゾーン2に包括された物理ブロックアドレス256〜511の冗長部の論理ブロックアドレス情報をサーチし、RAM上にゾーン2の変換テーブルの作成を行う。(3)変換テーブル上のアドレスは0〜249の値をとるため、ホストが要求した論理ブロックアドレス324から、変換テーブル上の参照すべきアドレスを求める。324−250×(2−1)=74より、変換テーブル上のアドレス74に対応する物理ブロックアドレスに対しアクセスすればよい。(4)書き換えが発生した場合は変換テーブルを更新し、次のアクセスに備える。以上のように、アクセスする論理ブロックに応じて、変換テーブルを作成することで、従来より、RAM領域を容易に小さくすることが可能である。システムRAM上にゾーン2のテーブルが作成されている場合も、同様の過程で容易に目的のアドレスにアクセスすることができる。
【0108】
論理番地/物理番地変換テーブルを作成するときに、RAM上に論理ブロックと物理ブロックの変換テーブルを作成するが、このとき、作成するゾーンNO.が分かっているため、変換テーブル上の物理ブロックアドレスは0〜255の値を取ればよい。実際に物理ブロックにアクセスするときは、OFFSETとして、変換テーブル上の物理アドレスに256×ゾーンNO.を加える事で、容易にフラッシュメモリに入力すべき新の物理ブロックアドレスを得る事ができる。
【0109】
16MビットNAND型フラッシュメモリを用いた場合、従来制御方法では、物理ブロックアドレスを表すために9ビット必要であり、ソフトの利便性からは、2バイトを費やしていた。本実施例では、図35に示すように、物理ブロックアドレスを表すには8ビットあればよく、1バイトで済む。したがって、従来1Kバイト必要であったRAM容量は半分に節約できる。論理ブロックアドレスが増加すると、当然、論理番地/物理番地変換テーブルの容量はそれにともなって増加するため、本実施例の効果はフラッシュメモリの容量が大きくなるほど、大きく貢献する。
【0110】
また、本実施例によれば、図11に示した物理ブロックの冗長部のBlockAddress Areaに格納可能なブロックアドレスで、大容量のフラッシュメモリシステムを制御可能とする。すなわち、1つのゾーンを上記冗長部のBlock Address Areaに格納可能なブロックアドレス値の物理ブロックで構成されるように分割すれば、大容量の論理アドレスに対応可能となる。
【0111】
図36は、16MビットNAND型フラッシュメモリを4つの均等な容量のゾーンに分割した場合の物理ブロックの構造を示した図である。
【0112】
ホストが該フラッシュメモリを制御する場合に、必要となる論理ブロック数は500個と定義され、論理ブロックアドレス0〜499の値をとる。物理ブロックの冗長部には自分がどの論理ブロックに対応するデータを保持しているかを示す論理ブロックアドレス情報が格納されるが、本実施例では、論理ブロックアドレスは、ゾーン毎に0からシリーズに付与される。これらの論理ブロックアドレスに対応する物理ブロックアドレスは下記のようになる。ゾーン1には論理ブロックアドレス0〜124が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス0〜127の128個の物理ブロックのいずれかに対応する。ゾーン2には論理ブロックアドレス125〜249が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス128〜255の128個の物理ブロックのいずれかに対応する。ゾーン3には論理ブロックアドレス126〜374が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス256〜383の128個の物理ブロックのいずれかに対応する。ゾーン4には論理ブロックアドレス384〜499が割り当てられ、それぞれの論理ブロックは物理ブロックアドレス384〜511の128個の物理ブロックのいずれかに対応する。
【0113】
データ更新時の追加書き込み方式は、書き込み要求の発生した論理ブロックが存在するゾーン内のみで行われ、ある論理ブロックアドレスに対応するデータが格納された物理ブロックアドレスは、固定では無く、常にゾーン内で移動している。それぞれの物理ブロックの冗長部には自分がどの論理ブロックアドレスのデータを保持しているかを示す論理ブロックアドレス情報を格納している。
【0114】
上述のように、各ゾーンには125個の論理ブロックが割り当てられ、また128個の物理ブロックが割り当てられる。以上のように物理ブロックを4つのゾーンに分割した場合も、2つのゾーンに分割した時同様の効果を有する。
【0115】
次に、本実施例のリダンダンシー動作について、上記物理ブロック4つのゾーンに分割した場合を例に説明する。
【0116】
本実施例の説明に先立って、ゾーン分割を行わない従来のフラッシュメモリのリダンダンシー動作について、16MビットNAND型フラッシュメモリを例に説明する。図2に示すように、16MビットのNAND型フラッシュメモリは512個の物理ブロックを有するが、図3に示すように、ホストから見た論理ブロックは500個に規定される。またPCカードATAインターフェースを容易に構築するための情報を格納するために1ブロック、追加書き込み方式を採用しているために1ブロック必要となる。従って本フラッシュメモリを制御する場合502個のブロックが必要となる。従って16MビットのNAND型フラッシュメモリでは10個までの不良ブロックの存在は許される。
【0117】
しかし、フラッシュメモリには書き換え回数の上限が存在し、使用中に不良ブロックが発生することがあり、十分な記憶領域を確保するために、不良ブロックが発生した場合の、置換先として、書き込み、消去可能な有効ブロックを持っておく必要がある。また、10個以上の不良ブロックを有するフラッシュメモリについては、出荷時の容量が十分に無いことから出荷できず、製品歩留まりを下げるという問題も発生する。
【0118】
このため、有効ブロック数を多く確保し、使用中の不良ブロックの発生に備えると共に、出荷時の製品歩留まりを向上させるために、16MビットNAND型フラッシュメモリには、512個の本体ブロックの他に複数の冗長ブロックが設けられている。この冗長ブロックは出荷前に、冗長回路により、512個の本体ブロック中に発生している不良ブロックと、ハード的に置き換えられる。冗長回路を使用すると、冗長ブロックは、不良ブロックのアドレスに割り付けられる。ハード的な置き換え後は、不良ブロックが存在したアドレスを選択すると、置き換えられた冗長ブロックが選択されるようになる。ここで、冗長ブロックは無限にあるわけではないため、出荷時に、置き換えきれなかった不良ブロックは、先天性不良ブロックとして扱われる。また、ユーザーの使用中に発生した不良ブロックは、後天性不良ブロックとして扱われる。この先天性不良ブロックと後天性不良ブロックは上記有効ブロックによって救済される。
【0119】
通常、本体ブロックと冗長ブロックとの置き換えを行う場合、冗長回路を使用し、ハード的に置き換えが行われるが、図37に示したように、置き換え作業の利便性から、ブロックアドレスの小さい不良ブロックから順に連続的に、あるいは、ブロックアドレスの大きい不良ブロックから順に連続的に置き換えが行われる。従って、ブロックの置き換え後は、ブロックアドレスの小さい方から、あるいはブロックアドレスの大きい方から連続的に書き込み、消去可能なブロックが存在している。
【0120】
このように、従来のフラッシュメモリの制御方法では、上述したように512個の物理ブロックに対し、論理ブロックが500個、PCカードATAインターフェースを容易に構築するための情報を格納するために1ブロック、追加書き込み方式を採用しているために空き領域として1ブロック必要であったため、都合、502個の書き換え可能なブロックがあれば制御可能であった。従って、従来の制御方法では、512個の物理ブロックに対し、10個の不良ブロックが許されていた。
【0121】
次に、本実施例のリダンダンシー動作について説明する。ゾーン1について考えると、PCカードATAインターフェースを容易に構築するための情報を格納するために1ブロック、追加書き込み方式を採用しているために空き領域として1ブロック必要となる。従って、125個の論理ブロックに対し、127個の書き換え可能な物理ブロックが必要となり、ゾーン内で許される、書き換え不可能な不良ブロックは1個までとなる。ゾーン2〜4については追加書き込み用の空きブロックとして、1ブロック余分に必要であることから、126個の書き換え可能な物理ブロックが必要となり、ゾーン内で許される、書き換え不可能な不良ブロックは2個までとなる。以下、説明を容易にするため、1〜4ゾーンに対し、許される不良ブロック数はそれぞれ1個とする。従って、従来制御方法で許容された不良ブロック数のスペックに対し、非常に厳しくなる。
【0122】
図36に示す16MビットNAND型フラッシュメモリにおいて、例えば、ブロックアドレス2,5,129,131,132,385,389の7ブロックが不良ブロックであり、このフラッシュメモリは4個の冗長ブロックを有しているとする。図36に示すように、冗長回路を使用し、従来のようにブロックアドレスの小さい不良ブロックから順に、冗長ブロックと置き換えた場合、置き換え後の不良ブロックは物理ブロックアドレス132、385、389の3個のブロックとなり、これらは先天性ブロックとし、該ブロックの冗長部に先天性不良ブロックのマークがつけられる。ここで従来の制御方法では、先天性不良ブロックは10個まで許されたため、該フラッシュメモリを制御する上で特に問題はない。しかしゾーンに分割して制御することを前提とした場合、ゾーン4には物理ブロックアドレス385、389の2個の不良ブロックが存在するため制御を行えず、この製品は出荷できなくなる。
【0123】
このように、本実施例のフラッシュメモリにおいて、不良ブロックがあった場合、本体の不良ブロックと冗長ブロックとの置き換えを、従来のフラッシュメモリ同様、単に置き換え作業の利便性から、ブロックアドレスの小さい不良ブロックから順に連続的に、あるいは、ブロックアドレスの大きい不良ブロックから順に連続的に置き換えを行うと、必要な良ブロックが確保できず、使用できないゾーンが発生する可能性が高くなる。
【0124】
このため、本実施例では、フラッシュメモリがゾーンに分割され制御される場合、全てのゾーンが有効ブロック数を満たすよう、各ゾーンに存在する不良ブロックと冗長ブロックとの置き換えを行う。
【0125】
図38は、ゾーン毎に存在する不良ブロックが、各ゾーンで許される不良ブロック数を越えないように、冗長ブロックとの置き換えを行った場合の物理ブロックの状態を示す図である。図38のフラッシュメモリも、図36に示したもの同様、ブロックアドレス2,5,129,131,132,385,389の7ブロックが不良ブロックと、4個の冗長ブロックを有している。従来の置き換え方法では出荷できなかったものが、良品として出荷できることが分かる。置き換え手順の一例を以下に説明する。
【0126】
(1)ゾーン1〜ゾーン4までをサーチし、以下の変数の値を求める。・不良物理ブロックアドレスの抽出を行う。Z(n) BA(m) (n=1〜4 、m=1 〜それぞれのゾーン内の不良ブロック数)・ゾーン毎の不良ブロック数を求める。Z(n) BN (n=1 〜4 )(2)Z(n) BNの n=1〜4 のうち、1つでも冗長ブロックを全て使用しても、有効ブロック数を満たせないものがあれば、置換を行わず作業を終了する。(3)Z(n) BAのn=1 〜4 のうち、最も値の大きなnを抽出する。(4)(3)で抽出されたnについてZ(n) BA(m) (m=1〜ゾーン内の不良ブロック数)の内、ブロックアドレス情報が格納されている最も小さいか、大きいmについてZ(n) BA(m) に格納された物理ブロックアドレスに該当するブロックを冗長ブロックと置き換える。(5)Z(n) BN=Z(n) BN−1(6)(3)で選択されたmについてZ(n) BA(m) のブロックアドレス情報を削除する。(7)(3)〜(6)を繰り返す。冗長ブロックを使いきれば、(9)の処理へ移る。(8)Z(n) BN (n=1 〜4 )が等しければ最も小さいか、最も大きいnのゾーンについて(3)〜(7)を繰り返す。(9)Z(n) BN (n=1 〜4 )をチェックし、スペックを越えるnが存在すれば、不良品とする。(10)終了
【0127】
当然、本体ブロックと冗長ブロックとの置き換え手順は種々考えられる。本実施例では4つのゾーンに分割された場合を例に説明したが、ゾーンが、2つあるいは、奇数に分割されるケースも考えられる。また分割されたゾーンの容量(ブロック数)が異なる場合も考えられる。いずれの場合においても、本実施例は、本体ブロックと冗長ブロックを置き換える場合、置き換え作業後の各ゾーンに存在する不良ブロックの個数が、それぞれのゾーンで許される不良ブロック数を越えないよう、それぞれのゾーンに存在する不良ブロック数を監視しながら、冗長ブロックとの置き換えを行うところであり、本実施例の趣旨を逸脱しない範囲で、置き換えの手順は異なってもかまわない。
【0128】
以上に述べたように実施例によれば、論理ブロックとフラッシュメモリの物理ブロックが1対1で対応づけられているテーブルを使用する場合に比べ、アクセス対象となるゾーン単位でテーブルを作成するため、テーブルに必要とするRAM領域を低減することが可能で、これまで不可能であった汎用CPUの内蔵RAMのみでメモリを制御することが可能となり、外付けRAMを有していた従来のケースに対して大幅なコスト削減が可能となり、特に物理ブロック数の多い不揮発性半導体メモリの制御に効果が大きい。また、物理ブロックの冗長部のBlock Address Areaで決められたビット数で、大容量の論理アドレスに対応できる。
【0129】
また、本実施例によれば、複数の物理ブロックを論理的な複数のゾーンに割り振り、ゾーン毎に論理ブロックと物理ブロックの変換テーブルを作成し、メモリアクセスを行う制御方法を行うシステムに使用されるフラッシュメモリにおいて、本体の不良ブロックと冗長ブロックとを置き換える場合、従来アドレスの小さい(大きい)方から連続的に置き換えていたのに対し、本発明では、置き換え後の各ゾーンに存在する不良ブロックの個数が、それぞれのゾーンで許される不良ブロック数を越えないよう、それぞれのゾーンに存在する不良ブロック数を監視しながら、置き換えを行うため、使用不可能なゾーンを有するために出荷できなくなる製品が減り、製品歩留りが向上する。
【0130】
次に、本発明の第6の実施例について詳細に説明する。本実施例は、2値/多値等のいずれのタイプにもサポート可能なフラッシュメモリカードについてである。
【0131】
図39は本実施例をPCカードアダプターに適応した図である。フラッシュメモリカード101Aは図17に示される2値対応のものであり、フラッシュメモリカード101Bは図18に示される4値対応のものである。PCカードアダプター102は、フラッシュメモリカード101Aおよび101Bのデータをパソコンに転送するためのものである。PCカードアダプター102は、PCカードスロット用の68ピンのコネクタおよびフラッシュメモリカード用のコネクタを具備している。内部にはフラッシュメモリカードの制御およびPCカードスロットとの電気的なインターフェースを取るためのコントローラ103および、コントローラ内部のCPU用の発振子104、バッファ用のRAM105等がある。コントローラ103中には、本発明に直接的に関係する2種類のエラー訂正用の回路、ECC回路1およびECC回路2がある。
【0132】
図40に電源投入時の制御例を示す。(ステップS1) 電源電圧検知本メモリカードには、5V電源電圧と、3.3V電源電圧の製品があるが、3.3V電源電圧動作のメモリカードに5Vの電源が印加されると、電圧破壊等の問題が発生する可能性がある。これを回避するため、システムは電源電圧を検知している。(ステップS2、3)IDチェックフラッシュメモリカードには記憶容量またはインターフェース仕様の異なる複数種類の物がある。システムにメモリカードが挿入された時には、デバイスのメーカーコードおよびデバイスコード等を判別し、想定外のコードの場合は新たなアクセスはしないようにする。またメーカーコード、デバイスコード等の読み出しには正規の電源電圧を投入する。(ステップS4〜8)ECCのチェックここではECCの方式についてのチェックを行う。
【0133】
以下に、ECC方式を認識させる方法の一例を示す。第1の方法は、上記ステップS2、3と同様にデバイスコードにより判別する方法がある。例えば、同じ容量のフラッシュメモリであっても、メモリ構成によってデバイスコードを変えれば良い。
【0134】
図41は、本実施例の16Mビットフラッシュメモリのデータ部と冗長部の構成を示した図である。図4に示す従来のものと異なる点は、冗長部のUsreData AreaがECC Flag AreaとECC Area−3とに割り当てられている点である。図41に示すようにECCの符号を格納する領域としてECC Area−1から3までの3個の領域を定義している。上記3個の領域の使用方法を図42を用いて説明する。ここでは、ECC Flag Areaバイト中にECCの方式に関する情報を記憶させておく。例えば、ECC方式1の場合Flagデータとしては“AAh”、ECC方式2の場合は“55h”と定義しておく。
【0135】
ECC方式1に基づく、フラッシュメモリカードの場合、ECC Area−1には、偶数ページデータ(256バイト)の3バイトECCコードが、ECC Area−2は、奇数ページデータ(256バイト)の3バイトECCコードが入り、ECC Area−3は空白である。ECC Area−1および2は各々256バイトのデータの内、2ビットのエラーを訂正できる。
【0136】
ECC方式2に基づく、フラッシュメモリカードの場合、ECC Area−1、ECC Area−2、ECC Area−3に512バイトに対するECC符号が分散して記憶される。この場合512バイトのデータの内、2ビットのエラーを訂正できる。
【0137】
図39のPCカードアダプター102内のコントローラ103はフラッシュメモリカードがアダプターに挿入されるとECC Flag Areaを読み出し、ECC方式を判別する。
【0138】
図39中では、ECC方式1およびECC方式2それぞれに対応した符号生成、およびエラー検出回路が選択される。コントローラ中のCPUはホストとバッファ用RAMとフラッシュメモリ間のデータの流れを制御する。また図39中のECC回路は、必ずしもハードウェアである必要性はない、ECC符号の生成等すべてをソフトウェアで実行することも勿論可能である。
【0139】
また本発明は上記実施例に限られない。発明の主旨を逸脱しない範囲で種々変更可能である。
【0140】
上記実施例では、2種類のECC方式の存在を仮定したが、方式は2種類には限られない。3種類以上のECC方式を設定可能である。
【0141】
また、ECC方式の選択には、ECCを使用しないという選択も含まれる。信頼性の非常に高いフラッシュメモリカードや、音声分野等のデーダで特に高い信頼性を必要としない分野等ではECCは必須ではない。その場合、上記ECCFlag Areaの内容が“FFh”であればECCを使用していないと定義しても良い。
【0142】
また上記実施例では、フラッシュメモリ毎にECCの方式を定義していたが、本発明はそれにかぎられない。例えば、セクタ単位、もしくはブロック単位等、任意の単位でECCの方式を切り替えてもよい。この場合、単純に電源投入時にECCの方式を判別するのではなく前述の所定単位にアクセスする都度ECCの方式を切り替えてもよい。また例えば、ECCの方式1で読み出されたデータを方式2に変換して再格納するような動作も想定可能である。
【0143】
また上記実施例では、PCカードアダプターを例に説明したが、本実施例はPCカードアダプターに限られない。例えば、デジタルスチルカメラやPDA、ワードプロセッサー、音声録音機等各種機器に対しても同様に議論可能である。このように本実施例を使用すれば、非常に広い使用範囲のフラッシュメモリカードを1つのシステムで使用可能となる。
【0144】
以上に述べたように、本実施例によれば、エラー訂正アルゴリズムの異なる複数のフラッシュメモリカードを一つのシステムが取り扱い可能となるので、飛躍的に汎用性が向上する。
【0145】
【発明の効果】
【0146】
本発明によれば、論理アドレスと物理アドレスとを変換テーブルで変換するに際し、1個の論理ブロックに対して複数個の物理ブロックを割り振るようにしたので、テーブルが必要とするRAM領域を低減することが可能となる。
【0147】
さらに本発明によれば、クラスタの区切れが消去単位となるブロックをまたがないようにしたので、データ書換え時に発生する消去同数及び書き込み同数を減らすことができる。
【0148】
さらに、本発明によれば、消去コマンド実行時に物理ブロックの管理領域を開放すると同時に、そのデータ領域の消去も行うことにしたので、その後の書込みコマンド実行時の処理速度の向上することが可能となる。
【0149】
さらに本発明によれば、論理ブロックと物理ブロックの対応関係のうちの必要な領域の対応関係のみを逐次作成するようにしたので、最低限必要なRAM領域を低減することができる。
【0150】
さらに、本発明によれば、不良ブロックを冗長ブロックに置き換えるに際し、論理的なゾーンのそれぞれにおいて、置き換え後には、各ゾーンに存在する不良ブロック数が所定値を越えないようにしたので、製品の歩留りを向上させることができる。
【0151】
さらに本発明によれば、使用する記憶媒体の種別に応じてエラー訂正アルゴリズムを選択するようにしたので、各種の記憶媒体を使用でき、汎用性が向上する。
【図面の簡単な説明】
【図1】 メモリカード外観図である。
【図2】 フラッシュメモリの物理ブロック構成を示す図である。
【図3】 パソコンにおけるデータを示す図である。
【図4】 フラッシュメモリのデータ格納方法を示す図である。
【図5】 フラッシュメモリの物理ブロック構成を示す図である。
【図6】 フラッシュメモリの物理ブロック構成を示す図である。
【図7】 フラッシュメモリのデータ格納方法を示す図である。
【図8】 従来例の論理・物理ブロック変換テーブルを示す図である。
【図9】 従来のメモリシステムにおける論理アドレスと物理アドレスの変換テーブル構成を示す図である。
【図10】 64MビットNAND型フラッシュメモリシステムにおける論理アドレスと物理アドレスの変換テーブル構成を示す図である。
【図11】 フラッシュメモリのブロックアドレスのデータ配置を示す図である。
【図12】 従来のDOSフォーマットのパラメータを示す図である。
【図13】 従来の書き替えシーケンスを示す図である。
【図14】 従来の書き替えシーケンスを示す図である。
【図15】 従来の書き替えシーケンスを示す図である。
【図16】 従来の消去コマンド実行時の管理領域とデータ領域の関係を示した図である。
【図17】 フラッシュメモリの格納データ例を示す図である。
【図18】 フラッシュメモリの格納データ例を示す図である。
【図19】 従来のシステムを示す図である。
【図20】 本発明のメモリシステムにおけるECCデータ構成を示す図である。
【図21】 本発明のメモリシステムにおけるECCコードを算出するための条件を示した図である。
【図22】 本発明のメモリシステムにおける電源投入時の制御フローチャートである。
【図23】 本発明のメモリシステムにおける論理アドレス/物理アドレス変換テーブル作成のフローチャートである。
【図24】 本発明のメモリシステムにおける論理アドレスと物理アドレスの変換テーブル構成を示す図である。
【図25】 本発明のメモリシステムにおける読み出し時のフローチャートである。
【図26】 本発明のメモリシステムにおける書き込み時のフローチャートである。
【図27】 本発明のDOSフォーマットのパラメータを示す図である。
【図28】 本発明の書き換えシーケンスを示す図である。
【図29】 本発明の書き換えシーケンスを示す図である。
【図30】 本発明の書き換えシーケンスを示す図である。
【図31】 本発明の消去コマンド実行時の管理領域とデータ領域の関係を示した図である。
【図32】 本実施例による論理ブロック−物理ブロック変換テーブル例を示す図である。
【図33】 本実施例による論理ブロック−物理ブロック変換テーブル作成例を示す図である。
【図34】 実施例の論理・物理ブロック変換テーブルを示す図である。
【図35】 実施例での物理ブロックアドレスの表現方法を示す図である。
【図36】 従来の不良ブロックと冗長ブロックの置換えを行った場合の実施例を説明するための図である。
【図37】 不良ブロックと冗長ブロックの置き換えの従来例を説明するための図である。
【図38】 ゾーン分割制御を前提に不良ブロックと冗長ブロックの置き換えを行った場合の実施例を説明するための図である。
【図39】 本発明のPCカードアダプターの構成を示す図である。
【図40】 フラッシュメモリカードをPCカードアダプターに挿入したときの、フローチャートを示す図である。
【図41】 本実施例に係るフラッシュメモリのDOSフォーマットのパラメータを示す図である。
【図42】 ECC符号領域の使用方法を示す図である。

Claims (8)

  1. 消去動作の最小単位である物理ブロックが複数配列された不揮発性半導体メモリを有する不揮発性半導体メモリシステムの制御方法において、
    複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第1のゾーンに割り当てられる論理ブロックアドレスに対して、前記第1のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第1のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込み、
    前記不揮発性半導体メモリシステムへのアクセス要求に際してホストから受けた論理ブロックアドレスが、前記第1のゾーンに割り当てられた論理ブロックアドレスに対応しているか否かを判別し、対応していないと判別された場合は、前記第1のゾーンとは異なる複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第2のゾーンに割り当てられる論理ブロックアドレスに対して、前記第2のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第2のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込むことを特徴とする不揮発性半導体メモリシステムの制御方法。
  2. 消去動作の最小単位である物理ブロックが複数配列された不揮発性半導体メモリを有する不揮発性半導体メモリシステムの制御方法において、
    前記不揮発性半導体メモリシステムの電源投入に際して、複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第1のゾーンに割り当てられるファイル管理領域に相当する論理ブロックアドレスに対して、前記第1のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第1のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込み、
    前記不揮発性半導体メモリシステムへのアクセス要求に際してホストから受けた論理ブロックアドレスが、前記第1のゾーンに割り当てられた論理ブロックアドレスに対応しているか否かを判別し、対応していないと判別された場合は、前記第1のゾーンとは異なる複数の前記物理ブロックの物理ブロックアドレスを包括する領域としての第2のゾーンに割り当てられるファイルデータ領域に相当する論理ブロックアドレスに対して、前記第2のゾーンに含まれるいずれかの物理ブロックアドレスを対応付ける第2のアドレス変換テーブルを、前記不揮発性半導体メモリシステムのRAM上に書き込むことを特徴とする不揮発性半導体メモリシステムの制御方法。
  3. 前記第1のアドレス変換テーブルは、前記第2のアドレス変換テーブルを前記RAM上に書き込む場合にあっても、前記RAM上に保持されることを特徴とする請求項2に記載の不揮発性半導体記憶システムの制御方法。
  4. 前記第1のゾーンに割り当てられた論理ブロックアドレスを対象とするデータ更新時の追加書き込み前記第1のゾーンに含まれる消去済みの前記物理ブロックに対して行い、その後第1のアドレス変換テーブルを更新し、且つ、前記第2のゾーンに割り当てられた論理ブロックアドレスを対象とするデータ更新時の追加書き込み前記第のゾーンに含まれる消去済みの前記物理ブロックに対してい、その後第2のアドレス変換テーブルを更新することを特徴とする請求項1乃至請求項のいずれか1項に記載の不揮発性半導体メモリシステムの制御方法。
  5. 前記不揮発性半導体メモリにおいては、各々の前記物理ブロック内部に、前記物理ブロックの物理ブロックアドレスに対応する論理ブロックアドレスが記憶されており、
    前記第1のアドレス変換テーブルを前記RAM上に書き込む際に、前記第1のゾーンに対応する物理ブロックをサーチして論理ブロックアドレスを抽出し、
    前記第2のアドレス変換テーブルを前記RAM上に書き込む際に、前記第2のゾーンに 対応する物理ブロックをサーチして論理ブロックアドレスを抽出することを特徴とする請求項に記載の不揮発性半導体メモリシステムの制御方法。
  6. 欠陥セルを含む不良物理ブロックを選択的に冗長物理ブロックと置換する置換機能を有し、
    前記第1のゾーン及び前記第2のゾーンの各々に対して、前記不良物理ブロックの数が所定個数以下となるよう、前記置換機能を制御することを特徴とする請求項1乃至請求項のいずれか1項に記載の不揮発性半導体メモリシステムの制御方法。
  7. 前記第1のアドレス変換テーブル及び前記第2のアドレス変換テーブル上の論理ブロックアドレスは、0からシリーズに付与されることを特徴とする請求項1乃至請求項6のいずれか1項に記載の不揮発性半導体メモリシステム。
  8. 前記第1のアドレス変換テーブル及び前記第2のアドレス変換テーブル上の物理ブロックアドレスは0からシリーズに付与され、
    前記不揮発性半導体メモリへのアクセス要求に際してホストから受けた論理ブロックアドレスが、前記第1のゾーンに割り当てられた論理ブロックアドレスに対応するか、または、前記第2のゾーンに割り当てられた論理ブロックアドレスに対応するかに応じて、前記第1のアドレス変換テーブル及び前記第2のアドレス変換テーブル上の物理ブロックアドレスに所定のオフセットを加え、前記不揮発性半導体メモリに入力される物理ブロックアドレスを得ることを特徴とする請求項1乃至請求項7のいずれか1項に記載の不揮発性半導体メモリシステム。
JP11909998A 1997-08-08 1998-04-28 不揮発性半導体メモリシステムの制御方法 Expired - Fee Related JP4079506B2 (ja)

Priority Applications (13)

Application Number Priority Date Filing Date Title
JP11909998A JP4079506B2 (ja) 1997-08-08 1998-04-28 不揮発性半導体メモリシステムの制御方法
CA 2245271 CA2245271C (en) 1997-08-08 1998-08-07 Method for controlling non-volatile semiconductor memory system
TW87113055A TW392173B (en) 1997-08-08 1998-08-07 Method for controlling non volatile semiconductor memory
US09/130,818 US6845438B1 (en) 1997-08-08 1998-08-07 Method for controlling non-volatile semiconductor memory system by using look up table
KR10-1998-0032271A KR100365385B1 (ko) 1997-08-08 1998-08-08 불휘발성반도체메모리의제어방법
EP20050003250 EP1533703A3 (en) 1997-08-08 1998-08-10 Method for controlling non-volatile semiconductor memory system
EP19980114979 EP0896280A3 (en) 1997-08-08 1998-08-10 Method for controlling nonvolatile semiconductor memory system
KR10-2002-0034590A KR100438012B1 (ko) 1997-08-08 2002-06-20 불휘발성 반도체 메모리 시스템의 제어방법
US10/786,960 US7054991B2 (en) 1997-08-08 2004-02-25 Method for controlling non-volatile semiconductor memory system
US10/913,865 US8756401B2 (en) 1997-08-08 2004-08-06 Method for controlling non-volatile semiconductor memory system
US11/931,101 US8230156B2 (en) 1997-08-08 2007-10-31 Method for controlling non-volatile semiconductor memory system
US12/564,770 US20100023680A1 (en) 1997-08-08 2009-09-22 Method for Controlling Non-Volatile Semiconductor Memory System
US12/702,134 US9009387B2 (en) 1997-08-08 2010-02-08 Method for controlling non-volatile semiconductor memory system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-214561 1997-08-08
JP9214561A JPH10124384A (ja) 1996-08-28 1997-08-08 不揮発性半導体メモリの制御方法
JP11909998A JP4079506B2 (ja) 1997-08-08 1998-04-28 不揮発性半導体メモリシステムの制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007199962A Division JP2007293917A (ja) 1997-08-08 2007-07-31 メモリシステムの制御方法

Publications (2)

Publication Number Publication Date
JPH11110283A JPH11110283A (ja) 1999-04-23
JP4079506B2 true JP4079506B2 (ja) 2008-04-23

Family

ID=26456898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11909998A Expired - Fee Related JP4079506B2 (ja) 1997-08-08 1998-04-28 不揮発性半導体メモリシステムの制御方法

Country Status (6)

Country Link
US (6) US6845438B1 (ja)
EP (2) EP0896280A3 (ja)
JP (1) JP4079506B2 (ja)
KR (2) KR100365385B1 (ja)
CA (1) CA2245271C (ja)
TW (1) TW392173B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230168840A1 (en) * 2021-11-30 2023-06-01 Microsoft Technology Licensing, Llc Hybrid solid-state drive

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JP3544476B2 (ja) 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
JP3389186B2 (ja) 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP3249959B2 (ja) * 1999-10-12 2002-01-28 株式会社ソニー・コンピュータエンタテインメント 可搬型記憶装置及びメモリカード
US6611907B1 (en) * 1999-10-21 2003-08-26 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
MXPA02003741A (es) * 2000-02-21 2002-09-30 Trek Technology Singapore Pte Dispositivo portatil para almacenamiento de datos..
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
US6438638B1 (en) 2000-07-06 2002-08-20 Onspec Electronic, Inc. Flashtoaster for reading several types of flash-memory cards with or without a PC
US7295443B2 (en) 2000-07-06 2007-11-13 Onspec Electronic, Inc. Smartconnect universal flash media card adapters
JP2002091806A (ja) * 2000-09-20 2002-03-29 Olympus Optical Co Ltd ファイルシステム
JP2002132456A (ja) * 2000-10-20 2002-05-10 Sony Corp 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP4812192B2 (ja) * 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
US6948026B2 (en) 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
KR100437609B1 (ko) * 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
JP2004062328A (ja) * 2002-07-25 2004-02-26 Renesas Technology Corp Nand型フラッシュメモリを搭載したフラッシュストレージメディア
US7627229B2 (en) * 2002-07-26 2009-12-01 Fujifilm Corporation Moving image recording apparatus and method of recording moving image
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US7234036B1 (en) * 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
JP2005108304A (ja) 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US20090204872A1 (en) * 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US8176238B2 (en) * 2003-12-02 2012-05-08 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
WO2005083573A1 (ja) * 2004-02-27 2005-09-09 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置
JP4791356B2 (ja) * 2004-05-06 2011-10-12 パナソニック株式会社 半導体メモリ装置
JP4710274B2 (ja) * 2004-08-02 2011-06-29 ソニー株式会社 メモリ装置、メモリ装置の制御方法およびデータ処理システム
US20110029723A1 (en) * 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
JP4643315B2 (ja) 2005-03-11 2011-03-02 株式会社東芝 半導体集積回路装置
US7644092B2 (en) * 2005-05-03 2010-01-05 Kabushiki Kaisha Toshiba System for managing data on memory device using file system
TWI275101B (en) * 2005-05-24 2007-03-01 Prolific Technology Inc Flash memory storage system
US8429326B2 (en) * 2005-09-12 2013-04-23 Mediatek Inc. Method and system for NAND-flash identification without reading device ID table
US7702821B2 (en) 2005-09-15 2010-04-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7644251B2 (en) * 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
TW200734875A (en) * 2006-03-08 2007-09-16 Quanta Comp Inc System and method for detecting peripheral device
JP4840975B2 (ja) * 2006-03-31 2011-12-21 株式会社リコー フェードインメモリと情報記録方法および情報再生方法
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
JP4956068B2 (ja) * 2006-06-30 2012-06-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4182993B2 (ja) * 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20080148132A1 (en) * 2006-10-26 2008-06-19 Mavila Rajith K Error detection and correction scheme for multi-level cell NAND flash
CN101578587B (zh) * 2006-11-24 2015-02-25 Lsi公司 延迟缩减存储器寿命的操作
US7818701B1 (en) * 2006-12-22 2010-10-19 Cypress Semiconductor Corporation Memory controller with variable zone size
JP4978224B2 (ja) * 2007-02-08 2012-07-18 カシオ計算機株式会社 光電変換装置及びそれを備えた表示パネル
KR100817087B1 (ko) 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
KR100882740B1 (ko) * 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
TW200839620A (en) * 2007-03-16 2008-10-01 Realtek Semiconductor Corp Card reader controller and its method of detecting interferences
US7984173B2 (en) * 2007-05-30 2011-07-19 Red Hat, Inc. Channel bundling
JP4794530B2 (ja) * 2007-10-26 2011-10-19 ルネサスエレクトロニクス株式会社 半導体装置および携帯電話
KR101449524B1 (ko) 2008-03-12 2014-10-14 삼성전자주식회사 스토리지 장치 및 컴퓨팅 시스템
US7637061B2 (en) * 2008-03-13 2009-12-29 Plinths And Caissons, Llc Grave marker grid support system
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US7996736B2 (en) * 2008-10-26 2011-08-09 Sandisk 3D Llc Bad page marking strategy for fast readout in memory
US7899967B2 (en) * 2008-11-24 2011-03-01 Mediatek Inc. Systems for accessing memory card and methods for accessing memory card by a control unit
US8386736B2 (en) * 2008-12-18 2013-02-26 Spansion Llc Rapid memory buffer write storage system and method
US8392687B2 (en) 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US20100286962A1 (en) * 2009-05-05 2010-11-11 Cheng Uei Precision Industry Co., Ltd. System and method of recording measurement data
JP5746230B2 (ja) * 2010-03-05 2015-07-08 アイファイ インコーポレイテッド エンドレスメモリ
JP5077385B2 (ja) 2010-04-15 2012-11-21 株式会社デンソー 車両用ナビゲーション装置
US8429391B2 (en) * 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
KR101936311B1 (ko) * 2010-12-03 2019-01-09 삼성전자주식회사 데이터 처리 방법
JP5221699B2 (ja) 2011-03-23 2013-06-26 株式会社東芝 半導体記憶装置
JP5451682B2 (ja) 2011-05-20 2014-03-26 株式会社東海理化電機製作所 フラッシュメモリ装置
JP5382084B2 (ja) * 2011-10-07 2014-01-08 株式会社デンソー 車両用装置
US10048884B2 (en) 2011-12-29 2018-08-14 Memory Technologies Llc Method for erasing data entity in memory module
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
JP2013200584A (ja) * 2012-03-23 2013-10-03 Sony Corp 電子機器
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US8914670B2 (en) 2012-11-07 2014-12-16 Apple Inc. Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks
JP6300202B2 (ja) * 2014-03-03 2018-03-28 パナソニックIpマネジメント株式会社 メモリカード及びメモリカード制御装置
US9710199B2 (en) * 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
USD786878S1 (en) 2015-12-04 2017-05-16 Capital One Services, Llc Payment card chip
CN109901956A (zh) * 2017-12-08 2019-06-18 英业达科技有限公司 内存整体测试的系统及其方法
US11593258B2 (en) * 2019-11-26 2023-02-28 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory
WO2021134414A1 (en) * 2019-12-31 2021-07-08 Micron Technology, Inc. Mobile storage random read performance estimation enhancements
CN112486854B (zh) * 2020-12-28 2022-08-23 潍柴动力股份有限公司 与非型闪存Nand Flash存储管理方法及装置

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3432795A (en) 1967-02-23 1969-03-11 Sylvania Electric Prod Electrical connector having facile engagement means
US3828327A (en) * 1973-04-30 1974-08-06 Ibm Simplified storage protection and address translation under system mode control in a data processing system
FR2553541B1 (fr) * 1983-10-17 1992-02-28 Inst Nat Rech Inf Automat Dispositif et procede pour le stockage rapide et stable d'informations
JPS60160491A (ja) * 1984-01-31 1985-08-22 Toshiba Corp Icカードとicカード発行装置
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
JPH0690872B2 (ja) 1986-08-18 1994-11-14 東京電気株式会社 メモリ−カ−ド装置
JP2511950B2 (ja) 1987-03-27 1996-07-03 三菱電機株式会社 インタ−フエイス回路
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
JPH01296482A (ja) 1988-05-24 1989-11-29 Mitsubishi Electric Corp メモリカード
JPH0769759B2 (ja) 1988-09-08 1995-07-31 三菱電機株式会社 メモリカード用接続機構
US5404476A (en) * 1989-02-10 1995-04-04 Nec Corporation Multiprocessing system having a single translation lookaside buffer with reduced processor overhead
CA2014799A1 (en) * 1989-05-08 1990-11-08 John W. Whisler System and method for reading and writing disks formatted for an operating system foreign to the host computer
US5210855A (en) * 1989-06-09 1993-05-11 International Business Machines Corporation System for computer peripheral bus for allowing hot extraction on insertion without disrupting adjacent devices
JPH0484216A (ja) 1990-07-26 1992-03-17 Toshiba Corp 半導体ディスク装置のデータ消去方法
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5317697A (en) 1991-07-31 1994-05-31 Synernetics Inc. Method and apparatus for live insertion and removal of electronic sub-assemblies
EP0528280B1 (en) * 1991-08-09 1997-11-12 Kabushiki Kaisha Toshiba Memory card apparatus
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
US5430857A (en) * 1993-01-04 1995-07-04 Intel Corporation Method and apparatus for translating logical addresses into physical addresses using odd/even translation tables
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
DE4339179A1 (de) 1993-04-06 1994-10-13 Hewlett Packard Co Verfahren und Vorrichtung zum Verhindern einer Signalverstümmelung auf einem gemeisamen Bus eines Computers
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
WO1994027222A1 (de) * 1993-05-10 1994-11-24 Jochen Liedtke Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge
JP3085824B2 (ja) * 1993-05-20 2000-09-11 富士写真フイルム株式会社 メモリ制御装置
US5329491A (en) * 1993-06-30 1994-07-12 Intel Corporation Nonvolatile memory card with automatic power supply configuration
US5479628A (en) * 1993-10-12 1995-12-26 Wang Laboratories, Inc. Virtual address translation hardware assist circuit and method
US5386402A (en) * 1993-11-29 1995-01-31 Kabushiki Kaisha Toshiba Access control apparatus and address translation method for disk storage device
US5555391A (en) * 1993-12-23 1996-09-10 Unisys Corporation System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written
JP2556285B2 (ja) 1994-02-15 1996-11-20 ダイソー株式会社 塩素化ポリエチレン系架橋組成物の製法
JP2609431B2 (ja) 1994-09-22 1997-05-14 山一電機株式会社 メモリカード
US5636347A (en) 1994-09-27 1997-06-03 Intel Corporation Computer card insertion detection circuit
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH08211973A (ja) 1995-01-26 1996-08-20 Mitsubishi Electric Corp Pcカード
JP3706167B2 (ja) 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US5644731A (en) 1995-07-07 1997-07-01 Sun Microsystems, Inc. Method and apparatus for hot plugging/unplugging a sub-system to an electrically powered system
US6081878A (en) * 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5717951A (en) * 1995-08-07 1998-02-10 Yabumoto; Kan W. Method for storing and retrieving information on a magnetic storage medium via data blocks of variable sizes
JP3604466B2 (ja) 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
JPH0981459A (ja) * 1995-09-19 1997-03-28 Hitachi Ltd アドレス変換バッファ装置
JP3727982B2 (ja) 1995-09-28 2005-12-21 キヤノン株式会社 フラッシュrom管理方法及び装置
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
JPH09198201A (ja) 1996-01-16 1997-07-31 Toshiba Corp 半導体ディスク装置およびその書換回数管理方法
JPH09231339A (ja) * 1996-02-27 1997-09-05 Mitsubishi Electric Corp メモリカード
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
JPH09319645A (ja) 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5832525A (en) * 1996-06-24 1998-11-03 Sun Microsystems, Inc. Disk fragmentation reduction using file allocation tables
JP2843306B2 (ja) * 1996-08-02 1999-01-06 山一電機株式会社 Icメモリーカードにおける保護装置
JPH1049257A (ja) 1996-08-05 1998-02-20 Yokogawa Electric Corp 情報処理装置
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6278678B1 (en) * 1999-02-12 2001-08-21 Sony Corporation Editing apparatus, editing method, and recording medium
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6301646B1 (en) * 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US7318117B2 (en) * 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6611907B1 (en) * 1999-10-21 2003-08-26 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US7003771B1 (en) * 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP3579389B2 (ja) * 2001-11-30 2004-10-20 株式会社東芝 ディスクアレイ装置及び同装置におけるデータ復旧方法
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US7076634B2 (en) * 2003-04-24 2006-07-11 International Business Machines Corporation Address translation manager and method for a logically partitioned computer system
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
EP1936508B1 (en) * 2005-09-22 2019-07-03 Panasonic Corporation Information recording medium access apparatus, and data recording method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230168840A1 (en) * 2021-11-30 2023-06-01 Microsoft Technology Licensing, Llc Hybrid solid-state drive
US11733927B2 (en) * 2021-11-30 2023-08-22 Microsoft Technology Licensing, Llc Hybrid solid-state drive

Also Published As

Publication number Publication date
EP1533703A2 (en) 2005-05-25
US9009387B2 (en) 2015-04-14
US8230156B2 (en) 2012-07-24
EP1533703A3 (en) 2007-10-24
KR19990023469A (ko) 1999-03-25
KR100365385B1 (ko) 2003-04-08
CA2245271C (en) 2002-01-01
KR20020075310A (ko) 2002-10-04
US7054991B2 (en) 2006-05-30
KR100438012B1 (ko) 2004-07-02
EP0896280A3 (en) 2004-05-12
US20050007865A1 (en) 2005-01-13
US20100023680A1 (en) 2010-01-28
TW392173B (en) 2000-06-01
CA2245271A1 (en) 1999-02-08
US6845438B1 (en) 2005-01-18
EP0896280A2 (en) 1999-02-10
US8756401B2 (en) 2014-06-17
JPH11110283A (ja) 1999-04-23
US20100138606A1 (en) 2010-06-03
US20050005059A1 (en) 2005-01-06
US20080059695A1 (en) 2008-03-06

Similar Documents

Publication Publication Date Title
JP4079506B2 (ja) 不揮発性半導体メモリシステムの制御方法
US8775771B2 (en) Block management method for a flash memory and flash memory controller and storage system using the same
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
JPH10124384A (ja) 不揮発性半導体メモリの制御方法
US11809328B2 (en) Control method of flash memory controller and associated flash memory controller and storage device
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2007293917A (ja) メモリシステムの制御方法
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP4242245B2 (ja) フラッシュrom制御装置
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
CN102467459B (zh) 数据写入方法、存储器控制器与存储器储存装置
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN110442300B (zh) 整理指令记录方法、存储器控制电路单元与存储装置
CN110162493B (zh) 存储器管理方法及使用所述方法的储存控制器
CN102063381A (zh) 用于闪存的数据写入方法及其控制器与储存系统
CN106326131B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN115145488A (zh) 部分抹除管理方法、存储装置及存储器控制电路
CN116009790A (zh) 有效节点管理方法、存储装置及存储器控制电路单元
CN118349186A (zh) 映射表更新方法与存储装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071102

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080205

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

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110215

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees