JP5143730B2 - 記憶装置内のパーティションを管理する方法およびシステム - Google Patents

記憶装置内のパーティションを管理する方法およびシステム Download PDF

Info

Publication number
JP5143730B2
JP5143730B2 JP2008519586A JP2008519586A JP5143730B2 JP 5143730 B2 JP5143730 B2 JP 5143730B2 JP 2008519586 A JP2008519586 A JP 2008519586A JP 2008519586 A JP2008519586 A JP 2008519586A JP 5143730 B2 JP5143730 B2 JP 5143730B2
Authority
JP
Japan
Prior art keywords
memory
partition
data
area
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008519586A
Other languages
English (en)
Other versions
JP2008545202A (ja
Inventor
シー. チャング,ロバート
ホルツマン,マイケル
サベット−シャーヒ,ファーシド
マカボイ,ポール
クァワミ,バーマン
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
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 サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2008545202A publication Critical patent/JP2008545202A/ja
Application granted granted Critical
Publication of JP5143730B2 publication Critical patent/JP5143730B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、一般的にメモリ記憶装置に関し、特に、記憶装置内のパーティションの管理に関する。
一般的に、従来のコンピュータシステムは幾つかの機能的な構成要素を含む。これら構成要素は、中央処理装置(CPU)、メインメモリ、入出力(「I/O」)装置および大容量記憶装置を含むことができる。従来のシステムでは、メインメモリは、システムバスまたはローカルメモリバスを介してCPUに結合されている。メインメモリは、実行時間にメインメモリ内に蓄積されたデータおよび/またはプログラム情報に対するCPUアクセスを行うのに用いられる。一般的に、メインメモリは、ランダムアクセスメモリ(RAM)回路から成る。CPUおよびメインメモリを有するコンピュータシステムは、ホストシステムと称されることが多い。
一般的に、大容量記憶装置は、データを保存するのに用いられている。通常、大容量記憶装置に蓄積されたプログラムは、CPUにより実行される前にメインメモリにコピーされる。一般的な大容量記憶装置は、フロッピー(登録商標)ディスク、ハードディスク、光ディスクおよびテープドライブを含む。さらに、ホストシステム用にフラッシュメモリを用いて不揮発性記憶装置を構成することができる。
ホストシステムは、インターフェイスを介してフラッシュメモリ(本願明細書を通して交換可能に「フラッシュ装置」、「フラッシュ」または「フラッシュカード」とも称する)とインターフェイスをとる。一般的に、フラッシュメモリは、情報を蓄積する不揮発性メモリセルアレイを含む。フラッシュメモリシステムは、パーソナルコンピュータやカメラなどのような様々なホストと取り外し可能に接続されるがこのようなホストシステム内に埋め込むこともできるメモリカードまたはフラッシュドライブの形態で最も一般的に提供されている。
一般的に、フラッシュメモリコントローラはメモリアレイの動作を制御する。メモリコントローラは、マイクロプロセッサ、ある不揮発性読み出し専用メモリ(「ROM」)、揮発性ランダムアクセスメモリ(「RAM」)、および1つ以上の特殊回路、例えばエラー訂正コード(「ECC」)回路を含む。ECC回路は、データがメモリコントローラを介して受け渡されたとき、このデータからECCを計算する。
市販のフラッシュメモリシステムの初期世代では、メモリセルの長方形アレイは多数の群のセルに分割され、各群は、標準のディスクドライブセクタのデータ量、すなわち512バイトを蓄積した。一般的に、16バイトのようなさらなるデータ量も、エラー訂正コード(ECC)を蓄積するために各群に含まれ、場合によっては、ユーザデータおよび/またはユーザデータが蓄積されているメモリセル群に関する他のオーバヘッドデータが各群に含まれる。このような各群内のメモリセルは、同時に消去できる最小数のメモリセルである。すなわち、実際上、消去単位は、1つのデータセクタを蓄積し任意のオーバヘッドデータが含まれるメモリセルの数である。この種のメモリシステムの例が、米国特許第5,602,987号(特許文献1)および第6,426,893号(特許文献2)に記載されている。データを用いてメモリセルを再プログラムする前にメモリセルを消去する必要があることは、フラッシュメモリの特性である。
論理インターフェイスを介してデータをフラッシュメモリに書き込むとき、一般的に、ホストは固有の論理アドレスをセクタ、クラスタ、またはメモリシステムの連続的な仮想アドレス空間内の他のデータ単位に割り当てする。一般的に、ホストはファイルシステムを維持し、ファイルデータを論理クラスタに割り当てし、ここで、クラスタの大きさは一般的に固定されている。フラッシュ装置は複数の論理セクタに分割され、ホストは複数の論理セクタから成るクラスタ内の空間を割り当てする。クラスタは論理アドレスの再分割であり、クラスタマップはファイルアロケーションテーブル(「FAT」)として指定される。一般的に、FATは記憶装置自体に蓄積されている。
ディスクオペレーティングシステム(DOS)のように、ホストは、メモリシステムの論理アドレス空間内のアドレスにデータを書き込み、このアドレスからデータを読み出す。メモリシステム内のコントローラは、ホストから受信した論理アドレスを、データが実際に蓄積されているメモリアレイ内の物理アドレスに変換し、その後、これらのアドレス変換を追跡し続ける。
一般的に、メモリ装置(例えば、フラッシュメモリ)は、ホストシステムによりパーティション化される。通常、2つのパーティションはドライブを共有し、各パーティションの大きさはホストシステムにより設定されている。常に、一方のパーティションがいっぱいになり、他方のパーティションに空きが残っている場合、各パーティションに割り当てられた空間の量を再割り当てすることが有益である。従来のシステムでは、ホストは、ドライブを再フォーマットすることによりこの機能を実行する。この処理は、再フォーマットする前にすべてのデータをドライブからコピーし、その後、空間を各パーティションに再割り当てすることを含む。この処理はつまらなく、多大な時間を必要とし、従って望ましくない。
従って、メモリ記憶装置の空間を最適に使用するため、パーティションを効率良く管理する方法およびシステムが必要とされる。
米国特許第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号
本発明の一態様では、大容量記憶メモリシステムを提供する。このシステムは、再プログラム可能な不揮発性メモリセルであって、メモリセルは、データを蓄積するため、メモリセルの行を規定する複数の連続ストリングに互いに接続されている同時に消去可能なメモリセルの複数のブロック内に配置され、メモリセルは、少なくとも2つのメモリパーティションに分割され、各メモリパーティションがシステム領域およびデータ領域を有するメモリセルと、論理インターフェイスを介してホストシステムからデータを受信するようになっているマイクロプロセッサを含むコントローラと、を含み、コントローラは、マッピングテーブルを用いることにより、未使用の記憶空間を有する第2のメモリパーティションから、いっぱいであるかまたはしきい値に達した第1のメモリパーティションへメモリ空間を再割り当てし、マッピングテーブルは、ホストシステムにシステム領域およびデータ領域が連続しているように見えるシステム領域およびデータ領域の仮想ブロックアドレスと、仮想ブロックアドレスを実際の論理ブロックアドレスにマッピングする実論理ブロックアドレスとを用いる。
本発明の別の態様では、論理インターフェイスを介してホストシステムからデータを受信するようになっているマイクロプロセッサを含むコントローラと、システム領域およびデータ領域を有する第1のメモリパーティションと、システム領域およびデータ領域を有する第2のメモリパーティションと、を含む大容量記憶メモリメモリシステムであって、コントローラは、ホストシステムにシステム領域およびデータ領域が連続しているように見えるようにシステム領域およびデータ領域の仮想ブロックアドレスを用いることにより、未使用の記憶空間を有する第2のメモリパーティションから、いっぱいであるかまたはしきい値に達した第1のメモリパーティションへメモリ空間を再割り当てする大容量記憶メモリシステムを提供する。
さらなる別の態様では、システム領域およびデータ領域を有する第1のメモリパーティションと、システム領域およびデータ領域を有する第2のメモリパーティションとの間で大容量記憶メモリシステムのデータ記憶空間を動的に再割り当てする方法を提供する。この方法は、第1のメモリパーティションがいっぱいであり、かつ/または、しきい値に達したかどうかを判断するステップと、いっぱいであり、かつ/または、しきい値に達した第1のメモリパーティションに割り当てすることができる空き空間を第2のメモリパーティションが有するかどうかを判断するステップと、ある空き空間を第2のメモリパーティションから第1のメモリパーティションへ割り当てするステップと、を含み、メモリコントローラは空き空間を割り当てする。
この概要は、本発明の性質を素早く理解できるように提供されている。本発明の好適な実施形態の以下の詳細な説明を添付図面と併せて参照することにより本発明をより充分に理解することができる。
次に、好適な実施形態の図面を参照して本発明の前述した特徴および他の特徴を説明する。図中、同一の符号は、同様な部分を示す。図に示されている実施形態は、本発明を説明するものであって、本発明を制限するものではない。
好適な実施形態の理解を容易にするため、ホストシステム/フラッシュ装置の一般構造および動作を説明する。次に、一般構造を参照して、好適な実施形態の特定の構造および動作を説明する。
ホストシステム
図1Aには、本発明を用いることができる汎用コンピュータシステム(ホストシステム)100を示す。システム100の構成要素は、コンピュータ160と、マウス120、キーボード165、モニタ120およびプリンタ125のような様々な入出力(「I/O」)装置とを含む。
図1Bには、コンピュータシステム100の抽象表現を示す。構成要素130は、ユーザをコンピュータシステム100と対話させることができるマウスおよびキーボードのような複数の入力装置を表すものである。これと同様に、出力135は、1つ以上の出力装置、例えば、モニタ120およびプリンタ125を表す。
コンピュータシステム100は、システムバス155に接続された中央処理装置(「CPU」)(またはマイクロプロセッサ)175を含む。メインメモリ145(例えば、ランダムアクセスメインメモリ(「RAM」))もシステムバス155に結合され、CPU175にメモリ記憶装置へのアクセス権を与える。プログラム命令を実行するとき、CPU175はこれらの処理ステップをRAM145に蓄積し、蓄積された処理ステップをRAM145から取り出して実行する。
読み出し専用メモリ(「ROM」)(図示せず)は、始動命令シーケンスまたは基本入出力オペレーティングシステム(BIOS)シーケンスのような不変命令シーケンスを蓄積するのに設けられている。
大容量記憶装置150によりコンピュータシステム100はデータを永続的に蓄積することができる。大容量記憶装置150をフラッシュメモリ装置、ハードディスクまたは別の種類の媒体記憶装置とすることができる。本発明の適応的な態様の以下の説明は、フラッシュメモリ装置に基づくが、他の種類のメモリ装置に適用することもできる。大容量記憶装置150をフラッシュ装置150とも称する。
現在では、多くの異なるフラッシュ装置(またはフラッシュメモリカード)が市販され、例として、コンパクトフラッシュ(CF)(登録商標)、マルチメディアカード(MMC)(登録商標)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア(登録商標)およびトランスフラッシュカードが挙げられる。これらのカードの各々は、標準仕様に従って固有の機械的および/または電気的インターフェイスを有するが、各々に含まれるフラッシュメモリは極めて類似する。これらのカードはすべて、本発明の譲受人であるサンディスク コーポレイションから入手可能である。サンディスクは、Cruzer(クルーザー)(登録商標)による一連のフラッシュドライブも提供する。このフラッシュドライブは、ホストのユニバーサル・シリアル・バス(USB)コンセントに接続することによりホストと接続するUSBプラグを有する小型パッケージ内のハンドヘルドメモリシステムである。これらのメモリカードおよびフラッシュドライブの各々は、ホストとインターフェイスをとり、ホスト内のフラッシュメモリの動作を制御するコントローラを含む。
前述した不揮発性メモリカードおよびフラッシュドライブは市販され、512メガバイト(MB)、1ギガバイト(GB)、2GBおよび4GBのデータ記憶容量を有し、データ記憶容量がこれ以上高いものもある。
このようなメモリカードおよびフラッシュドライブを用いるホストシステムは多種多様である。ホストシステムは、パーソナルコンピュータ(PC)、ラップトップコンピュータおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末(PDA)、デジタル静止カメラ、デジタル動画カメラ、並びに、携帯用音声プレーヤを含む。一般的に、ホストは、1種類以上のメモリカードまたはフラッシュドライブ用の内蔵コンセントを含むが、一部のホストは、メモリカードが差し込まれるアダプタを必要とする。
メモリセルアレイのNAND構造が現在のところ好ましいが、その代わりにNORのような他の構造も用いることができる。NANDフラッシュメモリと、メモリシステムの一部としての動作との例として、米国特許第5,570,315号(特許文献3)、第5,774,397号(特許文献4)、第6,046,935号(特許文献5)、第6,373,746号(特許文献6)、第6,456,528号(特許文献7)、第6,522,580号(特許文献8)、第6,771,536号(特許文献9)、第6,781,877号(特許文献10)および米国公開特許出願第2003/0147278号(特許文献11)を参照することができる。
フラッシュ装置150は、(「メモリシステムコントローラ」、または「メモリコントローラ」あるいは「コントローラ」とも称することができる)メモリコントローラモジュールと、固体メモリモジュールとを含む。図1Cには、コントローラモジュール150Aの内部構造のブロック図を示す。コントローラ150Aは、論理インターフェイスまたは別の周辺バス(図示せず)あるいはシステムバス155を介してホストシステム100とインターフェイスをとる。コントローラモジュール150Aは、インターフェイスロジック150Eを介して様々な他の構成要素とインターフェイスをとるマイクロコントローラ150Cを含む。メモリ150Dは、フラッシュ装置150の動作を制御するためにマイクロコントローラ150Cにより用いられるファームウェアおよびソフトウェア命令を蓄積する。メモリ150Dを、揮発性再プログラム可能なランダムアクセスメモリ(「RAM」)、再プログラム可能でない不揮発性メモリ(「ROM」)、1度プログラム可能なメモリ、または、再プログラム可能なフラッシュEEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)とすることができる。
フラッシュインターフェイス150Fがメモリモジュール150Bとインターフェイスをとる間、ホストインターフェイス150Gはホストシステム100とインターフェイスをとる。
図1Dには、以下のさらなる説明で一例として用いられるフラッシュメモリセルアレイ(150B)の編成を概念的に示す。メモリセルの4つのプレーンまたはサブアレイ131〜134は、単一集積メモリセルチップ上、(各チップ上にプレーンの2つが存在する)2つのチップ上、または、4つの分離したチップ上に存在しうる。以下の説明に対して、特定の配置は重要ではない。1,2,8,16またはそれ以上の数のようなその他の数のプレーンがシステムに存在しうることもちろんである。プレーンは、それぞれのプレーン131〜134に位置するブロック137,138,139,140Aのような長方形により図1Dに示されたメモリセルのブロックに個々に分割されている。各プレーンには、数十または数百のブロックが存在しうる。
メモリセルの一ブロックは消去の単位であって、物理的に同時に消去可能なメモリセルの最小数である。しかし、増大された並列性のため、ブロックは、より大規模なメタブロック単位で動作される。各プレーンからの1つのブロックは、メタブロックを形成するように論理的に互いに結合されている。4つのブロック137〜140Aは、1つのメタブロック141を形成するように示されている。一般的に、メタブロック内のセルのすべては同時に消去される。ブロック145〜148を構成する他のメタブロック143に示されるように、メタブロックを形成するのに用いられたブロックをそれぞれのプレーン内で同じ相対的位置に限定する必要はない。
高いシステム性能のため、一般的にプレーンのすべてにわたってメタブロックを拡張するのが好ましいが、異なるプレーン内の1つ、2つまたは3つのブロックのいずれかまたはすべてからメタブロックを動的に形成する機能を用いてメモリシステムを動作することができる。これにより、メタブロックの大きさを、1つのプログラム動作で記憶するのに利用できるデータの量と厳密に一致させることができる。
次に、個々のブロックは、動作目的のため、図1Eに示されるようにメモリセルのページに分割されている。例えば、ブロック131〜134の各々のメモリセルは、それぞれ8つのページP0〜P7に分割されている。あるいはまた、各ブロック内のメモリセルには、16個、32個、またはそれ以上のページが存在しうる。ページは、1ブロック内でのデータプログラムおよび読み出しの単位であって、1度にプログラムされる最小量のデータを含む。
NAND構造では、ページは、ブロック内でワード線に沿っているメモリセルから形成されている。しかし、メモリシステム動作の並列性を増大させるため、2つ以上のブロック内のこのようなページをメタページ内で論理的に結合することができる。図1Eに示されているメタページ151は、4つのブロック131〜134の各々から1つの物理ページの形態を成す。例えば、メタページ151は、4つのブロックの各々からのページP2を含むが、メタページのページは、各ブロック内で必ずしも同じ相対的位置を有する必要はない。
図1Fには、ホストと大容量メモリシステムとの間の論理インターフェイスの利用を示す。ホストは、ホストにより実行されるアプリケーションソフトウェアまたはファームウェアプログラムにより作成されるかまたは用いられるデータファイルを処理する。一例としてワード処理データファイルが挙げられ、別の例としてコンピュータ支援設計(CAD)ソフトウェアの描画ファイルが挙げられる。これらのファイルは主に、PCやラップトップコンピュータなどのような汎用コンピュータホスト内に見られる。PDFフォーマットの文書も、このようなファイルである。静止デジタルビデオカメラは、メモリカードに蓄積されたピクチャごとにデータファイルを作成する。携帯電話は、電話ディレクトリのような内部メモリカードのファイルからデータを用いる。PDAは、アドレスファイルやカレンダファイルなどのような幾つかの異なるファイルを蓄積し用いる。任意のこのような用途では、メモリカードは、ホストを動作するソフトウェアも含むことができる。
連続的な論理アドレス空間161は、メモリシステムに蓄積できるすべてのデータのアドレスを提供するのに充分大きい。一般的に、ホストアドレス空間は、データのクラスタのインクリメントに分割されている。多数のセクタ、一般的には4から64までのセクタのデータを含むように各クラスタを所定のホストシステム内に設計することができる。標準のセクタは、512バイトのデータを含む。
作成された3つのデータファイル1,2,3が、図1Fの例に示されている。ホストシステム上で実行するアプリケーションプログラムは、順序付けられたデータセットとして各ファイルを作成し、固有の名前または他の基準により特定する。他のファイルにまだ割り当てられていない充分に利用可能な論理アドレス空間は、ホストによりファイル1に割り当てられる。ファイル1には連続範囲の利用可能な論理アドレスが割り当てられたとして示される。特定の範囲がホストオペレーティングソフトウェア用に割り当てられるように、一般的にアドレスの範囲は特定の目的のためにも割り当てられる。この場合、ホストが論理アドレスをデータに割り当てする時点でこれらのアドレスが用いられていなかったとしても、データを蓄積するためにこれらのアドレスは回避される。
後でファイル2がホストにより作成された場合、図1Fに示されるように同様にホストは論理アドレス空間161内の2つの異なる範囲の連続アドレスを割り当てする。連続論理アドレスにファイルを割り当てする必要はなく、むしろ、他のファイルに既に割り当てられたアドレス範囲の間にアドレスの小部分を割り当てすることができる。従って、この例は、ホストにより作成されたさらなる別のファイル3が、ファイル1,2および他のデータに前もって割り当てられていないホストアドレス空間の他の部分に割り当てられることを示す。
ホストは、ホストが様々なホストファイルに割り当てする論理アドレスが維持されているファイルアロケーションテーブル(FAT)を維持することによりメモリ論理アドレス空間を追跡し続ける。一般的に、FATテーブルは、不揮発性メモリとホストメモリとに蓄積され、新たなファイルが蓄積されたり、他のファイルが削除されたり、ファイルが変更されたりなどすると、FATテーブルはホストにより頻繁に更新される。例えば、ホストファイルが削除された場合、ホストは、FATテーブルを更新することにより、削除されたファイルに前もって割り当てられた論理アドレスを割り当て解除して、論理アドレスが他のデータファイル用に今では利用可能であることを示す。
ホストは、メモリシステムコントローラがファイルの蓄積のために選択する物理位置に関心を持たない。一般的なホストは、論理アドレス空間と、ホストが様々なファイルに割り当てした論理アドレスとだけを理解する。その一方で、メモリシステムは、一般的なホスト/カードインターフェイスを介して、データが書き込まれた論理アドレス空間の部分だけを理解するが、特定のホストファイルに割り当てられた論理アドレスを理解せず、あるいは、ホストファイルの数さえも理解しない。メモリシステムコントローラ150Aは、データを蓄積するかまたは取り出すため、ホストにより提供された論理アドレスを、ホストデータが蓄積されているフラッシュメモリセルアレイ内の固有の物理アドレスに変換する。ブロック163は、これらの論理−物理アドレス変換の作業テーブルを表す。論理−物理アドレス変換の作業テーブルは、メモリシステムコントローラ150Aにより維持されている。
メモリシステムコントローラ150Aは、メモリアレイ165のブロックおよびメタブロック内のデータファイルを蓄積するため、システムの性能を高水準に維持するようにプログラムされている。この図では、4つのプレーンまたはサブアレイが用いられている。各プレーンからのブロックにより形成されたメタブロックの全体にわたってシステムが可能にする最大級の並列性を用いてデータをプログラムし読み出すのが好ましい。一般的に、少なくとも1つのメタブロック167は、メモリコントローラにより用いられるオペレーティングファームウェアおよびデータを蓄積するための予約済みブロックとして割り当てられている。ホストオペレーティングソフトウェアやホストFATテーブルなどを記憶するため、別のメタブロック169または複数のメタブロックを割り当てすることができる。物理記憶空間の大部分は、データファイルを記憶するために残る。
しかし、メモリシステムコントローラ150Aは、受信されたデータが様々なファイルオブジェクト間でホストによりどのようにして割り当てられたかを理解しない。ホストにより特定の論理アドレスに書き込まれたデータが、コントローラの論理−物理アドレステーブル163により維持された対応する物理アドレスに蓄積されたことを、一般的に、すべてのメモリコントローラ150Aはホストと対話することから理解する。
一般的なメモリシステムでは、アドレス空間161内にデータの量を蓄積するのに必要とされるよりも数個追加されたブロックの記憶容量が備えられている。これらの追加されたブロックの1つ以上は、メモリの存続期間中に欠陥品となることがある他のブロックの代替とする冗長ブロックとして設けられている。メタブロックにもともと割り当てられていた欠陥ブロックを冗長ブロックで代替することを含む様々な理由のため、一般的に、個々のメタブロック内に含まれるブロックの論理グループ化を変更することができる。メタブロック171のような1つ以上の追加のブロックは、一般的に消去済みブロックプール内に維持されている。
ホストがデータをメモリシステムに書き込む場合、コントローラ150Aは、ホストにより割り当てられた論理アドレスを消去済みブロックプールのメタブロック内の物理アドレスに変換する。次に、論理アドレス空間161内でデータを蓄積するのに用いられていない他のメタブロックは消去され、その後のデータ書き込み動作中に用いられるように消去済みプールブロックとして指定される。
メモリパーティション
図2Aは、一般的にメモリ記憶装置150がどのようにしてパーティション化されるかを示す一例である。記憶装置150は、2つのパーティション、すなわちパーティション1およびパーティション2を含む。パーティション1は、システム領域201およびデータ領域202を含む。また、パーティション2は、システム領域203およびデータ領域204を有する。2つのパーティションだけが図2Aに示され、以下の再割り当て技術は、この例に基づいて行われるが、本発明の適応的な態様は、任意の特定数のメモリパーティションに限定されるものではない。
図2Bには、パーティション2に類似するパーティション1のブロック図を示す。図2Bに示されるように、システム領域201は、様々な小部分、例えば、マスタブートレコード(「MBR」)領域205、パーティションブートレコード(「PBR」)領域206、FAT1領域207、FAT2領域208およびルートディレクトリ領域209を有する。
MBR領域205は全体的なパーティション情報を蓄積し、媒体がブート可能な装置である場合、MBR205は、MBR領域205からPBR領域206へジャンプする命令を含む。MBR領域205は、MBR領域205とPBR領域206との間の予約済み空間である隠し領域をも含む。
PBR領域206は、パーティション(この例では、パーティション1)のパーティション/ブート情報を含む。例えば、PBR領域206は、FATの種類(例えば、12/16/32ビット)、ラベル(すなわち、ドライブ名)、ドライブの大きさ、クラスタの大きさ(すなわち、割り当て単位ごとのセクタの数)、FAT領域の数(2つのFAT領域、すなわち、図2Bに示されたFAT1およびFAT2)、および、FATごとのセクタの数に関する情報を含む。
FAT領域(207,208)は、ファイルごとにクラスタ情報を含む。例えば、FAT12の場合、領域207,208内の各項目は12ビットを含み、全部で4,096個の項目が存在する。クラスタ0およびクラスタ1は、0XFFFFF8(媒体の種類)およびクラスタの終わりのために予約されている。特定のクラスタ(例えば、クラスタ4,087)は、不良のクラスタを示すのに用いられる。FAT16の場合、各項目は16ビットを含み、FAT32の場合、各項目は32ビットを含む。
ルートディレクトリ領域209は、ファイルごとに項目を含む。各ディレクトリ項目は、ファイル名またはディレクトリに対する特定のバイト数(例えば、8バイト)、拡張子に対するバイト数(例えば、3バイト)、ファイル属性(例えば、ファイルが読み出し専用、隠しファイル、システムファイル、ボリュームラベル、ディレクトリ、または、変更されたファイルである場合)に対するバイト数(例えば、1バイト)、ファイルが作成された日時を示すバイト数、開始クラスタに対する特定のバイトの数(例えば、2)、および、ファイル長を示す特定のバイトの数(例えば、4)を含む。
開始クラスタに対するバイトの数はFAT内の最初のクラスタを指し示し、最後のクラスタを0xFFF、0xFFFFまたは0Xffffffにより示すことができる。
ディレクトリにファイル名を書き込むため、ホストシステムはFAT1領域207内で空いているクラスタ空間を検出し、データはデータ領域202に書き込まれる。次に、FAT1およびFAT2の双方の項目は更新される。ディレクトリ項目、すなわち日付/時間/開始クラスタ/ファイル長も更新される。
本発明の一態様では、一方のパーティションがいっぱいになるか、あるいは特定のしきい値に達し、他方のパーティションが空き空間を有する場合、メモリコントローラ150Aはパーティション空間を再割り当てする。従って、一方のパーティションの大きさを増大させながら、他方の大きさを減少させる。メモリコントローラ150Aによりしきい値をプログラムすることができる。(本願明細書で「仮想マップ」と称する)マッピング方式は、以下で説明するように、双方のパーティションにおけるクラスタ使用率を追跡するのに用いられる。この処理全体は、メモリコントローラ150Aにより効率良く実行される。ホストシステムは、すべてのデータをコピーし、記憶装置を再フォーマットする必要はない。
図2Cには、ホストシステムに見える再割り当てされたパーティション1およびパーティション2の割り付けを示す。パーティション1のシステム領域201Aは、再割り当て後の更新されたクラスタおよびパーティション情報を含む。元のパーティション領域202はいっぱいであるか、または、これ以上のデータがそこでは書き込まれないしきい値の大きさに達している。新たなデータ領域202Aは、パーティション2からパーティション1へ割り当てられている。減少されたパーティション2は、システム領域203Aと、減少された新たなデータ領域204Aとを有する。次に、パーティションを再割り当てする処理を詳細に説明する。
図2Dには、再割り当てがメモリコントローラ150Aにより実行された後のパーティション1およびパーティション2の実際の割り付けを示す。パーティション2のシステム領域203Aは、領域202Aがパーティション1に割り当てられた後の調整済み領域である。パーティション2は、図2Cに示したデータ領域204Aに等しい204Bおよび204Cとして示されるデータ領域を有する。
図3は、本発明の一態様に従ってパーティションの大きさを再割り当てする処理を示すフローチャートである。処理はステップS300から開始し、フラッシュ装置150を初期化する。
ステップS302では、コントローラ150Aは、パーティションがいっぱいかどうかを判断する。パーティションにこれ以上データを蓄積することができないか、あるいはパーティションがプログラム可能な特定のしきい値に達した場合、パーティションはいっぱいであると見なされる。パーティションがいっぱいでない場合、コントローラ150Aは、パーティションがいっぱいになるまで待機する。
パーティション(例えば、図2Aのパーティション1)がいっぱいである場合、ステップS304では、コントローラ150Aは、空き空間が別のパーティション(例えば、パーティション2)から利用可能であるかどうかを判断する。空き空間が利用可能でない場合、処理はステップS302に戻る。
空き空間が利用可能である場合、ステップS306では、この空き空間の特定量(例えば、202A)を、いっぱいのパーティションに割り当てする。再割り当て後、ステップS308では、以下に詳細に説明するように双方のパーティションのFAT項目を調整する。ステップS310では、ディレクトリ項目も調整する。このステップも以下に詳細に説明する。ステップS312では、処理を終了する。
前述した処理の流れは、「いっぱいのパーティション」を検出するメモリコントローラ150Aに基づいて行われたメモリパーティションの再割り当てについて説明しているが、本発明はこの状況だけに限定されるものではないことに留意すべきである。例えば、ホストは特定のコマンド(例えば、「ドライブの再パーティション化」)をコントローラ150Aに送信してメモリ装置を再パーティション化することができ、次に、コントローラは、前述した処理のステップを実行してメモリ空間を再割り当てする。
図4A〜4Fには、少なくとも2つのメモリパーティション間のメモリ空間を再割り当てするための前述した処理のステップを示す。図4A〜4Fに用いられる様々な値は単に例示として用いられ、本発明の適応的な態様を限定するものではないことに留意すべきである。
図4A〜4Fの例は、フラッシュ装置150のクラスタの大きさが32キロバイト(KB)であり、従って、120メガバイト(MB)のフラッシュ装置は4,096個のクラスタを有すると仮定する。各システム領域(201,203)は6つのクラスタを用い、各パーティションは2,042個のクラスタのデータ領域を有する。各クラスタをブロックと称することができ、すなわち、1つのブロックの大きさはクラスタの大きさに等しい。
図4Aには、(図2Aに示されるような)最初のパーティション状態のテーブルを示す。各パーティションはシステム領域に対して6つのブロックを有し、データ領域に対して2,042個のブロックを有する。
パーティション1の場合、システム領域201にはブロック番号0〜5が割り当てられ、データ領域202にはブロック番号6〜2,047が割り当てられている。ファイルシステムがパーティション1の最初のデータクラスタに書き込む場合には書き込み動作を論理ブロックアドレス192(ここで、192=6×32)すなわちブロック6に送信する。
パーティション2の場合、システム領域203にはブロック2,048〜2,053が割り当てられ、データ領域204にはブロック番号2,054〜4,095が割り当てられている。
図4Bには、行400に仮想ブロック番号を有し、行401には実ブロック番号を有するマッピングテーブル400Aの一例を示す。列402〜409の項目は一目瞭然であって、システム領域、使用中のデータ領域および空きデータ領域に対する仮想ブロック番号および実論理ブロック番号を備える。
最初の段階(図2Aおよび図4A)では、仮想ブロック番号および実論理ブロック番号は同じであり連続的である。図4Bに示されるように、列402〜409の全項目は仮想ブロック番号および実論理ブロック番号の双方に対して同じである。
図4Cには、更新されたマッピングテーブル400Bを示す。行400にはホストシステムの視点(図2C)を示し、行401には実論理メモリ空間の視点(図2D)を示す。
行400と行401とにおいてパーティション1に対する(列410に示される)システム領域項目は同じである。列411は、パーティション1がいっぱいであり、すなわち、ブロック6〜2,047のすべてが使用中であることを示す。パーティション2は、(図4Bに3,001〜4,000として示される)幾つかの空きブロックを有し、これら空きブロックのうちの500個はパーティション1に割り当てられている。ホストは、パーティション1に対するこれら500個のブロックが、仮想ブロック番号に基づいて行400および列414に示された2,048〜2,547からのものであることを理解する。従って、ホストシステムの場合、パーティション1はブロック0からブロック2,547まで延長する。図2Dに示された実論理メモリ空間では、パーティション1に対する500個のブロックは(図4Cの行401および列414に示されるように)ブロック番号3,001〜3,500に位置付けられている。
パーティション2に関して、ホストは、パーティション領域のシステム領域が連続的である、すなわち、(行400および列412に示されるように)2,548〜2,553からのものであることを理解し、実際には、システム領域は(行401および列412に示されるように)2,048〜2,053からのものである。
パーティション2に用いられている空間のデータブロックは列413に示されている。この場合も、仮想ブロック番号は2,554〜3,500であるが、実際のブロック番号は(行401および列413に示されるように)2,054〜3,000からのものである。行400,401に対して列415,416の項目は同じである。
前述した例により示されるように、ホストは、パーティション空間を再割り当てするためにデータをコピーすることはしない。マッピングテーブル400Aを用い更新することにより、未使用の空間は、いっぱいのメモリパーティションに再割り当てされる。
前述した例(図4A〜4C)に基づいて、パーティション1に対するFATテーブルは変更されない。パーティション2の場合、FAT項目は、パーティション1に割り当てられた領域に合うように調整される。図2Dの例に関して、(204Cとして示された)パーティション2のデータ領域Bは、パーティション1に割り当てられたデータ領域により減少された項目を有する。例えば、新たなデータ領域202AにFATの項目が500個存在する場合、(204Cとして示された)パーティション2のデータ領域Bが(204Bとして示された)パーティション2のデータ領域Aよりも下位にあるならば、(204Cとして示された)パーティション2のデータ領域Bにある各ファイル名項目の開始クラスタは500だけ調整される。
図4Dには、前述した例を表形式で示す。(図2Dの204Bとして示された)パーティション2のデータ領域Aは1,000個の項目を有する。領域202Aは500個の項目を有し、領域204Cは500個の項目を有する。
一実施例では、フラッシュ装置150の各パーティションは、パーティションに利用できる特定の容量を有するためにホストに公開する。例えば、フラッシュ装置150が4GBである場合、各パーティションは2GBであることを公開する。従って、FAT領域がフラッシュ装置の空間全体に合うことができるように、各パーティションに利用できる充分なFAT領域を有するのが望ましい。この追加のFATテーブル空間はパーティションを増大させる。従って、メモリコントローラ150Aの下、FAT1領域207およびFAT2領域208は、フラッシュメモリ装置の容量全部のFAT項目を含む程度に充分に大きい。
図4Eには、パーティションマップのホスト/ユーザの視点を示す列417と、実際のパーティションマップ/実パーティションマップを示す列418とを有するテーブルを示す。列418の下に示すように、実パーティションマップは、FAT領域の拡張のための予約済み領域207Aを含む。この領域は、FAT1およびFAT2内のFAT項目が記憶装置全体に合うことができるように充分に大きい。パーティション(例えば、前述した例では、パーティション1)が拡張すると、予約済み領域207Aは、拡張のために追加の空間を提供するのに用いられる。パーティション領域がメモリコントローラ150Aにより再割り当てされると、FAT領域は、パーティションの大きさの変化に合うように調整される。
パーティション空間がメモリコントローラ150Aにより再割り当てされる場合、FAT項目/領域に加えて、ディレクトリ領域内のファイル名項目も調整される(図3のステップS310)。前述した例(図4A〜4C)に基づいて、パーティション1のファイル名項目は変更されない。パーティション2の場合、ファイル名項目の開始クラスタは、パーティション1に割り当てられた領域に合うように調整される。
図2Dの例に関して、(204Cとして示された)パーティション2のデータ領域Bは、パーティション1に割り当てられたデータ領域だけ減少された項目を有する。例えば、新たなデータ領域202AにFATの項目が500個存在する場合、(204Cとして示された)パーティション2のデータ領域Bが(204Bとして示された)パーティション2のデータ領域Aよりも下位にあるならば、(204Cとして示された)パーティション2のデータ領域Bにある各ファイル名項目の開始クラスタは500だけ調整される。
図4Fには、前述した例を表形式で示す。(図2Dの204Bとして示された)パーティション2のデータ領域Aは1,000個の項目を有する。領域202Aは500個の項目を有し、領域204Cは500個の項目を有する。
新たなパーティション領域2(=n)がブロック1,000を超えて位置付けられている場合、新たなパーティション領域2(=n)の各ファイル名項目の開始クラスタは500だけ調整される。従って、n≧1000である場合、n’(調整されたファイル名項目)は、n−500に等しい。この調整は、領域204B,204C内の項目を含むすべての項目に対して実行される。ファイル名項目がディレクトリまたはサブディレクトリであることを示す場合、ディレクトリ(またはサブディレクトリ)項目も調整される。
本発明の一態様では、多大な時間を必要とするつまらない動作ですべてのデータをコピーすることなしにパーティション領域はメモリ装置コントローラにより再割り当て/調整される。ホストシステムは、ドライブをコピー/再フォーマットしてパーティション記憶空間を再割り当てするために多大な時間を必要とする処理を実行する必要はない。
特定の実施形態を参照して本発明を説明してきたが、これらの実施形態は一例にすぎず、本発明を限定するものではない。例えば、前述した例はフラッシュメモリ装置に基づくが、他の種類のメモリ装置、例えばハードディスクに同様に適用することができる。本願明細書と特許請求の範囲とを踏まえると、本発明の他の多くの用途および実施形態は明らかになるであろう。
フラッシュ装置を用いるホストシステムを示すブロック図である。 図1Aのホストシステムの構造を示す図である。 本発明の一態様に従って用いられるフラッシュ装置のメモリコントローラを示すブロック図である。 フラッシュメモリシステムの物理メモリ編成の一例を示す図である。 図1Dの物理メモリの一部を示す拡大図である。 ホストと再プログラム可能なメモリシステムとの間の従来の論理アドレスインターフェイスを示す。 記憶装置内の2つのメモリパーティションを示すブロック図である。 図2Aに示したパーティションのシステム領域の割り付けを示すブロック図である。 本発明の一態様に従って再割り当てされたメモリパーティションをホストシステムの視点から示す。 本発明の一態様に従って再割り当てされたメモリパーティションの実際の割り付けを示す。 本発明の一態様に従って大容量記憶装置内のメモリ空間を再割り当てする全体的な処理を示すフローチャートである。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。 本発明の一態様に従ってメモリパーティションの再割り当ての一例を示す。

