JP2015026379A - 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理 - Google Patents

磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理 Download PDF

Info

Publication number
JP2015026379A
JP2015026379A JP2014151651A JP2014151651A JP2015026379A JP 2015026379 A JP2015026379 A JP 2015026379A JP 2014151651 A JP2014151651 A JP 2014151651A JP 2014151651 A JP2014151651 A JP 2014151651A JP 2015026379 A JP2015026379 A JP 2015026379A
Authority
JP
Japan
Prior art keywords
memory
storage device
mass storage
controller
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.)
Pending
Application number
JP2014151651A
Other languages
English (en)
Inventor
アスナーシャリ メディ
Asnaashari Mehdi
アスナーシャリ メディ
ナメジー シアマック
Siamack Nemazie
ナメジー シアマック
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.)
Avalanche Technology Inc
Original Assignee
Avalanche Technology Inc
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
Priority claimed from US13/952,435 external-priority patent/US8724392B1/en
Application filed by Avalanche Technology Inc filed Critical Avalanche Technology Inc
Publication of JP2015026379A publication Critical patent/JP2015026379A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Memories (AREA)
  • Mram Or Spin Memory Techniques (AREA)

Abstract

【課題】コントローラによる記憶デバイスのメモリアレイの管理を提供する。【解決手段】コントローラ14は、ホストと通信し、ホストとコントローラとの間でホストデータを転送するように構成され、第1のメモリ22および第2のメモリ24に結合される。第1のメモリおよび第2のメモリは、異なるタイプのものである。コントローラ14と、大容量記憶デバイス10の能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体18は、第1のメモリおよび第2のメモリの少なくとも一部に及んでいる混成予約領域36を有する。決定的データは、第2のメモリ24の混成予約領域36bに記憶される。さらに、コントローラは、混成予約領域を管理するように動作可能である一方、混成LUNは、ホストによって管理されている。【選択図】図1

Description

(発明の背景)
(関連出願への相互参照)
本願は、Mehdi Asnaashariによって2012年11月16日に出願された米国特許出願第13/679,739号(名称「HOST−MANAGED LOGICAL MASS STORAGE DEVICE USING MAGNETIC RANDOM ACCESS MEMORY(MRAM)」)の一部継続出願であり、Mehdi Asnaashariによって2012年12月7日に出願された米国特許出願第13/708,582号(名称「HOST−MANAGED LOGICAL MASS STORAGE DEVICE USING MAGNETIC RANDOM ACCESS MEMORY(MRAM)」)の一部継続出願であり、その両方の開示は、全部、述べられているように、参照により援用される。
(発明の分野)
本発明は、概して、記憶デバイスに関連し、特に、コントローラによる記憶デバイスのメモリアレイの管理に関連する。
(先行技術の説明)
大容量記憶デバイスにおけるメモリ媒体は、デバイスの性能および信頼性に対して決定的である種々のタイプのプライベートデータ(つまり、公衆アクセスのためではなく、むしろ、非常に制限されたアクセスのためのデータ)をメモリ媒体に記憶するために、デバイスのコントローラによって部分的に使用される。そのようなデータの例は、特に、ブートコードおよびテーブルを含む。コントローラは、ホストからのデータを記憶するためにメモリ媒体の残りの部分を使用する。ホストからのデータのいくつかは、頻繁にアクセスされ、大容量記憶デバイスを組み込んでいるホストの性能に対しても決定的に重要である。したがって、これらのデータのコントローラによる効率的な管理が、大容量記憶デバイスの性能を最適化する場合、および、好ましいユーザ体験を提供する場合に、最も決定的である。
ブートコードのようなコントローラプライベートデータは、ユーザデータと比較して、あまり大きくないが、信頼性のある記憶媒体を必要とする。プライベートデータの別の例は、メモリアレイの物理ブロックアドレス内の論理ブロックアドレスの位置を捜し出すためにコントローラによって管理されるテーブルである。これらのテーブルは、デバイスの機能性および性能に対して最も決定的であり、頻繁にアクセスされ、したがって、これらのテーブルは、高い性能、信頼性、および不揮発性を有する媒体を必要とする。
コントローラは、時々、そのプライベートデータ領域にAESキーのようなセキュリティパラメータを記憶し、そのセキュリティパラメータはまた、信頼性のある媒体を必要とする。セキュリティキーは、大容量記憶デバイスのメモリアレイ(メモリ媒体の一部)のデータを保護するために使用される。キーのいずれの破損も、十中八九、記憶デバイスを無益なものにする。
ファイルアロケーションテーブル(FAT)およびディレクトリのような特定のホストパラメータは、同様に、頻繁にアクセスされて更新され、高い性能と最適性能のための高い信頼性とを有するメモリ媒体タイプを必要とする。他のタイプのホストデータ(例えば、写真、歌曲、および、映画)は、典型的に、非常に大量の記憶量を必要とし、記憶デバイスの記憶媒体の大部分を占めるが、他のタイプのホストデータは、信頼性があることも、メモリ媒体による高い性能も必要としない。
現在の大容量記憶デバイスは、一般に、記憶媒体のために、NANDフラッシュメモリを利用する。NANDメモリは、手ごろな価格で大量の記憶量を提供するが、高い性能および信頼性のあるシステムを達成するためにコントローラによって要求されるすべての属性を提供することができない。制限された信頼性および耐久性を有するNANDフラッシュメモリは、本質的に低速であり、このことは、NANDフラッシュメモリをそれらの属性を要求するコントローラにとって魅力のないものにする。
NANDフラッシュメモリは、ブロックに基づいた不揮発性メモリであり、各ブロックは、種々のページに編成され、種々のページから作られる。ブロックがプログラムされた後、再びブロックをプログラムする前に、ブロックは、消去される。たいていのフラッシュメモリは、ブロック内のページの一連のプログラミングを必要とする。フラッシュメモリの別の制限は、限られた回数だけブロックが消去され得ることであり、したがって、頻繁な消去オペレーションは、フラッシュメモリの寿命を縮める。したがって、フラッシュメモリは、インプレース更新を可能にしない。つまり、フラッシュメモリは、既存のデータを新たなデータで単に上書きすることができない。新たなデータは、消去された領域にのみ書き込まれ(アウトオブプレース更新)、古いデータは、将来の再生利用のために無効にされる。このアウトオブプレース更新は、同一のブロックにおける無効(つまり、古い)データおよび有効データの共存をもたらす。当業者に周知の「ガベージコレクション」は、無効データによって占められた空間を再生利用する場合、および、有効データが新たなブロックに移動され、古いブロックが消去される場合に委ねられる工程である。ガベージコレクションは、一般的に、望ましくないことに、有意な性能オーバーヘッド、および、予測不可能なオペレーション待ち時間をもたらす。
上記に言及されたように、フラッシュメモリブロックは、限られた回数だけ消去され得る。ウェアレベリングは、フラッシュメモリ全体にわたって(バンド内で)均等に消去部を分散させることによって、フラッシュメモリ寿命を改善するために一般的に採用されている工程である。25ナノメートル技術を使用して製造された、典型的なMulti Level Cell_(MLC)NANDフラッシュは、典型的に、1500〜3000サイクルの範囲におけるプログラム/消去(PE)サイクルを有する。それらは、典型的なプログラミング時間または約10ミリ秒(ms)である持続時間で、プログラムされる前に消去されること、および、4〜8キロバイトのページをプログラムするために約1〜2msであるプログラム時間を必要とする。
さらに、NANDフラッシュメモリは、8KBおよび16KBの大きなページサイズおよび521KB〜1MBのブロックサイズに編成される。フラッシュメモリの大きなページサイズ属性は、全ページが完全にプログラムされる必要があるので、フラッシュメモリを小さなI/Oオペレーションにとって望ましくないものにする。一部のページをプログラムすることは、ページ上の既存のデータと新たなデータとをマージすることと、新たなページにそれを書き込むこととを必要とする。古いデータは、もはや有効データを含まず、最終的に再生利用される必要がある。同一の論理アドレスに対応するデータが異なる物理アドレスに書き込まれるので、コントローラはまた、論理アドレスを物理アドレスにマッピングするテーブルを維持する必要がある。
すべてのそれらの欠陥にも関わらず、やはり、NANDフラッシュメモリは、手ごろな価格で大量の記憶量を保存する能力により、固体状態大容量記憶デバイスに選ばれる好ましい媒体である。
したがって、ユーザ体験を向上させ、そのうえ、高費用対効果を達成するために、NANDフラッシュメモリを、より高い性能、信頼性、および耐久性、ことによると、より高価なタイプの媒体(例えば、同一の大容量記憶デバイス内のMRAM)で補完することが最善である。これは、決定的データおよびホストシステムデータを記憶するためによりハイグレードの媒体を使用すること、および、ホストの非決定的データを記憶するためにNANDフラッシュメモリを使用することによって、コントローラがその性能、信頼性、およびユーザ体験を最適化することを可能にする。
コントローラは、大容量記憶デバイスのMRAMアレイを多数の区分に分割し、それらをプライベート領域またはユーザ領域に割り当て、状況に応じてそれらを利用し得る。
必要とされているものは、異なるタイプのメモリ(例えば、NANDおよびMRAM)の使用をうまく利用し、かつ、信頼性があり、効率が良く、そのうえ、費用対効果が高い記憶デバイスである。
本発明は、例えば、以下を提供する。
(項目1)
大容量記憶デバイスであって、該大容量記憶デバイスは、
コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体と、
該第1のメモリおよび該第2のメモリの少なくとも一部に及んでいる混成予約領域と
を含み、決定的データは、該第2のメモリの該混成予約領域に記憶され、さらに、該コントローラは、該混成予約領域を管理するように動作可能である一方、混成LUNは、該ホストによって管理されている、大容量記憶デバイス。
(項目2)
少なくとも1つのLUNは、その利用に従って、特定のタイプの媒体、または、異なるタイプの媒体の集団にマッピングされる、項目1に記載の大容量記憶デバイス。
(項目3)
前記決定的データは、テーブルである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目4)
前記決定的データは、システムデータである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目5)
前記決定的データは、メタデータである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目6)
前記コントローラは、単一のインターフェースを通して前記記憶媒体に結合されている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目7)
前記第1のメモリは、NANDメモリであり、前記単一のインターフェースは、NANDフラッシュインターフェース回路である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目8)
前記第1のメモリおよび前記第2のメモリの少なくとも一部に及んでいる混成ユーザ領域をさらに含み、該混成ユーザ領域は、ユーザ領域部分およびユーザ領域部分から作られている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目9)
前記第1のメモリは、NANDデバイスを含み、前記第2のメモリは、MRAMデバイスを含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目10)
前記コントローラは、前記ホストの一部である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目11)
前記コントローラは、第1のインターフェース回路を含み、該コントローラは、該第1のインターフェース回路を使用して、前記記憶媒体と通信する、上記項目のいずれかに記載の大容量記憶デバイス。
(項目12)
前記第1のメモリは、第2のインターフェースを含み、前記第2のメモリは、第3のインターフェースを含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目13)
前記第1のインターフェース、前記第2のインターフェース、および前記第3のインターフェースは、同一のタイプのものである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目14)
前記コントローラは、単一のインターフェースを通して前記記憶媒体に結合されている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目15)
前記コントローラは、複数のインターフェースを通して前記記憶媒体に結合されている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目16)
前記第1のメモリおよび前記第2のメモリは、同一のダイ上に存在する、上記項目のいずれかに記載の大容量記憶デバイス。
(項目17)
前記第1のメモリは、NANDまたはRRAM(登録商標)を含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目18)
前記第2のメモリは、磁気ランダムアクセスメモリ(MRAM)、抵抗変化RAM(RRAM(登録商標))、または相変化メモリ(PCM)を含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目19)
前記コントローラは、LUNマネージャを含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目20)
前記コントローラは、誤りを検出および訂正するように動作可能な誤り訂正コード(ECC)を含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目21)
前記第2のメモリは、MRAMデバイスにおけるMRAMアレイから作られ、誤り訂正コード(ECC)は、該MRAMデバイスのうちの少なくとも1つの一部である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目22)
前記第1のメモリおよび前記第2のメモリは、単一のマルチチップパッケージ(MCP)にパッケージされている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目23)
ホストデータが前記LUNに移動される前に読み出される場合、前記コントローラは、前記混成予約領域からのみ該ホストデータにアクセスするように動作可能である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目24)
前記第1のメモリは、少なくとも1つの第1のメモリデバイスの一部であり、該第1のメモリデバイスは、インターフェースを含み、該第2のメモリは、第2のインターフェースを含む第2のメモリデバイスの一部である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目25)
第1のインターフェースおよび前記第2のインターフェースは、同一のタイプのものである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目26)
前記コントローラは、第3のインターフェースを含み、前記第1のインターフェース、前記第2のインターフェース、および該第3のインターフェースは、同一のタイプのものである、上記項目のいずれかに記載の大容量記憶デバイス。
(項目27)
大容量記憶デバイスであって、該大容量記憶デバイスは、
コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリを含む、記憶媒体と
を含み、該コントローラは、該ホストデータをキャッシュするために該第2のメモリを使用する、大容量記憶デバイス。
(項目28)
前記記憶媒体は、前記第1のメモリおよび前記第2のメモリならびに前記複数のLUNのうちの1つのLUNの少なくとも一部に及んでいる混成予約領域をさらに含み、さらに、決定的データは、該第2のメモリの該混成予約領域に記憶され、前記コントローラは、該混成予約領域を管理するように動作可能である一方、該複数のLUNは、前記ホストによって管理されている、上記項目のいずれかに記載の大容量記憶デバイス。
(項目29)
前記コントローラは、
データを記憶するためのコマンドに応答して、都合の良いときに、前記LUN内の利用可能な物理的位置を見つけることと、
前記ホストデータを前記第2のメモリの部分から前記LUNに移動させることと、
該LUN内に利用可能な物理的位置が存在しない場合に、該データを予約領域の第2のメモリの部分から該LUN内に移動させる前に、該LUNに情報を記憶するために利用可能な空間を作るために「ガベージコレクション」を行うことと
を行うように動作可能である、上記項目のいずれかに記載の大容量記憶デバイス。
(項目30)
前記第1のメモリは、NANDデバイスを含み、前記第2のメモリは、MRAMデバイスを含む、上記項目のいずれかに記載の大容量記憶デバイス。
(項目1A)
大容量記憶デバイスであって、該大容量記憶デバイスは、
コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリの少なくとも一部に及んでいる混成予約領域を有する、記憶媒体と
を含み、決定的データは、該第2のメモリの該混成予約領域に記憶され、さらに、該コントローラは、該混成予約領域を管理するように動作可能である一方、混成LUNは、該ホストによって管理されている、大容量記憶デバイス。
(項目27A)
大容量記憶デバイスであって、該大容量記憶デバイスは、
コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリを含み、該記憶媒体は、該第1のメモリおよび該第2のメモリならびに該複数のLUNのうちの1つのLUNの少なくとも一部に及んでいる混成予約領域をさらに含む、記憶媒体と
を含み、該コントローラは、該ホストデータをキャッシュするために該第2のメモリを使用し、さらに、決定的データは、該第2のメモリの該混成予約領域に記憶され、該コントローラは、該混成予約領域を管理するように動作可能である一方、該複数のLUNは、該ホストによって管理されている、大容量記憶デバイス。
(項目28A)
大容量記憶デバイスであって、該大容量記憶デバイスは、
コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリを含み、該記憶媒体は、該第1のメモリおよび該第2のメモリならびに該複数のLUNのうちの1つのLUNの少なくとも一部に及んでいる混成予約領域をさらに含む、記憶媒体と
を含み、該コントローラは、該ホストデータをキャッシュするために該第2のメモリを使用し、
該コントローラは、
データを記憶するためのコマンドに応答して、都合の良いときに、該LUN内の利用可能な物理的位置を見つけることと、
該ホストデータを該第2のメモリの部分から該LUNに移動させることと、
該LUN内に利用可能な物理的位置が存在しない場合に、該データを該予約領域の第2のメモリの部分から該LUN内に移動させる前に、該LUNに情報を記憶するために利用可能な空間を作るために「ガベージコレクション」を行うことと
を行うように動作可能である、大容量記憶デバイス。
(摘要)
大容量記憶デバイスは、ホストと通信するように構成されたコントローラを含む。コントローラは、第1のメモリおよび第2のメモリに結合され、第1のメモリおよび第2のメモリは、異なるタイプのものである。大容量記憶デバイスは、大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体を含む。大容量記憶デバイスは、第1のメモリおよび第2のメモリと、第1のメモリおよび第2のメモリの少なくとも一部に及んでいる混成予約領域とをさらに含む。
(発明の概要)
上記に説明された先行技術における制限を克服するために、および、本明細書の読解および理解に応じて明らかになる他の制限を克服するために、本発明は、磁気メモリ内の反転電流を減少させた電流誘起磁化反転に基づく磁気記憶メモリデバイスのための方法および対応する構造を開示する。
簡単に、本発明の実施形態は、ホストと通信するように構成されたコントローラを有する大容量記憶デバイスを含む。コントローラは、第1のメモリおよび第2のメモリに結合され、第1のメモリおよび第2のメモリは、異なるタイプのものである。大容量記憶デバイスは、大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体を含む。大容量記憶デバイスは、第1のメモリおよび第2のメモリと、第1のメモリおよび第2のメモリの少なくとも一部に及んでいる混成予約領域とをさらに含む。
本発明のこれらの目的および利点は、図面の種々の図に図示された好ましい実施形態の以下の詳細な説明を読解した後、疑いなく、当業者にとって明らかとなる。
図1は、本発明の実施形態に従って、大容量記憶デバイス10を示す。 図2は、本発明の別の実施形態に従って、混成予約領域36および混成ユーザ領域30のさらなる詳細を示す。 図3は、本発明の実施形態に従って、混成予約領域36および混成ユーザ領域30の例示的な論理表現を示す。 図4は、本発明の実施形態に従って、混成ユーザ領域30の例示的な論理表現を示す。 図5は、本発明の実施形態に従って、混成ユーザ領域30および混成予約領域36の各々に記憶される例示的なデータのタイプを示す。 図6は、本発明の方法に従って、大容量記憶デバイス10によって行われるステップのフローチャートを示す。 図7は、本発明の方法に従って、大容量記憶デバイス10によって行われるステップのフローチャートを示す。 図8は、本発明の実施形態に従って、コントローラ14または14’のさらなる詳細のハイレベルブロック図を示す。 図9および図10は、各々、本発明の方法に従って、ホストからのコマンドを処理する場合にLUNマネージャ93によって行われる関連ステップのフローチャートを示す。 図9および図10は、各々、本発明の方法に従って、ホストからのコマンドを処理する場合にLUNマネージャ93によって行われる関連ステップのフローチャートを示す。 図11は、本発明の実施形態に従って、大容量記憶デバイス1000を示す。 図12は、本発明の別の実施形態に従って、記憶媒体180のNAND LUN360、MRAM LUN380、および混成LUN300のさらなる詳細を示す。 図13は、論理アドレスを使用して、各々が別個の属性を有するLUN300、360、および38の例示的な表現を示す。 図14は、本発明の実施形態に従って、例示的な混成LUNを示す。 図15は、本発明の実施形態に従って、LUN300、360、および380の各々に記憶される例示的なデータのタイプを示す。 図16は、本発明の方法に従って、ホスト12による初期化中に、図11のデバイス1000によって行われるステップを示す。 図17は、本発明の実施形態に従って、サブシステム800を示す。 図18は、本発明の種々の実施形態の例示的な用途を示す。
(種々の実施形態の詳細な説明)
以下の実施形態の説明において、添付の図面への参照がなされ、添付の図面は、本明細書の一部を形成し、本発明が実施され得る特定の実施形態の例証の目的で示される。本発明の範囲から逸脱することなく、構造的変更がなされ得るので、他の実施形態が利用され得ることが理解される。
明白になるように、本発明のいくつかの実施形態において、MRAMおよびNANDフラッシュメモリは、大容量記憶デバイスにおいて組み合わせられる。現在、MRAMデバイスは、NANDフラッシュメモリよりも高価であり、NANDフラッシュメモリが提供する容量を提供することができないが、MRAMデバイスは、NANDフラッシュよりもはるかに高速であり、よりよい信頼性および耐久性を有する。したがって、MRAMデバイスは、そのような属性を必要とする決定的データを記憶するために、コントローラによって使用され得る。NANDフラッシュメモリは、より低い費用で大量の記憶量を提供し得、大量の記憶量は、ホストからのユーザデータを記憶するために、コントローラによって使用され得、ホストからのユーザデータは、より低い性能、信頼性、および耐久性を伴う大量の容量を必要とする。決定的データの例は、コントローラのブートコード、テーブル、およびデータキャッシュ、ならびにホストのファイルアロケーションテーブルおよびディレクトリ等であり、非決定的データの例は、写真、映画等である。
MRAMデバイスは、NANDフラッシュメモリよりも高価であるが、MRAMデバイスは、NANDフラッシュよりもはるかに高速であり、よりよい信頼性および耐久性を有し、MRAMデバイスは、そのような属性を必要とする決定的データを記憶するために使用され得る。NANDフラッシュメモリは、より低い性能、信頼性、および耐久性を伴うより大きな容量を必要とするユーザ領域を記憶するために、より低い費用で大量の記憶量を提供し得る。
図1は、本発明の実施形態に従って、大容量記憶デバイス10を示す。デバイス10は、NANDフラッシュインターフェース回路15とホストインターフェース20とを有するコントローラ14と、フラッシュインターフェース16と、記憶媒体18とを含むように示される。コントローラ14は、フラッシュインターフェース16を通して記憶媒体18に結合されるように示される。コントローラ14は、NANDフラッシュインターフェース回路15を含むように示される。
コントローラ14は、異なるタイプのデータを記憶するために、媒体内の異なるメモリを選択的に利用し得、異なるタイプのデータは、デバイス22および24を管理するために、コントローラ14によって主に使用される。
記憶媒体18は、多数のNANDフラッシュメモリデバイス22と、多数の磁気ランダムアクセスメモリ(MRAM)デバイス24とを含むように示される。記憶媒体18は、NANDアレイ32の一部とMRAMアレイ34の一部との組み合わせである混成予約領域36を含む。記憶媒体18はまた、NANDアレイ32の一部とMRAMアレイ34の一部との組み合わせである混成ユーザ領域30を含む。デバイス22は、NANDフラッシュインターフェース回路26とNANDアレイ32とを含むように示される。記憶媒体18のNANDアレイ32は、混成予約領域36のNAND部分36aと、混成ユーザ領域30のNAND部分30aとを含む。デバイス24は、NANDフラッシュインターフェース回路28と、MRAMアレイ34とを含むように示され、記憶媒体18のMRAMアレイ34は、混成予約領域36のMRAM部分36bと、混成ユーザ領域30のMRAM部分30bとを含む。
混成予約領域36は、MRAMデバイス24の一部であるMRAM部分36bとNANDフラッシュメモリデバイス22の一部であるNAND部分36aとによって、MRAMデバイス24およびNANDフラッシュデバイス22に及ぶ。同様に、混成ユーザ領域30は、MRAMデバイス24の一部であるMRAM部分30bとNANDフラッシュメモリデバイス22の一部であるNAND部分30aとによって、MRAMデバイス24およびNANDフラッシュデバイス22に及ぶ。
代替として、混成予約領域36は、完全に、MRAM部分36bの一部であり得る。同様に、代替実施形態において、混成ユーザ領域30は、完全に、MRAM部分30bの一部である。混成予約領域36および混成ユーザ領域30の両方が完全にMRAMデバイス24の一部である場合、NANDデバイス22に対する必要性は存在しない。
混成予約領域36は、プライベートデータまたはデバイス10のユーザがアクセス不可能なデータである情報を記憶するために使用される。プライベートデータの例は、ブートコード、システムデータ、メタデータ、またはテーブルを含む。
有利なことに、コントローラ14は、デバイス10を使用するホストの識別に関する先験的な情報に基づいて、ホスト提供データおよびホスト決定的データを混成ユーザ領域30のMRAM部分に記憶することを決定する。この例は、ファイルアロケーションテーブル(FAT)ファイルシステム(例えば、FAT16またはFAT32)の場合であり、そのシステムにおいて、コントローラ14が、マスターブートレコード(MBR)、パーティションブートレコード(PBR)、FAT、およびディレクトリを記憶し、それらのすべては、頻繁にアクセスされる情報であり、領域30bにおいて、アドレスのより低い論理ブロックアクセス(LBA)範囲に意図される。
図1の実施形態において、記憶媒体18は、各々が別個の相補的な属性を有する2種類のメモリデバイスを提供し、MRAMデバイス24が、非常に高性能で、かつ信頼性があり、NANDフラッシュメモリデバイス22が、記憶媒体18に容量の大部分を提供する。代替として、NANDフラッシュメモリデバイスは、他の不揮発性デバイス(例えば、抵抗変化RAM(RRAM(登録商標)、ReRAM))によって取り替えられ得る。
MRAMおよびNANDフラッシュを単一のデバイスに統合することを簡単化するために、MRAMデバイスは、NANDフラッシュインターフェースと互換性があるインターフェースを必要とする。さらに、既存の埋め込み型大容量記憶コントローラ(例えば、USB、MMC、およびSD)の大多数は、コントローラに対するいずれの変更もない場合、NANDフラッシュインターフェースを有するメモリのみをサポートする。したがって、NANDフラッシュインターフェースを有するMRAMデバイスは、既存のコントローラおよびNANDフラッシュメモリと容易に統合されることにより、異なる媒体タイプを有する大容量記憶デバイスを生成し、異なるシステム要件に対処し得る。
MRAMメモリは、記憶デバイスのメモリ媒体の非常に高い性能で、かつ信頼性がある部分を構成し、MRAMメモリは、そのような属性を必要とするデータを記憶するためにコントローラによって使用され得る。メモリ媒体のNANDフラッシュメモリ部分は、ユーザ領域、および、そのような厳しい要件を有しないデータタイプを記憶するためにコントローラによって使用され得る。
MRAMは、高速で、かつ信頼性があるが、MRAMは、新たなデータを書き込まれる前に消去することを必要としない。したがって、メモリ媒体のMRAM部分におけるデータの管理は、非常に簡単化され得る。コントローラは、もはや、ガベージコレクションおよびメモリ媒体のその部分のマッピングを行う必要がなく、これは、これらの記憶デバイスを利用するシステムの性能をさらに向上させる。
それはまた、データが既存のデータに上書きされ、それによって、マージおよび結局のGC工程を排除するので、小さなIOオペレーションの性能を向上させる。
メモリ媒体上にMRAMを有することの別の利点は、メタデータ情報を記憶することである。たいていのコントローラアーキテクチャ(例えば、SATAおよびmSATA)において、DDR2インターフェースまたはDDR3インターフェースのいずれかを有する外部DRAMは、システム性能を向上させるために、メタデータ情報を記憶するために使用される。MRAMの性質により、コントローラは、メタデータ情報を記憶するためにメモリ媒体のMRAM部分を使用し、DDRインターフェースおよび外部DRAM構成要素と関連付けられるコントローラコストを排除し得る。
典型的に、外部DRAMを必要としない他のコントローラ(例えば、USBおよびMMC/eMMC)は、メタデータ情報を記憶するためにNANDフラッシュを使用する。これらのコントローラは、メモリ媒体のMRAM部分も使用し、システム性能をさらに向上させ得る。
NANDフラッシュメモリと互換性があるインターフェースを有するMRAMは、NANDインターフェースを既に有するコントローラにとって透明になり、書き込みの領域、ガベージコレクションの領域、メモリ媒体のMRAM部分によるメタデータ管理の領域におけるファームウェアへの些細な変更で、システム性能は、実質的に増大する。
MRAM部分36bは、ホストデータまたはホストによって提供されたデータをキャッシュするために、コントローラ14によって使用され得る。コントローラ14は、ホスト書き込みコマンドに応答して、ホストデータをMRAM部分36bに書き込み、書き込みコマンドが完了したことをホストに知らせ得る。それから、コントローラ14は、都合の良いときに、混成ユーザ領域30内の利用可能な物理的位置を見つけ、ホストデータをMRAM部分36bから混成ユーザ領域30まで移動させ得、このことは、有利なことに、コマンド完了待ち時間を実質的に減少させる。混成ユーザ領域30内に利用可能な物理的位置が存在しない場合、コントローラ14は、ホストデータをMRAM部分36bから混成ユーザ領域30内へ移動させる前に、NAND部分30aに情報を記憶するための利用可能な空間を作るために、「ガベージコレクション」を行う。その間に、ホストが、コントローラ14が混成予約領域36に保存したが、まだ混成ユーザ領域30に移動されていないデータを読み出すことを望む場合、コントローラ14は、混成予約領域36からのみ本データにアクセスすることを知っている。したがって、ホストデータコヒーレンシは、維持される。
本発明の別の実施形態において、コントローラ14はまた、NANDフラッシュフルページプログラムオペレーションを行うために十分なホストデータを収集するために、MRAM部分36bを使用し得る。周知のように、NANDフラッシュフルページプログラムオペレーションにおいて、ホストIOオペレーションがNANDフラッシュメモリのページプログラム単位よりも小さい場合、コントローラは、古いデータと新たなデータとをマージすることを伴い、かつ、時間がかかる部分的ページプログラミングを行うこと、または、揮発性SRAM/DRAMバッファにデータを保存し、ページプログラムオペレーションを行うために十分なデータが存在するまで、ホストから追加のコマンドを待つことのいずれかを行う必要がある。その間に、コントローラは、ホストデータが永続的な媒体にまだ書き込まれていないので、ホストにコマンド完了を送信することができない。古いデータと新たなデータとをマージする工程は、古いデータを読み出し、新たなデータと、読み出された古いデータとを結びつけ、その全体をNANDフラッシュメモリデバイス内の別の物理的位置に書き込むことを必要とし、それは、時間がかかり、かつデバイスの性能に影響を与えるのみならず、NANDフラッシュプログラム/消去オペレーションの回数を増加させ、NANDフラッシュの信頼性および耐久性に悪影響を与える。その間、ホストが、コントローラ14が予約領域のMRAM部分36bに保存したが、まだ混成ユーザ領域30に移動されていないデータを読み出すことを望む場合、コントローラ14は、予約領域のMRAM部分36bからのみ本データにアクセスすることを知っている。したがって、ホストデータホストデータコヒーレンシは、維持される。上述の問題は、ホストデータをキャッシュするためにMRAM部分36bを使用することによって、本発明の種々の実施形態において最小にされ、それは、MRAMの永続的な特性により、特に、多数の小さなIOオペレーションを有するシステムにおいて、コマンド待ち時間およびシステムの信頼性を実質的に向上させる。
本発明のいくつかの実施形態において、本明細書に論じられ、示されるように、MRAMメモリは、コントローラの予約領域にマッピングされ、非常に高い性能で、かつ信頼性がある媒体を、そのような特性を必要とするコントローラの決定的パラメータに提供する。NANDフラッシュメモリはまた、ユーザ領域内にマッピングされ、ユーザデータおよびそのような厳しい要件を有しないデータタイプのために使用され得る。MRAMとNANDフラッシュメモリとの組み合わせはまた、混成ユーザ領域および混成予約領域内にマッピングされ、記憶されているデータのうちのいくつかのために高い信頼性および性能のみを要求するシステムに対して使用され得る。コントローラは、パラメータおよびホストデータを記憶するために、それらの属性に基づいて、媒体タイプを使用する。
図2は、NANDフラッシュメモリデバイス22のNANDアレイ32およびMRAMデバイス24のMRAMアレイ34の物理的表現のさらなる詳細を示す。記憶媒体18のNANDアレイ32は、混成予約領域36のNAND部分36aと、混成ユーザ領域30のNAND部分30aとを含む。本発明の別の実施形態に従って、記憶媒体18のMRAMアレイ34は、混成予約領域36のNAND部分36bと、混成ユーザ領域30のMRAM部分30bとを含む。混成予約領域36および混成ユーザ領域30は、それぞれ、MRAM部分36bおよび30bとNAND部分36aおよび30aとの異なる組み合わせから構築され得る。
図3は、図2の混成予約領域36および混成ユーザ領域30のメモリアレイの例示的な論理表現を示す。混成予約領域36は、混合メモリアレイ(MRAM部分36bおよびNAND部分36a)から作られ、データを記憶するために、コントローラ14に混合属性予約領域を提供する。混成ユーザ領域30は、混合メモリアレイ(MRAM部分30bおよびNAND部分30a)から作られ、ホストデータを記憶するために、コントローラ14に混合属性ユーザ領域を提供する。
図4は、本発明の実施形態に従って、混成ユーザ領域の異なるタイプのメモリアレイの例示的な論理表現を示す。混成ユーザ領域54、76、および78の各々は、図1の混成ユーザ領域30であり得る。図4において、混成ユーザ領域54は、より低い論理ブロックアドレス(LBA)上のMRAMメモリアレイ部分56と、より高いLBAにおけるNANDメモリアレイ部分58とを含むように示される。本発明の別の実施形態に従って、混成ユーザ領域76は、LBA範囲の中間におけるMRAMメモリアレイ部分62と、より低いLBA範囲およびより高いLBA範囲における2つのNANDメモリアレイ部分60および64とを含むように示される。混成ユーザ領域78は、2つの異なるLBA範囲におけるMRAMメモリアレイ部分68および72と、より低いLBA範囲、中間のLBA範囲、および、より上のLBA範囲における3つのNANDメモリアレイ部分66、70、および74とを含むように示される。混成ユーザ領域の異なるメモリアレイのこれらの例示的な論理表現は、ユーザ領域が任意のサイズのものであり、MRAMメモリアレイとNANDメモリアレイとの組み合わせであり得ることを論証している。さらに、混成ユーザ領域のMRAMメモリアレイ部分およびNANDメモリアレイ部分は、任意のサイズであり、混成ユーザ領域の論理アドレス空間範囲の種々の部分を占め得る。
図5は、本発明の実施形態に従って、混成予約領域36および混成ユーザ領域30の各々のメモリアレイにコントローラ14によって記憶される例示的なデータのタイプを示す。混成予約領域36のMRAM部分36bは、例示的な実施形態として、ブートコード、テーブル、およびデータキャッシュを含むように示され、これらは、コントローラによって頻繁にアクセスされ、システム性能に影響を与え、混成予約領域36のNAND部分36aは、例えば、非必須なコントローラデータを含むように示される。混成ユーザ領域30のMRAM部分30bは、例えば、FATおよびディレクトリを含むように示され、これらは、ホストによって頻繁にアクセスされ、システム性能に影響を与え、混成ユーザ領域30のNAND部分30aは、例えば、ホストからのデータ(例えば、写真、映画、およびビデオ)を含むように示される。
図6は、本発明の方法に従って、大容量記憶デバイス10によって行われるステップのフローチャート100を示す。図6のステップは、概して、コントローラ14(図1)によって行われる。ステップ114において、典型的にホストによって提供されるLUNへの書き込みコマンドは、コントローラ14によって受信され、続いて、ユーザデータが受信される。ステップ102において、コントローラ14によって受信されたユーザデータは、デバイス24の予約領域のMRAM部分、つまりMRAM部分36bに書き込まれる。次に、ステップ104において、ステップ102における書き込みの完了を示すコマンドが、コントローラ14によってホストインターフェース20を通してホストに送信され、MRAM部分36bにあるユーザデータの位置を識別するポインタが、設定される。
次に、106において、ユーザデータが意図されたLUNに利用可能な空間が残っているか否かに関する決定が、コントローラ14によってなされる。利用可能な空間が残っていない場合、工程は、ステップ112に続き、ステップ112において、意図されたLUNにおける空間が、ガベージコレクションを行うことによって、コントローラ14によって解放され、利用可能な空間が残っている場合、工程は、ステップ108に移る。
ステップ108において、ユーザデータは、MRAM部分36bから意図されたLUNに移動され、ステップ104のポインタが、ユーザデータが移動されたLUNにおける位置を指示するように再調整され、工程は、ステップ110において終了する。
図7は、本発明の方法に従って、大容量記憶デバイス10によって行われるステップのフローチャート120を示す。ステップ122において、LUNへの新たな書き込みコマンドが、ホストからコントローラ14によって受信され、続いて、ユーザデータが受信される。次に、ステップ122においてコントローラ14によって受信されたホスト書き込みコマンドが、フルフラッシュページへの書き込み、つまりフルフラッシュページオペレーションであるか否かに関する決定が、ステップ124においてなされる。フルフラッシュページオペレーションである場合、ユーザデータは、意図されたLUNに書き込まれ、工程は、ステップ134において終了する。
ホスト書き込みコマンドが、フルフラッシュページでない場合、工程は、ステップ128に続き、ステップ128において、ユーザデータは、図6のステップ102においてなされたように、予約領域のMRAM部分36bに書き込まれ、コマンド完了が、コントローラ14によってホストに送信され、MRAM部分36bにあるユーザデータの位置を識別するポインタが、設定される。
次に、130において、フルページオペレーションのために十分なデータが予約領域のMRAM部分に収集されたか否かに関する決定がなされる。収集されている場合、ユーザデータは、MRAM部分36bから意図されたLUNに移動され、ステップ128のポインタが、ユーザデータが移動されたLUNにおける位置を指示するように再調整され、工程は、134において終了する。フルページオペレーションのために十分なデータが存在しない場合、コントローラは、ステップ122において、ホストからの新たな書き込みコマンドを待つ。
図8は、本発明の実施形態に従って、(図1に示される)コントローラ14のブロック図を示す。コントローラ14は、ホストインターフェースブロック90と、CPU92とLUNマネージャ93と、データバッファ94と、NAND誤り訂正コード(ECC)95と、MRAM ECC96と、NANDフラッシュインターフェース回路15とを含むように示される。コントローラ14の一部として図8に示される構造は、概して、CPU92によって制御される。したがって、CPU92は、これらの構造と結合される。ホストインターフェースブロック90は、LUNマネージャ93に結合され、データバッファ94に結合される。LUNマネージャ93は、データバッファ94に結合される。LUNマネージャ93は、NAND ECC95およびMRAM ECC96にさらに結合され、NAND ECC95は、CPU92に結合されることに加えて、回路15に結合される。同様に、MRAM ECC96は、CPU92に結合されることに加えて、回路15に結合される。
NAND ECCおよび回路15は、当該技術分野において既知の他のタイプのメモリであり得ることが理解される。例えば、NAND ECCは、ダイナミックランダムアクセスメモリ(DRAM)ECC、または抵抗変化ランダムアクセスメモリ(RRAM(登録商標))ECCであり得、回路15は、DDR2またはDDR3またはDRAMインターフェースであり得る。この目的のために、NANDアレイ32は、他のタイプのメモリであり得、回路26は、他のタイプのインターフェースであり得る。例えば、NANDアレイ32は、DRAM、SRAM、または、MRAMを除く任意の他のタイプの不揮発性メモリ(例えば、RRAM(登録商標))であり得、回路26は、DRAMまたはSRAMインターフェース、またはDDR2またはDDR3インターフェースであり得る。回路15におけるインターフェースのタイプは、NANDアレイ32のメモリタイプによって明白に決定される。
コマンドおよびデータは、書き込みオペレーション中にホストインターフェース90を通して受信される。読み出しオペレーション中に、コマンドは、同様の態様で受信され、データは、インターフェース回路15を通して受信される。CPU92は、ホストから受信されたコマンドを処理し、ホストからのデータをデータバッファ94内に受信すること、または、記憶媒体からのデータをデータバッファ94内に受信することのいずれかを行うようにコントローラを構成する。LUNマネージャ93は、ホストおよびコントローラによって設定されたLUN構成情報に基づいて、データの出所または行先を決定する。書き込みオペレーション中に、データの行先に応じて、NAND ECC95またはMRAM ECC96のいずれかが、メモリに保存されるデータをエンコードし、インターフェース回路15が、エンコードされたデータをフラッシュインターフェース16に結合する。読み出しオペレーション中に、データは、インターフェース回路15によってインターフェース16を通して受信され、データは、データの出所に応じて、NAND ECC95またはMRAM ECC96のいずれかによってデコードされ、それから、データバッファ94に置かれ、ホストインターフェース20に結合するためにホストインターフェース90に提供される。
いくつかの実施形態において、MRAMアレイ34は、MRAM ECCエンジン96によって提供される保護を必要としないこともあるか、またはMRAMデバイスは、必要とされる保護を含み、外部回路を必要としない。さらに別の実施形態において、MRAM ECC94およびNAND ECC95は、単一のECCエンジンに組み合わせられ、データが意図されるメモリアレイに従って構成され得る。
オペレーション中、ホストインターフェースブロック90は、CPU92の制御のもと、ホストインターフェース20を通してコマンドおよびデータを受信し、コマンドおよびデータをLUNマネージャ93に提供する。LUNマネージャ93は、受信された情報を処理し、このことは、後の図面および後続の説明にさらに説明される。受信された情報を処理すると、LUNマネージャ93は、記憶のために、データバッファにデータを伝送する。データの意図された行先に応じて、LUNマネージャ93によって決定される場合、データは、NAND ECC95またはMRAM ECC96のいずれかに伝送される。例えば、LUNマネージャ93が、データがMRAMアレイ34(図1に示される)に記憶することに適していると決定する場合、データは、MRAM ECC95に伝送され、そうでない場合、データは、NAND ECC95に伝送される。
ECC95および96の各々は、当該産業において周知のシンドロームを使用してデータをコードするが、MRAM ECC96は、典型的に、より小さなシンドロームを有し、その結果、典型的により大きなシンドロームおよびオーバーヘッドを有するNAND ECC95よりも短いオーバーヘッドをもたらす。実際に、NANDデータおよびMRAMデータのために2つの別個のECCを使用することの魅力の一部は、MRAMアレイに意図されたデータに関連付けられたより短いオーバーヘッドから利益を得ることである。言い換えると、仮に、NAND ECC95およびMRAM ECC96が、実行可能かつ想定される単一のECCに組み合わせられる場合、ECCシンドロームは、たとえ、MRAM ECCがNAND ECCのECCシンドロームの一部分であるECCシンドロームを必要としても、NAND ECCに対応するために十分に大きくある必要がある。これは、ECCビットが、アレイに記憶される場合にデータに付加されるので、MRAMアレイ34における無駄な空間をもたらす。
図9および図10は、各々、本発明の方法に従って、ホストからのコマンドを処理する場合にLUNマネージャ93によって行われる関連ステップのフローチャートを示す。図9は、ホストからの書き込みコマンドを処理するためのフローチャート120を示す。ステップ122において、新たな書き込みコマンドが、ホストからホストインターフェース20を通して受信される。次に124において、行先LUNが決定され、書き込まれるデータの行先は、LUNのMRAM部分であるか、LUNのNAND部分である。データがMRAMに記憶されるように意図されていることが決定される場合、工程は、物理アドレスが計算されるステップ127に続き、そうでない場合、工程は、ステップ126に移る。ステップ127における物理アドレスの計算の後、ホストから受信されたコマンドは、ステップ128において、適切なLUNおよびメモリアレイ部分に向けられ、工程は、129において終了する。ステップ126において、物理アドレスが割り当てられ、フラッシュ変換レイヤ(FTL)テーブルが更新され、これは、NANDのようなフラッシュメモリが採用される場合に必要とされる。
図10は、ホストからの読み出しコマンドを処理するためのフローチャート120を示す。ステップ123において、新たな読み出しコマンドが、ホストからホストインターフェース20を通して受信される。次に、ステップ134において、出所LUNが決定され、読み出されるデータの出所は、LUNのMRAM部分からであるか、LUNのNAND部分からである。データがMRAMから読み出されることが決定される場合、工程は、物理アドレスが計算されるステップ137に続き、そうでない場合、工程は、ステップ136に移る。ステップ137における物理アドレスの計算の後、ホストから受信されたコマンドは、ステップ138において、適切なLUNおよびメモリアレイ部分に向けられ、工程は、139において終了する。ステップ136において、物理アドレスは、FTLテーブルから探索され、これは、NANDのようなフラッシュメモリが採用される場合に必要とされる。
本発明の種々の実施形態を使用することから明白なように、ユーザ体験を向上させ、そのうえ、高費用対効果を達成するために、NANDフラッシュメモリは、より高い性能、信頼性、および耐久性、ことによると、より高価なタイプの媒体(例えば、同一の大容量記憶デバイス内のMRAM)を使用することによって、補完される。これは、決定的データを記憶するためによりハイグレードの媒体を使用すること、および、非決定的データを記憶するためにNANDフラッシュメモリを使用することによって、ホストがその性能、信頼性、およびユーザ体験を最適化することを可能にする。
ホストソフトウェアは、デバイス能力およびリソースに基づいて、大容量記憶デバイスを多数のLUNに区分し得、各LUNは、特定のLUN利用に従って、1つのタイプの媒体、または、異なるタイプの媒体の組み合わせにマッピングされる。
MRAMおよびNANDフラッシュメモリは、大容量記憶デバイス内で組み合わせられることにより、おそらくさらなる利益の中で、記憶デバイスの性能および信頼性を向上させる。現在、MRAMデバイスは、NANDフラッシュメモリよりも高価であり、NANDフラッシュメモリが提供する容量を提供することができないが、NANDフラッシュよりもはるかに高速であり、よりよい信頼性および耐久性を有する。後に続く種々の実施形態において、MRAMデバイスは、特定の属性を必要とする決定的データを記憶するために、ホストによって使用される。組み合わせにおいて、NANDフラッシュメモリは、MRAMデバイスと共に採用されることにより、より低い費用で大量の記憶量を可能にする。NANDフラッシュメモリは、非決定的ユーザデータを記憶するためにホストによって使用され、非決定的ユーザデータは、より低い性能、信頼性、および耐久性を伴う大容量を必要とする。以前に示されたように、決定的データの例は、OS、データベースインデックス、および同様のものである。以前に示されたように、非決定的データの例は、写真、映画、および同様のものである。
MRAMおよびNANDフラッシュを単一のデバイスに統合することを簡単化するために、MRAMデバイスは、対応するNANDフラッシュデバイスのインターフェースと互換性があるインターフェースを有するように開示される。さらに、NANDフラッシュインターフェースを有するメモリのみをサポートする既存の大容量記憶コントローラ(例えば、マルチメディアカード(MMC)、およびユニバーサルシリアルバス(USB))の大多数は、コントローラに対するいずれの変更もなしに、MRAMデバイスを使用し得る。いくつかの実施形態において、MRAMデバイスは、既知のコントローラおよびNANDフラッシュメモリと統合されたNANDフラッシュインターフェースを含み、異なるシステム要件に対処するために異なる媒体タイプを有利に有する大容量記憶デバイスを規定するように開示される。
本発明のいくつかの実施形態において、すぐに明白になるように、MRAMメモリは、1つ以上の区分、または論理ユニット番号(LUN)にマッピングされ、本明細書において「MRAM LUN」と称され、本明細書の上記に説明された特性を必要とするデータタイプに、非常に高い性能で、信頼性がある媒体を提供する。
いくつかの実施形態において、NANDフラッシュメモリは、1つ以上の区分、またはLUN(「NAND LAN」)にマッピングされ、ユーザデータ、およびそのような厳しい要件を必要としないデータタイプを記憶するために使用される。いくつかの実施形態において、MRAMおよびNANDフラッシュメモリの組み合わせは、記憶されるデータのうちのいくつかに対して、高い信頼性および性能のみを必要とするLUN(「混成LUN」)にマッピングされる。そのような構成を使用するホストは、LUNの属性に基づいて、LUNを有利に利用する。
いくつかの実施形態において、LUNは、記憶デバイス製作者によって事前構成され得、ホストは、単に、何らかの先行知識に基づいて、LUNを使用する。より多目的な構成において、記憶デバイスは、その記憶リソースおよび能力(例えば、NANDフラッシュメモリおよびMRAMの容量)をホストに報告し、それから、ホストは、その要件に従ってLUNを構成する。
次に、図11を参照すると、本発明の実施形態に従って、大容量記憶デバイス1000が、ホスト12と、コントローラ140と、フラッシュインターフェース160と、記憶媒体180とを含むように示される。コントローラ140は、NANDフラッシュインターフェース回路150を含むように示され、記憶媒体180は、多数のNANDフラッシュメモリデバイス220と、多数の磁気ランダムアクセスメモリ(MRAM)デバイス240とを含むように示される。デバイス220は、NANDフラッシュインターフェース回路260を含むように示され、デバイス240は、NANDフラッシュインターフェース回路280を含むように示される。さらに、NANDアレイ320のいくつかは、本明細書に「NAND LUNメモリアレイ36」と称される領域を規定し、MRAMアレイ340は、その中に「MRAM LUNメモリアレイ」380と称される領域を規定する。混成LUNメモリアレイ300は、デバイス220および240に
及ぶように示される。
デバイス220は、NANDアレイ320を含み、デバイス240は、MRAMアレイ340を含む。さらに、デバイス220は、NAND LUNメモリアレイ360を含み、デバイス240は、MRAM LUNメモリアレイ380を含む。
ホスト12は、ホストインターフェース200を通してコントローラ140に結合されるように示され、コントローラ140は、フラッシュインターフェース16を通して記憶媒体180に結合されるように示される。本態様で、ホスト12は、他のタイプの情報の中で、コマンド、決定的データ、および非決定的データをホストインターフェース200を通してコントローラ140に送信する。同様に、コントローラ140は、フラッシュインターフェース160を通してデバイス220および240にアクセスする。インターフェース200および160の各々は、当業者に容易に知られるインターフェースから作られる。
混成LUNメモリアレイ300は、NANDアレイ320の一部とMRAM部分340の一部との組み合わせから作られる。混成LUNメモリアレイ300のNANDアレイ320の一部は、本明細書において、「混成LUN NAND部分」300aと称され、混成LUNメモリアレイ300のMRAMアレイ340の一部は、本明細書において、「混成LUN MRAM部分」300bと称される。
いくつかの実施形態において、図11に示されないが、「LUN」は、コントローラ140の少なくとも一部を含む。
インターフェース回路150、260および280は、NANDフラッシュ以外であり得、その例は、DDR2、DDR3、DDR4、SPI、または任意の他の業界標準または専用インターフェースを含むが、これらに限定されないことが理解される。NANDアレイ320およびメモリアレイ360は、NAND以外であり得、任意のタイプの不揮発性メモリであり得、その例は、実質的にMRAMと異なる特性を持つRRAM(登録商標)、PCM、または任意の他の不揮発性メモリを含むが、これらに限定されないことがまた理解される。MRAMアレイ340およびメモリアレイ380は、任意のタイプの不揮発性メモリ(例えば、実質的にNANDと異なる特性を持つ抵抗変化ランダムアクセスメモリ、相変化メモリであるが、これらに限定されない)であり得ることがさらに理解される。
オペレーション中、ホスト12は、ホストインターフェース200を通して、コントローラ140に情報を送信し、コントローラ140から情報を受信する。この情報は、フラッシュインターフェース160を通して記憶媒体180にアクセスするために、コントローラ140を指揮するように意図されたコマンドおよびデータである。データは、決定的データまたは非決定的データの形態を成し得る。非決定的データをホスト12から受信すると、コントローラ140は、ホスト12の指揮のもと、ホスト12によって決定されるように、MRAM LUNメモリアレイ380および混成LUN MRAM部分300bに非決定的データを書き込む。コントローラ140は、そのインターフェース150を通して情報を送信および受信し、同様に、デバイス220は、そのインターフェース回路260を使用して情報を送信および受信し、同様に、デバイス240は、そのインターフェース回路280を使用して情報を送信および受信する。したがって、インターフェース回路150、260、および280は、互換性がある。
ホスト12は、ホストコマンドを使用して、インターフェース200を通して情報を送信および受信する一方、コントローラ140は、当業者に周知のフラッシュプロトコルを使用して、インターフェース160を通して情報を送信および受信する。
図11の実施形態において、記憶媒体180は、2つのタイプのメモリデバイス、つまり、デバイス220および240を含み、デバイス220および240の各々は、別個の相補的な属性を有する。例えば、デバイス240は、性能および信頼性が非常に高く、デバイス220は、記憶媒体180に容量の大部分を提供し、したがって、容量が大きい。
一実施形態において、コントローラ140は、これらのデバイス220および240がどこに配備され、どのように配備されるかの何らかの既知の知識(先験的な情報)に基づいて、記憶デバイス1000(本明細書において、「大容量記憶デバイス」1000とも称される)の製造中に、記憶媒体180を多数のNAND LUNメモリアレイ360、MRAM LUNメモリアレイ380、および混成LUNメモリアレイ300に事前構成する。
別のより多目的な実施形態において、大容量記憶デバイス1000は、デバイス初期化中に、そのリソース(例えば、NANDフラッシュメモリデバイス220およびMRAMデバイス240の数およびタイプ)をホスト12に報告し、ホスト120は、その記憶利用要件に従って、大容量記憶デバイス100を構成する。大容量記憶デバイス100は、記憶デバイス180に構成情報を記憶し、後の電源投入サイクルのために、ホスト120に報告するために構成情報を使用する。
さらに別の実施形態において、ホストおよびデバイスの両方は、構成情報を記憶し、後の電源投入サイクル中に、デバイスのいくつかの特有の特性(例えば、ベンダーID、プロダクトID、およびシリアル番号)に基づいて、それを復元する。
図12は、NANDフラッシュメモリデバイス220のNANDアレイ320およびMRAMデバイス240のMRAMアレイ340の物理的表現のさらなる詳細を示す。NANDアレイ320は、NAND LUNメモリアレイ36と混成LUN NAND部分300aとから作られるように示される。MRAMアレイ340は、本発明の別の実施形態に従って、MRAM LUNメモリアレイ380と混成LUN MRAM部分300bとから作られるように示される。混成LUNメモリアレイ300は、混成LUN NAND部分300aと混成LUN MRAM部分300bとから作られ、多数の混成LUNメモリアレイ(例えば、混成LUNメモリアレイ46〜混成LUNのメモリアレイ480)から作られるように示される。混成LUNメモリアレイ460〜混成LUNメモリアレイ480は、異なるサイズであり、MRAMアレイ380とNANDアレイ360との異なる組み合わせから構築され得る。NAND LUNメモリアレイ360は、多数のNAND LUNメモリアレイ400〜NAND LUNメモリアレイ420に区分されるように示される。MRAM LUNメモリアレイ380は、多数のMRAM LUNメモリアレイ500〜MRAM LUNメモリアレイ520に区分されるように示される。
図13は、LUN440、430、および450のメモリアレイの例示的な論理表現を示し、LUN440、430、および450は各々、別個の属性を有する。混成LUN440は、混合メモリアレイ460(混成LUN MRAM部分460bおよび混成LUN NAND部分460a)から作られ、混合属性LUNをホスト12に提供する。NAND LUN430は、NAND LUNメモリアレイ400から作られ、NANDフラッシュメモリデバイス220に関連付けられる属性のみを提供する。MRAM LUN450は、MRAM LUNメモリアレイ500から作られ、MRAMデバイス240に関連付けられる属性のみを提供する。
図14は、本発明の実施形態に従って、混成LUNの異なるタイプのメモリアレイの例示的な論理表現を示す。LUN540、760および780の各々は、図11のメモリアレイ300を含む混成LUNであり得る。図14において、混成LUN540は、より低い論理ブロックアドレス(LBA)上のMRAMメモリアレイ部分560と、より高いLBAにおけるNANDメモリアレイ部分580とを含むように示される。本発明の別の実施形態に従って、混成LUN760は、LBA範囲の中間におけるMRAMメモリアレイ部分620と、LUNのより低いLBA範囲およびより高いLBA範囲における2つのNANDメモリアレイ部分600および640とを含むように示される。LUN780は、2つの異なるLBA範囲におけるMRAMメモリアレイ部分680および720と、LUNのより低いLBA範囲、中間のLBA範囲、および、より上のLBA範囲における3つのNANDメモリアレイ部分660、700、および740とを含むように示される。LUNの異なるメモリアレイのこれらの例示的な論理表現は、LUNが任意のサイズのものであり得ることを論証している。さらに、混成LUNのMRAMメモリアレイ部分およびNANDメモリアレイ部分は、任意のサイズであり、LUN論理アドレス空間範囲の種々の部分を占め得る。
図14は、fLUNを識別する論理ブロックアドレス(LBA)の例を示す。LUNのいくつかは、連続的であるように示され、その他は、不連続的であるように示される。例えば、LUN540は、MRAMメモリアレイ部分560と、後に続くNANDメモリアレイLUN580とを含む一方、LUN780は、NANDメモリアレイを織り交ぜられたMRAMメモリアレイを含む。どちらのタイプのメモリアレイも、ホストおよび/またはコントローラのLUN利用に基づいて、任意のLBAによって識別され得ることが留意される。同様に、物理アドレス空間が、メモリアレイ内に不連続的に存在し得る。例えば、MRAMメモリアレイ部分560は、デバイス24内で不連続的である物理アドレスを含み得る。同様に、NANDメモリアレイ部分580は、デバイス22内で不連続的である物理ブロックアドレスを含み得る。
図15は、本発明の実施形態に従って、LUN460、400、500の各々のメモリアレイにホスト12によって記憶される例示的なデータのタイプを示す。混成LUN460のMRAM部分460bに記憶される例示的な情報は、オペレーティングシステムのファイルアロケーションテーブル(FAT)、ディレクトリ、およびインデックス構造を含み、これらは、頻繁にアクセスされ、システム性能に影響を与える。混成LUN460のNAND部分460aに記憶される例示的な情報は、ユーザデータを含み、これは、典型的に、MRAM部分460bに記憶されるタイプのデータ(例えば、決定的データ)ほど多くはアクセスされない。NAND LUN40は、NANDメモリアレイのみから作られ、FAT、ディレクトリ、およびユーザデータを含む、LUNに関連付けられるすべてを保持する必要がある。MRAM LUN500は、高性能MRAMアレイからすべて作られ、FAT、ディレクトリ、向上したユーザデータ、およびデータベースインデックス構造を記憶するためにホストによって使用されるはずである。本LUNは、最高の性能を提供し、状況に応じて、ホストによって使用されるはずである。
図16は、本発明の方法に従って、初期化中に、デバイス1000および図1のホスト12によって行われるステップを示す。これらのステップは、ホスト12によって開始され、デバイス1000のコントローラ140に向けられる。
図17において、コントローラ140は、1001において、デバイス1000内のメモリアレイの数およびタイプを見出し、それらのリソース(例えば、記憶媒体180がNANDデバイス220対MRAMデバイス240を有するか否か、および、記憶媒体180がNANDデバイス220対MRAMデバイス240をいくつ有するか)をホスト12に報告し、次に、1020において、ホスト12は、使用要件およびデバイスリソースに従って、デバイス1000内のLUNを構成する。デバイス1000は、それに応じて、自身を構成し、構成ファイルを記憶する。その後、1040において、デバイス1000は、記憶された構成ファイルに従って自身を構成し、構成をホスト12に報告する。
したがって、本発明の種々の実施形態および方法に従って、異なるメモリ媒体(つまり、MRAMおよびNANDメモリ)を有する記憶デバイスが、開示され、MRAMは、NANDメモリよりの読み出し書き込みアクセス時間よりも実質的に速い読み出し書き込みアクセス時間を有する。さらに、MRAMは、再プログラムされる前に、消去されることを必要としない。したがって、テーブルおよびテーブル管理に対する必要性が、排除される。本アプローチから利益を得る用途は、小さなIOオペレーションおよび部分的ページオペレーションを伴うものを含む多くのものである。そのうえ、ガベージコレクションおよびウェアレベリングが、排除される。MRAMがより高い耐久性および信頼性を有し、動的ウェアレベリングも静的ウェアレベリングも必要としないので、データは、はるかに長い時間の間、媒体にとどまる。NANDは、高費用対効果の方法で大量の容量を提供する。上記に従って、デバイス10のような記憶デバイスは、有利なことに、MRAMおよびNANDの組み合わせの結果として、異なる属性を有するLUNを生成および管理することができる。
いくつかの実施形態において、ホストは、デバイスリソースおよびその要件に基づいて、デバイス上のLUNを構成する。さらに、ホストは、LUNの属性に基づいて、LUNを利用し、決定的データのためにMRAM LUNを巧妙に使用する。さらに、ホストは、非決定的データのためにNANDフラッシュを巧妙に使用する。
本発明の一実施形態において、コントローラ14は、以前に論じられたように、図1における予約領域36のような予約領域を管理する一方、ホストは、図12のメモリアレイの混成LUN300または480のような混成LUNを管理する。
適切な性能および耐久性を有する、MRAM以外のメモリ(例えば、抵抗変化RAM(RRAM(登録商標))、相変化メモリ(PCM)であるが、これらを含まない)が、本発明の範囲および精神から逸脱することなしに、MRAMデバイス24の代わりに使用され得る。
図17は、本発明の実施形態に従って、ホスト12’と、コントローラ14’と、フラッシュインターフェース16’と、記憶媒体18’とを含むサブシステム800を示す。コントローラ14’は、NANDフラッシュインターフェース回路15’を含むように示され、記憶媒体18’は、NANDフラッシュメモリデバイス22と、磁気ランダムアクセスメモリ(MRAM)デバイス24とを含むように示される。サブシステム800は、サブシステム800のコントローラ14’がホスト12’の内部に存在することを除いて、図1のサブシステム10に類似している。同様に、コントローラ14’の一部である回路15’は、ホスト12’内に存在する。
回路14’は、標準NANDフラッシュインターフェース回路以外(例えば、DDR2、DDR3、DDR4、SPI、または任意の他の業界標準または専用インターフェース)であり得ることが理解される。これは、NANDフラッシュインターフェース回路15’、26、および28に適用される。インターフェース16’は、1つのインターフェースであり、インターフェース回路15’をインターフェース回路26および28に結合する。いくつかの実施形態において、NANDアレイ32およびNAND LUNメモリアレイ36は、NAND以外(例えば、実質的にMRAMと異なる特性を持つRRAM(登録商標)、相変化メモリ(PCM)、または任意の他の不揮発性メモリ)から作られ得る。
いくつかの実施形態において、インターフェース回路26および28は、異なるタイプのものである。例えば、インターフェース回路26は、標準NANDインターフェースであり、インターフェース回路28は、DDR4である。その実施形態において、インターフェース回路15’は、異なるタイプのインターフェース回路26および28の両方をサポートし、インターフェース16’は、インターフェース15’をインターフェース回路26および28に結合するために適切にされている。上記の代替実施形態は、図1のデバイス10のような、前の図面において示され、前の図面に関して説明された本発明の実施形態に適用される。
NANDフラッシュメモリデバイス22およびMRAMデバイス24は、本発明の実施形態において、同一のダイ上にある。これらの実施形態に対して、マルチチップパッケージ(MCP)が、不動産(real estate)を減少させ、速度を増加させ、かつ、電力消費を最小にするために使用される。これらの属性は、レイアウトを簡単化し、有益なボード空間を節約し、ますます複雑な小型モバイルデバイス(例えば、スマートフォンおよびタブレット)の設計において非常に望ましい。後者の用途において、ホストによって要求される追加のメモリタイプは、単一のMCPの一部であり得る。例えば、DRAM、SDRAM、LPDRAM、NOR、または任意の他のデバイスは、NANDおよびMRAMと共に単一のMCPパッケージに追加されることにより、(モバイル用途における)モバイルデバイスのホストによって要求されるすべてのメモリを提供し、不動産をさらに減少させ得る。
図18は、本発明の種々の実施形態の例示的な用途を示す。図18において、モバイルデバイスサブシステム1800は、その分解図において、ホスト12’と、メモリサブシステム1812とを含むように示される。メモリサブシステム1812は、図18のメモリサブシステム1812が、記憶媒体18’に加えて、NORフラッシュ1806とLPDRAM 1804とを含むように示されることを除いて、図17の実施形態に類似している。記憶媒体12’は、記憶媒体18に類似し、ホスト12’は、ホスト12’がNORフラッシュ1806およびLPDRAM 1804と通信するように装備されていることを除いて、ホスト12に類似する。図18において、NORフラッシュ1806は、NORフラッシュインターフェース1808を通してホスト12’に結合されるように示され、LPDRAM 1804は、LPDRAMインターフェース1810を通してホスト12’に結合されるように示される。本発明の実施形態において、NORフラッシュ1806およびLPDRAM 1804は、記憶媒体18’と同一のパッケージにパッケージされる。本発明の別の実施形態において、NORフラッシュ1806およびLPDRAM 1804は、記憶媒体18’とは別のパッケージにパッケージされる。
当該技術分野において容易に知られるように、NORフラッシュ1806は、例示的な不揮発性メモリであり、他のタイプの不揮発性メモリが、想定される。LPDRAM 1804は、揮発性メモリの例であり、他の揮発性メモリが、想定される。
本発明の実施形態において、ホスト12’は、典型的に、コード/ソフトウェアプログラムを記憶するため、および、ポータブルエレクトロニクスデバイス(例えば、携帯電話サブシステム1800およびパーソナルデバイスアシスタント(PDA))における直接実行のために、NORフラッシュ1806を使用する。そのうえ、ホスト12’は、これらのデバイスを構成するためにNORフラッシュ1806を使用する。今日のフル装備の携帯電話に対して、多くの設計者が、データ記憶のためにNORタイプフラッシュとNANDタイプフラッシュを組み合わせるメモリアーキテクチャを利用し、またはプログラムコードがシャドウイングおよび実行され得るDRAMのような低電力メモリとの組み合わせにおける主要フラッシュメモリとしてNANDを利用している。いずれの場合も、異なるタイプのメモリが、しばしば、単一の構成要素を生成するためにマルチチップパッケージ(MCP)に積み重ねられる。ホスト12’は、コードおよびデータの一時記憶のLPDRAM 1804実行を利用する。
本明細書において使用される場合、「ホスト」は、当業者に周知の中央処理装置(CPU)を表すか、またはそれを含むことが理解される。CPUは、メモリに記憶されるプログラムを実行する。
本発明が、特定の実施形態の点から説明されてきたが、その変更および改変が、疑いなく、当業者に明らかとなることが想定される。したがって、以下の特許請求の範囲は、本発明の精神および範囲内にあるそのような変更および改変のすべてを含むように解釈されることが意図される。
10 大容量記憶デバイス
14 コントローラ
15 NANDフラッシュインターフェース回路
16 フラッシュインターフェース
18 記憶媒体
20 ホストインターフェース
22 NANDフラッシュメモリデバイス
24 MRAMデバイス
26、28 NANDフラッシュインターフェース回路
30 混成ユーザ領域
32 NANDアレイ
34 MRAMアレイ
36混成予約領域

Claims (29)

  1. 大容量記憶デバイスであって、該大容量記憶デバイスは、
    コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
    該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリの少なくとも一部に及んでいる混成予約領域を有する、記憶媒体と
    を含み、決定的データは、該第2のメモリの該混成予約領域に記憶され、さらに、該コントローラは、該混成予約領域を管理するように動作可能である一方、混成LUNは、該ホストによって管理されている、大容量記憶デバイス。
  2. 少なくとも1つのLUNは、その利用に従って、特定のタイプの媒体、または、異なるタイプの媒体の集団にマッピングされる、請求項1に記載の大容量記憶デバイス。
  3. 前記決定的データは、テーブルである、請求項1に記載の大容量記憶デバイス。
  4. 前記決定的データは、システムデータである、請求項1に記載の大容量記憶デバイス。
  5. 前記決定的データは、メタデータである、請求項1に記載の大容量記憶デバイス。
  6. 前記コントローラは、単一のインターフェースを通して前記記憶媒体に結合されている、請求項1に記載の大容量記憶デバイス。
  7. 前記第1のメモリは、NANDメモリであり、前記単一のインターフェースは、NANDフラッシュインターフェース回路である、請求項6に記載の大容量記憶デバイス。
  8. 前記第1のメモリおよび前記第2のメモリの少なくとも一部に及んでいる混成ユーザ領域をさらに含み、該混成ユーザ領域は、ユーザ領域部分およびユーザ領域部分から作られている、請求項1に記載の大容量記憶デバイス。
  9. 前記第1のメモリは、NANDデバイスを含み、前記第2のメモリは、MRAMデバイスを含む、請求項8に記載の大容量記憶デバイス。
  10. 前記コントローラは、前記ホストの一部である、請求項1に記載の大容量記憶デバイス。
  11. 前記コントローラは、第1のインターフェース回路を含み、該コントローラは、該第1のインターフェース回路を使用して、前記記憶媒体と通信する、請求項1に記載の大容量記憶デバイス。
  12. 前記第1のメモリは、第2のインターフェースを含み、前記第2のメモリは、第3のインターフェースを含む、請求項11に記載の大容量記憶デバイス。
  13. 前記第1のインターフェース、前記第2のインターフェース、および前記第3のインターフェースは、同一のタイプのものである、請求項12に記載の大容量記憶デバイス。
  14. 前記コントローラは、単一のインターフェースを通して前記記憶媒体に結合されている、請求項1に記載の大容量記憶デバイス。
  15. 前記コントローラは、複数のインターフェースを通して前記記憶媒体に結合されている、請求項1に記載の大容量記憶デバイス。
  16. 前記第1のメモリおよび前記第2のメモリは、同一のダイ上に存在する、請求項1に記載の大容量記憶デバイス。
  17. 前記第1のメモリは、NANDまたはRRAM(登録商標)を含む、請求項1に記載の大容量記憶デバイス。
  18. 前記第2のメモリは、磁気ランダムアクセスメモリ(MRAM)、抵抗変化RAM(RRAM(登録商標))、または相変化メモリ(PCM)を含む、請求項1に記載の大容量記憶デバイス。
  19. 前記コントローラは、LUNマネージャを含む、請求項1に記載の大容量記憶デバイス。
  20. 前記コントローラは、誤りを検出および訂正するように動作可能な誤り訂正コード(ECC)を含む、請求項1に記載の大容量記憶デバイス。
  21. 前記第2のメモリは、MRAMデバイスにおけるMRAMアレイから作られ、誤り訂正コード(ECC)は、該MRAMデバイスのうちの少なくとも1つの一部である、請求項1に記載の大容量記憶デバイス。
  22. 前記第1のメモリおよび前記第2のメモリは、単一のマルチチップパッケージ(MCP)にパッケージされている、請求項1に記載の大容量記憶デバイス。
  23. ホストデータが前記LUNに移動される前に読み出される場合、前記コントローラは、前記混成予約領域からのみ該ホストデータにアクセスするように動作可能である、請求項1に記載の大容量記憶デバイス。
  24. 前記第1のメモリは、少なくとも1つの第1のメモリデバイスの一部であり、該第1のメモリデバイスは、インターフェースを含み、前記第2のメモリは、第2のインターフェースを含む第2のメモリデバイスの一部である、請求項1に記載の大容量記憶デバイス。
  25. 第1のインターフェースおよび前記第2のインターフェースは、同一のタイプのものである、請求項24に記載の大容量記憶デバイス。
  26. 前記コントローラは、第3のインターフェースを含み、前記第1のインターフェース、前記第2のインターフェース、および該第3のインターフェースは、同一のタイプのものである、請求項25に記載の大容量記憶デバイス。
  27. 大容量記憶デバイスであって、該大容量記憶デバイスは、
    コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
    該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリを含み、該記憶媒体は、該第1のメモリおよび該第2のメモリならびに該複数のLUNのうちの1つのLUNの少なくとも一部に及んでいる混成予約領域をさらに含む、記憶媒体と
    を含み、該コントローラは、該ホストデータをキャッシュするために該第2のメモリを使用し、さらに、決定的データは、該第2のメモリの該混成予約領域に記憶され、該コントローラは、該混成予約領域を管理するように動作可能である一方、該複数のLUNは、該ホストによって管理されている、大容量記憶デバイス。
  28. 大容量記憶デバイスであって、該大容量記憶デバイスは、
    コントローラであって、該コントローラは、ホストと通信し、該ホストと該コントローラとの間でホストデータを転送するように構成され、該コントローラは、第1のメモリおよび第2のメモリに結合され、該第1のメモリおよび該第2のメモリは、異なるタイプのものである、コントローラと、
    該大容量記憶デバイスの能力およびリソースに基づいて、複数の論理ユニット(LUN)に区分される記憶媒体であって、該記憶媒体は、該第1のメモリおよび該第2のメモリを含み、該記憶媒体は、該第1のメモリおよび該第2のメモリならびに該複数のLUNのうちの1つのLUNの少なくとも一部に及んでいる混成予約領域をさらに含む、記憶媒体と
    を含み、該コントローラは、該ホストデータをキャッシュするために該第2のメモリを使用し、
    該コントローラは、
    データを記憶するためのコマンドに応答して、都合の良いときに、該LUN内の利用可能な物理的位置を見つけることと、
    該ホストデータを該第2のメモリの部分から該LUNに移動させることと、
    該LUN内に利用可能な物理的位置が存在しない場合に、該データを該予約領域の第2のメモリの部分から該LUN内に移動させる前に、該LUNに情報を記憶するために利用可能な空間を作るために「ガベージコレクション」を行うことと
    を行うように動作可能である、大容量記憶デバイス。
  29. 前記第1のメモリは、NANDデバイスを含み、前記第2のメモリは、MRAMデバイスを含む、請求項27に記載の大容量記憶デバイス。
JP2014151651A 2013-07-26 2014-07-25 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理 Pending JP2015026379A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/952,435 2013-07-26
US13/952,435 US8724392B1 (en) 2012-11-16 2013-07-26 Controller management of memory array of storage device using magnetic random access memory (MRAM)

Publications (1)

Publication Number Publication Date
JP2015026379A true JP2015026379A (ja) 2015-02-05

Family

ID=51263219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014151651A Pending JP2015026379A (ja) 2013-07-26 2014-07-25 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理

Country Status (5)

Country Link
US (2) US8929146B1 (ja)
EP (1) EP2829969A1 (ja)
JP (1) JP2015026379A (ja)
KR (1) KR20150012996A (ja)
CN (1) CN104347104A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021515299A (ja) * 2018-02-23 2021-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8102710B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
US9851919B2 (en) * 2014-12-31 2017-12-26 Netapp, Inc. Method for data placement in a memory based file system
CN106155580B (zh) * 2015-04-27 2019-04-12 华为技术有限公司 一种基于嵌入式多媒体卡eMMC的存储方法及***
US10157008B2 (en) 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
US20180039596A1 (en) * 2016-08-04 2018-02-08 Qualcomm Incorporated Supporting internal resistive memory functions using a serial peripheral interface (spi)
US9823880B1 (en) * 2016-09-30 2017-11-21 Intel Corporation Method and apparatus for initiating pre-read operation before completion of data load operation
US10489313B2 (en) * 2016-10-31 2019-11-26 Alibaba Group Holding Limited Flash storage failure rate reduction and hyperscale infrastructure robustness enhancement through the MRAM-NOR flash based cache architecture
US10101942B1 (en) * 2017-04-17 2018-10-16 Sandisk Technologies Llc System and method for hybrid push-pull data management in a non-volatile memory
CN110727470B (zh) * 2018-06-29 2023-06-02 上海磁宇信息科技有限公司 一种混合式非失性存储装置
KR20200044312A (ko) 2018-10-19 2020-04-29 삼성전자주식회사 반도체 장치

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234738A (ja) * 2004-02-18 2005-09-02 Matsushita Electric Ind Co Ltd 半導体メモリ装置
JP2005316793A (ja) * 2004-04-30 2005-11-10 Tdk Corp フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
JP2007250101A (ja) * 2006-03-16 2007-09-27 Fujitsu Ltd 不揮発性メモリ装置および不揮発性メモリ装置の制御方法
JP2008276351A (ja) * 2007-04-26 2008-11-13 Hitachi Ltd 半導体装置
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
US20100023681A1 (en) * 2004-05-07 2010-01-28 Alan Welsh Sinclair Hybrid Non-Volatile Memory System
JP2013120600A (ja) * 2011-12-08 2013-06-17 Samsung Electronics Co Ltd 異種の格納媒体にファイルを分離して格納するデータ格納装置及びそれのデータ管理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8307151B1 (en) * 2009-11-30 2012-11-06 Micron Technology, Inc. Multi-partitioning feature on e-MMC
US8724392B1 (en) * 2012-11-16 2014-05-13 Avalanche Technology, Inc. Controller management of memory array of storage device using magnetic random access memory (MRAM)

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234738A (ja) * 2004-02-18 2005-09-02 Matsushita Electric Ind Co Ltd 半導体メモリ装置
JP2005316793A (ja) * 2004-04-30 2005-11-10 Tdk Corp フラッシュメモリシステム及びフラッシュメモリの制御方法
US20100023681A1 (en) * 2004-05-07 2010-01-28 Alan Welsh Sinclair Hybrid Non-Volatile Memory System
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
JP2006338370A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
JP2007250101A (ja) * 2006-03-16 2007-09-27 Fujitsu Ltd 不揮発性メモリ装置および不揮発性メモリ装置の制御方法
JP2008276351A (ja) * 2007-04-26 2008-11-13 Hitachi Ltd 半導体装置
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
JP2013120600A (ja) * 2011-12-08 2013-06-17 Samsung Electronics Co Ltd 異種の格納媒体にファイルを分離して格納するデータ格納装置及びそれのデータ管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021515299A (ja) * 2018-02-23 2021-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム
JP7228321B2 (ja) 2018-02-23 2023-02-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム

Also Published As

Publication number Publication date
US20150032943A1 (en) 2015-01-29
US9213495B2 (en) 2015-12-15
KR20150012996A (ko) 2015-02-04
EP2829969A1 (en) 2015-01-28
US20150032947A1 (en) 2015-01-29
CN104347104A (zh) 2015-02-11
US8929146B1 (en) 2015-01-06

Similar Documents

Publication Publication Date Title
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US9213495B2 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device
US8724392B1 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM)
US9990277B2 (en) System and method for efficient address translation of flash memory device
US9830106B2 (en) Management of memory array with magnetic random access memory (MRAM)
CN107784121B (zh) 一种基于非易失内存的日志文件***的小写优化方法
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
TWI752620B (zh) 與記憶體類型相關的頁表
US8947937B1 (en) Host-managed logical mass storage device using magnetic random access memory (MRAM)
JP2013137770A (ja) Lbaビットマップの使用
KR20100086776A (ko) 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
US11687262B2 (en) Memory system and method of operating the same
US20160124639A1 (en) Dynamic storage channel
KR20200016075A (ko) 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US11422945B2 (en) Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes
CN114203237A (zh) 分区命名空间设备中的读取处置
US11954350B2 (en) Storage device and method of operating the same
US20230359550A1 (en) File system integration into data mining model
US11169918B2 (en) Data access in data storage device including storage class memory
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181002