JP2003508861A - セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成 - Google Patents

セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成

Info

Publication number
JP2003508861A
JP2003508861A JP2001522164A JP2001522164A JP2003508861A JP 2003508861 A JP2003508861 A JP 2003508861A JP 2001522164 A JP2001522164 A JP 2001522164A JP 2001522164 A JP2001522164 A JP 2001522164A JP 2003508861 A JP2003508861 A JP 2003508861A
Authority
JP
Japan
Prior art keywords
block
sector
information
volatile memory
flash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001522164A
Other languages
English (en)
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.)
Micron Technology Inc
Original Assignee
Lexar Media Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23540599&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2003508861(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Lexar Media Inc filed Critical Lexar Media Inc
Publication of JP2003508861A publication Critical patent/JP2003508861A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 本発明の一実施形態は、ブロックに分けられた不揮発性メモリ(16)内の格納位置(232)内にセクタ情報を格納する不揮発性メモリシステムを備える。複数のブロックは、スーパーブロックを規定し、各ブロックは所定の複数のセクタを有する。不揮発性メモリシステムは、セクタ情報を、特定のスーパーブロック(204)の第1のブロック(210)と第2のブロック(216)にシフトさせ、セクタ情報を特定のスーパーブロックの第1のブロック(210)に書き込むコントローラ(14)を備える。第1のブロックへの書込み中に、第2のブロック(216)へのシフト全体が起こり、それにより、ブロックへの書込み動作を行うために必要な時間が減少し、全体的なシステム性能が上がる。

Description

【発明の詳細な説明】
【0001】 (発明の背景) (関連出願の相互参照) 本出願は、以前に出願された米国特許出願第09/283,728号、および
他の以前に出願された米国特許出願第09/264,340号の一部継続出願で
ある。米国特許出願第09/283,728号は、「SPACE MANAGE
MENT FOR MANAGING HIGH CAPACITY NONV
OLATILE MEMORY」という名称であり、1999年4月1日に出願
され、発明者がPetro Estakhri、Berhanu Iman、お
よびMin Guoである。米国特許出願第09/264,340号は、「MO
VING SECTORS WITHIN A BLOCK OF INFOR
MATION IN A FLASH MEMORY MASS STORAG
E ARCHITECTURE」という名称であり、1999年3月8日に出願
され、発明者が、Petro Estakhri、Berhanu Iman、
およびAli Ganjueiであり、1999年5月25日に発行された米国
特許第5,907,856号、および、以前に出願された、米国特許出願第09
/030,697号の継続出願である。米国特許第5,907,856号は、「
MOVING SECTORS WITHIN A BLOCK OF INF
ORMATION IN A FLASH MEMORY MASS STOR
AGE ARCHITECTURE」という名称である。米国特許出願第09/
030,697号は、「INCREASING MEMORY PERFORM
ANCE IN FLASH MEMORY DEVICES BY PERF
ORMING SIMULTANEOUS WRITE OPERATION
TO MULTIPLE DEVICES」という名称であり、1998年2月
25日に出願され、発明者が、Petro EstakhriおよびBerha
nu Imanである。これらの特許の開示内容の全ては、全文が記載されてい
るかのように、本明細書中で参考として援用される。
【0002】 (発明の分野) 本発明は、概して、フラッシュメモリのような不揮発性メモリデバイスを採用
するデジタル格納システムの分野、特に、情報を不揮発性メモリデバイスに書き
込むことにかかる時間を低減して、システム性能全体を高めることに関する。
【0003】 (従来技術の説明) 近年、固体メモリは、様々な技術領域、例えば、コンピュータ、デジタルカメ
ラ、モデムなどにおける、大容量記憶装置機器の代わりとしての使用において、
人気が高まってきた。例えば、デジタルカメラにおいて、フラッシュメモリのよ
うな固体メモリは、従来のフィルムの代わりに用いられている。
【0004】 フラッシュメモリは、概して、半導体デバイス(または、チップ)の形態で提
供され、各デバイスは、多数のトランジスタメモリセルで作られ、各セルは、個
別にプログラマブルである。このようなメモリセルのプログラミング(もしくは
、書き込み)、および消去は、消去−書き込みサイクルが有限の回数に制限され
、基本的にデバイスの寿命を定めている。さらに、フラッシュメモリセルの固有
の特徴は、プログラムされる前に、消去され、消去が成功したかどうか確認され
る必要があることである。
【0005】 従って、フラッシュメモリを用いることによって、一度情報を含んだメモリの
領域を、同じ領域を再プログラムするたびに、その前に消去することが必要にな
る。フラッシュメモリデバイスにおいて、書き込みおよび消去サイクルは、概し
て、時間がかかるものであり、そのことによって、大容量記憶装置としてフラッ
シュメモリを利用するシステムの性能が大幅に低下する。
【0006】 フラッシュメモリデバイスを採用する適用例、例えば、パーソナルコンピュー
タおよびデジタルカメラにおいて、ホストは、通常は半導体デバイスの形態のコ
ントローラデバイスを介して、情報を、フラッシュメモリデバイスに書き込んだ
り、フラッシュメモリデバイスから読み出す。このような情報は、セクタに編成
され、各セクタは、ユーザデータ情報およびオーバーヘッド情報(まとめて、セ
クタ情報と呼ばれる)を含む。セクタのユーザデータ部分は、典型的には、長さ
が512バイトであるが、他のサイズのセクタも同様に採用され得る。コントロ
ーラは、ホストが命令した書き込み動作中に、ホストからセクタ情報を受信する
と、所定のセクタ編成に従って、セクタ情報をフラッシュメモリデバイスに書き
込む。ホストが複数のセクタにアクセスし得る間、各セクタは、1度に1つずつ
フラッシュデバイスに書き込まれる。
【0007】 データファイル(データファイルは、商業的ソフトウェア、ユーザプログラム
、ワードプロセッサソフトウェア文書、拡張シートファイルなどを含む、任意の
コンピュータファイルであり得る)の格納および/または取り出しにおいて、コ
ンピュータ(または、ホスト)システムは、データファイルが大容量記憶装置内
で存在するとホストが考えるロケーションを示す、論理ブロックアドレスと呼ば
れるものを提供する。ホストが提供するアドレスは、コントローラによって受信
されると論理ブロックアドレスフォーマットに変換される、シリンダー、ヘッダ
およびセクタ(CHS)の形態であり得る。同じことが、デジタルカメラの適用
例にもあてはまる。その後、コントローラは、論理ブロックアドレス(LBA)
を、仮想論理ブロックアドレス(VLBA)に変換し、後者を用いて、空間マネ
ージャ参照テーブル(LUT)内の仮想物理的ブロックアドレス(VPBA)を
参照する。VPBAを取り出すと、コントローラは、VPBAを用いて、フラッ
シュメモリ内のデータファイルにアクセスする。データファイルは、不揮発性メ
モリ内の、所定の数のセクタを有するブロックに格納される。例えば、ブロック
は、16個のセクタを含み、各セクタは、512バイトのユーザデータ情報、お
よび様々なバイトの拡張またはオーバーヘッド情報(例えば、フラグ、ECCな
ど)を含む。VPBAは、不揮発性メモリ内の特定のブロックのロケーションを
特定するために、PBAに変換される。
【0008】 データファイルが変更されるたびに、最新バージョンのファイルが、新たな物
理的ロケーション(または、新たなPBA)によって識別されるフラッシュメモ
リ内の利用可能な(または、「使用されていない」)ロケーションに格納される
。更新されたファイル用に、フラッシュメモリ内の空き(利用可能な)ロケーシ
ョンの多くを用いると、さらなる情報の格納用に利用可能な「古い」ロケーショ
ンを作るために、消去動作が必要となり得る。消去動作に(書き込み動作と同様
に)時間がかかるため、次の消去動作の前により多くのロケーションが用いられ
れれば用いられるほど、消去動作を行う頻度と、フラッシュメモリ内の空きロケ
ーションを探すための時間との間でトレードオフがある。消去動作の回数を低減
するか、または、不揮発性メモリ内の情報のブロックのロケーションの特定に関
連する検索にかかる時間を低減することによって、システム性能を向上させるた
めの方法を試み、探す努力が絶え間なく行われている。
【0009】 不揮発性メモリまたはフラッシュメモリ内の情報は、コントローラの方向の下
に格納され、セクタの形態で行われ、複数のセクタがブロックの境界を定める。
ブロックは、16個、32個、または他の個数のセクタを含み得る。ブロックが
所定の数のセクタを含むことが決定されると、この決定されたサイズが各ブロッ
クの境界を規定する。従って、不揮発性メモリに格納された情報が、ブロックに
編成され、各ブロックは、コントローラによって一意的にアドレス可能である。
さらに、各ブロックは複数のセクタからなり、各セクタは、512バイトと、デ
ータ以外の情報、例えば、フラグ、アドレスおよびエラー訂正コード(ECCを
格納するためのさらなる格納空間とによって規定される。しかし、セクタは、5
12バイト以外のデータ格納空間を有してもよい。いくつかの従来技術によるシ
ステムにおいて、消去動作中、ブロック全体が消去されるが、他の従来技術によ
るシステムにおいて、セクタが消去され得る。ブロック内の各セクタは、不揮発
性メモリから情報を読み出したり、不揮発性メモリに情報を書き込んだりするた
めに、一意的にアドレス可能である。一意的な値は、起動中に、複発性メモリに
関連するアドレスまたはマッピング情報の再構成において用いられる、仮想論理
ブロックアドレス(VBLA)として、セクタ情報を含む各ブロック内で維持さ
れる。当業者にとって周知であるように、電力が失われる場合、ランダムアクセ
スメモリ(RAM)のような不揮発性メモリにおいて維持される情報は、失われ
る。不揮発性メモリ内に格納されるブロック情報に関するマッピング情報は、概
して、以下でさらに説明するように、揮発性メモリ内の参照テーブル(LUT)
において維持される。
【0010】 現在、商業用ソフトウェアおよびユーザプログラム等の大きなファイルがフラ
ッシュメモリ内に格納されるコンピュータ、および大きな画像ファイルがフラッ
シュデバイス内に格納されるデジタルカメラにおいて、それらのファイルは、1
度に1セクタづつフラッシュ内に書き込まれる。各書込み動作に関連する待ち時
間のため、大量の情報を格納する場合、これらのシステムのパフォーマンスは制
限される。特定のセクタに実施される書込み動作に関連する工程のうちのいくつ
かは、書込みコマンドを書き込まれるフラッシュ(メモリ)デバイスにシフトす
ること、セクタ情報を書き込まれるフラッシュデバイスにシフトすること、そし
て、その後にセクタ情報が続く書込みコマンドを、セクタ情報が格納されるべき
ブロック内へと書き込む(またはプログラムする)ことを開始することである。
一般に、セクタ情報をフラッシュデバイスにシフトするために、512バイトの
セクタに対して、30マイクロ秒が必要とされる。実際にセクタ情報をフラッシ
ュデバイスに書き込むためには、200マイクロ秒が必要とされる。従来技術に
よるシステムの制限の1つは、1度に1つのセクタが書き込まれることにより、
各セクタを書き込むために230マイクロ秒よりも長い時間が必要とされること
である。各ブロックが、そのブロックに書き込まれなければならない16のセク
タを含む場合、それらのセクタの全てを書き込むために16×230マイクロ秒
よりも長い時間が必要とされ、多くのセクタを書き込む場合には、システムパフ
ォーマンスを著しく遅くする。
【0011】 この問題を克服するために試みられてきた従来技術によるシステムでの1つの
方法は、1度に2つのセクタの書込みを許容するために、1度に2つのセクタに
アドレスすることである。これらの従来技術は、実際のセクタ情報書込み時間を
2分の1に減少させる一方、2セクタ分のセクタ情報をシフトするために必要と
される時間の2倍がなおも必要とされる。上記の例では、1024バイトのセク
タ情報を実際に書き込むために、(400マイクロ秒に対して)200マイクロ
秒が必要とされるが、1024バイトのセクタ情報をシフトするために、2×3
0マイクロ秒、すなわち、60マイクロ秒が必要とされる。よって、512バイ
トのユーザデータを有する2つのセクタを書き込むために、合計で約260マイ
クロ秒が必要とされる。このような従来技術によるシステムの理解に役立てるた
めに、図1および図1aを参照して、一例を示す。
【0012】 フラッシュデバイス602およびフラッシュデバイス604を備えた従来技術
によるデジタル記憶システム600を図1に示す。各フラッシュデバイスは、ブ
ロック0から始まり、順番にブロックN(Nは整数)まで続く情報ブロックに組
織される。本例では、1つのフラッシュデバイスの各ブロックが16のセクタを
含むため、これらのフラッシュデバイス内で同じ位置にある2つのブロックは、
32セクタの情報を書き込むために用いられる。これらのセクタは番号付けされ
ており、フラッシュデバイス602内に偶数のセクタが格納され、フラッシュデ
バイス604内に奇数のセクタが格納されるが、これは任意の設計事項であり、
その逆もなされ得る。セクタは、2つのフラッシュデバイスにわたって割当てら
れる2つのブロック位置内に32のセクタを含むように番号付けされる。さらに
、セクタの番号付けにより、例えば、第1のセクタS0が、フラッシュデバイス
602の第1のブロックの第1のセクタ記憶位置(ブロック0)に現われ、第2
のセクタS1が、フラッシュデバイス604の第1のブロックの第1のセクタ記
憶位置(ブロック0)に現われ、第3のセクタS2が、フラッシュデバイス60
2の第1のブロックの第2の記憶位置(ブロック0)に現われ、第4のセクタS
3が、フラッシュデバイス604の第1のブロックの第2の記憶位置(ブロック
0)に現われるようなフラッシュデバイス間での切換えが起こる。
【0013】 フラッシュデバイスの各々の2つのブロック間のセクタを偶数および奇数に番
号付けする理由は、セクタ情報をフラッシュデバイス602に結合させ、かつフ
ラッシュデバイス602から結合するためのデータバスDB7:0 616、お
よびセクタ情報をフラッシュデバイス604に結合させ、かつフラッシュデバイ
ス604から結合するための別のデータバスDB15:7 624を用いて、セ
クタ情報を並列にロードすることを可能にすることである。FCE0*信号62
0は、アクティブである場合、コマンド/アドレスおよびセクタデータ、ならび
にその中のオーバーヘッド情報をシフトするためにフラッシュデバイスをイネー
ブルまたは選択する。本例では、信号620は、アクティブロー信号である。
【0014】 図1aは、後者の動作を説明するために用いられる、従来技術の図1に示す信
号のタイミング図である。図1aでは、データバスDB15:0は、事実上、バ
ス616および624の組み合わせであり、WE*信号は、制御信号622に含
まれる信号のうちの1つである。ローである場合、WE*信号は、フラッシュデ
バイスに情報をシフトさせる。最初に、セクタS0およびS1に対するコマンド
およびアドレス情報がフラッシュデバイスにシフトされる。次に、セクタユーザ
データおよびECC情報が、フラッシュデバイスにシフトされる。フラッシュデ
バイス602は、616バスを介して、512バイトのデータを受信し、フラッ
シュデバイス604は、624バスを介して、512バイトのデータを受信する
。セクタ情報の全てのシフトが完了すると、コントローラは、書込み動作を開始
し、これにより、Frdy/Bsy*信号618がアクティブ化される(ハイ状
態からロー状態になる)。各セクタが512バイトのユーザデータを含む場合、
コマンド/アドレス情報の連続的シフト、セクタ情報のシフト、および書込みコ
マンドの開始には約30マイクロ秒要する。Frdy/Bsy*信号618がロ
ーになると、約200マイクロ秒後に、512バイトを有するセクタに対するセ
クタ情報(ユーザデータおよびECC)の書込み(またはプログラム)が完了す
る。実際、この場合、2つのバス616および624が、それぞれ、フラッシュ
デバイス602とフラッシュデバイス604に並列に情報を結合するため、20
0マイクロ秒内で、512ワード(各ワードは2バイト)がプログラムされる。
よって、書込み動作全体が完了するまで約230マイクロ秒かかる。セクタS0
およびS1への書き込みが完了すると、同じ処理が、セクタS2およびS3をプ
ログラムするために起こり、その後に、S4およびS5のプログラムが続く。
【0015】 図1および図1aにおいて議論および説明した従来技術の制限のうちのいくつ
かは、コントローラデバイス上に必要とされる物理的な入力/出力ピンがより多
く存在することである。詳細には、2つのデータバス616および624を有す
るため、必要なデータバスラインが2倍存在する。実際、この従来技術がより多
くのセクタを並列にプログラムするために用いられ、それにより、並列に構成さ
れたさらなるフラッシュデバイスを有する場合、追加されたデータバスに対する
要件が増し、最終的に、コントローラピンの数が実用的ではなくなる。単なる一
例として、4つのセクタが並列にプログラムされ得る並列する4つのフラッシュ
デバイスを有するために、さらに16個のピンがコントローラデバイス上に必要
とされる(16のさらなるデータバス信号に対して、合計32の信号)。これに
より、コントローラデバイスに関する製造コストが明らかに増加し、より大きな
デバイスへと繋がり得、さらにコストが上がる。
【0016】 図1および図1aの従来技術によるシステムに関する別の欠点は、第1のセク
タ情報のシフトが始まる前に、ホストは、セクタの数をバッファにロードする(
これ以外の場合にはプログラムされる)必要があり、セクタをプログラムする時
間が実質的に増加する。これは、事実上、より大きなバッファサイズへと繋がり
、製造コストを増加させる。
【0017】 よって、このような従来技術は、2つのセクタを1度に処理することにより、
セクタ書込み動作を実施するために必要とされる時間を切り詰めるにも関わらず
、さらなる時間(すなわち、セクタ情報をシフトするための時間が2倍)が、書
込み動作を完了するために必要である。
【0018】 それゆえ、1つのセクタへの書込みと並列して、別のセクタに書込みを行うこ
とに関連づけられたタスクのいくつかを実施することにより、コントローラデバ
イスがセクタ情報を不揮発性メモリに書き込むことに関連づけられた時間の量を
減少させ、それにより、全体のシステムパフォーマンスを増加させる一方で、コ
ントローラデバイスのピンを同数に維持し、かつシステムの製造に関連するコス
トの追加を妨げる、方法および装置に対する必要性が生じる。
【0019】 (発明の要旨) 簡単には、本発明の実施形態は、ブロックに構成された不揮発性メモリ内の格
納位置にセクタ情報を格納するための不揮発性メモリシステムを含む。ここで、
複数のブロックはスーパーブロックを規定し、そして各ブロックは所定の複数の
セクタを有する。不揮発性メモリシステムは、セクタ情報を特定のスーパーブロ
ックの第1および第2のブロックにシフトし、そしてその特定のスーパーブロッ
クの第1のブロックにセクタ情報を書き込むためのコントローラを含む。ここで
、第2のブロックへのシフトは、完全に第1のブロックへの書き込みの間に生じ
、これによりブロックへの書き込み動作を行うために必要な時間を低減し、そし
てシステム全体の性能を増加する。
【0020】 本発明の前述および他の目的、特徴および利点は、いくつかの図面を参照して
なされる以下の好ましい実施形態の詳細な説明から明らかとなる。
【0021】 (好適な実施形態の詳細な説明) 図2に示される本発明の実施形態によるディジタル格納システム10は、コン
ピュータ(パーソナルコンピュータ(PC))、ディジタルカメラなどの一部で
あり得、ホスト12に結合される。ディジタルシステム10は、コントロールデ
バイス14および不揮発性メモリユニット16を含む。ホスト12は、コントロ
ーラデバイス14の指示にしたがってメモリユニット16から情報を読み書きす
るように結合される。本発明によるメモリユニット16は、1つ以上の不揮発性
メモリデバイスから構成される(図2において、2つのメモリデバイス34およ
び36がメモリユニット16に含まれるように示されるが、他の数のメモリデバ
イスが使用され得る)。不揮発性メモリデバイスの各々は集積回路(または当該
分野で一般に呼ばれるように、半導体デバイス)である。不揮発性メモリデバイ
スは、フラッシュ、EEPROM(電気消去可能プログラマブル読み出し専用メ
モリ)、または他のタイプのソリッドステートメモリであり得る。
【0022】 ホスト12は、ホストバス18を介してコントローラ14と通信するように示
され、そしてコントローラデバイス14は、メモリ信号20を介してメモリユニ
ット16に結合されるように示される。
【0023】 コントローラデバイス14は、一般にホストインタフェース回路22、マイク
ロプロセッサ回路24、揮発性格納ユニット26およびスペースマネージャ/フ
ラッシュインタフェース回路28を含むように示される集積回路である。別の実
施形態において、コントローラデバイス14は、必ずしも半導体デバイスでなく
てもよく、そしてプリント回路板などに結合されるディジタルロジックから形成
され得る。ホストインタフェース回路22は、ホストバス18を介してホスト1
2に結合するためのものである。ホストバス18は、アドレスバス、双方向デー
タバスおよび制御信号(別々に図示せず)を含む。使用するホストのアーキテク
チャに依存して、ホストアドレスおよびデータバスは、アドレスおよびデータ信
号を同じバスに多重化することによってアドレスおよびデータ情報の両方を伝送
する1つのバスから構成され得る。なお、本明細書中で使用される用語「バス」
は、複数の電気伝導体または信号線を含む。ホストバス18は、当該分野で使用
されるPCMCIAインタフェース、ATAインタフェースまたは他の種類のイ
ンタフェースであり得る。
【0024】 ホストインタフェース回路22は、ホストバス18に結合するように示され、
そしてさらにマイクロプロセッサバス30を介してマイクロプロセッサ回路24
に結合されるように示される。マイクロプロセッサ回路24は、さらにスペース
マネージャ/フラッシュインタフェース回路28にマイクロプロセッサバス30
を介して結合される。マイクロプロセッサバス30は、マイクロプロセッサ回路
24とスペースマネージャ/フラッシュインタフェース回路28との間でのアド
レスおよびデータ情報の通信を容易にする。マイクロプロセッサ回路24は、揮
発性格納ユニット26に揮発性格納バス32を介して情報を読み書きするように
結合される。ホストインタフェース回路22は、さらにバッファユニット50に
マイクロプロセッサバス30を介して結合されるように示される。より明らかと
なるように簡単に言うと、情報はホスト12とコントローラデバイス14との間
でホストインタフェース回路を介して通信される。セクタ情報は、メモリユニッ
ト16内の格納のためのホスト12によって提供されるか、またはホスト12へ
コントローラデバイス14から転送され、バッファユニット50に格納される。
バッファユニット50は、一般に1つ以上のランダムアクセスメモリ(RAM)
デバイスまたは他の同様のメモリデバイスから形成される。本発明の1実施形態
において、バッファデバイス50のサイズは、4セクタサイズに値する情報を格
納し得、各セクタは(ユーザデータの)512バイトである。本発明の他の実施
形態において、他のサイズのバッファデバイス50を本発明の範囲および精神か
ら逸脱せずに使用し得る。しかし、バッファのサイズは、部分的に、使用される
フラッシュデバイスの数の関数である。すなわち、所定の図面を参照して以下に
提供される実施例において、2つのフラッシュデバイスが使用され、「スーバー
」ブロックは2つのブロックを含み、そして各フラッシュデバイスのセクタがこ
の2つのフラッシュデバイスの間でピンポンのようにアドレッシングされる。そ
のような構成において、バッファ50のサイズは、少なくとも2つのセクタのた
めの格納スペースを含む必要がある(各セクタが512バイトである場合、バッ
ファサイズは少なくとも1024バイトである必要がある)。例えば、4つのフ
ラッシュデバイスが使用される場合(以下に図示せず)、スーパーブロック内の
同様の位置にある4つのセクタがピンポンのようにアドレッシングされるので、
バッファサイズは少なくとも4つのセクタのための格納スペースが必要である。
【0025】 本発明の実施形態において、マイクロプロセッサ回路24はIntel805
1プロセッサであり、あるいはマイクロプロセッサユニット24はいずれの汎用
プロセッサユニットでもあり得る。揮発性格納ユニット26は、一般にマイクロ
プロセッサユニット24によって実行されるファームウェアコードを格納するた
めのリードアクセスメモリ(RAM)である。ホスト12とコントローラ14と
の間の情報はホストバス18を介して転送され、そしてコントローラ14とメモ
リユニット16との間の情報は、メモリ信号20を介して結合される。メモリユ
ニット16は、34および36などの2つ以上の不揮発性メモリデバイスから構
成される。不揮発性メモリ34および36の各々のサイズは、ディジタルシステ
ム10のアプリケーションに依存して変化し得る。にもかかわらず、このサイズ
は、一般にバイトで呼ばれる。ここで各バイトは8ビットである。例えば、1つ
のアプリケーションにおいて、不揮発性メモリユニット16のサイズは160M
B(メガバイト)であり、各フラッシュまたは不揮発性メモリデバイスは32M
Bである。別のアプリケーションにおいて、不揮発性メモリユニット16のサイ
ズは80MBであり、各フラッシュメモリデバイスは16MBである。不揮発性
メモリデバイス34および36は電源を落とした後もその内容を保存するメモリ
タイプである。不揮発性メモリデバイスの典型的な例は、フローティングゲート
セルから構成され、そしてToshiba、Hitachiなどの会社によって
製造されるフラッシュまたはEEPROMデバイスである。
【0026】 図2に示されていないが、空間管理/フラッシュインターフェイス回路28は
、空間管理制御ユニット38、フラッシュインターフェイス回路40、および空
間管理格納ユニット42を含む。本発明の一実施形態において、空間管理ユニッ
ト38は、空間管理格納ユニット42内で管理されているルックアップ表(LU
T)内に格納されている情報を制御するための状態マシンを含む。あるいは、空
間管理制御ユニット38の機能は、当業者に理解されるように、他の種類のハー
ドウェアおよび/またはソフトウェアによって実行され得る。空間管理格納ユニ
ット42は、RAMなどの揮発性メモリからなり、ブロックアドレス指定および
ステータスの情報をLUT内に格納する。
【0027】 引き続き、図2に示されていないが、メモリ信号20は、フラッシュアドレス
バス、双方向フラッシュデータバス、およびフラッシュ制御信号を含む。これら
の信号のいくつかは、本明細書中に含まれる他の図に関して、さらに説明される
【0028】 作動中、ホスト12は、時折およびメモリユニット16の読取りおよび書込み
などの様々な動作を実行中に、メモリユニット16にアクセスする。これにより
、ホスト12は、データの読取りまたは書込みためのロケーションを識別するア
ドレスを提供する。ホストによって提供されたアドレスは、ホストバス18上に
結合されて、メモリユニット16への情報およびメモリユニット16からの情報
にアクセスするか、またはそれらを読取る際にコントローラ14によって使用さ
れる。一実施形態において、ホストによって提供されたアドレスは、CHS(シ
リンダ、ヘッド、およびセクタ)の形式である。この種類のアドレス指定は、デ
ィスク上の特定のロケーションを識別するためにこのようなアドレス指定スキー
ムを使用したハードディスクを使用するシステムに適合される。しかし、情報を
格納するための不揮発性メモリの出現により、CHSアドレスフォーマットは、
不揮発性メモリユニット内のロケーションを識別するための値に変換される必要
がある。従って、CHSアドレスがホストバス18上に結合される場合、コント
ローラ14は、CHSアドレスフォーマットを論理ブロックアドレス(LBA)
に変換する。LBAは次いで、マイクロプロセッサバス30を介して結合されて
、空間管理/フラッシュインターフェイスユニット28によって使用される。あ
るいは、ホスト12がコントローラ14にLBA型のアドレスを提供し、この場
合、変換は依然として実行されるが、それはCHSからLBAの変換でない。後
者の変換は、単にLBAを置換させるだけであり、それは、前者の変換、すなわ
ちCHSからLBAの変換が使用される場合も実行される。本明細書中に前述さ
れるように、ブロックは、所定の数のセクタ(例えば、16、32、または他の
数のセクタ)を含むように規定される。さらに別の実施形態において、ホスト1
2は、CHSアドレスからLBAアドレスへの変換を実行し、CHSアドレスを
置換し、結果として得られる置換されたアドレスをコントローラ14に提供する
【0029】 LBA計算は、ハードウェアまたはファームウェアによって実行され得る。フ
ァームウェアを使用してLBAを計算する場合、マイクロプロセッサ24は、揮
発性格納ユニット26内に格納されているファームウェアコードの実行によって
、このような機能を実行する。ハードウェアを使用してLBAを計算する場合、
状態マシンブロック(図2に示さず)がこのような計算を実行する。
【0030】 上述の方程式によってLBAを計算した後、LBAの特定の最下位ビットをマ
スキングすることにより、LBAはVLBA(仮想論理ブロックアドレス)値に
変換される。例えば、各ブロックに対して16セクタが使用される場合、VLB
Aは、16進法の値0x3FFFF0を用いて、LBAの論理「AND」によっ
てLBAから計算される。これは基本的に、LBAの中の最下位4ビットを除い
て、LBAが保存されるという結果になる。各ブロックに対して32セクタが使
用される場合、VLBAは、16進法の値0x3FFFE0を用いて、LBAの
論理「AND」によってLBAから計算され、これにより、LBAの中の最下位
5ビットに効果的にマスキングをすること、および残りのビットを保存すること
などが行われる。下記で詳細に説明されるように、「スーパーブロック(sup
er block)」の概念が使用される場合、マスキングされるビットの数は
、「スーパーブロック」の大きさの関数である。つまり、各スーパーブロックは
、各ブロックが多数のセクタによって規定される多数のブロックを有するので、
スーパーブロックのセクタの総数は、VLBA値を形成するためにマスキングさ
れるべきビットの数を決定する。LBAからVLBAへの変換は、空間管理/フ
ラッシュインターフェイス28によって実行される。この変換は、ハードウェア
またはソフトウェアのいずれかによって実行され得る。
【0031】 図2において、VLBAは次いで、マイクロプロセッサ24から空間管理/フ
ラッシュインターフェイス回路28の空間管理制御ユニット38までの、マイク
ロプロセッサバス30の上に結合され、そこで、空間管理格納ユニット42のL
UT(ルックアップ表)をアドレス指定するために使用される。実際、VLBA
は、LUTの特定のロケーションをアドレス指定するために使用され、そこから
VPBA(仮想物理ブロックアドレス)が検索される。特定のLBA値が、様々
なPBA値を示すために使用され得ると留意されるべきである。例えば、ホスト
が、特定のLBA値によって識別されるロケーションに書込みたいと願えば、特
定のLBA値は、LUT内のVPBA値をルックアップ(look up)する
ために使用される。このVPBA値は、例えば、「20」であり得るが、次にホ
ストが同じLBAによって識別される同じロケーションに書込みたいと願う時に
、LUTから検索されるVPBA値は、「20」ではなく「200」であり得る
。これは、LUT内でさらに管理されている特定のフラッグ情報を使用して行わ
れる。簡単に言うと、最初に、書込みのためにホストによって特定のLBAロケ
ーションがアドレス指定される消去操作が行われた後は、情報が書込まれ、特定
のLBAに対応するLUT内のフラッグフィールドが「使用済み」として印を付
けられて、これによって、次にホストが消去操作前と同じロケーションに書込み
たいと願う時、このような書込みに対して、メモリユニット16内の異なるロケ
ーションが異なるPBAによって識別される。従って、LBAおよびPBAの間
に1対1の関係はない。フラッグフィールドならびにLBAおよびPBA LU
Tのアドレス指定のさらなる説明のために、発明者Petro Estakhr
i、Berhanu Iman、およびAli R. Ganjueiの「Mo
ving Sectors Within a Block of Infor
mation in a Flash Memory Mass Storag
e Architecture」という名称の1999年5月25日に出願され
た米国特許第5,907,856号を参照されたい。本明細書において、その全
文を記載するように、その開示を参考として援用する。
【0032】 PCアプリケーションにおいて、情報ブロックは典型的に、従来のハードディ
スクドライブにおいて使用されるようなセクタであり、各セクタは典型的に、5
12バイトのデータのための空間、およびオーバーヘッド情報のための別の空間
を含むが、他の大きさのセクタも同様に使用され得る。
【0033】 マイクロプロセッサ24は、マイクロプロセッサ24の中または外のいずれか
に位置づけられる揮発性のメモリユニット26(例えば、ROM(読取り専用メ
モリ)またはRAM(読取りおよび書込みメモリ))からの、プログラムコード
形式の命令を実行する。マイクロプロセッサ24はさらに、空間管理制御ユニッ
ト38に命令して、ホストによって提供されるCHS値から発生するLBAを使
用して、メモリユニット16内で使用可能な、次に未使用(または自由)なアド
レス指定できる格納ブロックのロケーションを見つけだす。ホストによる書込み
操作の間、この未使用ブロックのロケーションは、LUT内に格納され、ホスト
による読取り操作の間、このブロックのロケーションは、LUTから読取られる
。メモリユニット16内のロケーションを識別するアドレス値は、LUT内に格
納されているので、空想物理ブロックアドレス(VPBA)と呼ばれる。空間管
理制御ユニット38は、様々なアルゴリズムのいずれか1つを使用して、フラッ
シュメモリデバイス内に位置づけられる次に使用可能(または、自由)なブロッ
クを見つけ出し得る。空間管理の例は、発明者Mahmud Assarおよび
Petro Estakhriの「Direct Logical Block
Addressing Flash Memory Mass Storag
e Architecture」という名称の1999年1月13日に発行され
た米国特許第5,924,113号内に開示される。本明細書において、その全
文を記載するように、特に図11〜図13およびそれに関する説明に関して、そ
の開示を参考として援用する。しかし、代わりの実施形態において、他の空間管
理の方法および装置も同様に、本発明によって使用され得る。
【0034】 VLBA値は、最後には、VPBA値をLUTからルックアップするために使
用される。LUTは、列および欄を含み、各列がVLBA値によってアドレス指
定される。読取り操作中、VLBA値は、LUTの特定の行をアドレス指定する
ために使用され、そこからVPBAが検索される。書込み操作中、VLBAは、
LUTの特定の行をアドレス指定するために使用されて、特定のフラッグ情報を
含むVPBA値を格納する。VPBAは最後に、物理ブロックアドレス(PBA
)に変換されて、メモリユニット16内の特定のセクタのロケーションを識別す
る。
【0035】 LBA値は、マイクロプロセッサ24によってマイクロプロセッサバス30の
上に結合されて、空間管理/フラッシュインターフェイス28によって使用され
、そこで、VLBAアドレスに変換される。4ビットのセクタは、各ブロックに
対して16セクタを使用することを示す。なぜならば、2の4乗は、16である
からである。VLBAは、セクタビットをマスキングすることによって得られ(
マスキングされたセクタビットは、セクタオフセット値と呼ばれる)、この例で
は、4ビットを含む。ブロックおよびチップ選択情報は、同じままである。チッ
プ選択ビットは、たとえばデバイス34または36のいずれか1つなどの、メモ
リユニット16内に含まれる複数の不揮発性メモリデバイスの中の特定の1つを
選択するために使用される。ブロック情報は、選択された不揮発性メモリデバイ
ス内の特定のブロックを識別する。ブロックが不揮発性メモリ内に格納されるか
、書込まれるか、または移動されると、VLBAもまた、不揮発性メモリに書込
まれる。つまり、VLBAは、ブロックの最後の行に書込まれる。あるいは、V
LBAは、ブロックの任意の他の行に書込まれ得る。このことは、下記の図を参
照して、さらに説明される。
【0036】 ここで、図3を参照すると、メモリユニット16は、フラッシュデバイス20
0およびフラッシュデバイス202を含むように示され、各フラッシュデバイス
は、半導体デバイスである。前述のように、メモリユニット16は、いくつかの
フラッシュメモリデバイスを含み得る。図3において、ブロック0〜ブロックN
のブロックによって分けられる情報を含むように各フラッシュデバイス200お
よび202が示されると理解されるべきであり、ブロックの各セットであるブロ
ック0〜ブロックNは、1つのフラッシュデバイス内に含まれる。
【0037】 図3において、具体的には、ブロック0 210、ブロック1 212からブ
ロックN 214のN個のブロック(Nは整数である)を含むフラッシュデバイ
ス200が示される。同様に、具体的には、ブロック0 216、ブロック1
218からブロックN 220のN個のブロックを含むフラッシュデバイス20
2が示される。フラッシュデバイス200および202は、メモリ信号20を介
してコントローラデバイス14(図2に示す)と通信する。データバスのDB7
:0 242、制御信号(読取り、書込み、および消去のための信号を含む)2
40、フラッシュレディー/ビジー(Frdybsy*)バス222、フラッシ
ュチップイネーブル0(FCE0*)信号224、およびフラッシュチップイネ
ーブル1(FCE1*)信号226含むメモリ信号20が示される。Frdyb
syバス222は、フラッシュデバイス200がプログラミングされる準備がで
きた時あるいはビジーである時を示すために、フラッシュレディー/ビジー0(
Frdy/bsy0*)信号228と、フラッシュデバイス202がプログラミ
ングされ得る時、およびビジーでありプログラミングされ得ない時を示すために
、フラッシュレディー/ビジー1(Frdy/bsy1*)信号230とを含む
。FCE0*信号224は、書込み、読取り、または消去の操作の前にフラッシ
ュデバイス200を使用可能にするために使用される。同様に、FCE1*信号
226は、書込み、読取り、または消去の操作の前にフラッシュデバイス202
をイネーブルにするために使用される。メモリ信号20内に含まれる信号は、コ
ントローラデバイス14によって展開(develop)される。本発明の一実
施形態において、FCE0*信号およびFCE1*信号は、アクティブローであり
、つまり、これらの状態は、低電圧または約「0」ボルトの状態の場合にアクテ
ィブになる。後者の状態の場合、これらの信号は、対応するフラッシュデバイス
をアクティブにするか、またはそこへ書込む準備をする。同様に、Frdy/b
sy0*信号およびFrdy/bsy1*信号がローの場合、これは、これらの信
号に対応するフラッシュデバイスがビジー(または、プログラミングされている
か、読取られているか、または消去されている)であることを示すのに対して、
これらの信号が「ハイ」(すなわち、「ロー」電圧レベルよりも実質的に高い電
位の電圧レベル)の場合、これらの信号に対応するフラッシュデバイスは、プロ
グラミングの準備ができている。これは、これらの信号が、図3および図4の例
の中に示されるよりアクティブハイ、またはその逆の極性であるように構成され
得る任意の設計の選択である。
【0038】 バスDB7:0 242は、フラッシュデバイスの中にプログラミングされる
べきデータ、またはフラッシュデバイスから読取られるべきデータを結合するた
めに使用される。バス242は、本発明の一実施形態において、8ビットのバス
であり、代わりに他のビット数であってもよい。バス242は、フラッシュデバ
イス200および202の両方に接続されている。FCE0*信号およびFCE
*信号の状態は、他の制御信号の状態と共に、どのフラッシュデバイスデータ
が読取られているか、または書込まれているかを示す。例えば、FCE0*が「
ロー」であり、WE*信号(図3に示されていないが、図4に示されるように制
御信号240内に含まれる信号)がローである場合、フラッシュデバイス200
は、バス242の上に結合されている情報を用いてプログラミングされ、バス2
42がフラッシュデバイス202に接続されているにも関わらず、後者は、プロ
グラミングされない。なぜならば、後者のフラッシュイネーブル、またはFCE
*226が、「ハイ」でありアクティブでないからである。
【0039】 ユーザデータおよびECC情報(あるいは他の種類のオーバーヘッド情報)を
含むセクタ情報を格納するために、16セクタ格納ロケーション232を含む、
フラッシュデバイス200の各ブロック(ブロック0 210〜ブロックN 2
14)、およびフラッシュデバイス202の各ブロック(ブロック0 216〜
ブロックN 220)が示される。別の実施形態において、ブロック(210〜
214および216〜220)の各々は、16セクタ以外も含み得ると留意され
るべきである。例えば、容量が128Mbitsのメモリユニットを有するシス
テムにおいて、各ブロックに対して32セクタが使用され得るが、64Mbit
の容量を使用する場合、16セクタのブロックが必要とされる。
【0040】 フラッシュデバイス200および202内の同様のロケーションにある2つの
ブロックは、「スーパーブロック」を形成する。例えば、図3に示されるように
、スーパーブロック0 204は、フラッシュデバイス200のブロック0 2
10およびフラッシュデバイス202のブロック0 216を含む。フラッシュ
デバイス200のブロック1 212およびフラッシュデバイス202のブロッ
ク1 218を含むスーパーブロック1 206が示され、フラッシュデバイス
200のブロックN 214およびフラッシュデバイス202のブロックN 2
20を含むスーパーブロックN 208が示される。各フラッシュデバイスから
1つずつの2つのブロックを含むスーパーブロックが示されるが、スーパーブロ
ックはその代わりに、2つ以上のブロックを含み得、その場合、スーパーブロッ
クは、各フラッシュデバイス内の同様のロケーションに位置づけられるブロック
を含む。あるいは、フラッシュデバイス200のブロック0〜ブロックNおよび
フラッシュデバイス202のブロック0〜ブロックNは、同じ半導体デバイス内
に含まれ得る。
【0041】 作動中、ホスト12(図2に示す)からのコマンドを受け取ると、フラッシュ
デバイス200のブロック0 210の第1のセクタ格納ロケーション232(
S0)をプログラミングすることによって、セクタ情報が書込まれる。しかし、
典型的に、情報の1つ以上のセクタがメモリユニット16内に格納されるため、
次のセクタ情報は次いで、フラッシュデバイス202のブロック0 216の第
1のセクタ格納ロケーション232(S1)内に格納される。その次のセクタ情
報は、フラッシュデバイス200のブロック0の第2のセクタ格納ロケーション
(S2)内に格納され、その次のセクタ情報は、フラッシュデバイス202のブ
ロック0 216の第2のセクタ格納ロケーション(S3)内に格納されるとい
った具合である。従って、32セクタの情報は、スーパーブロック内に格納され
得る。これによって、従来技術と比較して、ブロックのプログラミング可能な大
きさは効果的に大きくなる。なぜならば、各フラッシュデバイスのブロックは、
別のブロックによって続くといった具合でプログラミングされるからである。本
発明の構成は、スーパーブロックへの書込み操作を達成することに関連するタス
クの重複を可能にし、これは、まもなく明らかになるように、セクタ情報を書込
むことに関連する時間を低減することによりシステム全体の性能を改善すること
によって行われる。
【0042】 特定のセクタ格納ロケーションまたはブロックがプログラミングされる(また
は、書込まれる)場合、特定のセクタ格納ロケーションが存在するフラッシュデ
バイスに対応するFCE信号がイネーブルになり、フラッシュデバイスがビジー
でことを示すようにFrdybsyがプログラミングされて、書込み操作が完了
するまでフラッシュデバイス上のこれ以上の操作を回避する。特定のセクタ格納
ロケーションに書込むために、特定のフラッシュデバイスが選択され(または、
対応するFCE信号をアクティブにすることによってイネーブルにされ)、書込
みコマンドは、特定のセクタ格納ロケーションが位置づけられる特定のフラッシ
ュデバイス内のシフトレジスタ(示さず)内にシフトする。次いで、格納される
べきセクタ情報がフラッシュデバイス内にシフトし、その後、書込みコマンドが
開始され、セクタ情報は、特定のフラッシュデバイス内にプログラミングされる
。後者のタスクの間、すなわち、セクタ情報がフラッシュデバイス内に実際に書
込まれる間、特定のフラッシュデバイスに対応するFrdybsy信号は、特定
のフラッシュデバイスがビジーであることを示すようにコントローラによってプ
ログラミングされ、このプロセスは典型的に、512バイトの大きさのセクタを
完了するために200μ秒を必要とする。セクタの大きさが512であるセクタ
情報を、フラッシュデバイス内にシフトすることは典型的に、30μ秒を消費す
る。
【0043】 ここで図4を参照すると、フラッシュデバイス200および202をプログラ
ミングする(または、それらに書込む)ためのイベントのシーケンスを反映する
タイミング図表が示される。詳細には、Frdy/bsy0*信号228、Fr
dy/bsy1*信号230、FCE0*信号224、FCE1*信号226、お
よびWE*信号の状態に関して、S0およびS1、S2、S3、S4およびS5
の6セクタのプログラミングが示され、後者は、制御信号240(図3に示す)
内に含まれる。まもなく明らかになるように、フラッシュデバイスの内の1つの
プログラミングは、他のフラッシュデバイス内へのセクタ情報のシフトと同時に
実行されて、書込み操作の性能と比較してシフト操作を時間的に見えなく(tr
ansparent−in−time)し、従って、1つのデータバスを使用し
て同時に2セクタを書込む操作の速度を早くする。これによって、2セクタをプ
ログラミングすることに関連するタスクのパイプライン処理を効果的に導入し、
従って、セクタ情報の書込み操作時間を低減する。
【0044】 バス242は、さまざまな時に異なる情報と結合され、このような情報は、図
4の上部の関連する部分に示される。図4の左側から見ると、300において示
されるように、バス242は、セクタS0のコマンドおよびアドレスの情報を運
び、この情報は、フラッシュデバイス200内にシフトされる。この場合のコマ
ンドは、通常、ホストによって開始される書込みコマンドである。アドレス情報
は、セクタ情報がプログラミングされるべき特定のセクタのアドレス(この場合
、セクタS0のアドレス)である。コマンド/アドレス情報をシフトする間、そ
の情報の各ビットは、フラッシュデバイス200内にシリアルにシフトされる。
WE*信号が生じて「ロー」状態に変わると、情報のビットがシフトされる。そ
の間に、FCE0*信号224は、ローに保たれて、シフトするためのフラッシ
ュデバイス200を選択する。302において、セクタ情報(特に、典型的に5
12バイトのユーザデータ)、エラー訂正コード(ECC)情報、および潜在的
に他のセクタオーバーヘッド情報は、一度に8ビットずつ、フラッシュデバイス
200内のS0にシフトされる。この場合も、WE*のローに変わるパルスのシ
リーズは、フラッシュデバイス200内へのセクタ情報のシフトを達成し、FC
E0*信号224は、フラッシュデバイス200をイネーブルにするために「ロ
ー」のままである。
【0045】 304において、書込みコマンドが開始され、WE*信号が生じるとロー状態
からハイ状態に変わり、FCE0*信号224はハイ状態に変わり、Frdy/
bsy0*信号228はロー状態に変わる。従って、フラッシュデバイス200
内へのセクタ情報の実際のプログラミング(または、書込み)が開始される。こ
のプログラミングは、S0セクタ情報のものであり、S0セクタ情報は、図3に
おけるフラッシュデバイス200のブロック0の第1のセクタである。発明者の
経験により、512バイトのセクタユーザデータおよび12バイトのECC情報
のプログラミングに必要な時間は約200μ秒であり、シフト操作および書込み
コマンドの開始操作は、約30μ秒を消費する。セクタ情報がフラッシュデバイ
ス内にシフトされる場合、セクタ情報はまだプログラミングされておらず、むし
ろ、セクタ情報は、一時的保持レジスタ内に配置され、そこでプログラミングを
待つが、セクタ情報がフラッシュデバイスに書き込まれる場合、後者の場合のセ
ルは実際にプログラミングされる。さらに、フラッシュデバイスのプログラミン
グは、対応するFrdy/bsy*信号が「ロー」状態の場合に行われる。
【0046】 書込み開始操作の最後である304において、FCE0*信号224は、コン
トローラデバイス14によって「ハイ」状態にされて、フラッシュデバイスに書
込まれている現在のセクタ情報の前に任意の新しいセクタ情報がシフトすること
を防止する。フラッシュデバイス200が書込まれている間、FCE1*信号2
26は、306においてロー状態にされ、WE*パルスシリーズの生成によって
、コマンドおよびアドレスの情報は、フラッシュデバイス202内のセクタS1
にシリアルにシフトされる。次いで、308において、セクタ情報、すなわち5
12バイトのユーザデータおよび12バイトのECCは、WE*パルスシリーズ
の生成によって、フラッシュデバイス202内にシフトされる。FCE1*信号
226は、このシフトプロセスのために、ローのままである。S1のシフト操作
および書込みコマンドの開始操作(310)もまた、約30μ秒を消費する。S
1セクタ情報のシフトは、フラッシュデバイス200のセクタS0内にセクタ情
報がプログラミングされる間に行われると留意することは重要である。基本的に
、これによって、30μ秒のシフト時間を見えなくする。なぜならば、セクタ情
報のシフトが、別のフラッシュデバイス内へのセクタ情報の書込みと平行してか
または同時に行われるからである。従って、本発明において、32セクタを有す
るスーパーブロックへの書込みは、最初の2セクタをプログラミングするために
、30+30+200μ秒すなわち260μ秒を消費し、その後、最初のシフト
の後にセクタの1つをシフトする時間は常に見えないので、230μ秒のみを消
費する。当業者に理解されるように、本発明によって、書込み操作時間は、デー
タバスを2倍にする必要がなく、従ってコントローラデバイスにピンカウントを
追加する必要なく、低減される。つまり、本発明において、8ビットのデータバ
スが使用される。一方で、書込み操作時間に関して従来技術が提供する最善のシ
ナリオは、16ビットのデータバスを必要とする。さらに、本発明において、ス
ーパーブロックは、2つより多くのブロックまたは32セクタを含み得、この場
合も同様に、データバスに関する必要なピンの数は同じままであり、書き込み操
作時間の改善も同じままである。つまり、従来技術において、2セクタの書込み
操作時間が230μ秒を得るために、32ビットのデータバスが必要であるが、
データバスのピンカウントを8ビットより多くに増加させる必要なく、本発明に
よって同じ書込み操作時間が達成される。実際、各スーパーブロックに対するブ
ロックの数が増加し、より多くのフラッシュデバイスが並列にプログラミングさ
れるにつれて、本発明による利点は増大する。十分なフラッシュデバイスが並列
に配置されると、必要とされる余分なデータバスピンを配置する十分な空間がな
くなるので、余分なデータバスラインを使用する従来技術システムの方法および
技術は非実用的になる。
【0047】 いくつかの従来技術の手法において、30+30+200+200μ秒または
460μ秒の書込み時間が必要であり、上記において十分に説明されたような、
230μ秒が達成され得る特定の他の従来技術において、本発明の待ち時間をは
るかに越える待ち時間の遅れがあり、その結果、前者による書込み性能を低減す
る。繰り返して言うと、後者の従来技術の手法は、各ブロックの書込み操作の前
に、ブロックのセクタが、バッファ内に格納されることを必要とする。ブロック
が32セクタである場合、4セクタをプログラミングすることを想定して、全4
セクタがバッファ内に格納される必要があり、これは、バッファの大きさが、本
発明が必要とする大きさより大きいことを必要とし、その結果、従来技術のシス
テムの製造コストを増加させる。さもなければ、情報の2セクタのみがバッファ
内に格納される場合、後者のプログラミングが開始され得る前に、ホストが次の
2セクタをバッファ内に提供し、コントローラがそれらをバッファ内に格納する
のを待たなければならないことに関連する実質的な遅れがある。これによって、
2セクタの書込み操作に関連する時間を230μ秒以上に実質的に長くする。こ
れは、部分的に、従来技術の方法および装置が、セクタ(コマンド、アドレス、
データ、およびECC)のシフト時間を隠すことができないからである。
【0048】 引き続き、図4を参照すると、310において、S1の書込みコマンドが開始
されることによって、WE*信号がローに変わる。WE*信号がまたハイに変わる
ことによって、Frdy/bsy1*230がローに変えられて、その結果、フ
ラッシュデバイス202のセクタS1内へのセクタ情報のプログラミングが開始
される。この場合も同様に、後者のプロセスは、512バイトのセクタに対して
200μ秒を消費する。Frdy/bsy1*は、約200μ秒の間、ローのま
まである。従って、セクタS0およびS1に書込むためのプログラミング時間の
総計は、230μ秒である。余分な30μ秒が、第1のセクタ情報のシフトに関
連するので、最初の2セクタ(この場合、セクタS0およびS1)のシフトおよ
びプログラミングが必要とするのは、260μ秒のみである。それ以降、2セク
タのシフトおよびプログラミングは、230μ秒のみを必要とする。なぜならば
、まもなく明らかになるように、セクタの1つをシフトすることが、もう1つの
セクタの書込み時間内に隠されているからである。最初の印象では、最初の2セ
クタの書込み操作時間、すなわち260μ秒は、上記で説明されたいくつかの従
来技術のシステムのいくつかに関連する書込み操作時間よりも長く見えるが、実
際には、本発明の使用により、プログラミングは全体的に低減する。これは、シ
フトおよび書込みの時間が開始される前にバッファ内に格納するために、コント
ローラと同時にプログラミングされるべきセクタをホストに送らせるという従来
技術システムの要件が原因である。従って、ホストが上記を完了する間、書込み
プロセスは保留となり、通常、ホスト書込み操作が遅いことは公知であり、従っ
て、セクタのプログラミング全体に関連する時間は増加する。しかし、本発明に
おいて、初めて2セクタが書込まれる場合を除いて、任意の2セクタの書込みを
開始する前に、ホストが予め必要な数のセクタを提供するのを待つ必要はない。
つまり、最初は、ホストは、バッファ内への格納のために、コントローラに情報
の2セクタを提供する必要がある。それ以降、ホストは、他のセクタがプログラ
ミングされている間にセクタ情報を提供し得る。高速ホストを使用するシステム
において、本発明と従来技術との間のこの差は、強調される効果を有さないかも
しれないと留意されるべきである。しかし、コスト制限が部分的な原因となって
通常は、より遅いホストが使用される。このようなシステムにおいて、この差は
、よく留意されている。
【0049】 図4において、312、314、および316において、セクタS2について
行われるということを除いて、上記で説明された方法とほとんど同じ方法によっ
て、コマンドおよびアドレスの情報がフラッシュデバイス200内にシリアルに
シフトされ、セクタ情報がフラッシュデバイス200内にシフトされて、書込み
コマンドが開始される。図3において、フラッシュデバイス200のブロック0
内の第2のセクタとして、S2が示される。314におけるセクタ情報のシフト
は、フラッシュデバイス202のセクタS1内にセクタ情報を書き込む間に行わ
れる。この場合も同様に、これによって、セクタ情報のシフトに関連する時間が
隠されて、従って、このセクタの書込み時間を約30μ秒だけ低減させる。より
大きなセクタ(512バイトよりも大きなセクタ)に関して、時間がさらに短縮
される。
【0050】 316において書込みコマンドの開始を完了し、WE*信号がローからハイに
変わると、Frdy/bsy0*信号228がロー状態に変えられ、その後の約
200μ秒の間にセクタ情報がフラッシュデバイス200内にプログラミングさ
れるように、S2セクタ内へのセクタ情報のプログラミングが開始される。次い
で、318において、セクタS3のコマンドおよびアドレスの情報が、フラッシ
ュデバイス202内にシリアルにシフトされる。320において、セクタ情報は
、フラッシュデバイス202内にシフトされる。前述のように、これらのシフト
操作は、S2セクタ内へのセクタ情報の書込みと共に起こり、セクタ情報、コマ
ンド、およびアドレスのシフトに関連する時間が、書込み操作の全体に対して、
隠されるか、または見えなくされる。従って、プロセスは、プログラミングされ
るようにホストによって命令されたすべてのセクタが、そのようにプログラミン
グされるまで続く。プロセスは、セクタS4およびS5についても、同じ方法で
続けられる。
【0051】 本発明において、ホストが1つのセクタのセクタ情報を提供し、そのセクタ情
報がバッファ内に格納されるとすぐに、コントローラ14がセクタ書込み操作を
開始すると理解される。従って、従来技術のシステムが必要とするように、書込
み操作が開始される前に、情報の2つ以上のセクタがホストから送られてくるの
を待つ必要はない。従って、書込みの前に、ホストが2つ以上のセクタ情報を提
供するのを待つことによって生じる遅れは、本発明によって低減される。
【0052】 図5は、本発明の別の実施形態のタイミング図を示し、ここで、全てのフラッ
シュデバイスに対して1つのFrdy/bsy*信号が使用される。さらに、本
発明の別の局面において、セクタをプログラミングする際の、1つ以上のエラー
の発生を知らせるために割り込み信号が使用される。後者の場合、フラッシュセ
ルのプログラミングに関連する感度が原因となり、通常、読取り照合(read
−verify)操作は、セクタのプログラミングが成功したことを確定するた
めに、セクタがプログラミングされる度に実行されると理解されるべきである。
従来技術のシステムにおいて、割り込み信号が使用されないため、セクタの書込
み操作が完了した後、プログラミングされていたセクタを含むフラッシュデバイ
スは、フラッシュデバイスをプログラミングする際にエラーが生じたかどうかを
判定するためにポーリングされる必要がある。これは、書込み操作全体に対する
追加の工程であり、割り込み信号の使用によって、基本的に消去される。
【0053】 図5において、Frdy/Bsy0*信号227のタイミングが示される。こ
の信号は、複数のFrdy/Bsy信号(各フラッシュデバイスに対して1つ)
の使用に取って代わり、全てのフラッシュデバイスによって共有される。従って
、信号227は、第1のセクタ、すなわちS0のステア書込みコマンド(sta
re write command)504の後にローに変わり、フラッシュデ
バイスがプログラミングされている間中、ローのままである。前述の実施形態の
ように、プログラミングされているセクタの内の1つのセクタ情報をシフトする
ことは、他のセクタをプログラミングしている間に行われる。しかし、他のFr
dy/bsy*信号が使用されないため、信号227は、全てのセクタをプログ
ラミングする間中、ローのままであり、これは、図4に関して説明した時間と同
じ時間、すなわち、2セクタをプログラミングするための230μ秒、および最
初の2セクタをプログラミングするための260μ秒だけかかる。
【0054】 INTQ*信号229がフラッシュデバイスによって展開される。信号229
は、メモリユニット16(図2に示す)の全てのフラッシュデバイスに接続され
ているオープンコレクタ信号である。任意のフラッシュメモリデバイスによって
エラーが検出される場合、すなわち、プログラミングされたセクタ情報とプログ
ラミングされるはずだったセクタ情報との間に不一致がある場合、信号229は
、アクティブ状態にされ(この場合、アクティブ状態は論理「ロー」である)、
コントローラデバイス14への入力として機能して、フラッシュデバイスをプロ
グラミング中に生じ得た任意のエラーを後者に知らせる。従来技術のシステムに
おいて、前述のように、セクタがプログラミングされた後は毎回、正確を期して
、プログラミングされたセクタを含むフラッシュデバイスをチェックする。これ
は、所定のステータスレジスタの状態をチェックすることにより行われる。
【0055】 実際、フラッシュデバイスは、読取り照合操作を実行し、ここで、セクタ内で
プログラミングされた情報が読み返され、その後、読取りステータス(read
status)コマンドがコントローラによって実行される。この読取り情報
が、プログラミングされたものと一致しない場合、エラーが検出される。従来技
術のシステムにおいて、書込み操作のステータスは、読取りステータス操作中に
ステータスレジスタをチェックすることによりポーリングされて、各セクタ書込
み操作の後、セクタをプログラミングする際に問題があったかどうかを判定する
(これらの時間は図5に示す)。しかし、本発明の一実施形態によって、INT
*信号229は、ステータス情報をポーリングする必要性を消去する。なぜな
らば、読取り照合操作が、読取りセクタとプログラミングされるはずだったセク
タとの間の不一致を報告する場合、信号299がアクティブになって、コントロ
ーラにエラーを知らせるからである。この点において、本発明の一実施形態は、
マイクロプロセッサ24(図2に示す)によって実行されるタスクを減少させる
。なぜならば、従来技術のシステムにおいて、プログラミングエラーを見つける
ために、マイクロプロセッサがステータスレジスタをチェックするからである。
従って、本発明は、マイクロプロセッサを他の機能に貢献可能にすることにより
、システムの全体的な性能を効果的に改善する。
【0056】 本発明は、特定の実施形態に関して説明されたが、当業者に本発明の改変およ
び変更がおそらく明らかであることが予想される。従って、下記の請求の範囲は
、本発明の真の精神および範囲内にあるような改変および変更を全て含むと解釈
されることを意図する。
【図面の簡単な説明】
【図1】 16ビットデータバス、DB7:0およびDB15:8を使用する、2つのフ
ラッシュデバイスを並列にプログラミングするための従来のディジタル格納シス
テムを示す。
【図1a】 図1のフラッシュデバイスをプログラミングするために使用される関連信号の
タイミング図を示す。
【図2】 本発明の実施形態による、メモリユニット16を含むディジタルシステム10
を示す。
【図3】 図2のディジタルシステムのメモリユニット16内のブロック構成例を示す。
【図4】 図2の実施例について、セクタ情報のプログラミングのためのタイミング図を
示す。
【図5】 本発明の別の実施形態のタイミング図を例示する。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,CA,C H,CN,CR,CU,CZ,DE,DK,DM,DZ ,EE,ES,FI,GB,GD,GE,GH,GM, HR,HU,ID,IL,IN,IS,JP,KE,K G,KP,KR,KZ,LC,LK,LR,LS,LT ,LU,LV,MA,MD,MG,MK,MN,MW, MX,MZ,NO,NZ,PL,PT,RO,RU,S D,SE,SG,SI,SK,SL,TJ,TM,TR ,TT,TZ,UA,UG,US,UZ,VN,YU, ZA,ZW (72)発明者 アイマン, バーハヌ アメリカ合衆国 カリフォルニア 94086, サニーベイル, アイリス アベニュー 946 Fターム(参考) 5B025 AD04 AD05 AE05 5B060 CA15

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 ブロックに分けられた不揮発性メモリ内の格納位置内にセク
    タ情報を格納する不揮発性メモリシステムであって、複数のブロックがスーパー
    ブロックを規定し、各ブロックが所定の複数のセクタを有する不揮発性メモリシ
    ステムであって、 セクタ情報を、特定のスーパーブロックの第1のブロックの第1のセクタにシ
    フトさせるコントローラであって、該コントローラはさらに、セクタ情報を、該
    特定のスーパーブロックの第2のブロックの第1のセクタにシフトさせ、セクタ
    情報を、該特定のスーパーブロックの該第1のブロックの該第1のセクタに書き
    込むコントローラ、 を備え、 該第1のブロックの該第1のセクタへの書込み中に、該第2のブロックの該第
    1のセクタへのシフト全体が起こり、それにより、ブロックへの書込み動作を行
    うために必要な時間を減少させ、全体的なシステム性能を上げる、不揮発性メモ
    リシステム。
  2. 【請求項2】 前記コントローラが、前記不揮発性メモリからのFrdy/
    bsy*信号を受け取り、それによって、該Frdy/bsy*信号がアクティブ
    であるときに、前記特定のスーパーブロックの前記第2のブロックへのセクタ情
    報の書込みを引き起こす、請求項1に記載の不揮発性メモリシステム。
  3. 【請求項3】 前記コントローラが、第1のフラッシュデバイスと第2のフ
    ラッシュデバイスとに接続され、該第1および該第2のフラッシュデバイスは不
    揮発性メモリユニットに含まれる、請求項1に記載の不揮発性メモリシステム。
  4. 【請求項4】 前記第1のフラッシュデバイスが、前記特定のスーパーブロ
    ックの前記第1のブロックを備え、前記第2のフラッシュデバイスが、該特定の
    スーパーブロックの前記第2のブロックを備える、請求項3に記載の不揮発性メ
    モリシステム。
  5. 【請求項5】 前記特定のスーパーブロックの前記第1および第2のブロッ
    クが、前記第1および第2のフラッシュデバイスと同様の位置関係にある、請求
    項4に記載の不揮発性メモリシステム。
  6. 【請求項6】 ブロックに分けられた不揮発性メモリであって、複数のブロ
    ックがスーパーブロックを規定し、各ブロックが所定の複数のセクタを有する不
    揮発性メモリにセクタ情報を書き込む方法であって、 セクタ情報を、特定のスーパーブロックの第1のブロックの第1のセクタにシ
    フトさせるステップと、 セクタ情報を、該特定のスーパーブロックの第2のブロックの第1のセクタに
    シフトさせるステップと、 該第2のブロックへシフトさせるステップを行っている間に、該特定のスーパ
    ーブロックの該第1のブロックの該第1のセクタにセクタ情報を書き込み、それ
    により、ブロックへの書込み動作を行うために必要な時間を減少させ、全体的な
    システム性能を上げる、方法。
  7. 【請求項7】 ブロックに分けられた不揮発性メモリ内の格納位置内にセク
    タ情報を格納する不揮発性メモリシステムであって、複数のブロックがスーパー
    ブロックを規定し、各ブロックが所定の複数のセクタを有する不揮発性メモリシ
    ステムであって、 特定のスーパーブロックにセクタ情報を書き込むコントローラであって、セク
    タ情報の書込みが成功したか否かを示す、該不揮発性メモリからの割込み信号に
    応答するコントローラ、 を備え、 該割込み信号が、ステータス情報のポーリングを回避し、それにより、セクタ
    情報の書込みを行うことに関連する時間を減少させる、不揮発性メモリシステム
  8. 【請求項8】 前記コントローラがさらに、特定のスーパーブロックの第1
    のブロックの第1のセクタにセクタ情報をシフトさせ、該コントローラがさらに
    、該特定のスーパーブロックの第2のブロックの第1のセクタにセクタ情報をシ
    フトさせ、該特定のスーパーブロックの該第1のブロックの該第1のセクタにセ
    クタ情報を書き込み、該第1のブロックの該第1のセクタへの書込み中に、該第
    2のブロックの該第1のセクタへのシフト全体が起こり、それにより、ブロック
    への書込み動作を行うために必要な時間を減少させ、全体的なシステム性能を上
    げる、請求項7に記載の不揮発性メモリシステム。
JP2001522164A 1999-09-03 2000-08-25 セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成 Pending JP2003508861A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/389,994 1999-09-03
US09/389,994 US6141249A (en) 1999-04-01 1999-09-03 Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
PCT/US2000/023551 WO2001018640A1 (en) 1999-09-03 2000-08-25 Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010031847A Division JP2010152913A (ja) 1999-09-03 2010-02-16 セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成

Publications (1)

Publication Number Publication Date
JP2003508861A true JP2003508861A (ja) 2003-03-04

Family

ID=23540599

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001522164A Pending JP2003508861A (ja) 1999-09-03 2000-08-25 セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
JP2010031847A Pending JP2010152913A (ja) 1999-09-03 2010-02-16 セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010031847A Pending JP2010152913A (ja) 1999-09-03 2010-02-16 セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成

Country Status (7)

Country Link
US (1) US6141249A (ja)
EP (1) EP1242868B1 (ja)
JP (2) JP2003508861A (ja)
AT (1) ATE410727T1 (ja)
AU (1) AU6942100A (ja)
DE (1) DE60040484D1 (ja)
WO (1) WO2001018640A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007066720A1 (ja) * 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
US7836263B2 (en) 2004-02-05 2010-11-16 Sony Corporation Nonvolatile memory controlling method and nonvolatile memory controlling apparatus
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ
JP4921174B2 (ja) * 2003-12-31 2012-04-25 シェンジェンシランカカジグフェンヨウシャンゴンシ フラッシュメモリのデータ書込み方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
WO1999045460A2 (en) * 1998-03-02 1999-09-10 Lexar Media, Inc. Flash memory card with enhanced operating mode detection and user-friendly interfacing system
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US6606628B1 (en) * 2000-02-14 2003-08-12 Cisco Technology, Inc. File system for nonvolatile memory
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
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US7155559B1 (en) 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US7290109B2 (en) 2002-01-09 2007-10-30 Renesas Technology Corp. Memory system and memory card
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7246268B2 (en) * 2002-01-16 2007-07-17 Sandisk Corporation Method and apparatus for dynamic degradation detection
US6732222B1 (en) * 2002-02-01 2004-05-04 Silicon Motion, Inc. Method for performing flash memory file management
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
JP2005518589A (ja) * 2002-02-22 2005-06-23 レクサー メディア,インク. インジケータライトが一体化されたリムーバブル記憶媒体
DE10256509B4 (de) * 2002-06-19 2008-06-12 Hyperstone Gmbh Verfahren zum Adressieren von blockweise löschbaren Speichern
JP4287433B2 (ja) * 2003-11-18 2009-07-01 パナソニック株式会社 ファイル記録装置
US20050138464A1 (en) * 2003-11-21 2005-06-23 Chong Pohsoon Scratch fill using scratch tracking table
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US8069318B2 (en) * 2005-12-01 2011-11-29 Urenschi Assets Limited Liability Company High performance data rate system for flash devices
US7606992B1 (en) * 2005-12-01 2009-10-20 Chris Karabatsos High performance data rate system for flash devices
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
KR100868674B1 (ko) 2006-10-30 2008-11-13 한국과학기술원 플래시메모리 관리방법
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8443134B2 (en) * 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8122322B2 (en) 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8316277B2 (en) * 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7979264B2 (en) * 2008-02-26 2011-07-12 Streaming Networks (Pvt) Ltd System and method for interfacing a media processing apparatus with a computer
US8180995B2 (en) 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
US8239614B2 (en) 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
KR101796116B1 (ko) 2010-10-20 2017-11-10 삼성전자 주식회사 반도체 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 그 동작방법
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4210959A (en) * 1978-05-10 1980-07-01 Apple Computer, Inc. Controller for magnetic disc, recorder, or the like
FR2426938A1 (fr) * 1978-05-26 1979-12-21 Cii Honeywell Bull Dispositif de detection de secteurs defectueux et d'allocation de secteurs de remplacement dans une memoire a disques
US4355376A (en) * 1980-09-30 1982-10-19 Burroughs Corporation Apparatus and method for utilizing partially defective memory devices
JPS5764383A (en) * 1980-10-03 1982-04-19 Toshiba Corp Address converting method and its device
JPS57132256A (en) * 1981-02-09 1982-08-16 Sony Corp Memory device
JPS5877034A (ja) * 1981-10-30 1983-05-10 Hitachi Ltd 記録方法
US4450559A (en) * 1981-12-24 1984-05-22 International Business Machines Corporation Memory system with selective assignment of spare locations
JPS58215795A (ja) * 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
JPS58215794A (ja) * 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
US4498146A (en) * 1982-07-30 1985-02-05 At&T Bell Laboratories Management of defects in storage media
JPS5945695A (ja) * 1982-09-07 1984-03-14 Fujitsu Ltd Icメモリ
US4710871A (en) * 1982-11-01 1987-12-01 Ncr Corporation Data transmitting and receiving apparatus
AU557723B2 (en) * 1982-12-17 1987-01-08 Blue Circle Southern Cement Ltd. Electronic memory system
JPS59162695A (ja) * 1983-03-07 1984-09-13 Nec Corp 記憶装置
US4896262A (en) * 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
JPS60212900A (ja) * 1984-04-09 1985-10-25 Nec Corp 半導体固定記憶装置
JPS6196598A (ja) * 1984-10-17 1986-05-15 Fuji Electric Co Ltd 電気的消去可能なp−romのカウントデ−タ記憶方法
US4654847A (en) * 1984-12-28 1987-03-31 International Business Machines Apparatus for automatically correcting erroneous data and for storing the corrected data in a common pool alternate memory array
JPS61208673A (ja) * 1985-03-12 1986-09-17 Matsushita Electric Ind Co Ltd 情報記録再生装置
US4744062A (en) * 1985-04-23 1988-05-10 Hitachi, Ltd. Semiconductor integrated circuit with nonvolatile memory
JPS62102482A (ja) * 1985-10-28 1987-05-12 Matsushita Electric Ind Co Ltd 情報記録再生装置
US4800520A (en) * 1985-10-29 1989-01-24 Kabushiki Kaisha Toshiba Portable electronic device with garbage collection function
JP2664137B2 (ja) * 1985-10-29 1997-10-15 凸版印刷株式会社 Icカード
US4746998A (en) * 1985-11-20 1988-05-24 Seagate Technology, Inc. Method for mapping around defective sectors in a disc drive
US4924331A (en) * 1985-11-20 1990-05-08 Seagate Technology, Inc. Method for mapping around defective sectors in a disc drive
US4757474A (en) * 1986-01-28 1988-07-12 Fujitsu Limited Semiconductor memory device having redundancy circuit portion
JPH07109717B2 (ja) * 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) * 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
US4953122A (en) * 1986-10-31 1990-08-28 Laserdrive Ltd. Pseudo-erasable and rewritable write-once optical disk memory system
JPS63183700A (ja) * 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eepromアクセス方法
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5268318A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US5168465A (en) * 1988-06-08 1992-12-01 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US5293560A (en) * 1988-06-08 1994-03-08 Eliyahou Harari Multi-state flash EEPROM system using incremental programing and erasing methods
US5268319A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US5198380A (en) * 1988-06-08 1993-03-30 Sundisk Corporation Method of highly compact EPROM and flash EEPROM devices
US4914529A (en) * 1988-07-18 1990-04-03 Western Digital Corp. Data disk defect handling using relocation ID fields
US5070474A (en) * 1988-07-26 1991-12-03 Disk Emulation Systems, Inc. Disk emulation system
US5535328A (en) * 1989-04-13 1996-07-09 Sandisk Corporation Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells
EP0935255A2 (en) * 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
US5226168A (en) * 1989-04-25 1993-07-06 Seiko Epson Corporation Semiconductor memory configured to emulate floppy and hard disk magnetic storage based upon a determined storage capacity of the semiconductor memory
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5303198A (en) * 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
EP0489204B1 (en) * 1990-12-04 1995-08-16 Hewlett-Packard Limited Reprogrammable data storage device
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5396468A (en) * 1991-03-15 1995-03-07 Sundisk Corporation Streamlined write operation for EEPROM system
US5504760A (en) * 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5270979A (en) * 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) * 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
JPH04332999A (ja) * 1991-05-07 1992-11-19 Hitachi Koki Co Ltd メモリの使用方法
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
GB9116480D0 (en) * 1991-07-30 1991-09-11 Inmos Ltd Read and write circuitry for a memory
GB9116493D0 (en) * 1991-07-30 1991-09-11 Inmos Ltd Read and write circuitry for a memory
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5428621A (en) * 1992-09-21 1995-06-27 Sundisk Corporation Latent defect handling in EEPROM devices
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5357475A (en) * 1992-10-30 1994-10-18 Intel Corporation Method for detaching sectors in a flash EEPROM memory array
US5341330A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JPH0714392A (ja) * 1993-06-14 1995-01-17 Toshiba Corp 不揮発性半導体メモリおよびそれを使用した半導体ディスク装置
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5422842A (en) * 1993-07-08 1995-06-06 Sundisk Corporation Method and circuit for simultaneously programming and verifying the programming of selected EEPROM cells
US5566314A (en) * 1993-08-30 1996-10-15 Lucent Technologies Inc. Flash memory device employing unused cell arrays to update files
JPH07141258A (ja) * 1993-11-15 1995-06-02 Toshiba Corp データ記録再生装置
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
JPH07302176A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
US5508971A (en) * 1994-10-17 1996-04-16 Sandisk Corporation Programmable power generation circuit for flash EEPROM memory systems
JP3059349B2 (ja) * 1994-12-19 2000-07-04 シャープ株式会社 Icカード、及びフラッシュメモリの並列処理方法
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
JP3586993B2 (ja) * 1996-10-04 2004-11-10 ソニー株式会社 半導体不揮発性記憶装置
US6091666A (en) * 1996-10-04 2000-07-18 Sony Corporation Nonvolatile flash memory with fast data programming operation
JPH10228765A (ja) * 1996-10-31 1998-08-25 Sony Corp 半導体記憶装置
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
JP3159105B2 (ja) * 1997-02-21 2001-04-23 日本電気株式会社 不揮発性半導体記憶装置及びその書込方法
US5822245A (en) * 1997-03-26 1998-10-13 Atmel Corporation Dual buffer flash memory architecture with multiple operating modes
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
JP3550293B2 (ja) * 1997-12-26 2004-08-04 株式会社ルネサステクノロジ 不揮発性メモリを用いた高速書換可能な記憶装置および該記憶装置のデータ書換方法
US6032248A (en) * 1998-04-29 2000-02-29 Atmel Corporation Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors
US6374337B1 (en) * 1998-11-17 2002-04-16 Lexar Media, Inc. Data pipelining method and apparatus for memory control circuit

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4921174B2 (ja) * 2003-12-31 2012-04-25 シェンジェンシランカカジグフェンヨウシャンゴンシ フラッシュメモリのデータ書込み方法
US7836263B2 (en) 2004-02-05 2010-11-16 Sony Corporation Nonvolatile memory controlling method and nonvolatile memory controlling apparatus
WO2007066720A1 (ja) * 2005-12-09 2007-06-14 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法
JPWO2007066720A1 (ja) * 2005-12-09 2009-05-21 パナソニック株式会社 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
JP4633802B2 (ja) * 2005-12-09 2011-02-16 パナソニック株式会社 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US8307149B2 (en) 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ

Also Published As

Publication number Publication date
EP1242868A4 (en) 2005-06-15
JP2010152913A (ja) 2010-07-08
US6141249A (en) 2000-10-31
EP1242868B1 (en) 2008-10-08
WO2001018640A1 (en) 2001-03-15
ATE410727T1 (de) 2008-10-15
AU6942100A (en) 2001-04-10
DE60040484D1 (de) 2008-11-20
EP1242868A1 (en) 2002-09-25

Similar Documents

Publication Publication Date Title
JP2003508861A (ja) セクタ書き込み操作時間を効果的に減少させるための不揮発性メモリユニット内のブロックの構成
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
US6809964B2 (en) Nonvolatile semiconductor memory device capable of transferring data internally without using an external bus
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
JP3105092B2 (ja) 半導体メモリ装置
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US7424593B2 (en) Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134151A (en) Space management for managing high capacity nonvolatile memory
EP2306321B1 (en) Increasing memory performance in flash memory devices by performing simultaneous write operation to multiple devices
US6076137A (en) Method and apparatus for storing location identification information within non-volatile memory devices
US7227788B2 (en) Memory management device and memory device
US5920884A (en) Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data
EP1729218A1 (en) Nonvolatile storage system
US20070300011A1 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
JPH11134875A (ja) 半導体記憶装置、半導体記憶装置の制御装置及び制御方法
WO2000060605A1 (en) Space management for managing high capacity nonvolatile memory
JPWO2002052416A1 (ja) フラッシュメモリシステム
JP2000067574A (ja) 半導体記憶装置
WO1999030239A1 (fr) Memoire et procede d'acces
WO2006009322A2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US10776280B1 (en) Data storage device and method for updating logical-to-physical mapping table
US20040133755A1 (en) Minimization of overhead of non-volatile memory operation
JPH04239356A (ja) 半導体ファイルメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091225