JP2009503730A - 記憶装置用デュアルモードアクセスのための方法およびシステム - Google Patents

記憶装置用デュアルモードアクセスのための方法およびシステム Download PDF

Info

Publication number
JP2009503730A
JP2009503730A JP2008525046A JP2008525046A JP2009503730A JP 2009503730 A JP2009503730 A JP 2009503730A JP 2008525046 A JP2008525046 A JP 2008525046A JP 2008525046 A JP2008525046 A JP 2008525046A JP 2009503730 A JP2009503730 A JP 2009503730A
Authority
JP
Japan
Prior art keywords
file
logical
data
entry
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008525046A
Other languages
English (en)
Other versions
JP5178514B2 (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.)
SanDisk Corp
Original Assignee
SanDisk 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
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2009503730A publication Critical patent/JP2009503730A/ja
Application granted granted Critical
Publication of JP5178514B2 publication Critical patent/JP5178514B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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
    • 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/0643Management of files
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Abstract

不揮発性大容量記憶装置からデータを読み出す方法およびシステムが提供される。その方法は、不揮発性大容量記憶装置のために論理構成を行うステップを含み、ここで、ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される。そのシステムは、ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルインターフェイスフォーマットを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、ファイルバイファイル形式でデータが記憶される記憶フォーマットを認識しない。

Description

