(57)【要約】【課題】不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法。【解決手段】ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリに書き込む、イニシエータから発せられるコマンドを、前記ホスト装置に連結した前記不揮発性大容量メモリに対応付けられたコントローラで受信すること、前記ホスト装置のメモリに現在常駐するデータを少なくとも前記不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、ならびに、前記不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことを前記イニシエータに肯定応答すること、を含む方法。および、この方法を実行するように構成された装置。【選択図】図７
2018022497.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・モジュールのメモリ・コントローラでコマンドを受信するステップであって、前記コマンドは、ホスト装置のメモリに存在するデータを、ホスト装置に結合された前記メモリ・モジュールの不揮発性大容量メモリに書き込むためのものである、ステップと、
前記メモリ・モジュールの前記メモリ・コントローラにより、前記ホスト装置の前記メモリの第１の場所に存在する前記データを、前記ホスト装置の前記メモリの第２の場所へ書き込みすることを開始するステップであって、前記ホスト装置の前記メモリの前記第２の場所が、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、ステップと、
前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという肯定応答を、前記メモリ・モジュールの前記メモリ・コントローラによって、提供するステップと、
を含む方法。
【請求項２】
前記肯定応答を提供する前記ステップに続いて、前記ホスト装置の前記メモリの前記第２の場所に存在する前記データを、前記不揮発性大容量メモリに、さらに書き込みをすることを開始するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記データの前記書き込みをすることは、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、前記ホスト装置の前記メモリの前記第２の場所への前記データの移動を含む、請求項１に記載の方法。
【請求項４】
前記コマンドのイニシエータが、前記ホスト装置に接続された周辺機器として具現化される、請求項１に記載の方法。
【請求項５】
ホスト・コントローラと、装置を不揮発性大容量メモリ・モジュールに接続するためのインタフェースと、を備えた装置であって、
前記ホスト・コントローラが、ホスト装置のメモリに存在するデータを、前記不揮発性大容量メモリ・モジュールに書き込むために第１コマンドを処理し、
前記ホスト装置の前記メモリの第１の場所に存在する前記データを、前記不揮発性大容量メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、前記ホスト装置の前記メモリの第２の場所に書き込むために、前記不揮発性大容量メモリ・モジュールのメモリ・コントローラからの第２コマンドを処理し、
前記データを前記不揮発性大容量メモリ・モジュールに書き込むための前記コマンドが
実行されたことを示す肯定応答を受信するように構成されている、
装置。
【請求項６】
前記ホスト・コントローラが、前記データを前記不揮発性大容量メモリ・モジュールに書き込むための前記コマンドが実行されたという前記肯定応答の前記受信に続いて、前記データを前記不揮発性大容量メモリ・モジュールに実際に書き込むようにさらに構成されている、請求項５に記載の装置。
【請求項７】
前記データの前記不揮発性大容量メモリ・モジュールへの前記書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項６に記載の装置。
【請求項８】
前記メモリの動作は、
所定値に複数の指定されたメモリ・ロケーションを設定するデータ・フィル動作、
第１の複数の指定されたメモリ・ロケーションから第２の複数の指定されたメモリ・ロケーションに移動するデータ移動動作
のうち１つであり、
前記データ移動動作が、前記第１の複数の指定されたメモリ・ロケーションを所定値に設定することをさらに含む、請求項５に記載の装置。
【請求項９】
前記ホスト・コントローラが、少なくとも前記不揮発性大容量メモリ・モジュールによって使用される前記ホスト装置の前記メモリの前記第２の場所へ前記データを物理的または論理的のいずれかで移動するようにさらに構成される、請求項５に記載の装置。
【請求項１０】
イニシエータは、前記ホスト装置に接続された周辺機器として具現化される、請求項５に記載の装置。
【請求項１１】
前記ホスト装置の前記メモリが、前記ホスト装置の前記メモリにおいて、メモリの動作を自律的に実行するように構成されたダイナミック・ランダム・アクセス・メモリを備える、請求項５に記載の装置。
【請求項１２】
前記ホスト・コントローラが、前記不揮発性大容量メモリ・モジュールに割り当てられた前記ホスト装置の前記メモリの前記第２の場所に存在する前記データを、前記ホスト装置の前記メモリの第３の場所にさらに書き込むようにさらに構成され、
前記さらなる書き込みが、前記不揮発性大容量メモリ・モジュールから前記データを読み取るための別のコマンドに応答する、請求項５に記載の装置。
【請求項１３】
前記さらなる書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項１２に記載の装置。
【請求項１４】
前記肯定応答が、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項５に記載の装置。
【請求項１５】
前記ホスト装置の前記メモリの前記第１の場所に存在する前記データの、少なくとも前記不揮発性大容量メモリによって使用される前記ホスト装置の前記メモリの前記第２の場所への書き込みが、前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラによって開始される、請求項５に記載の装置。
【請求項１６】
前記ホスト装置が、双方向無線通信を実行するように構成された携帯装置を含む、請求項５に記載の装置。
【請求項１７】
書き込みのための前記第１コマンドの処理は、書き込みのための前記第１コマンドを前記不揮発性大容量メモリ・モジュールの前記メモリ・コントローラに、送ることを含む、
請求項５に記載の装置。
【請求項１８】
メモリ・コントローラと、前記メモリ・コントローラによって読み取りおよび書き込みが可能な不揮発性大容量メモリと、メモリ・モジュールをホスト装置に接続するためのインタフェースと、を備えるメモリ・モジュールであって、
前記メモリ・コントローラが、
前記ホスト装置の前記メモリからのデータを前記不揮発性大容量メモリに書き込むコマンドを受信し、
前記ホスト装置の前記システム・メモリの第１の場所に存在する前記データを、前記ホスト装置の前記システム・メモリの第２の場所へ書き込みすることを開始し、ここで、前記第２の場所は、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられたものであり、
前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという肯定応答を送るように構成される、
メモリ・モジュール。
【請求項１９】
前記メモリ・コントローラが、前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという前記肯定応答の前記提供に続いて、前記データの前記メモリ・モジュールへの書き込みを開始するようにさらに構成される、請求項１８に記載のメモリ・モジュール。
【請求項２０】
前記第２の場所への前記データの前記書き込みは、少なくとも、前記メモリ・モジュールによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第２の場所への前記データの移動を含む、請求項１８に記載のメモリ・モジュール。
【請求項２１】
前記第２の場所への前記データの前記書き込みは、少なくとも前記メモリ・モジュールによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第２の場所への前記データの論理的移動を含み、
前記論理的移動は、
前記データを指し示すポインターのメモリ・アドレス・ポインター値の変更、および、
前記データのヘッダのヘッダ値の変更
のうちの少なくとも１つを含む、
請求項１８に記載のメモリ・モジュール。
【請求項２２】
前記メモリ・コントローラが、
前記不揮発性大容量メモリからの前記データを読み取るための別のコマンドに応答して、前記不揮発性大容量メモリによる使用に割り当てられた前記ホスト装置の前記システム・メモリの前記第２の場所から、前記別のコマンドのイニシエータと関連する前記ホスト装置の前記システム・メモリの第３の場所への、前記データのさらなる書き込みを開始するようにさらに構成される、
請求項１８に記載のメモリ・モジュール。
【請求項２３】
前記コマンドのイニシエータと、前記別のコマンドの前記イニシエータと
が同じである、請求項２２に記載のメモリ・モジュール。
【請求項２４】
前記第１の場所と前記第３の場所とが同じである、請求項２２に記載のメモリ・モジュール。
【請求項２５】
前記コマンドのイニシエータは、前記ホスト装置に接続された周辺機器として具現化される、請求項１８に記載のメモリ・モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の例示的かつ非限定的な実施形態は、概ね、メモリ・ストレージ・システム、方法、デバイス、およびコンピュータ・プログラムに関し、より詳しくは、大容量メモリ・デバイス、例えば不揮発性のフラッシュ・メモリを含む大容量メモリ装置に関する。
【背景技術】
【０００２】
このセクションは、特許請求の範囲に記載されている本発明の背景または状況を提供することを意図している。本明細書における説明には、追求し得る概念が含まれると思われるが、必ずしも以前に着想、実現、または説明されたものであるとは限らない。したがって、本明細書中で他に示されない限り、このセクションで説明されることが本明細書における説明や請求の範囲に対する従来技術ではなく、このセクションに包含されることによって従来技術であると認められるものではない。
【０００３】
本明細書および／または図面に見出されると思われる以下の略語を、以下のとおり定義する。
【０００４】
ＡＳＩＣ  特定用途向け集積回路
ＣＰＵ  中央処理装置
ＤＭＡ  ダイレクト・メモリ・アクセス
ｅＭＭＣ  組込み型マルチメディア・カード
ｅｘＦＡＴ  拡張ファイル・アロケーション・テーブル
ＨＷ  ハードウェア
ＪＥＤＥＣ  電子素子技術連合評議会
ＬＢＡ  論理ブロック・アドレス
ＭＭＣ  マルチメディア・カード
ＭＲＡＭ  磁気ランダム・アクセス・メモリ
ＲＡＭ  ランダム・アクセス・メモリ
ＳＣＳＩ  小型コンピュータ・システム・インタフェース
ＳＤ  セキュア・デジタル
ＳＷ  ソフトウェア
ＵＦＳ  ユニバーサル・フラッシュ・ストレージ
【０００５】
現在、様々なタイプのフラッシュ・ベースの大容量メモリが存在している。大容量メモリの基本的な前提は、フラッシュ技術の複雑さをホスト・システムから見えないようにするｅＭＭＣ等の技術は一例である。マネージドＮＡＮＤタイプのメモリは、例えばｅＭＭＣ、ＳＳＤ、ＵＦＳ、またはマイクロＳＤである。
【０００６】
図１Ａは、『ＪＥＤＥＣ規格、組込み型マルチメディア・カード（ｅＭＭＣ）製品規格、大容量（ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ，  Ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ｅＭＭＣ）Ｐｒｏｄｕｃｔ  Ｓｔａｎｄａｒｄ，  Ｈｉｇｈ  Ｃａｐａｃｉｔｙ）、ＪＥＳＤ８４−Ａ４２』（２００７年６月、ＪＥＤＥＣソリッドステート技術協会（ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ）の図２を転載したもので、ｅＭＭＣの機能的ブロック図を示す。ＪＥＤＥＣ  ｅＭＭＣは、フラッシュ・メモリ自体に加えて、ＭＭＣ通信プロトコルを管理するインテリジェントなオンボード・コントローラを有している。コントローラは、さらに論理ブロック割付けおよびウェア・レベリング等のブロック管理機能を扱う。インタフェースにはクロック（ＣＬＫ）入力が含まれる。さらに含まれるものはコマンド（ＣＭＤ）であり、これはデバイスの初期化およびコマンドの転送に使用される双方向コマンド・チャンネルである。コマンドは、バス・マスタからデバイスへ送られ、このデバイスからのレスポンスがホストへ送られる。さらに、双方向データ・バス（ＤＡＴ［７：０］）が含まれる。ＤＡＴ信号はプッシュプル・モードで動作する。デフォルトでは、電源投入またはリセットの後、ＤＡＴ０のみがデータ転送に使用される。メモリ・コントローラは、ＤＡＴ  ［３：０］（４ビット・モード）またはＤＡＴ  ［７：０］（  ８ビットモード）のいずれかを使用して、データ転送のためのより広いデータ・バスを構成することができる。
【０００７】
フラッシュ・メモリ・コントローラ構成の非限定的一例は、『ＳＤ  ／  ＭＭＣのフラッシュメモリカード用のＮＡＮＤ型フラッシュ・メモリ・コントローラ（Ａ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  ＳＤ／ＭＭＣ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃａｒｄ）』（チュアン−シェン・リン（Ｃｈｕａｎ−Ｓｈｅｎｇ  Ｌｉｎ）およびラン−ロン・ダン（Ｌａｎ−Ｒｏｎｇ  Ｄｕｎｇ）、  ＩＥＥＥトランザクション・オブ・マグネティックス（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｆ  Ｍａｇｎｅｔｉｃｓ））、第４３巻第２号、２００７年２月、９３３−９３５ページ（以下、Ｌｉｎらという）に記載されている。図１Ｂは、Ｌｉｎらの図１を転載したものであり、ＳＤ／ＭＭＣカード用のＮＡＮＤフラッシュ・コントローラ・アーキテクチャの全体的なブロック図を示す。図示された特定のコントローラは、コード・バンキング・メカニズムと連動して、フラッシュ・メモリのランダム・ビット誤りを訂正するために設計されたｗビット・パラレルボーズ・チョドーリ・オッケンジェム（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈａｍ）（ＢＣＨ）誤り訂正コード（ＥＣＣ）をたまたま使用している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願第１２／４５５，７６３号
【特許文献２】ＵＳ２０１０／０３１２９４７  Ａ１
【非特許文献】
【０００９】
【非特許文献１】『ＪＥＤＥＣ規格、組込み型マルチメディア・カード（ｅＭＭＣ）製品規格、大容量（ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ，  Ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ（ｅＭＭＣ）Ｐｒｏｄｕｃｔ  Ｓｔａｎｄａｒｄ，  Ｈｉｇｈ  Ｃａｐａｃｉｔｙ）、ＪＥＳＤ８４−Ａ４２』（２００７年６月、ＪＥＤＥＣソリッドステート技術協会（ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ）
【非特許文献２】『ＳＤ  ／  ＭＭＣのフラッシュメモリカード用のＮＡＮＤ型フラッシュ・メモリ・コントローラ（Ａ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  ｆｏｒ  ＳＤ／ＭＭＣ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  Ｃａｒｄ）』（チュアン−シェン・リン（Ｃｈｕａｎ−Ｓｈｅｎｇ  Ｌｉｎ）およびラン−ロン・ダン（Ｌａｎ−Ｒｏｎｇ  Ｄｕｎｇ）、  ＩＥＥＥトランザクション・オブ・マグネティックス（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｆ  Ｍａｇｎｅｔｉｃｓ））、第４３巻第２号、２００７年２月、９３３−９３５ページ
【発明の概要】
【００１０】
本発明の一態様では、本発明の例示的な実施形態は方法を提供するもので、該方法は、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリに書き込む、イニシエータから発せられるコマンドを、ホスト装置に連結した不揮発性大容量メモリに対応付けられたコントローラで受信すること、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答すること、を含む。
【００１１】
本発明の別の態様において、本発明の例示的実施形態は装置を提供するもので、該装置は、ホスト装置に結合した不揮発性メモリ・モジュールに対応付けられたコントローラと、不揮発性大容量メモリ・モジュールに対するインタフェースとを有する。コントローラは、イニシエータにより発せられる、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリ・モジュールに書き込むコマンドを、処理するように構成可能である。さらに、コントローラは、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させ、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答するように、構成可能である。
【００１２】
本発明の別の態様において、本発明の例示的実施形態は方法を提供するもので、該方法は、少なくとも１つのデータ処理装置とダイナミック・ランダム・アクセス・メモリから構成される少なくとも１つのメモリとを有するデータ処理システムを提供すること、および、メモリ内で基本メモリ動作を自律的に実行すること、を含む。
【００１３】
本発明のさらに別の態様において、本発明の例示的実施形態は、メモリ・モジュールを提供するもので、該メモリ・モジュールは、コントローラと、コントローラによって読み書き可能な不揮発性大容量メモリと、メモリ・モジュールをホスト装置に接続するためのインタフェースとを有する。コントローラは、イニシエータから発せられる、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリ・モジュールに書き込むコマンドを、受信するように構成可能である。さらに、コントローラは、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させることを開始させ、不揮発性大容量メモリにデータを書き込むコマンドが実行されたことをイニシエータに肯定応答するように、構成可能である。
【図面の簡単な説明】
【００１４】
添付された図面において、
【図１Ａ】『ＪＥＤＥＣ規格、組み込み型マルチメディア・カード（ｅＭＭＣ）製品規格、大容量（ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ，  Ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ  （ｅＭＭＣ）  Ｐｒｏｄｕｃｔ  Ｓｔａｎｄａｒｄ，  Ｈｉｇｈ  Ｃａｐａｃｉｔｙ）、ＪＥＳＤ８４−Ａ４２』（２００７年６月、ＪＥＤＥＣソリッドステート技術協会（ＪＥＤＥＣ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｓｓｏｃｉａｔｉｏｎ）の図２を転載したものであり、ｅＭＭＣの機能的ブロック図を示す。
【図１Ｂ】Ｌｉｎらの図１を転載したものであり、ＳＤ／ＭＭＣカード用のＮＡＮＤフラッシュ・コントローラ・アーキテクチャの全体的なブロック図の一例を示す。
【図２】大容量記憶メモリ・デバイスが接続されているホスト装置の簡略ブロック図であり、本発明の例示的実施形態を説明する際に有用である。
【図３】米国特許出願第１２／４５５，７６３号に記載された発明の一実施形態を説明する信号／メッセージのフロー図であり、図２の大容量記憶メモリ・デバイスはホスト装置のＲＡＭを割り当て、使用、および割当解除することができる。
【図４】米国特許出願第１２／４５５，７６３号に記載された発明の別の実施形態を説明する信号／メッセージのフロー図であり、図２の大容量記憶メモリ・デバイスは内蔵ファイル・システムを有する。
【図５Ａ】集合的に図５と呼ばれ、本発明の実施形態に基づく図２のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。
【図５Ｂ】集合的に図５と呼ばれ、本発明の実施形態に基づく図２のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。
【図５Ｃ】集合的に図５と呼ばれ、本発明の実施形態に基づく図２のホスト装置および大容量記憶メモリ・デバイスの一実施形態を示す。
【図６】無線通信装置として具現化された場合おけるホスト装置の１つの例示的実施形態のブロック図を示す。
【図７】本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。
【図８】さらに本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。
【発明を実施するための形態】
【００１５】
本発明の例示的実施形態に関する以下の説明にとって興味深いのは、本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号（出願日２００９年６月４日）『ホスト・システムＲＡＭを大容量メモリＲＡＭと共有するための装置および方法（Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｔｏ  Ｓｈａｒｅ  Ｈｏｓｔ  Ｓｙｓｔｅｍ  ＲＡＭ  ｗｉｔｈ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ｍｅｍｏｒｙ  ＲＡＭ）』オリイ・ルウカイネン（Ｏｌｌｉ  Ｌｕｕｋｋａｉｎｅｎ）、キモ・マイリ（Ｋｉｍｍｏ  Ｍｙｌｌｙ）、およびジャニ・ハイホネン（Ｊａｎｉ  Ｈｙｖｏｎｅｎ）  （ＵＳ２０１０／０３１２９４７  Ａ１）であり、この文献を本明細書中に援用する。本発明の例示的実施形態について詳細に説明する前に、本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号の記載の少なくとも一部を再検討することが有用であろう。
【００１６】
上述のように、現在、ほとんどの大容量記憶メモリはＬＢＡベースのアクセスを提供するもので、例えばｅＭＭＣや異なるタイプの外部メモリ・カード（ＳＤ等）である。しかし、それはまた、ファイル・システム（ＦＳ）ＳＷ全体が大容量記憶メモリ・デバイスに組み込まれている場合もある。
【００１７】
大容量記憶メモリが移動無線通信装置等、高容量のコンジューマ・デバイスで用いられる場合、１つの重要な検討事項はコストであり、またこのコストに影響を与えるものが大容量記憶メモリ・デバイスそれ自体のＲＡＭの量である。
【００１８】
別の重要な検討事項は、性能である。総合的な性能は、多くの要因に依存する。例えば、長い（時間のかかる）動作（具体的には、大容量記憶メモリ・デバイスがファイル・システムＳＷ全体を含んでいる場合）、相当な量のＲＡＭを大容量記憶メモリ・デバイスに持たせることに利点があるだろう。しかし、このことはコスト面でマイナスの影響を与えることになり得る。
【００１９】
システム・コンテクスト（メタデータ）を大容量記憶メモリ・デバイスのフラッシュ・メモリに格納する場合も考えられる。しかし、このアプローチには、いくつかの関連する欠点がある。例えば、システム・コンテクスト（メタデータ）を大容量記憶メモリ・デバイスに対して繰り返し書き込むことは、大容量記憶メモリ・デバイスの使用寿命に影響を与え得る疲労の問題を引き起こす。さらに、フラッシュ・メモリにデータを書くことは比較的遅いプロセスになり得る。
【００２０】
別の重要な検討事項は電力効率である。良好なパワー効率を提供するために、必要とされない場合に大容量メモリは、好ましくはシャットダウン（電源オフ）される（このデバイスの内部ＲＡＭも好ましくは同様にシャットダウンすることも意味している）。しかし、そしてＲＡＭが本来揮発性であると仮定すると、ＲＡＭに格納されていたデータが何であれ、ＲＡＭから電力が取り除かれた場合にこのデータは消失する。次いで、電源投入後の再初期化を実行するために、必要なすべての情報（例えば、論理物理間マッピング情報および／またはファイル・システム構造）が復元される必要がある。ＬＢＡ大容量記憶メモリの完全な再初期化は、実質的な（かつユーザが気付くことが可能な）時間（例えば、ＳＤカードで最大１秒）が必要であり、ファイル・システム全体の初期化（ファイル・システムが大容量メモリにある場合）がさらに長くかかると思われる。したがって、電源切断／電源投入のサイクルに係る内部デバイス・コンテキストを保持することが望ましい。
【００２１】
図２は、マスストレージメモリ・バス（ＭＳＭＢ）１８を介して大容量メモリ２０に接続されたホスト・システムまたはデバイス１０の簡略ブロック図である。ＭＳＭＢ１８は、ＭＭＣなどの任意の適当な大容量メモリ・インターフェース規格（例えば、非限定的な２つの例として、ＭＭＣまたはＵＦＳ）と互換性があってもよい。ＭＳＭＢ１８は、ｅＭＭＣの実施形態に関する図１Ａに示すような信号線を有してもよい。ホスト装置１０は、格納されたプログラム命令に従って動作するＣＰＵ１２として、少なくとも１つのコントローラを有する。プログラム命令は、ＲＡＭ１４または別のメモリもしくは複数の別のメモリに格納されてもよい。ＣＰＵ１２には、少なくとも１つの内部バス１７を介して、ＲＡＭ１４およびＭＳＭＢインタフェース（Ｉ／Ｆ）１６が接続されている。ＭＳＭＢインタフェース１６は、メモリ・コントローラ（ＭＣ）を有してもよく、またはＣＰＵ１２に関連付けられたＭＣユニットと連結されてもよい。ホスト装置１０は、いくつかの非限定的な例として、コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、またはＰＤＡであってもよい。留意すべき点は、ＲＡＭ１４が半導体メモリまたはディスク・ベースのメモリ等の任意の読出し／書込みメモリまたはメモリ・デバイスであってもよいことである。
【００２２】
大容量メモリ２０は、マイクロコントローラ、または簡単に言えばコントローラ２２を有し、該コントローラ２２が少なくとも一つの内部バス２７を介して揮発性ＲＡＭ２４、不揮発性大容量メモリ２６（例えば、マルチギガバイトのフラッシュ・メモリ型大容量記憶装置）、およびＭＳＭＢインタフェース（Ｉ／Ｆ）２８に接続される。コントローラ２２は、格納されたプログラム命令に従って動作する。プログラム命令は、ＲＡＭ２４もしくはＲＯＭ、または大容量メモリ２６に格納されてもよい。大容量メモリ２０は、非限定的な例として、ＭＭＣ、ｅＭＭＣ、またはＳＤデバイスとして具現化され、ホスト装置１０の外側の（接続された）もの、またはホスト装置１０内に設置されたものであってもよい。留意すべき点は、いくつかの実施形態において、大容量メモリ２６がファイル・システム（ＦＳ）２６Ａを格納する場合もある点である。この場合、次いで、ＲＡＭ２４は、ビットマップ、ファイル・アロケーション・テーブル・データ、および（または）他のＦＳに関連付けられた情報から構成される１つ以上のデータ構造のような、ＦＳ関連メタデータ２４Ａを格納してもよい。
【００２３】
本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号の実施形態は、ホスト装置１０のＲＡＭ１４を大容量記憶メモリ・デバイス２０と共有する技術を提供している。ホスト装置１０（例えば、モバイル・コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、ＰＤＡ、その他）がＲＡＭ１４を割り当ておよび割当解除を行う能力を有すると仮定することができる。ＲＡＭ１４の割り当ては動的に行われてもよく、または静的に行われてもよい。ＲＡＭの一部の割り当ては、ホスト装置１０またはホスト装置１０の主導で受け取られた要求に応じて行われてもよい。
【００２４】
本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号の実施形態では、大容量記憶メモリ２０が自己のＲＡＭ２４空間を拡張する必要がある場合および／または大容量記憶メモリ２０が不揮発性ＲＡＭ（その内容が大容量記憶メモリ２０の電源切断の際に消失しない）を必要とする場合に、大容量メモリ２０（ＭＳＭＢ１８を介してホストＣＰＵ１２に結合）にＲＡＭ１４が割り当てられる。大容量記憶メモリ２０もまた、ホスト装置１０内の割り当てられたＲＡＭ１４を読み出し／書き込み（Ｒ／Ｗ）することができる。割り当て／割当解除およびＲ／Ｗアクセス方法を、適当な大容量メモリ・プロトコルを介して大容量記憶メモリ２０との通信に利用されるコマンド・セットを拡張することで、実装することができる。
【００２５】
本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号に記載された発明の特定の実施形態によれば、大容量記憶メモリ・デバイス２０には、ＲＡＭ１４内での空間の割り当てを開始させるためのホスト装置１０に対するメッセージを中断／送信する機構が設けられている。割込み／メッセージは、ＭＳＭＢ１８上で送られ、現在の命令セットに対する拡張として見なされてもよい。図３を参照すると、割当てメモリ・コマンドが動作３−１の過程で送られる。割当て要求が続いて起こる場合（動作３−２中に示される）、コントローラ２２はホスト装置１０のＲＡＭ１４により自己のＲＡＭ２４を拡張することが可能になる。大容量記憶メモリ・デバイス２０は、例えば、ＲＡＭの書込み（ＷＲＩＴＥ）コマンドを用いて大きなテーブルをＲＡＭ１４に格納してもよく、または、ＲＡＭの読み出し（ＲＥＡＤ）コマンドを用いてホスト装置ＲＡＭ１４からのデータをフェッチしてもよい。読出しまたは書込み動作は、インタリーブされた動作３−３、３−４、３−５、３−６、３−（Ｎ−１）、３Ｎとして示される。大容量記憶メモリ・デバイス２０がＲＡＭ１４による動作を完了した場合、ホスト１０のＲＡＭメモリが割当解除になることを要求する別のコマンドを用いて、ホスト装置のＲＡＭ１４を解放してもよい（動作３−（Ｎ＋１））。
【００２６】
図４は、本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号に記載された、さらなる例示的実施形態を示すもので、この実施形態では図２に示すＦＳ２６Ａ等の内蔵ファイル・システムを持つ大容量メモリ２６のためにホスト・システムのＲＡＭ１４を使用する。第一に、ホスト・システム１０は遮断（ＳＨＵＴＤＯＷＮ）コマンドを大容量記憶メモリ・デバイス２０に送る（動作４−１）。次に、大容量記憶メモリ・デバイス２０がホスト１０からのＲＡＭ１４を割り当て、その後に重要な「静的」ファイル・システム関連データ（メタデータ２４Ａ）の全てをホストＲＡＭ１４（動作４−２）にロードする（ＲＡＭ書込みコマンドを使用して格納する）。このコンテキスト中の「静的」データは、例えば、ｅｘＦＡＴまたはｅｘｔ３ファイル・システム内の割当てビットマップのような様々なビットマップであってもよい。このデータは、ホスト装置のＣＰＵ１２（コントローラ）によって処理（例えば、ソート、配置、およびフィルタリングの少なくとも１つがなされた）ものであってもよく、ならびに大容量メモリ２６の多くのセクタからのデータを含むものであってもよい。その後、大容量記憶メモリ・デバイス２０は電源遮断ＯＫの命令を送ってもよい（動作４−３）。ホスト１０は、大容量記憶メモリ・デバイス２０から電力を取り除くことができ、この大容量記憶メモリ・デバイス２０がＭＳＭＢ１８から物理的に取り除かれてもよい。大容量記憶メモリ・デバイス２０の再初期化（動作４−４、４−５、４−６）は、ホスト装置１０が大容量記憶メモリ・デバイス２０から、または大容量記憶メモリ・デバイス２０へ、特定のデータを得ること／入力することが必要である場合に、実行される。大容量記憶メモリ２６（およびファイル・システム２６Ａ）の再初期化を、ＲＡＭ１４からソート／配置／フィルタリングされた読出しデータを用いることによって、促進してもよい。再初期化の動作が完了した場合、大容量記憶メモリ・デバイス２０はホスト装置１０内の使用済みＲＡＭ１４を割当解除してもよく、またはＲＡＭ１４を割当解除しなくてもよく、それによって大容量記憶メモリ・デバイス２０により将来使用されるＲＡＭ空間が確保される。
【００２７】
ホストＲＡＭ１４の割り当てがいくつかの実施形態で異なった形で生じてもよい。例えば、ホスト装置１０は動的にＲＡＭ１４を割り当て、この割り当てられたＲＡＭに対する「ポインタ」を大容量記憶メモリ・デバイス２０へ渡してもよい。次に、割り当てられたホストＲＡＭ１４をどのように利用するかは、大容量記憶メモリ・デバイス２０のコントローラ２２次第である。留意すべき点は、この実施形態において、大容量記憶メモリ・デバイス２０からの明示的な割り当て要求がホスト装置１０へ送信されなくてもよいことである。その代わりに、ホスト装置１０は、それ自身のイニシアチブにより、例えばそれが最初に大容量記憶メモリ・デバイス２０の存在を検出した際に、ＲＡＭ１４の一部を割り当ててもよい。もちろん、初期の割当てがコントローラ２２の要求に十分ではない場合、大容量記憶メモリ・デバイス２０とホスト装置１０との間のシグナリングを用いて、割当てＲＡＭ１４の大きさを変えてもよい。ＲＡＭ１４割当ての別の例として、ＲＡＭ１４の一部を静的な方法でホスト１０により割り当ててもよく、その後、大容量記憶メモリ・デバイス２０を該ＲＡＭ１４の同一部分を、ＲＡＭ２４の拡張を必要とするたびにそのまま用いてもよい。この場合、大容量記憶メモリ・デバイス２０は、既に、割り当てＲＡＭ１４の位置／大きさについての知識を持っていてもよく、ポインタをホスト装置１０から送信する必要はない。
【００２８】
留意すべき点は、大容量記憶メモリ・デバイス２０がホスト・メモリの割当てを受信して揮発性ＲＡＭ２４の内容を格納することが典型的であり得る一方で、一般に、この割り当ては大容量記憶メモリ・デバイス２０内に含まれる任意の読出し／書込みメモリのデータを格納するためのものであってもよいことである。
【００２９】
本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号に記載された発明の種々の非限定的かつ例示的実施形態の概観を提供することで、本発明の例示的実施形態が作られる。
【００３０】
マネージドＮＡＮＤメモリ（例えばｅＭＭＣ、ＳＳＤ、ＵＦＳ、マイクロＳＤ）では、メモリ・コントローラ（例えば、図２に示されるコントローラ２２）は、不良ブロック管理およびウェア・レベリングのようなフラッシュ管理機能を管理する。典型的な低価格の実装では、マネージドＮＡＮＤに小さな入出力（１０）バッファＳＲＡＭがあるだけである。ＳＳＤ等の高額なマネージドＮＡＮＤのコントローラに実装する場合、数十ないし数百メガバイトのディスクリートＤＲＡＭがキャッシュとして存在してもよい。今後、ＭＲＡＭ等、いくつかの新しい技術が非常に高速な不揮発性キャッシュとして役立つと考えられる。
【００３１】
現代のマルチタスク・モバイル装置の環境では、同時に大容量ストレージに対して、キューされる数多くの異なるイニシエータからの様々な種類のアクセスが存在してもよい。ｅＭＭＣの場合では、ｅＭＭＣデバイスが一度に単一のスレッドのみを扱うことができるため、待機アクセスは1つずつ対応されると思われる。ＵＦＳの場合では、ＵＦＳデバイス・キューにアクセス／コマンドを送ることが可能である。しかし、コマンドをキューに入れることができるにもかかわらず、必ずしも、キューイングされたアクセスに関連したデータの全てを直ちに収容するためのＵＦＳデバイス（特にコスト最適化モデルにおいて）に十分なリソースがあるとは限らない。
【００３２】
上記の、本発明の譲受人に譲渡された米国特許出願第１２／４５５，７６３号は、大容量記憶メモリ２０がシステムＤＲＡＭ  １４への読出し／書込みアクセスを備えるモデルを提供する。この概念は、本発明の例示的実施形態によって拡張され、論理的（ポインタの使用により）または物理的に、大容量記憶メモリ２０がシステムＤＲＡＭ内にデータを移動することを可能にする。実際の移動がＤＲＡＭ１４内に生じたり、またはデータがシステムＤＲＡＭバス１７（例えば、システムＤＲＡＭ１４と大容量メモリ・ホスト・コントローラ１３ＤＭＡバッファとの間）上を往復移動する可能性がある。図５に示され、かつ以下に詳細に説明される大容量メモリ・ホスト・コントローラ１３は、この点に関して、ＤＭＡマスタとして機能すると考えられるので、この目的上それ自身の関連ＤＭＡデータ・バッファを有することができる。
【００３３】
前述の特徴を、いくつかの実施形態の使用を介して実現することができる。
【００３４】
第１の実施形態では、システムＤＲＡＭ１４内の個別の物理アドレス空間が大容量記憶メモリ２０用に確保され、または、システムＤＲＡＭ１４が論理アドレス空間で動作する場合、論理空間が確保される。大容量記憶メモリ（例えば、ＵＦＳ大容量記憶メモリ２０）は、このアドレス空間を自由に利用することができ、割当て／割当解除機能および他の機能等のアドレス空間の管理機能を担う。
【００３５】
図２を参照して説明されるこれらの構成要素がそれに応じて番号付けされている図５を参照することができる。図５Ａ、５Ｂ、および５Ｃでは、大容量メモリ・モジュール２０（非限定的実施形態においてＵＦＳメモリ・モジュールとして説明）によって使用されるために、システムＤＲＡＭ１４の一部分１４Ｇが割り当てられている。ホスト装置１０は、ＣＰＵ１２として具現化され得るアプリケーション・プロセッサを有する。このアプリケーション・プロセッサ１２とともに含まれるか、またはそれに連結されているものが、ＤＲＡＭコントローラ１１であってもよい。さらに存在するものが上記の大容量メモリ・モジュール（例えばＵＦＳ）ホスト・コントローラ１３である。ホスト・コントローラ１３は、ＣＰＵ１２として具現化し得、または個別のデバイスとして具現化し得る。図５Ｂは、システムＤＲＡＭ１４がオペレーティング・システム（ＯＳ）１４Ａと複数のアプリケーション・プログラム（アプリケーション）１４Ｂとを格納することを示す。複数のアプリケーション１４Ｂの少なくとも１つがデータ１４Ｂ’を生成する。システムＤＲＡＭ１４は、概ね、ファイル・システム（ＯＳ１４Ａの一部）に関連したファイル・システム・キャッシュ１４Ｃも格納する。図５Ｂの実施形態では、システムＤＲＡＭ１４の一部がトランスファ・バッファ１４Ｄとして割り当てられ、このトランスファ・バッファ１４Ｄにアプリケーション・データ１４Ｂ’が移動してトランスファ・バッファ・データ１４Ｅになり得る。システムＤＲＡＭ１４の別の部分は、アクセス・リスト１４Ｆを格納するために割り当てられる。ＵＦＳメモリ・モジュール２０に割り当てられたＤＲＡＭ部分１４Ｇも含まれ、この部分にトランスファ・データ・バッファ１４Ｅが移動してデータ１４Ｅ’になり得る。ここで、図５Ａ、５Ｂ、および５Ｃに示すこれらの構成要素の動作を、より詳細に説明する。
【００３６】
アプリケーション１４Ｂ等のデータ・ソース、またはファイル・システム・キャッシュ、またはファイル・キャッシュ実体（非限定的な例として）は、大容量メモリ・モジュール２０に格納されるデータ１４Ｂ’を有する。このデータ１４Ｂ’は、大容量メモリ・モジュール２０へのその後の配信のためのシステム・ドライバによって、トランスファ・データ１４Ｅとして、トランスファ・バッファ１４Ｄに移動される。必要に応じて、図５Ｃに示すとともに以下でさらに詳細に説明されるように、データ１４Ｂ’は、その本来の位置から直接移動される場合があり、それによってトランスファ・バッファ１４Ｄが迂回される。アクセス・リスト１４Ｆは、システムＤＲＡＭ１４において、ＯＳユーティリティ等によりアプリケーション１４Ｂ向けに作られ、データ１４Ｅの位置を指し示す。この点に関して留意すべき点は、「アプリケーション」（ここで従来の感覚でサード・パーティ・アプリケーションとして理解する場合）は、それ自身ではいかなるアクセス・リストも作ることができないということである。アクセス・リストは、フィルム・システム層から入ってくるアクセスに基づいて、いくつかのＯＳサーバ・メモリ・サブシステム（例えば、あるドライバ層またはあるＯＳユーティリティ）によって、概ね作られる。実際には、アクセス・リストが構築されるか、またはアプリケーション用に構築される。イニシエータは、非限定的な例として、アプリケーション、ファイル・システム、ドライバ、またはＯＳユーティリティであってもよい。
【００３７】
本発明の態様によれば、大容量メモリ（ＵＦＳ）に割り当てられた部分１４Ｇへデータ１４Ｅを移動させて、以下に述べるようにデータ１４Ｅ’にすることができる。
【００３８】
アクセスは、以下のように、ホスト装置１０によって行ってもよい（ホスト装置１０が既に現在、大容量記憶メモリ２０を初期化していると仮定）。
【００３９】
（１）イニシエータ（例えば、ＣＰＵ１２によって実行されているシステムＤＲＡＭ１４に常駐するアプリケーション・プログラム１４Ｂ）は、それ自身のために（例えば、ＯＳユーティリティによって）、システムＤＲＡＭ１４内のＵＦＳメモリ・モジュール２０に対するアクセス・テーブル（アクセス・リスト１４Ｆ）を構築している。この例では、これらのアクセスの実行がある期間にわたってＵＦＳメモリ・モジュール２０のリソースを消費するであろうと仮定する。
【００４０】
（２）イニシエータ（例えば、アプリケーション・プログラム１４ＢまたはＯＳユーティリティ）がアクセス・テーブル（アクセス・リスト１４Ｆ）の存在をＵＦＳホスト・コントローラ１３に通知することで、ホスト・コントローラ１３はコマンドおよび関連データをＵＦＳメモリ・モジュール２０に送り始める。
【００４１】
（３）同一または別のイニシエータ（例えば、同一または異なるアプリケーション・プログラム１４Ｂ）は、それ自身のために、システムＤＲＡＭ１４内のＵＦＳメモリ・モジュール２０に対する別の書込みアクセス・テーブル（別のアクセス・リスト１４Ｆ）を構築し、ＵＦＳホスト・コントローラ１３はアクセス・テーブルの存在を通知される。
（４）ＵＦＳホスト・コントローラ１３は、この（書込み）コマンド・セットをＵＦＳメモリ・モジュール２０に転送する。ＵＦＳメモリ・モジュール２０に局在的に書き込まれたコマンドに関連するデータを処理することができないとＵＦＳメモリ・モジュール２０が判断すると、仮定する。この点に関して、留意すべき点は、例えば、書込みコマンド（複数の書込みコマンド）の実行の緊急性を強調するために、コマンドに関連するイニシエータによるキュー指示のヘッドがあり、ＵＦＳメモリ・モジュール２０は、現在のところ、指示された緊急レベルを満たすことができないと判断する場合があるということである。
【００４２】
（５）書込みコマンドに関連するデータを受信する代わりに、ＵＦＳメモリ・モジュール２０はデータを、例えばトランスファ・バッファ１４Ｄ（または１４Ｂ／１４Ｃ）からシステムＤＲＡＭ１４の予約された個別の物理アドレス空間（割り当てられた部分１４Ｇ）へ、移動する。移動動作およびシステムＤＲＡＭ１４の割り当てられた部分１４Ｇは、ＵＦＳホスト・コントローラ１３を介して、ＵＦＳメモリ・モジュール２０によって制御される。ＵＦＳホスト・コントローラ１３はシステムＤＲＡＭ１４またはシステムＤＲＡＭコントローラ１１を制御することで、データ１４Ｅの、例えばトランスファ・バッファ１４Ｄから割り当てられた部分１４Ｇへのデータ１４Ｅ’としての移動を実行する。ＵＦＳホスト・コントローラ１３は、例えば、ＤＭＡマスタ（専用ＵＦＳ  ＤＭＡまたはシステムＤＭＡのいずれかのＤＭＡマスタ）として直接動作する手段によってこの動作を行うことができると仮定することができ、ホストＣＰＵ１２を迂回することができる。
【００４３】
（６）  割り当てられた部分１４Ｇへのデータ１４Ｅの物理的移動が生じた後、あたかも不揮発性メモリ（ＮＶＭ）（すなわち、大容量メモリ２６）へ実際にデータを移動させたかのように、ＵＦＳメモリ・モジュール２０は本来の（書込み）コマンドに応答することができる。その結果、たとえ書込みデータがシステムＤＲＡＭ  １４の割り当てられた部分１４Ｇの中にデータ１４Ｅ’として現在常駐していようとも、第２のイニシエータは、大容量メモリ２０への書込みコマンドが実行されたと見なすことができるとともに、処理動作を継続することができる。
【００４４】
（７）ある将来時刻では、ＵＦＳメモリ・モジュール２０は、第２のイニシエータからの書込みコマンドを処理するために、十分なリソースを有している。この時、それは、それぞれ独立してシステムＤＲＡＭ１４（システムＤＲＡＭ１４の割り当てられた部分１４Ｇ）からのデータをフェッチし、ＮＶＭ大容量メモリ２６にそれを格納する。ＯＳ１４Ａのファイル・システム層またはイニシエータの観点から、この動作には透明性があり、あたかも物理的なＤＲＡＭ／ＳＲＡＭキャッシュがＵＦＳメモリ・モジュール２０内にあるように見える。すなわち、システムＤＲＡＭ１４の外部の割り当てられた部分１４Ｇは、ＵＦＳメモリ・モジュール２０の仮想ＤＲＡＭ／ＳＲＡＭキャッシュと類似したやり方で機能することができる。
【００４５】
留意すべき点は、ＵＦＳメモリ・モジュール２０が受信アクセス・コマンドを連続して処理する必要はないことである。例えば、より高い指示された優先度がある別の書込みコマンドが、書込みデータも割り当てられた部分１４Ｇに保存されている第３のイニシエータから到着する場合、第２のイニシエータからの書込みコマンドを処理する前に、ＵＦＳメモリ・モジュール２０は、第３のイニシエータからの書込みコマンドを処理し、次に、第２のイニシエータからの書込みコマンドを処理することもあり得る。
【００４６】
別の実施形態では、大容量メモリ・モジュール２０のシステムＤＲＡＭ１４に確保された特定の個別の記憶アドレスを必要としない。代わりに、大容量メモリ・モジュール２０はシステムＤＲＡＭ１４に任意の（またはほぼ任意の）位置にアクセスできる。この場合、システムＤＲＡＭ１４にデータを物理的に移動させる代わりに、大容量メモリ・モジュール２０は、ホストＣＰＵ１２によって作製されたメモリ・ポインタのリストを制御することができる。ポインタのリスト（ホスト用のポインタ・リスト１つと大容量メモリ・モジュール２０用の別のリスト）を修正することで、大容量メモリ・モジュール２０は、ホストＣＰＵ制御論理メモリ空間から大容量メモリ・モジュール２０によって制御された空間に、事実上、データを「移動」させることができる。留意すべき点は、この場合、トランスファ・バッファ１４Ｄは依然として存在するか、または存在してもよいが、大容量メモリ・モジュール２０に割り当てられた物理的部分１４Ｇに対する必要性はないことである。
【００４７】
あるいは、大容量メモリ・モジュール２０は、ホストＣＰＵ１２によって作製されたヘッダ情報を用いることができる。ヘッダ情報は、ホストの有効／無効、確保済み、および大容量メモリの有効／無効割当てに、個別のビットを用いることができるとともに、システムＤＲＡＭ１４に格納することができる。この場合、ヘッダ情報（例えば、割り当てられた／フリーのもの）を修正することによって、大容量メモリ・モジュール２０は、ＣＰＵ１２によって制御されたアドレスから大容量メモリ・モジュール２０によって制御されたアドレスへ、データを「移動」させることもあり得る。
【００４８】
これらの動作のいずれか、または両方は、ホスト・コントローラ１３によって媒介することができる。
【００４９】
不揮発性モジュール１４Ｇのために確保されたシステムＤＲＡＭ１４の一領域にデータが依然として位置するアドレスへのアプリケーションからの読出しコマンドが存在し得る。すなわち、以前に保存されたデータは、不揮発性メモリ・モジュール２０によって不揮発性メモリ２６にまだ移動されていない。そのような場合、メモリ・コントローラ２２はこの読出しコマンドを検知することになり。そして（読出しコマンドを供給する前に不揮発性メモリ２６へ忠実にデータを移動させて格納する代わりに）、ファイル・キャッシュ／ファイル・システム・キャッシュ１４Ｃ／トランスファ・バッファ１４Ｄまたはアプリケーション領域１４Ｂにおいてメモリ領域１４Ｇからのデータを該データ用に確保された位置へコピー（移動ではない）することになる。確保された位置の宛先アドレスは、ホスト・コンピュータ１３によって少なくとも知られるように、アクセス・リスト１４Ｆに含まれる場合もある。
【００５０】
ポインタおよびヘッダのリストの修正に相応して関係する他の実施形態において、上述の読み出しは、新しい宛先位置へのデータ（読み出しリクエストに関係する）をコピーし、コピーされたデータが直ちにアクセス可能になり、かつホスト・システム１０の管理下に置かれるように、メモリ・モジュール／ホスト・コントローラによってポインタ／ヘッダを調整することとして、実現され得る。
【００５１】
これらの読出し関連の実施形態のすべてにおいて、認識すべきことは、読出しデータがコピーされるとともに、データ１４Ｅ’が依然として存在し、メモリ・コントローラ２２が書込み動作を行なうためにリソースを持つとすぐに、メモリ・モジュール２０の不揮発性メモリ２６に書き込まれるということである。
【００５２】
図５Ｃは、この発明の一実施形態を示すもので、上記したように、アクセス・リスト１４Ｆはデータ１４Ｂ’を参照し、この参照されたデータが次に直接、割り当てられた部分に移動（データ１４Ｅ’）し、それによってトランスファ・バッファ１４Ｄを迂回する（すなわち、直接移動した後にデータ１４Ｂ’はデータ１４Ｅになる）。
【００５３】
ホストＣＰＵ  １２以外（例えばアプリケーション・プロセッサ以外）の供給源からデータが生じることも例示的実施形態の範囲内である。例えば、データは、有線接続または無線接続のいずれかによってホスト装置１０に接続される周辺機器６０として具現化されるイニシエータから生じる場合もある。この場合、周辺機器６０から大容量メモリ・モジュール２０にデータを直接移動させる代わりに、大容量メモリ・モジュール２０は、システムＤＲＡＭ１４（例えば、割り当てられた部分１４Ｇ）に格納されるデータを生じる。周辺機器６０で生じるデータは、このようにシステムＤＲＡＭ１４に一時的に（かつ周辺機器６０に対してトランスパレントに）キャッシュに入れられる。
【００５４】
さらに、本発明の例示的実施形態に基づいて、ＤＲＡＭ１４の動作は、機能性を追加することで強化され、動作が局所的にＤＲＡＭ１４内で実行される。
【００５５】
前置きとして、無線端末（例えば、スマートフォン）の処理能力のボトルネックの一つは、実行メモリ、特にメモリ・バスである。また、ワークメモリとしても知られている実行メモリは、別個の構成要素（例えば、外部ＤＲＡＭ）である一方で、限られた伝送容量（帯域幅）を有するバスによりホスト・バスＡＳＩＣに接続されている。
【００５６】
メモリ帯域幅を改善する手段は、制限されている。ほとんどの場合、一部のメモリ・バスおよびメモリ装置のコストはそれぞれが高額すぎる。さらに、バス自体は、ホストＡＳＩＣのピン／パッド予算の大部分を占めており、このことが意味することは、所定のパッド・ピッチでホストＡＳＩＣシリコンを含むパッケージが多数のバスによって不必要に大型化し、小型化への取り組みに対して問題を生じていることである。
【００５７】
共通する問題としては、所望される多くの使用において、メモリ帯域幅（すなわちトランザクション・キャパシティ）が不十分であるということである。ホストＡＳＩＣは、いくつかのメモリ・マスタ（例えばプロセッサ、アクセラレータ、およびＤＭＡエンジン）、ならびに外部記憶バスを提供する１つのＤＲＡＭコントローラ１１を含むことができる。このバスの他端に、メモリ装置（ＤＲＡＭ構成要素）がある。メモリ・マスタは、読み出しおよび書き込みのリクエストをメモリに対して出す。ＤＲＡＭは、並行して動作するいくつかのバンク（通常４〜８）から構成されている。したがって、並列がメモリ・バスの両端で存在している間、メモリ・バス自体はシングル・スレッドの配置である。
【００５８】
本発明の例示的態様は、内部動作が局所的に行われることを可能にすることにより、メモリ装置を完全に利用する手段を提供することを含む。これは全面的なメモリ・サブシステムの性能を改善し、ＣＰＵからのいくつかの動作をオフ・ロードすることによりＣＰＵキャパシティを高め、電力消費を減少させる。本発明の例示的態様では、改善されたコマンド・セットの使用を介したメモリ装置により実行されるいくつかの基本動作が提供される。
【００５９】
留意すべき点は、本発明の例示的実施形態のこれらの態様がシステムＤＲＡＭ１４の動作を向上させるという文脈で記述される一方で、本発明のこれらの態様が大容量記憶メモリ装置２０の動作を向上させることにも適用し得ることである。例えば、大容量メモリ２６内の局所的な自律的動作を提供するようにメモリ・モジュール２０の常駐するメモリ・コントローラ２２を変更することが可能である。
【００６０】
さらに、本発明の例示的実施形態に基づいて、メモリ・フィルおよびメモリ移動のようないくつかの基礎的で基本的な機能は、システムＤＲＡＭ１４に対して内部的に処理される。これらの動作は、例えば、システムＤＲＡＭメモリ・コントローラならびに／あるいはシステムＤＲＡＭ１４に具現化されたコントロール・モジュールまたは機能１５によって、処理される（図５Ａに示す）。
【００６１】
この実施形態では、システムＤＲＡＭ１４は、システムＤＲＡＭメモリ・コントローラ１１の支援下または支援無しで、例えば、ＣＰＵ１２による積極的な介入／制御なしに独立的かつ自律的に、メモリ・フィルを実行するとともに機能（複数の機能）を移動させる。このことは、少なくとも、バッファ１４Ｂ／１４Ｄから割り当てられた部分１４Ｇへの物理データの移動を制御する大容量メモリ・モジュール／大容量メモリ・ホスト・コントローラ１３に起因する、ＣＰＵ１２およびシステムＤＲＡＭバス１７の荷重を減少させる。
【００６２】
明らかなことは、多くのメモリ・トランザクションがデータ（例えば、ゼロ）によるメモリアドレス空間の単純な充填、あるいは１つの記憶場所から別の記憶場所へデータ・チャンクを移動させることであり、該位置を同一メモリ装置内部または２つの異なるメモリ装置内部とすることができる。これは従来、ＣＰＵレベルでの活動を必要とし、このことはシステム処理効率および消費電力が最適未満であることを意味している。
【００６３】
本発明のこれらのさらなる態様に基づいて、少なくともいくつかの基本的なインメモリ動作がＣＰＵ１２の責任から外され、システムＤＲＡＭ１４により具現化し得るコントローラ１５等のシステムＤＲＡＭ１４に転送される。
【００６４】
この例示的実施形態では、コントローラ１５の機能には「スマート・メモリ」機能が含まれる。あるいは、これらのスマート・メモリ機能を、図５Ａに示されるホスト・コントローラ１３に持たせることができる。あるいは、また上述したように、これらのスマート・メモリ機能もまた、ホスト装置１０のシステムＤＲＡＭ１４のためのシステムＤＲＡＭメモリ・コントローラ１１機能に包含させることが可能である。
【００６５】
これらの実施形態において、システムＤＲＡＭコントローラ１１またはシステムＤＲＡＭモジュール（制御１５）は、そのために出されたコマンドを分析し、メモリ・フィルまたはメモリ移動動作等の「スマート・メモリ」動作を開始してもよい。
【００６６】
例えばコントローラ１５に加えられた付加的な機能には、少なくともデータ・フィル機能およびデータ移動機能が含まれてもよい。必要に応じて、付加的機能には、システムＤＲＡＭ１４のセキュリティー機能、システムＤＲＡＭ１４とメモリ２６との間のパック／アンパック機能、さらに、例えば、大容量メモリ関連エラー検出および補正やウェア・レベリング機能が含まれる。
【００６７】
スマート・メモリ機能使用の一例として、メモリ・ブロック・リセットが通常、そのメモリにゼロを書き込むことによって行われる。本発明によれば、「データ・フィル」機能は、任意の特定ビット・パターンを用いた少なくとも１つのフィル（Ｆｉｌｌ）動作を支持するもので、データ（Ｄａｔａ）を任意の特定ビット・パターン、例えば“００００”、“１１１１”、“０１０１”等とすることが可能である。
【００６８】
データ移動動作は、データが移動された（読み出された）システムＤＲＡＭ１４の領域に対するフィル（Ｆｉｌｌ）動作が後に続く読出し／書込み（コピー）シーケンスになり得る。フィル動作は、メモリ位置をある所定値（例えば、ゼロ）に設定したり、または上記で議論されたフィル動作と類似したやり方でデータ移動動作コマンドにより指定された値に設定することが可能である。データ移動（Ｄａｔａ  Ｍｏｖｅ）動作がデータ・コピー（Ｄａｔａ  Ｃｏｐｙ）動作として機能することができる（すなわち、オリジナル・データが不変である一方で、そのデータが別の場所に複製される）ように、フィル動作は任意のものであってもよい。
【００６９】
コマンド・レベルでスマート・メモリ機能を実装する非限定的な例は、以下のとおりである。
【００７０】
ＪＥＤＥＣ規格の低消費電力ダブル・データ・レート（Ｌｏｗ  Ｐｏｗｅｒ  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）（ＬＰＤＤＲ１（ＬＰ１））（例えば、『ＪＥＤＥＣ規格、低消費電力ダブル・データ・レート（ＬＰＤＤＲ）、ＳＤＲＡＭ標準、ＪＥＳＤ２０９Ｂ』（ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ，  Ｌｏｗ  Ｐｏｗｅｒ  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  （ＬＰＤＤＲ）ＳＤＲＡＭ  Ｓｔａｎｄａｒｄ，  ＪＥＳＤ２０９Ｂ）、２０１０年２月を参照）は、これらのタイプのスマート機能を付加する簡単で明瞭な方法を提供していない。例示的な実装は、以下の情報をメモリ装置に送るためにアドレス・ピンＡ０−Ａｘを用いる、複数の従来のモード・レジスタ・セット（Ｍｏｄｅ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ）（ＭＲＳ）コマンド（バンクアドレスＢＡ０＝ＢＡ１＝“１”のＭＲＳを利用可能）の配列を用いることであってもよい。
１）  コマンドの種類（移動（ｍｏｖｅ）、フィル（ｆｉｌｌ））；
２）  フィル・データ（全（ａｌｌ）０，全（ａｌｌ）１，０１シーケンス（ｓｅｑｕｅｎｃｅ）、．．．）、オプション；
３）  宛先アドレス（フィル、移動）および送信元アドレス（移動）、アドレスは実装に依存；
４）  動作サイズ（細分性は実装に依存）。
【００７１】
シーケンスの必要ＭＲＳコマンド数は、アドレッシング、データ細分性、および動作サイズに依存するもので、これらは実装依存因子である。ＬＰＤＤＲ２およびＬＰＤＤＲ３において、モード・レジスタ書込み（Ｍｏｄｅ  Ｒｅｓｉｓｔｅｒ  Ｗｒｉｔｅ）コマンドを同様に用いることが可能である。理解すべきことは、従来のＬＰＤＤＲｘソリューションがＤＲＡＭアイドル状態のみからのＭＲＳおよびＭＲＷ動作を許容するが、他のソリューションも技術的に可能であるということである。そのような１つの実装は、移動またはフィル動作の送信元または宛先であるデータがオープンＤＲＡＭ頁に位置するよう必要とすることかもしれない。
【００７２】
理解すべきことは、将来のＤＲＡＭインタフェースによって、これらの動作に新たな専用コマンドが使用され、これらの動作がより一層効率的になり得るということである。基本的に、システムの観点から、次の動作のうちのいくつかあるいはすべてはメモリに配信されてもよい：
１）  コマンド（フィル（ｆｉｌｌ）０、フィル（ｆｉｌｌ）１、．．．、フィル＿パターン（ｆｉｌｌ＿ｐａｔｔｅｒｎ）、移動（ｍｏｖｅ）を配信；
２）  宛先アドレス（バンク（ｂａｎｋ）、ロー（ｒｏｗ）、カラム（ｃｏｌｕｍｎ）、バイト（ｂｙｔｅ））を配信；
３）  送信元アドレス（バンク（ｂａｎｋ）、ロー（ｒｏｗ）、カラム（ｃｏｌｕｍｎ）、バイト（ｂｙｔｅ））を配信；
４）  動作サイズを配信。
【００７３】
完全なコマンドおよびアドレス配信は、単一または複数のコマンド・シーケンスで生じてもよく、特定のコマンド・コードは、例えば、実装に合うように、ｃｍｄ／アドレス／データ・バスを介して、マルチサイクル配信を示すものであってもよい。特定の実装は、データおよびアドレス細分性の要件、スマート・メモリ機能動作の前後後のメモリ状態の要件（メモリがデータを移動またはフィルするためにいくつかの中間バッファを内部で用いるかどうか、あるいはオープン・ロー（ＤＲＡＭセンス・アンプ）が動作全体中、確保されているかどうか）、任意のタイミング要件、その他を要求する。
【００７４】
コマンドは、例えば、ＣＰＵ１２（例えば、ＯＳまたはファイル・システム・ユーティリティ）または大容量メモリ・ホスト・コントローラ１３によって送出された後、システムＤＲＡＭ１４に関連したコントローラ１５またはＤＲＡＭメモリ・コントローラ１１によって自律的に実行され得る。
【００７５】
本発明の例示的実施形態によって実現され得るいくつかの利点および技術的効果は、上述のとおりである。例えば、イニシエータ（ホストＣＰＵ１２、プロセス、イニシエータ、アプリケーション）に対するより速いレスポンスは、アクセスがなされた（実際に、さらなる処理のためにマネージドＮＡＮＤサイドに取り入れられる）と規定することができる。このことは、ユーザ経験を向上させる。さらに、ハードウェア／ソフトウェアの下位層でデータの移動が生じるので、上位層のソフトウェア（例えば、ファイル・システムおよび／またはアプリケーション）に対して変更を加える必要はない。さらに、マネージドＮＡＮＤ機能用のシステムＤＲＡＭ１４の割り当てられた部分１４Ｇを過度に大きくする必要はない。例えば、多くの興味のある用途のために、数百キロバイトが十分であると思われる。なぜなら、多くの場合、単に小さなランダム・アクセスを一時的にキャッシュしたり、より大きな順次アクセスを不揮発性大容量メモリ２６に直接格納したりする上で最も有利であるからである。さらに、本発明のさらなる態様を用いることで、ＣＰＵ１２の活発な関与なしで、特定の基本的メモリ動作（例えば、フィル、移動）が局所的に遂行されるのを可能にする（例えば、システムＤＲＡＭモジュール１４内で）。
【００７６】
図６は、図６で単にメモリ・カード２０として呼ばれる大容量記憶メモリ装置２０とともに使用されるホスト装置１０の１つの非限定的な実施形態を示す。大容量記憶メモリ装置２０は取外し可能、またはデバイス１０に組み込むことができる。この例示的実施形態では、ホスト装置１０はユーザ機器（ＵＥ）として組み込まれており、平面図（左）および断面図（右）の両方で示される。図６では、ホスト装置（ＵＥ）１０は、グラフィック表示インタフェース１２０と、キーボードとして示されているがグラフィック表示インタフェース１２０でのタッチ・スクリーン技術およびマイクロホン１２４で受け取られる音声認識技術も包含するものとして理解されるユーザ・インタフェース１２２とを、有する。パワー・アクチュエータ１２６は、ユーザによってオン・オフされる装置を制御する。典型的なＵＥ１０は、前向きなものとして示されているが、あるいは、またはそれに加えて、後ろ向き（例えば、よびローカル・ストレージ用の画像およびビデオの撮像）であってもよいカメラ１２８（例えば、ビデオ通話用）を有するものであってもよい。カメラ１２８は、シャッタ・アクチュエータ３０により制御され、必要に応じて、カメラ１２８がアクティブモードでないときにスピーカ（複数のスピーカ）３４の音量調整としても機能することができるズーム・アクチュエータ３２により、制御される。
【００７７】
例として、カメラ１２８によって撮像されたイメージ・データを、カメラ・アプリケーションの管理下で、大容量記憶メモリ装置２０に格納することができるので、本発明の実施例の使用から利益を得ることができる。別の例として、マイクロホン１２４によって取り込まれたオーディオ情報を、オーディオ・アプリケーションの管理下で、大容量記憶メモリ装置２０に格納することができるので、同様に、本発明の実施例の使用から利益を得ることができる。
【００７８】
移動体通信に通常用いられる多数の送信／受信アンテナ３６を図６の断面図に示す。アンテナ３６は、ＵＥ内の他の無線機で使用するためにマルチバンドであってもよい。アンテナ３６の操作可能な接地面は、ＵＥハウジングで囲まれた空間全体に及ぶものとして網掛けで示されているが、いくつかの実施形態では、接地面は、例えばパワー・チップ３８が形成されるプリント配線基板上に配置されるように、小さな領域に限定されるものであってもよい。パワー・チップ３８は、送信されるチャンネル上および／またはアンテナを横切る電力増幅を制御するもので、アンテナは空間的多様性が使用される場合に同時に送信し、受信信号を増幅する。パワー・チップ３８は、増幅された受信信号を無線周波数（ＲＦ）チップ４０に出力する。この無線周波数（ＲＦ）チップ４０は、ベースバンド処理のために、この信号を復調かつダウンコンバートする。ベースバンド（ＢＢ）チップ４２は、その後、ビット・ストリームに変換され、最後に復号化される信号を検知する。ホスト装置１０で生じ、かつそこから送信された信号に対して、同様の処理が逆方向で行われる。
【００７９】
カメラ１２８を行き来する信号は、様々なイメージ・フレームを符号化および復号化する画像／ビデオ処理部４４を通過することができる。個別の音声処理部４６もまた存在し、スピーカ３４およびマイクロホン１２４を行き来する信号を制御する。グラフィック表示インタフェース１２０は、ユーザ・インタフェース・チップ５０によって制御されるようなフレーム・メモリ４８からリフレッシュされ、このユーザ・インタフェース・チップ５０は、ディスプレイ・インタフェース２０を行き来する信号を処理し、さらに／またはキーパッド２２および別の場所からのユーザ入力をさらに処理することが可能である。
【００８０】
ＵＥ１０の特定の実施形態もまた、１つ以上の第２の無線機、例えば無線ローカル・エリア・ネットワークＷＬＡＮ３７およびブルートゥース（Ｂｌｕｅｔｏｏｔｈ（登録商標））７無線３９を有し、該無線機はチップ上のアンテナを取り入れてもよく、あるいはチップから外されたアンテナに連結してもよい。装置の全体にわたって、ランダム・アクセス・メモリＲＡＭのような様々なメモリがあり、該メモリとして、システムＤＲＡＭ１４、読出し専用メモリＲＯＭ４５が挙げられ、さらにいくつかの実施形態では、種々のプログラムおよびデータが格納可能である図示したメモリ・カード２０等のリムーバブル・メモリを挙げることができる。ＵＥ１０内のこれらの構成要素全ての電源は通常、バッテリー４９等の携帯用電源から供給される。
【００８１】
プロセッサ３８、４０、４２、４４、４６、５０は、別個の存在としてＵＥ１０に組み込まれた場合、主動作処理装置（ＣＰＵ）１２とのスレーブ関係で動作してもよく、その後、それらに対してマスタ関係にあってもよい。特定の実施形態は、示されるように種々のチップおよびメモリを横切るようにして配置されてもよく、または、図６に関して上述されたいくつかの機能を組み合わせる別の実施形態に配置されてもよい。図６のこれらの種々のプロセッサのいずれかまたは全ては、様々なメモリの１つ以上にアクセスする。これらのメモリはプロセッサとともにチップ上にあってもよく、またはプロセッサを有するチップとは離れていてもよい。留意すべき点は、上述した種々の集積回路（例えば、チップ３８、４０、４２等）を、記述した数よりも少なく組み合わせたり、もっともコンパクトな場合では、全てを物理的に１つのチップに組み込まれるようにしてもよいことである。
【００８２】
この例示的実施形態では、ＵＥ１０（ホスト装置）のＣＰＵ１２は、図５Ａ、５Ｂ、および５Ｃを参照しながら説明されたようにメモリ・カード２０（大容量記憶メモリ装置）を用いて動作するので、メモリ・カード２０が拡張されて上述のようにＵＥ１０のシステム・ダイナミックＲＡＭ１４の少なくとも一部分が用いられる。
【００８３】
本発明の例示的実施形態の一態様は、図７に示すように、方法であり、該方法は、（７Ａ）ホスト装置に連結した不揮発性大容量メモリに関連するコントローラ（例えば、メモリ・コントローラ）で、イニシエータから生じるコマンド（該コマンドは、例えば、ファイル・システム層（ＳＷ）およびドライバ層（ＳＷ）およびホスト・コントローラ（ＨＷ）を介して到着し得る）を受信すること、を含む。コマンドは、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドである。ホスト装置のメモリとして、非限定的な例として、ＤＲＡＭ、ＭＲＡＭ、ＰＣＭ（相変化メモリ）、ＲＲＡＭ（抵抗ランダム・アクセス・メモリ）、磁気ランダム・アクセス・メモリ、強誘電体ランダム・アクセス・メモリ、およびその他のものが挙げられる。上記方法は、さらに、（７Ｂ）ホスト装置のメモリに現在常駐するデータを、少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、を含む。上記方法は、さらに、（７Ｃ）不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答すること、を含む。
【００８４】
図７および先行する段落で説明された方法は、肯定応答に続いて、ホスト装置のメモリから不揮発性大容量メモリへデータを移動させること、をさらに含む。
【００８５】
図７および先行する段落で説明された方法では、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを物理的に移動させる。
【００８６】
図７および先行する段落で説明された方法では、データへのメモリ・アドレス・ポインタ値またはデータのヘッダ値の変更によって、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを論理的に移動させる。
【００８７】
図７および先行する段落で説明された方法では、データはイニシエータによって生じ、そして該イニシエータがホスト装置に常駐する。
【００８８】
図７および先行する段落で説明された方法では、イニシエータは、アプリケーション・プログラム、ファイル・システム、ドライバ、およびオペレーティング・システム・ユーティリティの少なくとも１つを含む。
【００８９】
図７および先行する段落で説明された方法では、データは、イニシエータによって生じ、そして該イニシエータがホスト装置の外側にある。
【００９０】
図７および先行する段落で説明された方法では、イニシエータは、ホスト装置に接続された周辺機器として具現化される。
【００９１】
図７および先行する段落で説明された方法では、ホスト装置のメモリは、ダイナミック・ランダム・アクセス・メモリを含み、さらに、ホスト装置のメモリ中の基本メモリ動作を自律的に行うことを含む。
【００９２】
図７および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
【００９３】
図７および先行する段落で説明された方法では、基本メモリ動作は、第１の複数の指定されたメモリ・ロケーションからのデータを第２の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
【００９４】
図７および先行する段落で説明された方法では、データ移動動作は所定値に第１の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
【００９５】
図７および先行する段落で説明された方法は、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分にデータが常駐する一方で、不揮発性大容量メモリによる使用に割り当てられたメモリの部分に常駐するデータを読み込むためにデータの書込みコマンドに応答すること、および読出しコマンドのイニシエータに読出しデータをコピーすることを、さらに含む。
【００９６】
図７および先行する段落で説明された方法では、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させることが、不揮発性大容量メモリに関連したコントローラによって開始される。
【００９７】
図７および先行する段落で説明された方法では、該方法はコントローラによってコンピュータ・プログラム命令の実行の結果として行なわれる。
【００９８】
図８は、さらに本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。これらの例示的実施形態に基づいて、方法は、ブロック８Ａで、少なくとも１つのデータ処理装置とダイナミック・ランダム・アクセス・メモリから構成される少なくとも１つのメモリとを有するデータ処理システムを提供することを、行う。ブロック８Ｂでは、メモリ中の基本メモリ動作を自主的に行なうステップがある。
【００９９】
図８および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
【０１００】
図８および先行する段落で説明された方法では、基本メモリ動作は、第１の複数の指定されたメモリ・ロケーションからのデータを、第２の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
【０１０１】
図８および先行する段落で説明された方法では、データ移動動作は所定値に第１の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
【０１０２】
図７および８に示す種々のブロックを、方法のステップとして、および／またはコンピュータ・プログラム・コードの動作の結果である動作として、および／または関連する機能を実行するように構成された複数の連結論理回路素子として、見ることが可能である。
【０１０３】
一般に、種々の例示的実施形態を、ハードウェアまたは専用の回路、ソフトウェア、論理、もしくはそれらの組み合わせとして、実装してもよい。例えば、一部の態様をハードウェアに実装し、一方、他の態様をコントローラ、マイクロプロセッサ、または他のコンピューティング・デバイスによって実行され得るファームウェアまたはソフトウェアとして実装してもよいが、本発明はそれらに限定されるものではない。本発明の例示的実施形態の種々の態様がブロック図、フローチャートとして、またはいくつかの他の図的表現を用いて、例証かつ説明可能である一方で、本明細書中で説明したこれらのブロック、装置、システム、技術、または方法を、非限定的例として、ハードウェア、ソフトウェア、ファームウェア、特殊目的回路またはロジック、汎用ハードウェアまたはコントローラ、または他のコンピューティング・デバイス、あるいはそれらの組み合わせに実装してもよいことが、十分に理解されよう。
【０１０４】
したがって、本発明の例示的実施形態の少なくとも一部の態様は、集積回路チップおよびモジュール等の種々の構成要素で実行されてもよく、この発明の例示的実施形態が集積回路として具現化される装置で実現されてもよいことが認識されるべきである。本発明の例示的実施形態に基づいて動作するように構成可能である集積回路または複数の集積回路は、少なくとも１つ以上のデータ・プロセッサまたは複数のデータ・プロセッサ、デジタル信号プロセッサまたは複数のデジタル信号プロセッサ、ベースバンド回路、および無線周波数回路を組み込むための回路（おそらくはファームウェアも）を含むものであってもよい。
【０１０５】
例示的実施形態に基づく装置は、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドであるコマンドを、ホスト装置から該ホスト装置に連結した不揮発性大容量メモリに関連したコントローラへ送るための手段と、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させる手段と、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをホスト装置に肯定応答する手段、を含む。
【０１０６】
添付の図面と併せて読む時に前述の説明に関して、本発明の前述の例示的実施形態への様々な修正および改造が、関連技術分野の当業者には明らかになるであろう。しかしながら、任意のおよびすべての修正は、依然として本発明の非限定的な例示的実施形態の範囲内に収まるものである。
【０１０７】
留意すべき点は、用語「接続（ｃｏｎｎｅｃｔｅｄ）」、「連結（ｃｏｕｐｌｅｄ）」、またはそれらの任意の変形は、２つ以上の要素間の直接または間接的な任意の接続または連結を意味するものであり、さらに「接続（ｃｏｎｎｅｃｔｅｄ）」または「連結（ｃｏｕｐｌｅｄ）」された２つの要素間に１つ以上の中間要素が存在することも包含することが可能である。要素間の連結または接続は、物理的、論理的、またはそれらの組み合わせとすることができる。本明細書中で使用されるように、２つの要素は、いくつかの非限定的および非網羅的な例として、１本以上のワイヤ、ケーブル、および／または印刷電気接続の使用によって、無線周波数領域、マイクロウェーブ涼気、および光学（可視または不可視の両方の）領域内の波長を有する電磁エネルギー等の電磁エネルギーの使用によって、「接続（ｃｏｎｎｅｃｔｅｄ）」または「連結（ｃｏｕｐｌｅｄ）」すると考えてもよい。
【０１０８】
さらに、本発明の種々の非限定的かつ例示的な実施形態の特徴のいくつかは、他の特徴の対応する使用がなくとも有利に使用することができる。このように、上述の説明は、本発明の原理、教示、および例示的実施形態の単なる例示として考えられるべきであり、それらを限定するものとしては考えるべきではない。
【図１Ａ】
2018022497.tif 000003
【図１Ｂ】
2018022497.tif 000004
【図２】
2018022497.tif 000005
【図３】
2018022497.tif 000006
【図４】
2018022497.tif 000007
【図５Ａ】
2018022497.tif 000008
【図５Ｂ】
2018022497.tif 000009
【図５Ｃ】
2018022497.tif 000010
【図６】
2018022497.tif 000011
【図７】
2018022497.tif 000012
【図８】
2018022497.tif 000013
【手続補正書】
【提出日】平成29年8月10日(2017.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ・モジュールであって、
コントロール・モジュールと、
前記コントロール・モジュールによって読み書き可能なメモリと、
前記メモリ・モジュールをホスト装置のメモリ・コントローラに接続するためのインタフェースと、
を有し、
前記コントロール・モジュールは、
前記メモリに格納されたデータに関連するコマンドを前記ホスト装置のメモリ・コントローラから受信し、
前記コマンドに少なくとも部分的に基づいて、前記メモリ・モジュール内の１つ又は複数の基本メモリ動作であってデータ移動動作およびデータ・フィル動作を含む基本メモリ動作を実行するように構成される、メモリ・モジュール。
【請求項２】
前記コントロール・モジュールは、前記コマンドの受信後に前記メモリ・モジュール内の前記１つ又は複数の基本メモリ動作を自律的に実行するようにさらに構成される、請求項１に記載のメモリ・モジュール。
【請求項３】
前記データ・フィル動作は、所定値に前記メモリ内の指定された複数のメモリ・ロケーションを設定することを含む、請求項１に記載のメモリ・モジュール。
【請求項４】
前記コントロール・モジュールは、前記所定値に前記メモリ内の指定された複数のメモリ・ロケーションを設定するためのフィル・パターンを決定するようにさらに構成され、前記フィル・パターンは、前記メモリ・モジュールに格納された所定のフィル・パターンの１つ、又は前記ホスト装置のメモリ・コントローラからの前記コマンドに含まれる受信したフィル・パターンである、請求項３に記載のメモリ・モジュール。
【請求項５】
前記データ移動動作は、前記メモリ内の第１の指定された複数のメモリ・ロケーションから第２の指定された複数のメモリ・ロケーションに前記データをコピーすることを含む、請求項１に記載のメモリ・モジュール。
【請求項６】
前記データ移動動作は、前記メモリ・モジュールに格納された所定値又は前記コマンドに含まれる１つ又は複数の値のうちの少なくとも１つに前記メモリ内の前記第１の指定された複数のメモリ・ロケーションを設定することをさらに含む、請求項５に記載のメモリ・モジュール。
【請求項７】
前記メモリ・モジュールは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）モジュール又は大容量メモリ・モジュールのうちの１つであることを特徴とする請求項１に記載のメモリ・モジュール。
【請求項８】
ホスト装置のメモリ・コントローラからメモリに記憶されたデータに関連するコマンドを受信するステップと、
前記コマンドの少なくとも一部分に基づいて、前記メモリに関連付けられたメモリ・モジュール内の１つ又は複数の基本メモリ動作であってデータ移動動作およびデータ・フィル動作を含む基本メモリ動作を実行するステップと、
を含む方法。
【請求項９】
前記コマンドの受信後に前記メモリ・モジュール内の前記１つ又は複数の基本メモリ動作を自律的に実行するステップ、をさらに含む、請求項８に記載の方法。
【請求項１０】
前記データ・フィル動作は、所定値に前記メモリ内の指定された複数のメモリ・ロケーションを設定することを含む、請求項８に記載の方法。
【請求項１１】
前記所定値に前記メモリ内の前記指定された複数のメモリ・ロケーションを設定するためのフィル・パターンを決定することをさらに含み、前記フィル・パターンは前記メモリ・モジュールに格納された所定のフィル・パターン、又は前記ホスト装置の前記メモリ・コントローラからの前記コマンドに含まれる受信されたフィル・パターンである、請求項１０に記載の方法。
【請求項１２】
前記データ移動動作は、前記メモリ内の第１の指定された複数のメモリ・ロケーションから第２の指定された複数のメモリ・ロケーションに前記データをコピーすることを含む、請求項８に記載の方法。
【請求項１３】
前記データ移動動作は、所定値に前記メモリ内の前記第１の指定された複数のメモリ・ロケーションを設定することをさらに含む、請求項１２に記載の方法。
【請求項１４】
メモリ・コントローラと、
前記メモリ・コントローラをメモリ・モジュールに接続するためのインタフェースと、
を有し、
前記メモリ・コントローラは、
前記メモリ・モジュールのメモリに記憶されたデータに関連するコマンドであって、前記メモリ・モジュールに前記メモリ・モジュール内の１つ又は複数の基本メモリ動作であってデータ移動動作および構成可能なデータ・フィル動作を含む基本メモリ動作を実行させるコマンドを前記メモリ・モジュールに送信するように構成され、
前記メモリ・コントローラは、大容量メモリ・モジュール又は大容量メモリ・ホスト・コントローラのうちの１つによって制御される、ホスト装置。
【請求項１５】
前記大容量メモリ・ホスト・コントローラをさらに有し、前記コマンドは、前記大容量メモリ・ホスト・コントローラによって起動され、前記インタフェースを介して前記メモリ・コントローラによって前記メモリ・モジュールに送信される、請求項１４に記載のホスト装置。
【請求項１６】
前記１つ又は複数の基本メモリ動作は、前記構成可能なデータ・フィル動作を含み、前記構成可能なデータ・フィル動作は、所定値に前記メモリ内の指定された複数のメモリ・ロケーションを設定することを含む、請求項１４に記載のホスト装置。
【請求項１７】
前記メモリ・コントローラは、前記所定値に前記メモリ内の前記指定された複数のメモリ・ロケーションを設定するために、前記メモリ・モジュールにフィル・パターンを送信するようにさらに構成される、請求項１６に記載のホスト装置。
【請求項１８】
前記１つ又は複数の基本メモリ動作は、前記データ移動動作を含み、前記データ移動動作は、前記メモリ内の第1の指定された複数のメモリ・ロケーションから第２の指定された複数のメモリ・ロケーションに前記データをコピーすることを含む、請求項１４に記載のホスト装置。
【請求項１９】
前記データ移動動作は、所定値に前記メモリ内の前記第１の指定された複数のメモリ・ロケーションを設定することをさらに含む、請求項１８に記載のホスト装置。
【請求項２０】
前記メモリ・モジュールは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）モジュールである、請求項１４に記載のホスト装置。
【請求項２１】
ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）メモリ・モジュールであって、
コントロール・モジュールと、
前記コントロール・モジュールによって読み書き可能なメモリと、
前記ＤＲＡＭメモリ・モジュールをホスト装置のメモリ・コントローラに接続するためのインタフェースと、
を有し、
前記コントロール・モジュールは、
前記メモリ内の複数のメモリ・ロケーションに関連する１つ又は複数のコマンドを前記ホスト装置の前記メモリ・コントローラから受信し、
所定値に前記メモリ内の前記複数のメモリ・ロケーションを設定するフィル・パターンであって、前記ＤＲＡＭメモリ・モジュールに格納された所定のフィル・パターン又は前記ホスト装置の前記メモリ・コントローラからの前記１つ又は複数のコマンドに含まれる受信されたフィル・パターンであるフィル・パターンを決定し、
前記１つ又は複数のコマンド少なくとも一部分に基づいて、前記所定値に前記メモリ内の前記複数のメモリ・ロケーションを設定することを含むデータ・フィル動作を実行するように構成される、ＤＲＡＭメモリ・モジュール。
【請求項２２】
前記所定値は、単一のゼロビット、単一の１ビット、２ビットの第１パターン、４ビットの第２パターン、又は複数ビットの第３パターンのうちの少なくとも１つである、請求項２１に記載のＤＲＡＭメモリ・モジュール。