(58)【調査した分野】(Int.Cl.,DB名)
前記データの前記書き込みをすることは、少なくとも、前記メモリ・モジュールによる読み取りおよび書き込みのために割り当てられる、前記ホスト装置の前記メモリの前記第2の場所への前記データの移動を含む、請求項1に記載の方法。
前記メモリ・コントローラが、前記データを前記不揮発性大容量メモリに書き込むための前記コマンドが実行されたという前記肯定応答の前記提供に続いて、前記データの前記メモリ・モジュールへの書き込みを開始するようにさらに構成される、請求項18に記載のメモリ・モジュール。
【発明を実施するための形態】
【0015】
本発明の例示的実施形態に関する以下の説明にとって興味深いのは、本発明の譲受人に譲渡された米国特許出願第12/455,763号(出願日2009年6月4日)『ホスト・システムRAMを大容量メモリRAMと共有するための装置および方法(Apparatus and Method to Share Host System RAM with Mass Storage Memory RAM)』オリイ・ルウカイネン(Olli Luukkainen)、キモ・マイリ(Kimmo Mylly)、およびジャニ・ハイホネン(Jani Hyvonen) (US2010/0312947 A1)であり、この文献を本明細書中に援用する。本発明の例示的実施形態について詳細に説明する前に、本発明の譲受人に譲渡された米国特許出願第12/455,763号の記載の少なくとも一部を再検討することが有用であろう。
【0016】
上述のように、現在、ほとんどの大容量記憶メモリはLBAベースのアクセスを提供するもので、例えばeMMCや異なるタイプの外部メモリ・カード(SD等)である。しかし、それはまた、ファイル・システム(FS)SW全体が大容量記憶メモリ・デバイスに組み込まれている場合もある。
【0017】
大容量記憶メモリが移動無線通信装置等、高容量のコンジューマ・デバイスで用いられる場合、1つの重要な検討事項はコストであり、またこのコストに影響を与えるものが大容量記憶メモリ・デバイスそれ自体のRAMの量である。
【0018】
別の重要な検討事項は、性能である。総合的な性能は、多くの要因に依存する。例えば、長い(時間のかかる)動作(具体的には、大容量記憶メモリ・デバイスがファイル・システムSW全体を含んでいる場合)、相当な量のRAMを大容量記憶メモリ・デバイスに持たせることに利点があるだろう。しかし、このことはコスト面でマイナスの影響を与えることになり得る。
【0019】
システム・コンテクスト(メタデータ)を大容量記憶メモリ・デバイスのフラッシュ・メモリに格納する場合も考えられる。しかし、このアプローチには、いくつかの関連する欠点がある。例えば、システム・コンテクスト(メタデータ)を大容量記憶メモリ・デバイスに対して繰り返し書き込むことは、大容量記憶メモリ・デバイスの使用寿命に影響を与え得る疲労の問題を引き起こす。さらに、フラッシュ・メモリにデータを書くことは比較的遅いプロセスになり得る。
【0020】
別の重要な検討事項は電力効率である。良好なパワー効率を提供するために、必要とされない場合に大容量メモリは、好ましくはシャットダウン(電源オフ)される(このデバイスの内部RAMも好ましくは同様にシャットダウンすることも意味している)。しかし、そしてRAMが本来揮発性であると仮定すると、RAMに格納されていたデータが何であれ、RAMから電力が取り除かれた場合にこのデータは消失する。次いで、電源投入後の再初期化を実行するために、必要なすべての情報(例えば、論理物理間マッピング情報および/またはファイル・システム構造)が復元される必要がある。LBA大容量記憶メモリの完全な再初期化は、実質的な(かつユーザが気付くことが可能な)時間(例えば、SDカードで最大1秒)が必要であり、ファイル・システム全体の初期化(ファイル・システムが大容量メモリにある場合)がさらに長くかかると思われる。したがって、電源切断/電源投入のサイクルに係る内部デバイス・コンテキストを保持することが望ましい。
【0021】
図2は、マスストレージメモリ・バス(MSMB)18を介して大容量メモリ20に接続されたホスト・システムまたはデバイス10の簡略ブロック図である。MSMB18は、MMCなどの任意の適当な大容量メモリ・インターフェース規格(例えば、非限定的な2つの例として、MMCまたはUFS)と互換性があってもよい。MSMB18は、eMMCの実施形態に関する
図1Aに示すような信号線を有してもよい。ホスト装置10は、格納されたプログラム命令に従って動作するCPU12として、少なくとも1つのコントローラを有する。プログラム命令は、RAM14または別のメモリもしくは複数の別のメモリに格納されてもよい。CPU12には、少なくとも1つの内部バス17を介して、RAM14およびMSMBインタフェース(I/F)16が接続されている。MSMBインタフェース16は、メモリ・コントローラ(MC)を有してもよく、またはCPU12に関連付けられたMCユニットと連結されてもよい。ホスト装置10は、いくつかの非限定的な例として、コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、またはPDAであってもよい。留意すべき点は、RAM14が半導体メモリまたはディスク・ベースのメモリ等の任意の読出し/書込みメモリまたはメモリ・デバイスであってもよいことである。
【0022】
大容量メモリ20は、マイクロコントローラ、または簡単に言えばコントローラ22を有し、該コントローラ22が少なくとも一つの内部バス27を介して揮発性RAM24、不揮発性大容量メモリ26(例えば、マルチギガバイトのフラッシュ・メモリ型大容量記憶装置)、およびMSMBインタフェース(I/F)28に接続される。コントローラ22は、格納されたプログラム命令に従って動作する。プログラム命令は、RAM24もしくはROM、または大容量メモリ26に格納されてもよい。大容量メモリ20は、非限定的な例として、MMC、eMMC、またはSDデバイスとして具現化され、ホスト装置10の外側の(接続された)もの、またはホスト装置10内に設置されたものであってもよい。留意すべき点は、いくつかの実施形態において、大容量メモリ26がファイル・システム(FS)26Aを格納する場合もある点である。この場合、次いで、RAM24は、ビットマップ、ファイル・アロケーション・テーブル・データ、および(または)他のFSに関連付けられた情報から構成される1つ以上のデータ構造のような、FS関連メタデータ24Aを格納してもよい。
【0023】
本発明の譲受人に譲渡された米国特許出願第12/455,763号の実施形態は、ホスト装置10のRAM14を大容量記憶メモリ・デバイス20と共有する技術を提供している。ホスト装置10(例えば、モバイル・コンピュータ、携帯電話、デジタル・カメラ、ゲーム機、PDA、その他)がRAM14を割り当ておよび割当解除を行う能力を有すると仮定することができる。RAM14の割り当ては動的に行われてもよく、または静的に行われてもよい。RAMの一部の割り当ては、ホスト装置10またはホスト装置10の主導で受け取られた要求に応じて行われてもよい。
【0024】
本発明の譲受人に譲渡された米国特許出願第12/455,763号の実施形態では、大容量記憶メモリ20が自己のRAM24空間を拡張する必要がある場合および/または大容量記憶メモリ20が不揮発性RAM(その内容が大容量記憶メモリ20の電源切断の際に消失しない)を必要とする場合に、大容量メモリ20(MSMB18を介してホストCPU12に結合)にRAM14が割り当てられる。大容量記憶メモリ20もまた、ホスト装置10内の割り当てられたRAM14を読み出し/書き込み(R/W)することができる。割り当て/割当解除およびR/Wアクセス方法を、適当な大容量メモリ・プロトコルを介して大容量記憶メモリ20との通信に利用されるコマンド・セットを拡張することで、実装することができる。
【0025】
本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された発明の特定の実施形態によれば、大容量記憶メモリ・デバイス20には、RAM14内での空間の割り当てを開始させるためのホスト装置10に対するメッセージを中断/送信する機構が設けられている。割込み/メッセージは、MSMB18上で送られ、現在の命令セットに対する拡張として見なされてもよい。
図3を参照すると、割当てメモリ・コマンドが動作3−1の過程で送られる。割当て要求が続いて起こる場合(動作3−2中に示される)、コントローラ22はホスト装置10のRAM14により自己のRAM24を拡張することが可能になる。大容量記憶メモリ・デバイス20は、例えば、RAMの書込み(WRITE)コマンドを用いて大きなテーブルをRAM14に格納してもよく、または、RAMの読み出し(READ)コマンドを用いてホスト装置RAM14からのデータをフェッチしてもよい。読出しまたは書込み動作は、インタリーブされた動作3−3、3−4、3−5、3−6、3−(N−1)、3Nとして示される。大容量記憶メモリ・デバイス20がRAM14による動作を完了した場合、ホスト10のRAMメモリが割当解除になることを要求する別のコマンドを用いて、ホスト装置のRAM14を解放してもよい(動作3−(N+1))。
【0026】
図4は、本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された、さらなる例示的実施形態を示すもので、この実施形態では
図2に示すFS26A等の内蔵ファイル・システムを持つ大容量メモリ26のためにホスト・システムのRAM14を使用する。第一に、ホスト・システム10は遮断(SHUTDOWN)コマンドを大容量記憶メモリ・デバイス20に送る(動作4−1)。次に、大容量記憶メモリ・デバイス20がホスト10からのRAM14を割り当て、その後に重要な「静的」ファイル・システム関連データ(メタデータ24A)の全てをホストRAM14(動作4−2)にロードする(RAM書込みコマンドを使用して格納する)。このコンテキスト中の「静的」データは、例えば、exFATまたはext3ファイル・システム内の割当てビットマップのような様々なビットマップであってもよい。このデータは、ホスト装置のCPU12(コントローラ)によって処理(例えば、ソート、配置、およびフィルタリングの少なくとも1つがなされた)ものであってもよく、ならびに大容量メモリ26の多くのセクタからのデータを含むものであってもよい。その後、大容量記憶メモリ・デバイス20は電源遮断OKの命令を送ってもよい(動作4−3)。ホスト10は、大容量記憶メモリ・デバイス20から電力を取り除くことができ、この大容量記憶メモリ・デバイス20がMSMB18から物理的に取り除かれてもよい。大容量記憶メモリ・デバイス20の再初期化(動作4−4、4−5、4−6)は、ホスト装置10が大容量記憶メモリ・デバイス20から、または大容量記憶メモリ・デバイス20へ、特定のデータを得ること/入力することが必要である場合に、実行される。大容量記憶メモリ26(およびファイル・システム26A)の再初期化を、RAM14からソート/配置/フィルタリングされた読出しデータを用いることによって、促進してもよい。再初期化の動作が完了した場合、大容量記憶メモリ・デバイス20はホスト装置10内の使用済みRAM14を割当解除してもよく、またはRAM14を割当解除しなくてもよく、それによって大容量記憶メモリ・デバイス20により将来使用されるRAM空間が確保される。
【0027】
ホストRAM14の割り当てがいくつかの実施形態で異なった形で生じてもよい。例えば、ホスト装置10は動的にRAM14を割り当て、この割り当てられたRAMに対する「ポインタ」を大容量記憶メモリ・デバイス20へ渡してもよい。次に、割り当てられたホストRAM14をどのように利用するかは、大容量記憶メモリ・デバイス20のコントローラ22次第である。留意すべき点は、この実施形態において、大容量記憶メモリ・デバイス20からの明示的な割り当て要求がホスト装置10へ送信されなくてもよいことである。その代わりに、ホスト装置10は、それ自身のイニシアチブにより、例えばそれが最初に大容量記憶メモリ・デバイス20の存在を検出した際に、RAM14の一部を割り当ててもよい。もちろん、初期の割当てがコントローラ22の要求に十分ではない場合、大容量記憶メモリ・デバイス20とホスト装置10との間のシグナリングを用いて、割当てRAM14の大きさを変えてもよい。RAM14割当ての別の例として、RAM14の一部を静的な方法でホスト10により割り当ててもよく、その後、大容量記憶メモリ・デバイス20を該RAM14の同一部分を、RAM24の拡張を必要とするたびにそのまま用いてもよい。この場合、大容量記憶メモリ・デバイス20は、既に、割り当てRAM14の位置/大きさについての知識を持っていてもよく、ポインタをホスト装置10から送信する必要はない。
【0028】
留意すべき点は、大容量記憶メモリ・デバイス20がホスト・メモリの割当てを受信して揮発性RAM24の内容を格納することが典型的であり得る一方で、一般に、この割り当ては大容量記憶メモリ・デバイス20内に含まれる任意の読出し/書込みメモリのデータを格納するためのものであってもよいことである。
【0029】
本発明の譲受人に譲渡された米国特許出願第12/455,763号に記載された発明の種々の非限定的かつ例示的実施形態の概観を提供することで、本発明の例示的実施形態が作られる。
【0030】
マネージドNANDメモリ(例えばeMMC、SSD、UFS、マイクロSD)では、メモリ・コントローラ(例えば、
図2に示されるコントローラ22)は、不良ブロック管理およびウェア・レベリングのようなフラッシュ管理機能を管理する。典型的な低価格の実装では、マネージドNANDに小さな入出力(10)バッファSRAMがあるだけである。SSD等の高額なマネージドNANDのコントローラに実装する場合、数十ないし数百メガバイトのディスクリートDRAMがキャッシュとして存在してもよい。今後、MRAM等、いくつかの新しい技術が非常に高速な不揮発性キャッシュとして役立つと考えられる。
【0031】
現代のマルチタスク・モバイル装置の環境では、同時に大容量ストレージに対して、キューされる数多くの異なるイニシエータからの様々な種類のアクセスが存在してもよい。eMMCの場合では、eMMCデバイスが一度に単一のスレッドのみを扱うことができるため、待機アクセスは1つずつ対応されると思われる。UFSの場合では、UFSデバイス・キューにアクセス/コマンドを送ることが可能である。しかし、コマンドをキューに入れることができるにもかかわらず、必ずしも、キューイングされたアクセスに関連したデータの全てを直ちに収容するためのUFSデバイス(特にコスト最適化モデルにおいて)に十分なリソースがあるとは限らない。
【0032】
上記の、本発明の譲受人に譲渡された米国特許出願第12/455,763号は、大容量記憶メモリ20がシステムDRAM 14への読出し/書込みアクセスを備えるモデルを提供する。この概念は、本発明の例示的実施形態によって拡張され、論理的(ポインタの使用により)または物理的に、大容量記憶メモリ20がシステムDRAM内にデータを移動することを可能にする。実際の移動がDRAM14内に生じたり、またはデータがシステムDRAMバス17(例えば、システムDRAM14と大容量メモリ・ホスト・コントローラ13DMAバッファとの間)上を往復移動する可能性がある。
図5に示され、かつ以下に詳細に説明される大容量メモリ・ホスト・コントローラ13は、この点に関して、DMAマスタとして機能すると考えられるので、この目的上それ自身の関連DMAデータ・バッファを有することができる。
【0033】
前述の特徴を、いくつかの実施形態の使用を介して実現することができる。
【0034】
第1の実施形態では、システムDRAM14内の個別の物理アドレス空間が大容量記憶メモリ20用に確保され、または、システムDRAM14が論理アドレス空間で動作する場合、論理空間が確保される。大容量記憶メモリ(例えば、UFS大容量記憶メモリ20)は、このアドレス空間を自由に利用することができ、割当て/割当解除機能および他の機能等のアドレス空間の管理機能を担う。
【0035】
図2を参照して説明されるこれらの構成要素がそれに応じて番号付けされている
図5を参照することができる。
図5A、5B、および5Cでは、大容量メモリ・モジュール20(非限定的実施形態においてUFSメモリ・モジュールとして説明)によって使用されるために、システムDRAM14の一部分14Gが割り当てられている。ホスト装置10は、CPU12として具現化され得るアプリケーション・プロセッサを有する。このアプリケーション・プロセッサ12とともに含まれるか、またはそれに連結されているものが、DRAMコントローラ11であってもよい。さらに存在するものが上記の大容量メモリ・モジュール(例えばUFS)ホスト・コントローラ13である。ホスト・コントローラ13は、CPU12として具現化し得、または個別のデバイスとして具現化し得る。
図5Bは、システムDRAM14がオペレーティング・システム(OS)14Aと複数のアプリケーション・プログラム(アプリケーション)14Bとを格納することを示す。複数のアプリケーション14Bの少なくとも1つがデータ14B’を生成する。システムDRAM14は、概ね、ファイル・システム(OS14Aの一部)に関連したファイル・システム・キャッシュ14Cも格納する。
図5Bの実施形態では、システムDRAM14の一部がトランスファ・バッファ14Dとして割り当てられ、このトランスファ・バッファ14Dにアプリケーション・データ14B’が移動してトランスファ・バッファ・データ14Eになり得る。システムDRAM14の別の部分は、アクセス・リスト14Fを格納するために割り当てられる。UFSメモリ・モジュール20に割り当てられたDRAM部分14Gも含まれ、この部分にトランスファ・データ・バッファ14Eが移動してデータ14E’になり得る。ここで、
図5A、5B、および5Cに示すこれらの構成要素の動作を、より詳細に説明する。
【0036】
アプリケーション14B等のデータ・ソース、またはファイル・システム・キャッシュ、またはファイル・キャッシュ実体(非限定的な例として)は、大容量メモリ・モジュール20に格納されるデータ14B’を有する。このデータ14B’は、大容量メモリ・モジュール20へのその後の配信のためのシステム・ドライバによって、トランスファ・データ14Eとして、トランスファ・バッファ14Dに移動される。必要に応じて、
図5Cに示すとともに以下でさらに詳細に説明されるように、データ14B’は、その本来の位置から直接移動される場合があり、それによってトランスファ・バッファ14Dが迂回される。アクセス・リスト14Fは、システムDRAM14において、OSユーティリティ等によりアプリケーション14B向けに作られ、データ14Eの位置を指し示す。この点に関して留意すべき点は、「アプリケーション」(ここで従来の感覚でサード・パーティ・アプリケーションとして理解する場合)は、それ自身ではいかなるアクセス・リストも作ることができないということである。アクセス・リストは、フィルム・システム層から入ってくるアクセスに基づいて、いくつかのOSサーバ・メモリ・サブシステム(例えば、あるドライバ層またはあるOSユーティリティ)によって、概ね作られる。実際には、アクセス・リストが構築されるか、またはアプリケーション用に構築される。イニシエータは、非限定的な例として、アプリケーション、ファイル・システム、ドライバ、またはOSユーティリティであってもよい。
【0037】
本発明の態様によれば、大容量メモリ(UFS)に割り当てられた部分14Gへデータ14Eを移動させて、以下に述べるようにデータ14E’にすることができる。
【0038】
アクセスは、以下のように、ホスト装置10によって行ってもよい(ホスト装置10が既に現在、大容量記憶メモリ20を初期化していると仮定)。
【0039】
(1)イニシエータ(例えば、CPU12によって実行されているシステムDRAM14に常駐するアプリケーション・プログラム14B)は、それ自身のために(例えば、OSユーティリティによって)、システムDRAM14内のUFSメモリ・モジュール20に対するアクセス・テーブル(アクセス・リスト14F)を構築している。この例では、これらのアクセスの実行がある期間にわたってUFSメモリ・モジュール20のリソースを消費するであろうと仮定する。
【0040】
(2)イニシエータ(例えば、アプリケーション・プログラム14BまたはOSユーティリティ)がアクセス・テーブル(アクセス・リスト14F)の存在をUFSホスト・コントローラ13に通知することで、ホスト・コントローラ13はコマンドおよび関連データをUFSメモリ・モジュール20に送り始める。
【0041】
(3)同一または別のイニシエータ(例えば、同一または異なるアプリケーション・プログラム14B)は、それ自身のために、システムDRAM14内のUFSメモリ・モジュール20に対する別の書込みアクセス・テーブル(別のアクセス・リスト14F)を構築し、UFSホスト・コントローラ13はアクセス・テーブルの存在を通知される。
(4)UFSホスト・コントローラ13は、この(書込み)コマンド・セットをUFSメモリ・モジュール20に転送する。UFSメモリ・モジュール20に局在的に書き込まれたコマンドに関連するデータを処理することができないとUFSメモリ・モジュール20が判断すると、仮定する。この点に関して、留意すべき点は、例えば、書込みコマンド(複数の書込みコマンド)の実行の緊急性を強調するために、コマンドに関連するイニシエータによるキュー指示のヘッドがあり、UFSメモリ・モジュール20は、現在のところ、指示された緊急レベルを満たすことができないと判断する場合があるということである。
【0042】
(5)書込みコマンドに関連するデータを受信する代わりに、UFSメモリ・モジュール20はデータを、例えばトランスファ・バッファ14D(または14B/14C)からシステムDRAM14の予約された個別の物理アドレス空間(割り当てられた部分14G)へ、移動する。移動動作およびシステムDRAM14の割り当てられた部分14Gは、UFSホスト・コントローラ13を介して、UFSメモリ・モジュール20によって制御される。UFSホスト・コントローラ13はシステムDRAM14またはシステムDRAMコントローラ11を制御することで、データ14Eの、例えばトランスファ・バッファ14Dから割り当てられた部分14Gへのデータ14E’としての移動を実行する。UFSホスト・コントローラ13は、例えば、DMAマスタ(専用UFS DMAまたはシステムDMAのいずれかのDMAマスタ)として直接動作する手段によってこの動作を行うことができると仮定することができ、ホストCPU12を迂回することができる。
【0043】
(6) 割り当てられた部分14Gへのデータ14Eの物理的移動が生じた後、あたかも不揮発性メモリ(NVM)(すなわち、大容量メモリ26)へ実際にデータを移動させたかのように、UFSメモリ・モジュール20は本来の(書込み)コマンドに応答することができる。その結果、たとえ書込みデータがシステムDRAM 14の割り当てられた部分14Gの中にデータ14E’として現在常駐していようとも、第2のイニシエータは、大容量メモリ20への書込みコマンドが実行されたと見なすことができるとともに、処理動作を継続することができる。
【0044】
(7)ある将来時刻では、UFSメモリ・モジュール20は、第2のイニシエータからの書込みコマンドを処理するために、十分なリソースを有している。この時、それは、それぞれ独立してシステムDRAM14(システムDRAM14の割り当てられた部分14G)からのデータをフェッチし、NVM大容量メモリ26にそれを格納する。OS14Aのファイル・システム層またはイニシエータの観点から、この動作には透明性があり、あたかも物理的なDRAM/SRAMキャッシュがUFSメモリ・モジュール20内にあるように見える。すなわち、システムDRAM14の外部の割り当てられた部分14Gは、UFSメモリ・モジュール20の仮想DRAM/SRAMキャッシュと類似したやり方で機能することができる。
【0045】
留意すべき点は、UFSメモリ・モジュール20が受信アクセス・コマンドを連続して処理する必要はないことである。例えば、より高い指示された優先度がある別の書込みコマンドが、書込みデータも割り当てられた部分14Gに保存されている第3のイニシエータから到着する場合、第2のイニシエータからの書込みコマンドを処理する前に、UFSメモリ・モジュール20は、第3のイニシエータからの書込みコマンドを処理し、次に、第2のイニシエータからの書込みコマンドを処理することもあり得る。
【0046】
別の実施形態では、大容量メモリ・モジュール20のシステムDRAM14に確保された特定の個別の記憶アドレスを必要としない。代わりに、大容量メモリ・モジュール20はシステムDRAM14に任意の(またはほぼ任意の)位置にアクセスできる。この場合、システムDRAM14にデータを物理的に移動させる代わりに、大容量メモリ・モジュール20は、ホストCPU12によって作製されたメモリ・ポインタのリストを制御することができる。ポインタのリスト(ホスト用のポインタ・リスト1つと大容量メモリ・モジュール20用の別のリスト)を修正することで、大容量メモリ・モジュール20は、ホストCPU制御論理メモリ空間から大容量メモリ・モジュール20によって制御された空間に、事実上、データを「移動」させることができる。留意すべき点は、この場合、トランスファ・バッファ14Dは依然として存在するか、または存在してもよいが、大容量メモリ・モジュール20に割り当てられた物理的部分14Gに対する必要性はないことである。
【0047】
あるいは、大容量メモリ・モジュール20は、ホストCPU12によって作製されたヘッダ情報を用いることができる。ヘッダ情報は、ホストの有効/無効、確保済み、および大容量メモリの有効/無効割当てに、個別のビットを用いることができるとともに、システムDRAM14に格納することができる。この場合、ヘッダ情報(例えば、割り当てられた/フリーのもの)を修正することによって、大容量メモリ・モジュール20は、CPU12によって制御されたアドレスから大容量メモリ・モジュール20によって制御されたアドレスへ、データを「移動」させることもあり得る。
【0048】
これらの動作のいずれか、または両方は、ホスト・コントローラ13によって媒介することができる。
【0049】
不揮発性モジュール14Gのために確保されたシステムDRAM14の一領域にデータが依然として位置するアドレスへのアプリケーションからの読出しコマンドが存在し得る。すなわち、以前に保存されたデータは、不揮発性メモリ・モジュール20によって不揮発性メモリ26にまだ移動されていない。そのような場合、メモリ・コントローラ22はこの読出しコマンドを検知することになり。そして(読出しコマンドを供給する前に不揮発性メモリ26へ忠実にデータを移動させて格納する代わりに)、ファイル・キャッシュ/ファイル・システム・キャッシュ14C/トランスファ・バッファ14Dまたはアプリケーション領域14Bにおいてメモリ領域14Gからのデータを該データ用に確保された位置へコピー(移動ではない)することになる。確保された位置の宛先アドレスは、ホスト・コンピュータ13によって少なくとも知られるように、アクセス・リスト14Fに含まれる場合もある。
【0050】
ポインタおよびヘッダのリストの修正に相応して関係する他の実施形態において、上述の読み出しは、新しい宛先位置へのデータ(読み出しリクエストに関係する)をコピーし、コピーされたデータが直ちにアクセス可能になり、かつホスト・システム10の管理下に置かれるように、メモリ・モジュール/ホスト・コントローラによってポインタ/ヘッダを調整することとして、実現され得る。
【0051】
これらの読出し関連の実施形態のすべてにおいて、認識すべきことは、読出しデータがコピーされるとともに、データ14E’が依然として存在し、メモリ・コントローラ22が書込み動作を行なうためにリソースを持つとすぐに、メモリ・モジュール20の不揮発性メモリ26に書き込まれるということである。
【0052】
図5Cは、この発明の一実施形態を示すもので、上記したように、アクセス・リスト14Fはデータ14B’を参照し、この参照されたデータが次に直接、割り当てられた部分に移動(データ14E’)し、それによってトランスファ・バッファ14Dを迂回する(すなわち、直接移動した後にデータ14B’はデータ14Eになる)。
【0053】
ホストCPU 12以外(例えばアプリケーション・プロセッサ以外)の供給源からデータが生じることも例示的実施形態の範囲内である。例えば、データは、有線接続または無線接続のいずれかによってホスト装置10に接続される周辺機器60として具現化されるイニシエータから生じる場合もある。この場合、周辺機器60から大容量メモリ・モジュール20にデータを直接移動させる代わりに、大容量メモリ・モジュール20は、システムDRAM14(例えば、割り当てられた部分14G)に格納されるデータを生じる。周辺機器60で生じるデータは、このようにシステムDRAM14に一時的に(かつ周辺機器60に対してトランスパレントに)キャッシュに入れられる。
【0054】
さらに、本発明の例示的実施形態に基づいて、DRAM14の動作は、機能性を追加することで強化され、動作が局所的にDRAM14内で実行される。
【0055】
前置きとして、無線端末(例えば、スマートフォン)の処理能力のボトルネックの一つは、実行メモリ、特にメモリ・バスである。また、ワークメモリとしても知られている実行メモリは、別個の構成要素(例えば、外部DRAM)である一方で、限られた伝送容量(帯域幅)を有するバスによりホスト・バスASICに接続されている。
【0056】
メモリ帯域幅を改善する手段は、制限されている。ほとんどの場合、一部のメモリ・バスおよびメモリ装置のコストはそれぞれが高額すぎる。さらに、バス自体は、ホストASICのピン/パッド予算の大部分を占めており、このことが意味することは、所定のパッド・ピッチでホストASICシリコンを含むパッケージが多数のバスによって不必要に大型化し、小型化への取り組みに対して問題を生じていることである。
【0057】
共通する問題としては、所望される多くの使用において、メモリ帯域幅(すなわちトランザクション・キャパシティ)が不十分であるということである。ホストASICは、いくつかのメモリ・マスタ(例えばプロセッサ、アクセラレータ、およびDMAエンジン)、ならびに外部記憶バスを提供する1つのDRAMコントローラ11を含むことができる。このバスの他端に、メモリ装置(DRAM構成要素)がある。メモリ・マスタは、読み出しおよび書き込みのリクエストをメモリに対して出す。DRAMは、並行して動作するいくつかのバンク(通常4〜8)から構成されている。したがって、並列がメモリ・バスの両端で存在している間、メモリ・バス自体はシングル・スレッドの配置である。
【0058】
本発明の例示的態様は、内部動作が局所的に行われることを可能にすることにより、メモリ装置を完全に利用する手段を提供することを含む。これは全面的なメモリ・サブシステムの性能を改善し、CPUからのいくつかの動作をオフ・ロードすることによりCPUキャパシティを高め、電力消費を減少させる。本発明の例示的態様では、改善されたコマンド・セットの使用を介したメモリ装置により実行されるいくつかの基本動作が提供される。
【0059】
留意すべき点は、本発明の例示的実施形態のこれらの態様がシステムDRAM14の動作を向上させるという文脈で記述される一方で、本発明のこれらの態様が大容量記憶メモリ装置20の動作を向上させることにも適用し得ることである。例えば、大容量メモリ26内の局所的な自律的動作を提供するようにメモリ・モジュール20の常駐するメモリ・コントローラ22を変更することが可能である。
【0060】
さらに、本発明の例示的実施形態に基づいて、メモリ・フィルおよびメモリ移動のようないくつかの基礎的で基本的な機能は、システムDRAM14に対して内部的に処理される。これらの動作は、例えば、システムDRAMメモリ・コントローラならびに/あるいはシステムDRAM14に具現化されたコントロール・モジュールまたは機能15によって、処理される(
図5Aに示す)。
【0061】
この実施形態では、システムDRAM14は、システムDRAMメモリ・コントローラ11の支援下または支援無しで、例えば、CPU12による積極的な介入/制御なしに独立的かつ自律的に、メモリ・フィルを実行するとともに機能(複数の機能)を移動させる。このことは、少なくとも、バッファ14B/14Dから割り当てられた部分14Gへの物理データの移動を制御する大容量メモリ・モジュール/大容量メモリ・ホスト・コントローラ13に起因する、CPU12およびシステムDRAMバス17の荷重を減少させる。
【0062】
明らかなことは、多くのメモリ・トランザクションがデータ(例えば、ゼロ)によるメモリアドレス空間の単純な充填、あるいは1つの記憶場所から別の記憶場所へデータ・チャンクを移動させることであり、該位置を同一メモリ装置内部または2つの異なるメモリ装置内部とすることができる。これは従来、CPUレベルでの活動を必要とし、このことはシステム処理効率および消費電力が最適未満であることを意味している。
【0063】
本発明のこれらのさらなる態様に基づいて、少なくともいくつかの基本的なインメモリ動作がCPU12の責任から外され、システムDRAM14により具現化し得るコントローラ15等のシステムDRAM14に転送される。
【0064】
この例示的実施形態では、コントローラ15の機能には「スマート・メモリ」機能が含まれる。あるいは、これらのスマート・メモリ機能を、
図5Aに示されるホスト・コントローラ13に持たせることができる。あるいは、また上述したように、これらのスマート・メモリ機能もまた、ホスト装置10のシステムDRAM14のためのシステムDRAMメモリ・コントローラ11機能に包含させることが可能である。
【0065】
これらの実施形態において、システムDRAMコントローラ11またはシステムDRAMモジュール(制御15)は、そのために出されたコマンドを分析し、メモリ・フィルまたはメモリ移動動作等の「スマート・メモリ」動作を開始してもよい。
【0066】
例えばコントローラ15に加えられた付加的な機能には、少なくともデータ・フィル機能およびデータ移動機能が含まれてもよい。必要に応じて、付加的機能には、システムDRAM14のセキュリティー機能、システムDRAM14とメモリ26との間のパック/アンパック機能、さらに、例えば、大容量メモリ関連エラー検出および補正やウェア・レベリング機能が含まれる。
【0067】
スマート・メモリ機能使用の一例として、メモリ・ブロック・リセットが通常、そのメモリにゼロを書き込むことによって行われる。本発明によれば、「データ・フィル」機能は、任意の特定ビット・パターンを用いた少なくとも1つのフィル(Fill)動作を支持するもので、データ(Data)を任意の特定ビット・パターン、例えば“0000”、“1111”、“0101”等とすることが可能である。
【0068】
データ移動動作は、データが移動された(読み出された)システムDRAM14の領域に対するフィル(Fill)動作が後に続く読出し/書込み(コピー)シーケンスになり得る。フィル動作は、メモリ位置をある所定値(例えば、ゼロ)に設定したり、または上記で議論されたフィル動作と類似したやり方でデータ移動動作コマンドにより指定された値に設定することが可能である。データ移動(Data Move)動作がデータ・コピー(Data Copy)動作として機能することができる(すなわち、オリジナル・データが不変である一方で、そのデータが別の場所に複製される)ように、フィル動作は任意のものであってもよい。
【0069】
コマンド・レベルでスマート・メモリ機能を実装する非限定的な例は、以下のとおりである。
【0070】
JEDEC規格の低消費電力ダブル・データ・レート(Low Power Double Data Rate)(LPDDR1(LP1))(例えば、『JEDEC規格、低消費電力ダブル・データ・レート(LPDDR)、SDRAM標準、JESD209B』(JEDEC Standard, Low Power Double Data Rate (LPDDR)SDRAM Standard, JESD209B)、2010年2月を参照)は、これらのタイプのスマート機能を付加する簡単で明瞭な方法を提供していない。例示的な実装は、以下の情報をメモリ装置に送るためにアドレス・ピンA0−Axを用いる、複数の従来のモード・レジスタ・セット(Mode Register Set)(MRS)コマンド(バンクアドレスBA0=BA1=“1”のMRSを利用可能)の配列を用いることであってもよい。
1) コマンドの種類(移動(move)、フィル(fill));
2) フィル・データ(全(all)0,全(all)1,01シーケンス(sequence)、...)、オプション;
3) 宛先アドレス(フィル、移動)および送信元アドレス(移動)、アドレスは実装に依存;
4) 動作サイズ(細分性は実装に依存)。
【0071】
シーケンスの必要MRSコマンド数は、アドレッシング、データ細分性、および動作サイズに依存するもので、これらは実装依存因子である。LPDDR2およびLPDDR3において、モード・レジスタ書込み(Mode Resister Write)コマンドを同様に用いることが可能である。理解すべきことは、従来のLPDDRxソリューションがDRAMアイドル状態のみからのMRSおよびMRW動作を許容するが、他のソリューションも技術的に可能であるということである。そのような1つの実装は、移動またはフィル動作の送信元または宛先であるデータがオープンDRAM頁に位置するよう必要とすることかもしれない。
【0072】
理解すべきことは、将来のDRAMインタフェースによって、これらの動作に新たな専用コマンドが使用され、これらの動作がより一層効率的になり得るということである。基本的に、システムの観点から、次の動作のうちのいくつかあるいはすべてはメモリに配信されてもよい:
1) コマンド(フィル(fill)0、フィル(fill)1、...、フィル_パターン(fill_pattern)、移動(move)を配信;
2) 宛先アドレス(バンク(bank)、ロー(row)、カラム(column)、バイト(byte))を配信;
3) 送信元アドレス(バンク(bank)、ロー(row)、カラム(column)、バイト(byte))を配信;
4) 動作サイズを配信。
【0073】
完全なコマンドおよびアドレス配信は、単一または複数のコマンド・シーケンスで生じてもよく、特定のコマンド・コードは、例えば、実装に合うように、cmd/アドレス/データ・バスを介して、マルチサイクル配信を示すものであってもよい。特定の実装は、データおよびアドレス細分性の要件、スマート・メモリ機能動作の前後後のメモリ状態の要件(メモリがデータを移動またはフィルするためにいくつかの中間バッファを内部で用いるかどうか、あるいはオープン・ロー(DRAMセンス・アンプ)が動作全体中、確保されているかどうか)、任意のタイミング要件、その他を要求する。
【0074】
コマンドは、例えば、CPU12(例えば、OSまたはファイル・システム・ユーティリティ)または大容量メモリ・ホスト・コントローラ13によって送出された後、システムDRAM14に関連したコントローラ15またはDRAMメモリ・コントローラ11によって自律的に実行され得る。
【0075】
本発明の例示的実施形態によって実現され得るいくつかの利点および技術的効果は、上述のとおりである。例えば、イニシエータ(ホストCPU12、プロセス、イニシエータ、アプリケーション)に対するより速いレスポンスは、アクセスがなされた(実際に、さらなる処理のためにマネージドNANDサイドに取り入れられる)と規定することができる。このことは、ユーザ経験を向上させる。さらに、ハードウェア/ソフトウェアの下位層でデータの移動が生じるので、上位層のソフトウェア(例えば、ファイル・システムおよび/またはアプリケーション)に対して変更を加える必要はない。さらに、マネージドNAND機能用のシステムDRAM14の割り当てられた部分14Gを過度に大きくする必要はない。例えば、多くの興味のある用途のために、数百キロバイトが十分であると思われる。なぜなら、多くの場合、単に小さなランダム・アクセスを一時的にキャッシュしたり、より大きな順次アクセスを不揮発性大容量メモリ26に直接格納したりする上で最も有利であるからである。さらに、本発明のさらなる態様を用いることで、CPU12の活発な関与なしで、特定の基本的メモリ動作(例えば、フィル、移動)が局所的に遂行されるのを可能にする(例えば、システムDRAMモジュール14内で)。
【0076】
図6は、
図6で単にメモリ・カード20として呼ばれる大容量記憶メモリ装置20とともに使用されるホスト装置10の1つの非限定的な実施形態を示す。大容量記憶メモリ装置20は取外し可能、またはデバイス10に組み込むことができる。この例示的実施形態では、ホスト装置10はユーザ機器(UE)として組み込まれており、平面図(左)および断面図(右)の両方で示される。
図6では、ホスト装置(UE)10は、グラフィック表示インタフェース120と、キーボードとして示されているがグラフィック表示インタフェース120でのタッチ・スクリーン技術およびマイクロホン124で受け取られる音声認識技術も包含するものとして理解されるユーザ・インタフェース122とを、有する。パワー・アクチュエータ126は、ユーザによってオン・オフされる装置を制御する。典型的なUE10は、前向きなものとして示されているが、あるいは、またはそれに加えて、後ろ向き(例えば、よびローカル・ストレージ用の画像およびビデオの撮像)であってもよいカメラ128(例えば、ビデオ通話用)を有するものであってもよい。カメラ128は、シャッタ・アクチュエータ30により制御され、必要に応じて、カメラ128がアクティブモードでないときにスピーカ(複数のスピーカ)34の音量調整としても機能することができるズーム・アクチュエータ32により、制御される。
【0077】
例として、カメラ128によって撮像されたイメージ・データを、カメラ・アプリケーションの管理下で、大容量記憶メモリ装置20に格納することができるので、本発明の実施例の使用から利益を得ることができる。別の例として、マイクロホン124によって取り込まれたオーディオ情報を、オーディオ・アプリケーションの管理下で、大容量記憶メモリ装置20に格納することができるので、同様に、本発明の実施例の使用から利益を得ることができる。
【0078】
移動体通信に通常用いられる多数の送信/受信アンテナ36を
図6の断面図に示す。アンテナ36は、UE内の他の無線機で使用するためにマルチバンドであってもよい。アンテナ36の操作可能な接地面は、UEハウジングで囲まれた空間全体に及ぶものとして網掛けで示されているが、いくつかの実施形態では、接地面は、例えばパワー・チップ38が形成されるプリント配線基板上に配置されるように、小さな領域に限定されるものであってもよい。パワー・チップ38は、送信されるチャンネル上および/またはアンテナを横切る電力増幅を制御するもので、アンテナは空間的多様性が使用される場合に同時に送信し、受信信号を増幅する。パワー・チップ38は、増幅された受信信号を無線周波数(RF)チップ40に出力する。この無線周波数(RF)チップ40は、ベースバンド処理のために、この信号を復調かつダウンコンバートする。ベースバンド(BB)チップ42は、その後、ビット・ストリームに変換され、最後に復号化される信号を検知する。ホスト装置10で生じ、かつそこから送信された信号に対して、同様の処理が逆方向で行われる。
【0079】
カメラ128を行き来する信号は、様々なイメージ・フレームを符号化および復号化する画像/ビデオ処理部44を通過することができる。個別の音声処理部46もまた存在し、スピーカ34およびマイクロホン124を行き来する信号を制御する。グラフィック表示インタフェース120は、ユーザ・インタフェース・チップ50によって制御されるようなフレーム・メモリ48からリフレッシュされ、このユーザ・インタフェース・チップ50は、ディスプレイ・インタフェース20を行き来する信号を処理し、さらに/またはキーパッド22および別の場所からのユーザ入力をさらに処理することが可能である。
【0080】
UE10の特定の実施形態もまた、1つ以上の第2の無線機、例えば無線ローカル・エリア・ネットワークWLAN37およびブルートゥース(Bluetooth(登録商標))7無線39を有し、該無線機はチップ上のアンテナを取り入れてもよく、あるいはチップから外されたアンテナに連結してもよい。装置の全体にわたって、ランダム・アクセス・メモリRAMのような様々なメモリがあり、該メモリとして、システムDRAM14、読出し専用メモリROM45が挙げられ、さらにいくつかの実施形態では、種々のプログラムおよびデータが格納可能である図示したメモリ・カード20等のリムーバブル・メモリを挙げることができる。UE10内のこれらの構成要素全ての電源は通常、バッテリー49等の携帯用電源から供給される。
【0081】
プロセッサ38、40、42、44、46、50は、別個の存在としてUE10に組み込まれた場合、主動作処理装置(CPU)12とのスレーブ関係で動作してもよく、その後、それらに対してマスタ関係にあってもよい。特定の実施形態は、示されるように種々のチップおよびメモリを横切るようにして配置されてもよく、または、
図6に関して上述されたいくつかの機能を組み合わせる別の実施形態に配置されてもよい。
図6のこれらの種々のプロセッサのいずれかまたは全ては、様々なメモリの1つ以上にアクセスする。これらのメモリはプロセッサとともにチップ上にあってもよく、またはプロセッサを有するチップとは離れていてもよい。留意すべき点は、上述した種々の集積回路(例えば、チップ38、40、42等)を、記述した数よりも少なく組み合わせたり、もっともコンパクトな場合では、全てを物理的に1つのチップに組み込まれるようにしてもよいことである。
【0082】
この例示的実施形態では、UE10(ホスト装置)のCPU12は、
図5A、5B、および5Cを参照しながら説明されたようにメモリ・カード20(大容量記憶メモリ装置)を用いて動作するので、メモリ・カード20が拡張されて上述のようにUE10のシステム・ダイナミックRAM14の少なくとも一部分が用いられる。
【0083】
本発明の例示的実施形態の一態様は、
図7に示すように、方法であり、該方法は、(7A)ホスト装置に連結した不揮発性大容量メモリに関連するコントローラ(例えば、メモリ・コントローラ)で、イニシエータから生じるコマンド(該コマンドは、例えば、ファイル・システム層(SW)およびドライバ層(SW)およびホスト・コントローラ(HW)を介して到着し得る)を受信すること、を含む。コマンドは、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドである。ホスト装置のメモリとして、非限定的な例として、DRAM、MRAM、PCM(相変化メモリ)、RRAM(抵抗ランダム・アクセス・メモリ)、磁気ランダム・アクセス・メモリ、強誘電体ランダム・アクセス・メモリ、およびその他のものが挙げられる。上記方法は、さらに、(7B)ホスト装置のメモリに現在常駐するデータを、少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させること、を含む。上記方法は、さらに、(7C)不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをイニシエータに肯定応答すること、を含む。
【0084】
図7および先行する段落で説明された方法は、肯定応答に続いて、ホスト装置のメモリから不揮発性大容量メモリへデータを移動させること、をさらに含む。
【0085】
図7および先行する段落で説明された方法では、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを物理的に移動させる。
【0086】
図7および先行する段落で説明された方法では、データへのメモリ・アドレス・ポインタ値またはデータのヘッダ値の変更によって、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分に対して、データを論理的に移動させる。
【0087】
図7および先行する段落で説明された方法では、データはイニシエータによって生じ、そして該イニシエータがホスト装置に常駐する。
【0088】
図7および先行する段落で説明された方法では、イニシエータは、アプリケーション・プログラム、ファイル・システム、ドライバ、およびオペレーティング・システム・ユーティリティの少なくとも1つを含む。
【0089】
図7および先行する段落で説明された方法では、データは、イニシエータによって生じ、そして該イニシエータがホスト装置の外側にある。
【0090】
図7および先行する段落で説明された方法では、イニシエータは、ホスト装置に接続された周辺機器として具現化される。
【0091】
図7および先行する段落で説明された方法では、ホスト装置のメモリは、ダイナミック・ランダム・アクセス・メモリを含み、さらに、ホスト装置のメモリ中の基本メモリ動作を自律的に行うことを含む。
【0092】
図7および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
【0093】
図7および先行する段落で説明された方法では、基本メモリ動作は、第1の複数の指定されたメモリ・ロケーションからのデータを第2の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
【0094】
図7および先行する段落で説明された方法では、データ移動動作は所定値に第1の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
【0095】
図7および先行する段落で説明された方法は、少なくとも不揮発性大容量メモリによる使用に割り当てられたメモリの部分にデータが常駐する一方で、不揮発性大容量メモリによる使用に割り当てられたメモリの部分に常駐するデータを読み込むためにデータの書込みコマンドに応答すること、および読出しコマンドのイニシエータに読出しデータをコピーすることを、さらに含む。
【0096】
図7および先行する段落で説明された方法では、ホスト装置のメモリに現在常駐するデータを少なくとも不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させることが、不揮発性大容量メモリに関連したコントローラによって開始される。
【0097】
図7および先行する段落で説明された方法では、該方法はコントローラによってコンピュータ・プログラム命令の実行の結果として行なわれる。
【0098】
図8は、さらに本発明の例示的実施形態に基づいて、方法の動作と、コンピュータ可読メモリ上に具現化されたコンピュータ・プログラム命令の実行の結果とを説明する論理フロー図である。これらの例示的実施形態に基づいて、方法は、ブロック8Aで、少なくとも1つのデータ処理装置とダイナミック・ランダム・アクセス・メモリから構成される少なくとも1つのメモリとを有するデータ処理システムを提供することを、行う。ブロック8Bでは、メモリ中の基本メモリ動作を自主的に行なうステップがある。
【0099】
図8および先行する段落で説明された方法では、基本メモリ動作は、所定値に複数の指定されたメモリ・ロケーションを設定するためのデータ・フィル動作である。
【0100】
図8および先行する段落で説明された方法では、基本メモリ動作は、第1の複数の指定されたメモリ・ロケーションからのデータを、第2の複数の指定されたメモリ・ロケーションに移動させるデータ移動動作である。
【0101】
図8および先行する段落で説明された方法では、データ移動動作は所定値に第1の複数の指定されたメモリ・ロケーションを設定することをさらに含む。
【0102】
図7および8に示す種々のブロックを、方法のステップとして、および/またはコンピュータ・プログラム・コードの動作の結果である動作として、および/または関連する機能を実行するように構成された複数の連結論理回路素子として、見ることが可能である。
【0103】
一般に、種々の例示的実施形態を、ハードウェアまたは専用の回路、ソフトウェア、論理、もしくはそれらの組み合わせとして、実装してもよい。例えば、一部の態様をハードウェアに実装し、一方、他の態様をコントローラ、マイクロプロセッサ、または他のコンピューティング・デバイスによって実行され得るファームウェアまたはソフトウェアとして実装してもよいが、本発明はそれらに限定されるものではない。本発明の例示的実施形態の種々の態様がブロック図、フローチャートとして、またはいくつかの他の図的表現を用いて、例証かつ説明可能である一方で、本明細書中で説明したこれらのブロック、装置、システム、技術、または方法を、非限定的例として、ハードウェア、ソフトウェア、ファームウェア、特殊目的回路またはロジック、汎用ハードウェアまたはコントローラ、または他のコンピューティング・デバイス、あるいはそれらの組み合わせに実装してもよいことが、十分に理解されよう。
【0104】
したがって、本発明の例示的実施形態の少なくとも一部の態様は、集積回路チップおよびモジュール等の種々の構成要素で実行されてもよく、この発明の例示的実施形態が集積回路として具現化される装置で実現されてもよいことが認識されるべきである。本発明の例示的実施形態に基づいて動作するように構成可能である集積回路または複数の集積回路は、少なくとも1つ以上のデータ・プロセッサまたは複数のデータ・プロセッサ、デジタル信号プロセッサまたは複数のデジタル信号プロセッサ、ベースバンド回路、および無線周波数回路を組み込むための回路(おそらくはファームウェアも)を含むものであってもよい。
【0105】
例示的実施形態に基づく装置は、ホスト装置のメモリにおいて現在常駐するデータを不揮発性大容量メモリへ書き込むコマンドであるコマンドを、ホスト装置から該ホスト装置に連結した不揮発性大容量メモリに関連したコントローラへ送るための手段と、ホスト装置のメモリに現在常駐するデータを不揮発性大容量メモリによる使用に割り付けられたメモリの一部へ元の位置から移動させる手段と、不揮発性大容量メモリに対してデータを書き込むコマンドが実行されたことをホスト装置に肯定応答する手段、を含む。
【0106】
添付の図面と併せて読む時に前述の説明に関して、本発明の前述の例示的実施形態への様々な修正および改造が、関連技術分野の当業者には明らかになるであろう。しかしながら、任意のおよびすべての修正は、依然として本発明の非限定的な例示的実施形態の範囲内に収まるものである。
【0107】
留意すべき点は、用語「接続(connected)」、「連結(coupled)」、またはそれらの任意の変形は、2つ以上の要素間の直接または間接的な任意の接続または連結を意味するものであり、さらに「接続(connected)」または「連結(coupled)」された2つの要素間に1つ以上の中間要素が存在することも包含することが可能である。要素間の連結または接続は、物理的、論理的、またはそれらの組み合わせとすることができる。本明細書中で使用されるように、2つの要素は、いくつかの非限定的および非網羅的な例として、1本以上のワイヤ、ケーブル、および/または印刷電気接続の使用によって、無線周波数領域、マイクロウェーブ涼気、および光学(可視または不可視の両方の)領域内の波長を有する電磁エネルギー等の電磁エネルギーの使用によって、「接続(connected)」または「連結(coupled)」すると考えてもよい。
【0108】
さらに、本発明の種々の非限定的かつ例示的な実施形態の特徴のいくつかは、他の特徴の対応する使用がなくとも有利に使用することができる。このように、上述の説明は、本発明の原理、教示、および例示的実施形態の単なる例示として考えられるべきであり、それらを限定するものとしては考えるべきではない。