JP5580311B2 - 多性能モードメモリシステム - Google Patents

多性能モードメモリシステム Download PDF

Info

Publication number
JP5580311B2
JP5580311B2 JP2011524469A JP2011524469A JP5580311B2 JP 5580311 B2 JP5580311 B2 JP 5580311B2 JP 2011524469 A JP2011524469 A JP 2011524469A JP 2011524469 A JP2011524469 A JP 2011524469A JP 5580311 B2 JP5580311 B2 JP 5580311B2
Authority
JP
Japan
Prior art keywords
memory
capacity
storage capacity
input
block
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
JP2011524469A
Other languages
English (en)
Other versions
JP2012501027A (ja
JP2012501027A5 (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.)
Western Digital Israel Ltd
Original Assignee
SanDisk IL Ltd
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 IL Ltd filed Critical SanDisk IL Ltd
Publication of JP2012501027A publication Critical patent/JP2012501027A/ja
Publication of JP2012501027A5 publication Critical patent/JP2012501027A5/ja
Application granted granted Critical
Publication of JP5580311B2 publication Critical patent/JP5580311B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、一般的にはメモリデバイスに関する。本発明は、より具体的には再プログラム可能な不揮発性半導体フラッシュメモリの性能モードを設定することに関する。
消費者製品にはフラッシュメモリ等の不揮発性メモリシステムが幅広く採用され使用されている。ホストデバイス間で持ち運べるポータブルメモリカードやホストデバイスに埋め込まれたソリッドステートディスク(SSD)等、様々な形のフラッシュメモリが見られる。従来のフラッシュメモリシステムへデータを書き込む場合、ホストは通常メモリシステムの論理アドレス空間内のアドレスでデータを読み書きする。次に、メモリシステムは通常、論理アドレス空間とメモリの物理ブロックまたはメタブロックとの間でデータをマッピングし、データが論理アドレス空間内の範囲に相当する一定の論理グループに蓄積される。通常、一定の論理グループはメモリシステムの別々の物理ブロックに蓄積される。メモリシステムは論理アドレス空間がどのように物理メモリにマッピングされるかを把握するが、ホストはこれを認識しない。ホストは論理アドレス空間の中でデータファイルのアドレスを把握するが、メモリシステムは通常、このマッピングを認識せずに作動する。
このように作動するメモリシステムには断片化という欠点がある。例えば、NTFSファイルシステムにより作動するパーソナルコンピュータ(PC)のソリッドステートディスク(SSD)に書き込まれるデータはしばしば、ドライブの論理アドレス空間の中で広範にわたり分散した短い連続アドレスからなるパターンによって特徴づけられる。ホストによって使用されるファイルシステムが相次ぐファイルの新規データに一連のアドレスを割り当てても、削除または更新されるファイルの恣意的パターンによって使用可能な空きメモリ空間は断片化され、これをブロック単位で新規ファイルデータに割り当てることはできなくなる。
ホストによるファイルの削除または更新によってメモリシステムの物理ブロックにある一部のデータは用済みとなり、有効データと用済みデータの両方を含む部分的に用済みのブロックになることがある。用済みデータによって部分的に埋められた物理ブロックのメモリ容量は、ブロック内の有効データを別のブロックへ移し、元のブロックを消去しデータを受け入れ可能となるまでは使用できない。有効データを別のブロックへ移し、新規データを受け入れるように元のブロックを準備するプロセスはハウスキーピング機能またはガーベッジコレクションと呼ばれることがある。用済みデータによって部分的に埋められたブロック等、メモリシステムに用済みブロックがたまると、それらのブロックで新規データを受け入れられなくなる。相当量の用済みブロックがたまるとメモリデバイスはホストからの要求に応じることができなくなり、ハウスキーピング機能が必要となることがある。
通常は2つの数値によってメモリデバイスの書き込み性能が指定される。最初の数値はバースト書き込み速度である。バースト書き込み速度は、メモリデバイスに十分な空間があって入力データストリームを吸収できるレートである。2番目の数値はサステインド書き込み速度である。サステインド書き込み速度は、メモリデバイスが使用可能な書き込みブロックよりかなり大きい入力データストリームを吸収できるレートである。
メモリデバイスの書き込み性能は、メモリデバイスにどれくらい多くのデータが蓄積されているかに左右される。蓄積容量が満杯に近いとガーベッジコレクションが必要となる場合がある。ブロックを解放して新規データを受け入れられるようにするには、ガーベッジコレクションが行われるブロックの有効データを別の位置へコピーしなければならない。ガーベッジコレクションによって空きブロックが用意されるまでは新規データを書き込めないため、ガーベッジコレクションが行われるとメモリデバイスの書き込み性能は低下する。したがって、蓄積容量に対する、ガーベッジコレクションやその他のハウスキーピング操作に使われる作業領域容量は、メモリデバイスの書き込み性能に影響をおよぼす。蓄積される一定量のデータに対して、典型的なメモリデバイスはその蓄積容量と作業領域容量とに基づく単一の書き込み性能レベルを有する。
前述した問題に対処するため、メモリデバイスの性能モードを制御する方法およびシステムを開示する。
本発明の第1の態様によると、メモリを制御する方法が開示される。この方法は、メモリにて入力を受信することを含む。この方法は、入力が第1の入力を備える場合に、第1の書き込み性能レベルと第1の蓄積容量とを提供する第1の動作モードにメモリを構成する。この方法は、入力が第2の入力を備える場合に、第2の書き込み性能レベルと第2の蓄積容量とを提供する第2の動作モードにメモリを構成する。第1の書き込み性能レベルは第2の書き込み性能レベルより低く、第1の蓄積容量は第2の蓄積容量より大きく、かつ第1の動作モードと第2の動作モードは1セル当たり同一数のビットをメモリに蓄積する。
この方法は、メモリが既にフォーマット済みである場合に、第2の動作モードにメモリを構成することを禁止することをさらに含む。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含む。第1および第2の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を含むことができる。第1の動作モードにメモリを構成することは、合計容量から第1の蓄積容量を引いたものに満たないかこれに等しい第1の作業領域容量を、メモリ内での内部使用のため、割り当てることを含むことができる。第2の動作モードにメモリを構成することは、合計容量から第2の蓄積容量を引いたものに満たないかこれに等しい第2の作業領域容量を、メモリ内での内部使用のため、割り当てることを含むことができる。第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドまたはハードウェア設定を含むことができる。ソフトウェアコマンドはホストから受信されうる。ハードウェア設定は、スイッチおよびジャンパのうちの少なくとも一方を含むことができる。受信された入力は、メモリの蓄積容量の一部分にのみ作用する。
本発明の別の態様において、メモリデバイスは、メモリと、メモリを制御するコントローラと、を備える。コントローラは、メモリにて入力を受信するように構成される。コントローラは、入力が第1の入力を備える場合に、第1の書き込み性能レベルと第1の蓄積容量とを提供する第1の動作モードにメモリを構成する。コントローラは、入力が第2の入力を備える場合に、第2の書き込み性能レベルと第2の蓄積容量とを提供する第2の動作モードにメモリを構成する。第1の書き込み性能レベルは第2の書き込み性能レベルより低く、第1の蓄積容量は第2の蓄積容量より大きく、かつ第1の動作モードと第2の動作モードは1セル当たり同一数のビットをメモリに蓄積する。
コントローラは、メモリが既にフォーマット済みである場合に、第2の動作モードにメモリを構成することを禁止するようにさらに構成されうる。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含むことができる。第1および第2の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を含むことができる。コントローラは、合計容量から第1の蓄積容量を引いたものに満たないかこれに等しい第1の作業領域容量を、メモリ内での内部使用のため、割り当てるようにさらに構成される。コントローラはまた、合計容量から第2の蓄積容量を引いたものに満たないかこれに等しい第2の作業領域容量を、メモリ内での内部使用のため、割り当てるように構成される。第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを含み、メモリデバイスは、ソフトウェアコマンドを受信するように配設されたインターフェイスを含むことができる。あるいは、メモリデバイスは、書き込み性能レベルと蓄積容量のうちの少なくとも一方を指定する入力を受信するハードウェアインターフェイスを含むことができる。ハードウェアインターフェイスは、スイッチまたはジャンパのうちの少なくとも一方を含むことができる。受信された入力は、メモリの蓄積容量の一部分にのみ作用する。
本発明のさらに別の態様において、メモリにて入力を受信することを含む、メモリを制御する方法が開示される。この方法は、入力が第1の入力を備える場合に、メモリを第1の比に構成し、かつ入力が第2の入力を備える場合に、メモリを第2の比に構成する。メモリは合計容量を含む。第1の比は第1の作業領域容量に対する第1の蓄積容量の比を含み、第1の作業領域容量は合計容量から第1の蓄積容量を引いたものに満たないかこれに等しい。第2の比は第2の作業領域容量に対する第2の蓄積容量の比を含み、第2の作業領域容量は合計容量から第2の蓄積容量を引いたものに満たないかこれに等しい。第1の比は第2の比より高い。この方法はさらに、メモリが既にフォーマット済みである場合に、メモリを第2の比に構成することを禁止することを含むことができる。入力を受信することは、メモリがフォーマットされる前またはメモリがフォーマットされているときに、入力を受信することを含むことができる。第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を含むことができる。入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドまたはハードウェア設定のうちの少なくとも一方を備えることができる。
不揮発性メモリを有するメモリシステムに接続されたホストのブロック図である。 図1のシステムの物理メモリ編成例を示す。 図2の物理メモリの一部分の拡大図を示す。 代表的なデータ管理方式において割り当て済みおよび空きクラスタの典型的パターンをブロックごとに示す。 クラスタブロック割り当ての状態図である。 ブロック内の割り当て済みおよび空きクラスタとホストからメモリシステムへ書き込まれるデータのパターン例を示す。 物理ブロックのフラッシュ操作の一例を示す。 図7のフラッシュ操作の後に続く、物理ブロックのフラッシュ操作の第2の例を示す。 メモリ容量の編成例を示す。 複数のパーティションがある場合のメモリ容量の編成例を示す。 一実施形態によりメモリデバイスの性能モードを設定する方法を示す流れ図である。
本発明の態様を実装するのに適した例示的なフラッシュメモリシステムを図1〜3に示す。他のメモリシステムも本発明の実装に適している。図1のホストシステム100はフラッシュメモリ102にデータを蓄積し、かつフラッシュメモリ102からデータを取り出す。フラッシュメモリは、例えばパーソナルコンピュータに設置されたソリッドステートディスク(SSD)ドライブの形をとり、ホスト内に埋め込まれることがある。あるいは、メモリ102はカードの形をとることがあり、図1に示された機械的・電気的コネクタの嵌合部分104および106を通じてホストへ取り外し可能な状態で接続されることもある。内蔵または埋め込みSSDドライブとして構成されたフラッシュメモリは図1の概略図に類似し、主な違いはメモリシステム102がホストの内部に位置することである。SSDドライブは単体モジュールの形をとり、回転磁気ディスクドライブの当座の代替品となることもある。
サンディスク コーポレイションによって製造されている32ギガバイトSSDは市販SSDドライブの一例である。市販のリムーバブルフラッシュメモリカードの例は、コンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、およびマイクロSDカードを含む。これらのカードは規格化された仕様により固有の機械的および/または電気的インターフェイスを有するが、それぞれのカードに含まれるフラッシュメモリシステムは類似している。これらのカードはいずれも本願の譲受人であるサンディスク コーポレイションから入手できる。サンディスク コーポレイションはまた、Cruzerという商標のもとで一連のフラッシュドライブを提供している。これは、ユニバーサルシリアルバス(USB)プラグを有する小型のハンドヘルド型メモリであり、このプラグをホストのUSB差込口に差し込むことによりホストと接続する。これらのメモリカードとフラッシュドライブはコントローラを内蔵し、このコントローラがホストシステムと連係し、ホストシステムの中にあるフラッシュメモリの動作を制御する。
SSD、メモリカード、およびフラッシュドライブを使用するホストシステムは数多く様々であり、デスクトップまたはラップトップならびに他のポータブルコンピュータ等のパーソナルコンピュータ(PC)、携帯電話機、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、およびポータブルオーディオプレイヤを含む。ホストは、ポータブルメモリカード用として1種類以上のメモリカードまたはフラッシュドライブに対応する内蔵差込口を含むこともあれば、メモリカードを差し込むアダプタを要することもある。メモリシステムは通常、独自のメモリコントローラとドライバを具備するが、メモリの接続先にあたるホストによって実行されるソフトウェアにより制御されるメモリのみのシステムもある。コントローラを具備するメモリシステムでは、特にホストの中に埋め込まれるメモリシステムでは、メモリと、コントローラと、ドライバとがしばしば単一の集積回路チップ上に形成される。
図1のホストシステム100は、メモリ102が関する限り、回路とソフトウェアとの組み合わせからなる2つの主要部分を有するものと見ることができる。2つの主要部分とは、アプリケーション部分108と、メモリ102と連係するドライバ部分110である。例えば、PCのアプリケーション部分108は、プロセッサで実行するワープロ、グラフィックス、制御等、一般的なアプリケーションソフトウェアを含むことができる。カメラや携帯電話機等、1組の機能を実行する専用ホストシステムのアプリケーション部分108は、カメラを操作して写真を撮影したり保存したりするソフトウェアや、携帯電話機を操作して電話をかけたり電話を受けたりするソフトウェア等を含む。
図1のメモリシステム102はフラッシュメモリ112と回路114とを含み、この回路はカードの接続先にあたるホストと連係しながらデータをやり取りし、かつメモリ112を制御する。コントローラ114は通常、データのプログラミングと読み出しのときにホスト100によって使用されるデータの論理アドレスとメモリ112の物理アドレスとを変換する。メモリシステム102はまた、ハードウェア設定116を構成し、メモリシステム102の書き込み性能レベルや蓄積容量等、メモリシステム102のパラメータを調整するスイッチまたはジャンパ118を含むことがある。
図2は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ112(図1)の編制を概念的に示すものである。メモリセルからなる4つのプレーンまたはサブアレイ202、204、206、および208は、1つの集積メモリセルチップ上にあるか、2つのチップ上にあるか(各チップ上に2プレーン)、4つの別々のチップ上にある。具体的な配置は以降の説明にとって重要ではない。もちろん、これとは異なるプレーン数が、例えば1、2、8、16以上のプレーンが、システムに存在することもある。プレーンは、これ以降消去ブロックと呼ぶ最小消去単位を形成するメモリセル集団にそれぞれ分割される。プレーン202、204、206、および208に位置する消去ブロック210、212、214、および216等、図2ではメモリセルの消去ブロックが矩形で表示されている。各プレーンには何十、何百もの消去ブロックが存在し得る。
前述したように、メモリセルの消去ブロックは消去の単位であって、物理的にまとめて消去できる最小数のメモリセルである。ただし、並列性を高めるためには、これよりも大きいメタブロック単位で消去ブロックを操作する。それぞれのプレーンから1つの消去ブロックが論理的にリンクされることによってメタブロックが形成される。4つの消去ブロック210、212、214、および216によって1つのメタブロック218が形成されていることを図に示す。通常は1メタブロック内の全てのセルがまとめて消去される。消去ブロック222、224、226、および228からなる第2のメタブロック220に見られるように、メタブロックを形成する消去ブロックの各プレーンにおける相対的位置は同じでなくてもよい。システム性能を高めるため、通常は全てのプレーンにまたがって延在するメタブロックが好ましいが、別々のプレーンにある1つ、2つ、または3つの消去ブロックのいずれかまたは全部から動的にメタブロックを形成しながらメモリシステムを操作することもできる。この場合は、1回のプログラミング操作で蓄積するデータ量にメタブロックのサイズをより精密に整合させることができる。
操作上の目的から、それぞれの消去ブロックはさらに図3に示すようにメモリセルページに分割される。例えば、ブロック210、212、214、および216のメモリセルはそれぞれ8つのページP0〜P7に分割されている。代わりに、16、32、またはそれ以上のメモリセルページが各ブロックに存在することもある。ページは消去ブロックの中でデータをプログラムしかつ読み出す単位であり、一度にプログラムされるかまたは読み出される最少量のデータを収容する。ただし、メモリシステム動作の並列性を高めるため、2つ以上の消去ブロックにあるページをメタページとして論理的にリンクすることもできる。図3には、4つの消去ブロック210、212、214、および216の各ブロックにつき1つの物理ページから形成されたメタページ302が示されている。例えば、メタページ302は4つの各ブロックのページP2を含んでいるが、メタページのページは必ずしもブロック内で同じ相対的位置を占めるとは限らない。メタページは最大プログラミング単位である。
メモリシステム102に使用できる代表的なデータ管理方式の概要を図4〜8に示す。ストレージアドレス再マッピング(storage address remapping) とも呼ばれるこのデータ管理方式は、ホストによって送信されるデータの論理ブロックアドレス(LBA)を取り、ホストからデータを受信する順にそれらを第2の論理アドレス空間あるいは物理アドレス空間に直接再マッピングする。各LBAは、ホストによってアドレスされる論理アドレス空間の最小単位であるセクタに対応する。ホストは通常、1つ以上のセクタからなるクラスタでデータを割り当てる。また、以降の説明で用語「ブロック」はフレキシブルな蓄積空間表現であり、個々の消去ブロックを指すこともあれば、前述したようにメタブロックという論理的に相互接続された1組の消去ブロックを指すこともある。用語「ブロック」がメタブロックを指す場合、対応するLBAの論理ブロックは、物理的メタブロック全体をアドレスするにあたって十分なサイズのアドレスブロックからなる。
図4は、メモリシステム102とフラッシュメモリ112における割り当て済みおよび空きクラスタの典型的なパターンをブロックごとに示すものである。ホストシステム100からメモリシステム102へ書き込まれるデータは、1つ以上のセクタからなるクラスタによってアドレスされ、ブロック内で管理される。書き込み操作を処理するにはブロックにデータを書き込み、データのLBA順序にかかわりなくデータの受信順に当該ブロックをデータで完全に埋めた後、次の使用可能なブロックへ進む。完了したブロックにデータを書き込むには、用済みデータと有効データを含む部分的に用済みのブロックに対するフラッシュ操作により未書き込み容量のみのブロックを作る。以降の説明では、有効データで完全に埋められたブロックをレッドブロック402と呼び、未書き込み容量のみのブロックをホワイトブロック404と呼び、有効(割り当て済み)データ406と用済み(割り当て解除済み)データ408とを含む部分的に用済みのブロックをピンクブロック410と呼ぶ。
例えば、データを書き込む唯一の場所としてホワイトブロック404を割り当てることができ、ホストからデータが提供される順に書き込みポインタの現在位置でホワイトブロック404のアドレスがデータに順次対応付けられる。1ブロックの蓄積アドレスが有効データに完全に割り当てられると、そのブロックはレッドブロック402として認識される。ホストによってファイルが削除または更新されると、レッドブロック402でいくつかのアドレスが有効データに割り当てられなくなり、そのブロックはピンクブロック410として認識される。
ホワイトブロック404は、ピンクブロック410から再配置ブロックへ有効データを移すことによって作ることができる。フラッシングと呼ばれるガーベッジコレクション操作である。再配置ブロックに未書き込み容量が存在しなければ、新たに割り当てられるホワイトブロック404が再配置ブロックとなる。前述したホストからの書き込み操作と同様に、フラッシュ操作における有効データの再配置によって、ひとまとまりのアドレスブロックが維持されるとは限らない。つまり、ピンクブロック410から目下の再配置ブロックへフラッシュされる有効データは、ピンクブロック内での順序に従って再配置ブロック内の連続位置にコピーされるが、再配置ブロックには、他の無関係のピンクブロックから移された別の有効データが入ることがある。ピンクブロック410をホワイトブロック404に変えるには、バックグラウンド操作またはフォアグラウンド操作としてフラッシュ操作を実行する。ピンクブロックのバックグラウンドフラッシュはホストインターフェイスがアイドル状態のときに作動し、ホストインターフェイスが活動すると停止される。ピンクブロックのフォアグラウンドフラッシュはホストインターフェイスが活動しているときに作動し、書き込みコマンドが完了するまでデータ書き込み操作と物理ブロックのフラッシュ操作を交互に行う。
フラッシュ操作にあたっては、ピンクブロック410の特性に従ってピンクブロックが選ばれる。有効データのアドレスが少ないほど、ピンクブロックをフラッシュするときに移動の必要があるデータが少なくなるため、一実施例において、有効データが最も少ない(図4で網掛けされたクラスタが最も少ない)ピンクブロック410が選ばれる。この実施例では、ホストによって行われる書き込み操作、読み出し操作、および/または消去操作に応じてピンクブロック410が選ばれるのではない。図4の例では、有効データのアドレスが少ないピンクブロックBがピンクブロックAより優先的に選ばれる。このようにフラッシュブロックとして選ばれたピンクブロックでは、ホストによるファイルの削除または更新により割り当てが解除されたデータの量が最大となるため、有効データの再配置を最小限に抑えてブロックフラッシュ操作を実行できる。フラッシュ操作にあたっては、特定のピンクブロックにおけるさらなる消去または更新の算出確率等、他のパラメータに基づきピンクブロックを選ぶこともできる。
フラッシングアルゴリズムの一実施例において、メモリシステム102によって管理されるブロック情報テーブル(BIT)に基づきフラッシュ操作のピンクブロックが選択される。BITはメモリシステム102によって作成され、フラッシュメモリ112に蓄積される。BITはブロック種別(ピンクブロック、ホワイトブロック等)のリストを収容するほか、ピンクブロックについては、各ピンクブロックのLBAランデータを蓄積する。メモリシステム102はBITにあるピンクブロックのLBAラン情報を取り、蓄積アドレステーブル(SAT)の中でLBAランに関連する有効データの量を調べる。SATはメモリシステムによって管理されるもうひとつのテーブルであり、メモリシステムの蓄積アドレスに対するホスト割り当てLBAアドレスの関係を追跡する。
図5は、フラッシュアルゴリズムの一実施形態によるブロック割り当ての状態図である。前述したように、アドレス空間はブロック単位で割り当てられ、1つのブロックが一杯になってから別のクラスタブロックを割り当てる。まずは、ホストからのデータが書き込まれる目下の書き込みブロックとしてホワイトブロック404を割り当てる(ステップ502)。ホストからのデータは、データの受信時間に従って順次書き込みブロックへ書き込まれる。目下の書き込みブロックで最後のページが埋まると目下の書き込みブロックがレッドブロックになり(ステップ504)、ホワイトブロックのプールから新たな書き込みブロックが割り当てられる。なお、目下の書き込みブロックが一杯になる前に目下の書き込みブロックの中に既に用済みとなっているページがある場合は、目下の書き込みブロックからピンクブロックへ直接遷移することもある。明瞭にするためにこの遷移を図に示していないが、書き込みブロックからピクセルブロックへ至る矢印により表すこともできる。
レッドブロックの中で1つ以上のページがファイルの削除または更新により用済みになると、レッドブロックはピンクブロックになる(ステップ506)。メモリシステムは、ホワイトブロックの量あるいは未書き込み容量を少なくとも部分的には含むメモリブロックの量を含む、使用可能なメモリ量を検出できる。さらなるホワイトブロックが必要な場合は、フラッシュ操作でピンクブロックから使用可能なメモリへ有効データを移し、ピンクブロックをホワイトブロックにする(ステップ508)。ピンクブロックをフラッシュするには、再配置ブロックに指定されたホワイトブロックへピンクブロックの有効データを順次移していく(ステップ508および510)。一杯になった再配置ブロックはレッドブロックになる(ステップ512)。書き込みブロックを参照し前述したように、再配置ブロックの中に既に用済みとなっているページがある場合は、再配置ブロックからピンクブロックへ直接遷移することもある。明瞭にするためにこの遷移を図に示していないが、図5で再配置ブロックからピンクブロックへ至る矢印により表すこともできる。
図6は、メモリシステムにおける有効データ(網掛けされた正方形)と、用済みデータ(ピンクブロックA〜C 410で網掛けされていない正方形)と、未書き込み容量(書き込みブロック602とホワイトブロック404で網掛けされていない正方形)のパターン例を示すものである。図6〜8に示された正方形からなるブロックの網掛けされた正方形または網掛けされていない正方形は、消去ブロックまたはメタブロックにおけるアドレスのサブユニットを表す。図を簡略化するために図に示されたアドレスのサブユニットはサイズが等しいが、同じサイズでもよく、あるいは異なるサイズでもよい。
図6の物理ブロックで、用済みデータ408は基本的にランダムな位置に散らばっている。メモリデバイスへ書き込むデータがホストにある場合は、書き込みブロック602に順次書き込まれ、書き込みブロック602の連続する位置が埋められていく。書き込みブロック602内の位置は必ずしも1回の操作で埋まらない。書き込みブロック602が埋まると、次の書き込みブロック602としてホワイトブロック404が割り当てられる。
図6〜8には物理ブロックのフラッシュ操作の図が見られる。再配置ブロック702としてホワイトブロック404を指定でき、選択されたピンクブロックからここにデータをフラッシュすることによりさらなるホワイトブロックが作られる。データは、フラッシュブロックをホワイトブラック404へ移すため、フラッシュブロックの中で有効データを含む位置(この例では図6のピンクブロックAの網掛けされた正方形)から、再配置ブロック702の中で連続するクラスタ(ホワイトブロック404で網掛けされていない正方形として図に示されている)の使用可能な容量へ移される。図8に示されているように、残りのピンクブロックから次のフラッシュブロック(図6のピンクブロックB)が特定されうる。ここでも有効データの量が最も少ないピンクブロック410がフラッシュブロックとして指定され、選択されたピンクブロック410の有効データは再配置ブロックの空いている連続位置に移される。
書き込みブロックとして指定されたホワイトブロックの消費を補償できるレートでホワイトブロックを作るため、ピンクブロックに対するフラッシュ操作はバックグラウンド操作として実行できる。必要に応じてさらなるホワイトブロックを作るため、フラッシュ操作をフォアグラウンド操作として実行することもできる。図6〜8の例は、ホストからの新規データとピンクブロックから再配置されるデータとで書き込みブロックと再配置ブロックが別々に管理される様子を示している。別の実施例では、新規データと再配置データが1つの書き込みブロックへ移されるため、書き込みブロックと再配置ブロックを区別する必要はない。また、ホストLBAデータの再マッピングを追跡するため、前述した蓄積アドレステーブル(SAT)が生成されメモリシステム102に蓄積される。蓄積アドレステーブルには、ホストによって物理蓄積アドレスへマッピングされるホストLBAアドレスが記録される。
メモリシステム102のメモリ容量の編成例を図9に示す。メモリシステム102の合計容量902は蓄積容量904と作業領域容量906とを含む。蓄積容量904はデータ蓄積に使用できる。ホストシステム100はメモリシステム102のデータ蓄積領域でデータを読み書きする。作業領域容量906は、ガーベッジコレクション空間および/または着信データのバッファとして使用できる。作業領域容量906は前述したようにガーベッジコレクション空間として使用され、必要に応じてホワイトブロックを作るためにピンクブロックから有効データがフラッシュされる。作業領域容量906は、合計容量902から蓄積容量904を引いたものに満たないかこれに等しい。
蓄積容量904と作業領域容量906とによる合計容量902の分割は必ずしも永久に固定されたものではなく、物理的分割ではなく論理的分割である。ある1つのブロックが一時点に蓄積容量904に含まれ、かつ別の時点に作業領域容量906に含まれることもある。例えば、前述したように、作業領域容量906のホワイトブロックであったブロックが蓄積容量904のレッドブロックになることもある。
作業領域容量906は、メモリシステム102のユーザにとって使用可能な蓄積容量904の最大量を合計容量902から引いたものに等しいか、若干これを下回る。例えば、メモリシステム102がそれぞれ1MBのブロックを4,096ブロック含み(合計物理容量は4,096MB)、ユーザが使用できる蓄積容量904が4,000MBなら、作業領域容量906は96MBである。この例で、製造または保守データの記録等、いくつかのブロックが他の機能に使われるなら、作業領域容量906は96MBを若干下回ることになる。
蓄積容量904はユーザにとって使用可能な最大許容容量を指し、必ずしも一時点における瞬間的な使用可能な容量を指さない。メモリシステム102は、使われていない蓄積容量を作業領域容量として使用することにより、現在使われていない蓄積容量を活用し性能を向上させることができる。例えば、合計物理容量が4,096MBのデバイスでユーザが3,000MB蓄積した場合、メモリシステム102はその時点で1,096MBを作業領域として使用できる。ただし、蓄積容量904は常に4,000MBであり、瞬間的なメモリ使用の変動にかかわりなく作業領域容量906は常に高々96MBである。
合計容量902に対する蓄積容量904の量はメモリシステム102の書き込み性能に影響をおよぼすことがある。書き込み性能はメモリシステム102のバースト書き込み速度および/またはサステインド書き込み速度を含むことがある。蓄積容量904が増加すると使用可能な作業領域容量906は少なくなる。着信データが書き込まれる使用可能なホワイトブロックを確保するため、より多くのガーベッジコレクション操作が必要となる。ガーベッジコレクションが行われるブロックを検出する際、メモリシステム102は通常、移動しなければならない有効データの量を減らすため、有効ページ数が少ないブロックを見つけようとする。蓄積データのランダムなアドレシングのため、そして着信データがデータのアドレスにかかわりなく順次ブロックに書き込まれるため、作業領域容量906が比較的小さいとブロックの有効ページ数が多くなり、用済みページ数が少なくなる可能性がある。この場合は有効ページを移すために行われる書き込み操作の回数が多くなる。
逆に、蓄積容量904が減少すると使用可能な作業領域容量906が多くなり、ガーベッジコレクション操作の回数は減る。ガーベッジコレクションが行われるブロックでは有効ページ数が少なくなり、用済みページ数が多くなる。このため使用可能な作業領域容量906が多ければ、有効ページを移すために行われる書き込み操作の回数は減る。
非限定的な例として、メモリシステム102の合計容量902が100GBで、蓄積容量904は99GBに設定され、作業領域容量906は1GBに設定されると仮定する。蓄積容量904が一杯になっていないときのメモリシステム102の純書き込み性能を100MB/秒と仮定する。ただし、書き込み性能は、蓄積容量904が埋められていくにつれ変化する。蓄積容量904が一杯で、書き込むべき着信データが受信されると、着信データを蓄積するためにブロックに対してガーベッジコレクションを行う必要がある。
合計容量902に対して作業領域容量906が少ないため、ブロック内の用済みページ数も少なくなることが見込まれる。例えば、ブロック内の128ページ中10ページが用済みページとなる。蓄積容量904がほぼ一杯のときには全てのブロックが使用中となり、使用できるホワイトブロックがなくなるため、用済みページ数がこのような数になることが見込まれる。着信入力データが論理アドレス空間でランダムにアドレスされる場合は特に、ピンクブロックの用済みページがごく僅かになる可能性は高い。
用済みページが10ページあるブロックに対してガーベッジコレクションを行う場合は、残りの118の有効ページを移す必要がある。したがって、着信データを蓄積するには合計119回の書き込み操作が必要となる。つまり、有効ページを移してホワイトブロックを作るための書き込み操作118回と、ホワイトブロックに着信データを蓄積するための書き込み操作1回が必要となる。メモリシステム102の実効書き込み性能は、純書き込み性能(100MB/秒)を着信データの蓄積にかかる書き込み操作数(119)で割ったものに等しく、この例では0.84MB/秒になる。
対照的に、合計容量902に対する蓄積容量904の量が少ないと、メモリシステム102の実効書き込み性能は向上しうる。ここでも合計容量902は100GB、蓄積容量904は50GB、作業領域容量906は50GBと仮定する。前の例と同様に、蓄積容量904が一杯で、書き込むべき着信データが受信されると、着信データを蓄積するためにブロックに対してガーベッジコレクションを行う必要がある。この例では、合計容量902に対して作業領域容量906が多いから、ブロック内の用済みページ数は前の例より多くなることが見込まれる。例えば、ブロック内の128ページ中74ページが用済みページとなる。この例で、蓄積容量904が一杯になると合計容量は50%フルになるから、用済みページ数がこのような数になることが見込まれる。この場合、ピンクブロックは平均で64の有効ページと64の用済みページにより50%フルになる。前の例を続け、ガーベッジコレクションが行われる可能性が最も高いピンクブロックの用済みページ数は平均64ページより10ページ多く、74の用済みページとなる。
用済みページが74ページあるブロックに対してガーベッジコレクションを行う場合は、残りの54の有効ページを移す必要がある。したがって、着信データを蓄積するには合計55回の書き込み操作が必要となる。つまり、有効ページを移してホワイトブロックを作るための書き込み操作54回と、ホワイトブロックに着信データを蓄積するための書き込み操作1回が必要となる。この例の実効書き込み性能は、純書き込み性能(100MB/秒)を着信データの蓄積にかかる55回の書き込み操作数で割ったものに等しく、1.82MB/秒になる。作業領域容量906の増加により、この例の実効書き込み性能は前の例より向上する。
メモリシステム102がアイドル状態のときにガーベッジコレクションやその他のハウスキーピング操作を実行する場合は、大きい作業領域容量906による実効書き込み性能をさらに向上させることができる。前述した部分的に用済みのブロックに対するバックグラウンドフラッシュ操作は、着信データの書き込みに使用できるホワイトブロックを大量に作る。書き込みに使用できるブロックが既にあるなら、新規データが着信するときに必ずしもガーベッジコレクションを行う必要はない。この場合、アイドル状態のときに行われるバックグラウンドフラッシュ操作によって片付けられたホワイトブロックがある限りは、実効書き込み性能は純書き込み性能に接近する。大きい作業領域容量906には、高速バースト性能によりサポートされるデータバーストの長さを増加させる効果もある。
蓄積容量904と書き込み性能レベルはメモリシステム102への入力により設定することができる。あるいは、作業領域容量906、書き込み性能レベル、および/または作業領域容量906に対する蓄積容量904の比を入力により設定することができる。この入力はソフトウェアコマンドかあるいはハードウェア設定である。蓄積容量、作業領域容量、書き込み性能レベル、および/または比を異なる設定に構成することにより、書き込み性能と蓄積容量904とのトレードオフにより所望の書き込み性能レベルを達成できる。いくつもの異なる書き込み性能レベルを使用できる。蓄積容量、作業領域容量、書き込み性能レベル、および/または比を設定するソフトウェアコマンドは、ホスト100からメモリシステム102へ送信されるコマンドを含む。ハードウェア設定116は、スイッチ、ジャンパ、または他の適切なコントロールを含む。
所望の設定を含む入力が受信された後には、メモリシステム102のコントローラが所望の設定に応じて蓄積可能な最大データ量に蓄積容量904を構成しうる。コントローラがホストに使用を許可する論理アドレス空間を所望の設定に整合されるように設定でき、コントローラは有効論理アドレス空間以外の論理アドレスをホストが使用することを禁止する。
ソフトウェアまたはハードウェアによる蓄積容量、作業領域容量、書き込み性能レベル、および/または比の設定は、メモリシステム102をフォーマットするときおよび/またはフォーマットの後に、例えばメモリシステム102の正常動作中に実行できる。一実施形態では、正常動作中に設定を行う場合に蓄積容量904を現在の容量から増加させることだけを許可する。この場合は正常動作中に蓄積容量904を減少させる試みが阻止され、以前の蓄積容量904が維持され、低い蓄積容量には設定されない。この場合、メモリシステム102のコントローラは蓄積容量904を減少させる試みを無視する。こうすることで、メモリシステム102の蓄積容量904部分に既に書き込まれているデータが失われたり壊れたりすることはない。
メモリシステム102は、一実施形態において、蓄積容量、作業領域容量、書き込み性能レベル、および/または比の設定にかかわりなく1セル当たり同一数のビットを蓄積する。例えば、メモリシステム102は、1セル当たり単一ビットのデータまたは1セル当たり複数ビットのデータをそれぞれ収容できるシングルレベルセル(SLC)またはマルチレベルセル(MLC)を含むことがある。ただし、蓄積容量904および作業領域容量906を変えることによって一定の書き込み性能レベルを持つようにメモリシステム102を構成することは、セルの蓄積ビット数を変えることに依存しない。
メモリシステム102のパーティションが複数ある場合のメモリ容量の編成例を図10に示す。それぞれのパーティションには合計容量1004および1006があり、それぞれの合計容量1004および1006には蓄積容量1008および1012と作業領域容量1010および1014とがある。ホストシステム100は、蓄積容量1008および1012を持つデータ蓄積領域の一方または両方でデータを読み書きする。作業領域容量1010および1014は、ガーベッジコレクション空間および/または書き込まれる着信データのバッファとして使用できる。メモリシステム102には、合計容量、蓄積容量、および作業領域容量を持つパーティションをいくらでも含めることができる。
合計容量1004および1006に対する蓄積容量1008および1012はパーティションごとに設定できる。既に述べたように、この設定はメモリシステム102への入力によって、例えばソフトウェアコマンドによって、あるいはハードウェア設定によって構成できる。各パーティションの蓄積容量1008および1012は同じか、さもなければ異なり、各パーティションの作業領域容量1010および1014は同じか、さもなければ異なり、パーティションの書き込み性能レベルは、蓄積容量1008および1012と作業領域容量1010および1014とに応じて変化する。パーティションが1つの実施形態と同様に、それぞれのパーティションで蓄積容量1008および1002が増加すると、使用可能な作業領域容量1010および1014は少なくなる。データが書き込まれるホワイトブロックを確保するには、より多くのガーベッジコレクション操作が必要となる。逆に、蓄積容量1008および1012が減少すると、使用可能な作業領域容量1010および1014が多くなり、ガーベッジコレクション操作の回数は減る。使用可能な作業領域容量1010および1014が多ければ、有効ページを移すために行われる書き込み操作の回数は減る。
蓄積容量はパーティションごとに異なることがあるため、書き込み性能レベルはパーティションによって異なることがある。このため、着信データは、所望の書き込み性能に応じて一方のパーティションまたはもう一方のパーティションへ書き込まれる。例えば、着信データが至極ランダムにアドレスされたデータを含む場合は、作業領域容量の増加により蓄積容量が小さいパーティションへ高い書き込み性能レベルにより着信データを書き込むことができる。各パーティションは同じ合計容量を有する必要がないため、高性能の比較的小さいパーティションと低性能の比較的大きいパーティションを作ることができる。このようにしてメモリシステムは至極ランダムなアドレスによる入力データを受信でき、蓄積容量全体に対して増加された作業領域容量を必要としない。
図11は、一実施形態によりメモリデバイスの書き込み性能モードを設定する方法1100を示す流れ図である。書き込み性能モードはメモリデバイスの蓄積容量に対応させることができる。作業領域容量はメモリデバイスの合計容量の残りの部分を構成する。蓄積容量はデータを蓄積するために使用でき、作業領域容量はガーベッジコレクションやその他のハウスキーピング操作に使用できる。書き込み性能モードはメモリデバイスのバースト書き込み速度かサステインド書き込み速度に対応させることができる。蓄積容量が増加するとメモリデバイスの書き込み性能は低下し、蓄積容量が減少するとメモリデバイスの書き込み性能は向上する。
ステップ1102では、メモリが、所望の蓄積容量、作業領域容量、書き込み性能レベル、および/またはメモリデバイスの作業領域容量に対する蓄積容量の比を設定する入力を受信する。この入力は、ホスト上で実行するアプリケーションからのソフトウェアコマンドとして、あるいは例えばジャンパまたはスイッチ設定等のハードウェア設定として受信される。ステップ1104ではメモリデバイスがフォーマット済みか否かを判断する。メモリデバイスがフォーマット済みか否かによって蓄積容量を増加および/または減少させるか否かが決まる。メモリがフォーマット済みなら、方法1100はステップ1106へ続く。
ステップ1106では、ステップ1102で受信した入力がメモリデバイスの蓄積容量の減少を試みるものであるか否かを判断する。入力が蓄積容量の減少を試みるものなら、方法1100は完了する。蓄積容量により指定されたデータ蓄積領域には既にデータが蓄積されているかもしれないため、データの損失や破壊を防ぐため、メモリデバイスがフォーマットされた後には蓄積容量を減少させるべきではない。ただし、ステップ1102で受信した入力がステップ1106において蓄積容量の増加または維持を試みるものなら、ステップ1108で所望の蓄積容量が設定され、方法1100は完了する。ステップ1104でメモリがフォーマットされていなければ、ステップ1108で所望の蓄積容量が設定され、方法1100は完了する。メモリが、蓄積容量、作業領域容量、または性能設定を各々有する複数のパーティションを含む場合は、パーティションごとに方法1100を実行できる。
メモリデバイスの書き込み性能モードを設定するシステムおよび方法を開示した。書き込み性能モードは、メモリデバイスの合計容量に対するメモリデバイスの蓄積容量を変えることによって設定される。ソフトウェアコマンドまたはハードウェア設定を受信することにより、所望の書き込み性能モードを設定できる。蓄積容量は、メモリデバイスがフォーマット済みか否かに応じて変えることができる。蓄積容量が減少するとメモリデバイスの作業領域容量が増加し、書き込み性能は向上する。逆に、蓄積容量が増加すると作業領域容量が減少し、書き込み性能は低下する。

Claims (24)

  1. メモリを制御する方法であって、
    ユーザにとって使用可能なメモリ内の最大容量を定義する蓄積容量とメモリ内での内部使用のために取っておかれるメモリ容量を定義する作業領域容量とを有する前記メモリにて入力を受信するステップと、
    前記入力が第1の入力を備える場合に、第1の書き込み性能レベルと第1の蓄積容量として構成された蓄積容量とを提供する第1の動作モードに前記メモリを構成するステップと、
    前記入力が第2の入力を備える場合に、第2の書き込み性能レベルと第2の蓄積容量として構成された蓄積容量とを提供する第2の動作モードに前記メモリを構成するステップと、を含み、
    前記第1の書き込み性能レベルは、前記第2の書き込み性能レベルより低く、
    前記第1の蓄積容量は、前記第2の蓄積容量より大きく、
    前記第1の動作モードと前記第2の動作モードは、1セル当たり同一数のビットを前記メモリに蓄積し、
    前記第1の動作モードの第1の蓄積容量に関連する第1の作業領域容量は、前記第2の動作モードの第2の蓄積容量に関連する第2の作業領域容量より少なく、
    前記第1の書き込み性能レベルは第1の書き込み速度であり、前記第2の書き込み性能レベルは第2の書き込み速度であり、
    前記第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備える方法。
  2. 請求項1記載の方法において、
    前記メモリが既にフォーマット済みである場合に、前記第2の動作モードに前記メモリを構成することを禁止するステップをさらに含む方法。
  3. 請求項1記載の方法において、
    前記入力を受信するステップは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、入力を受信することを含む方法。
  4. 請求項1記載の方法において、
    前記第1および第2の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を備える方法。
  5. 請求項1記載の方法において、
    前記第1の動作モードに前記メモリを構成するステップは、合計容量から前記第1の蓄積容量を引いたものに満たないかこれに等しい第1の作業領域容量のための容量を割り当てることを含み、
    前記第2の動作モードに前記メモリを構成するステップは、合計容量から前記第2の蓄積容量を引いたものに満たないかこれに等しい第2の作業領域容量のための容量を割り当てることを含む方法。
  6. 請求項1記載の方法において、
    前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを備える方法。
  7. 請求項6記載の方法において、
    前記ソフトウェアコマンドは、ホストから受信される方法。
  8. 請求項1記載の方法において、
    前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するハードウェア設定を備える方法。
  9. 請求項8記載の方法において、
    前記ハードウェア設定は、スイッチおよびジャンパのうちの少なくとも一方を備える方法。
  10. 請求項1記載の方法において、
    前記入力は、前記メモリの蓄積容量の一部分にのみ作用する方法。
  11. メモリデバイスであって、
    ユーザにとって使用可能なメモリ内の最大容量を定義する蓄積容量とメモリ内での内部使用のために取っておかれるメモリ容量を定義する作業領域容量とを有するメモリと、
    前記メモリを制御するコントローラであって、
    前記メモリにて入力を受信し、
    前記入力が第1の入力を備える場合に、第1の書き込み性能レベルと第1の蓄積容量として構成された蓄積容量とを提供する第1の動作モードに前記メモリを構成し、かつ
    前記入力が第2の入力を備える場合に、第2の書き込み性能レベルと第2の蓄積容量として構成された蓄積容量とを提供する第2の動作モードに前記メモリを構成するように構成されたコントローラと、を備え、
    前記第1の書き込み性能レベルは、前記第2の書き込み性能レベルより低く、
    前記第1の蓄積容量は、前記第2の蓄積容量より大きく、
    前記第1の動作モードと前記第2の動作モードは、1セル当たり同一数のビットを前記メモリに蓄積し、
    前記第1の動作モードの第1の蓄積容量に関連する第1の作業領域容量は、前記第2の動作モードの第2の蓄積容量に関連する第2の作業領域容量より少なく、
    前記第1の書き込み性能レベルは第1の書き込み速度であり、前記第2の書き込み性能レベルは第2の書き込み速度であり、
    前記第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備えるメモリデバイス。
  12. 請求項11記載のメモリデバイスにおいて、
    前記コントローラは、前記メモリが既にフォーマット済みである場合に、前記第2の動作モードに前記メモリを構成することを禁止するようにさらに構成されるメモリデバイス。
  13. 請求項11記載のメモリデバイスにおいて、
    前記入力を受信することは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、入力を受信することを含むメモリデバイス。
  14. 請求項11記載のメモリデバイスにおいて、
    前記第1および第2の書き込み性能レベルは、バースト書き込み速度またはサステインド書き込み速度のうちの少なくとも一方を備えるメモリデバイス。
  15. 請求項11記載のメモリデバイスにおいて、
    前記コントローラは、前記第1の動作モードにおいて、前記メモリデバイスの合計容量から前記第1の蓄積容量を引いたものに満たないかこれに等しい第1の作業領域容量のための容量を割り当てるようにさらに構成され、
    前記コントローラは、前記第2の動作モードにおいて、前記メモリデバイスの合計容量から前記第2の蓄積容量を引いたものに満たないかこれに等しい第2の作業領域容量のための容量を割り当てるようにさらに構成されるメモリデバイス。
  16. 請求項11記載のメモリデバイスにおいて、
    前記入力は、書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するソフトウェアコマンドを備えるメモリデバイス。
  17. 請求項16記載のメモリデバイスにおいて、
    前記メモリデバイスは、前記ソフトウェアコマンドを受信するように配設されたインターフェイスを備えるメモリデバイス。
  18. 請求項11記載のメモリデバイスにおいて、
    前記メモリデバイスは入力を受信するハードウェアインターフェイスを備え、前記入力は書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定するメモリデバイス。
  19. 請求項18記載のメモリデバイスにおいて、
    前記ハードウェアインターフェイスは、スイッチまたはジャンパのうちの少なくとも一方を備えるメモリデバイス。
  20. 請求項11記載のメモリデバイスにおいて、
    前記入力は、前記メモリの蓄積容量の一部分にのみ作用するメモリデバイス。
  21. メモリを制御する方法であって、
    メモリとやり取りするコントローラを有するメモリデバイスにて、前記コントローラは、
    書き込み性能レベルまたは蓄積容量のうちの少なくとも一方を指定する入力を受信するステップと、
    前記入力が第1の入力を備える場合に、前記メモリを第1の比に構成するステップと、
    前記入力が第2の入力を備える場合に、前記メモリを第2の比に構成するステップと、を含み、
    前記メモリは、合計容量を備え、
    前記第1の比は第1の作業領域容量に対する第1の蓄積容量の比を備え、前記第1の蓄積容量はユーザにとってメモリデバイスにて使用可能なメモリ内の第1の蓄積容量を定義し、前記第1の作業領域容量は合計容量から前記第1の蓄積容量を引いたものに満たないかこれに等しく、
    前記第2の比は第2の作業領域容量に対する第2の蓄積容量の比を備え、前記第2の蓄積容量はユーザにとってメモリデバイスにて使用可能なメモリ内の第2の蓄積容量を定義し、前記第2の作業領域容量は合計容量から前記第2の蓄積容量を引いたものに満たないかこれに等しく、
    前記第1の比は、前記第2の比より高く、
    前記第1の比は、前記第2の比よりも高い書き込み性能レベルに対応し、
    前記第2の比よりも高い書き込み性能レベルは、高い書き込み速度に対応し、
    前記第1および第2の作業領域容量は、バッファまたはガーベッジコレクション空間のうちの少なくとも一方を備える方法。
  22. 請求項21記載の方法において、
    前記メモリが既にフォーマット済みである場合に、前記メモリを前記第2の比に構成することを禁止するステップをさらに含む方法。
  23. 請求項21記載の方法において、
    前記入力を受信するステップは、前記メモリがフォーマットされる前または前記メモリがフォーマットされているときに、前記入力を受信することを含む方法。
  24. 請求項21記載の方法において、
    前記入力は、ソフトウェアコマンドまたはハードウェア設定のうちの少なくとも一方を備える方法。
JP2011524469A 2008-08-26 2009-08-21 多性能モードメモリシステム Expired - Fee Related JP5580311B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/198,635 2008-08-26
US12/198,635 US20100057976A1 (en) 2008-08-26 2008-08-26 Multiple performance mode memory system
PCT/IB2009/006615 WO2010023529A1 (en) 2008-08-26 2009-08-21 Multiple performance mode memory system

Publications (3)

Publication Number Publication Date
JP2012501027A JP2012501027A (ja) 2012-01-12
JP2012501027A5 JP2012501027A5 (ja) 2012-09-27
JP5580311B2 true JP5580311B2 (ja) 2014-08-27

Family

ID=41279287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011524469A Expired - Fee Related JP5580311B2 (ja) 2008-08-26 2009-08-21 多性能モードメモリシステム

Country Status (5)

Country Link
US (1) US20100057976A1 (ja)
EP (1) EP2319047B1 (ja)
JP (1) JP5580311B2 (ja)
KR (1) KR20110081150A (ja)
WO (1) WO2010023529A1 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
KR101375955B1 (ko) 2006-05-12 2014-03-18 애플 인크. 메모리 디바이스 내의 왜곡 추정 및 상쇄
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
CN101601094B (zh) * 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) * 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US20110003289A1 (en) * 2009-03-17 2011-01-06 University Of Washington Method for detection of pre-neoplastic fields as a cancer biomarker in ulcerative colitis
US8161228B2 (en) * 2009-03-19 2012-04-17 Samsung Electronics Co., Ltd. Apparatus and method for optimized NAND flash memory management for devices with limited resources
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8447922B2 (en) * 2009-07-16 2013-05-21 Panasonic Corporation Memory controller, nonvolatile storage device, accessing device, and nonvolatile storage system
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
CN102446071B (zh) * 2010-09-30 2014-10-08 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
US8635407B2 (en) 2011-09-30 2014-01-21 International Business Machines Corporation Direct memory address for solid-state drives
US8539007B2 (en) 2011-10-17 2013-09-17 International Business Machines Corporation Efficient garbage collection in a compressed journal file
KR101867282B1 (ko) * 2011-11-07 2018-06-18 삼성전자주식회사 비휘발성 메모리 장치의 가비지 컬렉션 방법
KR20130070251A (ko) * 2011-12-19 2013-06-27 에스케이하이닉스 주식회사 브릿지 칩셋 및 그것을 포함하는 데이터 저장 시스템
US9459810B2 (en) * 2013-12-30 2016-10-04 Sandisk Technologies Llc Storage module and method for configuring command attributes
US9348518B2 (en) 2014-07-02 2016-05-24 International Business Machines Corporation Buffered automated flash controller connected directly to processor memory bus
US9542284B2 (en) 2014-08-06 2017-01-10 International Business Machines Corporation Buffered automated flash controller connected directly to processor memory bus
CN105739911B (zh) * 2014-12-12 2018-11-06 华为技术有限公司 存储数据的分配方法、装置以及存储系统
KR102602694B1 (ko) * 2015-12-15 2023-11-15 삼성전자주식회사 스토리지 컨트롤러의 작동 방법과 이를 포함하는 스토리지 장치의 작동 방법
JP6517685B2 (ja) 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6517684B2 (ja) * 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
US9934151B2 (en) 2016-06-28 2018-04-03 Dell Products, Lp System and method for dynamic optimization for burst and sustained performance in solid state drives
US10521119B1 (en) * 2017-09-22 2019-12-31 EMC IP Holding Company LLC Hybrid copying garbage collector
CN111694506A (zh) * 2019-03-15 2020-09-22 杭州海康威视数字技术股份有限公司 磁盘总容量确定方法、装置、磁盘及机器可读存储介质
JP7401193B2 (ja) * 2019-04-17 2023-12-19 キヤノン株式会社 情報処理装置及びその制御方法並びにプログラム
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015944A (ja) * 2001-07-04 2003-01-17 Kyocera 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
US6807106B2 (en) * 2001-12-14 2004-10-19 Sandisk Corporation Hybrid density memory card
US7058764B2 (en) * 2003-04-14 2006-06-06 Hewlett-Packard Development Company, L.P. Method of adaptive cache partitioning to increase host I/O performance
US8082382B2 (en) * 2004-06-04 2011-12-20 Micron Technology, Inc. Memory device with user configurable density/performance
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
JP2009238112A (ja) * 2008-03-28 2009-10-15 Panasonic Corp 半導体集積回路