Claims (1)

  1. 大容量記憶メモリシステムであって、
    同時に消去可能なメモリセルの複数のブロックを形成するように配置されるとともに、ブートレコード、ファイルアロケーションテーブル(「FAT」)、およびディレクトリを蓄積するシステム領域とファイルを蓄積するデータ領域とをそれぞれ有する少なくとも2つのメモリパーティションに分割される書き換え可能な不揮発性メモリセルと、
    論理インターフェイスを介してホストシステムからデータを受信するようになっているメモリコントローラであって、第1のメモリパーティションがいっぱいであるかまたはしきい値に達し、また第2のメモリパーティションが未使用の記憶空間を有する際に、第1のメモリパーティションへ第2のメモリパーティションの1つ以上のブロックを再割り当てし、かつマッピングテーブルを用いることにより1つ以上のブロックを再割り当てし、前記マッピングテーブルには各システム領域および各データ領域の仮想論理ブロックアドレスが含まれるので、前記ホストシステムには前記パーティションのそれぞれが連続したブロックを形成しているように見え、さらに前記マッピングテーブルが前記仮想論理ブロックアドレスを実論理ブロックアドレスにマッピングし、前記実論理ブロックアドレスは前記メモリコントローラが1つ以上のブロックを再割り当てした後では連続していないものである、メモリコントローラと、
    を備える大容量記憶メモリシステム。