本発明は、概して、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの操作に関し、より詳細には、ホスト素子とメモリとの間のインターフェイスの管理に関する。
関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている以下の同時係属中の米国特許出願に関する。これらの特許出願とは、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶」という米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献1)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイルプログラミングおよび削除」という米国特許出願第11/060,174号(代理人整理番号:SDK0380.US1)(特許文献2)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶実行技術」という米国特許出願第11/060,248号(代理人整理番号:SDK0380.US2)(特許文献3)、およびアラン・W・シンクレアおよびバリー・ライトによる「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願(特許文献4)(以下、前述したものは、「直接データファイル記憶アプリケーション」としてまとめて称せられる)である。
従来のコンピュータシステムは、典型的には、いくつかの機能構成要素を含んでいる。これらの構成要素は、中央処理装置(CPU)、メインメモリ、入出力(「I/O」)装置、大容量記憶装置を含んでいてもよい。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してCPUに接続されている。メインメモリは、実行時間でメインメモリに記憶されるデータおよび/またはプログラム情報にCPUアクセスを提供するために使用されている。典型的には、メインメモリは、ランダムアクセスメモリ(RAM)回路から構成されている。CPUおよびメインメモリを有するコンピュータシステムは、しばしば、ホストシステムと称せられる。
ホストシステムは、インターフェイスを介して、大容量記憶装置、例えば、不揮発性メモリシステム(本願明細書全体にわたって「フラッシュ素子」、「フラッシュ」、または「フラッシュカード」とも交換可能に称してもよい)とインターフェイスをとる。
商業用フラッシュメモリシステムの初期世代では、メモリセルの長方形アレイは、標準ディスクドライブセクタ、すなわち、512バイトのデータ量をそれぞれ記憶した多くのグループのセルに分割されていた。16バイトなどのデータの追加量も、ユーザデータおよび/またはそれが記憶されるメモリセルグループに関係する誤り訂正コード(ECC)と、あるいは他のオーバーヘッドデータとを記憶するために、各グループに通常含まれている。そのような各グループ中のメモリセルは、ともに消去可能なメモリセルの最小数である。すなわち、消去装置は、有効に、1つのデータセクタおよび含まれている任意のオーバーヘッドデータを記憶するメモリセルの数である。この種のメモリシステムの例は、米国特許第5,602,987号(特許文献5)および第6,426,893号(特許文献6)に説明されている。それらをデータで再プログラムする前にメモリセルを消去する必要があることは、フラッシュメモリの特徴である。
フラッシュメモリシステムは、パソコン、カメラなどの様々なホストと取り外し可能に接続されるメモリカードまたはフラッシュドライブの形態で、最も一般的に提供されるが、そのようなホストシステム内に組み込まれていてもよい。
典型的には、ホストシステムは、ファイルディレクトリを維持し、論理クラスタにファイルデータを割り当てる。データへのアクセスのために論理インターフェイスを使用するホストシステムは、レガシーホストシステムと称してもよい。この状況で用語のホストシステムは、レガシーフラッシュメモリカードリーダおよびデジタルカメラなどを含む。
従来のシステムでは、ホストは、ファイルシステムを維持し、論理クラスタにファイルデータを割り当て、ここで、クラスタサイズは、典型的には固定されている。フラッシュ素子は、複数の論理セクタに分割され、ホストは、複数の論理セクタを含むクラスタ内の空間を割り当てる。クラスタは、論理アドレスの細分であり、クラスタマップは、ファイルアロケーションテーブル(「FAT」)として指定される。FATは、記憶装置自体に通常記憶される。
従来のシステムで、メモリにデータを書き込む場合、ホストは、典型的には、メモリシステムの連続仮想アドレス空間内に、データのセクタ、クラスタまたは他のユニットに固有の論理アドレスを割り当てる。ディスクオペレーティングシステム(DOS)のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、アドレスからデータを読み出す。メモリシステム内のコントローラは、メモリアレイ内の物理アドレス中にホストから受けられる論理アドレスを変換し、ここで、データは、実際に記憶され、次いで、これらのアドレス変換のトラックを続ける。メモリシステムのデータ記憶容量は、メモリシステムのために定義された論理アドレス空間全体にわたってアドレス可能なデータ量と少なくとも同じくらいである。
ホストが論理アドレスマッピングに対してファイルを行う必要がないように、他のファイル記憶システム(またはフォーマット)が開発されている。しかし、これらの新しいファイルシステムは、データを読み出すために、レガシーホストシステムと共に使用されなければならない可能性がある。
したがって、ホストシステムが慣習的でないファイル記憶フォーマットを使用するフラッシュ素子中のファイルに効率的にアクセスすることを可能にする方法およびシステムの必要性がある。
米国特許出願第11/060,249号 米国特許出願第11/060,174号 米国特許出願第11/060,248号 アラン・W・シンクレアおよびバリー・ライトによる「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願 米国特許第5,602,987号 米国特許第6,426,893号 米国特許第5,570,315号 米国特許第5,774,397号 米国特許第6,046,935号 米国特許第6,373,746号 米国特許第6,456,528号 米国特許第6,522,580号 米国特許第6,771,536号 米国特許第6,781,877号 米国公開特許出願第2003/0147278号 米国特許第6,763,424号 米国特許出願第11/060,249号
本発明の1つの態様では、不揮発性大容量記憶装置からデータを読み出すためのシステムを提供する。システムは、ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルベースのプロトコルを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、ファイルバイファイル形式でデータが記憶される記憶フォーマットを認識しない。
他の態様では、ファイルバイファイル形式でデータを記憶する不揮発性大容量記憶装置からデータを読み出す方法を提供する。その方法は、不揮発性大容量記憶装置のために論理構成を行うステップを含み、ここで、ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される。
本発明のさらに他の態様では、不揮発性大容量記憶装置からデータを読み出す方法を提供する。その方法は、ファイルバイファイル形式でファイルデータを記憶する不揮発性大容量記憶装置のために論理構成を行い、論理構成の間に、論理インデックスがファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、不揮発性大容量記憶装置のための仮想論理アドレス空間内のファイルのためのアドレスおよびファイルディレクトリ中で対応するエントリ位置を指定する論理インデックスが生成されるステップと、仮想論理アドレスによって特定されるデータがホストシステムによって読み出される不揮発性大容量記憶装置を操作するステップと、を含む。
本発明のさらに他の態様では、不揮発性大容量記憶装置中のデータを読み出すためのシステムを提供する。そのシステムは、直接データファイルアクセスモードで作動して、ホストシステムがファイルバイファイル形式で不揮発性大容量記憶装置からデータにアクセスすることを可能にする直接データファイル記憶セグメントと、ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を含み、ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しない。
本発明の本質がすぐに理解されるように、この概要を提供する。本発明についてのより完全な理解を、添付の図面に関連して、本発明の好ましい実施形態についての以下の詳細な説明を参照して得ることが可能である。
本発明の前述した特徴および他の特徴を、好ましい実施形態の図面を参照して以下に説明する。図面において、同じ構成要素は、同じ参照数字を有する。例示する実施形態は、例示することを意図し、本発明を限定しない。
好ましい実施形態についての理解を促進するために、ホストシステム/不揮発性大容量記憶システムの一般的なアーキテクチャおよび操作を説明する。次いで、好ましい実施形態の具体的なアーキテクチャおよび操作を、一般的なアーキテクチャを参照して説明する。
ホストシステム/メモリシステム:
図1Aは、システムバス101Aに接続された中央処理装置(「CPU」)(またはマイクロプロセッサ)101を含む典型的なホストシステム100のブロック図を示す。ランダムアクセスメインメモリ(「RAM」)103は、また、システムバス101Aに接続され、CPU101に記憶装置へのアクセスを備えさせる。プログラム命令を実行する場合、CPU101は、RAM103内にこれら工程段階を記憶し、RAM103からの記憶された工程段階を実行する。
読み出し専用メモリ(「ROM」)102は、スタートアップ指示シーケンスまたは基本的な入出力オペレーティングシステム(BIOS)シーケンスなどの不変命令シーケンスを記憶するために設けられている。
入出力(「I/O」)装置102A、例えば、キーボード、ポインティングデバイス(「マウス」)、モニタ、モデムなども設けられている。
大容量記憶装置(フラッシュ素子)105は、また、CPU101のために不揮発性メモリを備える。フラッシュ素子105は、コントローラモジュール106(「メモリシステムコントローラ」と称してもよい)および固体メモリモジュール107、108(メモリモジュール#1およびメモリモジュール#Nとして示されている)を含む。コントローラモジュール106は、バスインターフェイス104を介して、またはシステムバス101Aまたは他の周辺機器用バス(図示せず)を直接介して、ホストシステム100とインターフェイスをとる。
市販の様々なフラッシュメモリカード、例えば、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディアおよびトランスフラッシュカードなどが現在ある。これらの各カードは、その標準化された規格によって固有の機械的および/または電気的インターフェイスを有するが、各々に含まれたフラッシュメモリは、非常に類似している。これらのカードは、すべて、本願の譲受人であるサンディスク コーポレイションから入手可能である。サンディスク コーポレイションは、クルーザー(Cruzer)という商標で、フラッシュドライブのラインも提供し、それは、ホストのUSBレセプタクルに差し込むことによりホストに接続するためのユニバーサル・シリアル・バス(USB)プラグを有する小さなパッケージ中の携帯用メモリシステムである。これらの各メモリカードおよびフラッシュドライブは、それらの中のフラッシュメモリのホストおよび制御操作とインターフェイスをとるコントローラを含む。
そのようなメモリカードおよびフラッシュドライブを使用するホストシステムは、多く、多様である。それらとしては、パソコン(PC)、ラップトップおよび他の携帯形コンピュータ、携帯電話、個人用携帯情報端末(PDA)、デジタル静止カメラ、デジタル動画カメラ、およびポータブルオーディオプレイヤが挙げられる。ホストとして、典型的には、1つまたは複数のタイプのメモリカードまたはフラッシュドライブ用の内蔵レセプタクルが挙げられるが、メモリカードが差し込まれるアダプタを必要とするものもある。
NORなどの他のアーキテクチャを代わりに使用することができるが、メモリセルアレイ107、108のNANDアーキテクチャが現在好ましい。NANDフラッシュメモリおよびメモリシステムの一部としてのそれらの操作の例として、米国特許第5,570,315号(特許文献7)、第5,774,397号(特許文献8)、第6,046,935号(特許文献9)、第6,373,746号(特許文献10)、第6,456,528号(特許文献11)、第6,522,580号(特許文献12)、第6,771,536号(特許文献13)、第6,781,877号(特許文献14)、および米国公開特許出願第2003/0147278号(特許文献15)を参照して挙げることができる。
本発明の適応できる態様は、フラッシュ素子105に限定されず、任意の不揮発性大容量記憶システムに使用されることができることに注目すべきである。
図1Bは、コントローラモジュール106の内部アーキテクチャのブロック図を示す。コントローラモジュール106は、インターフェイスロジック111を介して様々な他の構成要素とインターフェイスをとるマイクロコントローラ109を含む。メモリ110は、フラッシュ素子105の操作を制御するために、マイクロコントローラ109によって使用されるファームウェアおよびソフトウェアの命令を記憶する。メモリ110は、揮発性再プログラム可能なランダムアクセスメモリ(「RAM」)、フラッシュ式の再プログラム可能でない不揮発性メモリ(「ROM」)、一回限りプログラム可能なメモリ、または再プログラム可能な電気的に消去可能でプログラム可能な読み出し専用メモリ(「EEPROM」)であってもよい。
ホストインターフェイス113は、ホストシステム100とインターフェイスをとる一方で、フラッシュインターフェイス112は、メモリモジュール107、108とインターフェイスをとる。
図1Cは、以下のさらなる説明で例として使用されるフラッシュメモリセルアレイ(107、108)の構成を概念的に説明する。メモリセルの4つのプレーンまたはサブアレイ131〜134は、単一の集積メモリセルチップ、2つのチップ(各チップ上の2つのプレーン)、または4つの別個のチップ上にあってもよい。具体的な配置は、以下の説明では重要ではない。もちろん、1、2、8、16またはそれ以上などの他のプレーンの数が、システム内に存在していてもよい。プレーンは、それぞれのプレーン131〜134内に位置するブロック137、138、139、140などの長方形によって、図1Cで示すメモリセルのブロックに個々に分割される。各プレーン内に、数十または数百のブロックがあってもよい。
メモリセルのブロックは、消去のユニットであり、最も少数のメモリセルが、物理的にともに消去可能である。しかし、並列処理の増加について、ブロックは、より大きなメタブロックユニット中で操作される。各プレーンからの1つのブロックは、メタブロックを形成するために論理上ともに結合されている。4つのブロック137〜140は、1つのメタブロック141を形成するために示されている。メタブロック内のすべてのセルは、通常ともに消去される。メタブロックを形成するために使用されるブロックは、ブロック145〜148から構成された第2のメタブロック143に示すように、それぞれのプレーン内の同じ相対位置に限定される必要はない。
高いシステム性能のために、プレーンのすべてにわたってメタブロックを拡大することが通常好ましいが、メモリシステムは、異なるプレーンで1つ、2つのまたは3つのブロックのいずれかまたはすべてのメタブロックをダイナミックに形成する性能で操作することができる。これは、メタブロックのサイズが、1つのプログラミング操作において記憶のために利用可能なデータの量とより緊密に適合されることを可能にする。
個々のブロックは、図1Dで例示するように、操作上の目的のためにメモリセルのページに順に分割されている。各ブロック131〜134のメモリセルは、例えば、8ページP0〜P7に分割されている。また、各ブロック内に16、32またはそれ以上のページのメモリセルがあってもよい。ページは、ブロック内でプログラムし、読み出し、一度にプログラムされるデータの最小量を含むデータのユニットである。NANDアーキテクチャでは、ページは、ブロック内のワード線に沿ってメモリセルから形成されている。しかし、メモリシステム操作上の並列処理を増加させるために、2つ以上のブロック内のそのようなページは、メタページに論理的に結合されてもよい。メタページ151は、図1Dで例示され、4つの各ブロック131〜134からの1つの物理ページから形成されている。メタページ151は、例えば、4つの各ブロックにページP2を含むが、メタページのページは、必ずしも、各ブロック内の同じ相対位置を有する必要がない。
高いシステム性能のために、4つのプレーンすべてにわたって平行にデータの最大量をプログラムし読み出すことが好ましいが、メモリシステムは、異なるプレーン中の個別のブロック中で1、2または3ページのいずれかまたはすべてのメタページを形成するために操作することもできる。これは、プログラミングおよび読み出し操作が、便利に平行に扱われてもよいデータの量と適応して一致することを可能にし、メタページの一部が、データでプログラムされないままである場合を低減する。
多数のプレーンの物理ページから形成されたメタページは、図1Dで例示するように、それらの多数のプレーンのワード線の列に沿ってメモリセルを含む。同時に1つのワード線の列でセルのすべてをプログラムするのではなく、それらは、より一般には、2つ以上のインターリーブされたグループ中で交互にプログラムされ、各グループは、データ(単一ブロック中)のページ、またはデータ(多数のブロックにわたる)のメタページを記憶する。一度に代替のメモリセルをプログラムすることによって、データレジスタおよびセンス増幅器を含む周辺回路の1つのユニットを、各ビット線毎に設ける必要はなく、むしろ隣接するビット線間で時分割方式である。これは、周辺回路に必要な基板空間の量を効率よく利用し、メモリセルが、列に沿って密度が増加して包装されることを可能にする。そうでなければ、所定のメモリシステムから利用可能な並列処理を最大にするために、列に沿ってすべてのセルを同時にプログラムすることが好ましい。
図1Eは、ページまたはメタページのデータの2つのセクタ153、155の論理データページを示す。各セクタは、通常、ユーザの512バイトの部分157、または記憶されているシステムデータ、および部分157中のデータまたはそれが記憶されている物理ページまたはブロックに関連するオーバーヘッドデータ用のバイト159の他の数を含む。オーバーヘッドデータのバイトの数は、典型的には、16バイトであり、各セクタ153、155のために合計528バイトとする。オーバーヘッド部159は、そのようなオーバーヘッドデータ159から計算されたECCを加えて、プログラミングの間にデータ部157から計算されたECC、その論理アドレス、ブロックが消去され再プログラムされた回数の経験カウント、1つまたは複数以上の制御フラグ、操作電圧レベル等を含んでいてもよい。または、オーバーヘッドデータ159またはその一部は、他のブロック中の異なるページに記憶されていてもよい。
メモリの並列処理が増加するので、メタブロックのデータ記憶容量が増加し、その結果、データページおよびメタページのサイズも増加する。次いで、データページは、データの2つより多いセクタを含んでいてもよい。データページ中の2つのセクタおよびメタページ当たり2つのデータページで、メタページには4つのセクタがある。このように、各メタページは、2,048バイトのデータを記憶する。これは、高度な並列処理であり、列中のメモリセルの数が増加されるので、さらに増加することができる。この理由で、フラッシュメモリの幅は、ページおよびメタページ中でデータの量を増加させるために拡大される。
前に特定された物理的に小さな再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは、512メガバイト(MB)、1ギガバイト(GB)、2GBおよび4GBのデータ記憶容量で市販され、より高くなってもよい。
図1Fは、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを説明する。ホストによって実行されたアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。文書処理データファイルは一例であり、コンピュータを使った設計(CAD)ソフトウェアのドローファイルは他の例であり、主として、PC、ラップトップコンピュータ等の一般的なコンピュータのホストで見られる。pdfフォーマット中の文書も、そのようなファイルである。さらに、デジタルビデオカメラは、メモリカードに記憶される各画像のためのデータファイルを生成する。携帯電話は、電話帳などの内部記憶カード上のファイルからデータを利用する。PDAは、アドレスファイル、カレンダーファイル等のいくつかの様々なファイルを記憶し使用する。任意のそのようなアプリケーションでは、メモリカードもホストを操作するソフトウェアを含んでいてもよい。
ホストとメモリシステムとの間の共通の論理インターフェイスを図1Fに例示する。連続論理アドレス空間161は、メモリシステムに記憶されることができるすべてのデータのためにアドレスを提供することができるほど十分に大きい。ホストアドレス空間は、典型的には、データのクラスタのインクリメントに分割されている。各クラスタは、データの多くのセクタを含むために、所定のホストシステムで設計されてもよく、4〜64のセクタが典型的である。標準セクタは、512バイトのデータを含む。
3つのファイル1、2、3は、図1Cの例で示され、生成された。ホストシステム上で作動するアプリケーションプログラムは、データの順序集合として各ファイルを生成し、固有の名前または他の参照によってそれを特定する。他のファイルにまだ割り当てられていない十分に利用可能な論理アドレス空間は、ファイル1にホストによって割り当てられる。ファイル1は、利用可能な論理アドレスの連続範囲を割り当てられるために示される。アドレスの範囲も、ホストオペレーティングソフトウェアのための特有の範囲などの具体的な目的のために一般的に割り当てられ、次いで、これらのアドレスは、ホストがデータに論理アドレスを割り当てているときに利用されていないとしても、データを記憶するために回避される。
ファイル2が、後にホストによって生成される場合、ホストは、図1Fに示すように、同様に、論理アドレス空間161内の連続アドレスの2つの異なる範囲を割り当てる。ファイルは、割り当てられた連続論理アドレスである必要はないが、他のファイルに既に割り当てられたアドレス範囲間でアドレスのフラグメントとすることができる。次いで、この例は、ホストによって生成されたさらに他のファイル3が、予め、ファイル1、2および他のデータに割り当てられないホストアドレス空間の割り当てられた他の部分であることを示す。
ホストは、ファイルアロケーションテーブル(FAT)の維持によりメモリ論理アドレス空間のトラックを保持し、ここで、ホストが様々なホストファイルに割り当てる論理アドレスが維持される。FATテーブルは、ホストメモリと同様に、不揮発性メモリに典型的には記憶され、新しいファイルが記憶される場合、ホストによって頻繁に更新され、他のファイルは削除され、ファイルは訂正されるなどである。ホストファイルが削除される場合、例えば、ホストは、次いで、それらが、ここで、他のデータファイルとともに使用するために利用可能であることを示すために、FATテーブルを更新することにより、削除されたファイルに予め割り当てられた論理アドレスの割り当てを解除する。
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置について注意していない。典型的なホストは、単に、その論理アドレス空間、およびそれがその様々なファイルに割り当てられた論理アドレスを知っている。他方、メモリシステムは、典型的なホスト/カードインターフェイスを介して、データが書かれている論理アドレス空間の一部のみを知っているが、具体的なホストファイルに割り当てられた論理アドレス、またはホストファイルの数さえ知らない。メモリシステムコントローラ106は、ホストデータが記憶されるフラッシュメモリセルアレイ内の固有の物理アドレス中へのデータの記憶または検索のためにホストによって提供される論理アドレスを変換する。ブロック163は、これらの論理−物理アドレス変換の作業テーブルを表し、メモリシステムコントローラ106によって維持される。
メモリシステムコントローラ106は、ハイレベルでシステムの性能を維持する方法で、メモリアレイ165のブロックおよびメタブロック内にデータファイルを記憶するようにプログラムされている。4つのプレーンまたはサブアレイがこの実例で使用されている。データは、各プレーンからブロックから形成されたメタブロック全体にわたってシステムが可能とする並列処理の最大限で、プログラムされ、読み出されることが好ましい。少なくとも1つのメタブロック167は、予備のブロックとして、メモリコントローラによって使用される操作ファームウェアおよびデータを記憶するために通常割り当てられる。他のメタブロック169または多数のメタブロックは、ホストオペレーティングソフトウェア、ホストFATテーブル等の記憶に割り当てられてもよい。物理記憶空間のほとんどは、データファイルの記憶のために残る。
しかし、メモリシステムコントローラ106は、受けたデータが、その様々なファイルオブジェクトの中のホストによってどのように割り当てられたかは分からない。メモリコントローラ106が、典型的にホストと情報をやりとりすることから分かるすべては、コントローラの論理−物理アドレステーブル163によって維持されるように、対応する物理アドレスに、ホストによって具体的な論理アドレスに書き込まれたデータが記憶されるということである。
典型的なメモリシステムでは、アドレス空間161内でデータの量を記憶するのに必要であるよりも、記憶容量の2、3の別のブロックが設けられている。これらの別のブロックの1つまたは複数は、メモリの寿命の間に不良になってもよい他のブロックのための代用に、余分のブロックとして設けられてもよい。個々のメタブロック内に含まれたブロックの論理グループ分けは、通常、メタブロックにもともと割り当てられた不良ブロックのための余分のブロックの代用を含めて、様々な理由で変更されてもよい。メタブロック171などの1つまたは複数のブロックが、消去されたブロックプール中に典型的に維持される。
ホストが、メモリシステムにデータを書き込む場合、コントローラ106は、ホストによって、消去されたブロックプール中のメタブロック内の物理アドレスに割り当てられた論理アドレスを変換する。次いで、論理アドレス空間161内にデータを記憶するために使用されない他のメタブロックは、結果生じるデータ書き込み操作の間の使用のために、消去されたプールブロックとして消去され、指定される。
元の記憶されたデータが使用されなくなるので、具体的なホスト論理アドレスで記憶されたデータは、新しいデータによって頻繁に上書きされる。メモリシステムコントローラ106は、それに応じて、消去されたブロック中に新しいデータを書き込み、次いで、それらの論理アドレスでのデータが記憶される新しい物理ブロックを特定するために、それらの論理アドレスと論理−物理アドレステーブルを交換する。次いで、それらの論理アドレスで元のデータを含むブロックは、消去され、新しいデータの記憶に利用可能になる。書き込み開始で、消去ブロックプールからの予め消去されたブロック中に十分な記憶容量がないなら、現在のデータ書き込み操作が完了される前に、そのような消去は、しばしば起こるに違いない。これは、速度をプログラムするシステムデータに悪影響を及ぼす可能性がある。メモリコントローラ106は、典型的には、ホストが、それらの同じ論理アドレスに新しいデータを書き込む場合に限り、所定の論理アドレスでのデータが、ホストによって使用されなくなったことが分かる。したがって、メモリの多くのブロックは、一時的に、そのような無効データを記憶することができる。
ブロックおよびメタブロックのサイズは、集積回路メモリチップの領域を効率的に使用するために増加している。これは、個々のデータの書き込みの大部分がメタブロックの記憶容量未満であり、多くの場合、ブロック未満であるデータの量を記憶することをもたらす。メモリシステムコントローラ106が、新しいデータを消去されたプールメタブロックに通常導くので、これは、満たされなくなるメタブロックの一部をもたらす可能性がある。新しいデータが、他のメタブロック中に記憶されたいくつかのデータの更新であるなら、新しいデータメタページと接触する論理アドレスを有する他のメタブロックからのデータの残りの有効なメタページは、論理アドレス順に新しいメタブロックにコピーされることが望ましい。古いメタブロックは、他の有効データメタページを保持してもよい。これは、使用されず無効であり、異なるメタブロックに書き込まれる同じ論理アドレスで新しいデータと取り替えられる個々のメタブロックのあるメタページのデータをいずれもたらす。
論理アドレス空間161全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するために、そのようなデータは、周期的に圧縮または集約される(ガーベッジコレクション)。これは、連続論理アドレスでデータを読み取ることをより効率的にするので、実際と同様に、それらの論理アドレスと同じ順に、メタブロック内のデータのセクタを維持することも望ましい。したがって、データ圧縮およびガーベッジコレクションは、典型的には、この追加目標で行われる。部分ブロックデータの更新を受ける場合にメモリを管理するいくつかの態様およびメタブロックの使用が、米国特許第6,763,424号(特許文献16)に記載されている。
直接データファイル記憶:
図2Aは、2005年2月16日に出願された「フラッシュメモリでの直接データファイル記憶」という同時係属中の米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献17)、および前に援用されている直接データファイル記憶アプリケーションに開示された、直接データファイル記憶(「DFS」)方法/システムのためにフラッシュ素子105によって使用されるシステム200のブロック図を示す。
DFS装置では、データは、前述した特許出願に記載するように、ファイルバイファイル形式(ファイルベースプロトコル)でホストシステム100によってアクセスされ、すなわち、データは、ファイル内のファイル識別子およびオフセットアドレスによって特定される。論理アドレス空間は、装置のために定義されない。ホストシステム100は、論理クラスタにファイルデータを割り当てず、ファイルのためのディレクトリ/インデックステーブル情報は、フラッシュ素子105によって生成される。
ホストは、ファイル内の固有のファイルID(または他の固有の基準)、およびデータ(バイトなど)のユニットのオフセットアドレスによって、各ファイルをアドレス指定する。このファイルアドレスは、メモリシステムコントローラ106に直接付与され、次いで、各ホストファイルのデータが、物理的に記憶されることに関するそれ自身のテーブルを維持する。
このファイルベースインターフェイスは、図1Gに例示され、図1Fの論理アドレスインターフェイスと比較されるべきである。各ファイル1、2、3の特定および図1Gのファイル内のデータのオフセットは、メモリコントローラに直接渡される。次いで、この論理アドレス情報は、メモリコントローラ機能173によって、メモリ165のメタブロックおよびメタページの物理アドレスに変換される。
ファイルベースインターフェイスも、図1Lに例示され、図1Hの論理アドレスインターフェイスと比較されるべきである。論理アドレス空間および図1Hのホスト維持FATテーブルは、図1Lに存在しない。もっと正確に言えば、ホストによって生成されたデータファイルは、ファイル内のデータのファイル番号およびオフセットによってメモリシステムに特定される。次いで、メモリシステムは、直接、メモリセルアレイの物理ブロックにファイルを位置づける。
図1Mを参照して、本願明細書で説明されている大容量記憶システムの機能層の一例を説明する。「直接データファイル記憶バックエンドシステム」は、「直接データファイルインターフェイス」および「ファイルベースフロントエンドシステム」を介して、ファイルベースインターフェイスチャンネルにわたってホストシステムと通信する。各ホストファイルは、ファイル名によってなど、一意的に特定される。ファイル内のデータは、ファイルに特有の線形アドレス空間内のオフセットアドレスによって特定される。
DFS装置は、ホストシステムによって有利に使用されるが、さらに、データファイルを読み出すために、論理インターフェイスを使用する必要のあるレガシーホストシステムがある。本発明の1つの態様では、DFS装置は、レガシーホストシステムによって読み出し専用モードでアクセスされることができる。フラッシュ素子105は、それが従来のホストシステムに挿入されたことを検知する場合、それは、DOS基準によってディレクトリおよびFATデータ構造をエミュレートし、仮想論理アドレス空間の連続領域としてファイルデータアドレスを表す。レガシーホストシステムは、論理インターフェイスを有する従来のフラッシュ素子であるように、DFS可能フラッシュ素子105とインターフェイスをとる。
本発明の他の実施形態では、ホストシステムは、ファイルベースインターフェイスと論理インターフェイスの両方を使用して、フラッシュ素子105にアクセスすることを望んでもよい。例えば、ホスト上のレガシーアプリケーションソフトウェアは、論理インターフェイスを、論理インターフェイスでのみ作動するレガシーメモリ素子との互換性のために使用してもよい一方で、他のアプリケーションは、DFS装置にファイルベースインターフェイスを使用してもよい。
図2Aを再び参照すると、システム200は、仮想論理アドレス空間中の断片化されていないデータとして、フラッシュ素子105に記憶されたファイルを表すために、ディレクトリおよびFAT情報を生成することにより、論理セクタインターフェイスをエミュレートする。システム200は、DFSセグメント200Aおよび論理セグメント200Bを含む。データを読み出すために論理インターフェイスを使用するレガシーホストと共に論理セグメント200Bが使用されていることをフラッシュ素子105が検知する場合、論理セグメント200Bが可能とされる。
フラッシュ素子105のための様々な作動モードに関して、セグメント200A、200Bを以下に説明する。
直接データファイルアクセスモード(または「DFSモード」):
DFSモードの間に、フラッシュ素子105は、前述した同時係属中の特許出願に詳細に説明される直接データファイルアクセスモードで作動する。このモードの間に、ホストシステムは、直接データファイルインターフェイス201に、ファイル識別子およびオフセットアドレスを送る。論理アドレス空間は、このモードの間に必要ではない。ファイルディレクトリ203およびファイルインデックステーブル(「FIT」と称してもよい)204は、フラッシュ素子105によって生成される。
ファイルディレクトリ203は、ファイルインデックステーブル204中の第1のデータグループエントリに対してポインタでファイル属性情報を記録する。ファイルインデックステーブル204は、連続ファイルオフセットアドレスを有するファイル内の各有効データグループのためのエントリを含む。データグループのためのエントリは、ファイルオフセットアドレスおよび物理アドレスを含む。
図2Eは、本発明の1つの態様によって使用される直接データファイル記憶システムのインデックススキームのブロック図を示す。ホスト100は、フラッシュ素子105にパス、ファイル名およびオフセット203Aを提供する。パスは、ディレクトリ情報、例えば、ディレクトリA、Bを記憶するファイルディレクトリ203を指し示す。
ディレクトリ中のすべてのファイルは、FIT204(例えば、203Bは204Dを指し示す)中のエントリを指し示す。FIT204は、すべてのデータグループのためのエントリを含み、各エントリ(例えば、204D)は、オフセット値204A、ブロック値204B、およびバイト値204Cを含む。オフセット値204Aは、データグループ(例えば、フラッシュブロック205B中の205A)の開始に対応するファイル内のオフセットアドレスを示す。ブロック値204Bは、データブロックの実際の物理アドレスを提供し、バイト値204Cは、データグループが開始するバイトを指し示す。
論理構成モード:
フラッシュ素子105が、データを読み出すために論理インターフェイスを必要とするレガシーホストシステムに挿入される(またはレガシーホストシステムと通信する/操作上レガシーホストシステムと結合される)ことを検知する場合、論理構成操作は、本発明の1つの態様によって行われる。
論理構成は、コントローラ106によって、またはホストインターフェイス113で受けたコマンドに応じて決定されてもよいなど、別のときに行われてもよい。
図2Bに示すように、論理構成操作中に、ファイルディレクトリ203のコンテンツを使用して、ディレクトリインデックス206、FATインデックス207、および論理インデックス208を生成して、ホストシステム100で結合される論理インターフェイス210に応答する。ファイルディレクトリ203は、論理データ読み出しマネージャ209によって走査され、情報を使用して、前述したインデックステーブルを生成する。
ディレクトリインデックス206:
ディレクトリインデックス206は、各ファイルディレクトリ203エントリのために割り当てられる仮想論理アドレスを含む。ファイルディレクトリ203エントリは、サブディレクトリまたはファイルを定義し、ファイルディレクトリ203またはFIT204へのポインタを含む。DOSディレクトリ中のポインタが、素子のアドレス空間中で論理アドレスに関係することに注目すべきである。ディレクトリインデックス206は、ファイルディレクトリ203中でポインタの代わりになるために使用される仮想論理アドレスを含み、DOS基準に一致するディレクトリを生成する。
FATインデックス207:
FATインデックス207は、フラッシュ素子105のための仮想アドレス空間のためにFATがエミュレートされることを可能にする情報を含む(図2F参照)。フラッシュ素子105中のファイルは、論理順次クラスタの連続セットを占めることとしてエミュレートされる。FATは、フラッシュ素子105のための仮想論理アドレス空間中で各エミュレートされたクラスタのための1つのエントリを含む。ファイルのためのデータに割り当てられ、エミュレートされたクラスタは、<エンドオブファイル>コードを含む最後のクラスタ以外に、次のクラスタを指し示すFATエントリを有する。
本発明は、FATセクタがホストによって読み出される場合に、アルゴリズムで生成されることができるようなFATエントリを明確に記憶することに限定されないことに注目すべきである。FATエントリを<エンドオブファイル>コードで特定する記録が記憶される。FATエントリ(207A)の各セクタについて、FATインデックス207は、<エンドオブファイル>コードを含むエントリのリストを含む(図2F参照)。
論理インデックス208:
論理読み出し専用モードの間に、フラッシュ素子105からのファイルデータは、論理アドレスを使用することによりアクセスされる。論理インデックス208は、ファイルデータ205C(図2D)がレガシーホスト(または任意の他のホストシステム)によって読み出されるように、論理アドレスをファイルディレクトリ203エントリアドレスおよびファイルアドレスオフセットに変換するために使用される。論理インデックス208は、ファイルディレクトリ203中で特定される各ファイルのための1つのエントリを含む。各論理インデックス208エントリは、仮想論理アドレス空間中でアドレスを特定し、ファイルディレクトリ203中で関係のあるエントリ位置を指定する。
図2Dは、本発明の1つの態様による論理インデックステーブル208を例示する。論理インデックス208中のエントリは、2つのフィールド、XおよびYを含む。フィールドYは、ファイルディレクトリの位置Xでエントリを有するファイルの開始に割り当てられた論理アドレスである。エミュレートされた論理アドレスマップは、208Aとして示される一方で、208Bは、ファイルエントリXがFITテーブル204エントリをどのように指し示すかを示す。
ホストは、ターゲット論理アドレスY’(図示せず)を提供し、論理インデックス208は、論理アドレスY’が位置するファイルの開始のために論理アドレスYを見つけるために探索される。(Y’−Y)は、ファイル内のターゲット論理アドレスのオフセットアドレスを定義する。論理インデックス208は、論理アドレスYに対応する位置Xを提供する。これは、ファイルデータ205が論理インターフェイスを使用して、レガシーホストに提供されることを可能にする。
図2Gは、データ構造が表されるフラッシュ素子105のための仮想論理アドレス空間211を示す。DOS基準によれば、FAT 1、FAT2およびルートディレクトリ構造は、パーティションブート記録に続く1セットの論理アドレスによって表される。従来のシステムでは、クラスタ化されたデータ空間は、ルートディレクトリの後に開始する。
フラッシュ素子105は、データ空間の開始で連続クラスタドレスにあるとしてサブディレクトリを表す。ファイルは、アドレスの断片化なしで、およびファイル(連続ファイル211Aとして示される)間の割り付けられていないクラスタなしで、データ空間中で連続クラスタを占めることとして表される。
論理読み出し専用モード:
フラッシュ素子105が、論理読み出し専用操作のために構成される場合、図2Cに示すように、論理インターフェイス210を使用して読み出されてもよい。ホストセクタドレスは、仮想論理アドレス空間内のその範囲に基づいて、ディレクトリセクタ、FATセクタまたはデータセクタに関係すると認められる。
ディレクトリセクタに関係するエントリは、ファイルディレクトリ203から読み出され、ホストシステムに戻される前に、ディレクトリインデックス206から対応するエントリを使用することにより訂正される。
FATセクタに関係するエントリは、1セットのインクリメントクラスタアドレスとして生成され、FATインデックス207中のセクタのためのエントリによって、<エンドオブファイル>コードに更新される。その後、エントリは、ホストシステムに戻される。図2Fは、各エントリが<エンドオブファイル>コードを含むFATエントリ(207A)のFATセクタエントリ番号(207C)およびFATセクタエントリ番号(207B)を特定するFATインデックス207の例を示す。
ホストシステムからの論理セクタアドレスは、論理インデックス208中のエントリを探索することによりファイルオフセットアドレスを有するファイルディレクトリ203中のエントリアドレスに変換される。セクタデータは、直接データファイル記憶マネージャ202を使用して読み出される。
メモリ110は、ディレクトリインデックス206、FATインデックス207および論理インデックス208の記憶およびアクセスに使用されてもよいことに注目すべきである。DFSマネージャ202は、メモリ110中のバッファのプールおよびファイルのための消去ブロックのプールを使用し、データ記憶を制御してもよい。これらのバッファ(図示せず)は、論理読み出し専用操作の間に使用されず、その結果、先のインデックスを記憶するために使用されてもよい。しかし、インデックスは、メモリ110中のコピーでまたはコピーなしで、フラッシュメモリモジュール107、108に記憶されていてもよい。
処理フロー:
図3は、本発明の1つの態様によるフラッシュ素子105から情報を読み出すためのフローチャートを示す。詳細に図3を参照して、ステップS300でプロセスを開始する。ステップS302では、コントローラ106は、論理構成が必要かどうかを判断する。構成が必要でないなら、プロセスはステップS314に進み、以下に詳細に説明する。
ステップS304では、論理構成が必要なら、コントローラ106は、次のファイルディレクトリエントリを読み出し、ステップS306Aでディレクトリインデックス206のための対応するエントリを生成する。次いで、ファイルディレクトリエントリが、ファイル用であるなら、コントローラ106は、ステップS306で判断する。ファイルディレクトリエントリが、ファイルのためでないなら、プロセスは、ステップS312(以下に説明される)に進む。
ステップS306でファイルディレクトリエントリがファイル用であるなら、次いで、ステップS308では、FATインデックスエントリ207Bが生成され、ステップS308Aでは、論理インデックスエントリ(例えば、図2Dで示すように)が生成される。
ステップS312では、コントローラ106は、ファイルディレクトリ中の最後のエントリが到達されたかどうかを判断する。ファイルディレクトリ中の最後のエントリが、到達されていないなら、プロセスは、次いで、ステップS304に戻る。ステップS314では、ファイルディレクトリ中の最後のエントリが到達されるなら、コントローラ106は、読み取りコマンドが論理インターフェイス210で受けられたかどうかを判断する。
読み取りコマンドが受けられないなら、プロセスは、次いで、ステップS302に戻る。
ステップS316では、読み取りコマンドが受けられるなら、プロセスは、論理アドレスがディレクトリセクタ用であるかどうかを判断する。論理アドレスが、ディレクトリセクタ用であるなら、次いで、ステップS318では、ディレクトリインデックス206が読み出され、ステップS320では、ファイルディレクトリ203が読み出される。ステップS322では、ディレクトリセクタが生成され、情報がステップS324においてホスト100に戻される。
ステップS316であれば、論理アドレスは、ディレクトリセクタのためでなく、次いで、ステップS330では、プロセスは、論理アドレスがFATセクタ用であるかどうか判断する。それがFATセクタ用であるなら、次いで、ステップS332では、FATインデックス207が読み出される。FATセクタは、ステップS334で生成され、ステップS324でホスト100に戻される。
ステップS330であるなら、論理アドレスは、FATセクタ用ではなくファイルデータ用であり、次いで、ステップS336では、プロセスは、論理アドレスがファイルデータ用であるかどうかを判断する。そうでなければ、次いで、そのプロセスは、ステップS302に戻る。
論理アドレスがファイルデータ用である場合、次いで、ステップS338では、論理インデックス208が読み出される。ファイルディレクトリエントリはステップS340で特定され、データはステップS342で直接データファイル記憶セグメントから読み出される。したがって、ファイルデータは、ステップS324でホストに戻される。
ステップS326では、プロセスは、ステップS314で受けられた読み取りコマンドの結果として読み出されることになる任意の他の論理アドレスがあるかどうかを判断する。そうでなければ、次いで、プロセスはステップS302に戻る。他の論理アドレスがあるなら、プロセスはステップS316に戻る。
本発明の1つの態様では、レガシーホストシステムは、直接データファイル記憶装置からデータを読み出すために、全くアップグレードをする必要はない。
本発明を具体的な実施形態を参照して説明してきたが、これらの実施形態は、単に実例であり、限定されない。本発明の他の多くの用途および実施形態は、この開示および添付の特許請求の範囲の観点から明らかになる。
フラッシュ素子を使用するホストシステムのブロック図を示す。 本発明の1つの態様によって使用される、フラッシュ素子コントローラのブロック図を示す。 フラッシュメモリシステムのための物理メモリ構成の例を示す。 図1Dの物理メモリの一部の拡大図を示す。 図1C、1Dの物理メモリの一部のさらなる拡大図を示す。 ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを示す。 本発明の1つの態様による、ホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを示す。 ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを図1Fとは異なる方法で示す。 本発明の1つの態様による、ホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを図1Gとは異なる方法で示す。 例のメモリシステムの機能階層を示す。 本発明の1つの態様による、フラッシュ素子によって使用されるシステムのトップレベル論理ブロック図を示す。 本発明の1つの態様による、論理構成モードのために、図2Aにおけるシステムの複数の構成要素間の相互接続を示す。 本発明の1つの態様による、論理読み出し専用モードのための、図2Aにおけるシステムの複数の構成要素間の相互接続を示す。 本発明の1つの態様によって使用される、論理インデックステーブルのブロック図を示す。 本発明の1つの態様による、直接データファイル記憶システムのインデックススキームを示す。 本発明の1つの態様によって使用される、FATインデックステーブルのブロック図を示す。 本発明の1つの態様による、論理アドレスマップのブロック図を示す。 本発明の1つの態様による、ファイルバイファイル形式でデータを記憶するフラッシュ素子からデータを読み出すための工程段階のフローチャートを示す。

Claims (28)

  1. 不揮発性大容量記憶装置からデータを読み出す方法であって、
    ファイルバイファイル形式でファイルデータを記憶する不揮発性大容量記憶装置のために論理構成を行い、論理構成の間に、論理インデックスが、ファイルディレクトリで特定される各ファイルのためのエントリを含み、各エントリは、不揮発性大容量記憶装置のための仮想論理アドレス空間内でファイルのためのアドレスおよびファイルディレクトリ内の対応するエントリ位置を指定する場合には、論理インデックスが生成されるステップと、
    仮想論理アドレスによって特定されるデータが、ホストシステムによって読み出される不揮発性大容量記憶装置を作動するステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換される方法。
  3. 請求項2記載の方法において、
    セクタデータは、直接データファイル記憶マネージャによって読み出される方法。
  4. 請求項1記載の方法において、
    各FATセクタのためのリストを含むとともに、各FATセクタ番号のためのエントリ番号を提供するファイルアロケーションテーブル(「FAT」)インデックスが、論理構成の間に生成される方法。
  5. 請求項4記載の方法において、
    論理読み出し専用モードの間に、FATセクタに関係するエントリは、ホストシステムに送られる前に、FATインデックス中のエントリに基づいて更新される方法。
  6. 請求項1記載の方法において、
    ホストシステムは、データが不揮発性大容量記憶装置によってファイルバイファイル形式で記憶されることを可能にする記憶フォーマットを認識しない方法。
  7. 不揮発性大容量記憶装置中のデータを読み出すためのシステムであって、
    ホストシステムがファイルバイファイル形式で不揮発性大容量記憶装置からデータにアクセスすることを可能にする直接データファイルアクセスモードで作動する直接データファイル記憶セグメントと、
    ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を備え、
    ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しないシステム。
  8. 請求項7記載のシステムにおいて、
    論理インターフェイスは、ディレクトリインデックスと、ファイルアロケーションテーブル(「FAT」)インデックスと、論理構成モードの間に生成される論理インデックスとを含むシステム。
  9. 請求項8記載のシステムにおいて、
    ディレクトリインデックスでは、仮想論理アドレスが、ファイルディレクトリ中の各エントリに割り当てられるシステム。
  10. 請求項8記載のシステムにおいて、
    論理インデックスは、ファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、仮想論理アドレス空間およびファイルディレクトリ中で対応するエントリ位置を指定するシステム。
  11. 請求項8記載のシステムにおいて、
    FATインデックスは、各FATセクタのためのリストを含み、各FATセクタ番号のためのエントリ番号を提供するシステム。
  12. 請求項8記載のシステムにおいて、
    論理読み出し専用モードの間に、ディレクトリセクタに関係するエントリは、ファイルディレクトリから読み出され、ディレクトリインデックスからのエントリによって訂正されるシステム。
  13. 請求項8記載のシステムにおいて、
    論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換されるシステム。
  14. 請求項8記載のシステムにおいて、
    論理読み出し専用モードの間に、FATセクタに関係するエントリは、ホストシステムに送られる前に、FATインデックス中のエントリに基づいて更新されるシステム。
  15. ファイルバイファイル形式でデータを記憶する不揮発性大容量記憶装置からデータを読み出す方法であって、
    不揮発性大容量記憶装置のために論理構成を行うステップを含み、
    ファイルデータは、仮想論理アドレス空間中の割当アドレスであり、
    仮想論理アドレスによって特定されたデータは、ホストシステムによって読み出される方法。
  16. 請求項15記載の方法において、
    論理読み出し専用モードの間に、ファイルオフセットアドレスが論理インデックステーブル中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換される方法。
  17. 請求項16記載の方法において、
    セクタデータは、直接データファイル記憶マネージャによって読み出される方法。
  18. 請求項15記載の方法において、
    各FATセクタのためのリストを含むとともに、各FATセクタ番号のためのエントリ番号を提供するファイルアロケーションテーブル(「FAT」)インデックスが、論理構成の間に生成される方法。
  19. 請求項18記載の方法において、
    論理読み出し専用モードの間に、FATセクタに関係するエントリは、ホストシステムに送られる前に、FATインデックス中のエントリに基づいて更新される方法。
  20. 請求項15記載の方法において、
    ホストシステムは、データが不揮発性記憶装置によってファイルバイファイル形式で記憶される記憶フォーマットを認識しない方法。
  21. 不揮発性大容量記憶装置からデータを読み出すためのシステムであって、
    ファイルバイファイル形式でデータを読み出しおよび書き込んで、ホストシステムがファイルベースのプロトコルを使用して不揮発性大容量記憶装置からデータにアクセスすることを可能にするファイル記憶セグメントと、
    ホストシステムが論理アドレッシングを使用してデータにアクセスすることを可能にする論理インターフェイスセグメントと、を備え、
    ホストシステムは、データがファイルバイファイル形式で記憶される記憶フォーマットを認識しないシステム。
  22. 請求項21記載のシステムにおいて、
    論理インターフェイスセグメントは、ディレクトリインデックスと、ファイルアロケーションテーブル(「FAT」)インデックスと、論理構成モードの間に生成される論理インデックスとを含むシステム。
  23. 請求項22記載のシステムにおいて、
    ディレクトリインデックスでは、仮想論理アドレスが、ファイルディレクトリ中の各エントリに割り当てられるシステム。
  24. 請求項22記載のシステムにおいて、
    論理インデックスは、ファイルディレクトリ中で特定される各ファイルのためのエントリを含み、各エントリは、仮想論理アドレス空間およびファイルディレクトリ中で対応するエントリ位置を指定するシステム。
  25. 請求項22記載のシステムにおいて、
    FATインデックスは、各FATセクタのためのリストを含み、各FATセクタ番号のためのエントリ番号を提供するシステム。
  26. 請求項22記載のシステムにおいて、
    ディレクトリセクタに関係するエントリは、ファイルディレクトリから読み出され、ディレクトリインデックスからのエントリによって訂正されるシステム。
  27. 請求項22記載のシステムにおいて、
    ファイルオフセットアドレスが論理インデックス中のエントリから得られるとともに、ホストシステムからの論理セクタアドレスに関係するエントリは、ファイルディレクトリ中のエントリアドレスに変換されるシステム。
  28. 請求項22記載のシステムにおいて、
    FATセクタに関係するエントリは、ホストシステムに送られる前に、FATインデックス中のエントリに基づいて更新されるシステム。
JP2008525046A 2005-08-03 2006-07-27 記憶装置用デュアルモードアクセスのための方法およびシステム Expired - Fee Related JP5178514B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/196,168 2005-08-03
US11/196,168 US7627733B2 (en) 2005-08-03 2005-08-03 Method and system for dual mode access for storage devices
PCT/US2006/029306 WO2007019075A2 (en) 2005-08-03 2006-07-27 Method and system for dual mode access for storage devices

Publications (2)

Publication Number Publication Date
JP2009503730A true JP2009503730A (ja) 2009-01-29
JP5178514B2 JP5178514B2 (ja) 2013-04-10

Family

ID=37307183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008525046A Expired - Fee Related JP5178514B2 (ja) 2005-08-03 2006-07-27 記憶装置用デュアルモードアクセスのための方法およびシステム

Country Status (7)

Country Link
US (1) US7627733B2 (ja)
EP (1) EP1920316B1 (ja)
JP (1) JP5178514B2 (ja)
KR (1) KR101369996B1 (ja)
CN (1) CN101253468A (ja)
TW (1) TWI327274B (ja)
WO (1) WO2007019075A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068863A (ja) * 2010-09-22 2012-04-05 Toshiba Corp 半導体記憶制御装置

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
KR101404083B1 (ko) * 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
JP2006338371A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7702821B2 (en) 2005-09-15 2010-04-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
CN100458699C (zh) * 2007-04-10 2009-02-04 北京中星微电子有限公司 一种实现固件更新的方法和系统
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20090055351A1 (en) * 2007-08-24 2009-02-26 Microsoft Corporation Direct mass storage device file indexing
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US20090171911A1 (en) * 2008-01-02 2009-07-02 Sandisk Il, Ltd. Data indexing by local storage device
US9098506B2 (en) * 2008-01-02 2015-08-04 Sandisk Il, Ltd. Data indexing by local storage device
CN101960426A (zh) * 2008-01-02 2011-01-26 桑迪士克以色列有限公司 具有直接用户访问的存储装置
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
US8370402B2 (en) 2008-01-02 2013-02-05 Sandisk Il Ltd Dual representation of stored digital content
US8583878B2 (en) * 2008-01-02 2013-11-12 Sandisk Il Ltd. Storage device having direct user access
CN101547161B (zh) * 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 文件夹传输系统、文件夹传输装置及文件夹传输方法
US20100070544A1 (en) * 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US20100082869A1 (en) * 2008-09-26 2010-04-01 Rockwell Automation Technologies, Inc. Stackable i/o modules appearing as standard usb mass storage devices
KR20100054402A (ko) * 2008-11-14 2010-05-25 삼성전자주식회사 스토리지를 갖는 컴퓨팅 장치와, 상기 스토리지에 대한 관리 장치 및 방법과, 파일 시스템이 기록된 기록 매체
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
GB0823162D0 (en) * 2008-12-18 2009-01-28 Solarflare Communications Inc Virtualised Interface Functions
US8468007B1 (en) 2010-08-13 2013-06-18 Google Inc. Emulating a peripheral mass storage device with a portable device
CN102508782B (zh) * 2011-09-29 2014-09-10 北京星网锐捷网络技术有限公司 数据读写方法、装置、存储体及网络设备
US9569447B2 (en) * 2013-11-08 2017-02-14 Texas Instruments Incorporated File access method and system thereof
US9542122B2 (en) 2014-10-23 2017-01-10 Seagate Technology Llc Logical block addresses used for executing host commands
CN108334282B (zh) * 2017-12-28 2021-07-09 宁德时代新能源科技股份有限公司 汽车电子控制单元的程序文件下载方法和装置
CN112395260B (zh) * 2020-11-11 2022-11-15 深圳市云网万店科技有限公司 一种数据存储方法及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH11511879A (ja) * 1995-09-27 1999-10-12 メモリー・コーポレーシヨン・ピー・エル・シー メモリシステム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2004508626A (ja) * 2000-08-25 2004-03-18 レクサー メディア,インク. オーバヘッドデータとユーザデータを個別に格納するフラッシュメモリアーキテクチャ
JP2004326165A (ja) * 2003-04-21 2004-11-18 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2005182793A (ja) * 2003-12-19 2005-07-07 Lexar Media Inc 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4800520A (en) * 1985-10-29 1989-01-24 Kabushiki Kaisha Toshiba Portable electronic device with garbage collection function
US4802117A (en) * 1985-12-16 1989-01-31 Pitney Bowes Inc. Method of preserving data storage in a postal meter
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
JP3015377B2 (ja) 1988-08-26 2000-03-06 株式会社東芝 Icカード
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5778418A (en) 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JPH05233426A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5628014A (en) * 1992-03-20 1997-05-06 Paranode, Inc. Methods and apparatus for node caching at the file level
JPH0778766B2 (ja) * 1992-09-25 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
JP3017892B2 (ja) * 1992-09-30 2000-03-13 株式会社東芝 ファイル管理装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
US5619690A (en) * 1993-06-21 1997-04-08 Hitachi, Ltd. Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5636355A (en) * 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5353256A (en) 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5542066A (en) 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
US6125578A (en) 1994-05-03 2000-10-03 Southpac Trust International, Inc. Floral sleeve having expandable sidewalls
US6341293B1 (en) * 1994-07-13 2002-01-22 Object Technology Licensing Corp Real-time computer “garbage collector”
US5809558A (en) 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
JP2669365B2 (ja) 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5708846A (en) * 1995-02-24 1998-01-13 Intel Corporation System for retrieving initial data sequence corresponding to next data sequence while locating next data sequence when branch point is reached during current data sequence
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
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5987478A (en) 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5799168A (en) 1996-01-05 1998-08-25 M-Systems Flash Disk Pioneers Ltd. Standardized flash controller
US5754888A (en) * 1996-01-18 1998-05-19 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
GB9606927D0 (en) 1996-04-02 1996-06-05 Memory Corp Plc Data storage devices
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5848420A (en) * 1996-06-14 1998-12-08 Eastman Kodak Company System and method for accessing data of a digital camera from a personal computer
US5978893A (en) 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
US5996047A (en) 1996-07-01 1999-11-30 Sun Microsystems, Inc. Method and apparatus for caching file control information corresponding to a second file block in a first file block
FR2752072B1 (fr) * 1996-08-01 1999-01-29 Solaic Sa Carte a circuit integre comportant des fichiers classes selon une arborescence
DE19633648A1 (de) 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät
JPH1069420A (ja) 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5907854A (en) * 1996-09-27 1999-05-25 Alcatel Usa Sourcing, L.P. Flash memory file system for writing data files without rewriting an entire volume
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5953538A (en) 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6681239B1 (en) * 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US6279069B1 (en) 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
FR2759795B1 (fr) 1997-02-14 1999-05-07 Francois Charles Oberthur Fidu Procede de stockage de donnees dans une memoire reinscriptible de carte a puce
US6088759A (en) * 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5832493A (en) 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
NO973993L (no) * 1997-09-01 1999-03-02 Opticom As Leseminne og leseminneinnretninger
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US5928347A (en) 1997-11-18 1999-07-27 Shuttle Technology Group Ltd. Universal memory card interface apparatus
US6424486B2 (en) 1997-12-17 2002-07-23 Texas Instruments Incorporated Method and apparatus for positioning a read/write head of a hard disk drive
US6493811B1 (en) 1998-01-26 2002-12-10 Computer Associated Think, Inc. Intelligent controller accessed through addressable virtual space
US6466973B2 (en) 1998-03-06 2002-10-15 Adaptec, Inc. Method and system for managing storage devices over a network
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6286056B1 (en) 1998-06-26 2001-09-04 Seagate Technology Llc Data storage device with small computer system interface providing persistent reservations
US6223271B1 (en) * 1998-07-15 2001-04-24 Compaq Computer Corp. System and method for detecting system memory size using ROM based paging tables
US6490649B2 (en) 1998-11-10 2002-12-03 Lexar Media, Inc. Memory device
JP2000148546A (ja) 1998-11-10 2000-05-30 Nec Corp データ入出力装置およびデータ入出力方法、並びに記録媒体
US6408357B1 (en) * 1999-01-15 2002-06-18 Western Digital Technologies, Inc. Disk drive having a cache portion for storing write data segments of a predetermined length
US6256690B1 (en) 1999-01-15 2001-07-03 Todd Carper System and method for facilitating multiple applications on a smart card
US6480935B1 (en) 1999-01-15 2002-11-12 Todd Carper Smart card memory management system and method
US6370614B1 (en) * 1999-01-26 2002-04-09 Motive Power, Inc. I/O cache with user configurable preload
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
US6427186B1 (en) 1999-03-30 2002-07-30 Frank (Fong-Long) Lin Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6467015B1 (en) 1999-04-15 2002-10-15 Dell Products, L.P. High speed bus interface for non-volatile integrated circuit memory supporting continuous transfer
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
JP3524428B2 (ja) 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6547150B1 (en) * 1999-05-11 2003-04-15 Microsoft Corporation Smart card application development system and method
US6504846B1 (en) * 1999-05-21 2003-01-07 Advanced Micro Devices, Inc. Method and apparatus for reclaiming buffers using a single buffer bit
US6389433B1 (en) * 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
US7181608B2 (en) * 2000-02-03 2007-02-20 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
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
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US20020078002A1 (en) * 2000-08-25 2002-06-20 Bottomley Thomas Mark Walter Memory garbage collection method and apparatus
JP3726663B2 (ja) 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
US6629809B2 (en) * 2000-11-08 2003-10-07 Termax Corporation Sheet metal fastener with multiple engagement
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
JP4523150B2 (ja) * 2000-12-27 2010-08-11 レノボ シンガポール プライヴェート リミテッド データサーバシステム、コンピュータ装置、記憶媒体
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6631453B1 (en) 2001-02-14 2003-10-07 Zecurity Secure data storage device
JPWO2002071269A1 (ja) * 2001-03-02 2004-07-02 日本精工株式会社 インターネットによる特許または実用新案の情報検索管理システム
US6631456B2 (en) 2001-03-06 2003-10-07 Lance Leighnor Hypercache RAM based disk emulation and method
US20020188592A1 (en) * 2001-06-11 2002-12-12 Storage Technology Corporation Outboard data storage management system and method
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6842843B1 (en) * 2001-06-29 2005-01-11 Emc Corporation Digital data storage subsystem including arrangement for increasing cache memory addressability
GB0116116D0 (en) * 2001-06-30 2001-08-22 Koninkl Philips Electronics Nv Receiver apparatus and method
US6625081B2 (en) 2001-08-13 2003-09-23 Micron Technology, Inc. Synchronous flash memory with virtual segment architecture
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6823417B2 (en) * 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
JP3641230B2 (ja) * 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6668336B2 (en) 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
WO2003073203A2 (en) * 2002-02-21 2003-09-04 Precise Software Solutions, Inc. System and method for analyzing input/output activity on local attached storage
US6771536B2 (en) 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
US6766432B2 (en) 2002-05-24 2004-07-20 Sun Microsystems, Inc. Memory management system supporting object deletion in non-volatile memory
US6865659B2 (en) * 2002-06-07 2005-03-08 Sun Microsystems, Inc. Using short references to access program elements in a large address space
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
TWI246064B (en) * 2002-07-29 2005-12-21 Milsys Ltd Data storage and processing device, electronic appliance, electronic system and method of operating an appliance that responds to a plurality of commands
US7263108B2 (en) * 2002-08-06 2007-08-28 Netxen, Inc. Dual-mode network storage systems and methods
US7249352B2 (en) * 2002-08-22 2007-07-24 International Business Machines Corporation Apparatus and method for removing elements from a linked list
US6970969B2 (en) * 2002-08-29 2005-11-29 Micron Technology, Inc. Multiple segment data object management
US6646948B1 (en) 2002-08-29 2003-11-11 Motorola, Inc. Data storage system utilizing a non-volatile IC based memory for reduction of data retrieval time
US6895486B2 (en) * 2002-08-29 2005-05-17 Micron Technology, Inc. Linear object management for a range of flash memory
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
KR20050118731A (ko) * 2003-04-14 2005-12-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 유니버셜 드라이브장치용 포맷 매핑 방식
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US20050125603A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. Method for rapid availability of critical data through re-allocation
US20050125602A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. HDD with storage of critical data in FLASH
US20050125600A1 (en) * 2003-12-04 2005-06-09 Ehrlich Richard M. Method for storing HDD critical data in flash
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
JP2005293478A (ja) * 2004-04-05 2005-10-20 Hitachi Ltd 記憶制御システム、記憶制御システムに備えられるチャネル制御装置、データ転送装置
US20060004951A1 (en) * 2004-06-30 2006-01-05 Rudelic John C Method and apparatus to alter code in a memory
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7395384B2 (en) * 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137634A (ja) * 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH11511879A (ja) * 1995-09-27 1999-10-12 メモリー・コーポレーシヨン・ピー・エル・シー メモリシステム
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2004508626A (ja) * 2000-08-25 2004-03-18 レクサー メディア,インク. オーバヘッドデータとユーザデータを個別に格納するフラッシュメモリアーキテクチャ
JP2004326165A (ja) * 2003-04-21 2004-11-18 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2005182793A (ja) * 2003-12-19 2005-07-07 Lexar Media Inc 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200500855003; 'ウルトラバック ソフトウェア バックアップはビジネスを遂行するための"保険" 災害からの確実なバック' Windows Server World 第9巻 第12号, 20041201, pp.40〜41, (株)IDGジャパン *
CSNJ200910046286; 城野剛伸: 'レガシーラッピングに関する研究' 第58回(平成11年前期)全国大会 講演論文集(3) データベースとメディア ネットワーク , 19990309, pp.3-585〜3-586, 社団法人情報処理学会 *
JPN6011058093; 'ウルトラバック ソフトウェア バックアップはビジネスを遂行するための"保険" 災害からの確実なバック' Windows Server World 第9巻 第12号, 20041201, pp.40〜41, (株)IDGジャパン *
JPN6012064063; 城野剛伸: 'レガシーラッピングに関する研究' 第58回(平成11年前期)全国大会 講演論文集(3) データベースとメディア ネットワーク , 19990309, pp.3-585〜3-586, 社団法人情報処理学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012068863A (ja) * 2010-09-22 2012-04-05 Toshiba Corp 半導体記憶制御装置

Also Published As

Publication number Publication date
KR20080043806A (ko) 2008-05-19
TWI327274B (en) 2010-07-11
KR101369996B1 (ko) 2014-03-06
US20070033373A1 (en) 2007-02-08
WO2007019075A3 (en) 2007-05-03
EP1920316B1 (en) 2018-03-14
CN101253468A (zh) 2008-08-27
TW200719143A (en) 2007-05-16
JP5178514B2 (ja) 2013-04-10
EP1920316A2 (en) 2008-05-14
US7627733B2 (en) 2009-12-01
WO2007019075A2 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
JP5178514B2 (ja) 記憶装置用デュアルモードアクセスのための方法およびシステム
US8209516B2 (en) Method and system for dual mode access for storage devices
US7793068B2 (en) Dual mode access for non-volatile storage devices
US7769978B2 (en) Method and system for accessing non-volatile storage devices
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7669003B2 (en) Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7877540B2 (en) Logically-addressed file storage methods
US8239639B2 (en) Method and apparatus for providing data type and host file information to a mass storage system
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US8713283B2 (en) Method of interfacing a host operating through a logical address space with a direct file storage medium
US20070136553A1 (en) Logically-addressed file storage systems
JP2013012212A (ja) 記憶装置内のパーティションを管理する方法およびシステム
KR20080042844A (ko) 플래시 메모리시스템 내의 데이터 저장 용량의 리클레이밍
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
KR20080044254A (ko) 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리
KR20090108694A (ko) 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
WO2007079358A2 (en) Method and system for accessing non-volatile storage devices
KR20080038368A (ko) 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120207

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120308

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120508

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130108

R150 Certificate of patent or registration of utility model

Ref document number: 5178514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees