JP2009503731A - 大容量データ記憶システム - Google Patents

大容量データ記憶システム Download PDF

Info

Publication number
JP2009503731A
JP2009503731A JP2008525047A JP2008525047A JP2009503731A JP 2009503731 A JP2009503731 A JP 2009503731A JP 2008525047 A JP2008525047 A JP 2008525047A JP 2008525047 A JP2008525047 A JP 2008525047A JP 2009503731 A JP2009503731 A JP 2009503731A
Authority
JP
Japan
Prior art keywords
storage device
mass storage
data
file
volatile
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
JP2008525047A
Other languages
English (en)
Other versions
JP5236469B2 (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 JP2009503731A publication Critical patent/JP2009503731A/ja
Application granted granted Critical
Publication of JP5236469B2 publication Critical patent/JP5236469B2/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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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]
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムおよび方法を提供する。システムは、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体の不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子である。第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶する1次記憶装置として作動するフラッシュメモリ装置である。第2の大容量記憶装置は、2次記憶装置として作動し、論理インターフェイスを介して受信されるデータを記憶する磁気ディスクドライブである。

Description

本発明は、概して記憶装置に関し、より詳細には、直接データファイル記憶インターフェイスを使用するデュアルメディア記憶装置に関する。
関連出願の相互参照
本願は、その全体が本願明細書において参照により援用されている以下の同時係属中の米国特許出願に関する。以下の特許出願とは、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「デュアルメディア記憶装置」という米国特許出願第10/772,855号(代理人整理番号:SDK01P018)(特許文献1)、2005年2月4日に出願されたアラン・W・シンクレアが発明者である「大容量記憶アクセラレータ」という米国特許出願第10/772,789号(代理人整理番号:SDK1P019)(特許文献2)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶」という米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献3)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイルのプログラミングおよび削除」という米国特許出願第11/060,174号(代理人整理番号:SDK0380.US1)(特許文献4)、2005年2月16日に出願されたアラン・W・シンクレアおよびピーター・J・スミスが発明者である「フラッシュメモリにおける直接データファイル記憶実施技術」という米国特許出願第11/060,248号(代理人整理番号:SDK0380.US2) (特許文献5)、アラン・W・シンクレアおよびバリー・ライトによって本願と同時に出願された「フラッシュメモリにおける直接データファイル記憶」という米国仮特許出願(特許文献6)である(以下、前述した特許出願は、「直接データファイル記憶アプリケーション」としてまとめて称せられる)。
従来のコンピュータシステムは、典型的には、いくつかの機能構成要素を含んでいる。これらの構成要素は、中央処理装置(CPU)、メインメモリ、入出力(「I/O」)装置、大容量記憶装置を含んでいてもよい。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してCPUに接続されている。メインメモリは、実行時間でメインメモリに記憶されるデータおよび/またはプログラム情報にCPUアクセスを提供するために使用されている。典型的には、メインメモリは、ランダムアクセスメモリ(RAM)回路から構成されている。CPUおよびメインメモリを有するコンピュータシステムは、しばしば、ホストシステムと称せられる。
大容量記憶は、典型的には、データを保持するために使用される。一般的には、大容量記憶に記憶されたプログラムは、CPUによって実行される前に、メインメモリにコピーされる。普通の大容量記憶装置は、フロッピーディスク、ハードディスク、光ディスクおよびテープドライブを含む。
さらに、フラッシュメモリは、不揮発性記憶装置を提供するために使用されてもよい。ホストシステムは、インターフェイスを介して、フラッシュメモリ(この明細書全体にわたって交換可能に「フラッシュ素子」、「フラッシュ」または「フラッシュカード」とも称する)と連動する。フラッシュメモリは、典型的には、情報を記憶するための不揮発性メモリセルアレイを含む。
フラッシュメモリシステムは、最も一般的に、パソコン、カメラ等の様々なホストと取り付け可能に接続されるが、そのようなホストシステム内に組み込まれてもよいメモリカードまたはフラッシュドライブの形状で提供される。
フラッシュメモリコントローラは、典型的には、メモリアレイの処理を制御する。メモリコントローラは、マイクロプロセッサ、いくつかの不揮発性読み出し専用メモリ(「ROM」)、揮発性ランダムアクセスメモリ(「RAM」)および1つ以上の特定の回路、例えば、メモリコントローラを通るときにデータからのECCを計算する誤り訂正符号回路(「ECC」)を含む。
商業用フラッシュメモリシステムの初期世代では、メモリセルの長方形アレイは、標準ディスクドライブセクタ、すなわち、512バイトのデータ量をそれぞれ記憶した多くのグループのセルに分割されていた。16バイトなどのデータの追加量も、ユーザデータおよび/またはそれが記憶されるメモリセルグループに関係する誤り訂正符号(ECC)およびあるいは他のオーバーヘッドデータを記憶するために、各グループに通常含まれている。そのような各グループ中のメモリセルは、ともに消去可能なメモリセルの最小数である。すなわち、消去装置は、有効に、1つのデータセクタおよび含まれている任意のオーバーヘッドデータを記憶するメモリセルの数である。この種のメモリシステムの例は、米国特許第5,602,987号(特許文献7)および第6,426,893号(特許文献7)で説明されている。それらをデータで再プログラムする前に、メモリセルを消去する必要があることは、フラッシュメモリの特徴である。
従来のシステムでは、ホストは、ファイルシステムを維持し、論理クラスタにファイルデータを割り当て、ここで、クラスタサイズは、典型的には固定されている。フラッシュ素子は、複数の論理セクタに分割され、ホストは、複数の論理セクタを含むクラスタ内で空間を割り当てる。クラスタは、論理アドレスの細分であり、クラスタマップは、ファイルアロケーションテーブル(「FAT」)として指定される。FATは、記憶装置自体に通常記憶される。
従来のシステムで、メモリにデータを書き込む場合、ホストは、典型的には、メモリシステムの連続仮想アドレス空間内に、データのセクタ、クラスタまたは他のユニットに固有の論理アドレスを割り当てる。ディスクオペレーティングシステム(DOS)のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、アドレスからデータを読み出す。メモリシステム内のコントローラは、メモリアレイ内の物理アドレスにホストから受信される論理アドレスを変換し、ここで、データは、実際に記憶され、次いで、これらのアドレス変換を把握し続ける。メモリシステムのデータ記憶容量は、メモリシステムのために定義された論理アドレス空間全体にわたってアドレス可能なデータ量と少なくとも同じくらいである。
前述した同時係属中の特許出願に開示されるように、発明者は、予め、単一の大容量記憶システムに個々の装置(つまり、大容量記憶およびフラッシュメモリ)を結合する概念を調査した。論理インターフェイスがホストと結合記憶システムとの間でデータを転送するために使用されるこれら一体装置が作動する。
ホストが論理アドレスマッピングに対してファイルを実行する必要がないように、他のファイル記憶装置システム(または形式)が現在開発されている。
したがって、ホストシステムが、特殊なファイル記憶形式を使用するフラッシュメモリシステムおよび論理インターフェイスを使用する従来の論理アドレス空間/形式に今も基づく大容量記憶装置に/から、データを効率的に読み出し/書き込みすることを可能にする方法およびシステムの必要がある。
米国特許出願第10/772,855号 米国特許出願第10/772,789号 米国特許出願第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号
本発明の1つの態様では、ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムを提供する。システムは、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、ここで、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体の不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子である。
第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶する1次記憶装置として作動するフラッシュメモリ装置である。第2の大容量記憶装置は、2次記憶装置として作動し、論理インターフェイスを介して受信されるデータを記憶する磁気ディスクドライブである。
本発明の他の態様では、ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムを提供する。システムは、ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスを含み、ここで、データ記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含み、第1の不揮発性大容量記憶装置は、第1の形式でデータを記憶し、第2の不揮発性大容量記憶装置は、第2の形式でデータを記憶する。
本発明のさらに他の態様では、データ記憶システムを提供する。データ記憶システムは、ファイルベースのプロトコルを使用するインターフェイスを介してホストシステムと連動する第1の不揮発性大容量記憶装置と、第2の不揮発性大容量記憶装置と、を含み、ここで、第2の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と連動し、ホストシステムからのデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能である。
本発明の他の態様では、データ記憶システムを提供する。データ記憶システムは、ファイルベースのプロトコルを介して、ホストシステムと連動する第1の不揮発性大容量記憶装置を含み、ここで、第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置と連動するディスクドライバを含み、ホストシステムからのファイルデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能である。
本発明のさらに他の態様では、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法を提供する。大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、空間が第1の不揮発性記憶装置において利用可能なら、第1の不揮発性大容量記憶装置にデータを記憶するステップと、ファイルのための記憶空間が第1の不揮発性大容量記憶装置において利用不可能であるなら、次いで、第1の不揮発性大容量記憶装置から第2の不揮発性大容量記憶装置にデータを転送するためにコピー処理の予定を決めるステップと、を含む。
本発明の他の態様では、大容量記憶システムからデータを読み出す方法を提供する。大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、ファイルのための個々の固有ファイル識別子およびオフセットを受信するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、データが大容量記憶システムから読み出されるために、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、第1の不揮発性大容量記憶装置または第2の不揮発性大容量記憶装置にファイルが位置するかどうかを決定するステップと、ファイルが第1の不揮発性大容量記憶装置に位置するなら、第1の不揮発性大容量記憶装置からデータにアクセスするステップと、を含む。
本発明のさらに他の態様では、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を有する大容量記憶システムにホストシステムによって送信されるデータを書き込むための方法を提供する。その方法は、個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、空間が第1の不揮発性大容量記憶装置において利用可能なら、第1の不揮発性大容量記憶装置にファイルデータを書き込むステップと、ファイルデータが分割されるべきかどうかを決定するステップと、第2の不揮発性大容量記憶装置にファイルセグメントをコピーするステップと、を含む。
本発明のさらに他の態様では、大容量記憶システムにホストシステムによって送信されるデータを書き込むための方法を提供し、ここで、大容量記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む。その方法は、ホストシステムから書き込みコマンドを受信するステップと、空間が第1の不揮発性大容量記憶装置において利用可能なら、第1のファイルセグメントを書き込むために第1の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2のファイルセグメントを書き込むために第2の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、第2の不揮発性大容量記憶装置が第2のファイルセグメントを記憶する準備ができている間、第1の不揮発性大容量記憶装置に第1のファイルセグメントを記憶するステップと、第2の不揮発性大容量記憶装置に第2のファイルセグメントを記憶するステップと、を含む。
本発明の本質をすぐに理解するように、この概要を提供する。本発明についてのより完全な理解を、添付の図面に関連して本発明の好ましい実施形態についての以下の詳細な説明を参照することによって得ることが可能である。
本発明の前述した特徴および他の特徴を、好ましい実施形態の図面を参照して以下に説明する。図面において、同じ構成要素は、同じ参照数字を有する。例示する実施形態は、例示することを意図し、本発明を限定しない。図面は、以下の図を含む。
好ましい実施形態の理解を促進するために、ホストシステム/フラッシュ素子の一般的なアーキテクチャおよび処理について記載する。次いで、好ましい実施形態の具体的なアーキテクチャおよび処理を、一般的なアーキテクチャを参照して記載する。
ホストシステム:
図1Aは、本発明を利用することができる汎用計算機システム(ホストシステム)100を示す。システム100の構成要素は、コンピュータ160、マウス170などの様々な入出力(「I/O」)装置、キーボード165、モニタ120およびプリンタ125を含む。
図1Bは、計算機システム100の概念化された説明を示す。構成要素130は、ユーザが、計算機システム100と情報をやりとりすることを可能にするマウスやキーボードなどの複数の入力装置を表わすことを意図する。同様に、出力135は、1つ以上の出力装置、例えば、モニタ120やプリンタ125を表す。
計算機システム100は、システムバス155に接続された中央処理装置(「CPU」)(またはマイクロプロセッサ)175を含む。メインメモリ145(例えば、ランダムアクセスメインメモリ(「RAM」))もシステムバス155に接続され、CPU175に記憶装置へのアクセスを提供する。プログラムの命令を実行する場合、CPU175は、RAM145にそれらのプロセスステップを記憶し、RAM145から記憶されたプロセスステップを実行する。
読み出し専用メモリ(「ROM」)(図示せず)は、スタートアップ命令シーケンスまたは基本入出力オペレーティングシステム(BIOS)シーケンスなどの不変命令シーケンスを記憶するために設けられる。
大容量記憶装置150は、計算機システム100が、永久に大量のデータを保持することを可能にする。大容量記憶装置150を、以下に詳細に説明する。
大容量記憶システム:
図2Aは、大容量記憶システム(仮想フラッシュ記憶または仮想記憶装置と称してもよい)150のブロック図を示す。大容量記憶システム150は、ファイルインターフェイスチャンネル103を介してホストシステム100と連動する。ファイルインターフェイス103は、以下に記載するファイルベースのプロトコルを使用して、大容量記憶150の構成要素とホストシステム100との間でデータ/コマンドの転送を促進する。
大容量記憶150は、1次記憶(1次記憶装置とも称する)として直接データファイルフラッシュ素子(または固体の不揮発性メモリ素子)116(図2Nで116として示されている)および2次記憶(2次記憶装置とも称する)としての高容量磁気ディスク(または他の非固体のメモリ素子、例えば、テープ駆動)110を使用する仮想フラッシュファイル記憶である。データは、ファイルバイファイル形式でフラッシュ素子116に記憶される。
2次記憶110は、ディスクコントローラ111Aおよび記憶装置111Bを含む。ディスクコントローラ111Aは、1次記憶116と2次記憶110との間でのデータ転送を促進する。2次記憶110は、非固体のメモリ素子、例えば、ハードディスク、テープ駆動および他のものであってもよいことは注目すべきである。
実際には、磁気ディスク110がフラッシュ素子116と共に使用される場合、ユーザにとって、大容量記憶装置150は、フラッシュ記憶装置であるように思われる。
1次記憶116は、ホストシステム100の不可欠な部分である一方で、従来のハードディスクとして作動する2次記憶110は、ホストシステム100の外部にあってもよいことは注目すべきである。さらに、1次記憶116および2次記憶110は、同様または異なる形式を使用してデータを記憶することができる。
フラッシュ素子116(または本願明細書全体にわたって交換可能に使用される1次記憶116)は、コントローラモジュール116A(「メモリシステムコントローラ」または「メモリコントローラ」または「コントローラ」と称してもよい)および固体のメモリモジュール116Bを含む。コントローラ116Aは、ファイルインターフェイス103または他の周辺機器用バス(図示せず)またはシステムバス155を介してホストシステム100と連動する。
市販の様々なフラッシュ素子(またはフラッシュメモリカード)が現在あり、例として、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディアおよびトランスフラッシュカードが挙げられる。これらの各カードは、その標準化された規格によって固有の機械的および/または電気的インターフェイスを有するが、各々に含まれたフラッシュメモリは、非常に類似している。これらのカードは、すべて、本願の譲受人であるサンディスク コーポレイションから入手可能である。サンディスクは、クルーザー(Cruzer)という商標のもとで、フラッシュドライブのラインも提供し、それは、ホストのUSBレセプタクルに差し込むことによりホストに接続するためのユニバーサル・シリアル・バス(USB)プラグを有する小さなパッケージ中の携帯用メモリシステムである。これらの各メモリカードおよびフラッシュドライブは、それらの中のフラッシュメモリのホストおよび制御動作と連動するコントローラを含む。
そのようなメモリカードおよびフラッシュドライブを使用するホストシステムは、多く、多様である。それらとして、パソコン(PC)、ラップトップおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、および携帯用オーディオプレイヤが挙げられる。ホストとして、典型的には、1つ以上のタイプのメモリカードまたはフラッシュドライブ用の内蔵レセプタクルが挙げられるが、メモリカードが差し込まれるアダプタを必要とするものもある。
2次記憶110と比較する場合、1次記憶116は、コンパクトであり、様々な可動部を使用する2次記憶110と異なり可動部なしで作動することができるので、衝撃や振動に対してより高い抵抗を有する。
また、1次記憶116は、2次記憶110よりさらに速いシーク時間を有し、つまり、ホストは、2次記憶110からデータを読み出し/2次記憶110にデータを書き込むことができるよりも速く、1次記憶116からデータを読み出し/1次記憶116にデータを書き込むことが可能である。1次記憶116は、典型的には、2次記憶110より少ない記憶容量を有する。大容量記憶システム150は、以下に詳細に説明するより速い直接データファイルフラッシュ記憶装置および高容量記憶装置の両方を有利に提供する。
NORなどの他のアーキテクチャを代わりに使用することもできるが、メモリセルアレイ116BのNANDアーキテクチャが現在好ましい。NANDフラッシュメモリおよびメモリシステムの一部としてのそれらの操作の例として、米国特許第5,570,315号(特許文献9)、第5,774,397号(特許文献10)、第6,046,935号(特許文献11)、第6,373,746号(特許文献12)、第6,456,528号(特許文献13)、第6,522,580号(特許文献14)、第6,771,536号(特許文献15)、および第6,781,877号(特許文献16)、および米国公開特許出願第2003/0147278号(特許文献17)を参照して挙げることができる。
図2Bは、コントローラモジュール116Aの内部アーキテクチャのブロック図を示す。コントローラモジュール116Aは、インターフェイスロジック116Eを介して様々な他の構成要素と連動するマイクロコントローラ116Cを含む。メモリ116Dは、フラッシュ素子116の操作を制御するために、マイクロコントローラ116Cによって使用されるファームウェアおよびソフトウェアの命令を記憶する。メモリ116Dは、揮発性の再プログラム可能なランダムアクセスメモリ(「RAM」)、再プログラム可能でない不揮発性メモリ(「ROM」)、一回限りプログラム可能なメモリ、またはフラッシュ式の再プログラム可能で電気的に消去可能でプログラム可能な読み出し専用メモリ(「EEPROM」)であってもよい。
ホストインターフェイス116Gは、(ファイルインターフェイスを介して)ホストシステム100と連動する一方で、フラッシュインターフェイス116Fは、メモリモジュール116Bと連動する。
図2Cは、以下のさらなる説明で例として使用されるフラッシュメモリセルアレイ(116B)の構成を概念的に説明する。メモリセルの4つのプレーンまたはサブアレイ131〜134は、単一の集積メモリセルチップ、2つのチップ(各チップ上の2つのプレーン)、または4つの別個のチップ上にあってもよい。具体的な配置は、以下の説明にとって重要ではない。もちろん、1,2,8,16またはそれ以上などの他のプレーンの数が、システム内に存在していてもよい。プレーンは、それぞれのプレーン131〜134内に位置するブロック137,138,139および140Aなどの長方形によって、図2Cで示すメモリセルのブロックに個々に分割される。各プレーン内に、数十または数百のブロックがあってもよい。
メモリセルのブロックは、消去のユニットであり、最も少数のメモリセルが、物理的にともに消去可能である。しかし、並列処理の増加について、ブロックは、より大きなメタブロックユニット中で操作される。各プレーンからの1つのブロックは、メタブロックを形成するために論理上ともに結合されている。4つのブロック137〜140Aは、1つのメタブロック141を形成するために示されている。メタブロック内のセルは、すべて、典型的にはともに消去される。メタブロックを形成するために使用されるブロックは、ブロック145〜148から構成された第2のメタブロック143に示すように、それぞれのプレーン内の同じ相対的記憶位置に限定される必要はない。
高いシステム性能のために、プレーンのすべてにわたってメタブロックを拡大することが通常好ましいが、メモリシステムは、異なるプレーンで1つ、2つまたは3つのブロックのいずれかまたはすべてのメタブロックを動的に形成する性能で操作することができる。これは、メタブロックのサイズが、1つのプログラミング操作において記憶のために利用可能なデータの量とより緊密に適合されることを可能にする。
個々のブロックは、図2Dで説明するように、操作上の目的のためにメモリセルのページに順に分割されている。各ブロック131〜134のメモリセルは、例えば、P0〜P7の8ページに分割されている。また、各ブロック内に16,32またはそれ以上のページのメモリセルがあってもよい。ページは、ブロック内でプログラムし、読み出し、一度にプログラムされるデータの最少量を含むブロック内のデータのユニットである。
NANDアーキテクチャでは、ページは、ブロック内のワード線に沿ってメモリセルから形成されている。しかし、メモリシステムの操作上の並列処理を増加させるために、2つ以上のブロック内のそのようなページは、メタページに論理的に結合されてもよい。メタページ151は、図2Dで説明され、4つの各ブロック131〜134からの1つの物理ページから形成されている。メタページ151は、例えば、4つの各ブロックにページP2を含むが、メタページのページは、必ずしも、各ブロック内の同じ相対的記憶位置を有する必要がない。
高いシステム性能のために、4つのプレーンのすべてにわたって平行にデータの最大量をプログラムし読み出すことが好ましいが、メモリシステムは、異なるプレーン中の個別のブロック中で1,2または3ページのいずれかまたはすべてのメタページを形成するために操作することもできる。これは、プログラミングおよび読み出し操作が、便利に平行に扱われてもよいデータの量と適応して一致することを可能にし、メタページの一部が、データでプログラムされないままである場合を低減する。
多数のプレーンの物理ページから形成されたメタページは、図2Dで説明するように、それらの多数のプレーンのワード線の行に沿ってメモリセルを含む。同時に1つのワード線の行でセルのすべてをプログラムするのではなく、それらは、より一般には、2つ以上のインターリーブされたグループ中で交互にプログラムされ、各グループは、(単一ブロック中の)データのページ、または(多数のブロックにわたる)データのメタページを記憶する。一度に代替のメモリセルをプログラムすることによって、データレジスタおよびセンス増幅器を含む1ユニットの周辺回路を、各ビット線ごとに設ける必要はなく、むしろ隣接するビット線間での時分割方式である。これは、周辺回路に必要な基板空間の量を効率よく利用し、メモリセルが、行に沿って密度が増加して包装されることを可能にする。そうでなければ、所定のメモリシステムから利用可能な並列処理を最大にするために、行に沿ってすべてのセルを同時にプログラムすることが好ましい。
図2Eは、ページまたはメタページのデータの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のデータ記憶容量で市販され、より高くなってもよい。
図2Fは、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを説明する。ホストは、ホストによって実行されたアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。文書処理データファイルは、1例であり、コンピュータを使った設計(CAD)ソフトウェアの描画ファイルは、他の例であり、主として、PC、ラップトップコンピュータ等の一般的なコンピュータホストで見られる。pdf形式の文書も、そのようなファイルである。さらに、デジタルカメラは、メモリカードに記憶される各画像のためにデータファイル(さらにおよび/またはビデオ)を生成する。携帯電話は、電話帳などの内部メモリカード上のファイルからデータを利用する。PDAは、アドレスファイル、カレンダーファイル等のいくつかの様々なファイルを記憶し使用する。任意のそのようなアプリケーションでは、メモリカードは、また、ホストを操作するソフトウェアを含んでいてもよい。
ホストとメモリシステムとの間の共通の論理インターフェイスは、図2Fで説明される。連続論理アドレス空間161は、メモリシステムに記憶されることが可能なすべてのデータのためにアドレスを提供することができるほど十分に大きい。ホストアドレス空間は、典型的には、データのクラスタのインクリメントに分割されている。各クラスタは、データの多くのセクタを含むために、所定のホストシステムで設計されてもよく、4〜64のセクタのどこかが一般的である。標準セクタは、512バイトのデータを含む。
3つのファイル1,2,3は、図2Fの例で示され、生成された。ホストシステム上で作動するアプリケーションプログラムは、データの順序集合として各ファイルを生成し、固有の名前または他の参照によってそれを特定する。他のファイルにまだ割り当てられていない十分に利用可能な論理アドレス空間は、ファイル1にホストによって割り当てられる。ファイル1は、利用可能な論理アドレスの連続範囲を割り当てられるために示される。アドレスの範囲も、ホストペレーティングソフトウェアのための特有の範囲などの具体的な目的のために一般的に割り当てられ、次いで、これらのアドレスは、ホストがデータに論理アドレスを割り当てているときに利用されていないとしても、データを記憶するために回避される。
ファイル2が、後にホストによって生成される場合、ホストは、図2Fに示すように、同様に、論理アドレス空間161内の連続アドレスの2つの異なる範囲を割り当てる。ファイルは、割り当てられた連続論理アドレスである必要はないが、むしろ他のファイルに既に割り当てられたアドレス範囲間でアドレスのフラグメントとすることができる。次いで、この例は、ホストによって生成されたさらに他のファイル3が、予め、ファイル1,2および他のデータに割り当てられないホストアドレス空間の割り当てられた他の部分であることを示す。
ホストは、ファイルアロケーションテーブル(FAT)の維持によりメモリ論理アドレス空間を絶えず把握し、ここで、ホストが様々なホストファイルに割り当てる論理アドレスが維持される。FATテーブルは、ホストメモリと同様に、不揮発性メモリに典型的には記憶され、新しいファイルが記憶される場合、ホストによって頻繁に更新され、他のファイルは削除され、ファイル等は訂正される。ホストファイルが削除される場合、例えば、ホストは、次いで、論理アドレスが、ここで、他のデータファイルとともに使用するために利用可能であることを示すために、FATテーブルを更新することにより、削除されたファイルに予め割り当てられた論理アドレスの割り当てを解除する。
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置について注意していない。典型的なホストは、単に、その論理アドレス空間およびその様々なファイルに割り当てられた論理アドレスを知っている。他方、メモリシステムは、典型的なホスト/カードインターフェイスを介して、データが書き込まれている論理アドレス空間の一部のみを知っているが、具体的なホストファイルに割り当てられた論理アドレス、またはホストファイルの数さえ知らない。メモリシステムコントローラ116Aは、ホストデータが記憶されるフラッシュメモリセルアレイ内の固有の物理アドレス中へのデータの記憶または検索のためにホストによって提供される論理アドレスを変換する。ブロック163は、これらの論理−物理アドレス変換の作業テーブルを表わし、メモリシステムコントローラ116Aによって維持される。
メモリシステムコントローラ116Aは、高いレベルでシステムの性能を維持する方法により、メモリアレイ165のブロックおよびメタブロック内にデータファイルを記憶するようにプログラムされている。4つのプレーンまたはサブアレイがこの実例で使用されている。データは、各プレーンからブロックから形成されたメタブロック全体にわたってシステムが可能とする最大限の並列処理で、プログラムされ、読み出されることが好ましい。少なくとも1つのメタブロック167は、予備のブロックとして、メモリコントローラによって使用される操作ファームウェアおよびデータを記憶するために通常割り当てられる。他のメタブロック169または複数のメタブロックは、ホストペレーティングソフトウェア、ホストFATテーブル等の記憶に割り当てられてもよい。物理記憶空間のほとんどは、データファイルの記憶のために残る。
しかし、メモリシステムコントローラ116Aは、受信したデータが、その様々なファイルオブジェクトの中のホストによってどのように割り当てられたかについては分からない。メモリコントローラ116Aが、典型的にホストと情報をやりとりすることから分かるすべては、コントローラの論理−物理アドレステーブル163によって維持されるように、対応する物理アドレスに、ホストによって具体的な論理アドレスに書き込まれたデータが記憶されるということである。
典型的なメモリシステムでは、アドレス空間161内でデータの量を記憶するのに必要であるよりも、記憶容量の2,3の別のブロックが設けられている。これらの別のブロックの1つ以上は、メモリの寿命の間に欠陥になる可能性がある他のブロックの代用に、余分のブロックとして設けられてもよい。個々のメタブロック内に含まれたブロックの論理グループ分けは、通常、メタブロックにもともと割り当てられた欠陥ブロックのための余分のブロックの代用を含み、様々な理由で変更されてもよい。メタブロック171などの1つ以上の追加のブロックが、消去されたブロックプール中に典型的に維持される。
ホストが、メモリシステムにデータを書き込む場合、コントローラ116Aは、ホストによって、消去されたブロックプール中のメタブロック内の物理アドレスに割り当てられた論理アドレスを変換する。次いで、論理アドレス空間161内にデータを記憶するために使用されない他のメタブロックは、結果生じるデータ書き込み操作の間の使用のために、消去されたプールブロックとして消去され、指定される。
元の記憶されたデータが使用されなくなるので、具体的なホスト論理アドレスで記憶されたデータは、新しいデータによって頻繁に上書きされる。メモリシステムコントローラ116Aは、それに応じて、消去されたブロック中に新しいデータを書き込み、次いで、それらの論理アドレスでのデータが記憶される新しい物理ブロックを特定するために、それらの論理アドレスと論理−物理アドレステーブルを交換する。次いで、それらの論理アドレスで元のデータを含むブロックは、消去され、新しいデータの記憶に利用可能になる。書き込み開始時に、消去ブロックプールからの予め消去されたブロック中に十分な記憶容量がないなら、現在のデータ書き込み操作が完了される前に、そのような消去は、しばしば行われるに違いない。これは、システムデータプログラミング速度に悪影響を及ぼす可能性がある。メモリコントローラ116Aは、典型的には、ホストが、それらの同じ論理アドレスに新しいデータを書き込む場合に限り、所定の論理アドレスでのデータが、ホストによって使用されなくなったことが分かる。したがって、メモリの多くのブロックは、一時的に、そのような無効データを記憶することができる。
ブロックおよびメタブロックのサイズは、集積回路メモリチップの領域を効率的に使用するために増加している。これは、個々のデータの書き込みの大部分がメタブロックの記憶容量未満であり、多くの場合、ブロック未満であるデータの量を記憶することをもたらす。メモリシステムコントローラ116Aが、新しいデータを、消去されたプールメタブロックに通常導くので、これは、満たされなくなるメタブロックの一部をもたらす可能性がある。新しいデータが、他のメタブロック中に保存されたいくつかのデータの更新であるなら、新しいデータメタページと連続する論理アドレスを有する他のメタブロックからのデータの残りの有効なメタページは、論理アドレス順に新しいメタブロックにコピーされることが望ましい。古いメタブロックは、他の有効データメタページを保持してもよい。これは、使用されず無効であり、異なるメタブロックに書き込まれる同じ論理アドレスで新しいデータと取り替えられる個々のメタブロックのあるメタページのデータをいずれもたらす。
論理アドレス空間161全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するために、そのようなデータは、周期的に圧縮または集約される(ガーベッジコレクション)。これは、連続論理アドレスでデータを読み出すことをより効率的にするので、実際と同様に、それらの論理アドレスと同じ順に、メタブロック内のデータのセクタを維持することも望ましい。したがって、データ圧縮およびガーベッジコレクションは、典型的には、この追加目標で行なわれる。部分ブロックデータ更新を受信する場合にメモリを管理するいくつかの態様およびメタブロックの使用は、米国特許第6,763,424号(特許文献18)に記載されている。
直接データファイル記憶システム:
図2Gは、2005年2月16日に出願された同時係属中の米国特許出願第11/060,249号(代理人整理番号:SDK0380.US0)(特許文献3)、および前に参照されている直接データファイル記憶アプリケーションに開示された、「直接データファイル」記憶のためのフラッシュ素子116または「直接ファイル記憶」(「DFS」)方法/システムによって使用されるレイアウトを示す。
DFS装置では、データは、前述した特許出願に記載するように、ファイルバイファイル形式(つまり、ファイルベースのプロトコルを使用する)でホストシステム100によってアクセスされ、すなわち、データは、ファイル内の固有ファイル識別子(「ファイルID」または任意の他の固有の基準)およびオフセットアドレスを使用して、論理的にホストによって特定される。論理アドレス空間は、装置のために定義されない。ホストシステム100は、論理クラスタにファイルデータを割り当てず、ファイルのディレクトリ/インデックステーブル情報は、フラッシュ素子116によって生成される。
ホストは、ファイル内の固有ファイルID(または他の固有の基準)および複数のユニットのデータ(バイトなど)のオフセットアドレスによって、各ファイルをアドレス指定する。このファイルアドレスは、メモリシステムコントローラ116Aに直接付与され、次いで、各ホストファイルのデータが、物理的に記憶されるそれ自身のテーブルを維持する。
このファイルベースのインターフェイスは、図2Gで説明され、図2Fの論理アドレスインターフェイスと比較されるべきである。各ファイル1,2および3の特定および図2Gのファイル内のデータのオフセットは、メモリコントローラに直接渡される。次いで、この論理アドレス情報は、メモリコントローラ機能173によって、メモリ165のメタブロックおよびメタページの物理アドレスに変換される。
ファイルベースのインターフェイスも、図2Lによって説明され、図2Hの論理アドレスインターフェイスと比較されるべきである。論理アドレス空間および図2Hのホスト維持FATテーブルは、図2Lに存在しない。もっと正確に言えば、ホストによって生成されたデータファイルは、ファイル内のデータのファイル番号およびオフセットによってメモリシステムに特定される。次いで、メモリシステムは、直接、メモリセルアレイの物理ブロックにファイルをマッピングする。
図2Mを参照して、本願明細書において説明される1例の大容量記憶システムの機能層を示す。「直接データファイル記憶バックエンドシステム」(または直接ファイル記憶バックエンドシステム)は、「直接データファイルインターフェイス」(または直接ファイルインターフェイス)107および「ファイルベースのフロントエンドシステム」115を介して、ファイルベースのインターフェイスチャンネルにわたってホストシステムと通信する。各ホストファイルは、ファイル名によってなど、一意的に特定される。ファイル内のデータは、ファイルに特有の線形アドレス空間内のオフセットアドレスによって特定される。
仮想フラッシュ記憶150:
図2Nは、1次記憶116(図2Aの1次記憶116に類似する)および2次記憶110を有する仮想フラッシュ記憶150と連動するホストシステム100を示す。
ホスト100で作動するホストアプリケーションプログラム101は、仮想フラッシュ記憶150からデータを読み出し、および/または仮想フラッシュ記憶150にデータを書き込むためにホストファイルドライバ102を介して連動する。ホストファイルドライバ102は、ファイル内に固有ファイルID(または他の固有の基準)および(バイトなどの)データのユニットのオフセットアドレスによって各ファイルが識別されるホストアドレスを提供する。
仮想フラッシュ記憶150は、磁気ディスクの容量を提供しながら、直接データファイル記憶装置として実行し、機能する。
仮想記憶150に書き込まれるファイルは、1次記憶116に向けられ、次の読み出しおよび/または書き込みアクセスのために利用可能とされる。仮想記憶150から読み出されるファイルは、1次記憶116でそれらの現在の記憶位置から読み出され、または2次記憶110から直接読み出され、次のアクセスのために1次記憶116にコピーされる。
最大ファイル数は、1次記憶116で保持されてもよい。ファイルの現在の記憶位置は、最後にアクセスされてから最長時間未使用で、1次記憶116から2次記憶110に移動される。
ファイルは、1次記憶116に記憶されたファイルの第1のブロックに初期アクセスを向け、次いで、初期シーク時間後に2次記憶110に切り替えることにより、2次記憶110から効率的に読み出されてもよい。
1次記憶116は、2次記憶110の代わりにアプリケーションプログラムファイル104を記憶することも可能である。アプリケーションプログラムファイル104は、CPU145によって1次記憶116からコピーされ、次いで、メインメモリ145から実行される。1次記憶116は、2次記憶110と比較して速くアクセスされることが可能であるので、アプリケーションプログラムファイル104の全体の実行時間が短縮される。
1次記憶116中の直接データファイル記憶装置の構成要素、例えば、ファイルベースのフロントエンドシステム115、直接データファイルインターフェイス107および直接データファイルバックエンドシステム108は、前述した同時係属中の特許出願に記載されている。
以下に詳細に記載するように、ファイルディレクタモジュール106は、1次記憶116および2次記憶110中に、および1次記憶116および2次記憶110からのファイルの転送を管理する。ファイルデータを移動させる処理は、同時係属中の特許出願に記載されたガーベッジコレクション処理に従って行なわれてもよく、それによって、データは、バックグラウンドタスクとしてコピーされてもよく、または向上効率および全体性能に基づいてフォアグラウンドタスクとしてインターリーブされてもよい。
ファイルディレクタ106は、ホスト100と仮想記憶150との間で転送されているデータを一時的に記憶するために使用されることができるバッファ105(またはメモリ105)にアクセスする。
1次記憶116は、ディスクファイルシステム113、および1次記憶116が論理インターフェイス111Cによって従来の磁気ディスク110と連動することを可能にするディスクドライバ112を含む。ディスクファイルシステム113およびディスクドライバ112は、1次記憶116と2次記憶110との間でファイルデータ転送を可能とするために、磁気ディスク110によって使用される従来の論理アドレス空間に、直接データファイルインターフェイス107でデータファイルをマッピングする。
磁気ディスク111上に記憶されるファイルのデフラグなどのバックグラウンド処理を行なうために、ディスクファイルシステム113およびディスクドライバ112も使用されてもよいことは注目すべきである。
ファイルディレクタ106は、ファイルのためのデータが位置する記憶(つまり、1次および/または2次)を識別するために、以下に詳細に記載されたファイルロケータテーブル106A(図2Sおよび2Tで示される)を使用する。ファイルロケータテーブルは、フラッシュメモリ116Bに記憶することが可能であり、テーブルのすべてまたは一部のコピーもメモリ116Dのキャッシュに格納されてもよい。
図2Sは、ファイルロケータテーブル106Aがファイルディレクタ106と連動する状態で、大容量記憶システム150(図2Nで示されるシステムに類似する)のブロック図を示す。図2Sは、また、ファイルインターフェイス103を介してホスト100から受信されるファイルデータパス(103Aであると識別される)、論理インターフェイス111Cを介するLBAデータパス103Bおよびファイルディレクタ106と直接データファイルインターフェイス(または直接ファイルインターフェイス)107との間を流れる制御情報103Cを示す。
図2Tは、ファイルロケータテーブル106Aエントリを示す。ファイルロケータテーブル106Aは、記憶システム150に記憶される各ファイルのための1つのエントリ(欄106Bに基づく)を含む。各エントリは、1次記憶116に記憶される順次ファイルオフセットアドレスを有するデータランの開始および終了アドレス(欄106C)、および2次記憶110(欄106D)に記憶される順次ファイルオフセットアドレスを有するデータランの開始および終了アドレスを記録する。ファイルの有効データは、1または両方の記憶のいずれかに存在していてもよい。
データが記憶に書き込まれ、記憶の間にコピーされ、または記憶から削除される場合、ファイルロケータテーブル106Aは更新される。ファイルロケータテーブル106Aは、ファイル内に具体的なオフセットアドレスを有するデータが位置する記憶だけを識別する。それは、データが位置する記憶内の物理記憶位置を識別しない。これは、2つの記憶内の構造にインデックスを付ける正常なファイルディレクトリおよびファイルによって行われる。
大容量記憶システム150は、いくつかの長所を有する。例えば、本発明の1つの態様では、2次記憶110は、利用可能または利用不可能な状態に位置することができる。利用不可能な状態は、装置が物理的に利用不可能、またはメモリコントローラが利用可能になるまで装置にアクセスすることができないことを意味することが可能である。
1次記憶116は、常に利用可能な状態であり、その結果、メモリコントローラ116Aによってアクセス可能である。2次記憶110が利用可能な状態である場合、次いで、ファイルディレクタ106は、1次記憶116および2次記憶110の両方にアクセスすることが可能である。
ファイルインターフェイスチャンネル103が、ホストシステムからデータを受信する場合、コントローラ116Aは、1次記憶116または2次記憶110のいずれかにデータを書き込むことが可能である。データが1次記憶116Aに最初に書き込まれる場合、データは、次いで、バックグラウンド処理として2次記憶110にコピーされる。
コントローラ116Aは、記憶空間使用量を最適化することに基づいて、およびホストが書き込み処理をできるだけ速く完成することを可能にするために、適切な記憶装置を選択する。1次記憶116Aは、2次記憶110より低いシーク時間を有するので、最初に、1次記憶116Aに書き込み、次いで、2次記憶110にコピーすることが有利である。
他の態様では、仮想フラッシュ記憶150は、速いシステムブーツおよび速いアプリケーション起動を提供する。そのブーツプロセスの間のホストシステム、例えば、オペレーティングシステムおよび構成ファイルによって要求される情報は、1次記憶116にファイルバイファイル形式で記憶されることが可能である。この状況で、1次記憶116は、読み出しキャッシュとして作動し、その速いランダムリードアクセス特性は、はるかに速いシステムアクセスおよび起動を可能とする。
ブーツプロセスに使用される情報は、識別されることができ、上書きされないように保護されることが可能である。この初期情報は、2次記憶110からコピーされるか、または1次記憶116に記憶されることが可能である。アプリケーションソフトウェアファイル(104として示される)は、アプリケーションがホストシステムによって速く始めることができるのと同様に処理されることが可能である。
仮想記憶150は、低電力記憶装置として作動することも可能である。典型的には、2次記憶110は、フラッシュメモリベースの1次記憶116より多くの電力を消費する。1次メモリ記憶116は、新たに書き込まれた情報のコピーと一緒に、1次記憶116の新たにアクセスされた情報のコピーを維持することにより、読み出し/キャッシュ装置として使用されることが可能である。これは、1次記憶116でのキャッシュヒットによって、仮想ファイル記憶150がホスト要求に速く応答することを可能にする。次いで、コントローラ116Aは、2次記憶110をスピンダウンして、電力消費を低減することが可能である。これは、携帯用アプリケーション、例えば、ラップトップ、ノートブック、他のものにおいて特に有利である。
仮想ファイル記憶150は、衝撃耐性記憶装置としても作動する。装置が高い機械的衝撃の危険のある環境で使用される場合、コントローラ116Aは、2次記憶110をスピンダウンすることが可能である。そのような環境の可能性が高い場合、コントローラ116Aファームウェアは、2次記憶110をスピンダウンするようにプログラムされることが可能である。読み出し/書き込みキャッシュとして作動する1次記憶116は、ホストが機能することを必要とする情報をホストシステムに提供する。
一旦、2次記憶110が利用可能になれば、データは、次いで、1次記憶116と2次記憶110との間で同期される。携帯機器について、一旦、装置がドッキングステーションに置かれれば、2次記憶110は利用可能になる。他の態様では、動き検出回路類は、システムが、衝撃傾向の環境にもはやないかどうかを決定するために使用されることが可能である。また、ユーザは、2次記憶110がどの時間にも利用可能なように、手動でセッティングを変更することが可能である。他の場合では、プラギングによって、電源出力のシステムは、コントローラ116Aに信号を送って、2次記憶110を始動してもよい。
1次記憶116および2次記憶110を有する仮想フラッシュ記憶150は、容易にアクセス可能な短期バックアップを有する信頼できる記憶装置を提供する。情報が、2次記憶110に転送された後でさえ、1次記憶116は、書き込みキャッシュとして作動し、情報を保持することが可能である。情報ができるだけ長く維持され、空間が必要な場合のみ、上書きされる場合、書き込みキャッシュは、新たに書き込まれた情報のコピーを提供する。これは、2次記憶110がディスクの故障により機能が停止しデータを失った場合、保護手段を提供する。
2次記憶110から読み出されるデータがコピーされ、1次記憶116に記憶される場合、1次記憶116は、読み出しキャッシュとして作動する。コピーされたデータは、フラッシュメモリ116Bに記憶され、ファイルディレクタ106によって制御される。2次記憶110から読み出されるデータが選択的にコピーされてもよいことは注目すべきである。これは、データが読み出される頻度、性質、つまり読み出されるファイルの種類およびサイズ、または他の基準に基づくこともあり得る。コントローラ116Aファームウェアは、1次記憶116を構成するようにプログラムされて、そのような基準に基づいて読み出しキャッシュとして作動してもよい。
前述したように、1次記憶116は、書き込みキャッシュとして作動することも可能である。ホストシステム100が、ファイルインターフェイスチャンネル103を介してデータを送信する場合、ファイルディレクタ106は、フラッシュメモリ116Bにデータを完全にまたは部分的に記憶し、次いで、仮想記憶150が使用されていない場合、2次記憶110にデータをコピーすることが可能である。1次記憶116でコピーされるデータの量は、ファイルのサイズ、および1次記憶116で利用可能な空き領域の量に所定時間依存する。これは、1次記憶116がより速いアクセス時間を有するので、ホストシステムが速く書き込むことを可能にする。
さらに本発明の他の態様では、メモリコントローラ116Aは、ホストから受信されるファイルを2つ以上のセグメントに分割する。1つのセグメントは、1次記憶116に記憶され、他のセグメントは、2次記憶110に記憶される。ホストがファイルを要求する場合、容易にファイルを位置することができるように、1次記憶116に記憶されるセグメントは、ファイルのための十分な情報を含む。ホストが、完全なファイルを読み出さなければならない場合、第2のセグメントが2次記憶110から得られている間に、1次記憶116に記憶される第1のセグメントに速くアクセスすることが可能である。
図2Qは、前述した概念を説明する。ファイル「F」は、書き込みコマンドに応じて、ファイルインターフェイス103を介してホストから受信される。メモリコントローラ116Aは、最初に、1次記憶116に全ファイルを書き込む。ホスト書き込み処理が完了した後、メモリコントローラ116Aは、2つの部分、F1およびF2にファイルデータを分割する。データが、1次記憶116にデータをコピーするために最初に待機する代わりに受信されるので、メモリコントローラ116Aは、リアルタイムで、複数のセグメントにファイルを分割してもよいことは注目すべきである。
F1は、1次記憶116に記憶され、F2は、2次記憶110にコピーされる。典型的には、コピー処理は、バックグラウンド処理として行われる。
セグメントF1およびF2のサイズは、2次記憶110および1次記憶116にアクセスするためのシーク時間に依存し、それぞれ、ファイルの全体サイズおよびデータがホストに転送されることが可能な割合に依存する。メモリコントローラ116Aは、ファイルを分割して、ホストへのデータ転送が効率的で、メモリ空間の使用量が最適であることを確保する。
ホストがファイルFを読み出さなければならない場合、最初に、1次記憶116に記憶されるセグメントF1にアクセスすることとなる。1次記憶116が、より速いアクセス時間を有するので、ホストは、より速い速度でF1にアクセスすることが可能である。F1がホストに転送されている間に、コントローラ116Aは、より遅いシーク時間を有する2次記憶110からセグメントF2を得る。従って、F1転送が完全な場合、F2が既に得られ、転送される準備がされる。これは、仮想記憶150から読み出し処理の全体効率を向上する。
ファイルロケータ106Aは、ファイルセグメントF1およびF2がどこに記憶されるのかを追跡する(図2Tおよび図2Rに示される部分的な表)。図2Rの部分的な表は、セグメント(例えば、1次記憶116に記憶されたセグメント1(つまりF1)および2次記憶110に記憶されたセグメント2)のトップレベルの記憶位置を示す。ファイルデータを転送するために、ファイルディレクタ106は、ファイルロケータ106Aにアクセスして、特定のセグメントがどこにあるかを決定する。
さらに本発明の他の態様では、論理ブロックアドレスをキャッシュに格納する代わりに、ファイルをキャッシュに格納することは、先行技術のシステムに対する利点を提供する。以前のデュアル記憶媒体システムでは、ホストは、フラッシュ素子とハードディスクとの両方の間で論理インターフェイスを有する。ホストに/ホストから転送されるデータは、論理アドレスによって識別され、キャッシュに格納することは、ファイルの代わりに、論理アドレス上で行われる。ファイルの論理アドレスの全範囲が適切なときに正確な装置に位置することを確実にする方法はない。
例えば、システムは、ハードディスク(2次記憶)の電源が落とされる場合、またはディスクが取り出される場合(例えば、切り離された携帯用機器で)、実行ファイルがフラッシュ素子に記憶されることを確実にしなければならない。前のシステムでは、これは、フラッシュ中で実行ファイルのための論理アドレスをキャッシュに格納し、次いで、フラッシュ素子でそれらをロックすることにより達成される。論理アドレスが、予めディスクからアクセスされた場合、キャッシュに格納することが行なわれる。しかし、論理アドレスが、実行ファイル全体を表すという保証はない。それは、携帯用機器が接続され、ディスクが利用可能な場合に使用されるアプリケーション内の機能のためのみであってもよい。切り離されたモードで使用される他の機能は、全くキャッシュに格納されなくてもよい。
大容量記憶システム150は、論理アドレス範囲の代わりに、完全なファイルをキャッシュに格納することにより、前述した欠点を解決する。これは、1次記憶116が速いアクセスに利用可能な状態で、(前述した例で検討されるように)実行ファイル全体がキャッシュに格納されることを確実にする。
処理フロー:
本発明の1つの態様では、1次記憶116のファイルディレクタ106は、以下に要約されるとともに、図3〜6および8A/8B〜9に例示される処理フローチャートに関して詳細に記載される様々な処理を行なう。
新しいファイルが書き込みのために開かれる場合、それは、1次記憶116内で開かれる。大容量記憶システム150は、このファイル内にデータを書き込み、更新し、読み出すための直接データファイル装置として機能する。
既存のファイルが書き込みのために開かれる場合、それは、また、1次記憶116で開かれる。現バージョンが2次記憶110に常駐する場合、それは、次いで、1次記憶116にコピーされる。これは、バックグラウンド処理として行なわれるが、低い負荷サイクルで、1次記憶116の他のデータを読み出しまたは書き込むとともに、インターリーブされてもよい。再び、大容量記憶システム150は、このファイル内にデータを書き込み、更新し、読み出すための直接データファイル装置として機能する。
既存のファイルが、読み出すために開かれる場合、ファイルの最新のバージョンは、1次記憶116または2次記憶110のいずれかのその記憶位置から開かれる。ファイルが、2次記憶110から読み出される場合、それは、1次記憶116にコピーされる。ファイルは、2次記憶110から読み出される間に、同時にコピーされることが好ましいが、それは、個々のバックグラウンド処理としてコピーされてもよく、または低い負荷サイクル処理として1次記憶の他のデータを読み出しまたは書き込むとともに、インターリーブされてもよい。
ファイルが閉じられる場合、1次記憶116から2次記憶110にコピーされてもよい。これは、1次記憶116の最大数のファイルを保持しながら、最長時間未使用で通常行われる。ファイルが削除されるまで、大部分の有効電流ファイルバージョンが1次記憶116に残る間に、そのようなコピーは、先制のバックグラウンド処理として行なわれてもよい。
いくつかのファイルは、1次記憶116にロックされてもよく、その結果、1次記憶116から常に読み出される。例えば、オペレーティングシステムおよびアプリケーションプログラム104に関連するファイルは、1次記憶116から常に読み出される。1次記憶116のいくつかのファイルも、バックアップとしてのセキュリティのために2次記憶110にコピーされる。
ファイルの動作中のバージョンが、2次記憶110に割り当てられる場合、ファイルのためのデータの初期ブロックは、次いで、1次記憶116に保持されてもよい。
現バージョンが2次記憶110にあるファイルが読み出される場合、2次記憶110が順次データのためにシークを行なう間、そのデータの第1のブロックは、1次記憶116から読み出されてもよい。これは、記憶されたファイルデータにより速いアクセスを提供する。
ファイルが、オンカードアプリケーション(104)のある種類によって読み出すことによって開かれる場合、次いで、2次記憶110から1次記憶116にファイルをコピーすることは抑制されてもよい。これは、ウイルス検査ソフトウェアなどのアプリケーションが、2次記憶110の多くのファイル上で直接作動することを可能にする。
ホストインターフェイスが不応である場合、コマンドがホストインターフェイスで受信され、または保留中のファイルすべてがコピーされるまで、複数ユニットのデータを連続的に転送することにより、ファイルがコピーされることに注目すべきである。
ホストインターフェイスが動作中の場合、ファイルは、バッファ(105、図2N)と不応である記憶との間で複数ユニットのデータをコピーして、ホストインターフェイスから複数ユニットのデータへの書き込み/ホストインターフェイスからの読み出しをインターリーブすることによりコピーされる。1次または2次記憶のいずれかから/1次または2次記憶のいずれかにホストインターフェイスからデータを読み出す/ホストインターフェイスにデータを書き込むための処理は、処理とインターリーブされて、2つの記憶での処理が大部分は並列である方法で、他の記憶に/他の記憶からデータをコピーしてもよい。
1ユニットのデータは、任意の便利なユニットであってもよい。例えば、512バイトを含むデータのセクタであってもよく、それは、2次記憶110にアドレス指定されることが可能な最小ユニットのデータである。また、データのページであってもよく、それは、フラッシュメモリ116Bでプログラムすることが可能な最小ユニットのデータである。ページは、1,2,4,8またはそれ以上のセクタを含んでいてもよい。データのメタページであってもよく、それは、フラッシュメモリ116Bにプログラムされることが可能な最大ユニットのデータである。メタページは、1,2,4,8またはそれ以上のページを含んでいてもよい。また、メタページより大きな1ユニットのデータであってもよい。1つの記憶に書き込まれ/読み出される1ユニットのデータは、他の記憶に書き込まれ/読み出される1ユニットのデータとは異なるサイズを有していてもよい。
処理フローチャートを詳細に参照すると、図3は、本発明の1つの態様による、ホストシステム100と仮想記憶150との間でのデータの転送のために実行可能なプロセスステップの全体の処理フローチャートを示す。図3を詳細に参照して、プロセスは、ステップS300で開始する。ステップS302では、コントローラ116Aは、ファイルを書き込むためにコマンドが受信されるかどうかを決定する。コマンドが受信されるならば、プロセスは、図4に記載されたステップS306に進む。
書き込みコマンドがないなら、ステップS304で、ファイル読み出し処理のためのコマンドが受けられたかどうかを決定する。読み出しコマンドが受信されるならば、プロセスは、図5を参照して以下に説明するステップS308に進む。
読み出しコマンドが、ステップS304、次いでステップS310で受信されなかった場合、コントローラ116Aは、ファイルコピーログが、任意のエントリを含むかどうかを決定する。含むならば、プロセスは、以下の図6で説明するステップS312に進む。エントリが存在しないならば、プロセスは、ステップS302に戻る。
ファイル書き込み処理フロー:
図4は、本発明の1つの態様による仮想記憶にデータを書き込むための実行可能なプロセスステップの処理フローチャートを示す。図3で示すように、ファイル書き込みプロセスは、ステップS306で開始する。
コントローラ116Aは、ステップ400で、目標ファイルが既に開いているかどうかを決定する。ファイルが開いていないならば、ステップS402で、目標ファイルは、1次記憶116で開かれる。ファイルは、ファイルベースのインターフェイスを使用して開かれる。
ステップS404では、ファイルロケータ106Aは読み出される。ファイルロケータ106Aは、1次記憶116または2次記憶110のいずれかに記憶されているようなファイルの記憶位置を識別するために使用される。
ファイルの記憶位置情報がステップS406で読み出された後、コントローラ116Aは、ファイルの現バージョンが、2次記憶110に記憶されるかどうかを決定する。ファイルが2次記憶110に位置する場合、エントリは、次いで、1次記憶116によって維持されるコピーログ700(図7に示される)に加えられる。コピーログは、メモリ116Dに記憶され、行なわれる必要のある様々なコピー処理のリストを含む。コピーログは、コピーされる必要のある各ファイルに対してエントリを有する。また、ファイルがどこに位置する可能性があるかを識別するエントリ、例えば、1次記憶116または2次記憶110を含む。コピーログは、また、あて先を識別するエントリを含み、ファイルは、つまり、1次記憶116、2次記憶110またはバッファ105にコピーされる。
ファイルの現バージョンが、2次記憶110に記憶されないならば、プロセスは、ステップS410に進む。ステップS410では、書き込みコマンドは、直接データファイルバックエンドシステム108に送信される。
ステップS412では、ファイルディレクタ412は、空間がデータを書き込むことができるかどうかを決定する。データが単一ユニットとして書き込まれるので、空間がデータを書き込むために利用可能かどうかを決定するために、低いしきい値が使用される。しきい値は、少数のユニットのデータだけが1次記憶116にさらに書き込まれることが可能な容量を定義するために設定されているが、そのとき、1次記憶116から2次記憶110へのファイルコピー処理は、1次記憶116でより利用可能な空間を生成するために開始されるべきである。空間が利用可能でないならば、ステップS414で、ファイルは、1次記憶116からコピーするために選択される。
空間が、ステップS412で利用可能ならば、ステップS416で、ファイルディレクタ106は、ホストシステム100からのデータが利用可能かどうかを決定する。ホストデータが利用可能でないならば、プロセスは、ステップS422に進む。
データが利用可能ならば、ステップS418では、ファイルディレクタ106は、データが1次記憶116によって要求されているかどうかを決定する。要求されているならば、1ユニットのデータは、1次記憶116に転送される。データが1次記憶116によって要求されていないならば、プロセスはステップS422に進む。
ステップS422では、ファイルディレクタ106は、ファイルをコピーするエントリが、コピーログ700に存在するかどうかを決定する。存在するならば、ファイルのための1つ以上のデータユニットは、ステップS424でコピーされる。エントリが存在しないならば、ステップS426で、ファイルディレクタ106は、他のコマンドが受信されるかどうかを決定する。他のコマンドが受信されないならば、プロセスは、ステップS412に戻る。他のコマンドが受信されるならば、ステップS428で、ファイルロケータは、1次記憶116または2次記憶110のいずれかでファイルの現在の記憶位置を反映するために更新される。その後、ステップS430で、プロセスは、ステップS302に戻る。
図8Aは、メモリコントローラ116Aが、1つのセグメントが1次記憶116および2次記憶110の他のセグメントに記憶されることが可能であるように、入ってくるファイルを分割する処理フローチャートを示す。図8を詳細に参照すると、ステップS800で、メモリコントローラ116Aは、ホストシステムから書き込みコマンドを受信する。
ステップS802で、メモリコントローラ116Aは、1次記憶116にファイルを書き込む。ファイルが書き込まれた後、ステップS804で、メモリコントローラ116Aは、ファイルが分割されることが可能(またはすべき)かどうかを決定する。ファイルが分割されることができない/分割されるべきでないならば、プロセスは、(ステップS806で)ステップS800に戻る。
ファイルが分割されるならば、ステップS808で、メモリコントローラ116Aは、ファイルセグメント(F1およびF2、図2Q)を決定し、ステップS810で、ファイルセグメントは、2次記憶110にコピーされる。図6を参照して以下に記載するように、コピー処理は、バックグラウンド処理として行われる。
図8Bは、本発明の1つの態様によるファイルセグメンテーションを扱うためのさらに他のフローチャートを示す。プロセスは、ステップS812で開始し、ステップS814で、ファイル(「F」)のために書き込みコマンドは、ホストシステム100から受信される。
ステップS816で、(ファイルディレクタ106を介して)メモリコントローラ116Aは、1次記憶116(ステップS412、図4に類似する)に空間が存在するかどうかを決定する。空間が、1次記憶116で利用可能ならば、ステップS818で、ファイルセグメント(例えば、F1、ファイルヘッダ)を書き込むために、書き込みコマンドは、1次記憶116に送信される。ステップS820で、ファイルディレクタ106は、ファイルセグメントF2を書き込むために、2次記憶110に書き込みコマンドを送信する。ステップS818およびS820が、ステップS816後に同時に行われることが可能であることは注目すべきである。
ステップS822で、ファイルセグメントF1のための少なくとも1ユニットのデータは、1次記憶116に送信される。任意のデータユニットが、ステップS822で書き込まれる前に、ステップS820で書き込みコマンドが送信されることは注目すべきである。これは、データユニットが1次記憶116に書き込まれる間に、2次記憶110がそのシーク時間を経ることを可能にする。これは、全体の書き込みプロセスを促進する。
ステップS824で、セグメントF2のためのデータは、2次記憶110へ送信され、ステップS830でプロセスは終了する。
ステップS816で、空間が1次記憶116で利用不可能ならば、ステップS826で、書き込みコマンドは、2次記憶110に送信され、ステップS828で、ファイルのためのデータは、2次記憶110に送信される。
ファイル読み出しプロセス:
図5は、本発明の1つの態様によるファイル読み出しプロセスのための処理フローチャートを示す。ファイル読み出しプロセスは、図3のステップS308から開始する。ファイルディレクタ106は、ステップS500で、ファイルロケータ106Aを読み出す。
ステップS502で、ファイルディレクタ106は、ファイルが1次記憶116にあるかどうかを決定する。ファイルがあるならば、ステップS504で、読み出しコマンドは、1次記憶110に送信される。ファイルが、1次記憶110に位置しないならば、ステップS512で、現在のファイルは、2次記憶110からコピーするためにログ記録され、ステップS514で、読み出しコマンドは、2次記憶110に送信され、プロセスは、ステップS506に進む。
ステップS506で、ファイルディレクタ106は、データが、選択された記憶(つまり、1次記憶116または2次記憶110)から利用可能かどうかを決定する。利用可能ならば、ステップS508で、データは、選択された記憶から転送される。データが利用可能でないならば、プロセスは、ステップS516に進み、ここで、ファイルディレクタ106は、ファイルコピーログエントリが存在するかどうかを決定する。エントリが存在するならば、ステップS518で、ファイルに対して1つ以上のデータユニットはコピーされる。エントリが存在しないならば、ステップS510で、ファイルディレクタ106は、他のコマンドが受信されるかどうかを決定する。他のコマンドが受信されないならば、プロセスは、ステップS506に戻り、そうでなければ、ステップS520で、プロセスは、ステップS302(図3)に進む。
図9は、本発明の1つの態様による図8Aおよび8Bに関して、前述したように、2つ(またはより多いセグメント)に記憶されたファイルを読み出すための処理フローチャートを示す。図9を詳細に参照すると、プロセスは、ステップS900で開始し、ステップS902で、ファイル(「F」)のための読み出しコマンドは、ホストシステム100から受信される。
ステップS904で、ファイルディレクタ106は、要求されるファイル(「F」)が分割されるかどうかを決定する。ファイルが分割されないならば、ステップS914で、ファイルのための読み出しコマンドは、ファイルがどこに記憶されるかに基づいて、1次記憶116/2次記憶110に送信される。ステップS916で、ファイルのためのデータは、1次記憶116または2次記憶110から受信され、プロセスは終了する。
ファイルが分割されるならば、ステップS906で、ファイルディレクタ106は、1次記憶116のメモリコントローラ116AにセグメントF1のための読み出しコマンドを送信する。ステップS908で、ファイルディレクタ106は、2次記憶110にセグメントF2のための読み出しコマンドも送信する。
ステップS910で、セグメントF1のためのデータは、1次記憶116から受信される。データが、1次記憶116から受信される間に、2次記憶110は、セグメントF2のためのデータを送信するためのそのシーク時間を完了していることに注目すべきである。これは、読み出しプロセスの全体効率を向上する。
ステップS912で、セグメントF2のためのデータは、2次記憶110から受信され、プロセスは終了する。
ファイルコピー処理:
図6は、本発明の1つの態様による、データをコピーするためのフローチャートを示す。フローチャートは、図3のプロセスステップS312を実行することである。
図6を詳細に参照すると、ステップS600で、ファイルディレクタ106は、ホストインターフェイスが不応である、つまり、データを転送するためにホスト100から動作中のコマンドがあるかどうかを決定する。動作中のコマンドがあるならば、プロセスは、以下に説明するステップS622に進む。
ホストインターフェイスが不応であるならば、ステップS602で、ファイルディレクタ106は、1次記憶116からのファイルコピー処理が保留中である、つまり、コピー処理が進行中または行われるために待機しているかどうかを決定する。ファイルコピー処理が保留中であれば、ステップS604で、ファイルのための少なくとも1ユニットのデータは、1次記憶116から2次記憶110にコピーされ、プロセスは、以下に説明するステップS606に進む。
ファイルコピー処理が、ステップS602で保留中でないならば、ステップS612で、ファイルディレクタ106は、ファイルコピー処理が2次記憶110から保留中であるかどうかを決定する。処理が保留中ならば、ステップS614で、少なくとも1ユニットのデータは、2次記憶110から1次記憶116に転送され、プロセスは、ステップS606に進む。
2次記憶110からのファイルコピー処理が保留中でないならば、ステップS616で、ファイルディレクタ106は、ファイルコピー処理がバッファ105から保留中かどうかを決定する。ファイルコピー処理が、バッファ105から保留中ならば、ステップS618で、少なくとも1ユニットのデータは、バッファ105から1次記憶116または2次記憶110のいずれかに転送され、プロセスは、ステップS606に進む。ファイルコピー処理が、保留中でないならば、ステップS620で、プロセスは、ステップS302に戻る。
ステップS606で、ファイルディレクタ106は、他のコピーコマンドが受信されるかどうかを決定する。他のコマンドが受信されていないならば、プロセスは、ステップS602に戻る。コマンドが受信されているならば、ステップS608で、ファイルロケータ106Aは、ファイルの現在の記憶位置を反映するために更新され、プロセスは、(ステップS610で)ステップS302に戻る。
ステップS622を詳細に参照すると、ファイルディレクタ106は、1次記憶116が動作中かどうかを決定する。動作中であるならば、ステップS624で、ファイルディレクタ106は、ファイルコピー処理がバッファ105と2次記憶110との間で保留中かどうかを決定する。ファイル処理が保留中ならば、ステップS626で、少なくとも1ユニットのデータは、バッファ105と2次記憶110との間で転送される。ファイル処理が、ステップS624で保留中でないならば、ステップS634で、プロセスは、ステップS302に戻る。
1次記憶116が、ステップS622で動作中でないならば、ステップS628で、ファイルディレクタ106は、2次記憶110が動作中かどうかを決定する。2次記憶110が動作中でないならば、ステップS634で、プロセスは、ステップS302に戻る。
2次記憶110が動作中ならば、ステップS630で、ファイルディレクタ106は、ファイルコピー処理が、バッファ105と1次記憶116との間で保留中かどうかを決定する。ファイル処理が保留中ならば、ステップS632で、少なくとも1ユニットのデータは、バッファ105と1次記憶116との間で転送される。
ファイルコピー処理が、ステップS630で保留中でないならば、プロセスは、ステップS634に進む。
ホスト100が不応である間、前述したファイルコピー処理は、1ユニットのデータを転送する。処理は、バックグラウンドで行われ、ホスト110から仮想記憶150に書き込み処理でインターリーブされる。インターリーブ(つまり、ホスト110から書き込まれた書き込みデータの量およびコピーされたデータの量)の比率は、コピーされている1ユニットのデータのサイズを変えることにより変えることができる。1ユニットのデータのサイズは、実行を最適化するために選択される。
処理のリスト:
図2Pは、ファイルディレクタ106によってデータ転送処理のリストを提供する表1を示す。
処理201は、ホスト100から1次記憶116への好ましいファイル書き込み処理である。処理202は、ホスト100から2次記憶110への書き込み処理である。この処理は、不十分な空間が1次記憶116において利用可能ならば使用されてもよい。
ファイルの現バージョンが1次記憶116に存在するならば、処理203は、1次記憶116からホスト100へのファイル読み出し処理である。処理204は、2次記憶110からファイルデータを読み出すために使用される。
処理205は、ファイルコピー処理である。この処理中に、ファイルデータは、1次記憶116から2次記憶110にコピーされる。ホストインターフェイス103が不応である場合、処理205が行われることが好ましい。
処理206は、また、ファイルコピー処理である。この処理中に、ファイルデータは、2次記憶110から1次記憶116にコピーされる。インターフェイス103が不応である場合、処理206も行なわれることが好ましい。
処理207〜210は、バッファ105を使用して行われ、ホスト100から2次記憶110に/からデータの転送、および/またはホスト100から1次記憶116に/からデータの転送と同時に行われてもよい。処理207は、ファイルデータがバッファ105にフラッシュメモリ116Bからコピーされるファイルコピー処理である。処理208は、ファイルデータがバッファ105から1次記憶116にコピーされるファイルコピー処理である。
処理209は、2次記憶110からバッファ105にファイルデータをコピーするために行なわれる。処理210は、バッファ105から2次記憶110にファイルデータをコピーするために行なわれる。
本発明の1つの態様では、仮想記憶150は、大容量記憶システムに、直接データファイルフラッシュメモリシステムおよび従来の磁気ディスクを提供する。これは、従来の磁気ディスクと同様に、直接データファイルシステムフラッシュ記憶装置にホストシステムアクセスへのアクセスを提供する。
本発明を具体的な実施形態を参照して説明してきたが、これらの実施形態は実例にすぎず、限定されない。本発明の多くの他の用途および実施形態は、この開示および添付の特許請求の範囲の観点から明らかになる。
フラッシュ素子を使用するホストシステムのブロック図を示す。 図1Aのホストシステムのアーキテクチャを示す。 本発明の1つの態様による仮想記憶のブロック図を示す。 本発明の1つの態様によって使用されるフラッシュ素子のメモリコントローラのブロック図を示す。 フラッシュメモリシステムのための物理メモリ構成の例を示す。 図2Cの物理メモリの一部の拡大図を示す。 図2Cおよび2Dの物理メモリの一部のさらなる拡大図を示す。 ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを示す。 本発明の1つの態様によるホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを示す。 ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを、図2Fとは異なる方法で示す。 本発明の1つの態様によるホストと再プログラム可能なメモリシステムとの間の直接データファイル記憶インターフェイスを、図2Gと異なる方法で示す。 メモリシステムの1例の機能階層を示す。 本発明の1つの態様による仮想記憶の詳細なブロック図を示す。 本発明の1つの態様による図2Nの仮想記憶を使用して行なわれる様々な処理のリストを有する表を示す。 本発明の1つの態様によるファイルを分割する例を示す。 本発明の1つの態様によるファイルを分割するために使用される表の例を示す。 本発明の1つの態様によるファイルロケータがファイルディレクタモジュールと連動する状態での記憶システムのさらに他のブロック図を示す。 本発明の1つの態様によるファイルロケータテーブルのブロック図を示す。 本発明の1つの態様による仮想記憶を使用するための全体の処理フローチャートを示す。 本発明の1つの態様による仮想記憶を使用する書き込みプロセスのためのフローチャートを示す。 本発明の1つの態様による仮想記憶を使用する読み出しプロセスのためのフローチャートを示す。 本発明の1つの態様による仮想記憶を使用するコピープロセスのためのフローチャートを示す。 本発明の1つの態様による仮想記憶によって維持されるコピーログを示す。 本発明の1つの態様によるファイルセグメントを書き込むための処理フローチャートを示す。 本発明の1つの態様によるファイルセグメントを書き込むための処理フローチャートを示す。 本発明の1つの態様による、分割されたファイルを読み出すためのフローチャートを示す。

Claims (73)

  1. データ記憶システムであって、
    ファイルベースのプロトコルを使用するインターフェイスを介してホストシステムと連動する第1の不揮発性大容量記憶装置と、
    第2の不揮発性大容量記憶装置と、を含み、
    第2の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と連動し、ホストシステムからのデータは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能であるデータ記憶システム。
  2. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能とする第2の不揮発性大容量記憶装置の論理アドレス空間に対してデータファイルをマッピングするディスクファイルシステムを含むデータ記憶システム。
  3. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるデータ記憶システム。
  4. 請求項1記載のデータ記憶システムにおいて、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるデータ記憶システム。
  5. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置中のインターフェイスは、ファイルバイファイル形式でフラッシュメモリからデータにアクセスする直接データファイルインターフェイスと連動するデータ記憶システム。
  6. 請求項5記載のデータ記憶システムにおいて、
    インターフェイスは、ファイルベースの形式を使用して、フラッシュメモリからホストシステムにデータを転送するデータ記憶システム。
  7. 請求項5記載のデータ記憶システムにおいて、
    インターフェイスは、直接データファイルインターフェイスと連動して、第2の不揮発性大容量記憶装置に、および第2の不揮発性大容量記憶装置からデータを転送し、直接データファイルインターフェイスは、ディスクファイルシステムおよびディスクドライバと連動して、論理インターフェイスを介して第2の不揮発性大容量記憶装置からデータを送信および/または受信するデータ記憶システム。
  8. 請求項1記載のデータ記憶システムであって、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態ならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるデータ記憶システム。
  9. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるデータ記憶システム。
  10. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するデータ記憶システム。
  11. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するデータ記憶システム。
  12. 請求項1記載のデータ記憶システムにおいて、
    データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこに記憶されるべきかを決定するデータ記憶システム。
  13. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するデータ記憶システム。
  14. 請求項1記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するデータ記憶システム。
  15. 請求項1記載のデータ記憶システムにおいて、
    不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされるデータ記憶システム。
  16. 請求項15記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されるデータ記憶システム。
  17. データ記憶システムにおいて、
    ファイルベースのプロトコルを介してホストシステムと連動する第1の不揮発性大容量記憶装置を含み、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置と連動するためのディスクドライバを含み、ホストシステムからのファイルデータが、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置に記憶されることが可能であるデータ記憶システム。
  18. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能とするデータ記憶システム。
  19. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるデータ記憶システム。
  20. 請求項17記載のデータ記憶システムにおいて、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるデータ記憶システム。
  21. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態ならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるデータ記憶システム。
  22. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるデータ記憶システム。
  23. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するデータ記憶システム。
  24. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するデータ記憶システム。
  25. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するデータ記憶システム。
  26. 請求項17記載のデータ記憶システムにおいて、
    第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するデータ記憶システム。
  27. 請求項17記載のデータ記憶システムにおいて、
    不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされ、また第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されることが可能であるデータ記憶システム。
  28. 第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、
    個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、
    第1の不揮発性記憶装置において空間が利用可能ならば、第1の不揮発性大容量記憶装置にデータを記憶するステップと、
    第1の不揮発性大容量記憶装置においてファイルに対する記憶空間が利用不可能であるならば、第1の不揮発性大容量記憶装置から第2の不揮発性大容量記憶装置にデータを転送するためのコピー処理の予定を決めるステップと、
    を含む方法。
  29. 請求項28記載の方法において、
    大容量記憶システムは、第1の不揮発性大容量記憶装置および/または第2の不揮発性大容量記憶装置にデータが記憶されるべきかどうかを決定する方法。
  30. 請求項29記載の方法において、
    第1のセグメントが第1の不揮発性大容量記憶装置に記憶されるとともに第2のセグメントが第2の不揮発性大容量記憶装置に記憶されるように、ホストシステムによって送信されるファイルは分割される方法。
  31. 請求項28記載の方法において、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。
  32. 請求項28記載の方法において、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。
  33. 第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムからデータを読み出す方法であって、
    ファイルに対して個々の固有ファイル識別子およびオフセットを受信するステップであって、ホストシステムが固有ファイル識別子およびオフセットを生成し、データが大容量記憶システムから読み出される大容量記憶システムにファイル識別子およびオフセットを送信するステップと、
    第1の不揮発性大容量記憶装置または第2の不揮発性大容量記憶装置にファイルが位置するかどうかを決定するステップと、
    ファイルが第1の不揮発性大容量記憶装置に位置するならば、第1の不揮発性大容量記憶装置からデータにアクセスするステップと、
    を含む方法。
  34. 請求項33記載の方法において、
    要求されるファイルの第1のセグメントが第1の不揮発性大容量記憶装置に記憶されるとともに、第2のセグメントが第2の不揮発性大容量記憶装置に記憶されるならば、第2のセグメントが第2の不揮発性大容量記憶装置からアクセスされる間に、第1のセグメントは、ホストシステムに転送される方法。
  35. 請求項33記載の方法において、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。
  36. 請求項33記載の方法において、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。
  37. 第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、
    個々のファイル内の固有ファイル識別子およびオフセットによってデータの個々のファイルを識別するステップであって、ホストシステムは、固有ファイル識別子およびオフセットを生成し、大容量記憶システムにファイル識別子およびオフセットを送信するステップと、
    第1の不揮発性記憶装置において空間が利用可能ならば、第1の不揮発性大容量記憶装置にファイルデータを書き込むステップと、
    ファイルデータが分割されるべきかどうかを決定するステップと、
    第2の不揮発性大容量記憶装置にファイルセグメントをコピーするステップと、
    を含む方法。
  38. 請求項37記載の方法において、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。
  39. 請求項37記載の方法において、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。
  40. 第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含む、大容量記憶システムにホストシステムによって送信されるデータを書き込む方法であって、
    ホストシステムから書き込みコマンドを受信するステップと、
    第1の不揮発性大容量記憶装置において空間が利用可能ならば、第1のファイルセグメントを書き込むための第1の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、
    第2のファイルセグメントを書き込むための第2の不揮発性大容量記憶装置に書き込みコマンドを送信するステップと、
    第2の不揮発性大容量記憶装置が第2のファイルセグメントを記憶する準備ができている間、第1の不揮発性大容量記憶装置に第1のファイルセグメントを記憶するステップと、
    第2の不揮発性大容量記憶装置に第2のファイルセグメントを記憶するステップと、
    を含む方法。
  41. 請求項40記載の方法において、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリである方法。
  42. 請求項40記載の方法において、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクである方法。
  43. 請求項40記載の方法において、
    第1の不揮発性大容量記憶装置において空間が利用不可能ならば、ファイルデータは、第2の不揮発性大容量記憶装置に記憶される方法。
  44. ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムであって、
    ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスであって、データ記憶システムは、第1の不揮発性大容量記憶装置および第2の不揮発性大容量記憶装置を含み、第1の不揮発性大容量記憶装置は、第1の形式でデータを記憶し、第2の不揮発性大容量記憶装置は、第2の形式でデータを記憶するインターフェイスを含むシステム。
  45. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータ転送を可能にするシステム。
  46. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、1次記憶装置として作動する固体メモリであるシステム。
  47. 請求項44記載のシステムにおいて、
    第2の不揮発性大容量記憶装置は、2次記憶装置として作動する磁気ハードディスクであるシステム。
  48. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の不揮発性大容量記憶装置が利用不可能な状態であるならば、第1の不揮発性大容量記憶装置からデータがアクセスされることが可能であり、または、第2の不揮発性大容量記憶装置が利用可能な状態である場合、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との両方からデータがアクセスされることが可能であるシステム。
  49. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の不揮発性大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるシステム。
  50. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置からデータを読み出すためのキャッシュとして作動するシステム。
  51. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するシステム。
  52. 請求項44記載のシステムにおいて、
    データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこで記憶されるべきかを決定するシステム。
  53. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第2の不揮発性大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するシステム。
  54. 請求項44記載のシステムにおいて、
    第1の不揮発性大容量記憶装置は、第1の不揮発性大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するシステム。
  55. 請求項44記載のシステムにおいて、
    不応期間にバックグラウンド処理として、第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータがコピーされるシステム。
  56. 請求項55記載のシステムにおいて、
    第1の不揮発性大容量記憶装置と第2の不揮発性大容量記憶装置との間でデータを転送するためにバッファが使用されるシステム。
  57. ホストシステムとデータ記憶システムとの間でデータを転送するためのシステムであって、
    ファイルベースのプロトコルを使用して、データ記憶システムとホストシステムとの間でデータを転送するインターフェイスであって、データ記憶システムは、第1の大容量記憶装置および第2の大容量記憶装置を含み、第1の大容量記憶装置は、固体の不揮発性メモリ素子であり、第2の大容量記憶装置は、非固体のメモリ素子であるインターフェイスを含むシステム。
  58. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、1次記憶装置として作動するフラッシュメモリ装置であるシステム。
  59. 請求項57記載のシステムにおいて、
    第2の大容量記憶装置は、2次記憶装置として作動する磁気ディスクドライブであるシステム。
  60. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、ファイルバイファイル形式でデータを記憶するシステム。
  61. 請求項57記載のシステムにおいて、
    第2の大容量記憶装置は、論理インターフェイスを介して受信されるデータを記憶するシステム。
  62. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置および第2の大容量記憶装置は、異なる形式を使用して、データを記憶するシステム。
  63. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置および第2の大容量記憶装置は、同様の形式を使用して、データを記憶するシステム。
  64. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第2の大容量記憶装置の論理アドレス空間にデータファイルをマッピングするディスクファイルシステムを含み、第1の大容量記憶装置と第2の大容量記憶装置との間でデータ転送を可能とするシステム。
  65. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第2の大容量記憶装置のアクセス時間より速いアクセス時間およびその記憶容量より少ない記憶容量を有し、第2の大容量記憶装置が利用不可能な状態であるならば、第1の大容量記憶装置からデータがアクセスされることが可能であり、または、第2の大容量記憶装置が利用可能な状態である場合、第1の大容量記憶装置と第2の大容量記憶装置との両方からデータがアクセスされることが可能であるシステム。
  66. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、ホストシステムから受信されるファイルの第1のセグメントを保存するために使用され、第2の大容量記憶装置は、ホストシステムから受信されるファイルの第2のセグメントを記憶するために使用されるシステム。
  67. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第2の大容量記憶装置からデータを読み出すためのキャッシュとして作動するシステム。
  68. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第2の大容量記憶装置に書き込まれるデータに対して書き込みキャッシュとして作動するシステム。
  69. 請求項57記載のシステムにおいて、
    データ記憶システムのメモリコントローラは、ホストシステムから受信されるファイルデータがどこで記憶されるべきかを決定するシステム。
  70. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第2の大容量記憶装置に書き込まれるデータに対して一時的なバックアップとして機能するシステム。
  71. 請求項57記載のシステムにおいて、
    第1の大容量記憶装置は、第1の大容量記憶装置からコピーされ、ホストシステムによって実行される実行アプリケーションプログラムファイルを記憶するシステム。
  72. 請求項57記載のシステムにおいて、
    不応期間にバックグラウンド処理として、第1の大容量記憶装置と第2の大容量記憶装置との間でデータがコピーされるシステム。
  73. 請求項72記載のシステムにおいて、
    第1の大容量記憶装置と第2の大容量記憶装置との間でデータを転送するためにバッファが使用されるシステム。
JP2008525047A 2005-08-03 2006-07-27 大容量データ記憶システム Expired - Fee Related JP5236469B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/196,826 US9104315B2 (en) 2005-02-04 2005-08-03 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
US11/196,826 2005-08-03
PCT/US2006/029307 WO2007019076A2 (en) 2005-08-03 2006-07-27 Mass data storage system

Publications (2)

Publication Number Publication Date
JP2009503731A true JP2009503731A (ja) 2009-01-29
JP5236469B2 JP5236469B2 (ja) 2013-07-17

Family

ID=37307174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008525047A Expired - Fee Related JP5236469B2 (ja) 2005-08-03 2006-07-27 大容量データ記憶システム

Country Status (7)

Country Link
US (3) US9104315B2 (ja)
EP (1) EP1920317B1 (ja)
JP (1) JP5236469B2 (ja)
KR (1) KR101449543B1 (ja)
CN (1) CN101238431A (ja)
TW (1) TWI352901B (ja)
WO (1) WO2007019076A2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223355A (ja) * 2008-03-13 2009-10-01 Hitachi Software Eng Co Ltd ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム
JP2010067271A (ja) * 2008-09-11 2010-03-25 Samsung Electronics Co Ltd ハイブリッドハードディスクドライブ制御方法、記録媒体及びハイブリッドハードディスクドライブ
JP2011095916A (ja) * 2009-10-28 2011-05-12 Canon Inc 電子機器
US8407418B2 (en) 2010-05-13 2013-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and driver
JP2013533991A (ja) * 2010-05-20 2013-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置の間で移動されるトラックのエクステントへの書込み動作の管理方法、システム、及びコンピュータ・プログラム
US8639881B2 (en) 2010-05-13 2014-01-28 Kabushiki Kaisha Toshiba Information processing apparatus and driver
JP2014041471A (ja) * 2012-08-22 2014-03-06 Fujitsu Ltd ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP2019008418A (ja) * 2017-06-21 2019-01-17 日本電気株式会社 データ転送装置およびデータ転送方法
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
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
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
SG135082A1 (en) * 2006-02-27 2007-09-28 Gueh How Kiap Method and apparatus for removable, ide-ata or scsi flash memory based data storage in a portable computer device
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US9052826B2 (en) * 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
JP4799310B2 (ja) * 2006-07-31 2011-10-26 株式会社東芝 磁気ディスク装置およびその制御方法
JP2008090626A (ja) * 2006-10-02 2008-04-17 Sony Corp 転送装置、転送システム、プログラムおよび転送方法
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
DE102006051136A1 (de) * 2006-10-30 2008-05-08 Qimonda Ag Speichermodul-System, Adapter-Karte, und Verfahren zum Betreiben eines Speichermodul-Systems
US20080109647A1 (en) * 2006-11-07 2008-05-08 Lee Merrill Gavens Memory controllers for performing resilient firmware upgrades to a functioning memory
US8286156B2 (en) * 2006-11-07 2012-10-09 Sandisk Technologies Inc. Methods and apparatus for performing resilient firmware upgrades to a functioning memory
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US20080313364A1 (en) 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR20080072202A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 데이터 처리 방법 및 데이터 처리 장치
US9207876B2 (en) * 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
DE102007018769A1 (de) * 2007-04-20 2008-10-23 Giesecke & Devrient Gmbh Zugriff auf den Massenspeicher eines portalen Datenträgers
US8397011B2 (en) * 2007-10-05 2013-03-12 Joseph Ashwood Scalable mass data storage device
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
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
JP4471007B2 (ja) * 2008-02-05 2010-06-02 ソニー株式会社 記録装置、記録装置の制御方法、記録装置の制御方法のプログラム及び記録装置の制御方法のプログラムを記録した記録媒体
US8499132B1 (en) * 2008-02-12 2013-07-30 Netapp, Inc. Software module for using flash memory as a secondary permanent storage device
JP4691122B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
KR101008576B1 (ko) * 2008-05-07 2011-01-17 주식회사 셀픽 자체카피 기능이 구비된 솔리드 스테이트 디스크
US8281062B2 (en) * 2008-08-27 2012-10-02 Sandisk Il Ltd. Portable storage device supporting file segmentation and multiple transfer rates
KR20100041313A (ko) * 2008-10-14 2010-04-22 삼성전자주식회사 데이터 저장 방법, 데이터 저장 장치 및 그 시스템
US8291181B2 (en) * 2008-10-28 2012-10-16 Micron Technology, Inc. Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
WO2010060238A1 (zh) * 2008-11-03 2010-06-03 中兴通讯股份有限公司 一种分配移动终端存储空间的系统和方法
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
TWI476609B (zh) * 2009-01-16 2015-03-11 Alibaba Group Holding Ltd Data Processing Method and System of Large Data Quantity
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8429436B2 (en) 2009-09-09 2013-04-23 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
CN102117184B (zh) * 2010-01-05 2017-06-27 联想(北京)有限公司 用于多存储器的控制器、终端设备及其启动和访问方法
US8572457B2 (en) * 2010-05-28 2013-10-29 Seagate Technology Llc Outer code protection for solid state memory devices
US9471240B2 (en) * 2010-06-24 2016-10-18 International Business Machines Corporation Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
CN102298506B (zh) * 2010-06-24 2014-12-03 国际商业机器公司 存储系统和用于实现存储系统的方法
TWI494935B (zh) * 2010-07-12 2015-08-01 Taiwan Secom Co Ltd 具有高信賴度資料與資料流處理裝置
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10114746B2 (en) 2010-10-14 2018-10-30 Micron Technology, Inc. Nonvolatile storage using low latency and high latency memory
EP2652623B1 (en) 2010-12-13 2018-08-01 SanDisk Technologies LLC Apparatus, system, and method for auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012100087A2 (en) 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
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
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US20130067289A1 (en) * 2011-09-14 2013-03-14 Ariel Maislos Efficient non-volatile read cache for storage system
KR101341615B1 (ko) * 2011-11-24 2013-12-13 성균관대학교산학협력단 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
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
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
CN102707902A (zh) * 2012-04-27 2012-10-03 苏州瀚瑞微电子有限公司 一种移动存储系统及其存储方法
US9558112B1 (en) * 2012-05-08 2017-01-31 Google Inc. Data management in a data storage device
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9569113B2 (en) * 2012-10-11 2017-02-14 SK Hynix Inc. Data storage device and operating method thereof
EP2755142B1 (en) * 2013-01-09 2016-03-16 Sony Mobile Communications AB Data storage in a mobile device with embedded mass storage device
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9116774B2 (en) 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
US9535630B1 (en) * 2013-06-27 2017-01-03 EMC IP Holding Company LLC Leveraging array operations at virtualized storage processor level
CN104281549B (zh) * 2013-07-08 2017-07-21 联想(北京)有限公司 一种ums中调整写缓冲区的方法及装置
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
CN103984657B (zh) * 2013-09-26 2017-05-10 威盛电子股份有限公司 接口控制器、外接式电子装置及其控制方法
KR20150037364A (ko) * 2013-09-30 2015-04-08 삼성전자주식회사 캐시 마이그레이션 관리 방법 및 이를 적용한 호스트 시스템
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US9559725B1 (en) 2013-10-23 2017-01-31 Seagate Technology Llc Multi-strength reed-solomon outer code protection
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
TWI553642B (zh) * 2013-12-12 2016-10-11 慧榮科技股份有限公司 資料存取命令執行方法以及使用該方法的快閃記憶體裝置
CN105450704A (zh) * 2014-08-28 2016-03-30 北京兆易创新科技股份有限公司 一种用于闪存的网络存储设备及其处理方法
US11755202B2 (en) 2015-01-20 2023-09-12 Ultrata, Llc Managing meta-data in an object memory fabric
US11086521B2 (en) 2015-01-20 2021-08-10 Ultrata, Llc Object memory data flow instruction execution
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
EP3387547B1 (en) 2015-12-08 2023-07-05 Ultrata LLC Memory fabric software implementation
EP3387548B1 (en) 2015-12-08 2023-08-02 Ultrata LLC Memory fabric operations and coherency using fault tolerant objects
US10248337B2 (en) 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
CN105718530B (zh) * 2016-01-15 2020-02-04 上海磁宇信息科技有限公司 文件存储系统及其文件存储控制方法
US10073644B2 (en) * 2016-03-21 2018-09-11 Toshiba Memory Corporation Electronic apparatus including memory modules that can operate in either memory mode or storage mode
US10162561B2 (en) 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
US20180088657A1 (en) * 2016-09-26 2018-03-29 Lenovo (Singapore) Pte. Ltd. Power saving for multimedia server storage
KR20180130140A (ko) 2017-05-29 2018-12-07 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 방법
CN109144409B (zh) * 2018-07-11 2020-02-21 华为技术有限公司 数据处理方法及装置、存储介质、数据系统
CN110780810B (zh) 2018-07-31 2023-06-27 爱思开海力士有限公司 用于彼此接合多个存储器系统以存储数据的设备和方法
US11442628B2 (en) 2018-07-31 2022-09-13 SK Hynix Inc. Apparatus and method for engaging a plurality of memory systems with each other
US11249919B2 (en) 2018-07-31 2022-02-15 SK Hynix Inc. Apparatus and method for managing meta data for engagement of plural memory system to store data
KR20200016074A (ko) 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작 방법
KR20200019420A (ko) 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 입력데이터를 분산저장하기 위한 메모리 시스템 및 데이터 처리 시스템
DE102018121885A1 (de) * 2018-09-07 2020-03-12 Phoenix Contact Gmbh & Co. Kg Elektronisches Gerät zum Einsatz in einem Automatisierungssystem sowie ein Automatisierungssystem
KR20200034360A (ko) 2018-09-21 2020-03-31 에스케이하이닉스 주식회사 내부채널을 통해 서로 간에 연결된 다수의 메모리 시스템을 포함하는 데이터 처리 시스템
JP7039632B2 (ja) * 2020-01-24 2022-03-22 株式会社Kokusai Electric 基板処理装置、基板処理方法およびプログラム
TWI780521B (zh) * 2020-11-24 2022-10-11 大陸商合肥沛睿微電子股份有限公司 電子裝置及空間複用方法
CN115086168B (zh) * 2022-08-19 2022-11-22 北京全路通信信号研究设计院集团有限公司 一种车载设备通信参数更新存储方法、系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282386A (ja) * 1993-03-25 1994-10-07 Toshiba Corp ディスク記憶装置
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2000040026A (ja) * 1998-07-24 2000-02-08 Nec Corp ディスク共有型クラスタシステムにおける論理ファイル管理システム

Family Cites Families (215)

* 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
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JP3015377B2 (ja) 1988-08-26 2000-03-06 株式会社東芝 Icカード
EP0675502B1 (en) * 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
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
US5420998A (en) 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
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
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
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”
JPH0883148A (ja) 1994-09-13 1996-03-26 Nec Corp 磁気ディスク装置
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
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
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
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
GB2291990A (en) 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup 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
GB9613088D0 (en) 1996-06-21 1996-08-28 Memory Corp Plc Memory device
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
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
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
US6467022B1 (en) 1998-04-16 2002-10-15 International Business Machines Corporation Extending adapter memory with solid state disks in JBOD and RAID environments
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
US6438642B1 (en) 1999-05-18 2002-08-20 Kom Networks Inc. File-based virtual storage file system, method and computer program product for automated file management on multiple file system storage devices
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
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4779183B2 (ja) 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
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
US6486883B1 (en) 1999-06-18 2002-11-26 Phoenix Technologies, Ltd. Apparatus and method for updating images stored in non-volatile memory
US6389433B1 (en) * 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US6965963B1 (en) 1999-07-28 2005-11-15 Sony Corporation Continuous arrangement of data clusters across multiple storages
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
EP1100001B1 (en) 1999-10-25 2003-08-13 Sun Microsystems, Inc. Storage system supporting file-level and block-level accesses
US6804730B1 (en) 1999-11-17 2004-10-12 Tokyo Electron Device Limited Access control device, access control method, recording medium, and computer data signal for controlling allowance of access to storage area using certification data
US6424975B1 (en) 2000-01-07 2002-07-23 Trg Products, Inc. FAT file system in palm OS computer
US6748457B2 (en) 2000-02-03 2004-06-08 Realtime Data, Llc Data storewidth accelerator
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
US7155559B1 (en) 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
JP3726663B2 (ja) 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
US20030120858A1 (en) 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US6865650B1 (en) 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US6834331B1 (en) 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
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
US7084738B2 (en) 2000-12-11 2006-08-01 Asap Automation, Llc Inventory system with image display
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
JP2002251310A (ja) 2001-02-21 2002-09-06 Ricoh Co Ltd フラッシュメモリのファイルシステム作成方式
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
US6779063B2 (en) 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
JP4632574B2 (ja) 2001-05-25 2011-02-16 株式会社日立製作所 記憶装置およびファイルデータのバックアップ方法およびファイルデータのコピー方法
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
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
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
JP2003114817A (ja) * 2001-08-03 2003-04-18 Toshiba Corp 情報記憶媒体及び情報記録方法
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
US7251747B1 (en) 2001-09-20 2007-07-31 Ncr Corp. Method and system for transferring data using a volatile data transfer mechanism such as a pipe
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
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
AU2003213113A1 (en) * 2002-02-21 2003-09-09 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
EP1355268B1 (en) 2002-02-28 2006-04-05 Matsushita Electric Industrial Co., Ltd. Memory card
JP2003316713A (ja) 2002-04-26 2003-11-07 Hitachi Ltd 記憶装置システム
JP2004046817A (ja) * 2002-05-23 2004-02-12 Ricoh Co Ltd プログラム、記憶媒体、データ管理装置及びデータ管理システム
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 삼성전자주식회사 플래쉬 메모리용 파일 시스템
US6804749B2 (en) * 2002-06-18 2004-10-12 Topseed Technology Corp. Wireless portable adaptive electronic device capable of receiving signals
EP1523711A1 (en) 2002-06-19 2005-04-20 Tokyo Electron Device Limited Memory device, memory managing method and program
KR100499686B1 (ko) * 2002-07-23 2005-07-07 주식회사 디지털웨이 메모리 확장 가능한 휴대용 플래쉬 메모리 장치
JP2004062328A (ja) * 2002-07-25 2004-02-26 Renesas Technology Corp Nand型フラッシュメモリを搭載したフラッシュストレージメディア
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
DE10234971B4 (de) 2002-07-31 2006-08-10 Giesecke & Devrient Gmbh Verfahren und Datenträger zum Erzeugen und Korrigieren von Programmcode
US7263108B2 (en) 2002-08-06 2007-08-28 Netxen, Inc. Dual-mode network storage systems and methods
US20040028066A1 (en) * 2002-08-06 2004-02-12 Chris Quanbeck Receiver architectures with dynamic symbol memory allocation and methods therefor
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
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7254668B1 (en) 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
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
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
CN1260642C (zh) 2002-11-18 2006-06-21 深圳市朗科科技有限公司 一种向移动存储装置发送命令和数据的方法
JP4252301B2 (ja) * 2002-12-26 2009-04-08 株式会社日立製作所 記憶システム及びそのデータバックアップ方法
US7433712B2 (en) 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
CN1774761B (zh) * 2003-04-14 2011-11-09 皇家飞利浦电子股份有限公司 用于从记录载体读取或者向其写入的驱动设备和方法
JP2004318940A (ja) 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US7437557B2 (en) 2003-06-03 2008-10-14 Lg Electronics Inc. Garbage collection system and method for a mobile communication terminal
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US6865113B2 (en) 2003-07-23 2005-03-08 Catalyst Semiconductor, Inc. System and method for programming non-volatile memory
US7454443B2 (en) * 2003-08-26 2008-11-18 Tamir Ram Method, system, and program for personal data management using content-based replication
JP2005122439A (ja) 2003-10-16 2005-05-12 Sharp Corp デバイス機器、及びデバイス機器の記録装置のフォーマット変換方法
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
EP1704484A2 (en) 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
KR20060134011A (ko) 2003-12-30 2006-12-27 쌘디스크 코포레이션 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144363A1 (en) 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7127549B2 (en) 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
CN1957416B (zh) * 2004-03-23 2012-10-10 松下电器产业株式会社 记录装置、主机装置、驱动装置、记录方法、再生装置、再生方法
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
US20060047880A1 (en) * 2004-08-27 2006-03-02 Imation Corp. Memory device with HUB capability
US7184264B2 (en) * 2004-09-23 2007-02-27 Imation Corp. Connectable memory devices to provide expandable memory
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US20060161724A1 (en) 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
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
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7454673B2 (en) * 2005-07-15 2008-11-18 Kyocera Wireless Corp. Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
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
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
WO2007079358A2 (en) 2005-12-21 2007-07-12 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282386A (ja) * 1993-03-25 1994-10-07 Toshiba Corp ディスク記憶装置
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
JPH11161527A (ja) * 1997-11-28 1999-06-18 Toshiba Corp データ記憶システム
JP2000040026A (ja) * 1998-07-24 2000-02-08 Nec Corp ディスク共有型クラスタシステムにおける論理ファイル管理システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200500855003; 'ウルトラバック ソフトウェア バックアップはビジネスを遂行するための"保険" 災害からの確実なバック' Windows Server World 第9巻 第12号, 20041201, pp.40〜41, 株)IDGジャパン *
JPN6011058095; 'ウルトラバック ソフトウェア バックアップはビジネスを遂行するための"保険" 災害からの確実なバック' Windows Server World 第9巻 第12号, 20041201, pp.40〜41, 株)IDGジャパン *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223355A (ja) * 2008-03-13 2009-10-01 Hitachi Software Eng Co Ltd ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム
JP2010067271A (ja) * 2008-09-11 2010-03-25 Samsung Electronics Co Ltd ハイブリッドハードディスクドライブ制御方法、記録媒体及びハイブリッドハードディスクドライブ
JP2011095916A (ja) * 2009-10-28 2011-05-12 Canon Inc 電子機器
USRE48127E1 (en) 2010-05-13 2020-07-28 Toshiba Memory Corporation Information processing apparatus and driver
US8407418B2 (en) 2010-05-13 2013-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and driver
US8639881B2 (en) 2010-05-13 2014-01-28 Kabushiki Kaisha Toshiba Information processing apparatus and driver
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
JP2013533991A (ja) * 2010-05-20 2013-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置の間で移動されるトラックのエクステントへの書込み動作の管理方法、システム、及びコンピュータ・プログラム
US9218141B2 (en) 2010-05-20 2015-12-22 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
JP2014041471A (ja) * 2012-08-22 2014-03-06 Fujitsu Ltd ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof
JP7000712B2 (ja) 2017-06-21 2022-01-19 日本電気株式会社 データ転送装置およびデータ転送方法
JP2019008418A (ja) * 2017-06-21 2019-01-17 日本電気株式会社 データ転送装置およびデータ転送方法

Also Published As

Publication number Publication date
US10055147B2 (en) 2018-08-21
TWI352901B (en) 2011-11-21
JP5236469B2 (ja) 2013-07-17
US9104315B2 (en) 2015-08-11
KR101449543B1 (ko) 2014-10-13
CN101238431A (zh) 2008-08-06
US10126959B2 (en) 2018-11-13
EP1920317A2 (en) 2008-05-14
KR20080046648A (ko) 2008-05-27
TW200723000A (en) 2007-06-16
WO2007019076A2 (en) 2007-02-15
US20150363131A1 (en) 2015-12-17
US20150363135A1 (en) 2015-12-17
WO2007019076A3 (en) 2007-05-03
EP1920317B1 (en) 2016-04-20
US20070033362A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
JP5236469B2 (ja) 大容量データ記憶システム
JP5178514B2 (ja) 記憶装置用デュアルモードアクセスのための方法およびシステム
US8239639B2 (en) Method and apparatus for providing data type and host file information to a mass storage system
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
US7877540B2 (en) Logically-addressed file storage methods
TWI421684B (zh) 可再程式化非揮發性記憶體系統以及操作ㄧ非揮發性記憶體系統之方法
TWI400608B (zh) 在一主機系統與一可重新程式化的非揮發性大量儲存系統之間傳輸資料之方法、在一快閃記憶體系統中之控制器之操作方法以及大量儲存記憶體系統
US8713283B2 (en) Method of interfacing a host operating through a logical address space with a direct file storage medium
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
JP2008530708A (ja) フラッシュメモリにおける直接データファイル記憶実施技術
US20070136553A1 (en) Logically-addressed file storage systems
JP2008530709A (ja) フラッシュメモリにおける直接ファイルデータプログラミングおよび削除
KR101378031B1 (ko) 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리
KR20080032636A (ko) 논리 어드레스 공간 전반에 걸쳐 그리고 직접 데이터 파일기반 위에서 동작하는 인터페이싱 시스템
KR20080025178A (ko) 저장 장치에서 파티션들을 관리하기 위한 방법 및 시스템
KR101464199B1 (ko) 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
US20080307156A1 (en) System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
JP4441577B2 (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
JP2009519555A (ja) 論理アドレス形ファイル記憶
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120207

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130327

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5236469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

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