特許第6276296号(P6276296)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロン テクノロジー, インク.の特許一覧

特許6276296トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
<>
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000002
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000003
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000004
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000005
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000006
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000007
  • 特許6276296-トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6276296
(24)【登録日】2018年1月19日
(45)【発行日】2018年2月7日
(54)【発明の名称】トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法
(51)【国際特許分類】
   G06F 12/06 20060101AFI20180129BHJP
【FI】
   G06F12/06 522A
   G06F12/06 515J
【請求項の数】25
【全頁数】19
(21)【出願番号】特願2015-561875(P2015-561875)
(86)(22)【出願日】2013年3月14日
(65)【公表番号】特表2016-509325(P2016-509325A)
(43)【公表日】2016年3月24日
(86)【国際出願番号】CN2013000285
(87)【国際公開番号】WO2014139047
(87)【国際公開日】20140918
【審査請求日】2015年11月13日
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー, インク.
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100106851
【弁理士】
【氏名又は名称】野村 泰久
(72)【発明者】
【氏名】チェン イ
(72)【発明者】
【氏名】村上 幸康
【審査官】 酒井 恭信
(56)【参考文献】
【文献】 特表2009−540431(JP,A)
【文献】 米国特許出願公開第2007/0288683(US,A1)
【文献】 特開2006−155391(JP,A)
【文献】 米国特許出願公開第2008/0126716(US,A1)
【文献】 特開2010−097333(JP,A)
【文献】 特開2008−225608(JP,A)
【文献】 特開2011−186563(JP,A)
【文献】 特開2014−078231(JP,A)
【文献】 米国特許出願公開第2014/0101370(US,A1)
【文献】 米国特許第08874831(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − 12/06
(57)【特許請求の範囲】
【請求項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に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、概して半導体メモリに関し、DRAMメモリ内のNANDベースフラッシュメモリ由来の幾つかのデータをシャドウィング(shadow:複写)しうるメモリシステムの例が記述される。
【背景技術】
【0002】
電気的に消去可能でプログラム可能なフラッシュメモリセルを有するメモリデバイスは、広範囲の電気デバイスで見出される。例示的なフラッシュメモリセルは、浮遊ゲートトランジスタメモリセルとしても知られているが、中間チャネル領域を形成するために、ソース領域と、ソース領域から離隔されたドレイン領域とを有する電界効果トランジスタに類似するものである可能性がある。浮遊ゲートは、ドープされたポリシリコンで作成されうるが、チャネル領域上に配置され、ゲート酸化膜の層によってチャネル領域から電気的に絶縁されてもよい。制御ゲートは、浮遊ゲート上に作製され、制御ゲートもまたドープされたポリシリコンで作成されてもよい。制御ゲートは、誘電体層によって浮遊ゲートから電気的に分離されてもよい。このように、浮遊ゲートは、フラッシュメモリのチャネル、制御ゲートおよび他の全ての素子から分離されうるという意味で“浮遊”している。
【0003】
例示的なフラッシュメモリセルは、浮遊ゲート上に電荷を格納することによってプログラムされてもよい。その後、電荷は、電力がフラッシュメモリから除去された後でさえも、或る有限の期間ゲートに保持されうる。したがって、フラッシュメモリセルは、不揮発性と称されてもよい。電荷は、制御ゲートおよびドレインまたはソースに好適な電圧を印加することによって浮遊ゲートに格納されてもよい。例えば、電子を引き付けるために制御ゲートに十分に大きい正の電圧を印加している間にソースを接地することによって、浮遊ゲートに負の電荷を配置することができ、負の電荷は、チャネル領域から浮遊ゲートへとゲート酸化膜を通ってトンネル効果を生じる。浮遊ゲートにもともと存在する電荷と共に、制御ゲートに印加される電圧(プログラミング電圧と呼ばれる)およびプログラミング電圧が印加される期間が、プログラミング後に浮遊ゲートに存在する電荷量を決定する。
【0004】
例示的なフラッシュメモリセルは、閾値電圧よりも大きい大きさを有する正の電圧を、制御ゲートからソースに印加することによって読み出されてもよい。フラッシュメモリセルに格納された電荷量は、ソースとドレインとの間の電流をフラッシュメモリセルが流すことを可能にするために、制御ゲートに印加しなければならない閾値電圧の大きさを決定してもよい。負の電荷が浮遊ゲートに追加されると、フラッシュメモリセルの閾値電圧は増加する。読み出し動作中、十分な電荷が浮遊ゲートに格納されていない場合には、セルを導電性にさせるのに十分な大きさで読み出し電圧が制御ゲートに印加されるが、十分な電荷が浮遊ゲートに格納されている場合には、読み出し電圧は、セルを導電性にさせるのに十分な大きさではない。読み出し動作中、ドレインは、セルの出力端子として使用されるが、正の電圧にプリチャージされ、ソースはグラウンドに結合されてもよい。したがって、フラッシュメモリセルの浮遊ゲートが十分に充電されている場合、ドレインは正の電圧のままである。フラッシュメモリセルの浮遊ゲートが十分に充電されていない場合、セルはドレインを接地する。
【0005】
フラッシュメモリセルがプログラムされる前、ある場合には、浮遊ゲートから電荷を取り除くことによって消去されなければならない。セルは、プログラミング用に使用される極性とは逆の極性を有する、ゲート−ソース電圧をセルに印加することによって消去することができる。具体的には、制御ゲートは接地され、ゲート酸化膜を通って電子にトンネル効果を引き起こし、浮遊ゲートから電荷を空乏状態にするために、ソースに対して大きな正の電圧が印加される。別のアプローチにおいては、比較的大きな負の電圧が制御ゲートに印加され、供給電圧などの正の電圧がソース領域に印加される。
【0006】
典型的なフラッシュメモリデバイスは、多数のフラッシュメモリセルを含み、多数のフラッシュメモリセルは、行および列に配列されてもよい。二つの一般的なタイプのフラッシュメモリアレイアーキテクチャは、“NAND”および“NOR”アーキテクチャであり、各々の基本的なフラッシュメモリセル構造が配置される論理形式のためにそう呼ばれている。NORフラッシュは、概して、NORゲートとして機能してもよい。例えば、ワード線がハイにされ、対応するトランジスタが出力ビット線をローに引き下げるように機能しうる。NANDフラッシュは、概して、NANDゲートに類似した方法で接続された浮遊ゲートトランジスタを含んでもよい。例えば、幾つかのトランジスタは、直列に接続され、全てのワード線がハイであるときのみ、ビット線はローに引き下げられうる。
【0007】
概して、NORフラッシュメモリはNANDフラッシュメモリよりも速い読み出し応答を提供してもよい。さらに、NANDフラッシュメモリは、メモリをリフレッシュし、不良ブロックを修復するために、ハウスキーピングプロセスを必要とすることがある。
【図面の簡単な説明】
【0008】
図1】本発明の一実施形態による、システムの概略図である。
図2】本発明の一実施形態による、メモリコマンドを提供する例示的一方法を示すフローチャートである。
図3】本発明の一実施形態による、NANDフラッシュデバイスからDRAMデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。
図4】本発明の一実施形態による、論理アドレススペースの少なくとも一部の図である。
図5】本発明の一実施形態による、NANDフラッシュデバイスの物理アドレススペースの少なくとも一部の図である。
図6】本発明の一実施形態による、マッピングテーブルの概略図である。
図7】本発明の一実施形態により配置されたNANDフラッシュおよびDRAMアドレススペースの概略図である。
【発明を実施するための形態】
【0009】
本発明の実施形態の十分な理解を提供するために、或る詳細事項が以下に説明される。しかしながら、本発明の実施形態は、これらの種々の特定の詳細事項なしで実現されてもよいことは当業者には明らかであろう。幾つかの例においては、既知の回路、制御信号、タイミングプロトコルおよびソフトウェア動作は、本発明の記述された実施形態を不必要に不明瞭にすることを防ぐために、詳細には示されていない。
【0010】
現在の多くのシステムは、小さいレイテンシー(遅延)を必要とする用途では、NORフラッシュおよびマスクROMメモリを利用している。このような用途は、動画および/または静止画に対応する格納されたデータに対して、高いランダム性と突然のアクセスを必要としうる賭博(gambling)マシンの動作を含むが、それに限定されることはない。NANDフラッシュは、一般的にその低コストにより望ましいことがあるが、NANDフラッシュに関連する比較的高いレイテンシーは、幾つかの例においては望ましくないものであることがある。さらに、NANDフラッシュは、予測不可能な時点で実施されるハウスキーピング動作を必要とすることがあり、その結果、データ検索用に数秒間待機することがあり、これもまた或る用途においては望ましくないことがある。したがって、本発明の実施形態は、或る用途に対してのレイテンシー性能を改善しうるように、NANDフラッシュおよびDRAMメモリの双方を利用するメモリアーキテクチャを提供する。例えば、DRAMメモリに格納された或るデータは、NANDフラッシュメモリに格納されてもよい。幾つかの例においては、ハウスキーピング動作は、メモリシステムの電源投入後にのみ実施されてもよい。
【0011】
本明細書では、NANDフラッシュおよびDRAMメモリが例示的システムを記述するために使用されているが、他の例においては、他のタイプのメモリが使用されてもよい。一般的に、本発明の実施形態は、あるタイプのメモリに関連する有効なレイテンシーを改善するために使用されてもよい。したがって、一組のメモリデバイス(例えば、NANDフラッシュ)からのデータの一部は、第一の組のメモリデバイスよりも概して低いレイテンシーを有する別の組のメモリデバイス(例えば、DRAM)にシャドウィングされてもよい。より高いレイテンシーのメモリデバイス(例えば、NANDフラッシュ)から残りのデータが検索されている間に、データのシャドウィングされた部分がホストに提供されてもよい。
【0012】
特定の用途の例、例えば、賭博は、本明細書では例示として記述される。本明細書で記述される実施形態は、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定されない種々のあらゆる用途で利用されてもよいことを理解されたい。
【0013】
図1は、本発明の一実施形態によるシステムの概略図である。システム100は、インターフェイス109を介してメモリシステム107と通信しうるプロセッサベースシステム105を含んでもよい。インターフェイス109は、例えば、SATAインターフェイスまたは他のメモリシステムインターフェイスを利用して実装されてもよい。プロセッサベースシステム105は、上述されたように、デスクトップ、ラップトップおよびタブレットコンピュータを含むコンピュータ、賭博マシン、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定はされない一つ以上の電子デバイスを含んでもよい。
【0014】
メモリシステム107は、コントローラ111を含んでもよい。コントローラ111は、一つ以上のNANDフラッシュデバイス115と通信するためのインターフェイス113に結合されてもよい。インターフェイス113は、例えば、バスまたは他の電子通信コンジットを利用して実現され、限定はされないが、DDRプロトコルなどのNANDフラッシュデバイス115と互換性があるように、インターフェイス113を介して、データが通信されてもよい。コントローラ111は、一つ以上のDRAMデバイス125と通信するためのインターフェイス121にさらに結合されてもよい。
【0015】
一般的に、一つ以上の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に関連する読み出しレイテンシーをマスクしてもよい。
【0016】
図1におけるインターフェイス113および121を介する通信は、概して、あらゆる数のチャネルを含む任意の方法で配置されてもよい。図1の例においては、インターフェイス113は、4つのチャネルNANDインターフェイスを利用して実装されてもよい。8つのNANDデバイス115a−hは、二つのNANDデバイス(例えば、ダイ)が各チャネルを介してアクセス可能なように配置されてもよい。他の例においては、チャネル毎に他の数のチャネルおよび/またはデバイスが使用されてもよい。図1の例においては、インターフェイス121は、チャネル毎に2つのデバイス(例えば、ダイ)を利用して実装され、インターフェイス121は、二つのチャネルをサポートしてもよい。
【0017】
図2は、本発明の一実施形態による、メモリコマンド(例えば、読み出しコマンド)を提供する例示的一方法を示すフローチャートである。ブロック202において、メモリコマンドが受信されてもよい。図1に戻ると、メモリコマンドは、プロセッサベースシステム105からコントローラ111によって受信されてもよい。メモリコマンドに応じて、図2を再度参照すると、最初のデータチャンクが、ブロック204においてDRAMデバイスから読み出されてもよい。例えば、図1のコントローラ111は、一つ以上のDRAMデバイス125からのメモリコマンドで要求されたデータに対応する最初のデータチャンクを読み出してもよい。DRAMに格納された最初のデータチャンクのサイズは、異なる実施形態において変化しうるが、そのサイズは、概して、最初のデータチャンクがプロセッサベースシステムに提供されるときまでには十分に大きくなるように選択され、次のデータチャンクは許容可能なレイテンシーでNANDデバイスから到達し、例えば、次のデータチャンクは、最初のデータチャンクがプロセッサベースシステム(例えば、ホスト)に提供されたら、プロセッサベースシステムへの提供用に準備されていてもよい。
【0018】
最初のデータチャンクが、ブロック206において、プロセッサベースシステム(例えば、ホスト)に提供されてもよい。最初のデータチャンクが、データを要求するプロセッサベースシステムに提供されている期間のうちの少なくとも一部の期間に、ブロック208において、次のデータチャンクが一つ以上のNANDデバイスでアクセスされてもよい。次のデータチャンクは、ブロック204および/またはブロック206が実施される期間中に完全にアクセスされることはないが、次のデータチャンクは、その期間中に少なくともアクセスされてもよい。したがって、ブロック206においてホストに最初のデータチャンクが提供される期間のうちの少なくとも一部の期間、および/または、ブロック204において、一つ以上のDRAMデバイスから最初のデータチャンクが読み出される期間のうちの少なくとも一部の期間に、一つ以上のNANDデバイスから次のデータチャンクに対するアクセスが、生じることがある。このように、一つ以上のNANDデバイスへのアクセスに関連するレイテンシーは、要求するプロセッサベースシステムに対する最初のデータチャンクの少なくとも部分的に同時の読み出しおよび/または提供によって少なくとも部分的にマスクされてもよい。次のデータチャンクは、ブロック210において、ホストに提供されてもよい。図2には示されていないが、ブロック208および210は、メモリコマンドが提供されるまで繰り返されてもよい。例えば、ブロック208において一つ以上のNANDデバイスにおいて次のデータチャンクがアクセスされる期間のうちの一部の期間に、および/またはブロック210において、次のデータチャンクがホストに提供される期間のうちの一部の期間に、追加データチャンクは、一つ以上のNANDデバイスから読み出されてもよい。次のデータチャンクがブロック210の終わりにホストに提供される時間までには、追加データチャンクがホストへの提供用に準備されていてもよい。
【0019】
図1を参照すると、システム100は、図2に示されるプロセスを実現してもよく、例えば、コントローラ111は、一つ以上のDRAMデバイス125から最初のデータチャンクを読み出し、最初のデータチャンクをシステム105に提供してもよい。コントローラ111が最初のデータチャンクを読み出しているおよび/またはシステム105に最初のデータチャンクを提供している期間のうちの少なくとも一部の期間に、コントローラ111は、一つ以上のNANDデバイス115から次のデータチャンクを読み出してもよい。プロセッサベースシステム105が第一のデータチャンクを受信したときに、次のデータチャンクを許容可能な量でプロセッサベースシステム105に提供するために準備されているように、例えば、追加のレイテンシーがないように、コントローラ111は、これらのアクティビティの時間を設定してもよい。
【0020】
図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訂正を完了することができる。
【0021】
したがって、本発明の実施形態は、DRAMデバイスでアクセスされるべきデータの第一部分(例えば、チャンク)を有利にシャドウィングし、アクセスされるべきデータの残りがNANDフラッシュデバイスに格納されてもよい。有利なことに、本明細書で記述されるメモリシステムの実施形態は、一つ以上のDRAMデバイスにおいて、概してグループとしてアクセスされるデータの第一のデータチャンクを格納してもよい。例えば、ファイル(例えば、動画、静止画、文書、プログラムなど)の第一のデータチャンクは、DRAMに格納され、ファイルの残りのデータは、NANDフラッシュに格納されてもよい。このように、図1のプロセッサベースシステム105は、メモリシステム107にメモリコマンドを提供するときに、メモリコマンドに対応する第一のデータチャンクがDRAMに見出され、残りのデータがNANDフラッシュに見出されてもよい。
【0022】
本明細書で記述される例は、データのうちのアクセスされる第一部分(例えば、一つのチャンク)がDRAMデバイスでシャドウィングされる例を含み、他の例においては、データの他の部分(例えば、複数の最初のデータチャンク)がシャドウィングされてもよい。一般的に、より多くのデータがシャドウィングされると、有効に隠されうるNANDフラッシュデバイスのレイテンシーはより長くなるが、シャドウィングされるデータのためにDRAMで必要とされうる格納量はより大きくなる。
【0023】
如何にしてシャドウィングが実現されうるかを示す例が本明細書にさらに記述される。図3は、本発明の一実施形態による、NANDフラッシュデバイスからDRAMデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。一般的に、NANDフラッシュデバイスでアクセスされるべきデータの開始アドレスおよびデータ長を知ることが望ましいことがある。読み出しのみのシステム(例えば、賭博マシン)においては、データは、メモリシステムに予めプログラムされ、動作中には変更できない。したがって、幾つかの実施形態においては、アクセスされるべきデータの位置および長さ(例えば、個々のファイルのデータの開始アドレスおよび長さ)は、予め知られており、開始アドレスのデータ構造および長さは、提供されるか、メモリシステムに格納されてもよい。例えば、このようなデータ構造は、図1のNANDフラッシュデバイス115または図1のDRAMデバイス125のうちの一つ以上に格納されてもよい。開始アドレスのデータ構造および長さは、例えば、リストとして実装されてもよい。他のデータ構造が同様に利用されてもよいが、開始アドレスのデータ構造および長さは、“リスト”と称されるであろう。
【0024】
既知の開始アドレスおよび長さのリストは、図3のブロック304でアクセスされ、DRAMデバイスにシャドウィングするために、既知の開始アドレスに対応するデータのチャンクを識別するために使用されてもよい。幾つかの例においては、図1のシステム107などのメモリシステムは、NANDフラッシュデバイスでアクセスされるデータの位置および長さを自体で識別するために、図3のブロック302でトレーニングされてもよい。ブロック302におけるトレーニング中に、メモリコントローラ(例えば、図1のコントローラ111)は、ホスト(例えば、図1のプロセッサベースシステム105)から受信されたメモリコマンドのアドレスのログをとってもよい。アドレスのリストを分析することによって、コントローラは、図3のブロック304でアクセスされるデータの既知の開始アドレスおよびデータ長のリストを自体で作成してもよい。他の例においては、ブロック302におけるトレーニングは、メモリシステム内のNANDフラッシュデバイスの内容の他の分析を通して実現されてもよい。例えば、プロセッサベースシステムからメモリコマンドにおいて要求されうるデータグルーピングの開始を示すヘッダまたは他のデータストリングは、データグルーピングの長さと共に、コントローラによって識別されてもよい。幾つかの例においては、トレーニングは、例えば、メモリコントローラのプロセッサベースシステムから提供される信号によって、識別されうるトレーニング期間中に生じることがある。
【0025】
ブロック306において、データは、再構築され、マッピングテーブルが作成されてもよい。データは、DRAMデバイスにおいてデータのシャドウィング部分に対して導通性がありうるように、NANDフラッシュデバイスにおける格納のために再構築されてもよい。作成されたマッピングテーブルは、論理−物理アドレスのマップを含んでもよい。論理アドレスは、例えば、図1のプロセッサベースシステム105によって特定されるようなアドレスであり、物理アドレスは、例えば図1のコントローラ111によって理解されるようなNANDフラッシュデバイスに対するアドレスであってもよい。二つのタイプのデータ再構築が生じることがある。幾つかの実施形態においては、唯一つのタイプが生じ、他の実施形態においては、双方のタイプが生じることがある。幾つかの実施形態においては、他のタイプのデータ再構築が生じてもよい。
【0026】
第一のタイプのデータ再構築は、データチャンクのサイズよりも小さいデータに対応する複数の期待されるメモリアドレスを、単一のデータチャンクに詰め込んでもよい。一般的に、データチャンクとは、任意のメモリシステム内のNANDフラッシュから同時に読み出されうるデータ量のことを称する。図1を参照すると、一例においては、インターフェイス113がチャネル毎に二つのダイを有する4チャネルをサポートし、ダイ毎に2ページがアクセスされ、ページサイズが8バイトである場合、データチャンクサイズは、4×2×2×8=128kBであってもよい。
【0027】
一般的に、データチャンクは、スーパーページ(super page)と称されてもよい。NANDデバイスの有効なレイテンシーを隠すか低下させるために上述されたように、データチャンクは、図1のNANDフラッシュデバイスから出力されるデータチャンクのための期間が、DRAMから出力される同一サイズのデータチャンクのための期間以下であるように、十分なサイズとされるべきである。
【0028】
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デバイスにシャドウィングされてもよい。
【0029】
図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は単一のデータチャンクに統合される。
【0030】
ブロック306で生じうるデータ再構築の別のタイプは、データチャンクよりもサイズが大きい(例えば、幾つかの例においては、128kBを超える)アクセスに対応するデータを再配列することである。データチャンクよりも大きいアクセスに対応する第一のアドレスデータがデータチャンクと整列される場合、再構築は起こらない。しかしながら、第一のアドレスがデータチャンク境界と整列されない場合、第一のアドレスの物理アドレスは、データチャンク境界と整列するためにシフトされ、その結果、第一のアドレスと物理アドレスとの間に生じるマップは、論理−物理アドレステーブルに格納されてもよい。
【0031】
図3におけるブロック306のデータ再構築は、例えば、図1のコントローラ111によって実施されてもよい。幾つかの例においては、コントローラ111は、図3のブロック302で作成されたリストなどの、メモリアクセス用の既知の開始アドレスおよびアクセスされるべきデータ長のリストにアクセスしてもよい。コントローラ111は、アクセスされるべきデータがデータチャンクよりも小さい場合には、メモリアクセスに関連するデータを統合し、アクセスされるべきデータがデータチャンクのサイズよりも大きい場合には、メモリアクセスに関連するデータをデータチャンクと整列してもよい。コントローラ111は、再構築を反映する論理−物理マッピングテーブルを作成してもよい。幾つかの例においては、データは、一つ以上のNANDフラッシュデバイス115に既に格納され、再構築プロセスで識別されたものに対応する位置に移されてもよい。他の例においては、ブロック302の再構築プロセスで識別された構成に従って、コントローラ111によって、データがNANDフラッシュデバイスに書き込まれてもよい。
【0032】
図3のブロック308においては、選択されたデータは、一つ以上のNANDフラッシュデバイスから一つ以上のDRAMデバイスにシャドウィングされてもよい。例えば、コントローラ111は、選択されたデータをDRAMデバイスにシャドウィングしてもよい。データが、一つ以上のNANDフラッシュデバイスおよび一つ以上のDRAMデバイスの双方に格納されるように、シャドウィングは、一つ以上のNANDフラッシュデバイスから一つ以上のDRAMデバイスに選択されたデータをコピーすることを含んでもよい。一般的に、ブロック308において、選択されたデータは、1)データチャンク以下の長さを有するデータに対するメモリアクセスに関連する一つ以上のDRAMデバイスにおけるデータチャンクおよび/または、2)データチャンクを超える長さを有するデータに対するメモリアクセスに関連する第一のデータチャンクを含んでもよい。このように、データチャンク以下の長さを有するデータに対するメモリコマンドは、一般的に、一つ以上のDRAMデバイスから提供されてもよい。さらに、データチャンクより大きい長さを有するデータに対するメモリコマンドは、一つ以上のDRAMデバイスから提供されたメモリコマンドの第一の部分と、一つ以上のNANDフラッシュデバイスから提供されたメモリコマンドの残りの部分とを有してもよい。
【0033】
ブロック308におけるシャドウィングは、例えば、図1のコントローラ111によって実施され、ブロック302で作成されうる既知の開始アドレスおよび長さのリストと、ブロック308でデータを選択してシャドウィングするためのブロック306からのマッピングテーブルとにアクセスしてもよい。コントローラ111は、以下にさらに記述されるように、シャドウィングを反映するために、マッピングテーブルにおけるエントリーをさらにアップデートしてもよい。
【0034】
ブロック308におけるシャドウィングは、種々の方法で実施されてもよい。一例においては、シャドウィングは、例えば、図1のシステム105などのプロセッサベースシステムによって供給されうるシャドウィングを示す信号の受信によって開始されてもよい。コントローラは、その後、シャドウィングの開始を示すビジー信号をホストに提供し、ビジー信号を除去し、および/または、シャドウィングが完了したことを示す異なる信号をホストに提供してもよい。幾つかの例においては、ホストは、メモリシステムがパワーサイクルを経験する次の時点まで、シャドウィングを示す信号を提供することによって、シャドウィングを再度トリガーできない。
【0035】
別の例においては、シャドウィングは、トレーニング中、例えば、図3のブロック302と少なくとも部分的に同時に実施されてもよい。ランダムアクセスが、トレーニング中にコントローラによって受信されると、アクセスに関連するデータがまだシャドウィングされていないときに、データの関連部分がシャドウィングされてもよい。
【0036】
図6は、本発明の一実施形態によるマッピングテーブルの概略図である。マッピングテーブル600は、例えば、図3のブロック306および/または308において作成されてもよい。マッピングテーブル600は、論理−物理アドレスマップ602および物理−シャドウアドレスマップ604を含む。上述された再構築プロセスによって影響を受けるように、データが配置される場合、論理−物理アドレスマップ602は、NANDフラッシュメモリにおける物理アドレスと論理アドレスを関連付けてもよい。さらに、論理−物理アドレスマップ602は、図6においてfSフラグと称される、フラグを含んでもよい。fSフラグは、関連するアドレスがDRAMメモリにシャドウィングされるか否かを示してもよい。一例においては、fSフラグは、1ビットの長さであって、0は論理−物理アドレスがシャドウィングされていないことを示し、1はアドレスがシャドウィングされていることを示す。幾つかの例においては、テーブル600で使用されたアドレスはブロックアドレスである。
【0037】
したがって、再度、図3を参照すると、データが再構築されると、図1のコントローラ111は、図6のマッピングテーブル600に、論理アドレスと物理アドレスの間の関連付けを記録してもよい。マッピングテーブル600は、マッピングテーブル131によって示されるように、図1の一つ以上のDRAMデバイス125に格納されてもよいし、図1の一つ以上のNANDフラッシュデバイス115に格納されてもよい。幾つかの実施形態においては、マッピングテーブル600は、DRAMデバイス125および/またはNANDデバイス115に格納されてもよい。
【0038】
図6のマッピングテーブル600は、物理アドレスおよびシャドウアドレス間の関連付け604をさらに含む。NANDフラッシュ内の特定の物理アドレスに格納されたデータがDRAMにシャドウィングされる場合、マッピングテーブル600内のfSフラグは、シャドウィングを示す。さらに、シャドウィングされたデータに関連するアドレスが、マッピングテーブル600に格納されてもよい。
【0039】
さらに、物理−シャドウアドレスマップ604は、図6でfCフラグと称されるフラグを含んでもよい。fCフラグは、次のデータチャンクがシャドウメモリ(例えば、DRAM)またはNANDフラッシュメモリにあるか否かを示してもよい。一例においては、fCフラグは、1ビットの長さであり、0は次のデータチャンクがNANDフラッシュにあることを示し、1は次のデータチャンクがシャドウメモリ(例えば、DRAM)にあることを示す。そのため、例えば、論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも小さいと推定される物理アドレスに対応する場合、次のメモリコマンドも、シャドウメモリ(例えば、DRAM)から提供されるため、fCフラグは、1に設定されてもよい。論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも大きいと推定される物理アドレスに対応する場合、第一のデータチャンクだけがシャドウメモリに配置され、次のデータチャンクがNANDフラッシュにあることを示すために、fCフラグは、0に設定されてもよい。
【0040】
図3に戻ると、マッピングテーブル600のfS、fCおよびシャドウアドレス部分は、データがDRAMにシャドウィングされると、ブロック308中に作成されてもよい。このように、図1のコントローラ111は、fS、fCおよびシャドウアドレス値を提供し、DRAM、NANDフラッシュまたはその組み合わせに格納されたマッピングテーブルにそれらを格納してもよい。論理−物理アドレスの関連付けおよび物理−シャドウアドレスの関連付けを含むマッピングテーブルが図6に示されているが、他の例においては、複数のテーブルが(例えば、一方が論理−物理アドレスの関連付けに、他方が物理−シャドウアドレスの関連付けに)使用されてもよい。他の例においては、図6に示された幾つかまたは全ての情報を表すために、テーブル以外のデータ構造が使用されてもよい。
【0041】
図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にシャドウィングされる。
【0042】
本明細書で記述されたように、図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によって)設定されてもよい。
【0043】
図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によって)設定されてもよい。
【0044】
本発明の実施例においては、図3図7を参照して記述されてきたトレーニング、データ再構築およびシャドウィングの例は、メモリシステムの電源投入中、メモリシステム分配の前に(例えば、製造中)、または他の予定時刻に起こることがある。幾つかの例においては、トレーニング、データ再構築および/またはシャドウィングは、動作中に動的に生じることがあり、動的動作は、格納されたデータのアクセスに関連するレイテンシーを最小限化することが望まれる家電製品においては、あまり都合がよくないことがある。
【0045】
図1の例示的メモリシステムの動作中に、コントローラ111は、図3を参照して記述されたように、電源投入中にシャドウィングを実施してもよい。コントローラ111は、シャドウィング動作によるメモリシステム107機能のうちのいくつかまたは全ての利用が不可能であることを示す指示を状態レジスタに格納するか、ビジー信号をプロセッサベースシステム105に提供してもよい。シャドウィングが完了すると、コントローラ111は、メモリシステム107が利用可能であることを示す指示を状態レジスタに格納するか、信号をプロセッサベースシステム105に提供してもよい。
【0046】
プロセッサベースシステム105からのメモリコマンドの受信で、コントローラ111は、受信した論理アドレスに対して対応する物理アドレスを識別するために、メモリコマンドに関連する論理アドレスを識別し、マッピングテーブル(例えば、図6の論理−物理アドレステーブル602)にアクセスしてもよい。コントローラ111は、論理/物理アドレス対に対応するfSフラグに追加的、または代替的にアクセスしてもよい。要求されたデータがシャドウィングされていないことをfSフラグが示す場合、コントローラはデータにアクセスするために、受信した論理アドレスに関連する物理アドレスにアクセスしてもよい。要求されたデータがシャドウィングされていることをfSフラグが示す場合、コントローラは受信した論理アドレスに関連する(例えば、物理−シャドウアドレステーブル604に格納された)シャドウアドレスにアクセスし、DRAMにシャドウィングされたアドレスからデータを要求してもよい。コントローラは、シャドウィングされたアドレスに関連するfCフラグにさらにアクセスしてもよい。NANDフラッシュに次のデータチャンクがあることをfCフラグが示す場合、第一のデータチャンクがDRAMからアクセスされる間、および/またはプロセッサベースシステム105に提供される間、コントローラは、NANDフラッシュメモリから次のデータチャンクにアクセスしてもよい。次のデータチャンクがシャドウメモリ(例えば、DRAM)にあることをfCフラグが示す場合、コントローラは、NANDフラッシュへのアクセスを開始せず、その代わりに、DRAMにおける次の領域にアクセスするおよび/またはプロセッサベースシステム105からの次のメモリコマンドを待ってもよい。
【0047】
このように、メモリシステムは、NANDフラッシュメモリおよびDRAMメモリを含んでもよい。メモリアクセスの最初の部分がNANDフラッシュメモリから検索されたものよりも略低いレイテンシーで、DRAMメモリから検索されうるように、NANDフラッシュメモリの一部は、DRAMメモリにシャドウィングされてもよい。一つ以上の初期部分がDRAMメモリから検索されるおよび/またはホストに提供される間に、NANDフラッシュからメモリアクセスのその後の部分にアクセスするプロセスが開始してもよい。このように、ホストから見たNANDフラッシュに関連するレイテンシーは低減される可能性がある。
【0048】
本発明の実施形態は、特定の時点、例えば、システムの電源投入時にだけ実施されるべき種々のハウスキーピング動作(例えば、ウェアレベリング、不良ブロック置換)をさらに提供してもよい。幾つかの例においては、図1を再度参照すると、コントローラ111が、NANDフラッシュデバイス115に書き込まれるおよび/またはNANDフラッシュデバイス115から読み出されるデータに対するエラー訂正動作を実施してもよい。不良メモリ領域がエラー訂正動作中に識別される場合、コントローラ111は、管理ログ内にその不良メモリ領域のログをとり、例えば、一つ以上のNANDフラッシュデバイス115および/またはDRAMデバイス125に格納されてもよい。コントローラ111は、識別された直後に不良メモリ領域を訂正するための動作をするわけではない。その代わりに、幾つかの例においては、メモリシステム107の電源が投入されたとき、または他の特定の時点で、コントローラ111は、最後の訂正が行われてからログをとられた管理ログ内に格納されたすべての不良メモリ領域を訂正してもよい。同様に、コントローラ111は、ウェアレベリングの目的で、NANDフラッシュデバイスへの読み出しおよび/または書き込みをカウントしてもよい。ウェアレベリングカウントに基づいて、不良として指定されるべきメモリ領域を識別した直後に動作するのではなく、コントローラ111は、管理ログ内のウェアレベリングによって置換を必要とするメモリ領域のログをとり、それは、エラー訂正に関連して上述されたログと同一のログまたは異なるログである可能性がある。コントローラ111は、その後、特定の時点、例えば電源投入時に、そのウェアレベリングカウントによって、管理ログ内に識別された領域を不良メモリ領域として指定してもよい。
【0049】
したがって、幾つかの例においては、不良ブロック置換、読み出しディスターブ、ウェアレベリングおよび/または他の管理タスクが、メモリシステム107のパワーサイクルに応じて、図1のメモリコントローラ111によって実施されてもよい。それ以外の時には、コントローラ111は、これらのタスクを実施しなくてもよく、それによって、これらのハウスキーピング動作に関連する追加のレイテンシー問題を回避しうる。
【0050】
前述から、本明細書では本発明の特定の実施形態が例示として記述されてきたが、本発明の趣旨および範囲から逸脱することなく、種々の改変がなされてもよいことを理解されたい。
図1
図2
図3
図4
図5
図6
図7