Also Published As

Publication number Publication date
EP2319047A1 (en) 2011-05-11
WO2010023529A1 (en) 2010-03-04
JP2012501027A (ja) 2012-01-12
US20100057976A1 (en) 2010-03-04
KR20110081150A (ko) 2011-07-13
EP2319047B1 (en) 2014-09-24

Similar Documents

Publication Publication Date Title
JP5580311B2 (ja) 多性能モードメモリシステム
US8429352B2 (en) Method and system for memory block flushing
US9390004B2 (en) Hybrid memory management
US8452940B2 (en) Optimized memory management for random and sequential data writing
US8205063B2 (en) Dynamic mapping of logical ranges to write blocks
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8239639B2 (en) Method and apparatus for providing data type and host file information to a mass storage system
US20150363131A1 (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
US20090271562A1 (en) Method and system for storage address re-mapping for a multi-bank memory device
US20070033323A1 (en) Interfacing systems operating through a logical address space and on a direct data file basis
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
WO2010111071A2 (en) Solid state drive with improved read variability
JP5266250B2 (ja) 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
US20220365679A1 (en) Storage System and Method for Using Read and Write Buffers in a Memory
US8769217B2 (en) Methods and apparatus for passing information to a host system to suggest logical locations to allocate to a file
JP2010515163A (ja) ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理
CN117616377A (zh) 跨zns ssd中的超级设备的超级块分配

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120810

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140319

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140327

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140422

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140710

R150 Certificate of patent or registration of utility model

Ref document number: 5580311

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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