(57)【特許請求の範囲】
【請求項１】
複数のメモリコマンドを受信するコントローラと、
第一のインターフェイスを介して前記コントローラに結合された第一のタイプのメモリデバイスと、
第二のインターフェイスを介して前記コントローラに結合された第二のタイプのメモリデバイスであって、前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスと、
を含み、
前記第一のタイプのメモリデバイスは、前記複数のメモリコマンドの内の第一のメモリコマンドが要求する第一のデータであって、単一のデータチャンクよりも大きいサイズであることにより最初のデータチャンクとそれ以降のデータチャンクとを有する第一のデータを格納しており、
前記第二のタイプのメモリデバイスには、前記第一のデータの前記最初のデータチャンクがシャドウィングされ、前記それ以降のデータチャンクはシャドウィングされておらず、
前記第一のタイプのメモリデバイスは、前記複数のメモリコマンドの内の第二および第三のメモリコマンドがそれぞれ要求する第二および第三のデータであって、各々が前記単一のデータチャンクよりも小さいサイズであることにより一つのデータチャンクとして統合された第二および第三のデータをさらに格納しており、
前記第二のタイプのメモリデバイスは、前記一つのデータチャンクとして統合された前記第二および第三のデータがさらにシャドウィングされている、
ことを特徴とするメモリシステム。
【請求項２】
前記単一のデータチャンクは、前記第一のタイプのメモリデバイスから同時に読み出されうるデータ量である、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、前記第一のデータの前記最初のデータチャンクを前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングするように構成される、
ことを特徴とする請求項１または２に記載のメモリシステム。
【請求項４】
前記コントローラは、前記第一のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記第一のデータの前記最初のデータチャンクを出力し、さらに、前記第一のタイプのメモリデバイスをアクセスし前記第一のタイプのメモリデバイスに格納されている前記それ以降のデータチャンクを出力するように構成される、
ことを特徴とする請求項１乃至３のいずれか一項に記載のメモリシステム。
【請求項５】
前記コントローラは、前記第一のデータの前記最初のデータチャンクのために前記第二のタイプのメモリデバイスをアクセスしている期間のうちの少なくとも一部で、前記第一のデータの前記それ以降のデータチャンクのために前記第一のタイプのメモリデバイスをアクセスするように構成される、
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記コントローラは、前記第一のデータの開始アドレスおよびデータ長に基づき、前記第一のデータの前記最初のデータチャンクを前記第一のタイプのメモリデバイスから前記第二のタイプのメモリデバイスにシャドウィングするように構成される、
ことを特徴とする請求項３に記載のメモリシステム。
【請求項７】
前記第一のタイプのメモリデバイスはＮＡＮＤフラッシュメモリデバイスを含み、前記第二のタイプのメモリデバイスはＤＲＡＭメモリデバイスを含む、
ことを特徴とする請求項１乃至６のいずれか一項に記載のメモリシステム。
【請求項８】
前記コントローラは、前記第二または第三のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記一つのデータチャンクとして統合された前記第二および第三のデータを出力する一方、前記第一のタイプのメモリデバイスへのアクセスは行わないように構成される、
ことを特徴とする請求項１乃至７のいずれか一項に記載のメモリシステム。
【請求項９】
前記コントローラは、前記第一のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記第一のデータの前記最初のデータチャンクを出力し、さらに、前記第一のタイプのメモリデバイスをアクセスし前記第一のタイプのメモリデバイスに格納されている前記それ以降のデータチャンクを出力するように構成され、
前記コントローラは、前記第二または第三のメモリコマンドに応答して、前記第二のタイプのメモリデバイスをアクセスし前記第二のタイプのメモリデバイスにシャドウィングされている前記一つのデータチャンクとして統合された前記第二および第三のデータを出力する一方、前記第一のタイプのメモリデバイスへのアクセスは行わないようにさらに構成される、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１０】
前記第一のタイプのメモリデバイスおよび前記第二のタイプのメモリデバイスの少なくとも一方に格納されたデータ構造をさらに含み、前記データ構造は、前記複数のメモリコマンドに関連する複数の論理アドレス、前記複数の論理アドレスに関連する前記第一のタイプのメモリデバイスの複数の物理アドレス、前記第二のタイプのメモリデバイスの複数のシャドウアドレスの間の複数の関連付けを含む、
ことを特徴とする請求項８または９に記載のメモリシステム。
【請求項１１】
前記データ構造は、前記第一のタイプのメモリデバイスの物理アドレスに関連するデータが前記第二のタイプのメモリデバイスにシャドウィングされているか否かを示す第一のフラグをさらに含む、
ことを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記データ構造は、前記シャドウアドレスに関連する次のデータチャンクが、前記第一のタイプのメモリデバイスまたは前記第二のタイプのメモリデバイスに格納されているか否かを示す第二のフラグをさらに含む、
ことを特徴とする請求項１１に記載のメモリシステム。
【請求項１３】
前記第一のタイプのメモリデバイスは、ＮＡＮＤフラッシュデバイスを含み、前記第二のタイプのメモリデバイスはＤＲＡＭデバイスを含む、
ことを特徴とする請求項８または９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して半導体メモリに関し、ＤＲＡＭメモリ内のＮＡＮＤベースフラッシュメモリ由来の幾つかのデータをシャドウィング（ｓｈａｄｏｗ：複写）しうるメモリシステムの例が記述される。
【背景技術】
【０００２】
電気的に消去可能でプログラム可能なフラッシュメモリセルを有するメモリデバイスは、広範囲の電気デバイスで見出される。例示的なフラッシュメモリセルは、浮遊ゲートトランジスタメモリセルとしても知られているが、中間チャネル領域を形成するために、ソース領域と、ソース領域から離隔されたドレイン領域とを有する電界効果トランジスタに類似するものである可能性がある。浮遊ゲートは、ドープされたポリシリコンで作成されうるが、チャネル領域上に配置され、ゲート酸化膜の層によってチャネル領域から電気的に絶縁されてもよい。制御ゲートは、浮遊ゲート上に作製され、制御ゲートもまたドープされたポリシリコンで作成されてもよい。制御ゲートは、誘電体層によって浮遊ゲートから電気的に分離されてもよい。このように、浮遊ゲートは、フラッシュメモリのチャネル、制御ゲートおよび他の全ての素子から分離されうるという意味で“浮遊”している。
【０００３】
例示的なフラッシュメモリセルは、浮遊ゲート上に電荷を格納することによってプログラムされてもよい。その後、電荷は、電力がフラッシュメモリから除去された後でさえも、或る有限の期間ゲートに保持されうる。したがって、フラッシュメモリセルは、不揮発性と称されてもよい。電荷は、制御ゲートおよびドレインまたはソースに好適な電圧を印加することによって浮遊ゲートに格納されてもよい。例えば、電子を引き付けるために制御ゲートに十分に大きい正の電圧を印加している間にソースを接地することによって、浮遊ゲートに負の電荷を配置することができ、負の電荷は、チャネル領域から浮遊ゲートへとゲート酸化膜を通ってトンネル効果を生じる。浮遊ゲートにもともと存在する電荷と共に、制御ゲートに印加される電圧（プログラミング電圧と呼ばれる）およびプログラミング電圧が印加される期間が、プログラミング後に浮遊ゲートに存在する電荷量を決定する。
【０００４】
例示的なフラッシュメモリセルは、閾値電圧よりも大きい大きさを有する正の電圧を、制御ゲートからソースに印加することによって読み出されてもよい。フラッシュメモリセルに格納された電荷量は、ソースとドレインとの間の電流をフラッシュメモリセルが流すことを可能にするために、制御ゲートに印加しなければならない閾値電圧の大きさを決定してもよい。負の電荷が浮遊ゲートに追加されると、フラッシュメモリセルの閾値電圧は増加する。読み出し動作中、十分な電荷が浮遊ゲートに格納されていない場合には、セルを導電性にさせるのに十分な大きさで読み出し電圧が制御ゲートに印加されるが、十分な電荷が浮遊ゲートに格納されている場合には、読み出し電圧は、セルを導電性にさせるのに十分な大きさではない。読み出し動作中、ドレインは、セルの出力端子として使用されるが、正の電圧にプリチャージされ、ソースはグラウンドに結合されてもよい。したがって、フラッシュメモリセルの浮遊ゲートが十分に充電されている場合、ドレインは正の電圧のままである。フラッシュメモリセルの浮遊ゲートが十分に充電されていない場合、セルはドレインを接地する。
【０００５】
フラッシュメモリセルがプログラムされる前、ある場合には、浮遊ゲートから電荷を取り除くことによって消去されなければならない。セルは、プログラミング用に使用される極性とは逆の極性を有する、ゲート−ソース電圧をセルに印加することによって消去することができる。具体的には、制御ゲートは接地され、ゲート酸化膜を通って電子にトンネル効果を引き起こし、浮遊ゲートから電荷を空乏状態にするために、ソースに対して大きな正の電圧が印加される。別のアプローチにおいては、比較的大きな負の電圧が制御ゲートに印加され、供給電圧などの正の電圧がソース領域に印加される。
【０００６】
典型的なフラッシュメモリデバイスは、多数のフラッシュメモリセルを含み、多数のフラッシュメモリセルは、行および列に配列されてもよい。二つの一般的なタイプのフラッシュメモリアレイアーキテクチャは、“ＮＡＮＤ”および“ＮＯＲ”アーキテクチャであり、各々の基本的なフラッシュメモリセル構造が配置される論理形式のためにそう呼ばれている。ＮＯＲフラッシュは、概して、ＮＯＲゲートとして機能してもよい。例えば、ワード線がハイにされ、対応するトランジスタが出力ビット線をローに引き下げるように機能しうる。ＮＡＮＤフラッシュは、概して、ＮＡＮＤゲートに類似した方法で接続された浮遊ゲートトランジスタを含んでもよい。例えば、幾つかのトランジスタは、直列に接続され、全てのワード線がハイであるときのみ、ビット線はローに引き下げられうる。
【０００７】
概して、ＮＯＲフラッシュメモリはＮＡＮＤフラッシュメモリよりも速い読み出し応答を提供してもよい。さらに、ＮＡＮＤフラッシュメモリは、メモリをリフレッシュし、不良ブロックを修復するために、ハウスキーピングプロセスを必要とすることがある。
【０００８】
従来のメモリシステムの一例は、特許文献１及び２に記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２００９−５４０４３１号公報
【特許文献２】特開２００６−１５５３９１号公報
【発明の概要】
【００１０】
本発明のメモリシステムは、メモリコマンドを受信するコントローラと、第一のインターフェイスを介して前記コントローラに結合された第一のタイプのメモリデバイスと、第二のインターフェイスを介して前記コントローラに結合された第二のタイプのメモリデバイスであって、前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスと、を含み、前記第一のタイプのメモリデバイスは、前記メモリコマンドが要求するデータであって、単一のデータチャンクよりも大きいサイズであることにより最初のデータチャンクとそれ以降のデータチャンクとを有するデータを格納しており、前記第二のタイプのメモリデバイスには、前記データの前記最初のデータチャンクがシャドウィングされ、前記それ以降のデータチャンクはシャドウィングされていない、ことを特徴とするものである。
【００１１】
また、本発明の他のメモリシステムは、コントローラと、第一のインターフェイスを介して前記コントローラに結合された第一のタイプのメモリデバイスと、第二のインターフェイスを介して前記コントローラに結合された第二のタイプのメモリデバイスであって、前記第一のタイプのメモリデバイスよりも低いレイテンシーを有する第二のタイプのメモリデバイスと、を含み、前記コントローラは、プロセッサベースシステムから複数のメモリコマンドを受信するように構成され、データチャンク以下の長さを有する複数のメモリコマンドに対応するデータは、前記第一のタイプのメモリデバイスおよび前記第二のタイプのメモリデバイスの双方に配置され、データチャンクよりも大きい長さを有する複数のメモリコマンドに対応するデータの第一のデータチャンクは、前記第一のタイプのメモリデバイスおよび前記第二のタイプのメモリデバイスの双方に配置される、ことを特徴とするものである。
【００１２】
また、本発明の方法は、複数のメモリコマンドを提供するための方法であって、データチャンクよりも大きいサイズを有する、要求されたデータに関連するメモリコマンドをプロセッサベースシステムから受信することと、第一のタイプのメモリデバイスから、前記要求されたデータの第一のデータチャンクにアクセスすることと、前記プロセッサベースシステムに前記第一のデータチャンクを提供することと、前記第一のデータチャンクがアクセスされるか、前記プロセッサシステムに提供されるか、またはその組み合わせのうちの少なくとも一部の期間中に、第二のタイプのメモリデバイスから前記要求されたデータの第二のデータチャンクにアクセスすることであって、前記第二のタイプのメモリデバイスは、前記第一のタイプのメモリデバイスのレイテンシーよりも高いレイテンシーを有する、ことと、前記プロセッサベースシステムに前記第二のデータチャンクを提供することと、を含むことを特徴とするものである。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による、システムの概略図である。
【図２】本発明の一実施形態による、メモリコマンドを提供する例示的一方法を示すフローチャートである。
【図３】本発明の一実施形態による、ＮＡＮＤフラッシュデバイスからＤＲＡＭデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。
【図４】本発明の一実施形態による、論理アドレススペースの少なくとも一部の図である。
【図５】本発明の一実施形態による、ＮＡＮＤフラッシュデバイスの物理アドレススペースの少なくとも一部の図である。
【図６】本発明の一実施形態による、マッピングテーブルの概略図である。
【図７】本発明の一実施形態により配置されたＮＡＮＤフラッシュおよびＤＲＡＭアドレススペースの概略図である。
【発明を実施するための形態】
【００１４】
本発明の実施形態の十分な理解を提供するために、或る詳細事項が以下に説明される。しかしながら、本発明の実施形態は、これらの種々の特定の詳細事項なしで実現されてもよいことは当業者には明らかであろう。幾つかの例においては、既知の回路、制御信号、タイミングプロトコルおよびソフトウェア動作は、本発明の記述された実施形態を不必要に不明瞭にすることを防ぐために、詳細には示されていない。
【００１５】
現在の多くのシステムは、小さいレイテンシー（遅延）を必要とする用途では、ＮＯＲフラッシュおよびマスクＲＯＭメモリを利用している。このような用途は、動画および／または静止画に対応する格納されたデータに対して、高いランダム性と突然のアクセスを必要としうる賭博（ｇａｍｂｌｉｎｇ）マシンの動作を含むが、それに限定されることはない。ＮＡＮＤフラッシュは、一般的にその低コストにより望ましいことがあるが、ＮＡＮＤフラッシュに関連する比較的高いレイテンシーは、幾つかの例においては望ましくないものであることがある。さらに、ＮＡＮＤフラッシュは、予測不可能な時点で実施されるハウスキーピング動作を必要とすることがあり、その結果、データ検索用に数秒間待機することがあり、これもまた或る用途においては望ましくないことがある。したがって、本発明の実施形態は、或る用途に対してのレイテンシー性能を改善しうるように、ＮＡＮＤフラッシュおよびＤＲＡＭメモリの双方を利用するメモリアーキテクチャを提供する。例えば、ＤＲＡＭメモリに格納された或るデータは、ＮＡＮＤフラッシュメモリに格納されてもよい。幾つかの例においては、ハウスキーピング動作は、メモリシステムの電源投入後にのみ実施されてもよい。
【００１６】
本明細書では、ＮＡＮＤフラッシュおよびＤＲＡＭメモリが例示的システムを記述するために使用されているが、他の例においては、他のタイプのメモリが使用されてもよい。一般的に、本発明の実施形態は、あるタイプのメモリに関連する有効なレイテンシーを改善するために使用されてもよい。したがって、一組のメモリデバイス（例えば、ＮＡＮＤフラッシュ）からのデータの一部は、第一の組のメモリデバイスよりも概して低いレイテンシーを有する別の組のメモリデバイス（例えば、ＤＲＡＭ）にシャドウィングされてもよい。より高いレイテンシーのメモリデバイス（例えば、ＮＡＮＤフラッシュ）から残りのデータが検索されている間に、データのシャドウィングされた部分がホストに提供されてもよい。
【００１７】
特定の用途の例、例えば、賭博は、本明細書では例示として記述される。本明細書で記述される実施形態は、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定されない種々のあらゆる用途で利用されてもよいことを理解されたい。
【００１８】
図１は、本発明の一実施形態によるシステムの概略図である。システム１００は、インターフェイス１０９を介してメモリシステム１０７と通信しうるプロセッサベースシステム１０５を含んでもよい。インターフェイス１０９は、例えば、ＳＡＴＡインターフェイスまたは他のメモリシステムインターフェイスを利用して実装されてもよい。プロセッサベースシステム１０５は、上述されたように、デスクトップ、ラップトップおよびタブレットコンピュータを含むコンピュータ、賭博マシン、カメラ、電話、無線デバイス、ディスプレイ、チップセット、セットトップボックス、ゲームシステム、自動車および家電製品を含むが、そのいずれにも限定はされない一つ以上の電子デバイスを含んでもよい。
【００１９】
メモリシステム１０７は、コントローラ１１１を含んでもよい。コントローラ１１１は、一つ以上のＮＡＮＤフラッシュデバイス１１５と通信するためのインターフェイス１１３に結合されてもよい。インターフェイス１１３は、例えば、バスまたは他の電子通信コンジットを利用して実現され、限定はされないが、ＤＤＲプロトコルなどのＮＡＮＤフラッシュデバイス１１５と互換性があるように、インターフェイス１１３を介して、データが通信されてもよい。コントローラ１１１は、一つ以上のＤＲＡＭデバイス１２５と通信するためのインターフェイス１２１にさらに結合されてもよい。
【００２０】
一般的に、一つ以上のＮＡＮＤフラッシュデバイスを含む、任意の数のＮＡＮＤフラッシュデバイス１１５が使用されてもよい。図１には、８つのＮＡＮＤフラッシュデバイス１１５ａ−ｈが示されている。さらに、一つ以上のＤＲＡＭデバイスを含む任意の数のＤＲＡＭデバイス１２５が使用されてもよい。図１には、例示として４つのＤＲＡＭデバイス１２５ａ−ｄが示されている。ＮＡＮＤフラッシュデバイス１１５は、一般的に、プロセッサベースシステム１０５によって使用するためのデータを格納するために使用されてもよい。例えば、データは、静止画像または動画データを含んでもよい。ＮＡＮＤフラッシュデバイス１１５に格納されるデータの一部は、ＤＲＡＭデバイス１２５にシャドウィングされてもよい。幾つかの例においては、ＮＡＮＤフラッシュデバイス１１５に格納されたデータの一部は、ＤＲＡＭデバイス１２５にも格納される。マッピングテーブル１３１は、ＮＡＮＤフラッシュデバイス１１５からＤＲＡＭデバイス１２５にどのデータがシャドウィングされたかを示すために、一つ以上のＤＲＡＭデバイス１２５に格納されてもよい。このように、プロセッサベースシステム１０５があるデータにアクセスしようとするとき、幾つかの例においては、データは、ＤＲＡＭデバイス１２５からアクセスされ、データがＤＲＡＭデバイス１２５からアクセスされている期間のうちの少なくとも一部で、残りのデータがＮＡＮＤフラッシュデバイス１１５からアクセスされてもよい。したがって、要求されたデータの最初の部分がＤＲＡＭデバイス１２５から読み出される時点までには、ＮＡＮＤフラッシュデバイス１１５における残りのデータへのアクセスにおけるレイテンシーは、終わっており、ＮＡＮＤフラッシュデバイス１１５から読み出される残りのデータは、プロセッサベースシステム１０５による利用の準備ができていてもよい。このように、ＤＲＡＭデバイス１２５におけるデータシャドウィングは、ＮＡＮＤフラッシュデバイス１１５に関連する読み出しレイテンシーをマスクしてもよい。
【００２１】
図１におけるインターフェイス１１３および１２１を介する通信は、概して、あらゆる数のチャネルを含む任意の方法で配置されてもよい。図１の例においては、インターフェイス１１３は、４つのチャネルＮＡＮＤインターフェイスを利用して実装されてもよい。８つのＮＡＮＤデバイス１１５ａ−ｈは、二つのＮＡＮＤデバイス（例えば、ダイ）が各チャネルを介してアクセス可能なように配置されてもよい。他の例においては、チャネル毎に他の数のチャネルおよび／またはデバイスが使用されてもよい。図１の例においては、インターフェイス１２１は、チャネル毎に２つのデバイス（例えば、ダイ）を利用して実装され、インターフェイス１２１は、二つのチャネルをサポートしてもよい。
【００２２】
図２は、本発明の一実施形態による、メモリコマンド（例えば、読み出しコマンド）を提供する例示的一方法を示すフローチャートである。ブロック２０２において、メモリコマンドが受信されてもよい。図１に戻ると、メモリコマンドは、プロセッサベースシステム１０５からコントローラ１１１によって受信されてもよい。メモリコマンドに応じて、図２を再度参照すると、最初のデータチャンクが、ブロック２０４においてＤＲＡＭデバイスから読み出されてもよい。例えば、図１のコントローラ１１１は、一つ以上のＤＲＡＭデバイス１２５からのメモリコマンドで要求されたデータに対応する最初のデータチャンクを読み出してもよい。ＤＲＡＭに格納された最初のデータチャンクのサイズは、異なる実施形態において変化しうるが、そのサイズは、概して、最初のデータチャンクがプロセッサベースシステムに提供されるときまでには十分に大きくなるように選択され、次のデータチャンクは許容可能なレイテンシーでＮＡＮＤデバイスから到達し、例えば、次のデータチャンクは、最初のデータチャンクがプロセッサベースシステム（例えば、ホスト）に提供されたら、プロセッサベースシステムへの提供用に準備されていてもよい。
【００２３】
最初のデータチャンクが、ブロック２０６において、プロセッサベースシステム（例えば、ホスト）に提供されてもよい。最初のデータチャンクが、データを要求するプロセッサベースシステムに提供されている期間のうちの少なくとも一部の期間に、ブロック２０８において、次のデータチャンクが一つ以上のＮＡＮＤデバイスでアクセスされてもよい。次のデータチャンクは、ブロック２０４および／またはブロック２０６が実施される期間中に完全にアクセスされることはないが、次のデータチャンクは、その期間中に少なくともアクセスされてもよい。したがって、ブロック２０６においてホストに最初のデータチャンクが提供される期間のうちの少なくとも一部の期間、および／または、ブロック２０４において、一つ以上のＤＲＡＭデバイスから最初のデータチャンクが読み出される期間のうちの少なくとも一部の期間に、一つ以上のＮＡＮＤデバイスから次のデータチャンクに対するアクセスが、生じることがある。このように、一つ以上のＮＡＮＤデバイスへのアクセスに関連するレイテンシーは、要求するプロセッサベースシステムに対する最初のデータチャンクの少なくとも部分的に同時の読み出しおよび／または提供によって少なくとも部分的にマスクされてもよい。次のデータチャンクは、ブロック２１０において、ホストに提供されてもよい。図２には示されていないが、ブロック２０８および２１０は、メモリコマンドが提供されるまで繰り返されてもよい。例えば、ブロック２０８において一つ以上のＮＡＮＤデバイスにおいて次のデータチャンクがアクセスされる期間のうちの一部の期間に、および／またはブロック２１０において、次のデータチャンクがホストに提供される期間のうちの一部の期間に、追加データチャンクは、一つ以上のＮＡＮＤデバイスから読み出されてもよい。次のデータチャンクがブロック２１０の終わりにホストに提供される時間までには、追加データチャンクがホストへの提供用に準備されていてもよい。
【００２４】
図１を参照すると、システム１００は、図２に示されるプロセスを実現してもよく、例えば、コントローラ１１１は、一つ以上のＤＲＡＭデバイス１２５から最初のデータチャンクを読み出し、最初のデータチャンクをシステム１０５に提供してもよい。コントローラ１１１が最初のデータチャンクを読み出しているおよび／またはシステム１０５に最初のデータチャンクを提供している期間のうちの少なくとも一部の期間に、コントローラ１１１は、一つ以上のＮＡＮＤデバイス１１５から次のデータチャンクを読み出してもよい。プロセッサベースシステム１０５が第一のデータチャンクを受信したときに、次のデータチャンクを許容可能な量でプロセッサベースシステム１０５に提供するために準備されているように、例えば、追加のレイテンシーがないように、コントローラ１１１は、これらのアクティビティの時間を設定してもよい。
【００２５】
図１のシステムの実装の一例においては、プロセッサベースシステム１０５は、メモリシステム１０７のスループットが特定のスループット（一例においては、４００ＭＢ／ｓ）以上であることを要求することがある。上述されたように、データは、チャンク内で、ＤＲＡＭデバイス１２５および／またはＮＡＮＤフラッシュデバイス１１５から読み出されてもよい。チャンクは、特定のサイズ、例えば、一例においては、１２８ｋＢを有してもよい。これらの例示的な数を使用すると、メモリシステム１０７は、３２０μｓ以内にプロセッサベースシステム１０５に１２８ｋＢのチャンクを提供することができる。最初のチャンク（例えば、１２８ｋＢ）がＤＲＡＭに配置される場合、コントローラ１１１がメモリコマンド、アドレス、データ読み出しを分析し、プロセッサベースシステム１０５に対する応答を開始するための時間Ｔｒは、最小であってもよい。要求されたデータにアクセスすることによる見かけ上のレイテンシーを最小化するために、コントローラ１１１は、３２０μｓからＴｒ以内に、ＮＡＮＤフラッシュから次の１２８ｋＢチャンクを読み出すことができるべきである。Ｔｒは、一例においては、１０μｓに満たないことがある。したがって、コントローラ１１１は、ＤＲＡＭから第一のデータチャンクにアクセスするのとほぼ同時に、ＮＡＮＤフラッシュデータチャンクにアクセスしている場合、プロセッサベースシステムに提供するために次の１２８ｋＢデータチャンクを準備するために３１０μｓを超える時間を有してもよい。一例においては、４チャネルＳＳＤコントローラおよび１６ｋＢ／ページＳＬＣ  ＮＡＮＤメモリ製品によって、このタイミングが満たされ、それによって、必要期間３１０μｓ以内に、３２ｋＢ／チャネルの読み出しを達成して、それらのチャネルでＥＣＣ訂正を完了することができる。
【００２６】
したがって、本発明の実施形態は、ＤＲＡＭデバイスでアクセスされるべきデータの第一部分（例えば、チャンク）を有利にシャドウィングし、アクセスされるべきデータの残りがＮＡＮＤフラッシュデバイスに格納されてもよい。有利なことに、本明細書で記述されるメモリシステムの実施形態は、一つ以上のＤＲＡＭデバイスにおいて、概してグループとしてアクセスされるデータの第一のデータチャンクを格納してもよい。例えば、ファイル（例えば、動画、静止画、文書、プログラムなど）の第一のデータチャンクは、ＤＲＡＭに格納され、ファイルの残りのデータは、ＮＡＮＤフラッシュに格納されてもよい。
【００２７】
このように、図１のプロセッサベースシステム１０５は、メモリシステム１０７にメモリコマンドを提供するときに、メモリコマンドに対応する第一のデータチャンクがＤＲＡＭに見出され、残りのデータがＮＡＮＤフラッシュに見出されてもよい。
【００２８】
本明細書で記述される例は、データのうちのアクセスされる第一部分（例えば、一つのチャンク）がＤＲＡＭデバイスでシャドウィングされる例を含み、他の例においては、データの他の部分（例えば、複数の最初のデータチャンク）がシャドウィングされてもよい。一般的に、より多くのデータがシャドウィングされると、有効に隠されうるＮＡＮＤフラッシュデバイスのレイテンシーはより長くなるが、シャドウィングされるデータのためにＤＲＡＭで必要とされうる格納量はより大きくなる。
【００２９】
如何にしてシャドウィングが実現されうるかを示す例が本明細書にさらに記述される。図３は、本発明の一実施形態による、ＮＡＮＤフラッシュデバイスからＤＲＡＭデバイスにデータをシャドウィングするための例示的一方法のフローチャートである。一般的に、ＮＡＮＤフラッシュデバイスでアクセスされるべきデータの開始アドレスおよびデータ長を知ることが望ましいことがある。読み出しのみのシステム（例えば、賭博マシン）においては、データは、メモリシステムに予めプログラムされ、動作中には変更できない。したがって、幾つかの実施形態においては、アクセスされるべきデータの位置および長さ（例えば、個々のファイルのデータの開始アドレスおよび長さ）は、予め知られており、開始アドレスのデータ構造および長さは、提供されるか、メモリシステムに格納されてもよい。例えば、このようなデータ構造は、図１のＮＡＮＤフラッシュデバイス１１５または図１のＤＲＡＭデバイス１２５のうちの一つ以上に格納されてもよい。開始アドレスのデータ構造および長さは、例えば、リストとして実装されてもよい。他のデータ構造が同様に利用されてもよいが、開始アドレスのデータ構造および長さは、“リスト”と称されるであろう。
【００３０】
既知の開始アドレスおよび長さのリストは、図３のブロック３０４でアクセスされ、ＤＲＡＭデバイスにシャドウィングするために、既知の開始アドレスに対応するデータのチャンクを識別するために使用されてもよい。幾つかの例においては、図１のシステム１０７などのメモリシステムは、ＮＡＮＤフラッシュデバイスでアクセスされるデータの位置および長さを自体で識別するために、図３のブロック３０２でトレーニングされてもよい。ブロック３０２におけるトレーニング中に、メモリコントローラ（例えば、図１のコントローラ１１１）は、ホスト（例えば、図１のプロセッサベースシステム１０５）から受信されたメモリコマンドのアドレスのログをとってもよい。アドレスのリストを分析することによって、コントローラは、図３のブロック３０４でアクセスされるデータの既知の開始アドレスおよびデータ長のリストを自体で作成してもよい。他の例においては、ブロック３０２におけるトレーニングは、メモリシステム内のＮＡＮＤフラッシュデバイスの内容の他の分析を通して実現されてもよい。例えば、プロセッサベースシステムからメモリコマンドにおいて要求されうるデータグルーピングの開始を示すヘッダまたは他のデータストリングは、データグルーピングの長さと共に、コントローラによって識別されてもよい。幾つかの例においては、トレーニングは、例えば、メモリコントローラのプロセッサベースシステムから提供される信号によって、識別されうるトレーニング期間中に生じることがある。
【００３１】
ブロック３０６において、データは、再構築され、マッピングテーブルが作成されてもよい。データは、ＤＲＡＭデバイスにおいてデータのシャドウィング部分に対して導通性がありうるように、ＮＡＮＤフラッシュデバイスにおける格納のために再構築されてもよい。作成されたマッピングテーブルは、論理−物理アドレスのマップを含んでもよい。論理アドレスは、例えば、図１のプロセッサベースシステム１０５によって特定されるようなアドレスであり、物理アドレスは、例えば図１のコントローラ１１１によって理解されるようなＮＡＮＤフラッシュデバイスに対するアドレスであってもよい。二つのタイプのデータ再構築が生じることがある。幾つかの実施形態においては、唯一つのタイプが生じ、他の実施形態においては、双方のタイプが生じることがある。幾つかの実施形態においては、他のタイプのデータ再構築が生じてもよい。
【００３２】
第一のタイプのデータ再構築は、データチャンクのサイズよりも小さいデータに対応する複数の期待されるメモリアドレスを、単一のデータチャンクに詰め込んでもよい。一般的に、データチャンクとは、任意のメモリシステム内のＮＡＮＤフラッシュから同時に読み出されうるデータ量のことを称する。図１を参照すると、一例においては、インターフェイス１１３がチャネル毎に二つのダイを有する４チャネルをサポートし、ダイ毎に２ページがアクセスされ、ページサイズが８バイトである場合、データチャンクサイズは、４×２×２×８＝１２８ｋＢであってもよい。
【００３３】
一般的に、データチャンクは、スーパーページ（ｓｕｐｅｒ  ｐａｇｅ）と称されてもよい。ＮＡＮＤデバイスの有効なレイテンシーを隠すか低下させるために上述されたように、データチャンクは、図１のＮＡＮＤフラッシュデバイスから出力されるデータチャンクのための期間が、ＤＲＡＭから出力される同一サイズのデータチャンクのための期間以下であるように、十分なサイズとされるべきである。
【００３４】
ＮＡＮＤデバイスからＤＲＡＭデバイスにシャドウィングされるデータは、データチャンクに格納されてもよい。ＤＲＡＭデバイスにシャドウィングするために必要なスペースの量を削減するために、データチャンクのサイズよりも小さいメモリアクセスに関連するデータを統合することが有利なことがある。したがって、図３のブロック３０６で生じうるデータ再構築の第一のタイプは、同一のデータチャンクに、データチャンク（例えば、一例において１２８ｋＢ）よりも小さい長さを有するデータに対応する論理アドレスをマッピングすることである。例えば、ブロック３０２で作成されたテーブルは、６４ｋＢの長さを有するデータに対する第一の論理アドレスで一つの期待されるメモリアクセスを含み、６４ｋＢの長さを有するデータに対する第二の論理アドレスで第二の期待されるメモリアクセスを含んでもよい。２つの６４ｋＢメモリアクセスが１２８ｋＢデータチャンク内に配置されるように、第一および第二の論理アドレスの双方は、ＮＡＮＤフラッシュデバイスの同一のデータチャンクにマッピングされてもよい。データチャンクのサイズを合計するデータアクセスのあらゆる組み合わせは、単一のデータチャンクにマッピングされてもよい。例えば、２つの３２ｋＢアクセスおよび１つの６４ｋＢアクセスに関連するデータが、単一のデータチャンクに再構築されてもよい。別の例においては、５つの１６ｋＢアクセス、３２ｋＢアクセス、および２つの８ｋＢアクセスに関連するデータが、単一のデータチャンクに再構築されてもよい。このように、コントローラ１１１は、データチャンクよりも小さい長さを有するデータに対するアクセスを、統合されたデータチャンクのセットにマッピングするために、ブロック３０２において作成されうる開始アドレスおよび長さのリストにアクセスしてもよい。以下にさらに記述されるように、データチャンクよりも小さいサイズのこれらのデータに対するデータアクセスがＤＲＡＭデバイスから提供されうるように、統合されたデータチャンクは、一つ以上のＤＲＡＭデバイスにシャドウィングされてもよい。
【００３５】
図４は、本発明の一実施形態による、論理アドレススペースの少なくとも一部の図である。図５は、本発明の一実施形態による、ＮＡＮＤフラッシュデバイスにおける物理アドレススペースの少なくとも一部の図である。図４に示されるように、プロセッサベースシステム（例えば、図１のシステム１０５）は、示されるように、データＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，ＧおよびＨを要求することによってデータにアクセスしてもよい。しかしながら、これらのデータは論理アドレススペースに広がり、データチャンクよりもサイズが小さい。図３の再構築３０６の間、データは、図５に示されるように物理アドレススペースに再構築され、そこで、データＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，ＧおよびＨは単一のデータチャンクに統合される。
【００３６】
ブロック３０６で生じうるデータ再構築の別のタイプは、データチャンクよりもサイズが大きい（例えば、幾つかの例においては、１２８ｋＢを超える）アクセスに対応するデータを再配列することである。データチャンクよりも大きいアクセスに対応する第一のアドレスデータがデータチャンクと整列される場合、再構築は起こらない。しかしながら、第一のアドレスがデータチャンク境界と整列されない場合、第一のアドレスの物理アドレスは、データチャンク境界と整列するためにシフトされ、その結果、第一のアドレスと物理アドレスとの間に生じるマップは、論理−物理アドレステーブルに格納されてもよい。
【００３７】
図３におけるブロック３０６のデータ再構築は、例えば、図１のコントローラ１１１によって実施されてもよい。幾つかの例においては、コントローラ１１１は、図３のブロック３０２で作成されたリストなどの、メモリアクセス用の既知の開始アドレスおよびアクセスされるべきデータ長のリストにアクセスしてもよい。コントローラ１１１は、アクセスされるべきデータがデータチャンクよりも小さい場合には、メモリアクセスに関連するデータを統合し、アクセスされるべきデータがデータチャンクのサイズよりも大きい場合には、メモリアクセスに関連するデータをデータチャンクと整列してもよい。コントローラ１１１は、再構築を反映する論理−物理マッピングテーブルを作成してもよい。幾つかの例においては、データは、一つ以上のＮＡＮＤフラッシュデバイス１１５に既に格納され、再構築プロセスで識別されたものに対応する位置に移されてもよい。他の例においては、ブロック３０２の再構築プロセスで識別された構成に従って、コントローラ１１１によって、データがＮＡＮＤフラッシュデバイスに書き込まれてもよい。
【００３８】
図３のブロック３０８においては、選択されたデータは、一つ以上のＮＡＮＤフラッシュデバイスから一つ以上のＤＲＡＭデバイスにシャドウィングされてもよい。例えば、コントローラ１１１は、選択されたデータをＤＲＡＭデバイスにシャドウィングしてもよい。データが、一つ以上のＮＡＮＤフラッシュデバイスおよび一つ以上のＤＲＡＭデバイスの双方に格納されるように、シャドウィングは、一つ以上のＮＡＮＤフラッシュデバイスから一つ以上のＤＲＡＭデバイスに選択されたデータをコピーすることを含んでもよい。一般的に、ブロック３０８において、選択されたデータは、１）データチャンク以下の長さを有するデータに対するメモリアクセスに関連する一つ以上のＤＲＡＭデバイスにおけるデータチャンクおよび／または、２）データチャンクを超える長さを有するデータに対するメモリアクセスに関連する第一のデータチャンクを含んでもよい。このように、データチャンク以下の長さを有するデータに対するメモリコマンドは、一般的に、一つ以上のＤＲＡＭデバイスから提供されてもよい。さらに、データチャンクより大きい長さを有するデータに対するメモリコマンドは、一つ以上のＤＲＡＭデバイスから提供されたメモリコマンドの第一の部分と、一つ以上のＮＡＮＤフラッシュデバイスから提供されたメモリコマンドの残りの部分とを有してもよい。
【００３９】
ブロック３０８におけるシャドウィングは、例えば、図１のコントローラ１１１によって実施され、ブロック３０２で作成されうる既知の開始アドレスおよび長さのリストと、ブロック３０８でデータを選択してシャドウィングするためのブロック３０６からのマッピングテーブルとにアクセスしてもよい。コントローラ１１１は、以下にさらに記述されるように、シャドウィングを反映するために、マッピングテーブルにおけるエントリーをさらにアップデートしてもよい。
【００４０】
ブロック３０８におけるシャドウィングは、種々の方法で実施されてもよい。一例においては、シャドウィングは、例えば、図１のシステム１０５などのプロセッサベースシステムによって供給されうるシャドウィングを示す信号の受信によって開始されてもよい。
コントローラは、その後、シャドウィングの開始を示すビジー信号をホストに提供し、ビジー信号を除去し、および／または、シャドウィングが完了したことを示す異なる信号をホストに提供してもよい。幾つかの例においては、ホストは、メモリシステムがパワーサイクルを経験する次の時点まで、シャドウィングを示す信号を提供することによって、シャドウィングを再度トリガーできない。
【００４１】
別の例においては、シャドウィングは、トレーニング中、例えば、図３のブロック３０２と少なくとも部分的に同時に実施されてもよい。ランダムアクセスが、トレーニング中にコントローラによって受信されると、アクセスに関連するデータがまだシャドウィングされていないときに、データの関連部分がシャドウィングされてもよい。
【００４２】
図６は、本発明の一実施形態によるマッピングテーブルの概略図である。マッピングテーブル６００は、例えば、図３のブロック３０６および／または３０８において作成されてもよい。マッピングテーブル６００は、論理−物理アドレスマップ６０２および物理−シャドウアドレスマップ６０４を含む。上述された再構築プロセスによって影響を受けるように、データが配置される場合、論理−物理アドレスマップ６０２は、ＮＡＮＤフラッシュメモリにおける物理アドレスと論理アドレスを関連付けてもよい。さらに、論理−物理アドレスマップ６０２は、図６においてｆＳフラグと称される、フラグを含んでもよい。ｆＳフラグは、関連するアドレスがＤＲＡＭメモリにシャドウィングされるか否かを示してもよい。一例においては、ｆＳフラグは、１ビットの長さであって、０は論理−物理アドレスがシャドウィングされていないことを示し、１はアドレスがシャドウィングされていることを示す。幾つかの例においては、テーブル６００で使用されたアドレスはブロックアドレスである。
【００４３】
したがって、再度、図３を参照すると、データが再構築されると、図１のコントローラ１１１は、図６のマッピングテーブル６００に、論理アドレスと物理アドレスの間の関連付けを記録してもよい。マッピングテーブル６００は、マッピングテーブル１３１によって示されるように、図１の一つ以上のＤＲＡＭデバイス１２５に格納されてもよいし、図１の一つ以上のＮＡＮＤフラッシュデバイス１１５に格納されてもよい。幾つかの実施形態においては、マッピングテーブル６００は、ＤＲＡＭデバイス１２５および／またはＮＡＮＤデバイス１１５に格納されてもよい。
【００４４】
図６のマッピングテーブル６００は、物理アドレスおよびシャドウアドレス間の関連付け６０４をさらに含む。ＮＡＮＤフラッシュ内の特定の物理アドレスに格納されたデータがＤＲＡＭにシャドウィングされる場合、マッピングテーブル６００内のｆＳフラグは、シャドウィングを示す。さらに、シャドウィングされたデータに関連するアドレスが、マッピングテーブル６００に格納されてもよい。
【００４５】
さらに、物理−シャドウアドレスマップ６０４は、図６でｆＣフラグと称されるフラグを含んでもよい。ｆＣフラグは、次のデータチャンクがシャドウメモリ（例えば、ＤＲＡＭ）またはＮＡＮＤフラッシュメモリにあるか否かを示してもよい。一例においては、ｆＣフラグは、１ビットの長さであり、０は次のデータチャンクがＮＡＮＤフラッシュにあることを示し、１は次のデータチャンクがシャドウメモリ（例えば、ＤＲＡＭ）にあることを示す。そのため、例えば、論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも小さいと推定される物理アドレスに対応する場合、次のメモリコマンドも、シャドウメモリ（例えば、ＤＲＡＭ）から提供されるため、ｆＣフラグは、１に設定されてもよい。論理アドレスが、アクセスされるべきメモリが単一のデータチャンクよりも大きいと推定される物理アドレスに対応する場合、第一のデータチャンクだけがシャドウメモリに配置され、次のデータチャンクがＮＡＮＤフラッシュにあることを示すために、ｆＣフラグは、０に設定されてもよい。
【００４６】
図３に戻ると、マッピングテーブル６００のｆＳ、ｆＣおよびシャドウアドレス部分は、データがＤＲＡＭにシャドウィングされると、ブロック３０８中に作成されてもよい。このように、図１のコントローラ１１１は、ｆＳ、ｆＣおよびシャドウアドレス値を提供し、ＤＲＡＭ、ＮＡＮＤフラッシュまたはその組み合わせに格納されたマッピングテーブルにそれらを格納してもよい。論理−物理アドレスの関連付けおよび物理−シャドウアドレスの関連付けを含むマッピングテーブルが図６に示されているが、他の例においては、複数のテーブルが（例えば、一方が論理−物理アドレスの関連付けに、他方が物理−シャドウアドレスの関連付けに）使用されてもよい。他の例においては、図６に示された幾つかまたは全ての情報を表すために、テーブル以外のデータ構造が使用されてもよい。
【００４７】
図７は、本発明の一実施形態によって配置されたＮＡＮＤフラッシュおよびＤＲＡＭアドレススペースの概略図である。ＮＡＮＤフラッシュアドレススペース７０５が示され、図１のデバイス１１５などの一つ以上のＮＡＮＤフラッシュデバイス上に広がることがある。アドレススペースはデータチャンク７０６−７０８を含む。これらのデータチャンクは、本明細書で記述されたデータ再構築プロセス中に統合されうるデータチャンクのサイズよりも小さいデータを含むものとして示される。例えば、データチャンク７０６は、２つの６４ｋＢのデータセグメントを含み、その各々は、其々のメモリコマンドに応じると推定される。同様に、データチャンク７０７は、２つの３２ｋＢのデータセグメントおよび１つの６４ｋＢのデータセグメントを含み、その各々も、其々のメモリコマンドに応じると推定される。データチャンク７０８は、５つの１６ｋＢセグメント、２つの８ｋＢセグメント、１つの３２ｋＢセグメントを含み、その各々は、其々のメモリコマンドに応じると推定される。データチャンク７０６−７０８に示されたデータセグメントは、可能性のあるデータチャンクのうちの最小数に格納されるように配置され、図７に示されたデータチャンクのサイズは１２８ｋＢである。データチャンク７０６−７０８内のデータは、データチャンクのサイズよりも小さいデータに対するメモリアクセスに関連付けられ、データチャンク７０６−７０８は、例えば、図３のブロック３０８で、一つ以上のＤＲＡＭデバイスにシャドウィングされてもよい。したがって、図７においては、データチャンク７０６−７０８は、データチャンク７１６、７１７および７１８としてＤＲＡＭアドレススペース７１０にシャドウィングされる。
【００４８】
本明細書で記述されたように、図１のコントローラ１１１は、図７に示され、図３を参照して記述されたシャドウィングを実施してもよい。コントローラ１１１は、例えば、図６のマッピングテーブル６００などのマッピングテーブルをさらに作成してもよい。再度図７を参照すると、データチャンク７０６がデータチャンク７１６としてＤＲＡＭにシャドウィングされるとき、その結果として以下のことがマッピングテーブルに生じる。正確な論理アドレスに関連するマッピングテーブルの論理−物理アドレス６０２部分の物理アドレス列にそのＮＡＮＤフラッシュアドレスを格納することによって、データチャンク７０６を構成する６４ｋＢの各データセグメントの論理アドレスは、データチャンク７０６内の其々のアドレスに関連付けられてもよい。さらに、データチャンク７１６内のデータアクセスは、データチャンクのサイズ以下であると推定されるため、データはシャドウィングされ、それによって、ＤＲＡＭアドレススペース７１０におけるデータチャンク７１６内のデータセグメントの対応するアドレスは、物理−シャドウアドレステーブル６０４のシャドウアドレス部分に格納されてもよい。データはシャドウィングされたデータであるため、データがシャドウィングされていることを示すために（例えば、図１のコントローラ１１１によって）そのデータに対するｆＳフラグが設定されてもよい。さらに、データチャンク７１６−７１８内のデータはデータチャンクのサイズ以下のデータに対するデータアクセスと関連付けられるため、読み出されるべき次のデータは、同様にＤＲＡＭデバイスに由来する（例えば、各メモリアクセスの第一の部分がＤＲＡＭにシャドウィングされてもよいため）。したがって、データチャンク７１６−７１８内のそのデータに対するｆＣフラグは、次のデータチャンクがＤＲＡＭから読み出されうることを示すために、（例えば、図１のコントローラ１１１によって）設定されてもよい。
【００４９】
図７を再度参照すると、データチャンク７２６−７２８は、データチャンクのサイズよりも大きいデータ量に対するデータアクセスに対応してもよい（例えば、３つのデータチャンク７２６−７２８）。上述されたように、データチャンク７２６−７２８は、データチャンク境界と整列されるように再構築され、および／または他のデータ再構築を適応させるために移動してもよい。したがって、データチャンク７２６−７２８の物理アドレスは、関連する論理アドレスに対応する図６の論理−物理アドレステーブル６０２に格納されてもよい。データアクセスはデータチャンクよりも大きいデータ量に対するものであるため、幾つかの例においては、第一のデータチャンクだけがＤＲＡＭにシャドウィングされてもよい。したがって、データチャンク７２６がデータチャンク７３６でＤＲＡＭにシャドウィングされてもよい。データチャンク７２６に対応する物理アドレスに対するｆＳフラグは、データチャンク７２６がシャドウィングされていることを示すために（例えば、コントローラ１１１によって）設定されてもよい。しかしながら、データチャンク７２７および７２８に対応する物理アドレスに対するｆＳフラグは、データチャンク７２７および７２８がシャドウィングされていないことを示すように（例えば、コントローラ１１１によって）設定されてもよい。ＤＲＡＭデータチャンク７３６に対応するシャドウアドレスは、物理−シャドウアドレステーブル６０４にさらに格納されてもよい。データチャンク７３６は、データチャンクよりも大きいデータアクセスに関連するため、ｆＣフラグは、次のデータアクセスがＮＡＮＤフラッシュデバイスに由来しうることを示すために（例えば、コントローラ１１１によって）設定されてもよい。
【００５０】
本発明の実施例においては、図３−図７を参照して記述されてきたトレーニング、データ再構築およびシャドウィングの例は、メモリシステムの電源投入中、メモリシステム分配の前に（例えば、製造中）、または他の予定時刻に起こることがある。幾つかの例においては、トレーニング、データ再構築および／またはシャドウィングは、動作中に動的に生じることがあり、動的動作は、格納されたデータのアクセスに関連するレイテンシーを最小限化することが望まれる家電製品においては、あまり都合がよくないことがある。
【００５１】
図１の例示的メモリシステムの動作中に、コントローラ１１１は、図３を参照して記述されたように、電源投入中にシャドウィングを実施してもよい。コントローラ１１１は、シャドウィング動作によるメモリシステム１０７機能のうちのいくつかまたは全ての利用が不可能であることを示す指示を状態レジスタに格納するか、ビジー信号をプロセッサベースシステム１０５に提供してもよい。シャドウィングが完了すると、コントローラ１１１は、メモリシステム１０７が利用可能であることを示す指示を状態レジスタに格納するか、信号をプロセッサベースシステム１０５に提供してもよい。
【００５２】
プロセッサベースシステム１０５からのメモリコマンドの受信で、コントローラ１１１は、受信した論理アドレスに対して対応する物理アドレスを識別するために、メモリコマンドに関連する論理アドレスを識別し、マッピングテーブル（例えば、図６の論理−物理アドレステーブル６０２）にアクセスしてもよい。コントローラ１１１は、論理／物理アドレス対に対応するｆＳフラグに追加的、または代替的にアクセスしてもよい。要求されたデータがシャドウィングされていないことをｆＳフラグが示す場合、コントローラはデータにアクセスするために、受信した論理アドレスに関連する物理アドレスにアクセスしてもよい。要求されたデータがシャドウィングされていることをｆＳフラグが示す場合、コントローラは受信した論理アドレスに関連する（例えば、物理−シャドウアドレステーブル６０４に格納された）シャドウアドレスにアクセスし、ＤＲＡＭにシャドウィングされたアドレスからデータを要求してもよい。コントローラは、シャドウィングされたアドレスに関連するｆＣフラグにさらにアクセスしてもよい。ＮＡＮＤフラッシュに次のデータチャンクがあることをｆＣフラグが示す場合、第一のデータチャンクがＤＲＡＭからアクセスされる間、および／またはプロセッサベースシステム１０５に提供される間、コントローラは、ＮＡＮＤフラッシュメモリから次のデータチャンクにアクセスしてもよい。次のデータチャンクがシャドウメモリ（例えば、ＤＲＡＭ）にあることをｆＣフラグが示す場合、コントローラは、ＮＡＮＤフラッシュへのアクセスを開始せず、その代わりに、ＤＲＡＭにおける次の領域にアクセスするおよび／またはプロセッサベースシステム１０５からの次のメモリコマンドを待ってもよい。
【００５３】
このように、メモリシステムは、ＮＡＮＤフラッシュメモリおよびＤＲＡＭメモリを含んでもよい。メモリアクセスの最初の部分がＮＡＮＤフラッシュメモリから検索されたものよりも略低いレイテンシーで、ＤＲＡＭメモリから検索されうるように、ＮＡＮＤフラッシュメモリの一部は、ＤＲＡＭメモリにシャドウィングされてもよい。一つ以上の初期部分がＤＲＡＭメモリから検索されるおよび／またはホストに提供される間に、ＮＡＮＤフラッシュからメモリアクセスのその後の部分にアクセスするプロセスが開始してもよい。このように、ホストから見たＮＡＮＤフラッシュに関連するレイテンシーは低減される可能性がある。
【００５４】
本発明の実施形態は、特定の時点、例えば、システムの電源投入時にだけ実施されるべき種々のハウスキーピング動作（例えば、ウェアレベリング、不良ブロック置換）をさらに提供してもよい。幾つかの例においては、図１を再度参照すると、コントローラ１１１が、ＮＡＮＤフラッシュデバイス１１５に書き込まれるおよび／またはＮＡＮＤフラッシュデバイス１１５から読み出されるデータに対するエラー訂正動作を実施してもよい。不良メモリ領域がエラー訂正動作中に識別される場合、コントローラ１１１は、管理ログ内にその不良メモリ領域のログをとり、例えば、一つ以上のＮＡＮＤフラッシュデバイス１１５および／またはＤＲＡＭデバイス１２５に格納されてもよい。コントローラ１１１は、識別された直後に不良メモリ領域を訂正するための動作をするわけではない。その代わりに、幾つかの例においては、メモリシステム１０７の電源が投入されたとき、または他の特定の時点で、コントローラ１１１は、最後の訂正が行われてからログをとられた管理ログ内に格納されたすべての不良メモリ領域を訂正してもよい。同様に、コントローラ１１１は、ウェアレベリングの目的で、ＮＡＮＤフラッシュデバイスへの読み出しおよび／または書き込みをカウントしてもよい。ウェアレベリングカウントに基づいて、不良として指定されるべきメモリ領域を識別した直後に動作するのではなく、コントローラ１１１は、管理ログ内のウェアレベリングによって置換を必要とするメモリ領域のログをとり、それは、エラー訂正に関連して上述されたログと同一のログまたは異なるログである可能性がある。コントローラ１１１は、その後、特定の時点、例えば電源投入時に、そのウェアレベリングカウントによって、管理ログ内に識別された領域を不良メモリ領域として指定してもよい。
【００５５】
したがって、幾つかの例においては、不良ブロック置換、読み出しディスターブ、ウェアレベリングおよび／または他の管理タスクが、メモリシステム１０７のパワーサイクルに応じて、図１のメモリコントローラ１１１によって実施されてもよい。それ以外の時には、コントローラ１１１は、これらのタスクを実施しなくてもよく、それによって、これらのハウスキーピング動作に関連する追加のレイテンシー問題を回避しうる。
【００５６】
前述から、本明細書では本発明の特定の実施形態が例示として記述されてきたが、本発明の趣旨および範囲から逸脱することなく、種々の改変がなされてもよいことを理解されたい。
【符号の説明】
【００５７】
１００  システム
１０５  プロセッサベースシステム
１０７  メモリシステム
１０９  インターフェイス
１１１  コントローラ
１１３  インターフェイス
１１５  ＮＡＮＤフラッシュデバイス
１２１  インターフェイス
１２５  ＤＲＡＭデバイス
１３１  マッピングテーブル
６００  マッピングテーブル
６０２  論理−物理アドレスマップ
６０４  物理−シャドウアドレスマップ
７０５  ＮＡＮＤフラッシュアドレススペース
７０６、７０７、７０８  データチャンク
７１０  ＤＲＡＭアドレススペース
７１６、７１７、７１８  データチャンク
７２６、７２７、７２８  データチャンク
７３６  データチャンク
【図１】
0006391719.tif 000002
【図２】
0006391719.tif 000003
【図３】
0006391719.tif 000004
【図４】
0006391719.tif 000005
【図５】
0006391719.tif 000006
【図６】
0006391719.tif 000007
【図７】
0006391719.tif 000008