JP2008519586A 2005-06-29 2006-06-28 記憶装置内のパーティションを管理する方法およびシステム Expired - Fee Related JP5143730B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/170,221 US7457910B2 (en) 2005-06-29 2005-06-29 Method and system for managing partitions in a storage device
US11/170,221 2005-06-29
PCT/US2006/025467 WO2007002866A2 (en) 2005-06-29 2006-06-28 Method and system for managing partitions in a storage device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012176609A Division JP2013012212A (ja) 2005-06-29 2012-08-09 記憶装置内のパーティションを管理する方法およびシステム

Publications (2)

Publication Number Publication Date
JP2008545202A JP2008545202A (ja) 2008-12-11
JP5143730B2 true JP5143730B2 (ja) 2013-02-13

Family

ID=37101969

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008519586A Expired - Fee Related JP5143730B2 (ja) 2005-06-29 2006-06-28 記憶装置内のパーティションを管理する方法およびシステム
JP2012176609A Ceased JP2013012212A (ja) 2005-06-29 2012-08-09 記憶装置内のパーティションを管理する方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012176609A Ceased JP2013012212A (ja) 2005-06-29 2012-08-09 記憶装置内のパーティションを管理する方法およびシステム

Country Status (7)

Country Link
US (2) US7457910B2 (ja)
EP (3) EP2159681A3 (ja)
JP (2) JP5143730B2 (ja)
KR (1) KR20080025178A (ja)
CN (1) CN101213510B (ja)
TW (1) TWI315032B (ja)
WO (1) WO2007002866A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048937B2 (en) 2014-06-16 2018-08-14 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747580B2 (en) 2003-08-25 2010-06-29 Oracle International Corporation Direct loading of opaque types
US7814047B2 (en) * 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
JP4428200B2 (ja) * 2004-11-01 2010-03-10 ソニー株式会社 情報記録装置および方法、プログラム格納媒体、並びにプログラム
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US7933928B2 (en) * 2005-12-22 2011-04-26 Oracle International Corporation Method and mechanism for loading XML documents into memory
KR100714709B1 (ko) * 2006-01-11 2007-05-04 삼성전자주식회사 숨김 영역 관리 장치 및 방법
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US20080082725A1 (en) * 2006-09-28 2008-04-03 Reuven Elhamias End of Life Recovery and Resizing of Memory Cards
US7596656B2 (en) * 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
US7933935B2 (en) 2006-10-16 2011-04-26 Oracle International Corporation Efficient partitioning technique while managing large XML documents
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US7917479B2 (en) * 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
US9396103B2 (en) 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US9693106B2 (en) * 2007-07-26 2017-06-27 The Directv Group, Inc. Method and system for preordering content in a user device associated with a content processing system
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US8307131B2 (en) * 2007-11-12 2012-11-06 Gemalto Sa System and method for drive resizing and partition size exchange between a flash memory controller and a smart card
US8162227B2 (en) * 2007-11-12 2012-04-24 Micron Technology, Inc. Intelligent controller system and method for smart card memory modules
US8898477B2 (en) * 2007-11-12 2014-11-25 Gemalto Inc. System and method for secure firmware update of a secure token having a flash memory controller and a smart card
US8286883B2 (en) * 2007-11-12 2012-10-16 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
US8156322B2 (en) * 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
US8819675B2 (en) * 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
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
US8370402B2 (en) * 2008-01-02 2013-02-05 Sandisk Il Ltd Dual representation of stored digital content
US9098506B2 (en) * 2008-01-02 2015-08-04 Sandisk Il, Ltd. Data indexing by local storage device
US8583878B2 (en) * 2008-01-02 2013-11-12 Sandisk Il Ltd. Storage device having direct user access
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
WO2009096180A1 (ja) * 2008-01-30 2009-08-06 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
CN101515254B (zh) * 2008-02-18 2010-12-08 鸿富锦精密工业(深圳)有限公司 存储空间管理系统和方法
US8271751B2 (en) 2008-04-24 2012-09-18 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
US8429196B2 (en) 2008-06-06 2013-04-23 Oracle International Corporation Fast extraction of scalar values from binary encoded XML
US8065304B2 (en) * 2008-06-11 2011-11-22 International Business Machines Corporation Using asymmetric memory
US20100122039A1 (en) * 2008-11-11 2010-05-13 Ravi Ranjan Kumar Memory Systems and Accessing Methods
US8880776B2 (en) * 2008-12-16 2014-11-04 Sandisk Il Ltd. Data access at a storage device using cluster information
JP5218024B2 (ja) * 2008-12-22 2013-06-26 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム
KR101618634B1 (ko) * 2009-01-07 2016-05-09 삼성전자주식회사 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US7974190B2 (en) * 2009-02-12 2011-07-05 Micrel, Inc. Dynamic queue memory allocation with flow control
US8370645B2 (en) 2009-03-03 2013-02-05 Micron Technology, Inc. Protection of security parameters in storage devices
CN101908009B (zh) * 2009-06-08 2014-02-19 鸿富锦精密工业(深圳)有限公司 文件备份与使用方法
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
EP2476079A4 (en) 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
TWI395102B (zh) * 2009-10-02 2013-05-01 Via Tech Inc 資料儲存裝置與方法
CN101662706B (zh) * 2009-10-20 2013-03-20 国家电网公司 一种业务存储方法和模块
US8391302B1 (en) * 2009-12-03 2013-03-05 Integrated Device Technology, Inc. High-performance ingress buffer for a packet switch
CN101808123B (zh) * 2010-03-09 2013-04-17 浪潮(北京)电子信息产业有限公司 在存储系统中访问存储资源的方法和装置
CN101938848B (zh) * 2010-06-03 2013-01-02 华为终端有限公司 主机设备无线上网方法及系统
CN101868049B (zh) * 2010-06-03 2013-12-04 华为终端有限公司 主机与无线上网模块的通信方法和主机通信模块
WO2011131035A1 (zh) 2010-04-23 2011-10-27 华为终端有限公司 无线上网模块、主机及其通信方法、数据卡
WO2011146237A2 (en) 2010-05-19 2011-11-24 The Directv Group, Inc. Method and system of building a wanted list queue for a user in a content distribution system
US9456247B1 (en) 2010-05-19 2016-09-27 The Directv Group, Inc. Method and system for changing communication parameters of a content delivery system based on feedback from user devices
US9883242B1 (en) * 2010-05-19 2018-01-30 The Directv Group, Inc. Method and system for controlling a storage location of content in a user device
US20120017052A1 (en) * 2010-07-19 2012-01-19 Sauber William F Information Handling System Universal Memory Wear Leveling System and Method
TWI420305B (zh) * 2010-10-08 2013-12-21 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法
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
US9268646B1 (en) * 2010-12-21 2016-02-23 Western Digital Technologies, Inc. System and method for optimized management of operation data in a solid-state memory
CN102541744B (zh) * 2010-12-24 2015-12-02 安凯(广州)微电子技术有限公司 一种移动存储设备的分区方法及系统
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
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
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
US9361044B2 (en) 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
FR2979443B1 (fr) * 2011-08-30 2013-09-27 Maxim Integrated Products Microcontroleur securise a base de mode
US8856440B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
WO2013057532A1 (en) * 2011-10-21 2013-04-25 Freescale Semiconductor, Inc. Memory device and method for organizing a homogeneous memory
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
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
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
TWI489272B (zh) * 2012-04-03 2015-06-21 Phison Electronics Corp 保護資料的方法、記憶體控制器與記憶體儲存裝置
CN103377149B (zh) * 2012-04-16 2016-05-11 群联电子股份有限公司 保护数据的方法、存储器控制器与存储器储存装置
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
CN102789425B (zh) * 2012-07-17 2016-01-20 上海金智晟东电力科技有限公司 基于flash存储介质的文件读写方法
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10057726B2 (en) * 2012-10-02 2018-08-21 Razer (Asia-Pacific) Pte. Ltd. Managing user data on an electronic device
US9507750B2 (en) 2012-10-12 2016-11-29 A9.Com, Inc. Dynamic search partitioning
US9235377B2 (en) * 2013-03-12 2016-01-12 Invensense, Inc. Multiple, per sensor configurable FIFOs in a single static random access memory (SRAM) structure
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
CN104238953A (zh) * 2013-06-13 2014-12-24 中兴通讯股份有限公司 直接表的存储方法和装置
KR20140145879A (ko) * 2013-06-14 2014-12-24 삼성전자주식회사 가상 블록 디바이스로 파일 시스템을 마운트하는 전자 장치 및 방법
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
KR102088403B1 (ko) 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
JP6135506B2 (ja) * 2013-12-27 2017-05-31 ブラザー工業株式会社 シート処理装置
KR20150138528A (ko) * 2014-05-29 2015-12-10 삼성전자주식회사 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법
US10667008B1 (en) 2014-12-18 2020-05-26 The Directv Group, Inc. Method and system for setting and receiving user notifications for content available far in the future
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9952808B2 (en) 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation
JP6601077B2 (ja) * 2015-09-10 2019-11-06 富士通株式会社 情報処理装置、ログ記録方法及びログ記録プログラム
JP6380320B2 (ja) * 2015-09-29 2018-08-29 京セラドキュメントソリューションズ株式会社 電子機器、情報処理方法及びプログラム
US10348567B2 (en) * 2015-10-15 2019-07-09 Microsoft Technology Licensing, Llc Mapping user identifiers between different device ecosystems
US10210298B2 (en) * 2015-11-24 2019-02-19 Altera Corporation Embedded memory blocks with adjustable memory boundaries
JP2019505922A (ja) * 2016-01-22 2019-02-28 イリノイ トゥール ワークス インコーポレイティド 質量流量制御器上に記憶されるデータ値を動的に構成するシステム及び方法
US10261707B1 (en) * 2016-03-24 2019-04-16 Marvell International Ltd. Decoder memory sharing
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10567460B2 (en) * 2016-06-09 2020-02-18 Apple Inc. Managing data using a time-based directory structure
JP6783645B2 (ja) * 2016-12-21 2020-11-11 キオクシア株式会社 メモリシステムおよび制御方法
US20180292991A1 (en) * 2017-04-11 2018-10-11 Micron Technology, Inc. Memory protocol with programmable buffer and cache size
KR20190006680A (ko) * 2017-07-11 2019-01-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN109697016B (zh) * 2017-10-20 2022-02-15 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
US10908832B2 (en) 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN109815711B (zh) * 2018-12-21 2020-12-25 航天信息股份有限公司 一种存储设备、数据存储方法和数据读取方法
US10977174B2 (en) * 2018-12-31 2021-04-13 Micron Technology, Inc. Using a common pool of blocks for user data and a system data structure
CN111274160A (zh) * 2020-01-22 2020-06-12 维沃移动通信有限公司 数据存储方法、电子设备及介质
US11436153B2 (en) * 2020-05-26 2022-09-06 Western Digital Technologies, Inc. Moving change log tables to align to zones
US20220019370A1 (en) * 2020-07-16 2022-01-20 Micron Technology, Inc. Partial zone memory unit handling in a zoned namespace of a memory device
US11537293B2 (en) * 2021-02-18 2022-12-27 Western Digital Technologies, Inc. Wear leveling methods for zoned namespace solid state drive
CN114237514A (zh) * 2021-12-24 2022-03-25 深圳市宝佳乐电子科技有限公司 区块管理方法、存储器控制器和存储器存储装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE36989E (en) 1979-10-18 2000-12-12 Storage Technology Corporation Virtual storage system and method
EP0618535B1 (en) 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5193184A (en) 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5253344A (en) 1991-09-05 1993-10-12 International Business Machines Corp. Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system
JPH0581091A (ja) * 1991-09-19 1993-04-02 Fuji Xerox Co Ltd データ処理装置
CA2100540A1 (en) 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5706472A (en) * 1995-02-23 1998-01-06 Powerquest Corporation Method for manipulating disk partitions
US5675769A (en) * 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
JPH08314773A (ja) * 1995-05-15 1996-11-29 Nec Corp 記憶装置の分割領域再配置システム
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
DE69904462T2 (de) 1998-05-01 2003-10-02 Powerquest Corp Manipulation von partitionen virtueller und realer rechnerspeichervorrichtungen
JP3613052B2 (ja) * 1999-02-09 2005-01-26 日本電気株式会社 オペレーティングシステムを記録したコンピュータ読み取り可能な記録媒体
US6609187B1 (en) 1999-07-06 2003-08-19 Dell Products L.P. Method and apparatus for supporting resizing of file system partitions
JP3863330B2 (ja) 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
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
US7089391B2 (en) * 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
JP2002222061A (ja) * 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
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
JP2003085014A (ja) * 2001-09-12 2003-03-20 Toshiba Corp ネットワークシステムのボリューム管理方法及び計算機
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
US6771536B2 (en) 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
US6694419B1 (en) 2002-04-12 2004-02-17 Barsa Consulting Group, Llc Method and system for automatically measuring partition memory needs in a partitioned computer system
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
US6851030B2 (en) 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US6912625B2 (en) 2003-01-09 2005-06-28 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems
JP4559359B2 (ja) * 2003-02-20 2010-10-06 パナソニック株式会社 情報記録媒体及びその領域管理方法
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7496493B1 (en) * 2004-11-09 2009-02-24 Western Digital Technologies, Inc. External memory device to provide disk device and optical functionality
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048937B2 (en) 2014-06-16 2018-08-14 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
US10162598B2 (en) 2014-06-16 2018-12-25 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines

Also Published As

Publication number Publication date
TWI315032B (en) 2009-09-21
JP2008545202A (ja) 2008-12-11
US7853772B2 (en) 2010-12-14
CN101213510A (zh) 2008-07-02
WO2007002866A2 (en) 2007-01-04
WO2007002866A3 (en) 2007-05-10
US20090043984A1 (en) 2009-02-12
CN101213510B (zh) 2012-05-23
KR20080025178A (ko) 2008-03-19
US7457910B2 (en) 2008-11-25
EP2270643A1 (en) 2011-01-05
JP2013012212A (ja) 2013-01-17
TW200712878A (en) 2007-04-01
EP2159681A2 (en) 2010-03-03
EP1896931A2 (en) 2008-03-12
US20070002612A1 (en) 2007-01-04
EP2159681A3 (en) 2010-12-01

Similar Documents

Publication Publication Date Title
JP5143730B2 (ja) 記憶装置内のパーティションを管理する方法およびシステム
KR101369996B1 (ko) 저장 장치용 듀얼 모드 액세스 방법 및 시스템
US8209516B2 (en) Method and system for dual mode access for storage devices
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7769978B2 (en) Method and system for accessing non-volatile storage devices
US7793068B2 (en) Dual mode access for non-volatile storage devices
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
KR20090108694A (ko) 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
KR20080038368A (ko) 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱
US8769217B2 (en) Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120830

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121121

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees