JP6276296B2 - トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 - Google Patents

トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 Download PDF

Info

Publication number
JP6276296B2
JP6276296B2 JP2015561875A JP2015561875A JP6276296B2 JP 6276296 B2 JP6276296 B2 JP 6276296B2 JP 2015561875 A JP2015561875 A JP 2015561875A JP 2015561875 A JP2015561875 A JP 2015561875A JP 6276296 B2 JP6276296 B2 JP 6276296B2
Authority
JP
Japan
Prior art keywords
memory
data
memory device
type
controller
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.)
Active
Application number
JP2015561875A
Other languages
English (en)
Other versions
JP2016509325A (ja
Inventor
イ チェン
イ チェン
幸康 村上
幸康 村上
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2016509325A publication Critical patent/JP2016509325A/ja
Application granted granted Critical
Publication of JP6276296B2 publication Critical patent/JP6276296B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F3/065Replication mechanisms
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明の実施形態は、概して半導体メモリに関し、DRAMメモリ内のNANDベースフラッシュメモリ由来の幾つかのデータをシャドウィング(shadow:複写)しうるメモリシステムの例が記述される。
電気的に消去可能でプログラム可能なフラッシュメモリセルを有するメモリデバイスは、広範囲の電気デバイスで見出される。例示的なフラッシュメモリセルは、浮遊ゲートトランジスタメモリセルとしても知られているが、中間チャネル領域を形成するために、ソース領域と、ソース領域から離隔されたドレイン領域とを有する電界効果トランジスタに類似するものである可能性がある。浮遊ゲートは、ドープされたポリシリコンで作成されうるが、チャネル領域上に配置され、ゲート酸化膜の層によってチャネル領域から電気的に絶縁されてもよい。制御ゲートは、浮遊ゲート上に作製され、制御ゲートもまたドープされたポリシリコンで作成されてもよい。制御ゲートは、誘電体層によって浮遊ゲートから電気的に分離されてもよい。このように、浮遊ゲートは、フラッシュメモリのチャネル、制御ゲートおよび他の全ての素子から分離されうるという意味で“浮遊”している。
例示的なフラッシュメモリセルは、浮遊ゲート上に電荷を格納することによってプログラムされてもよい。その後、電荷は、電力がフラッシュメモリから除去された後でさえも、或る有限の期間ゲートに保持されうる。したがって、フラッシュメモリセルは、不揮発性と称されてもよい。電荷は、制御ゲートおよびドレインまたはソースに好適な電圧を印加することによって浮遊ゲートに格納されてもよい。例えば、電子を引き付けるために制御ゲートに十分に大きい正の電圧を印加している間にソースを接地することによって、浮遊ゲートに負の電荷を配置することができ、負の電荷は、チャネル領域から浮遊ゲートへとゲート酸化膜を通ってトンネル効果を生じる。浮遊ゲートにもともと存在する電荷と共に、制御ゲートに印加される電圧(プログラミング電圧と呼ばれる)およびプログラミング電圧が印加される期間が、プログラミング後に浮遊ゲートに存在する電荷量を決定する。
例示的なフラッシュメモリセルは、閾値電圧よりも大きい大きさを有する正の電圧を、制御ゲートからソースに印加することによって読み出されてもよい。フラッシュメモリセルに格納された電荷量は、ソースとドレインとの間の電流をフラッシュメモリセルが流すことを可能にするために、制御ゲートに印加しなければならない閾値電圧の大きさを決定してもよい。負の電荷が浮遊ゲートに追加されると、フラッシュメモリセルの閾値電圧は増加する。読み出し動作中、十分な電荷が浮遊ゲートに格納されていない場合には、セルを導電性にさせるのに十分な大きさで読み出し電圧が制御ゲートに印加されるが、十分な電荷が浮遊ゲートに格納されている場合には、読み出し電圧は、セルを導電性にさせるのに十分な大きさではない。読み出し動作中、ドレインは、セルの出力端子として使用されるが、正の電圧にプリチャージされ、ソースはグラウンドに結合されてもよい。したがって、フラッシュメモリセルの浮遊ゲートが十分に充電されている場合、ドレインは正の電圧のままである。フラッシュメモリセルの浮遊ゲートが十分に充電されていない場合、セルはドレインを接地する。
フラッシュメモリセルがプログラムされる前、ある場合には、浮遊ゲートから電荷を取り除くことによって消去されなければならない。セルは、プログラミング用に使用される極性とは逆の極性を有する、ゲート−ソース電圧をセルに印加することによって消去することができる。具体的には、制御ゲートは接地され、ゲート酸化膜を通って電子にトンネル効果を引き起こし、浮遊ゲートから電荷を空乏状態にするために、ソースに対して大きな正の電圧が印加される。別のアプローチにおいては、比較的大きな負の電圧が制御ゲートに印加され、供給電圧などの正の電圧がソース領域に印加される。
典型的なフラッシュメモリデバイスは、多数のフラッシュメモリセルを含み、多数のフラッシュメモリセルは、行および列に配列されてもよい。二つの一般的なタイプのフラッシュメモリアレイアーキテクチャは、“NAND”および“NOR”アーキテクチャであり、各々の基本的なフラッシュメモリセル構造が配置される論理形式のためにそう呼ばれている。NORフラッシュは、概して、NORゲートとして機能してもよい。例えば、ワード線がハイにされ、対応するトランジスタが出力ビット線をローに引き下げるように機能しうる。NANDフラッシュは、概して、NANDゲートに類似した方法で接続された浮遊ゲートトランジスタを含んでもよい。例えば、幾つかのトランジスタは、直列に接続され、全てのワード線がハイであるときのみ、ビット線はローに引き下げられうる。
概して、NORフラッシュメモリはNANDフラッシュメモリよりも速い読み出し応答を提供してもよい。さらに、NANDフラッシュメモリは、メモリをリフレッシュし、不良ブロックを修復するために、ハウスキーピングプロセスを必要とすることがある。
本発明の一実施形態による、システムの概略図である。 本発明の一実施形態による、メモリコマンドを提供する例示的一方法を示すフローチャートである。 本発明の一実施形態による、NANDフラッシュデバイスからDRAMデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。 本発明の一実施形態による、論理アドレススペースの少なくとも一部の図である。 本発明の一実施形態による、NANDフラッシュデバイスの物理アドレススペースの少なくとも一部の図である。 本発明の一実施形態による、マッピングテーブルの概略図である。 本発明の一実施形態により配置されたNANDフラッシュおよびDRAMアドレススペースの概略図である。
本発明の実施形態の十分な理解を提供するために、或る詳細事項が以下に説明される。しかしながら、本発明の実施形態は、これらの種々の特定の詳細事項なしで実現されてもよいことは当業者には明らかであろう。幾つかの例においては、既知の回路、制御信号、タイミングプロトコルおよびソフトウェア動作は、本発明の記述された実施形態を不必要に不明瞭にすることを防ぐために、詳細には示されていない。
現在の多くのシステムは、小さいレイテンシー(遅延)を必要とする用途では、NORフラッシュおよびマスクROMメモリを利用している。このような用途は、動画および/または静止画に対応する格納されたデータに対して、高いランダム性と突然のアクセスを必要としうる賭博(gambling)マシンの動作を含むが、それに限定されることはない。NANDフラッシュは、一般的にその低コストにより望ましいことがあるが、NANDフラッシュに関連する比較的高いレイテンシーは、幾つかの例においては望ましくないものであることがある。さらに、NANDフラッシュは、予測不可能な時点で実施されるハウスキーピング動作を必要とすることがあり、その結果、データ検索用に数秒間待機することがあり、これもまた或る用途においては望ましくないことがある。したがって、本発明の実施形態は、或る用途に対してのレイテンシー性能を改善しうるように、NANDフラッシュおよびDRAMメモリの双方を利用するメモリアーキテクチャを提供する。例えば、DRAMメモリに格納された或るデータは、NANDフラッシュメモリに格納されてもよい。幾つかの例においては、ハウスキーピング動作は、メモリシステムの電源投入後にのみ実施されてもよい。
本明細書では、NANDフラッシュおよびDRAMメモリが例示的システムを記述するために使用されているが、他の例においては、他のタイプのメモリが使用されてもよい。一般的に、本発明の実施形態は、あるタイプのメモリに関連する有効なレイテンシーを改善するために使用されてもよい。したがって、一組のメモリデバイス(例えば、NANDフラッシュ)からのデータの一部は、第一の組のメモリデバイスよりも概して低いレイテンシーを有する別の組のメモリデバイス(例えば、DRAM)にシャドウィングされてもよい。より高いレイテンシーのメモリデバイス(例えば、NANDフラッシュ)から残りのデータが検索されている間に、データのシャドウィングされた部分がホストに提供されてもよい。
特定の用途の例、例えば、賭博は、本明細書では例示として記述される。本明細書で記述される実施形態は、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定されない種々のあらゆる用途で利用されてもよいことを理解されたい。
図1は、本発明の一実施形態によるシステムの概略図である。システム100は、インターフェイス109を介してメモリシステム107と通信しうるプロセッサベースシステム105を含んでもよい。インターフェイス109は、例えば、SATAインターフェイスまたは他のメモリシステムインターフェイスを利用して実装されてもよい。プロセッサベースシステム105は、上述されたように、デスクトップ、ラップトップおよびタブレットコンピュータを含むコンピュータ、賭博マシン、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定はされない一つ以上の電子デバイスを含んでもよい。
メモリシステム107は、コントローラ111を含んでもよい。コントローラ111は、一つ以上のNANDフラッシュデバイス115と通信するためのインターフェイス113に結合されてもよい。インターフェイス113は、例えば、バスまたは他の電子通信コンジットを利用して実現され、限定はされないが、DDRプロトコルなどのNANDフラッシュデバイス115と互換性があるように、インターフェイス113を介して、データが通信されてもよい。コントローラ111は、一つ以上のDRAMデバイス125と通信するためのインターフェイス121にさらに結合されてもよい。
一般的に、一つ以上のNANDフラッシュデバイスを含む、任意の数のNANDフラッシュデバイス115が使用されてもよい。図1には、8つのNANDフラッシュデバイス115a−hが示されている。さらに、一つ以上のDRAMデバイスを含む任意の数のDRAMデバイス125が使用されてもよい。図1には、例示として4つのDRAMデバイス125a−dが示されている。NANDフラッシュデバイス115は、一般的に、プロセッサベースシステム105によって使用するためのデータを格納するために使用されてもよい。例えば、データは、静止画像または動画データを含んでもよい。NANDフラッシュデバイス115に格納されるデータの一部は、DRAMデバイス125にシャドウィングされてもよい。幾つかの例においては、NANDフラッシュデバイス115に格納されたデータの一部は、DRAMデバイス125にも格納される。マッピングテーブル131は、NANDフラッシュデバイス115からDRAMデバイス125にどのデータがシャドウィングされたかを示すために、一つ以上のDRAMデバイス125に格納されてもよい。このように、プロセッサベースシステム105があるデータにアクセスしようとするとき、幾つかの例においては、データは、DRAMデバイス125からアクセスされ、データがDRAMデバイス125からアクセスされている期間のうちの少なくとも一部で、残りのデータがNANDフラッシュデバイス115からアクセスされてもよい。したがって、要求されたデータの最初の部分がDRAMデバイス125から読み出される時点までには、NANDフラッシュデバイス115における残りのデータへのアクセスにおけるレイテンシーは、終わっており、NANDフラッシュデバイス115から読み出される残りのデータは、プロセッサベースシステム105による利用の準備ができていてもよい。このように、DRAMデバイス125におけるデータシャドウィングは、NANDフラッシュデバイス115に関連する読み出しレイテンシーをマスクしてもよい。
図1におけるインターフェイス113および121を介する通信は、概して、あらゆる数のチャネルを含む任意の方法で配置されてもよい。図1の例においては、インターフェイス113は、4つのチャネルNANDインターフェイスを利用して実装されてもよい。8つのNANDデバイス115a−hは、二つのNANDデバイス(例えば、ダイ)が各チャネルを介してアクセス可能なように配置されてもよい。他の例においては、チャネル毎に他の数のチャネルおよび/またはデバイスが使用されてもよい。図1の例においては、インターフェイス121は、チャネル毎に2つのデバイス(例えば、ダイ)を利用して実装され、インターフェイス121は、二つのチャネルをサポートしてもよい。
図2は、本発明の一実施形態による、メモリコマンド(例えば、読み出しコマンド)を提供する例示的一方法を示すフローチャートである。ブロック202において、メモリコマンドが受信されてもよい。図1に戻ると、メモリコマンドは、プロセッサベースシステム105からコントローラ111によって受信されてもよい。メモリコマンドに応じて、図2を再度参照すると、最初のデータチャンクが、ブロック204においてDRAMデバイスから読み出されてもよい。例えば、図1のコントローラ111は、一つ以上のDRAMデバイス125からのメモリコマンドで要求されたデータに対応する最初のデータチャンクを読み出してもよい。DRAMに格納された最初のデータチャンクのサイズは、異なる実施形態において変化しうるが、そのサイズは、概して、最初のデータチャンクがプロセッサベースシステムに提供されるときまでには十分に大きくなるように選択され、次のデータチャンクは許容可能なレイテンシーでNANDデバイスから到達し、例えば、次のデータチャンクは、最初のデータチャンクがプロセッサベースシステム(例えば、ホスト)に提供されたら、プロセッサベースシステムへの提供用に準備されていてもよい。
最初のデータチャンクが、ブロック206において、プロセッサベースシステム(例えば、ホスト)に提供されてもよい。最初のデータチャンクが、データを要求するプロセッサベースシステムに提供されている期間のうちの少なくとも一部の期間に、ブロック208において、次のデータチャンクが一つ以上のNANDデバイスでアクセスされてもよい。次のデータチャンクは、ブロック204および/またはブロック206が実施される期間中に完全にアクセスされることはないが、次のデータチャンクは、その期間中に少なくともアクセスされてもよい。したがって、ブロック206においてホストに最初のデータチャンクが提供される期間のうちの少なくとも一部の期間、および/または、ブロック204において、一つ以上のDRAMデバイスから最初のデータチャンクが読み出される期間のうちの少なくとも一部の期間に、一つ以上のNANDデバイスから次のデータチャンクに対するアクセスが、生じることがある。このように、一つ以上のNANDデバイスへのアクセスに関連するレイテンシーは、要求するプロセッサベースシステムに対する最初のデータチャンクの少なくとも部分的に同時の読み出しおよび/または提供によって少なくとも部分的にマスクされてもよい。次のデータチャンクは、ブロック210において、ホストに提供されてもよい。図2には示されていないが、ブロック208および210は、メモリコマンドが提供されるまで繰り返されてもよい。例えば、ブロック208において一つ以上のNANDデバイスにおいて次のデータチャンクがアクセスされる期間のうちの一部の期間に、および/またはブロック210において、次のデータチャンクがホストに提供される期間のうちの一部の期間に、追加データチャンクは、一つ以上のNANDデバイスから読み出されてもよい。次のデータチャンクがブロック210の終わりにホストに提供される時間までには、追加データチャンクがホストへの提供用に準備されていてもよい。
図1を参照すると、システム100は、図2に示されるプロセスを実現してもよく、例えば、コントローラ111は、一つ以上のDRAMデバイス125から最初のデータチャンクを読み出し、最初のデータチャンクをシステム105に提供してもよい。コントローラ111が最初のデータチャンクを読み出しているおよび/またはシステム105に最初のデータチャンクを提供している期間のうちの少なくとも一部の期間に、コントローラ111は、一つ以上のNANDデバイス115から次のデータチャンクを読み出してもよい。プロセッサベースシステム105が第一のデータチャンクを受信したときに、次のデータチャンクを許容可能な量でプロセッサベースシステム105に提供するために準備されているように、例えば、追加のレイテンシーがないように、コントローラ111は、これらのアクティビティの時間を設定してもよい。
図1のシステムの実装の一例においては、プロセッサベースシステム105は、メモリシステム107のスループットが特定のスループット(一例においては、400MB/s)以上であることを要求することがある。上述されたように、データは、チャンク内で、DRAMデバイス125および/またはNANDフラッシュデバイス115から読み出されてもよい。チャンクは、特定のサイズ、例えば、一例においては、128kBを有してもよい。これらの例示的な数を使用すると、メモリシステム107は、320μs以内にプロセッサベースシステム105に128kBのチャンクを提供することができる。最初のチャンク(例えば、128kB)がDRAMに配置される場合、コントローラ111がメモリコマンド、アドレス、データ読み出しを分析し、プロセッサベースシステム105に対する応答を開始するための時間Trは、最小であってもよい。要求されたデータにアクセスすることによる見かけ上のレイテンシーを最小化するために、コントローラ111は、320μsからTr以内に、NANDフラッシュから次の128kBチャンクを読み出すことができるべきである。Trは、一例においては、10μsに満たないことがある。したがって、コントローラ111は、DRAMから第一のデータチャンクにアクセスするのとほぼ同時に、NANDフラッシュデータチャンクにアクセスしている場合、プロセッサベースシステムに提供するために次の128kBデータチャンクを準備するために310μsを超える時間を有してもよい。一例においては、4チャネルSSDコントローラおよび16kB/ページSLC NANDメモリ製品によって、このタイミングが満たされ、それによって、必要期間310μs以内に、32kB/チャネルの読み出しを達成して、それらのチャネルでECC訂正を完了することができる。
したがって、本発明の実施形態は、DRAMデバイスでアクセスされるべきデータの第一部分(例えば、チャンク)を有利にシャドウィングし、アクセスされるべきデータの残りがNANDフラッシュデバイスに格納されてもよい。有利なことに、本明細書で記述されるメモリシステムの実施形態は、一つ以上のDRAMデバイスにおいて、概してグループとしてアクセスされるデータの第一のデータチャンクを格納してもよい。例えば、ファイル(例えば、動画、静止画、文書、プログラムなど)の第一のデータチャンクは、DRAMに格納され、ファイルの残りのデータは、NANDフラッシュに格納されてもよい。このように、図1のプロセッサベースシステム105は、メモリシステム107にメモリコマンドを提供するときに、メモリコマンドに対応する第一のデータチャンクがDRAMに見出され、残りのデータがNANDフラッシュに見出されてもよい。
本明細書で記述される例は、データのうちのアクセスされる第一部分(例えば、一つのチャンク)がDRAMデバイスでシャドウィングされる例を含み、他の例においては、データの他の部分(例えば、複数の最初のデータチャンク)がシャドウィングされてもよい。一般的に、より多くのデータがシャドウィングされると、有効に隠されうるNANDフラッシュデバイスのレイテンシーはより長くなるが、シャドウィングされるデータのためにDRAMで必要とされうる格納量はより大きくなる。
如何にしてシャドウィングが実現されうるかを示す例が本明細書にさらに記述される。図3は、本発明の一実施形態による、NANDフラッシュデバイスからDRAMデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。一般的に、NANDフラッシュデバイスでアクセスされるべきデータの開始アドレスおよびデータ長を知ることが望ましいことがある。読み出しのみのシステム(例えば、賭博マシン)においては、データは、メモリシステムに予めプログラムされ、動作中には変更できない。したがって、幾つかの実施形態においては、アクセスされるべきデータの位置および長さ(例えば、個々のファイルのデータの開始アドレスおよび長さ)は、予め知られており、開始アドレスのデータ構造および長さは、提供されるか、メモリシステムに格納されてもよい。例えば、このようなデータ構造は、図1のNANDフラッシュデバイス115または図1のDRAMデバイス125のうちの一つ以上に格納されてもよい。開始アドレスのデータ構造および長さは、例えば、リストとして実装されてもよい。他のデータ構造が同様に利用されてもよいが、開始アドレスのデータ構造および長さは、“リスト”と称されるであろう。
既知の開始アドレスおよび長さのリストは、図3のブロック304でアクセスされ、DRAMデバイスにシャドウィングするために、既知の開始アドレスに対応するデータのチャンクを識別するために使用されてもよい。幾つかの例においては、図1のシステム107などのメモリシステムは、NANDフラッシュデバイスでアクセスされるデータの位置および長さを自体で識別するために、図3のブロック302でトレーニングされてもよい。ブロック302におけるトレーニング中に、メモリコントローラ(例えば、図1のコントローラ111)は、ホスト(例えば、図1のプロセッサベースシステム105)から受信されたメモリコマンドのアドレスのログをとってもよい。アドレスのリストを分析することによって、コントローラは、図3のブロック304でアクセスされるデータの既知の開始アドレスおよびデータ長のリストを自体で作成してもよい。他の例においては、ブロック302におけるトレーニングは、メモリシステム内のNANDフラッシュデバイスの内容の他の分析を通して実現されてもよい。例えば、プロセッサベースシステムからメモリコマンドにおいて要求されうるデータグルーピングの開始を示すヘッダまたは他のデータストリングは、データグルーピングの長さと共に、コントローラによって識別されてもよい。幾つかの例においては、トレーニングは、例えば、メモリコントローラのプロセッサベースシステムから提供される信号によって、識別されうるトレーニング期間中に生じることがある。
ブロック306において、データは、再構築され、マッピングテーブルが作成されてもよい。データは、DRAMデバイスにおいてデータのシャドウィング部分に対して導通性がありうるように、NANDフラッシュデバイスにおける格納のために再構築されてもよい。作成されたマッピングテーブルは、論理−物理アドレスのマップを含んでもよい。論理アドレスは、例えば、図1のプロセッサベースシステム105によって特定されるようなアドレスであり、物理アドレスは、例えば図1のコントローラ111によって理解されるようなNANDフラッシュデバイスに対するアドレスであってもよい。二つのタイプのデータ再構築が生じることがある。幾つかの実施形態においては、唯一つのタイプが生じ、他の実施形態においては、双方のタイプが生じることがある。幾つかの実施形態においては、他のタイプのデータ再構築が生じてもよい。
第一のタイプのデータ再構築は、データチャンクのサイズよりも小さいデータに対応する複数の期待されるメモリアドレスを、単一のデータチャンクに詰め込んでもよい。一般的に、データチャンクとは、任意のメモリシステム内のNANDフラッシュから同時に読み出されうるデータ量のことを称する。図1を参照すると、一例においては、インターフェイス113がチャネル毎に二つのダイを有する4チャネルをサポートし、ダイ毎に2ページがアクセスされ、ページサイズが8バイトである場合、データチャンクサイズは、4×2×2×8=128kBであってもよい。
一般的に、データチャンクは、スーパーページ(super page)と称されてもよい。NANDデバイスの有効なレイテンシーを隠すか低下させるために上述されたように、データチャンクは、図1のNANDフラッシュデバイスから出力されるデータチャンクのための期間が、DRAMから出力される同一サイズのデータチャンクのための期間以下であるように、十分なサイズとされるべきである。
NANDデバイスからDRAMデバイスにシャドウィングされるデータは、データチャンクに格納されてもよい。DRAMデバイスにシャドウィングするために必要なスペースの量を削減するために、データチャンクのサイズよりも小さいメモリアクセスに関連するデータを統合することが有利なことがある。したがって、図3のブロック306で生じうるデータ再構築の第一のタイプは、同一のデータチャンクに、データチャンク(例えば、一例において128kB)よりも小さい長さを有するデータに対応する論理アドレスをマッピングすることである。例えば、ブロック302で作成されたテーブルは、64kBの長さを有するデータに対する第一の論理アドレスで一つの期待されるメモリアクセスを含み、64kBの長さを有するデータに対する第二の論理アドレスで第二の期待されるメモリアクセスを含んでもよい。2つの64kBメモリアクセスが128kBデータチャンク内に配置されるように、第一および第二の論理アドレスの双方は、NANDフラッシュデバイスの同一のデータチャンクにマッピングされてもよい。データチャンクのサイズを合計するデータアクセスのあらゆる組み合わせは、単一のデータチャンクにマッピングされてもよい。例えば、2つの32kBアクセスおよび1つの64kBアクセスに関連するデータが、単一のデータチャンクに再構築されてもよい。別の例においては、5つの16kBアクセス、32kBアクセス、および2つの8kBアクセスに関連するデータが、単一のデータチャンクに再構築されてもよい。このように、コントローラ111は、データチャンクよりも小さい長さを有するデータに対するアクセスを、統合されたデータチャンクのセットにマッピングするために、ブロック302において作成されうる開始アドレスおよび長さのリストにアクセスしてもよい。以下にさらに記述されるように、データチャンクよりも小さいサイズのこれらのデータに対するデータアクセスがDRAMデバイスから提供されうるように、統合されたデータチャンクは、一つ以上のDRAMデバイスにシャドウィングされてもよい。
図4は、本発明の一実施形態による、論理アドレススペースの少なくとも一部の図である。図5は、本発明の一実施形態による、NANDフラッシュデバイスにおける物理アドレススペースの少なくとも一部の図である。図4に示されるように、プロセッサベースシステム(例えば、図1のシステム105)は、示されるように、データA,B,C,D,E,F,GおよびHを要求することによってデータにアクセスしてもよい。しかしながら、これらのデータは論理アドレススペースに広がり、データチャンクよりもサイズが小さい。図3の再構築306の間、データは、図5に示されるように物理アドレススペースに再構築され、そこで、データA,B,C,D,E,F,GおよびHは単一のデータチャンクに統合される。
ブロック306で生じうるデータ再構築の別のタイプは、データチャンクよりもサイズが大きい(例えば、幾つかの例においては、128kBを超える)アクセスに対応するデータを再配列することである。データチャンクよりも大きいアクセスに対応する第一のアドレスデータがデータチャンクと整列される場合、再構築は起こらない。しかしながら、第一のアドレスがデータチャンク境界と整列されない場合、第一のアドレスの物理アドレスは、データチャンク境界と整列するためにシフトされ、その結果、第一のアドレスと物理アドレスとの間に生じるマップは、論理−物理アドレステーブルに格納されてもよい。
図3におけるブロック306のデータ再構築は、例えば、図1のコントローラ111によって実施されてもよい。幾つかの例においては、コントローラ111は、図3のブロック302で作成されたリストなどの、メモリアクセス用の既知の開始アドレスおよびアクセスされるべきデータ長のリストにアクセスしてもよい。コントローラ111は、アクセスされるべきデータがデータチャンクよりも小さい場合には、メモリアクセスに関連するデータを統合し、アクセスされるべきデータがデータチャンクのサイズよりも大きい場合には、メモリアクセスに関連するデータをデータチャンクと整列してもよい。コントローラ111は、再構築を反映する論理−物理マッピングテーブルを作成してもよい。幾つかの例においては、データは、一つ以上のNANDフラッシュデバイス115に既に格納され、再構築プロセスで識別されたものに対応する位置に移されてもよい。他の例においては、ブロック302の再構築プロセスで識別された構成に従って、コントローラ111によって、データがNANDフラッシュデバイスに書き込まれてもよい。
図3のブロック308においては、選択されたデータは、一つ以上のNANDフラッシュデバイスから一つ以上のDRAMデバイスにシャドウィングされてもよい。例えば、コントローラ111は、選択されたデータをDRAMデバイスにシャドウィングしてもよい。データが、一つ以上のNANDフラッシュデバイスおよび一つ以上のDRAMデバイスの双方に格納されるように、シャドウィングは、一つ以上のNANDフラッシュデバイスから一つ以上のDRAMデバイスに選択されたデータをコピーすることを含んでもよい。一般的に、ブロック308において、選択されたデータは、1)データチャンク以下の長さを有するデータに対するメモリアクセスに関連する一つ以上のDRAMデバイスにおけるデータチャンクおよび/または、2)データチャンクを超える長さを有するデータに対するメモリアクセスに関連する第一のデータチャンクを含んでもよい。このように、データチャンク以下の長さを有するデータに対するメモリコマンドは、一般的に、一つ以上のDRAMデバイスから提供されてもよい。さらに、データチャンクより大きい長さを有するデータに対するメモリコマンドは、一つ以上のDRAMデバイスから提供されたメモリコマンドの第一の部分と、一つ以上のNANDフラッシュデバイスから提供されたメモリコマンドの残りの部分とを有してもよい。
ブロック308におけるシャドウィングは、例えば、図1のコントローラ111によって実施され、ブロック302で作成されうる既知の開始アドレスおよび長さのリストと、ブロック308でデータを選択してシャドウィングするためのブロック306からのマッピングテーブルとにアクセスしてもよい。コントローラ111は、以下にさらに記述されるように、シャドウィングを反映するために、マッピングテーブルにおけるエントリーをさらにアップデートしてもよい。
ブロック308におけるシャドウィングは、種々の方法で実施されてもよい。一例においては、シャドウィングは、例えば、図1のシステム105などのプロセッサベースシステムによって供給されうるシャドウィングを示す信号の受信によって開始されてもよい。コントローラは、その後、シャドウィングの開始を示すビジー信号をホストに提供し、ビジー信号を除去し、および/または、シャドウィングが完了したことを示す異なる信号をホストに提供してもよい。幾つかの例においては、ホストは、メモリシステムがパワーサイクルを経験する次の時点まで、シャドウィングを示す信号を提供することによって、シャドウィングを再度トリガーできない。
別の例においては、シャドウィングは、トレーニング中、例えば、図3のブロック302と少なくとも部分的に同時に実施されてもよい。ランダムアクセスが、トレーニング中にコントローラによって受信されると、アクセスに関連するデータがまだシャドウィングされていないときに、データの関連部分がシャドウィングされてもよい。
図6は、本発明の一実施形態によるマッピングテーブルの概略図である。マッピングテーブル600は、例えば、図3のブロック306および/または308において作成されてもよい。マッピングテーブル600は、論理−物理アドレスマップ602および物理−シャドウアドレスマップ604を含む。上述された再構築プロセスによって影響を受けるように、データが配置される場合、論理−物理アドレスマップ602は、NANDフラッシュメモリにおける物理アドレスと論理アドレスを関連付けてもよい。さらに、論理−物理アドレスマップ602は、図6においてfSフラグと称される、フラグを含んでもよい。fSフラグは、関連するアドレスがDRAMメモリにシャドウィングされるか否かを示してもよい。一例においては、fSフラグは、1ビットの長さであって、0は論理−物理アドレスがシャドウィングされていないことを示し、1はアドレスがシャドウィングされていることを示す。幾つかの例においては、テーブル600で使用されたアドレスはブロックアドレスである。
したがって、再度、図3を参照すると、データが再構築されると、図1のコントローラ111は、図6のマッピングテーブル600に、論理アドレスと物理アドレスの間の関連付けを記録してもよい。マッピングテーブル600は、マッピングテーブル131によって示されるように、図1の一つ以上のDRAMデバイス125に格納されてもよいし、図1の一つ以上のNANDフラッシュデバイス115に格納されてもよい。幾つかの実施形態においては、マッピングテーブル600は、DRAMデバイス125および/またはNANDデバイス115に格納されてもよい。
図6のマッピングテーブル600は、物理アドレスおよびシャドウアドレス間の関連付け604をさらに含む。NANDフラッシュ内の特定の物理アドレスに格納されたデータがDRAMにシャドウィングされる場合、マッピングテーブル600内のfSフラグは、シャドウィングを示す。さらに、シャドウィングされたデータに関連するアドレスが、マッピングテーブル600に格納されてもよい。
さらに、物理−シャドウアドレスマップ604は、図6でfCフラグと称されるフラグを含んでもよい。fCフラグは、次のデータチャンクがシャドウメモリ(例えば、DRAM)またはNANDフラッシュメモリにあるか否かを示してもよい。一例においては、fCフラグは、1ビットの長さであり、0は次のデータチャンクがNANDフラッシュにあることを示し、1は次のデータチャンクがシャドウメモリ(例えば、DRAM)にあることを示す。そのため、例えば、論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも小さいと推定される物理アドレスに対応する場合、次のメモリコマンドも、シャドウメモリ(例えば、DRAM)から提供されるため、fCフラグは、1に設定されてもよい。論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも大きいと推定される物理アドレスに対応する場合、第一のデータチャンクだけがシャドウメモリに配置され、次のデータチャンクがNANDフラッシュにあることを示すために、fCフラグは、0に設定されてもよい。
図3に戻ると、マッピングテーブル600のfS、fCおよびシャドウアドレス部分は、データがDRAMにシャドウィングされると、ブロック308中に作成されてもよい。このように、図1のコントローラ111は、fS、fCおよびシャドウアドレス値を提供し、DRAM、NANDフラッシュまたはその組み合わせに格納されたマッピングテーブルにそれらを格納してもよい。論理−物理アドレスの関連付けおよび物理−シャドウアドレスの関連付けを含むマッピングテーブルが図6に示されているが、他の例においては、複数のテーブルが(例えば、一方が論理−物理アドレスの関連付けに、他方が物理−シャドウアドレスの関連付けに)使用されてもよい。他の例においては、図6に示された幾つかまたは全ての情報を表すために、テーブル以外のデータ構造が使用されてもよい。
図7は、本発明の一実施形態によって配置されたNANDフラッシュおよびDRAMアドレススペースの概略図である。NANDフラッシュアドレススペース705が示され、図1のデバイス115などの一つ以上のNANDフラッシュデバイス上に広がることがある。アドレススペースはデータチャンク706−708を含む。これらのデータチャンクは、本明細書で記述されたデータ再構築プロセス中に統合されうるデータチャンクのサイズよりも小さいデータを含むものとして示される。例えば、データチャンク706は、2つの64kBのデータセグメントを含み、その各々は、其々のメモリコマンドに応じると推定される。同様に、データチャンク707は、2つの32kBのデータセグメントおよび1つの64kBのデータセグメントを含み、その各々も、其々のメモリコマンドに応じると推定される。データチャンク708は、5つの16kBセグメント、2つの8kBセグメント、1つの32kBセグメントを含み、その各々は、其々のメモリコマンドに応じると推定される。データチャンク706−708に示されたデータセグメントは、可能性のあるデータチャンクのうちの最小数に格納されるように配置され、図7に示されたデータチャンクのサイズは128kBである。データチャンク706−708内のデータは、データチャンクのサイズよりも小さいデータに対するメモリアクセスに関連付けられ、データチャンク706−708は、例えば、図3のブロック308で、一つ以上のDRAMデバイスにシャドウィングされてもよい。したがって、図7においては、データチャンク706−708は、データチャンク716、717および718としてDRAMアドレススペース710にシャドウィングされる。
本明細書で記述されたように、図1のコントローラ111は、図7に示され、図3を参照して記述されたシャドウィングを実施してもよい。コントローラ111は、例えば、図6のマッピングテーブル600などのマッピングテーブルをさらに作成してもよい。再度図7を参照すると、データチャンク706がデータチャンク716としてDRAMにシャドウィングされるとき、その結果として以下のことがマッピングテーブルに生じる。正確な論理アドレスに関連するマッピングテーブルの論理−物理アドレス602部分の物理アドレス列にそのNANDフラッシュアドレスを格納することによって、データチャンク706を構成する64kBの各データセグメントの論理アドレスは、データチャンク706内の其々のアドレスに関連付けられてもよい。さらに、データチャンク716内のデータアクセスは、データチャンクのサイズ以下であると推定されるため、データはシャドウィングされ、それによって、DRAMアドレススペース710におけるデータチャンク716内のデータセグメントの対応するアドレスは、物理−シャドウアドレステーブル604のシャドウアドレス部分に格納されてもよい。データはシャドウィングされたデータであるため、データがシャドウィングされていることを示すために(例えば、図1のコントローラ111によって)そのデータに対するfSフラグが設定されてもよい。さらに、データチャンク716−718内のデータはデータチャンクのサイズ以下のデータに対するデータアクセスと関連付けられるため、読み出されるべき次のデータは、同様にDRAMデバイスに由来する(例えば、各メモリアクセスの第一の部分がDRAMにシャドウィングされてもよいため)。したがって、データチャンク716−718内のそのデータに対するfCフラグは、次のデータチャンクがDRAMから読み出されうることを示すために、(例えば、図1のコントローラ111によって)設定されてもよい。
図7を再度参照すると、データチャンク726−728は、データチャンクのサイズよりも大きいデータ量に対するデータアクセスに対応してもよい(例えば、3つのデータチャンク726−728)。上述されたように、データチャンク726−728は、データチャンク境界と整列されるように再構築され、および/または他のデータ再構築を適応させるために移動してもよい。したがって、データチャンク726−728の物理アドレスは、関連する論理アドレスに対応する図6の論理−物理アドレステーブル602に格納されてもよい。データアクセスはデータチャンクよりも大きいデータ量に対するものであるため、幾つかの例においては、第一のデータチャンクだけがDRAMにシャドウィングされてもよい。したがって、データチャンク726がデータチャンク736でDRAMにシャドウィングされてもよい。データチャンク726に対応する物理アドレスに対するfSフラグは、データチャンク726がシャドウィングされていることを示すために(例えば、コントローラ111によって)設定されてもよい。しかしながら、データチャンク727および728に対応する物理アドレスに対するfSフラグは、データチャンク727および728がシャドウィングされていないことを示すように(例えば、コントローラ111によって)設定されてもよい。DRAMデータチャンク736に対応するシャドウアドレスは、物理−シャドウアドレステーブル604にさらに格納されてもよい。データチャンク736は、データチャンクよりも大きいデータアクセスに関連するため、fCフラグは、次のデータアクセスがNANDフラッシュデバイスに由来しうることを示すために(例えば、コントローラ111によって)設定されてもよい。
本発明の実施例においては、図3−図7を参照して記述されてきたトレーニング、データ再構築およびシャドウィングの例は、メモリシステムの電源投入中、メモリシステム分配の前に(例えば、製造中)、または他の予定時刻に起こることがある。幾つかの例においては、トレーニング、データ再構築および/またはシャドウィングは、動作中に動的に生じることがあり、動的動作は、格納されたデータのアクセスに関連するレイテンシーを最小限化することが望まれる家電製品においては、あまり都合がよくないことがある。
図1の例示的メモリシステムの動作中に、コントローラ111は、図3を参照して記述されたように、電源投入中にシャドウィングを実施してもよい。コントローラ111は、シャドウィング動作によるメモリシステム107機能のうちのいくつかまたは全ての利用が不可能であることを示す指示を状態レジスタに格納するか、ビジー信号をプロセッサベースシステム105に提供してもよい。シャドウィングが完了すると、コントローラ111は、メモリシステム107が利用可能であることを示す指示を状態レジスタに格納するか、信号をプロセッサベースシステム105に提供してもよい。
プロセッサベースシステム105からのメモリコマンドの受信で、コントローラ111は、受信した論理アドレスに対して対応する物理アドレスを識別するために、メモリコマンドに関連する論理アドレスを識別し、マッピングテーブル(例えば、図6の論理−物理アドレステーブル602)にアクセスしてもよい。コントローラ111は、論理/物理アドレス対に対応するfSフラグに追加的、または代替的にアクセスしてもよい。要求されたデータがシャドウィングされていないことをfSフラグが示す場合、コントローラはデータにアクセスするために、受信した論理アドレスに関連する物理アドレスにアクセスしてもよい。要求されたデータがシャドウィングされていることをfSフラグが示す場合、コントローラは受信した論理アドレスに関連する(例えば、物理−シャドウアドレステーブル604に格納された)シャドウアドレスにアクセスし、DRAMにシャドウィングされたアドレスからデータを要求してもよい。コントローラは、シャドウィングされたアドレスに関連するfCフラグにさらにアクセスしてもよい。NANDフラッシュに次のデータチャンクがあることをfCフラグが示す場合、第一のデータチャンクがDRAMからアクセスされる間、および/またはプロセッサベースシステム105に提供される間、コントローラは、NANDフラッシュメモリから次のデータチャンクにアクセスしてもよい。次のデータチャンクがシャドウメモリ(例えば、DRAM)にあることをfCフラグが示す場合、コントローラは、NANDフラッシュへのアクセスを開始せず、その代わりに、DRAMにおける次の領域にアクセスするおよび/またはプロセッサベースシステム105からの次のメモリコマンドを待ってもよい。
このように、メモリシステムは、NANDフラッシュメモリおよびDRAMメモリを含んでもよい。メモリアクセスの最初の部分がNANDフラッシュメモリから検索されたものよりも略低いレイテンシーで、DRAMメモリから検索されうるように、NANDフラッシュメモリの一部は、DRAMメモリにシャドウィングされてもよい。一つ以上の初期部分がDRAMメモリから検索されるおよび/またはホストに提供される間に、NANDフラッシュからメモリアクセスのその後の部分にアクセスするプロセスが開始してもよい。このように、ホストから見たNANDフラッシュに関連するレイテンシーは低減される可能性がある。
本発明の実施形態は、特定の時点、例えば、システムの電源投入時にだけ実施されるべき種々のハウスキーピング動作(例えば、ウェアレベリング、不良ブロック置換)をさらに提供してもよい。幾つかの例においては、図1を再度参照すると、コントローラ111が、NANDフラッシュデバイス115に書き込まれるおよび/またはNANDフラッシュデバイス115から読み出されるデータに対するエラー訂正動作を実施してもよい。不良メモリ領域がエラー訂正動作中に識別される場合、コントローラ111は、管理ログ内にその不良メモリ領域のログをとり、例えば、一つ以上のNANDフラッシュデバイス115および/またはDRAMデバイス125に格納されてもよい。コントローラ111は、識別された直後に不良メモリ領域を訂正するための動作をするわけではない。その代わりに、幾つかの例においては、メモリシステム107の電源が投入されたとき、または他の特定の時点で、コントローラ111は、最後の訂正が行われてからログをとられた管理ログ内に格納されたすべての不良メモリ領域を訂正してもよい。同様に、コントローラ111は、ウェアレベリングの目的で、NANDフラッシュデバイスへの読み出しおよび/または書き込みをカウントしてもよい。ウェアレベリングカウントに基づいて、不良として指定されるべきメモリ領域を識別した直後に動作するのではなく、コントローラ111は、管理ログ内のウェアレベリングによって置換を必要とするメモリ領域のログをとり、それは、エラー訂正に関連して上述されたログと同一のログまたは異なるログである可能性がある。コントローラ111は、その後、特定の時点、例えば電源投入時に、そのウェアレベリングカウントによって、管理ログ内に識別された領域を不良メモリ領域として指定してもよい。
したがって、幾つかの例においては、不良ブロック置換、読み出しディスターブ、ウェアレベリングおよび/または他の管理タスクが、メモリシステム107のパワーサイクルに応じて、図1のメモリコントローラ111によって実施されてもよい。それ以外の時には、コントローラ111は、これらのタスクを実施しなくてもよく、それによって、これらのハウスキーピング動作に関連する追加のレイテンシー問題を回避しうる。
前述から、本明細書では本発明の特定の実施形態が例示として記述されてきたが、本発明の趣旨および範囲から逸脱することなく、種々の改変がなされてもよいことを理解されたい。

Claims (25)

  1. プロセッサベースシステムから複数のメモリコマンドを受信するように構成されたコントローラと、
    第一のインターフェイスを介して、前記コントローラに結合された第一のタイプのメモリデバイスであって、前記プロセッサベースシステムからの前記複数のメモリコマンドがそれぞれ要求する複数のデータを格納する第一のタイプのメモリデバイスと、
    第二のインターフェイスを介して、前記コントローラに結合された第二のタイプのメモリデバイスであって、前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスと、
    を含み、
    前記コントローラは、
    前記複数のメモリコマンドがそれぞれ要求するデータに関連する複数の開始アドレスおよびデータ長のデータ構造をトレーニング期間中に作成し、
    前記データ構造を使用して、前記複数のメモリコマンドがそれぞれ要求するデータの内の、前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングすべき部分を識別するように構成される、
    ことを特徴とするメモリシステム。
  2. 前記コントローラは、
    前記複数のメモリコマンドが、第1のメモリコマンドであってそれが要求するデータが所定のデータ長以下である第1のメモリコマンドを有する場合は、前記第1のメモリコマンドが要求するデータの全てを前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングし、
    前記複数のメモリコマンドが、第2のメモリコマンドであってそれが要求するデータが前記所定のデータ長よりも大きい第2のメモリコマンドを有する場合は、前記第2のメモリコマンドが要求するデータの一部を前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングするように構成される、
    ことを特徴とする請求項1に記載のメモリシステム。
  3. 前記所定のデータ長は、データチャンクとして、前記第一のタイプのメモリデバイスから同時に読み出されうるデータ量である、
    ことを特徴とする請求項2に記載のメモリシステム。
  4. 前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングされる前記第2のメモリコマンドが要求するデータの前記一部は、前記データチャンクに相当するデータ量であって、前記第2のメモリコマンドの開始アドレスにより指定される部分を含む、
    ことを特徴とする請求項3に記載のメモリシステム。
  5. 前記コントローラは、
    前記プロセッサベースシステムからの前記第1のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記第1のメモリコマンドが要求するデータを前記プロセッサベースシステムに提供し、
    前記プロセッサベースシステムからの前記第2のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記第2のメモリコマンドが要求するデータの前記一部を前記プロセッサベースシステムに提供し、さらに、前記第一のタイプのメモリデバイスをアクセスし前記第一のタイプのメモリデバイスに格納されている前記第2のメモリコマンドが要求するデータの残部を前記プロセッサベースシステムに提供するように構成される、
    ことを特徴とする請求項2乃至4のいずれか一項に記載のメモリシステム。
  6. 前記コントローラは、前記第2のメモリコマンドが要求するデータの前記一部のために前記第二のタイプのメモリデバイスをアクセスしている期間のうちの少なくとも一部で、前記第2のメモリコマンドが要求するデータの前記残部のために前記第一のタイプのメモリデバイスをアクセスするように構成される、
    ことを特徴とする請求項5に記載のメモリシステム。
  7. プロセッサベースシステムから複数のメモリコマンドを受信するように構成されたコントローラと、
    第一のインターフェイスを介して、前記コントローラに結合された第一のタイプのメモリデバイスと、
    第二のインターフェイスを介して、前記コントローラに結合された第二のタイプのメモリデバイスであって、前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスと、
    を含み、
    前記コントローラは、
    前記複数のメモリコマンドがそれぞれ要求するデータに関連する複数の開始アドレスおよびデータ長のデータ構造をトレーニング期間中に作成し、
    前記データ構造を使用して、前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスに、前記複数の開始アドレスのうちの一つに対応するデータの最初の部分をシャドウィングするように構成される、
    ことを特徴とするメモリシステム。
  8. 前記コントローラは、前記トレーニング期間の開始を示す信号を前記プロセッサベースシステムから受信するように構成される、
    ことを特徴とする請求項1乃至7のいずれか一項に記載のメモリシステム。
  9. 前記第一のタイプのメモリデバイスは、NANDフラッシュメモリデバイスを含む、
    ことを特徴とする請求項1乃至8のいずれか一項に記載のメモリシステム。
  10. 前記第二のタイプのメモリデバイスは、DRAMメモリデバイスを含む、
    ことを特徴とする請求項1乃至9のいずれか一項に記載のメモリシステム。
  11. 前記データ構造は、前記コントローラにアクセス可能なメモリに格納される、
    ことを特徴とする請求項1乃至10のいずれか一項に記載のメモリシステム。
  12. 前記コントローラは、前記第一のタイプのメモリデバイスに格納されたデータの分析に基づいて、前記データ構造を作成するようにさらに構成される、
    ことを特徴とする請求項1乃至11のいずれか一項に記載のメモリシステム。
  13. 前記コントローラは、前記トレーニング期間中に前記プロセッサベースシステムからの複数の読み出しコマンドの受信に基づいて、前記データ構造を作成するようにさらに構成される、
    ことを特徴とする請求項1乃至12のいずれか一項に記載のメモリシステム。
  14. 前記プロセッサベースシステムは賭博マシンを含む、
    ことを特徴とする請求項1乃至13のいずれか一項に記載のメモリシステム。
  15. 前記データ構造はリストである、
    ことを特徴とする請求項1乃至14のいずれか一項に記載のメモリシステム。
  16. 複数のメモリデバイスを有するメモリシステムにデータを格納するための方法であって、
    前記メモリシステムに対する複数のメモリコマンドの各々に関連する複数の開始アドレスおよび複数のデータ長のデータ構造を作成することと、
    前記複数のメモリコマンドのうちで、データチャンクよりも小さい長さを有するデータを識別するために、前記データ構造にアクセスすることと、
    それぞれが前記データチャンクよりも小さい長さを有するデータであると識別された複数のデータを単一のデータチャンクに統合し、前記メモリシステムの少なくとも一つのメモリデバイス内に前記単一のデータチャンクを格納することと、
    を含む、
    ことを特徴とする方法。
  17. 前記メモリシステムの別のメモリデバイスに、前記少なくとも一つのメモリデバイスからの前記単一のデータチャンクをシャドウィングすることをさらに含む、
    ことを特徴とする請求項16に記載の方法。
  18. 前記複数のメモリコマンドのうちで、前記データチャンクよりも大きい長さを有するデータを識別するために、前記データ構造にアクセスすることと、
    前記データチャンクよりも大きい長さを有するデータであると識別されたデータを、第一のデータチャンクとその他のデータチャンクとに整列させて、前記メモリシステムの前記少なくとも一つのメモリデバイス内に格納することと、をさらに含む、
    ことを特徴とする請求項17に記載の方法。
  19. 前記メモリシステムの前記別のメモリデバイスに、前記少なくとも一つのメモリデバイスからの前記データチャンクよりも大きい長さを有するデータと識別されたデータの前記第一のデータチャンクをシャドウィングすることをさらに含む、
    ことを特徴とする請求項18に記載の方法。
  20. 前記データ構造は第一のデータ構造であり、前記複数のメモリコマンドの各々の論理アドレス、前記少なくとも一つのメモリデバイスの物理アドレス、前記別のメモリデバイスの物理アドレス、および前記第一のデータチャンクがシャドウィングされることを示すフラグの間の関連付けを格納する第二のデータ構造を作成することをさらに含む、
    ことを特徴とする請求項19に記載の方法。
  21. 前記データ構造の作成は、トレーニング期間を示す信号を受信することで行われる、
    ことを特徴とする請求項16乃至20のいずれか一項に記載の方法。
  22. 前記データ構造の作成は、前記トレーニング期間中に、前記複数のメモリコマンドを受信し、前記複数の開始アドレスおよび前記複数のデータ長に対して前記複数のメモリコマンドを分析することに基づき行われる、
    ことを特徴とする請求項21に記載の方法。
  23. 前記データ構造の作成は、前記複数のメモリコマンドに応じて、データのグルーピングを識別するために、前記メモリシステムに関連する前記複数のメモリデバイスに格納されたデータの分析を実施することを含む、
    ことを特徴とする請求項16乃至20のいずれか一項に記載の方法。
  24. 前記少なくとも一つのメモリデバイスは第一のタイプのメモリデバイスであり、前記別のメモリデバイスは前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスである、
    ことを特徴とする請求項17乃至20のいずれか一項に記載の方法。
  25. 前記第一のタイプのメモリデバイスはNANDフラッシュメモリデバイスを含み、前記第二のタイプのメモリデバイスはDRAMメモリデバイスを含む、
    ことを特徴とする請求項24に記載の方法。
JP2015561875A 2013-03-14 2013-03-14 トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 Active JP6276296B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/000285 WO2014139047A1 (en) 2013-03-14 2013-03-14 Memory systems and methods including training,data organizing,and/or shadowing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017001539A Division JP6391719B2 (ja) 2017-01-10 2017-01-10 トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2016509325A JP2016509325A (ja) 2016-03-24
JP6276296B2 true JP6276296B2 (ja) 2018-02-07

Family

ID=51533839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561875A Active JP6276296B2 (ja) 2013-03-14 2013-03-14 トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法

Country Status (7)

Country Link
US (3) US9645919B2 (ja)
EP (1) EP2972888B1 (ja)
JP (1) JP6276296B2 (ja)
KR (1) KR101752583B1 (ja)
CN (1) CN105122218B (ja)
TW (1) TWI512608B (ja)
WO (1) WO2014139047A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105122218B (zh) 2013-03-14 2019-01-18 美光科技公司 包含训练、数据组织及/或遮蔽的存储器系统及方法
US9116824B2 (en) * 2013-03-15 2015-08-25 Sandisk Technologies Inc. System and method to reduce read latency of a data storage device
US10659532B2 (en) * 2015-09-26 2020-05-19 Intel Corporation Technologies for reducing latency variation of stored data object requests
US10013178B2 (en) * 2016-04-30 2018-07-03 Sandisk Technologies Llc Methods, systems and computer readable media for optimizing storage device bus and resource utilization by host realignment
EP3264276A1 (en) * 2016-06-28 2018-01-03 ARM Limited An apparatus for controlling access to a memory device, and a method of performing a maintenance operation within such an apparatus
KR20180046428A (ko) 2016-10-27 2018-05-09 삼성전자주식회사 메모리 장치 및 그것의 트레이닝 방법
KR102649048B1 (ko) 2016-11-02 2024-03-18 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10649665B2 (en) * 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
US10402327B2 (en) * 2016-11-22 2019-09-03 Advanced Micro Devices, Inc. Network-aware cache coherence protocol enhancement
KR20180121733A (ko) * 2017-04-28 2018-11-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10936221B2 (en) * 2017-10-24 2021-03-02 Micron Technology, Inc. Reconfigurable memory architectures
US10628354B2 (en) 2017-12-11 2020-04-21 Micron Technology, Inc. Translation system for finer grain memory architectures
CN108182154A (zh) * 2017-12-22 2018-06-19 深圳大普微电子科技有限公司 一种基于固态硬盘的日志文件的读写方法及固态硬盘
WO2019147522A2 (en) * 2018-01-23 2019-08-01 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
US11762558B2 (en) * 2018-09-21 2023-09-19 Samsung Electronics Co., Ltd. Storage device having a controller that communicates with each of two memories through separate interfaces
WO2020128547A1 (en) * 2018-12-21 2020-06-25 Micron Technology, Inc. Method and device to ensure a secure memory access
US11055220B2 (en) 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management
US11017842B2 (en) * 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US11392386B2 (en) 2020-08-14 2022-07-19 International Business Machines Corporation Program counter (PC)-relative load and store addressing for fused instructions
KR20220073017A (ko) * 2020-11-26 2022-06-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20220083291A (ko) 2020-12-11 2022-06-20 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템을 포함하는 전자 시스템
US20220197699A1 (en) * 2020-12-18 2022-06-23 Micron Technology, Inc. Sharing data between computing devices
US11507296B2 (en) 2021-03-10 2022-11-22 Micron Technology, Inc. Repair operation techniques

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0134822B1 (de) 1983-07-27 1988-07-20 Ibm Deutschland Gmbh Digitalspeicher
JPH0636550A (ja) 1992-07-21 1994-02-10 Hitachi Ltd 半導体記憶装置
JPH08194643A (ja) 1995-01-19 1996-07-30 Fanuc Ltd メモリ制御方式
JPH08328949A (ja) 1995-06-06 1996-12-13 Mitsubishi Electric Corp 記憶装置
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
JP4439096B2 (ja) 2000-08-28 2010-03-24 株式会社東芝 メモリカード及び同カードに適用されるアドレス変換方法
JP2002351741A (ja) 2001-05-30 2002-12-06 Matsushita Electric Ind Co Ltd 半導体集積回路装置
JP2006155391A (ja) 2004-11-30 2006-06-15 Ricoh Co Ltd 画像形成装置
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US8397013B1 (en) * 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7519754B2 (en) * 2005-12-28 2009-04-14 Silicon Storage Technology, Inc. Hard disk drive cache memory and playback device
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US8015388B1 (en) * 2006-08-04 2011-09-06 Vmware, Inc. Bypassing guest page table walk for shadow page table entries not present in guest page table
JP5158740B2 (ja) 2006-08-28 2013-03-06 株式会社メガチップス メモリシステム
US7584335B2 (en) 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
JP2008225608A (ja) 2007-03-09 2008-09-25 Seiko Epson Corp メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法
WO2008131058A2 (en) * 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
JP2009211234A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4632180B2 (ja) 2008-10-15 2011-02-16 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8725983B2 (en) * 2009-01-23 2014-05-13 Cypress Semiconductor Corporation Memory devices and systems including multi-speed access of memory modules
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
US9015443B2 (en) * 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
US8862806B2 (en) * 2010-08-20 2014-10-14 Samsung Electronics Co., Ltd Semiconductor storage device and method of throttling performance of the same
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
JP5708216B2 (ja) 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US8621157B2 (en) * 2011-06-13 2013-12-31 Advanced Micro Devices, Inc. Cache prefetching from non-uniform memories
US8868797B1 (en) * 2012-03-30 2014-10-21 Emc Corporation Techniques for automated discovery of storage devices and their performance characteristics
US9020892B2 (en) * 2011-07-08 2015-04-28 Microsoft Technology Licensing, Llc Efficient metadata storage
US9319316B2 (en) * 2011-08-02 2016-04-19 Cavium, Inc. Method and apparatus for managing transfer of transport operations from a cluster in a processor
US8949473B1 (en) * 2012-02-16 2015-02-03 Inphi Corporation Hybrid memory blade
US20130238832A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Deduplicating hybrid storage aggregate
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US20140101370A1 (en) * 2012-10-08 2014-04-10 HGST Netherlands B.V. Apparatus and method for low power low latency high capacity storage class memory
US8547745B1 (en) * 2012-11-16 2013-10-01 Avalanche Technology, Inc. Host-managed logical mass storage device using magnetic random access memory (MRAM)
US8949483B1 (en) * 2012-12-28 2015-02-03 Emc Corporation Techniques using I/O classifications in connection with determining data movements
US9250826B2 (en) 2013-03-13 2016-02-02 Silicon Graphics International Corp. Enhanced performance monitoring method and apparatus
CN105122218B (zh) 2013-03-14 2019-01-18 美光科技公司 包含训练、数据组织及/或遮蔽的存储器系统及方法
US9323457B2 (en) * 2013-12-09 2016-04-26 Xilinx, Inc. Memory arrangement for implementation of high-throughput key-value stores
US9489145B2 (en) 2013-12-09 2016-11-08 HGST Netherlands B.V. Disk drive including I-regions having configurable final logical block addresses
JP6296228B2 (ja) 2013-12-13 2018-03-20 三菱自動車工業株式会社 ハイブリッド車両の制御装置
CN104156524B (zh) 2014-08-01 2018-03-06 河海大学 交通数据流的聚集查询方法及系统
US20170083474A1 (en) * 2015-09-22 2017-03-23 Advanced Micro Devices, Inc. Distributed memory controller

Also Published As

Publication number Publication date
CN105122218A (zh) 2015-12-02
US10664171B2 (en) 2020-05-26
US9645919B2 (en) 2017-05-09
JP2016509325A (ja) 2016-03-24
EP2972888B1 (en) 2019-02-06
EP2972888A1 (en) 2016-01-20
US20170212694A1 (en) 2017-07-27
KR101752583B1 (ko) 2017-07-11
US11487433B2 (en) 2022-11-01
KR20150128924A (ko) 2015-11-18
TW201502971A (zh) 2015-01-16
WO2014139047A1 (en) 2014-09-18
CN105122218B (zh) 2019-01-18
EP2972888A4 (en) 2017-01-18
US20200241764A1 (en) 2020-07-30
TWI512608B (zh) 2015-12-11
US20140281161A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
JP6276296B2 (ja) トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
CA2971913C (en) Data reading method and apparatus
JP6391719B2 (ja) トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
US20160054934A1 (en) Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
TWI518694B (zh) 可減少記憶體干擾之記憶裝置及其操作方法
KR102652694B1 (ko) 서브 블록 모드를 사용한 구역 네임스페이스 제한 완화
US8909895B2 (en) Memory apparatus
KR20170035155A (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US11397669B2 (en) Data storage device and non-volatile memory control method
US20130103893A1 (en) System comprising storage device and related methods of operation
US10754785B2 (en) Checkpointing for DRAM-less SSD
US10754555B2 (en) Low overhead mapping for highly sequential data
US11307979B2 (en) Data storage device and non-volatile memory control method
US11481136B1 (en) Very low sized zone support for storage devices
CN113590505A (zh) 地址映射方法、固态硬盘控制器及固态硬盘
US20210042257A1 (en) Data processing system and operating method thereof
US11748023B2 (en) Data storage device and non-volatile memory control method
US12039179B2 (en) Finding and releasing trapped memory in uLayer
US12019878B2 (en) Pre-validation of blocks for garbage collection
US11640253B2 (en) Method to use flat relink table in HMB
US20230205427A1 (en) Storage device including memory controller and operating method of the same
CN116560906A (zh) 元数据重建方法、数据存储装置控制器及数据存储装置
JP2013077209A (ja) プログラム、情報処理システム、情報処理装置、および情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150916

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180111

R150 Certificate of patent or registration of utility model

Ref document number: 6276296

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250