(57)【要約】【課題】メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体を提供する。【解決手段】本発明の実施形態によるコンピューティングシステムは、ストレージコンポーネントとコントローラコンポーネントとを含む。ストレージコンポーネントは、ブロック指向（ｏｒｉｅｎｔｅｄ）の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含む。コントローラコンポーネントは、ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成される。スマートメモリドライバーは、揮発性メモリ内のＰＭ部分、ＨＷＣ部分、及びＢＷ部分の中の少なくとも１つを含む揮発性メモリを動的に管理するように構成される。【選択図】図１
2017130194.tif 000002
【特許請求の範囲】
【請求項１】
ブロック指向（ｏｒｉｅｎｔｅｄ）の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含むストレージコンポーネント（ｃｏｍｐｏｎｅｎｔ）と、
前記ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成されたコントローラコンポーネントと、を含み、
前記スマートメモリドライバーは、前記揮発性メモリ装置内のＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）部分、ＨＷＣ（Ｈａｒｄｗａｒｅ  Ｃａｃｈｅ）部分、及びＢＷ（Ｂｌｏｃｋ  Ｗｉｎｄｏｗ）部分の中の少なくとも１つを含む前記揮発性メモリ装置を動的に管理するように構成されることを特徴とするコンピューティングシステム。
【請求項２】
前記ストレージコンポーネントは、ＭＤＢ（Ｍｅｍｏｒｙ  Ｄａｔａ  Ｂｕｆｆｅｒ）をさらに含み、
前記ＭＤＢは、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントに連結され、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントの間のデータ交換を管理するように構成されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項３】
前記ストレージコンポーネントは、管理回路をさらに含み、
前記管理回路は、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントに連結され、前記コントローラコンポーネントにしたがって前記揮発性メモリ装置及び前記不揮発性メモリ装置を制御するように構成されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項４】
前記コントローラコンポーネントは、前記揮発性メモリ装置に格納されたデータに対する制御を前記コントローラコンポーネント又は前記ストレージコンポーネントに提供するためにバンク（ｂａｎｋ）所有（ｏｗｎｅｒｓｈｉｐ）レジスターを設定するように構成されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項５】
前記コントローラコンポーネントは、メモリ構成プロフィールを決定するように構成され、
前記メモリ構成プロフィールは、前記揮発性メモリ装置に対する前記ＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）部分、前記ＨＷＣ（Ｈａｒｄｗａｒｅ  Ｃａｃｈｅ）部分、及び前記ＢＷ（Ｂｌｏｃｋ  Ｗｉｎｄｏｗ）部分の中の少なくとも１つを構成するための部分の位置と部分の大きさの中の少なくとも１つを含み、
前記ストレージコンポーネントは、前記揮発性メモリ装置を含み、
前記揮発性メモリ装置は、対応する前記部分の位置と前記部分の大きさの中の少なくとも１つにしたがって構成される前記ＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）部分、前記ＨＷＣ（Ｈａｒｄｗａｒｅ  Ｃａｃｈｅ）部分、及び前記ＢＷ（Ｂｌｏｃｋ  Ｗｉｎｄｏｗ）部分の中の少なくとも１つを含むことを特徴とする請求項１に記載のコンピューティングシステム。
【請求項６】
前記コントローラコンポーネントは、ソフトウェアにより具現された前記スマートメモリドライバーを含み、
前記ストレージコンポーネントは、ＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）であり、
前記ＮＶＤＩＭＭは、
前記揮発性メモリ装置に連結され、データパス（ｐａｔｈ）を通じて前記コントローラコンポーネントに連結され、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントの間のデータ交換を管理するように構成されるＭＤＢ（Ｍｅｍｏｒｙ  Ｄａｔａ  Ｂｕｆｆｅｒ）と、
ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）として具現され、前記不揮発性メモリ装置、前記ＭＤＢ、及び前記コントローラコンポーネントに連結され、前記コントローラコンポーネントにしたがって前記揮発性メモリ装置と前記不揮発性メモリ装置を制御するように構成される管理回路と、
ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として具現された前記揮発性メモリ装置を含むことを特徴とする請求項１に記載のコンピューティングシステム。
【請求項７】
前記揮発性メモリ装置は、ＢＷ部分を含み、
前記ＢＷ部分は、前記不揮発性メモリ装置へのアクセスを前記コントローラコンポーネントに提供するように動的に構成されることを特徴とする請求項６に記載のコンピューティングシステム。
【請求項８】
前記ＭＤＢは、前記ストレージコンポーネントに対する前記データパスのすべてのインスタンス（ｉｎｓｔａｎｃｅ）に連結されることを特徴とする請求項６に記載のコンピューティングシステム。
【請求項９】
前記ストレージコンポーネントは、マルチプレクサー（ｍｕｌｔｉｐｌｅｘｅｒ）無しに前記揮発性メモリ装置へアクセスを提供するように前記ＭＤＢ及び前記管理回路の中の少なくとも１つを使用するように構成されることを特徴とする請求項６に記載のコンピューティングシステム。
【請求項１０】
前記ＰＭ部分は、プロセスが終了された後に前記ＰＭ部分に格納されたデータへのアクセスを持続的に提供するためにＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）モードを具現するように構成され、
前記ＨＷＣ部分は、前記不揮発性メモリ装置を支援するために前記管理回路によって有するように構成され、
前記ＢＷ部分は、インターフェイスを前記不揮発性メモリ装置に提供するように構成されることを特徴とする請求項６に記載のコンピューティングシステム。
【請求項１１】
ユーザー特性及びアプリケーション特性の中の少なくとも１つを示すメモリ要求事項を決定する段階と、
前記メモリ要求事項にしたがって揮発性メモリ装置内のＰＭ部分、ＨＷＣ部分、及びＢＷ部分をバランシング（ｂａｌａｎｃｉｎｇ）することに基づいて前記揮発性メモリ装置を構成する段階と、を含み、
前記揮発性メモリ装置は、ＰＭモード及びブロックモードの中の少なくとも１つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とするコンピューティングシステムの動作方法。
【請求項１２】
スマートメモリドライバーを利用して前記メモリ要求事項に基づいてメモリ構成プロフィールを生成する段階をさらに含み、
前記メモリ構成プロフィールは、前記ＰＭ部分、前記ＨＷＣ部分、及び前記ＢＷ部分に対応する部分の位置及び部分の大きさの中の少なくとも１つを含み、
前記揮発性メモリ装置を構成する段階は、対応する前記部分の位置及び前記部分の大きさの中の少なくとも１つにしたがって前記揮発性メモリ装置内に前記ＰＭ部分、前記ＨＷＣ部分、及び前記ＢＷ部分の中の少なくとも１つを定義することによって前記メモリ構成プロフィールに基づいて前記揮発性メモリ装置を構成する段階を含むことを特徴とする請求項１１に記載のコンピューティングシステムの動作方法。
【請求項１３】
前記不揮発性メモリ装置に情報を格納し、アクセスするために前記ＢＷ部分を利用して前記不揮発性メモリ装置にアクセスする段階をさらに含むことを特徴とする請求項１１に記載のコンピューティングシステムの動作方法。
【請求項１４】
マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、前記不揮発性メモリ装置及び前記揮発性メモリ装置の中の少なくとも１つに情報を格納し、アクセスするためにＭＤＢにアクセスする段階をさらに含むことを特徴とする請求項１１に記載のコンピューティングシステムの動作方法。
【請求項１５】
前記揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は、管理所有状態にしたがってバンク所有レジスターを設定する段階をさらに含むことを特徴とする請求項１１に記載のコンピューティングシステムの動作方法。
【請求項１６】
コンピューティングシステムに対する命令を含み、コンピュータによって非一時的に（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）読み出される媒体（ｍｅｄｉｕｍ）において、
前記命令が前記コンピュータによって実行される時、
ユーザー特性及びアプリケーション特性の中の少なくとも１つを示すメモリ要求事項を決定する段階と、
前記メモリ要求事項にしたがって揮発性メモリ装置内のＰＭ部分、ＨＷＣ部分、及びＢＷ部分をバランシング（ｂａｌａｎｃｉｎｇ）することに基づいて前記揮発性メモリ装置を構成する段階とが遂行されるようにし、
前記揮発性メモリ装置は、ＰＭモード及びブロックモードの中の少なくとも１つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする媒体。
【請求項１７】
スマートメモリドライバーを利用して前記メモリ要求事項に基づいてメモリ構成プロフィールを生成する段階がさらに遂行されるようにし、
前記メモリ構成プロフィールは、前記ＰＭ部分、前記ＨＷＣ部分、及び前記ＢＷ部分に対応する部分の位置及び部分の大きさの中の少なくとも１つを含み、
前記揮発性メモリ装置を構成する段階は、対応する前記部分の位置及び前記部分の大きさの中の少なくとも１つにしたがって前記揮発性メモリ装置内に前記ＰＭ部分、前記ＨＷＣ部分、及び前記ＢＷ部分の中の少なくとも１つを定義することによって前記メモリ構成プロフィールに基づいて前記揮発性メモリ装置を構成する段階を含むことを特徴とする請求項１６に記載の媒体。
【請求項１８】
前記不揮発性メモリ装置に情報を格納し、アクセスするために前記ＢＷ部分を利用して前記不揮発性メモリ装置にアクセスする段階がさらに遂行されるようにすることを特徴とする請求項１６に記載の媒体。
【請求項１９】
マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、前記不揮発性メモリ装置及び前記揮発性メモリ装置の中の少なくとも１つに情報を格納し、アクセスするためにＭＤＢにアクセスする段階がさらに遂行されるようにすることを特徴とする請求項１６に記載の媒体。
【請求項２０】
前記揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は管理所有状態にしたがってバンク所有レジスターを設定する段階がさらに遂行されるようにすることを特徴とする請求項１６に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ管理メカニズムに係り、より詳しくは、メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体に関する。
【背景技術】
【０００２】
コンピューティングシステム（ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍ）、サーバー、家庭用機器、テレビジョン、携帯電話、自動車、衛星、及びその組合せ装置のような現代の家庭用及び産業用電子機器は、現代生活を支援するために機能の水準を向上させて提供されている。消費者用製品、企業用又は商用製品とに要求される性能には差異があるが、電力消費を減少しながら、向上した性能を提供することが共通的に要求されている。既存技術の研究及び開発は多様な方向に向かっている。
【０００３】
１つの方向は有用なリソースの管理面の改善を含む。電子装置の数と各々の装置のプロセシング電力が増加し、コンピューティングリソースに対する要求が急激に増加している。効率的に又は効果的に有用なリソースを管理することは複数の装置において向上した水準の性能及び機能を提供する。
したがって、メモリ管理メカニズム（ｍｅｃｈａｎｉｓｍ）を有するコンピューティングシステムに対する要求は相変わらず、存在する。持続的に増加する商業的な競合圧力の面において、市場にて意味ある製品差別化のための機会が減ること及び増加する消費者期待と共に、このような問題に対する答を探すことが段々重要になっている。また、費用節減、効率及び性能改善、及び競合圧力はこのような問題の答を探すことに対する重要な必要性にさらに大きな緊急性（ｕｒｇｅｎｃｙ）を加えている。
【０００４】
このような問題に対する解決策は長い時間模索されて来たが、以前の開発は何らの解決策も暗示せず、或いは教示せず、したがって、当業者はこのような問題に対する解決策を得なかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第９，１２８，８２４号公報
【特許文献２】米国特許第８，８７４，８３１号公報
【特許文献３】米国特許公開第２０１５／０００６８３１号明細書
【特許文献４】米国特許公開第２０１３／０３０４９８０号明細書
【特許文献５】米国特許公開第２０１４／０３１０４５１号明細書
【特許文献６】米国特許公開第２０１４／０２８１１５１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の実施形態によるコンピューティングシステムは、ストレージコンポーネントとコントローラコンポーネントを含む。ストレージコンポーネント（ｃｏｍｐｏｎｅｎｔ）は、ブロック指向（ｏｒｉｅｎｔｅｄ）の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含むストレージコンポーネントと、前記ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成された前記コントローラコンポーネントを含み、前記スマートメモリドライバーは、前記揮発性メモリ装置内のＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）部分、ＨＷＣ（Ｈａｒｄｗａｒｅ  Ｃａｃｈｅ）部分、及びＢＷ（Ｂｌｏｃｋ  Ｗｉｎｄｏｗ）部分の中の少なくとも１つを含む前記揮発性メモリ装置を動的に管理するように構成される。
【０００８】
本発明の他の実施形態によるコンピューティングシステムの動作方法は、ユーザー特性及びアプリケーション特性の中の少なくとも１つを示すメモリ要求事項を決定する段階と、前記メモリ要求事項にしたがって揮発性メモリ装置内のＰＭ部分、ＨＷＣ部分、及びＢＷ部分をバランシング（ｂａｌａｎｃｉｎｇ）することに基づいて揮発性メモリ装置を構成する段階と、を含み、
前記揮発性メモリ装置は、ＰＭモード及びブロックモードの中の少なくとも１つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする。
【０００９】
本発明の他の実施形態によるコンピューティングシステムに対する命令を含み、コンピュータによって非一時的に（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）読み出される媒体（ｍｅｄｉｕｍ）において、前記命令が前記コンピュータによって実行される時、媒体は、ユーザー特性及びアプリケーション特性の中の少なくとも１つを示すメモリ要求事項を決定する段階と、前記メモリ要求事項にしたがって揮発性メモリ装置内のＰＭ部分、ＨＷＣ部分、及びＢＷ部分をバランシング（ｂａｌａｎｃｉｎｇ）することに基づいて揮発性メモリ装置を構成する段階と、が遂行されるようにし、前記揮発性メモリ装置は、ＰＭモード及びブロックモードの中の少なくとも１つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、コンピュータシステム上の有用なリソースを効率的に管理できる。これと共に、電力消費が減少し、同時に向上した性能を提供できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるメモリ管理メカニズムを有するコンピューティングシステムを例示的に示すブロックダイヤグラムである。
【図２】コンピューティングシステムの構造ダイヤグラムを例示的に示すブロック図である。
【図３】図２のストレージコンポーネントの例示的なタイミングダイヤグラムである。
【図４】本発明の実施形態によるコンピューティングシステムの動作方法を示す順序図である。
【発明を実施するための形態】
【００１２】
以下の実施形態は、永続的メモリモード及びブロックメモリの全てを支援するためのソフトウェアを使用するＮＶＤＩＭＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）−Ｐ構造を含む。以下の実施形態に対して、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）又はフラッシュメモリ等の既存のメモリ技術が利用できる。ＮＶＤＩＭＭ−Ｐ構造はスマートメモリドライバーに基づいて具現される。更に、以下の実施形態は、不揮発性メモリ装置、管理回路、メモリデータバッファ、又はそれらの組合せと共に永続的メモリ部分、ハードウェアキャッシュ部分、ブロックウインドー部分、又は上述した部分（永続的メモリ部分、ハードウェアキャッシュ部分、ブロックウインドー部分）の組合せを含む揮発性メモリを構成することに基づく。
【００１３】
以下の実施形態は当業者が本発明を構成し、使用できるように十分に詳細に記述する。他の実施形態は本発明に基づいて明確であり、システム、プロセス、構造的、又は機械的変化は本発明の実施形態の範囲を逸脱しなく、構成されることは理解される。
【００１４】
以下の説明において、多数の特定細部事項は本発明の完全な理解を提供するために与えられる。但し、本発明及び多様な実施形態がこのような特定細部事項が無くとも実施できることが分かる。本発明の実施形態が曖昧になることを避けるために、一部広く公知された回路、システム構成、及びプロセス段階は詳細に説明しない。
【００１５】
システムの実施形態を示した図面は半図式的（ｓｅｍｉ−ｄｉａｇｒａｍｍａｔｉｃ）であり、寸法として正確ではない。寸法（ｄｉｍｅｎｓｉｏｎｓ）は表現の明確性のために、図面において誇張して図示した。同様に、説明を簡単にするために、図面の観点（ｖｉｅｗｓ）は一般的に類似な方向を示しているが、図面のこのような描写の大部分は任意的である。一般的に、実施形態はいずれの方向にも動作できる。
【００１６】
ここで、記述された‘‘コンポーネント（ｃｏｍｐｏｎｅｎｔ）’’という用語は、該用語が使用される文脈にしたがって本発明の実施形態においてソフトウェア、ハードウェア、又はそれらの組合せを含む。例えば、ソフトウェアはマシンコード、ファームウェア（ｆｉｒｍｗａｒｅ）、内装コード、アプリケーションソフトウェア等である。また、例えば、ハードウェアは、回路、プロセッサ、コンピュータ、集積回路、集積回路コア、圧力センサー、慣性センサー、ＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）、受動装置、又はそれらの組合せ等である。更に、仮に以下においてコンポーネントが特許請求の範囲の装置（ａｐｐａｒａｔｕｓ）に関する請求項の部分に書かれた場合、該コンポーネントは装置の請求項の範囲及び目的のためのハードウェア回路を含むと看做される。
【００１７】
実施形態の以下の説明におけるコンポーネントは記述されるように、又は図示されるように他のものと連結される。該連結は各々結合された構成の間に介在するか、又は介在無しに直接的に、又は間接的に連結される。該連結は物理的接触、又は構成間の通信によってなされる。
【００１８】
図１は、本発明の実施形態によるメモリ管理メカニズムを有するコンピューティングシステムを例示的に示すブロックダイヤグラムである。コンピューティングシステム１００は装置１０２を含む。装置１０２はクライアント（ｃｌｉｅｎｔ）装置、サーバー、ディスプレイインターフェイス、又はそれらの組合せである。
【００１９】
例えば、装置１０２は、スマートフォン、ウェアラブル（ｗｅａｒａｂｌｅ）装置又は健康（ｈｅａｌｔｈ）モニター、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）のためのプロセシング装置、又はセンサー、又はそれらの組合せである。また、例えば、装置１０２は、コンピュータ、グリッド（ｇｒｉｄ）コンピューティングリソース（ｒｅｓｏｕｒｃｅｓ）、仮想化されたコンピュータリソース、クラウド（ｃｌｏｕｄ）コンピューティングリソース、ルータ（ｒｏｕｔｅｒｓ）、スイッチ、ピアツーピア（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）分散コンピューティング装置、又はそれらの組合せを含む。また、例えば、装置１０２は、サービス提供者によって使用されるサーバーであってもよい。
【００２０】
装置１０２は、コントロール回路１１２、ストレージ回路１１４、通信回路１１６、ユーザーインターフェイス１１８を含む。コントロール回路１１２は、コントロールインターフェイス１２２を含む。コントロール回路１１２は、コンピューティングシステム１００のソフトウェア１２６を実行する。
【００２１】
一実施形態において、コントロール回路１１２は、コンピューティングシステム１００に処理（ｐｒｏｃｅｓｓｉｎｇ）能力及び機能を提供する。コントロール回路１１２は多数の多様な方式により具現される。例えば、コントロール回路１１２は、プロセッサ又はその中の一部、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、内装プロセッサ、マイクロプロセッサ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ハードウェアコントロールロジック、ハードウェアＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、コンピューティング能力を有するハードウェア、又はそれらの組合せである。
【００２２】
追加的な例として、多様な実施形態が、システムケーシング（ｃａｓｉｎｇ）内のシステムボード又はドーターボード（ｄａｕｇｈｔｅｒ  ｂｏａｒｄ）上のコンポーネントと共に単一集積回路上に具現されるか、又は多様なネットワークトポロジー（ｔｏｐｏｌｏｇｙ）を通じてシステムからシステムに分散されるか、又はそれらの組合せを通じて具現される。ネットワークトポロジー（ｔｏｐｏｌｏｇｙ）の例は、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、又はそれらの組合せを含む。
【００２３】
コントロールインターフェイス１２２は、コントロール回路１１２と装置１０２内の他の機能回路ユニットとの間の通信のために使用される。また、コントロールインターフェイス１２２は、装置１０２の外部との通信のために使用される。
【００２４】
コントロールインターフェイス１２２は、他の機能回路ユニット又は外部ソース（ｓｏｕｒｃｅｓ）から情報を受信するか、或いは外部の目的地又は他の機能回路ユニットに情報を送信する。外部ソース及び外部目的地は装置１０２の外部の目的地及びソースを意味する。
【００２５】
コントロールインターフェイス１２２は、他の方法により具現されることもあり、コントロールインターフェイス１２２と通信する外部回路ユニット又は機能回路ユニットにしたがう他の具現例を含む。例えば、コントロールインターフェイス１２２は、圧力センサー、重力センサー、ＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）、光（ｏｐｔｉｃａｌ）回路、導波管（ｗａｖｅｇｕｉｄｅ）、無線回路、有線回路、又はそれらの組合せと共に具現される。
【００２６】
ストレージ回路１１４は、ソフトウェア１２６を格納する。また、ストレージ回路１１４は、データ、イメージ、プログラム、音ファイル、又はそれらの組合せ等の関連情報を格納する。ストレージ回路１１４は、追加的なストレージ容量を提供するための大きさを有する。
【００２７】
ストレージ回路１１４は、揮発性メモリ、不揮発性メモリ、内装メモリ、外装メモリ、又はそれらの組合せである。例えば、ストレージ回路１１４は、ＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ディスクストレージのような不揮発性メモリやＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、他のメモリ技術、又はそれの組合せ等の揮発性メモリである。
【００２８】
さらに具体的な例として、ストレージ回路１１４は、メモリ連結（ｉｎｔｅｒｃｏｎｎｅｃｔ）上にあるフラッシュ装置を利用するＮＶＤＩＭＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）−Ｆ、バイトアドレス可能な（ｂｙｔｅ−ａｄｄｒｅｓｓａｂｌｅ）メモリマッピングされた（ｍｅｍｏｒｙ−ｍａｐｐｅｄ）装置を利用するＮＶＤＩＭＭ−Ｎ、又はそれらの組合せを含むＮＶＤＩＭＭである。ＮＶＤＩＭＭ−Ｎメモリは、フラッシュメモリの使用を通じて永続的（ｐｅｒｓｉｓｔｅｎｔ）になったＤＲＡＭにより構成された適応した（ａｄａｐｔｅｄ）メモリモジュールである。ＮＶＤＩＭＭ−Ｆメモリは、ブロック指向（ｂｌｏｃｋ−ｏｒｉｅｎｔｅｄ）の大容量ストレージ装置のようなシステムコントローラにアクセス可能な追加的なフラッシュに基づく。
【００２９】
ストレージ回路１１４は、ストレージインターフェイス１２４を含む。ストレージインターフェイス１２４は、装置１０２内の他の機能回路ユニットとの通信のために利用される。ストレージインターフェイス１２４は、また装置１０２の外部の通信のために利用される。
【００３０】
ストレージインターフェイス１２４は、他の機能回路ユニット又は外部ソース（ｓｏｕｒｃｅｓ）から情報を受信するか、或いは外部の目的地又は他の機能回路ユニットに情報を送信する。外部ソース及び外部目的地は装置１０２外部の目的地及びソースを意味する。
【００３１】
ストレージインターフェイス１２４は、ストレージ回路１１４と通信する外部回路又は機能回路ユニットにしたがう他の具現例を含む。ストレージインターフェイス１２４は、コントロールインターフェイス１２２の具現例と同様の技術及びテクニックにより具現される。
【００３２】
例示的な目的のために、ストレージ回路１１４を単一要素として図示した。但し、ストレージ回路１１４は、ストレージ要素が分配（ｄｉｓｔｒｉｂｕｔｉｏｎ）された形態であることも理解されるべきである。また、例示的な目的のために、コンピューティングシステム１００を、単一階層のストレージシステムとしてストレージ回路１１４と共に図示した。但し、コンピューティングシステム１００は、他の構成としてストレージ回路１１４を含むことは理解されるべきである。例えば、ストレージ回路１１４は、他の階層のキャッシング（ｃａｃｈｉｎｇ）、メーンメモリ、ソリッドステートメディア（ｓｏｌｉｄ  ｓｔａｔｅ  ｍｅｄｉａ）、回転（ｒｏｔａｔｉｎｇ）メディア、又はオフラインストレージを含むメモリ階層システムを形成する他のストレージ技術により構成される。
【００３３】
通信回路１１６は、装置１０２に、また装置１０２から外部通信を可能にする。例えば、通信回路１１６は、装置１０２が第２番目の装置（図示せず）、周辺装置のような付着装置、通信パス、又はそれらの組合せと通信することを許容する。
【００３４】
また、通信回路１１６は、装置１０２が通信パス（ｐａｔｈ）の一部として機能する通信ハブ（ｈｕｂ）として機能する。但し、これは通信パスへのエンドポイント（ｅｎｄ  ｐｏｉｎｔ）又はターミナルユニット（ｔｅｒｍｉｎａｌ  ｕｎｉｔ）に制限されない。通信回路１１６は、通信パスと相互作用のためのマイクロエレクトロニクス（ｍｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ）又はアンテナのようなアクティブ（ａｃｔｉｖｅ）及びパッシブ（ｐａｓｓｉｖｅ）素子を含む。
【００３５】
通信回路１１６は、通信インターフェイス１２８を含む。通信インターフェイス１２８は、通信回路１１６と装置１０２内の他の機能回路ユニットとの間の通信のために使用される。通信インターフェイス１２８は、他の機能回路ユニットから情報を受信し、又は他の機能回路ユニットに情報を送信する。
【００３６】
通信インターフェイス１２８は、通信回路１１６とインターフェイスする機能回路ユニットにしたがう他の具現例を含む。通信インターフェイス１２８は、コントロールインターフェイス１２２、ストレージインターフェイス１２４、又はそれらの組合せの具現例と同様の技術及びテクニックにより具現される。
【００３７】
ユーザーインターフェイス１１８は、ユーザー（図示せず）が装置１０２とインターフェイスし、相互作用するようにする。ユーザーインターフェイス１１８は、入力装置、出力装置、又はそれらの組合せを含む。ユーザーインターフェイス１１８の入力装置の例は、データ及び通信入力を提供するためのキーパッド（ｋｅｙ  ｐａｄ）、タッチパッド（ｔｏｕｃｈ  ｐａｄ）、ソフトキー（ｓｏｆｔ−ｋｅｙｓ）、キーボード（ｋｅｙ  ｂｏａｒｄ）、マイクロフォン（ｍｉｃｒｏｐｈｏｎｅ）、遠隔信号を受信するための赤外線センサー、他の入力装置、又はそれらの何らかの組合せも含む。
【００３８】
ユーザーインターフェイス１１８は、ディスプレイインターフェイス１３０を含む。ディスプレイインターフェイス１３０は、ディスプレイ、プロジェクター（ｐｒｏｊｅｃｔｏｒ）、ビデオスクリーン、スピーカー、又はそれらの組合せも含む。
【００３９】
コントロール回路１１２は、コンピューティングシステム１００によって生成された情報をディスプレイするためにユーザーインターフェイス１１８を駆動する。また、コントロール回路１１２は、コンピューティングシステム１００の他の機能のためにソフトウェア１２６を実行する。さらに、コントロール回路１１２は、通信回路１１６を通じて通信パスと相互作用するためのソフトウェア１２６を実行する。
【００４０】
また、装置１０２は、複数の装置の実施形態のコンピューティングシステム１００の実施形態を具現するために最適化される。装置１０２は、付加的であるか、或いはより高性能の処理能力を提供する。
【００４１】
例示的な目的のために、装置１０２は、ユーザーインターフェイス１１８、ストレージ回路１１４、コントロール回路１１２、及び通信回路１１６に分割されたものとして図示した。但し、装置１０２は、これに制限されず、多様に分割されることは理解されるべきである。例えば、ソフトウェア１２６は、異なる方式に分割でき、少なくとも一部の機能がコントロール回路１１２及び通信回路１１６内にあり得る。また、装置１０２は、明確性のために図示しなかった他の機能回路ユニットを含むことができる。
【００４２】
装置１０２内の機能回路ユニットは、他の機能回路ユニットと独立的であり、個別的に動作できる。例示的な目的のために、コンピューティングシステム１００を装置１０２の動作によって記述した。但し、これに制限されず、装置１０２は、コンピューティングシステム１００の何らかのプロセス及び機能も動作させることは容易に理解される。
【００４３】
本出願のプロセスは、ハードウェアの具現、すなわちハードウェア回路構成、又はコントロール回路１１２内のハードウェアのアクセル（ａｃｃｅｌｅｒａｔｏｒｓ）加速器によってもよい。プロセスは、またコントロール回路１１２の外部であるが、装置１０２の内部において具現される。
【００４４】
本出願のプロセスは、ソフトウェア１２６の一部であってもよい。このようなプロセスは、またストレージ回路１１４内に格納される。コントロール回路１１２は、コンピューティングシステム１００を駆動するためのこのようなプロセスを実行する。
【００４５】
図２はコンピューティングシステムの構造ダイヤグラムを例示的に示すブロック図である。構造ダイヤグラムは、図１のストレージ回路１１４、図１のコントロール回路１１２、１つ以上のインターフェイス、又はコンピューティングシステム１００におけるそれらの組合せを示す。
【００４６】
以下の詳細な説明においては、構造ダイヤグラムにより例示するように、コンピューティングシステム１００は、ストレージ回路１１４においてＮＶＤＩＭＭ−Ｆ及びＮＶＤＩＭＭ−Ｎを具現又は有効化する。例えば、コンピューティングシステム１００は、ソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造がＮＶＤＩＭＭ−Ｎに対するフラッシュメモリの使用を通じて永続的（ｐｅｒｓｉｓｔｅｎｔ）になったＤＲＡＭを含む適応した（ａｄａｐｔｅｄ）メモリモジュールを具現又は有効化する。更に、このような具現は、ＮＶＤＩＭＭ−Ｆに対するブロック指向（ｂｌｏｃｋ−ｏｒｉｅｎｔｅｄ）の大容量ストレージ装置としてシステムコントローラにアクセス可能な追加的なフラッシュと共に具現される。
【００４７】
ＮＶＤＩＭＭ−Ｎは一般的に、永続的機能のために必要なシステムアクセス可能なフラッシュメモリ無しに具現される。コンピューティングシステム１００は、追加的なフラッシュ機能を提供し、ＮＶＤＩＭＭ−Ｆ及びＮＶＤＩＭＭ−Ｎ特性の全てを効果的に提供するためにソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造をさらに使用する。コンピューティングシステム１００は、ソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造と共に、ＤＲＡＭ及びフラッシュを使用するような既存メモリ技術を利用して永続的メモリ（ＰＭ、Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）モード２０２及びブロックモード２０４の全てを支援するソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造を使用する。
【００４８】
ＰＭモード２０２は、格納されたデータを生成するか、或いは最後に変形したプロセスの終了の後に格納されたデータに持続的なアクセスを提供するための（コンピューティングシステム１００、ストレージ回路１１４、それらの一部、或いはそれらの組合せのための）ハードウェア構成要素又は構成、動作方法、又はそれらの組合せである。ＰＭモード２０２は、ＮＶＤＩＭＭ−Ｎと関連される。ＰＭモード２０２は、メモリ命令又はメモリＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を利用してコンピューティングシステム１００が持続的に格納されたデータにアクセスするようにする。
【００４９】
ＰＭモード２０２は、ストレージ回路１１４又はその一部が一般動作モードの間にＤＤＲ４メモリとして機能するようにする。コンピューティングシステム１００は、パワーロス（ｐｏｗｅｒ  ｌｏｓｓ）動作又はパワーアップ（ｐｏｗｅｒ  ｕｐ）動作の間にＤＲＡＭとフラッシュとの間のデータ移動のために‘‘ＳＡＶＥ’’又は‘‘ＳＴＯＲＥ’’機能を使用する。
【００５０】
ＰＭモード２０２は、プロセスのフォールト（ｆａｕｌｔ）区域の外側に存在するプログラム状態（ｓｔａｔｅ）を強調した永続性の概念に密接に連結される。プロセスは、フォールト（ｆａｕｌｔ）区域を生成してデータへのメモリ類似（ｍｅｍｏｒｙ  ｌｉｋｅ）アクセスを提供するように作る。ＰＭモード２０２は、フラッシュメモリの使用を通じて永続的になるように作られたＤＲＡＭを含む。ＰＭモード２０２には上記アクセス可能な追加的なフラッシュメモリが無いことがあり得る。
【００５１】
ブロックモード２０４は、ブロック指向の大容量ストレージ装置を提供するためのハードウェア構成要素又は構成、動作方法、又はそれらの組合せである。ブロックモード２０４は、ブロック指向の大容量ストレージ装置を提供するためのＤＲＡＭ、フラッシュメモリ、それらの組合せを使用する。ブロックモード２０４は、ＮＶＤＩＭＭ−Ｆと関連される。
【００５２】
コンピューティングシステム１００は、ブロックモード２０４に対するノーマル（ｎｏｒｍａｌ）動作の間にドライバーからＤＲＡＭへのデータ移動、そしてＤＲＡＭからフラッシュへのデータ移動をスケジュールするためにコントロール回路又はＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）を利用する。コンピューティングシステム１００は、パワーロス（ｐｏｗｅｒ  ｌｏｓｓ）動作又はパワーアップ（ｐｏｗｅｒ  ｕｐ）動作の間にＤＲＡＭとフラッシュとの間のデータ移動のために‘‘ＳＡＶＥ’’又は‘‘ＳＴＯＲＥ’’機能を使用する。
【００５３】
ソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造のためのコンピューティングシステム１００の構造は、コントローラコンポーネント２０６、ストレージコンポーネント２０８、又はそれらの組合せを含む。コントローラコンポーネント２０６は、ソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造を具現するために構成又は動作を制御するように構成される。
【００５４】
コントローラコンポーネント２０６は、プロセス、メカニズム（ｍｅｃｈａｎｉｓｍ）、方法、又はそれらの組合せとして具現される。コントローラコンポーネント２０６は、図１のソフトウェア１２６の一部であるか、それに含まれるか、それを実行するか、それを具現するか、又はそれらの組合せである。コントローラコンポーネント２０６は、追加的にコントロール回路１１２、ストレージ回路１１４、１つ以上のインターフェイス、それらの一部、又はそれらの組合せと共に具現される。例えば、コントローラコンポーネント２０６は、スマートメモリドライバー２１４と共にＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）２１０、ＰＭＦＳ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）２１２、又はそれらの組合せを含む。
【００５５】
ＭＭＵ２１０は、仮想メモリアドレスと物理アドレスとの間の変換のような多様なアドレスを変換するための回路を含む。ＭＭＵ２１０は、ハードウェアであってもよい。ＭＭＵ２１０は、例えばＣＰＵ又は個別集積回路、ストレージ回路１１４、又はそれらの組合せ等のためのコントロール回路１１２の一部であってもよい。
【００５６】
ＰＭＦＳ２１２は、永続的メモリのためのファイルシステムを含む。ＣＰＵロード（ｌｏａｄ）命令、格納命令、又はそれらの組合せ等に対してファイルシステムは、コントロール回路１１２を通じて直接アクセス可能な永続的メモリへのアクセスを提供するのに効率的であり、軽いように最適化される。
【００５７】
スマートメモリドライバー２１４は、コンピューティングシステム１００がストレージ回路１１４、ストレージコンポーネント２０８、それらの一部、又はそれらの組合せと通信が可能にするためのプロセス、メカニズム、方法、又はそれらの組合せである。スマートメモリドライバー２１４は、ソフトウェア定義されたＮＶＤＩＭＭ−Ｐ構造を具現するためにストレージコンポーネント２０８を具体的に制御し、構成する。
【００５８】
スマートメモリドライバー２１４は、ソフトウェアであってもよい。例えば、スマートメモリドライバー２１４は、ソフトウェア１２６と類似であるか、或いはソフトウェア１２６に含まれる。スマートメモリドライバー２１４は、コントロール回路１１２、ストレージ回路１１４、１つ以上のインターフェイス、又はそれらの組合せによって有効化されるか、或いは具現される。
【００５９】
スマートメモリドライバー２１４は、ストレージコンポーネント２０８の内部又はそのセグメント（ｓｅｇｍｅｎｔ）のための１つ以上の領域を定義するか、或いは構成する。スマートメモリドライバー２１４は、動的にユーザー又はアプリケーション要求にしたがってストレージコンポーネント２０８を定義するか、或いは構成する。スマートメモリドライバー２１４は、ストレージコンポーネント２０８がＮＶＤＩＭＭ−Ｆ、ＮＶＤＩＭＭ−Ｎ、ＮＭＮＶＤＩＭＭ−Ｐ、又はそれらの組合せとして機能するように構成する。スマートメモリドライバー２１４は、永続的ソフトウェア体系（ｆｒａｍｅｗｏｒｋ）を提供する。追加的に、スマートメモリドライバー２１４は、他の以前のＮＶＤＩＭＭ−Ｎ専用装置又は他の以前のＮＶＤＩＭＭ−Ｆ専用装置に該当するハードウェアドライバーを代替する。
【００６０】
ストレージコンポーネント２０８は、データに対するアクセスを提供し、格納するように構成される装置、回路、それらの一部、それらに関連したプロセス又は方法、又はそれらの組合せである。ストレージコンポーネント２０８は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを提供するか、或いは支援するように動的に構成される。ストレージコンポーネント２０８は、該当構成に基づいてＮＶＤＩＭＭ−Ｎ、ＮＶＤＩＭＭ−Ｆ、又はそれらの組合せをエミュレート（ｅｍｕｌａｔｅ）する。
【００６１】
ストレージコンポーネント２０８は、ハードウェアメモリを含む。ストレージコンポーネント２０８は、ストレージ回路１１４内の一部又はセグメントである。例えば、ストレージコンポーネント２０８は、ＮＶＤＩＭＭを含む。また、例えば、ストレージコンポーネント２０８は、ＤＲＡＭ、フラッシュメモリ装置、それと関連した他の回路又はバッファ、又はそれらの組合せを含む。さらに具体的な例として、ストレージコンポーネント２０８は、ブロック指向の大容量情報ストレージと共に情報の永続的（ｐｅｒｓｉｓｔｅｎｔ）ストレージを可能にするためにＭＤＢ（Ｍｅｍｏｒｙ  Ｄａｔａ  Ｂｕｆｆｅｒ）２１６、管理回路２１８、揮発性メモリ装置２２０、不揮発性メモリ装置２２２、パワーストレージ装置２２４、又はそれらの組合せを含む。
【００６２】
ＭＤＢ２１６は、揮発性メモリ装置２２０に連結され、メモリバスを通じてコントローラコンポーネント２０６に連結され、そして管理回路２１８に連結される。ＭＤＢ２１６は、不揮発性メモリ装置２２２に連結されるか、或いは管理回路２１８を通じて不揮発性メモリ装置２２２に間接的に連結される。ＭＤＢ２１６は、揮発性メモリ装置２２０、不揮発性メモリ装置２２２、又はそれらの組合せとコントローラコンポーネント２０６との間に位置する。
【００６３】
管理回路２１８は、不揮発性メモリ装置２２２、ＭＤＢ２１６、揮発性メモリ装置２２０と連結されるか、メモリバスを通じてコントローラコンポーネント２０６と連結されるか、又はそれらの組合せと連結される。ＭＤＢ２１６を利用するか、或いはＭＤＢ２１６を通じて、管理回路２１８は、追加的に揮発性メモリ装置２２０と間接的に連結される。管理回路２１８は、アクセス可能な情報を格納するように指定されたストレージコンポーネント２０８のセグメントとコントローラコンポーネント２０６との間にある。例えば、アクセス可能な情報を格納するように指定されたストレージコンポーネント２０８は、ＭＤＢ２１６、不揮発性メモリ装置２２２、揮発性メモリ装置２２０、又はそれらの組合せを含む。
【００６４】
コントローラコンポーネント２０６及びストレージコンポーネント２０８は、メモリバスを通じて連結（ｃｏｎｎｅｃｔ）されるか、或いは結合（ｃｏｕｐｌｅ）される。メモリバスは、図１のコントロールインターフェイス１２２、図１のストレージインターフェイス１２４、それらの一部、又はそれらの組合せである。メモリバスは、回路又はその中の構成要素の間のデータを交換するための電気的連結を含む。
【００６５】
メモリバスは、１つ以上のデータパス２２６、１つ以上のコントロールパス２２８、それらの一部、それらの組合せを含む。１つ以上のデータパス２２６は、プロセスによって探知（ｓｅｅｋ）されるか、或いは目標になったデータ又は内容情報を交換するように構成された１つ以上の電気的連結を含む。例えば、データ又は内容情報は、読出し又は書込み動作のために目標になるか、或いは処理された情報を含む。１つ以上のデータパス２２６は、ＰＭモード２０２等に対する実線の矢印、ブロックモード２０４等に対する粗い点線、又はそれらの組合せとして図２に図示した。
【００６６】
１つ以上のコントロールパス２２８は、プロセスを具現するためのコマンド又は状態信号のようなコントロール信号、読出し又は書込み動作を具現するコントロール又は状態信号のようなコントロール信号を交換するように構成された１つ以上の電気的連結を含む。１つ以上のコントロールパス２２８は、図２において微細点線（ｆｉｎｅｌｙ−ｄｏｔｔｅｄ  ｌｉｎｅ）として図示した。
【００６７】
図２において例示したように、１つ以上のデータパス２２６のすべては、ストレージコンポーネント２０８のためにＭＤＢ２１６に連結される。コンピューティングシステム１００は、コントローラコンポーネント２０６から揮発性メモリ装置２２０への直接アクセスが不在か、或いはできなく、又は不揮発性メモリ装置２２２への直接アクセスができない、又はそれらの組合された形態である。
【００６８】
パワーストレージ装置２２４は、データの永続的アクセスを可能にするためのエネルギーソースを含む。パワーストレージ装置２２４は、ストレージコンポーネント２０８にエネルギーを提供するためのバッテリー又は蓄電器を含む。
【００６９】
不揮発性メモリ装置２２２は、ブロック内のメモリを処理するために不揮発性メモリを提供するための装置又は回路を含む。不揮発性メモリ装置２２２は、ブロックの単位又はページの単位により書き込むか、或いは読み出す方式により使用される。不揮発性メモリ装置２２２は、ＮＡＮＤ又はＮＯＲタイプの構成要素を利用する。不揮発性メモリ装置２２２は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せに対する永続的ストレージを提供する。
【００７０】
揮発性メモリ装置２２０は、装置の電源が入っている間にそのデータを維持する１つ以上のストレージ回路を含む。揮発性メモリ装置２２０は、装置又は回路上のストレージ位置又は該当データの物理的ストレージ位置によって影響を受けないが、データに対して速やかであるか、或いは一貫性ある（ｃｏｎｓｉｓｔｅｎｔ）アクセスを提供するための装置又は回路を含む。例えば、揮発性メモリ装置２２０は、ＤＲＡＭとして具現される。さらに具体的な例として、揮発性メモリ装置２２０は、ＮＶＤＩＭＭ−Ｎ等のためにパワーロス（ｐｏｗｅｒ  ｌｏｓｓ）動作の間にデータ持続性を提供するためにパワーストレージ装置２２４を使用するＤＤＲ４  ＤＲＡＭを含む。
【００７１】
揮発性メモリ装置２２０は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを支援するために動的に構成される。揮発性メモリ装置２２０は、ＰＭ（Ｐｅｒｓｉｓｔｅｎｔ  Ｍｅｍｏｒｙ）部分２３０、ＨＷＣ（Ｈａｒｄｗａｒｅ  Ｃａｃｈｅ）部分２３２、ＢＷ（Ｂｌｏｃｋ  Ｗｉｎｄｏｗ）部分２３４、又はそれらの組合せを含むように動的に構成される。
【００７２】
ＰＭ部分２３０、ＨＷＣ部分２３２、及びＢＷ部分２３４は、各々データへのアクセスを提供し、格納し、削除するように構成された揮発性メモリ装置２２０内の部分又はセグメントである。ＰＭ部分２３０、ＨＷＣ部分２３２、及びＢＷ部分２３４は、バンク（ｂａｎｋ）レベルの細分化（ｇｒａｎｕｌａｒｉｔｙ）に基づく。
【００７３】
ＰＭ部分２３０は、データを処理するか、或いは生成するプロセスが終了した後にＰＭ部分２３０内のデータに対するアクセスを持続的に提供するためにＰＭモード２０２を具現するように構成された揮発性メモリ装置２２０の一部である。ＰＭ部分２３０は、ストレージコンポーネント２０８のためのＮＶＤＩＭＭ−Ｆ特性を容易にする。
【００７４】
ＨＷＣ部分２３２は、不揮発性メモリ装置２２２を支援するために管理回路２１８によって構成された揮発性メモリ装置２２０の一部である。ＨＷＣ部分２３２は、不揮発性メモリ装置２２２のハードウェアキャッシュとして動作する。
【００７５】
ＢＷ部分２３４は、不揮発性メモリ装置２２２に対するインターフェイスを提供するように構成された揮発性メモリ装置２２０の一部である。ＢＷ部分２３４は、不揮発性メモリ装置２２２に該当するメモリのブロックにアクセスするのに使用されるブロックウインドー（ｂｌｏｃｋ  ｗｉｎｄｏｗ）インターフェイスのように動作する。
【００７６】
揮発性メモリ装置２２０は、工場又は製造会社設定によってハードウェア内に事前に設定されるか、或いは事前に決定された構成の代わりにソフトウェアを利用して動的に決定される構成にしたがうＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを含む。例えば、動的な構成は、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せのための存在可否、物理的大きさ、物理的位置、又はそれらの組合せを決定する。
【００７７】
また、例えば、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せは、バンクレベルの細分化（ｇｒａｎｕｌａｒｉｔｙ）のために揮発性メモリ装置２２０の１つ以上のバンクを含む。動的構成に対する細部事項は以下において詳細に説明する。
【００７８】
ＭＤＢ２１６は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを提供するか、或いは具現しながら、一時的にデータを格納するように構成される。ＭＤＢ２１６は、メモリバス、揮発性メモリ装置２２０、管理回路２１８、不揮発性メモリ装置２２２、又はそれらの組合せの間にデータを一時的に格納するのに使用される物理的メモリストレージを含む。ＭＤＢ２１６は、揮発性メモリ装置２２０、不揮発性メモリ装置２２２、コントローラコンポーネント２０６、又はそれらの組合せの間のデータ交換を管理するように構成される。また、ＭＤＢ２１６は、管理回路２１８、コントローラコンポーネント２０６、又はそれらの組合せに対するコントロール信号又はコントロール機能を管理するように構成される。
【００７９】
管理回路２１８は、ストレージ又はその中の情報に対するアクセス機能を遂行するために揮発性メモリ装置２２０、不揮発性メモリ装置２２２、又はそれらの組合せを制御するように構成される。管理回路２１８は、ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）として具現される。管理回路２１８は、コントローラコンポーネント２０６からのコマンド又は命令（例えば、書込み又は読出し）にしたがって揮発性メモリ装置２２０及び／又は不揮発性メモリ装置２２２を制御する。
【００８０】
例えば、管理回路２１８は、揮発性メモリ装置２２０に対するＤＤＲ４  ＲＣＤ（Ｒｅｇｉｓｔｅｒｅｄ  Ｃｌｏｃｋ  Ｄｒｉｖｅｒ）機能を制御するか、或いは提供する。また、例えば、管理回路２１８は、不揮発性メモリ装置２２２に対するフラッシュコントローラである。また、例えば、以下において説明するソフトウェア制御の所有状態（ｓｏｆｔｗａｒｅ  ｃｏｎｔｒｏｌｌｅｄ  ｏｗｎｅｒｓｈｉｐ  ｓｔａｔｅ）等を利用して、管理回路２１８は、揮発性メモリ装置２２０と不揮発性メモリ装置２２２との間のデータ移動又はそのスケジューリング（ｓｃｈｅｄｕｌｉｎｇ）を制御するか、或いは具現する。また、例えば、管理回路２１８は、上述した例の組合せや他の方法又はプロセスを利用して制御する。
【００８１】
管理回路２１８は、スマートデータ及びコントロール順序と共にＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを支援する。例えば、管理回路２１８は、ストレージコンポーネント２０８がノーマル動作の間にＤＤＲ４メモリとして又はＰＭモード２０２のＮＶＤＩＭＩＭ−Ｎとして動作するように制御する。パワーロス（ｐｏｗｅｒ  ｌｏｓｓ）状態又はパワーアップ（ｐｏｗｅｒ  ｕｐ）状態に対して、管理回路２１８は、揮発性メモリ装置２２０と不揮発性メモリ装置２２２との間のデータ移動のために‘‘ＳＡＶＥ’’又は‘‘ＳＴＯＲＥ’’機能を使用する。
【００８２】
また、例えば、管理回路２１８は、スマートメモリドライバー２１４から揮発性メモリ装置２２０へのデータ移動、そしてノーマル動作の中においてブロックモード２０４に対する揮発性メモリ装置２２０から不揮発性メモリ装置２２２へのデータ移動をスケジューリング（ｓｃｈｅｄｕｌｉｎｇ）する。揮発性メモリ装置２２０において、データ移動は、ＢＷ部分２３４からＨＷＣ部分２３２への移動と以後の不揮発性メモリ装置２２２への移動とを含む。データ移動は、揮発性メモリ装置２２０のバンクレベルの細分化（ｇｒａｎｕｌａｒｉｔｙ）に基づく。追加的に、管理回路２１８は、パワーロス（ｐｏｗｅｒ  ｌｏｓｓ）状態又はパワーアップ（ｐｏｗｅｒ  ｕｐ）状態に対して揮発性メモリ装置２２０と不揮発性メモリ装置２２２との間のデータ移動のために‘‘ＳＡＶＥ’’又は‘‘ＳＴＯＲＥ’’機能を使用する。
【００８３】
また、例えば、管理回路２１８は、揮発性メモリ装置２２０に対するタイミング問題又はＤＲＡＭタイミング問題を解決する。ここで、コントローラコンポーネント２０６に対するＭＭＵ２１０及び管理回路２１８は、他のＤＲＡＭタイミングパラメーター（ｐａｒａｍｅｔｅｒ）を観察する。タイミング問題に関する細部事項は以下に説明する。また、例えば、管理回路２１８は、上述した例のプロセッサ又は方法の組合せや他の方法又はプロセスを利用してＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを支援する。
【００８４】
コンピューティングシステム１００は、バンク所有レジスター２３６をさらに含む。バンク所有レジスター２３６は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを支援するための状態又は制御メカニズムや回路である。バンク所有レジスター２３６は、ＮＶＤＩＭＭのようにストレージ回路１１４に含まれるか、或いはストレージ回路１１４上にある。バンク所有レジスター２３６は、コントローラコンポーネント２０６、ＭＭＵ２１０、又はそれらの組合せによって設定される。
【００８５】
バンク所有レジスター２３６は、コンピューティングシステム１００において１つ以上の回路、構成要素、装置、ソフトウェア、又はそれらの組合せ等のプロセス又はデータ所有を示すための回路又はメカニズムを含む。バンク所有レジスター２３６は、揮発性メモリ装置２２０に格納されたデータに対する制御をコントローラコンポーネント２０６又はストレージコンポーネント２０８に提供するために使用される。
【００８６】
例えば、バンク所有レジスター２３６は、コントローラ所有状態２３８、管理所有状態２４０、又はそれらの組合せを制御するか、或いは指し示す。コントローラ所有状態２３８は、揮発性メモリ装置２２０の１つ以上のターゲット（ｔａｒｇｅｔ）バンクを有するソフトウェア、スマートメモリドライバー２１４、ＭＭＵ２１０、又はそれらの組合せに対する制御の構成又はメモリの管理である。管理所有状態２４０は、揮発性メモリ装置２２０の１つ以上のターゲット（ｔａｒｇｅｔ）バンクを有するＭＭＵ２１０に対する制御の構成又はメモリの管理である。所有状態に対する詳細説明は以下において説明する。
【００８７】
コンピューティングシステム１００は、マルチプレクサー（ＭＵＸ、ｍｕｌｔｉｐｌｅｘｅｒ）２４８の代わりに又はマルチプレクサー２４８無しに揮発性メモリ装置２２０へのアクセスを提供するためにＭＤＢ２１６、管理回路２１８、又はそれらの組合せを使用するように構成されるストレージコンポーネント２０８を含む。ストレージコンポーネント２０８は、他の形態の装置において使用されるマルチプレクサー２４８を通じてのＤＲＡＭに対する何らかの直接的なアクセス無しに、アクセスを提供するためにＭＤＢ２１６、管理回路２１８、又はそれらの組合せを使用する。
【００８８】
マルチプレクサー２４８は、複数の入力信号の中の１つを選択し、選択した信号を出力するように構成された装置を含む。マルチプレクサー２４８は、１つの信号の選択、１つのパス（ｐａｔｈ）の選択、可能な決定又は選択のセットからの１つのアクセスの選択を提供するように利用される。
【００８９】
コンピューティングシステム１００は、動的にストレージコンポーネント２０８を構成し、又はＰＭモード２０２やブロックモード２０４又は両方を可能であるようにするか、或いは支援し、又はこれにしたがってメモリ動作を管理するか、或いは具現し、又はそれらの組合せを遂行するために上述した機能回路又はブロックを使用する。コンピューティングシステム１００は、ユーザー、アプリケーション、又はそれらの組合せによって永続的情報ストレージを可能であるようにする揮発性メモリ装置２２０を動的に構成するためのスマートメモリドライバー２１４を具現するように追加的に構成されるコントローラコンポーネント２０６を含む。
【００９０】
コントローラコンポーネント２０６は、揮発性メモリ装置２２０がＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを含むように動的に構成する。スマートメモリドライバー２１４と共に、コントローラコンポーネント２０６は、動的構成のために部分の位置２４４、部分の大きさ２４６、又はそれらの組合せを含むメモリ構成プロフィール２４２を生成する。
【００９１】
メモリ構成プロフィール２４２は、揮発性メモリ装置２２０の１つ以上の部分に対する詳細内容に対する説明である。メモリ構成プロフィール２４２は、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せのような１つ以上の部分の大きさ又は容量、物理的位置、又はそれらの組合せを制御するか、或いは記述する。
【００９２】
部分の位置２４４は、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せのような該当部分に対する揮発性メモリ装置２２０上の物理的位置に対する記述である。部分の大きさ２４６は、該当部分の大きさ又は容量である。
【００９３】
コントローラコンポーネント２０６は、メモリ要求事項２５０にしたがうメモリ構成プロフィール２４２を生成する。メモリ要求事項２５０は、ユーザーのユーザー特性２５２、アプリケーション又はソフトウェアのアプリケーション特性２５４、又はそれらの組合せを含む。メモリ要求事項２５０は、ストレージコンポーネント２０８を使用して情報にアクセスするか、或いは格納するための要求又は必要を示す。メモリ要求事項２５０は、ユーザー特性２５２、アプリケーション特性２５４、又はそれらの組合せに基づいて決定される。
【００９４】
ユーザー特性２５２は、コンピューティングシステム１００を使用するユーザーと関連した特性又はパターンを含む。ユーザー特性２５２は、使用パターン、ユーザーからの選好度又は設定、ユーザーの選好度又は設定、それらの表現、それらの組合せを含む。
【００９５】
コンピューティングシステム１００は、多様な方法によりユーザー特性２５２を決定する。例えば、コンピューティングシステム１００は、ユーザーに対応するアクセス情報又は使用を記録することによってユーザー特性２５２を決定するようにスマートメモリドライバー２１４又はソフトウェア１２６を使用する。
【００９６】
又は、例えば、コンピューティングシステム１００は、何らかの選好度又は設定情報であっても決定するためにユーザーインターフェイスを通じてユーザーと相互作用する。又は、例えば、コンピューティングシステム１００は、パターン認識メカニズム、機械学習（ｍａｃｈｉｎｅ−ｌｅａｒｎｉｎｇ）メカニズム、又はそれらの組合せに基づいてユーザー特性２５２を決定する。又は、例えば、コンピューティングシステム１００は、上述した方法又はプロセスの組合又は他のプロセスや方法を利用してユーザー特性２５２を決定する。
【００９７】
アプリケーション特性２５４は、コンピューティングシステム１００に格納されるか、或いは活性化されたユーザーアプリケーション又はソフトウェアパッケージを含む。アプリケーション特性２５４は、ユーザーアプリケーション又はソフトウェアパッケージを除外すれば、ユーザー特性２５２と類似である。アプリケーション特性２５４は、１つ以上のソフトウェア１２６のインスタンス（ｉｎｓｔａｎｃｅ）、その部分、又はそれらの組合せを記述するか、或いは示す。例えば、アプリケーション特性２５４は、ユーザーアプリケーション又はソフトウェアパッケージに対する大きさ、性能、ランタイム（ｒｕｎｔｉｍｅ）要求事項や要求、又はそれらの組合せに基づく。
【００９８】
コンピューティングシステム１００は、多様な方法によりアプリケーション特性２５４を決定する。例えば、コンピューティングシステム１００は、スマートメモリドライバー２１４又はソフトウェア１２６を利用する。これはユーザーアプリケーション又はソフトウェアパッケージ自体、そのメタデータ、又はそれらの組合せを分析してアプリケーション特性２５４を決定する。また、例えば、コンピューティングシステム１００は、ユーザーアプリケーション又はそれに格納されるか、或いは活性化するようになったソフトウェアパッケージのソフトウェア、その提供者又は分配者（ｄｉｓｔｒｉｂｕｔｅｒ）からの情報又は説明に対するアクセスに基づいてアプリケーション特性２５４を決定する。
【００９９】
コンピューティングシステム１００は、動的にコンピューティングシステム１００の持続的な使用量に基づいてメモリ要求事項２５０を決定する。追加的に、コンピューティングシステム１００は、動的にコンピューティングシステム１００上の（又は実時間にアクセスされる）ユーザーアプリケーション又はソフトウェアパッケージに関連した現在状態又は構成に基づいてメモリ要求事項２５０を決定する。
【０１００】
コンピューティングシステム１００は、追加的にメモリ要求事項２５０に基づいてメモリ構成プロフィール２４２を生成する。例えば、コンピューティングシステム１００は、ランタイムの間にメモリ構成プロフィール２４２を生成する。この場合、例えば、コンピューティングシステム１００は、アプリケーションの開始（ｉｎｉｔｉａｔｉｏｎ）又は実行に基づくか、或いは使用量に基づく。また、例えば、コンピューティングシステム１００は、シャットダウン（ｓｈｕｔｄｏｗｎ）又はリセットの一部としてのスタートアップ（ｓｔａｒｔ−ｕｐ）又は開始（ｉｎｉｔｉａｔｉｏｎ）の場合、又はそれらの組合せである場合に、メモリ構成プロフィール２４２を生成する。
【０１０１】
また、例えば、コンピューティングシステム１００は、ソフトウェア内に具現されたスマートメモリドライバー２１４を利用してメモリ構成プロフィール２４２を生成する。ブロックモード２０４、ＰＭモード２０２、又はそれらの組合せを支援する１つ以上の部分に割当された揮発性メモリ装置２２０内に大きさ、位置、優先順位、又はそれらの組合せを特定するか、或いは割当することによって、コンピューティングシステム１００は、メモリ構成プロフィール２４２を生成する。
【０１０２】
コンピューティングシステム１００は、揮発性メモリ装置２２０内にＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを設定するか、或いは指定するためにメモリ構成プロフィール２４２を生成する。コンピューティングシステム１００は、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せに対応する部分の位置２４４、部分の大きさ２４６、又はそれらの組合せを含むメモリ構成プロフィール２４２を生成する。
【０１０３】
例えば、コントローラコンポーネント２０６は、ＢＷ部分２３４、ＨＷＣ部分２３２、又はそれらの組合せを増加させることができる。これは不揮発性メモリ装置２２２、ブロックモード２０４、ＮＶＤＩＭＭ−Ｆ特徴又は機能、又はそれらの組合せの具現又は使用量を増加させるか、或いは有効化するためである。又は、例えば、コントローラコンポーネント２０６は、揮発性メモリ装置２２０、ＰＭモード２０２、ＮＶＤＩＭＭ−Ｎ特徴又は機能、又はそれらの組合せの具現又は使用量を増加させるか、或いは有効化するためにＰＭ部分２３０を増加させる。
【０１０４】
さらに具体的な例として、揮発性メモリ装置２２０内のＢＷ部分２３４、ＨＷＣ部分２３２、ＰＭ部分２３０、又はそれらの組合せを構成するか設定するための大きさ又は容量、物理的位置、又はそれらの組合せを制御するために、コントローラコンポーネント２０６は、メモリ構成プロフィール２４２を生成する。メモリ要求事項２５０にしたがって、コントローラコンポーネント２０６は、ＢＷ部分２３４、ＨＷＣ部分２３２、ＰＭ部分２３０、又はそれらの組合せとして揮発性メモリ装置２２０の１つ以上のバンクの具体的な例（ｉｎｓｔａｎｃｅ）を説明するか、或いは指定するメモリ構成プロフィール２４２を生成する。
【０１０５】
コンピューティングシステム１００は、追加的にメモリ構成プロフィール２４２にアクセスするか、アップデートするか、調整するか、又は上述したような組合せを遂行する。コントローラコンポーネント２０６、スマートメモリドライバー２１４、管理回路２１８、ストレージコンポーネント２０８、コントロール回路１１２、ストレージ回路１１４、それらの組合せを利用して、コンピューティングシステム１００は、メモリ要求事項２５０、メモリ構成プロフィール２４２、又はそれらの組合せを処理する。
【０１０６】
ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せを具現するか、或いは活性化するために、コントローラコンポーネント２０６、管理回路２１８、又はそれらの組合せは、動的にメモリ構成プロフィール２４２を具現するか、或いは揮発性メモリ装置２２０を構成する。メモリ構成プロフィール２４２にしたがってＢＷ部分２３４、ＨＷＣ部分２３２、ＰＭ部分２３０、又はそれらの組合せを設定するか、或いは指定することによって、揮発性メモリ装置２２０は、動的に構成される。
【０１０７】
揮発性メモリ装置２２０は、ＢＷ部分２３４、ＨＷＣ部分２３２、ＰＭ部分２３０、又はそれらの組合せ等に該当するか、制御するか、説明する部分の位置２４４、部分の大きさ２４６、又はそれらの組合せによって動的に構成される。揮発性メモリ装置２２０に部分の位置２４４、部分の大きさ２４６、又はそれに対応するそれらの組合せによってＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを定義することによって、揮発性メモリ装置２２０は、追加的にメモリ構成プロフィール２４２に基づいて構成される。揮発性メモリ装置２２０は、部分の位置２４４、部分の大きさ２４６、又はそれらの組合せにしたがうバンクの１つ以上の具体的な例示を上述したことに対応するＢＷ部分２３４、ＨＷＣ部分２３２、又はＰＭ部分２３０として指定することに基づいて構成される。
【０１０８】
揮発性メモリ装置２２０は、ＰＭモード２０２、ブロックモード２０４、又はそれらの組合せにしたがう不揮発性メモリ装置２２２と共に情報を格納するためのハードウェアメモリである。揮発性メモリ装置２２０は、メモリ要求事項２５０にしたがって揮発性メモリ装置２２０内のＰＭ部分２３０、ＨＷＣ部分２３２、及びＢＷ部分２３４に対するバランシング（ｂａｌａｎｃｉｎｇ）に基づいて構成される。コンピューティングシステム１００に対する必要、要求事項、その推定値、又はそれらの組合せによってＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せに対する位置又は大きさを変更することによって、揮発性メモリ装置２２０は、バランス（ｂａｌａｎｃｅ）を取る。
【０１０９】
さらに具体的な例として、揮発性メモリ装置２２０は、ＢＷ部分２３４を含むように構成される。ＢＷ部分２３４は、動的に構成される。ＢＷ部分２３４は、コントローラコンポーネント２０６から不揮発性メモリ装置２２２への間接的なアクセスを提供する。ＢＷ部分２３４は、揮発性メモリ装置２２０の直接的なアクセスを通じて不揮発性メモリ装置２２２への間接的なアクセスを提供する。
【０１１０】
また、さらに具体的な一例として、揮発性メモリ装置２２０は、増加した数のバンクを割当することにしたがってバランシング（ｂａｌａｎｃｉｎｇ）されるか、又はＰＭモード２０２を収容するためにＰＭ部分２３０に対するプロセッサ又はバスの近くにあるバンクを割当する。追加的に、揮発性メモリ装置２２０を構成するか、或いは制御するためのメモリ構成プロフィール２４２は、同様にＰＭ部分２３０に対する依存性又は効率性を増加させる。これは容量要求事項に比べてメモリ又はデータの急な（ｉｍｍｅｄｉａｔｅ）アクセスに対する比重が大きい依存性に関連したメモリ要求事項２５０に基づいてバランシング（ｂａｌａｎｃｉｎｇ）を取るためである。
【０１１１】
また、さらに具体的な例として、ブロックモード２０４を収容するためのＢＷ部分２３４、ＨＷＣ部分２３２、又はそれらの組合せに対する割当されたバンクの数又は位置に対する依存性又は効率を同様に増加するか、或いは減少させることによって、メモリ構成プロフィール２４２は、追加的にバランシング（ｂａｌａｎｃｉｎｇ）を取る。追加的に、メモリ構成プロフィール２４２は、アクセススピードに比べて容量に対する比重が大きい依存性に関連したメモリ要求事項２５０に基づいてＢＷ部分２３４、ＨＷＣ部分２３２、又はそれらの組合せに対する依存性又は効率を増加させる。
【０１１２】
追加的に、コントローラコンポーネント２０６は、コンピューティングシステム１００のランタイム又は動作の間にストレージ内の情報のアクセス又はストレージを制御するためにスマートメモリドライバー２１４を使用する。コントローラコンポーネント２０６は、バンク所有レジスター２３６を設定する。これは揮発性メモリ装置２２０に格納されたデータに対する制御をコントローラコンポーネント２０６又はストレージコンポーネント２０８に提供するためである。
【０１１３】
コントローラコンポーネント２０６は、コントローラ所有状態２３８又は管理所有状態２４０を設定するためにバンク所有レジスター２３６を設定する。揮発性メモリ装置２２０のバンクに格納された情報を制御するために、コントローラコンポーネント２０６は、追加的にコントローラ所有状態２３８又は管理所有状態２４０にしたがってバンク所有レジスター２３６を設定する。
【０１１４】
特定コピーモード又は移動モードと共に又はこれを具現するために、コントローラコンポーネント２０６は、コントローラ所有状態２３８と管理所有状態２４０を使用する。例えば、ソフトウェア、ＭＭＵ２１０、スマートメモリドライバー２１４、又はそれらの組合せからデータ又は情報を移動させるために、コントローラコンポーネント２０６は、‘‘ＭｅｍｃｏｐｙＡ’’のようなデータ移動モードを使用する。ＢＷ機能に対するソフトウェア、ＭＭＵ２１０、スマートメモリドライバー２１４、又はそれらの組合せのインターフェイスを使用して、‘‘ＭｅｍｃｏｐｙＡ’’モードはデータ又は情報をＢＷ部分２３４へ移動させる。
【０１１５】
また、例えば、管理回路２１８又はＳＯＣを通るか、或いはこれを利用してＢＷ部分２３４からデータ又は情報を不揮発性メモリ装置２２２に移動させるために、コントローラコンポーネント２０６は‘‘ＭｅｍｃｏｐｙＢ’’のようなデータ移動モードを使用する。また、例えば、管理回路２１８又はＳＯＣを通るか、或いはこれを利用してＢＷ部分２３４からデータ又は情報をＨＷＣ部分２３２へ移動させるために、コントローラコンポーネント２０６は‘‘ＭｅｍｃｏｐｙＢ１’’のようなデータ移動モードを使用する。
【０１１６】
また、例えば、管理回路２１８又はＳＯＣを通るか、或いはこれを利用してＨＷＣ部分２３２からデータ又は情報を不揮発性メモリ装置２２２に移動させるために、コントローラコンポーネント２０６は‘‘ＭｅｍｃｏｐｙＢ２’’のようなデータ移動モードを使用する。揮発性メモリ装置２２０に対するバンク所有状態を保障するために、コンピューティングシステム１００は、追加的に‘‘ＰＣＯＭＭＩＴ’’命令を含むか、或いは使用する。‘‘ＰＣＯＭＭＩＴ’’命令は、ＭＭＵ２１０アウトオブオーダー（ｏｕｔ−ｏｆ−ｏｒｄｅｒ）問題を除去する。
【０１１７】
実施形態として、ブロックモードデータ移動のハイレベル（ｈｉｇｈ−ｌｅｖｅｌ）な流れは次の通りである。特定バンクを有するソフトウェア又はＭＭＵ２１０に対するコントローラ所有状態２３８を設定する。‘‘ＭｅｍｃｏｐｙＡ’’を具現するか、或いは有効化する。‘‘ＰＣＯＭＭＩＴ’’を具現するか、或いは有効化する。特定バンクを有するＳＯＣ又は管理回路２１８に対する管理所有状態２４０を設定する。‘‘ＭｅｍｃｏｐｙＢ２’’と共に‘‘ＭｅｍｃｏｐｙＢ’’又は‘‘ＭｅｍｃｏｐｙＢ１’’を具現するか、或いは有効化する。続いて、特定バンクに対するコントローラ所有状態２３８を設定する。上述した例は書込みの場合に対する例である。
【０１１８】
また、コンピューティングシステム１００の動作の間に、コンピューティングシステム１００は、不揮発性メモリ装置２２２内の情報にアクセスし、格納するためにＢＷ部分２３４を使用して不揮発性メモリ装置２２２にアクセスする。メモリバスは、間接的な方法又はプロセッサーを通じて不揮発性メモリ装置２２２内のデータ又は情報の格納又はアクセスを有効化するか、或いは具現する。ＢＷ部分２３４は、上述したように動的に構成される。
【０１１９】
また、コンピューティングシステム１００の動作の間に、マルチプレクサー２４８を使用しないか、或いはマルチプレクサー２４８無しに不揮発性メモリ装置２２２、揮発性メモリ装置２２０、又はそれらの組合せ内の情報にアクセスし、格納するために、コンピューティングシステム１００は、ＭＤＢ２１６にアクセスする。ストレージコンポーネント２０８又はその中の揮発性メモリ装置２２０に対するデータ又は情報に対する要請又はアクセスは、ＤＲＡＭに直接的にアクセスするためにマルチプレクサー２４８を使用しないか、或いはこれの代わりにＭＤＢ２１６を使用する。
【０１２０】
揮発性メモリ装置２２０と共に不揮発性メモリ装置２２２は、ＮＶＤＩＭＭが既存の構成要素（例えば、ＤＲＡＭ及びフラッシュ）と共にＰＭモード２０２とブロックモード２０４との全てを支援するように提供することが分かる。ここで、揮発性メモリ装置２２０は、ソフトウェア内に具現されたスマートメモリドライバー２１４にしたがってＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを含むように動的に構成され、管理される。性能向上、ビックデータ時代の電力節減、又はそれらの組合せのために、多様な部分に対する動的構成は、効果的にデータ持続性（ｐｅｒｓｉｓｔｅｎｃｅ）をコントロール回路１１２（例えば、ＣＰＵ）の近くに移動させることも分かる。
【０１２１】
また、他のＤＲＡＭタイミングパラメーターを観察する管理回路２１８とＭＭＵ２１０と共にタイミング問題の解決に基づいて、管理回路２１８とＭＤＢ２１６の位置及び構成が向上した正確度を提供することも分かる。コントローラコンポーネント２０６と揮発性メモリ装置２２０との間に位置した管理回路２１８、不揮発性メモリ装置２２２、及びＭＤＢ２１６は、タイミングを変更するか、或いは多様なタイミングパラメーターを表示するための機能を提供する。また、コントローラコンポーネント２０６と揮発性メモリ装置２２０との間に位置したＭＤＢ２１６、不揮発性メモリ装置２２２、及び管理回路２１８は、タイミングを変更するか、或いは多様なタイミングパラメーターを表示するための機能を提供する。タイミング問題と関連した細部事項は以下にて説明する。
【０１２２】
更に、ストレージコンポーネント２０８内のデータのアクセス及びストレージの処理のためのコントローラ所有状態２３８及び管理所有状態２４０の具現及び使用は、ストレージコンポーネント２０８に対する向上した有用性を提供することも分かる。コントローラ所有状態２３８及び管理所有状態２４０の使用は、従来の技術と共にＮＶＤＩＭＭ−ＦとＮＶＤＩＭＭ−Ｎとの両方に対する支援を可能にする。また、更に、このことは、２つの装置の特性を１つの装置又は回路ユニットに混合し、バランシングし、選択するための機能を可能であるようにする。
【０１２３】
更に、メモリ構成プロフィール２４２がストレージ回路１１４に向上した適応性（ｆｌｅｘｉｂｉｌｉｔｙ）を提供することも分かる。メモリ構成プロフィール２４２は、ＰＭ部分２３０、ＨＷＣ部分２３２、ＢＷ部分２３４、又はそれらの組合せを構成し、管理するためにメモリ要求事項２５０に基づいて動的に生成される。ストレージコンポーネント２０８とその中の揮発性メモリ装置２２０は、メモリ構成プロフィール２４２を使用してメモリ要求事項２５０にしたがって動的に構成され、マッチ（ｍａｔｃｈ）される。動的な構成は、１つのＮＶＤＩＭＭを使用してＮＶＤＩＭＭ−Ｆ、ＮＶＤＩＭＭ−Ｎ、又はそれらの組合せが可能にするように使用される。
【０１２４】
図３は、図２のストレージコンポーネントの例示的なタイミングダイヤグラムである。タイミングダイヤグラムは、図２の揮発性メモリ装置２２０と関連したタイミングを説明するためである。
【０１２５】
ＤＲＡＭタイミング問題を解決するために、図１のコンピューティングシステム１００は、図２のスマートメモリドライバー２１４、図２のＭＤＢ２１６、図２の管理回路２１８、又はそれらの組合せを使用する。コンピューティングシステム１００は、ＭＭＵ２１０と管理回路２１８に対する多様なＤＲＡＭタイミングパラメーターを表示することによってタイミング問題を解決するために上述した構造と構成を使用する。
【０１２６】
図３の例において示すように、揮発性メモリ装置２２０又はＤＲＡＭに対して‘‘ｔＡＡ’＝ｔＡＡ−５ｃｌｋ’’となる。ＭＭＵ２１０は、何らの変化無しに‘‘ｔＡＡ’’を維持する。管理回路２１８又はＳＯＣが特定バンクＸのＡＣＴ／ＣＡＳを要請し、ソフトウェアホストメモリコントローラ又はスマートメモリドライバー２１４が他の特定バンクＹのＡＣＴ／ＣＡＳを同時に要請する場合、ソフトウェアホストメモリコントローラからの要請は、管理回路２１８のリスケジューリング（ｒｅｓｃｈｅｄｕｌｉｎｇ）によって‘‘５ｃｌｋ’’くらい遅延される。バンクＸに対する第１要請は、揮発性メモリ装置２２０において‘‘ｔＲＣＤ＋ｔＡＡ−１ｃｌｋ’’により終了される。バンクＹに対する第２要請は、‘‘ｔＲＣＤ＋ｔＡＡ＋４ｃｌｋ’’により終了される。
【０１２７】
図４は本発明の実施形態によるコンピューティングシステムの動作方法を示す順序図である。方法４００は、Ｓ４０２、Ｓ４０４、Ｓ４０６、Ｓ４０８、Ｓ４１０、及びＳ４１２段階を含む。Ｓ４０２段階において、ユーザー特性、アプリケーション特性、又はそれらの組合せを示すメモリ要求事項を決定する。Ｓ４０４段階において、ソフトウェアにおいて具現されたスマートメモリドライバーを利用してメモリ要求事項に基づいてメモリ構成プロフィールを生成する。メモリ構成プロフィールは、ＰＭ部分、ＨＷＣ部分、及びＢＷ部分に該当する部分の位置、部分の大きさ、又はそれらの組合せを含む。
【０１２８】
Ｓ４０６段階において、メモリ要求事項にしたがって揮発性メモリ装置のＰＭ部分、ＨＷＣ部分、及びＢＷ部分をバランシング（ｂａｌａｎｃｉｎｇ）することに基づいて揮発性メモリ装置を構成する。ここで、揮発性メモリ装置は、ＰＭモード、ブロックモード、又はそれらの組合せによって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリである。Ｓ４０６段階において、追加的に、該当する部分の位置、部分の大きさ、それらの組合せによって揮発性メモリ装置内にＰＭ部分、ＨＷＣ部分、ＢＷ部分、又はそれらの組合せを定義することによって、メモリ構成プロフィールに基づいて揮発性メモリ装置を構成する。
【０１２９】
方法４００は、コンピューティングシステム１００のランタイムの間に動作又はプロセスをさらに含む。Ｓ４０８段階において、揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は管理所有状態にしたがってバンク所有レジスターを設定する。
【０１３０】
Ｓ４１０段階において、マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、不揮発性メモリ装置、揮発性メモリ装置、又はそれらの組合せに情報を格納し、アクセスするためにＭＤＢにアクセスする。方法４００は、Ｓ４１２段階において、不揮発性メモリ装置内に情報を格納し、アクセスするためにＢＷ部分を使用して不揮発性メモリ装置にアクセスすることを含む。
【０１３１】
方法４００は、上述した１つ以上の回路、１つ以上の構成要素、１つ以上の部分、１つ以上の装置、又はそれらの組合せを利用して具現されるか、或いは有効化される。例えば、上述したように、図２のコントローラコンポーネント２０６、図２のストレージコンポーネント２０８、又はそれに含まれたものの組合せと共に、方法４００は、図１のコントロール回路１１２、図１のストレージ回路１１４、又はそれらの組合せを利用して具現されるか、或いは有効化される。
【０１３２】
さらに具体的な例として、Ｓ４０２、Ｓ４０４、又はそれらの組合せに表現された方法又はプロセスは、コントローラコンポーネント２０６を利用して具現されるか、或いは有効化される。また、さらに具体的な例として、Ｓ４０６に表現された方法又はプロセスは、図２のスマートメモリドライバー２１４、図２の揮発性メモリ装置２２０、図２の管理回路２１８、又はそれらの組合せを利用して具現されるか、或いは有効化される。
【０１３３】
また、さらに具体的な例として、Ｓ４０８に表現された方法又はプロセスは、スマートメモリドライバー２１４、揮発性メモリ装置２２０、図２の不揮発性メモリ装置２２２、管理回路２１８、又はそれらの組合せを利用して具現されるか、或いは有効化される。また、さらに具体的な例として、Ｓ４１０に表現された方法又はプロセスは、コントローラコンポーネント２０６、揮発性メモリ装置２２０、不揮発性メモリ装置２２２、管理回路２１８、又はそれらの組合せを利用して具現されるか、或いは有効化される。また、さらに具体的な例として、Ｓ４１２に表現された方法又はプロセスは、コントローラコンポーネント２０６、揮発性メモリ装置２２０、不揮発性メモリ装置２２２、管理回路２１８、図２のＭＤＢ２１６、又はそれらの組合せを利用して具現されるか、或いは有効化される。
【０１３４】
結果的に方法、プロセス、器具（ａｐｐａｒａｔｕｓ）、装置、生成物、及び／又はシステムは、簡単であり、費用効率が高く、複雑ではなく、非常に多用途であり、正確であり、敏感であり、効果的である。また、これらは準備され、効果的であり、経済的に製造され、利用、応用できる公知の構成要素を適用することによって具現できる。本発明の実施形態に対する他の重要な観点は、費用節減、システムの単純化、性能向上という伝統的なトレンド（ｔｒｅｎｄ）を価値あるように（ｖａｌｕａｂｌｙ）支援し、サービスするという点である。
【０１３５】
本発明の実施形態のこのような観点及び他の価値ある観点は、結果的に技術の状態を少なくとも次の段階に進行させる。
【０１３６】
本発明を具体的な最高のモードと関連して記述したが、多様な代替、修正、及び変形が前述した説明に照らして当業者に明らかである。したがって、特許請求の範囲に属するすべての代替、修正、変形を本願は含む。本明細書に明示するか、或いは添付した図面に図示したすべての構成要素は例示的なことであり、本発明を制限するためのことではない。
【符号の説明】
【０１３７】
１００  コンピューティングシステム
１０２  装置
１１２  コントロール回路
１１４  ストレージ回路
１１６  通信回路
１１８  ユーザーインターフェイス
１２２  コントロールインターフェイス
１２４  ストレージインターフェイス
１２６  ソフトウェア
１２８  通信インターフェイス
１３０  ディスプレイインターフェイス
２０２  ＰＭモード
２０４  ブロックモード
２０６  コントローラコンポーネント
２０８  ストレージコンポーネント
２１０  ＭＭＵ
２１２  ＰＭＦＳ
２１４  スマートメモリドライバー
２１６  ＭＤＢ
２１８  管理回路
２２０  揮発性メモリ装置
２２２  不揮発性メモリ装置
２２４  パワーストレージ装置
２２６  １つ以上のデータパス
２２８  １つ以上のコントロールパス
２３０  ＰＭ部分
２３２  ＨＷＣ部分
２３４  ＢＷ部分
２３６  バンク所有レジスター
２３８  コントローラ所有状態
２４０  管理所有状態
２４２  メモリ構成プロフィール
２４４  部分の位置
２４６  部分の大きさ
２４８  マルチプレクサー
２５０  メモリ要求事項
２５２  ユーザー特性
２５４  アプリケーション特性
４００  方法
【図１】
2017130194.tif 000003
【図２】
2017130194.tif 000004
【図３】
2017130194.tif 000005
【図４】
2017130194.tif 000006