JP5089385B2 - フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換 - Google Patents

フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換 Download PDF

Info

Publication number
JP5089385B2
JP5089385B2 JP2007523233A JP2007523233A JP5089385B2 JP 5089385 B2 JP5089385 B2 JP 5089385B2 JP 2007523233 A JP2007523233 A JP 2007523233A JP 2007523233 A JP2007523233 A JP 2007523233A JP 5089385 B2 JP5089385 B2 JP 5089385B2
Authority
JP
Japan
Prior art keywords
virtual
physical
address
flash memory
address space
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
JP2007523233A
Other languages
English (en)
Other versions
JP2008508589A (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 JP2008508589A publication Critical patent/JP2008508589A/ja
Application granted granted Critical
Publication of JP5089385B2 publication Critical patent/JP5089385B2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、フラッシュメモリのアドレス指定を行うための改良型システムに関し、特に、仮想アドレス指定に必要なビット数を減少させるフラッシュファイル・システム内のアドレス変換に関する。
フラッシュデバイスは、フラッシュタイプ浮遊ゲート・トランジスタから製造した、電気的に消去可能でプログラム可能な読出し専用メモリ(EEPROM)を含み、機能および性能の点でEPROMメモリに類似する不揮発性メモリであり、追加機能として、メモリを部分的に消去するように、インサーキット・プログラム可能な作動を実行できる。フラッシュデバイスは、比較的安価で、従来の磁気記憶装置ディスクと比べ、必要電力が比較的に小さいという長所がある。しかしながら、フラッシュデバイスには、物理アドレス・レベルでの使用に対して少々問題となる特定の制限がある。フラッシュデバイスでは、領域を先に消去することなく、メモリの以前に書き込んだ領域を書き直すことは実際的ではない。すなわち、再度プログラム可能にするには、フラッシュセルを消去(例えば、「1」にプログラム)しなければならない。消去は、通常「消去ブロック」と呼ばれる比較的大きなグループのセルに対してのみ可能である(その大きさは、典型的に、現在市販されているNANDデバイスでは16から128キロバイトであり、そしてNORデバイスではより大きい)。したがって、1バイトの、あるいは1キロバイトもの塊のコンテンツを更新するには、「ハウスキーピング」オペレーションが必要である。すなわち、消去ブロックの更新させない部分は、最初にどこか他へ移動させて、消去中にも維持し、それから元へ戻さなければならない。
さらに、デバイスのいくつかのブロックは、信頼性のない「不良ブロック」であり、それらを使用することは避けるべきである。ブロックは、デバイスを最初にテストした製造業者によって、あるいは実際にデバイスが使用されているときにブロックの障害を検出したアプリケーション・ソフトウェアによって、「不良ブロック」と宣言される。
背景技術のこれらの限界を克服するためのフラッシュファイル・システム(FFS)が、本出願の譲受人に譲渡された米国特許第5,404,485号に開示されている。この開示内容は、参照によって、本文に完全に記述したものとする。FFSは、フラッシュデバイス上でのデータ記憶およびデータ操作システムを提供し、これらのデバイスが磁気ディスクを模倣することを可能にする。既存の技術では、アプリケーションまたはオペレーティングシステムは、物理アドレスではなく、むしろ仮想アドレスを用いて、フラッシュ記憶サブシステムと相互に作用する。すなわち、ソフトウェア・アプリケーションと物理デバイスとの間には、仮想アドレスから物理アドレスへのマッピングを提供する中間層が存在する。ソフトウェアは、記憶システムを、制約なしでランダムに読み書き可能な、連続した欠陥のないメディアと見るが、物理アドレス指定方式は、(例えば、不良ブロックがあるために)そのアドレス範囲内に「孔」を持つため、仮想アドレス範囲内で相互に隣接するデータ・ピースが、物理アドレス範囲内では大いに分離してしまう可能性がある。上述のマッピングを実行する中間層は、アプリケーションが作動するのと同じCPU上で作動するソフトウェア・ドライバでよい。代替的に、ホスト・コンピュータが記憶装置へアクセスするときにフラッシュデバイスを制御し、ホスト・コンピュータのメインCPUに対するインターフェイス・ポイントとして機能するコントローラ内に、中間層を埋め込んでもよい。これは、例えば、セキュアデジタル(SD)カードまたはマルチメディア・カード(MMC)等の、リムーバブルメモリ・カードの状態である。この場合、カードは、他の機能も含んで上述のマッピングのようなことを実行するファームウエア・プログラムを作動させるオンボード・コントローラを持つ。
そのようなアドレス変換を実行するソフトウェアまたはファームウェアの実装は、典型的に、「フラッシュ管理システム」または「フラッシュファイル・システム」と呼ばれている。後者の用語は、その実装が、オペレーティングシステムまたはパソコン内でファイルを使用する感覚において、必ずしも「ファイル」をサポートするというわけではなく、むしろ、ハードディスク・ソフトウェア・ドライバがエクスポートするのに類似したブロック・デバイス・インターフェイスをサポートするため、誤った名称である。依然として、その用語は一般に使用されるため、本文でも「フラッシュファイル・システム」と「フラッシュ管理システム」とを相互に置換可能に使用する。
仮想アドレスから物理アドレスへのマッピングを実行する、先行技術による他のシステムは、バン氏による米国特許第5,937,425号、そしてラッサー氏による米国特許第6,591,330号に開示されている。それらの両方は、参照によって、すべての目的のために本文に完全に記述したものとする。
NANDタイプ・フラッシュデバイスに特に適当な米国特許第5,937,425号では、図1(先行技術)を参照して、マッピングは以下の通りに実行される。物理アドレス・スペース13は、実際には消去ブロック、すなわち、消去可能な最も小さい塊であるユニット111から構成されている。各物理ユニット111は、一つ以上の物理ページ113を含み、ページは、書き込みが可能な最も小さい塊である。仮想アドレス・スペース11は、物理ユニットと同じ大きさを持つ仮想ユニット121から構成されている。各仮想ユニットは、物理ページ113と同じ大きさを持つ一つ以上の仮想ページ123を含む。読み書きのためにアプリケーションによって仮想アドレスが提供されると、そのアドレスが属する仮想ユニット番号が、仮想アドレスから抽出される。各仮想ユニット121に、一つの物理ユニット111または一連の複数の物理ユニット111を割り当てるマッピングがあり、それから、仮想ページ123を物理ページ113に関連づける「ローカル」配置規則を使用して、または物理ページ113と一緒に保存した制御情報を使用して、仮想ユニット121内の要求仮想ページ123に対応する物理ページ113を、対応する物理ユニット111内に位置づける。
米国特許第5,937,425号に開示した方法の利点の一つは、メイン・マッピングが、ページではなくユニットに対して実行されるため、ページよりも非常に少ないユニットに対する変換テーブルが非常に小さいということである。もう一つの利点は、一つの仮想ユニット121に複数の物理装置111を割り当てることが可能であることから生じる書き込み性能の向上である。
いくつかの理由で、有効な仮想アドレス範囲の典型的なサイズは、マップさせた物理アドレス範囲のサイズよりも僅かに小さい。それらの理由は、以下を含む。
(1)仮想スペース11は、不良ブロックを含むことができないため、不良ブロックが物理スペース13内に存在するとしても、仮想スペース11は、そのアドレス範囲から不良ブロックを排除するように「詰められる」。
(2)米国特許第5,937,425号に開示されているように、1対多のマッピングをサポートするフラッシュファイル・システムに対しては、仮想スペース11は、物理スペース13よりも小さくなくてはならない。
先行技術によるフラッシュ管理システムでは、仮想アドレスを表すのに必要なビット数は、物理アドレスを表すのに必要なビット数と同じである。例えば、NANDフラッシュデバイスが、1,024の物理ユニット111から構成され、それらの各々が、512バイトからなる32ページ113を含むと仮定する(典型的に、ユーザ・データを保存せずに、エラー訂正コード等のシステム情報を保存する、NANDデバイス内の「余分な」バイトを無視する)。物理レベルでは、バイト・アドレス範囲は、0から、16メガバイト−1までであり、完全な表記のためには、24ビットを必要とする。ユニット・アドレスだけを直接的にマップする、米国特許第5,937,425号の方法を使用すると、我々は、1,024の物理ユニット111を持ち、10ビットを必要とする。仮想スペース11が24ユニットだけ小さいとみなすと、我々は、1,000の仮想ユニット121を得、各ユニットが、各々512バイトからなる32ページ123を含む。完全なバイト・アドレスを表すためのビット数は、再び24であり、仮想ユニット数を表すのに必要なビット数は、依然として10である。時には、仮想アドレスを表すのに必要なビット数を可能な限り低くすることが非常に望ましい。フラッシュファイル・システムおよびソフトウェア・アプリケーションの両方は、アドレスを、テーブル内や、種々のデータ構造内に維持する。このため、アドレスがより多くのビットを必要とすればするほど、RAMメモリは消費される。
したがって、仮想アドレス指定に必要なビット数を減少させる、フラッシュファイル・システム内で仮想アドレスから物理アドレスへ変換するための方法に対する必要性があり、そのような方法を得ることは非常に有利である。
本発明によれば、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理方法が提供される。この方法は、フラッシュメモリの物理アドレス・スペースを提供すること、そしてフラッシュメモリの仮想アドレス・スペースを提供することを含む。この場合、物理アドレス・スペースは、物理アドレスでアドレス指定可能であり、そして仮想アドレス・スペースは、仮想アドレスでアドレス指定可能である。この方法は、さらに、仮想アドレスの各々にアクセスするのに必要なバイナリ・ビット数が、物理アドレスの各々にアクセスするのに必要なバイナリ・ビット数よりも少ないように、仮想アドレスを物理アドレスにマップすることを含む。
本発明によれば、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理方法が提供される。この方法は、フラッシュメモリの物理ユニット、フラッシュメモリの仮想ユニットを提供し、そして仮想ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数が、物理ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数よりも少ないように、仮想ユニットの各々を物理ユニットの一つ以上へマップする。
本発明によれば、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理システムが提供される。このシステムは、物理アドレスでアドレス指定可能なフラッシュメモリ、仮想アドレス、そして仮想アドレスの物理アドレスへのマッピング・メカニズムを含む。この場合、仮想アドレスの各々にアクセスするのに必要なバイナリ・ビット数は、物理アドレスの各々にアクセスするのに必要なバイナリ・ビット数よりも少ない。
本発明によれば、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理システムが提供される。このシステムは、フラッシュメモリの物理ユニットおよび仮想ユニット、そして仮想ユニットの物理ユニットへのマッピング・メカニズムを含む。この場合、仮想ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数は、物理ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数よりも少ない。
本発明によれば、ホストからフラッシュメモリにアクセスする際にフラッシュメモリを管理するための方法が提供される。この方法は、物理アドレス・スペースを介してフラッシュメモリのアドレス指定を行うこと、そしてホストから、物理アドレス・スペースよりも小さな仮想アドレス・スペースからのアドレスだけを受け入れることを含む。この場合、仮想アドレス・スペースのアドレスは、物理アドレス・スペースの物理アドレスよりも少ないビットを持つ。
本発明によれば、フラッシュメモリおよびコントローラを含むメモリ・デバイスが提供される。コントローラは、フラッシュメモリにアクセスする際に、物理アドレス・スペースを用いてフラッシュメモリのアドレス指定を行う。また、メモリ・デバイスのアドレス指定を行うホストから、仮想アドレス・スペースからのアドレスだけを受け入れる。この場合、仮想アドレス・スペースのアドレスは、物理アドレス・スペースのアドレスよりも少ないバイナリ・ビットを持つ。
本発明によれば、物理フラッシュメモリ・ユニットを含むフラッシュメモリと、コントローラを含むフラッシュメモリ・デバイスが提供される。コントローラは、フラッシュメモリにアクセスする際に、物理ユニットを使用する物理アドレス・スペースからのアドレスを用いてフラッシュメモリのアドレス指定を行う。また、メモリ・デバイスのアドレス指定を行うホストから、仮想ユニットを使用する仮想アドレス・スペースからのアドレスだけを受け入れる。この場合、仮想メモリ・ユニットのアドレス指定を行うのに必要なバイナリ・ビットは、物理メモリ・ユニットのアドレス指定を行うのに必要なバイナリ・ビットよりも少ない。
本発明を、例として、添付の図面を参照しながら説明する。
本発明は、仮想アドレス指定に必要なビット数を減少させる、フラッシュファイル・システム内での仮想アドレスから物理アドレスへのマッピングである。
本発明によるシステムおよび方法の原理および作用は、図面とその説明文を参照することによって、よりよく理解できる。
本発明の実施例を詳細に説明する前に、本発明は、その適用において、以下の説明文で述べる、あるいは図面に示すデザインの詳細および構成要素のアレンジメントに限定されないことを理解すべきである。本発明は、他の実施例も可能であり、また、種々の様式で実施または実行できる。また、本文で用いる文体および用語は、説明の目的のためのもので、限定するものと見なしてはならないことを理解すべきである。
本文で用いる用語「ユニット」および「ページ」は、先行技術において一貫して使用されてきたものではない。米国特許第5、937、425号では、本文で用いる用語「ページ」の代わりに、用語「ブロック」が使用されている。他の先行技術によるシステムは、本文で用いる「ページ」に対して、用語「セクター」を使用している。また、他の先行技術によるシステムは、本文で用いる「ユニット」に対して、用語「ブロック」を使用している。本文では、用語「ユニット」を、消去可能な、メモリの最小塊と定義する。本文では、用語「ページ」を、書き込みが可能な、メモリの最小塊と定義する。用語「ビット」および「バイナリ・ビット」は、相互に置換可能に用いる。
注意すべきことは、先行技術による異なるシステムは、「仮想」アドレス指定に対して異なる用語を使用していることである。いくつかは「仮想」を用い、また、いくつかは「論理」を用いている。他は、同じシステムに両方の用語を使用して、アプリケーション・レベル・アドレスとデバイス・レベル・アドレスとの間で、最初に「仮想」から「論理」へ、そして「論理」から「物理」へのマッピング、または逆方向へのマッピングを行う、二層マッピングを実行している。そのようなすべてのマッピングは、本発明の適用範囲内にある。本発明のマッピングは、デバイスを使用するソフトウェアが、一つのアドレス・スペース、例えば、仮想を検知するとき、物理デバイスが、異なるアドレス・スペース、例えば、物理を使用することだけを必要とする。本文では、データの特定な部分が、二つのアドレス・スペース内に異なるアドレスを持つことが可能な場合、アドレス・スペースは「異なる」と定義する。本文では、用語「物理スペース」および「物理アドレス・スペース」を置換可能に用いる。また、用語「仮想スペース」および「仮想アドレス・スペース」を置換可能に用いる。用語、メモリへの「アクセス」は、メモリへの「読み書き」に言及すると定義する。メモリのアドレス指定に必要な「ビット数」は、先行ビットを含むと定義する。例えば、00000001は、アドレス指定のために8ビットを必要とする。
我々は、ここで、物理フラッシュデバイスのすべてがマッピングに参加するのではないケースに言及していないことに注意すべきである。本技術では、時々、物理デバイスのある部分が、(例えば、ブーティング、またはオペレーティングシステム・コード・イメージ等の)特殊な目的のために利用され、その部分は、物理アドレスによって直接にアクセスされる。デバイスの残りの部分だけがマッピングに関わり、対応する仮想スペースも明らかに減少する。そのようなケースでは、我々の本文の議論は、物理マップした部分にのみ言及する。その部分が、デバイス内に存在する唯一の部分であるかのように。
本発明は、物理アドレスのビット数に比較して、仮想アドレスのビット数を減少させるアドレス・マッピングである。例えば、ファームウェアでフラッシュファイル・システムを具現し、そして米国特許第5、937、425号の方法を用いる、低コストのフラッシュコントローラを考える。マッピングは、物理ユニット番号で索引をつけた変換テーブルを用い、仮想ユニット番号を保存して実行してもよい。例えば、先に論じたデバイスでは、テーブルは、1,024x10=10,240ビットを消費する。仮想アドレスが、9ビットを超過する必要がないと保証できたなら、消費メモリは、1,024x9=9,216ビットだけになる。そのうえ、コントローラのファームウェアが、単一ビットを割り当てることができず、完全なバイトだけを割り当てる場合は、アドレスが9ビットから8ビットへ減少することは、テーブルの各項目が2バイトから1バイトへ減少するため、メモリ節約の点でより重要な意義を持つ。したがって、仮想アドレスから物理アドレスへのマッピングの一部として、仮想アドレスを表すのに必要なビット数を減少させるフラッシュファイル・システムを用いることには、大きな利益がある。
本発明のすべての実施例において、仮想アドレスのビット数を減少させるフラッシュファイル・システムは、使用可能な記憶容量を減少させるが、多くのケースでは、大きな容量の必要はなく、小さなものが入手不能であるという理由だけで、大きなデバイスが使用される。また、米国特許第5,937,425号のタイプのフラッシュファイル・システムは、性能が良いことが知られている。その理由は、マッピング中により多くの、1対多の仮想ユニットから物理ユニットへの割り当てが同時に存在するので、物理ユニット111数に比較して仮想ユニット121数が小さいため、平均書き込み性能が、より効果的な消去によって改善されるからである。そのように、仮想記憶容量の損失を正当化する考慮がある。したがって、マッピングにおける仮想アドレス・ビット数を減少させる本発明は、有利である。
現在のフラッシュファイル・システムは、アドレスのマッピング中にアドレス・ビット数を減少させない。その理由は、常用のフラッシュデバイスが、典型的に、正確な2の累乗である多数の物理ユニットを含むという事実に密接な関係がある。例えば、1,024ユニットの上記デバイスは、2の10乗(210)のユニット数を持つ。その結果、仮想範囲および物理範囲の典型的な差となる、仮想アドレス範囲の数パーセントの減少では、低ビット数アドレス範囲への「境界を横切る」のに十分ではない。
しかし、フラッシュデバイスのサイズを、2の正確な累乗にすることは、義務的なことでない。例えば600または700等の、2の累乗でない多数の物理ユニット111を持つフラッシュデバイスを製造することへの、物理的な障害はない。2の累乗よりも僅かに多い数の物理ユニット111を持つ利点は、不良ブロックに関連するものである。フラッシュ製造業者は、典型的に、デバイス・テストにおける不良ブロックの検出を予期して、予備のブロックをいくつかフラッシュシリコン・ダイ内に含ませる。テスト後、検出した不良ブロックを、正常なスペアブロックで置換する、置換工程があり、デバイスは、より少ない数のブロックで、望ましくは0不良ブロックで出荷されることになる。この方法の欠点は、置換に必要でない正常なスペアブロックが、ユーザには消失してしまうことである。
さて、本発明の実施例による、仮想から物理へのマッピング20を表す概略図である図2を参照する。図2は、仮想スペース21の、物理スペース23へのメモリ・マッピング20を示す。
メモリ・マッピング20は、本発明によるメモリ管理中に、フラッシュメモリ・コントローラ207を持つホスト205によって達成する。
物理スペース23は、2の累乗である多数の「レギュラー」ユニット201を提供し、また、「レギュラー」ユニット直後のアドレスを持つ追加ユニットとして、スペアユニット203を提供する。ゆえに、フラッシュデバイスは、2の正確な累乗よりも僅かに、例えば0.5%だけ大きな、レギュラーユニット201にスペアユニット203を加えたユニット合計数を持つ。本発明によるフラッシュファイル・システムは、仮想スペース21内の多くのユニット121を犠牲にすることなく、仮想スペース21内のアドレス・ビット数を減少させる。例えば、フラッシュデバイスが、追加で10のスペアユニット203を提供するならば、物理スペース23は、11アドレス・ビットを必要とする、0から1,024+10−1=1,033までの数のユニット、すなわちレギュラーユニット201にスペアユニット203を加えたものを含む。本発明による改良型フラッシュファイル・システムは、仮想スペース21を、0から1,009までの数の仮想ユニット121に減少させ、10アドレス・ビットのみを必要とすると共に、物理アドレス範囲と仮想アドレス範囲との間のサイズの違いを、比較的小さく保つ。
したがって、前述のものは、本発明の原理だけを例証するものと考えるべきである。さらに、当業者には、多数の修正および変更を施すことは容易であり、本発明を、図示および説明したデザインおよび作用に正確に限定することは望ましいことではなく、したがって、すべての適当な修正および同等なことは、本発明の範囲内に含まれる。
このように、当業者は、この開示の基礎を形成する概念が、本発明のいくつかの目的を実行する他の方法およびシステムを設計するための基礎として、容易に利用可能であることを理解すべきである。したがって、本発明の精神および範囲から逸脱しない限り、請求項は、そのような相当構造を含むと見なすことが重要である。
本発明を、限られた数の実施例について説明したが、本発明の多くの変形、修正および他の適用が可能であることは言うまでもない。
(先行技術)は、フラッシュファイル・システム内での仮想アドレスから物理アドレスへの、従来の変換を表す概略図である。 本発明の実施例による、フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換を表す概略図である。

Claims (7)

  1. 物理アドレス・スペースに対応する消去ブロックの第一の数が仮想アドレス・スペースに対応する消去ブロックの第二の数より大きいフラッシュメモリにおいて、前記仮想アドレス・スペースを指定する仮想アドレスの各々を用いてホストがデータにアクセス可能とするために、コントローラがフラッシュメモリを管理する方法であって、
    (a)前記フラッシュメモリの前記仮想アドレスを、前記ホストから受信するステップと、
    (b)前記フラッシュメモリの前記物理アドレス・スペースの各々を、物理アドレスの各々を用いて指定するステップと、
    (c)前記仮想アドレスを前記物理アドレスへマッピングし、前記仮想アドレスの少なくとも一つを前記物理アドレスの二つ以上にマッピングするステップと、
    を備え、
    前記仮想ユニットの各々へアクセスするために必要なバイナリ・ビット数が、前記物理ユニットの各々へアクセスするために必要なバイナリ・ビット数よりも少ない、フラッシュメモリ管理方法。
  2. 物理アドレス・スペースに対応する消去ブロックを含む物理ユニットの第一の数が仮想アドレス・スペースに対応する仮想ユニットの第二の数より大きいフラッシュメモリにおいて、ホストが仮想アドレスを用いてデータにアクセス可能とするために、コントローラがフラッシュメモリを管理する方法であって、
    (a)前記フラッシュメモリの前記物理ユニットの各々を物理アドレスに対応させるステップ、
    (b)前記フラッシュメモリの前記仮想ユニットの各々を仮想アドレスに対応させるステップ、および
    (c)前記仮想ユニットの各々を前記物理ユニットにマッピングし、前記仮想ユニットの少なくとも一つを前記物理ユニットの二つ以上へマッピングするステップからなり、
    前記仮想ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数が、前記物理ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数よりも少ない、フラッシュメモリ管理方法。
  3. 物理アドレス・スペースに対応する消去ブロックの第一の数が仮想アドレス・スペースに対応する消去ブロックの第二の数より大きいフラッシュメモリにおいて、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理システムであって、
    (a)複数の物理アドレスで指定可能な、前記フラッシュメモリ、
    (b)複数の仮想アドレス、そして
    (c)前記仮想アドレス前記物理アドレスにマッピングし、前記仮想アドレスの少なくとも一つを前記物理アドレスの二つ以上へマッピングするマッピング・メカニズムからなり、
    前記仮想アドレスの各々にアクセスするのに必要なバイナリ・ビット数が、前記物理アドレスの各々にアクセスするのに必要なバイナリ・ビット数よりも少ない、フラッシュメモリ管理システム。
  4. 物理アドレス・スペースに対応する消去ブロックを含む物理ユニットの第一の数が仮想アドレス・スペースに対応する仮想ユニットの第二の数より大きいフラッシュメモリにおいて、ホストからデータにアクセスするための、フラッシュメモリに対するフラッシュメモリ管理システムであって、
    (a)前記フラッシュメモリの複数の前記物理ユニット、
    (b)複数の前記仮想ユニット、そして
    (c)前記仮想ユニット前記物理ユニットにマッピングし、前記仮想ユニットの少なくとも一つを前記物理ユニットの二つ以上にマッピングするマッピング・メカニズムからなり、
    前記仮想ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数が、前記物理ユニットの各々をアドレス指定するのに必要なバイナリ・ビット数よりも少ない、フラッシュメモリ管理システム。
  5. 物理アドレス・スペースに対応する消去ブロックの第一の数が仮想アドレス・スペースに対応する消去ブロックの第二の数より大きいフラッシュメモリにおいて、ホストが仮想アドレスを用いてアクセス可能とするために、コントローラがフラッシュメモリを管理する方法であって、
    (a)前記物理アドレス・スペース内の物理アドレスを用いて前記フラッシュメモリのアドレス指定を行うステップ、そして
    (b)前記仮想アドレス・スペース内の仮想アドレスのみを前記ホストから受信するステップからなり、
    前記仮想アドレスの少なくも一つを前記物理アドレスの二つ以上にマッピングし、前記仮想アドレス・スペースのアドレスが、前記物理アドレス・スペースの物理アドレスよりも少ないビットを持つ、方法。
  6. (a)物理アドレス・スペースに対応する消去ブロックの第一の数が仮想アドレス・スペースに対応する消去ブロックの第二の数より大きいフラッシュメモリ、そして
    (b)前記フラッシュメモリにアクセスする際に、前記物理アドレス・スペースのアドレスを用いて前記フラッシュメモリのアドレス指定を行い、メモリ・デバイスのアドレス指定を行うホストから前記仮想アドレス・スペースを指定するアドレスだけを受信し、受信した前記仮想アドレス・スペースを指定するアドレスを前記物理アドレス・スペースのアドレスへ変換し、前記仮想アドレス・スペース内の少なくとも一つのアドレスを前記物理アドレス・スペース内の二つ以上のアドレスに変換するコントローラからなり、
    前記仮想アドレス・スペースのアドレスが、前記物理アドレス・スペースのアドレスよりも少ないバイナリ・ビットを持つ、メモリ・デバイス。
  7. 物理アドレス・スペースに対応する消去ブロックの第一の数が仮想アドレス・スペースに対応する消去ブロックの第二の数より大きいフラッシュメモリ・デバイスであって、
    (a)複数の物理ユニットを含むフラッシュメモリ、そして
    (b)前記フラッシュメモリにアクセスする際に、前記物理ユニットを指定する前記物理アドレス・スペースのアドレスを用いて前記フラッシュメモリのアドレス指定を行い、前記フラッシュメモリのアドレス指定を行うホストから仮想ユニットを指定する前記仮想アドレス・スペースのアドレスだけを受信し、受信した前記仮想アドレス・スペースのアドレスを前記物理アドレス・スペースのアドレスへ変換し、前記仮想アドレス・スペース内の少なくとも一つのアドレスを前記物理アドレス・スペース内の二つ以上のアドレスに変換するコントローラからなり、
    前記仮想ユニットのアドレス指定を行うことが、前記物理ユニットのアドレス指定を行うのに必要なバイナリ・ビットよりも少ないバイナリ・ビットを必要とする、フラッシュメモリ・デバイス。
JP2007523233A 2004-07-30 2005-07-18 フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換 Expired - Fee Related JP5089385B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US59216204P 2004-07-30 2004-07-30
US60/592,162 2004-07-30
US11/025,982 US7386700B2 (en) 2004-07-30 2005-01-03 Virtual-to-physical address translation in a flash file system
US11/025,982 2005-01-03
PCT/IL2005/000765 WO2006011131A2 (en) 2004-07-30 2005-07-18 Virtual-to-physical address translation in a flash file system

Publications (2)

Publication Number Publication Date
JP2008508589A JP2008508589A (ja) 2008-03-21
JP5089385B2 true JP5089385B2 (ja) 2012-12-05

Family

ID=35733728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007523233A Expired - Fee Related JP5089385B2 (ja) 2004-07-30 2005-07-18 フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換

Country Status (7)

Country Link
US (1) US7386700B2 (ja)
EP (1) EP1779246A4 (ja)
JP (1) JP5089385B2 (ja)
KR (1) KR100946286B1 (ja)
CN (1) CN101288054B (ja)
HK (1) HK1122620A1 (ja)
WO (1) WO2006011131A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101031882B (zh) * 2004-06-08 2010-09-08 达尔特设备互操作有限公司 用于通用设备互操作性平台的设备组招募和内容再现的体系结构、装置和方法
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8219749B2 (en) * 2007-04-27 2012-07-10 Netapp, Inc. System and method for efficient updates of sequential block storage
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US20090282267A1 (en) * 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
WO2011048606A2 (en) * 2009-09-25 2011-04-28 Kamlesh Gandhi Virtual-memory system with variable-sized pages
US8171253B2 (en) * 2009-10-30 2012-05-01 Brocade Communications Systems, Inc. Virtual disk mapping
CN103354925B (zh) * 2011-01-31 2016-03-02 三菱电机株式会社 存储器控制器和存储器访问方法
CN102736981B (zh) * 2011-04-08 2016-02-03 航天信息股份有限公司 提高nor flash擦写寿命的方法
US9323662B2 (en) 2012-12-31 2016-04-26 SanDisk Technologies, Inc. Flash memory using virtual physical addresses
CN103914409B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
CN105706071A (zh) * 2013-09-26 2016-06-22 英特尔公司 持久性存储器的块存储孔
CN105808453B (zh) * 2014-12-31 2018-09-28 晨星半导体股份有限公司 嵌入式装置及其存储器管理方法
CN104598170B (zh) 2015-01-30 2017-12-05 华为技术有限公司 确定读写路径的方法和装置
CN106294187B (zh) * 2015-05-15 2019-11-08 比亚迪股份有限公司 位存取操作功能的控制方法及装置
TWI571740B (zh) * 2016-03-18 2017-02-21 華邦電子股份有限公司 記憶體裝置及記憶體區塊使用方法
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
CN111414248B (zh) * 2019-01-04 2023-03-21 阿里巴巴集团控股有限公司 内存管理方法、装置及计算设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3854126A (en) 1972-10-10 1974-12-10 Digital Equipment Corp Circuit for converting virtual addresses into physical addresses
US4774652A (en) * 1987-02-18 1988-09-27 Apple Computer, Inc. Memory mapping unit for decoding address signals
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100305679B1 (ko) * 1999-02-24 2001-09-26 윤종용 반도체 메모리 장치의 테스터의 테스터 방법 및 그 장치
KR100703680B1 (ko) * 1999-10-14 2007-04-05 삼성전자주식회사 플래시 파일 시스템
JP2001256793A (ja) * 2000-03-09 2001-09-21 Toshiba Corp 半導体集積回路装置
US6510488B2 (en) * 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6591330B2 (en) 2001-06-18 2003-07-08 M-Systems Flash Disk Pioneers Ltd. System and method for flexible flash file
US6625081B2 (en) * 2001-08-13 2003-09-23 Micron Technology, Inc. Synchronous flash memory with virtual segment architecture
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6807610B2 (en) * 2002-11-01 2004-10-19 Silicon Storage Technology, Inc. Method and apparatus for virtually partitioning an integrated multilevel nonvolatile memory circuit
FI117489B (fi) * 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system

Also Published As

Publication number Publication date
US7386700B2 (en) 2008-06-10
WO2006011131A2 (en) 2006-02-02
CN101288054A (zh) 2008-10-15
EP1779246A2 (en) 2007-05-02
KR100946286B1 (ko) 2010-03-08
HK1122620A1 (en) 2009-05-22
KR20070046864A (ko) 2007-05-03
WO2006011131A3 (en) 2007-02-15
JP2008508589A (ja) 2008-03-21
US20060026341A1 (en) 2006-02-02
CN101288054B (zh) 2012-04-18
EP1779246A4 (en) 2008-11-05

Similar Documents

Publication Publication Date Title
JP5089385B2 (ja) フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換
US11967369B2 (en) Lifetime mixed level non-volatile memory system
US7426623B2 (en) System and method for configuring flash memory partitions as super-units
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8683173B2 (en) Logical address offset in response to detecting a memory formatting operation
EP1891529B1 (en) Flash memory with programmable endurance
JP5823875B2 (ja) 固体メモリフォーマッティング
US8037232B2 (en) Data protection method for power failure and controller using the same
US7389397B2 (en) Method of storing control information in a large-page flash memory device
US8904092B2 (en) Identifying a location containing invalid data in a storage media
US8762622B2 (en) Enhanced MLC solid state device
US8417869B2 (en) Hybrid storage apparatus and hybrid storage medium controller and addressing method thereof
US20160231941A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
US8037236B2 (en) Flash memory writing method and storage system and controller using the same
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
CN110162493B (zh) 存储器管理方法及使用所述方法的储存控制器
CN106326131B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111026

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111102

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20111209

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

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees