(57)【要約】【課題】メモリを効率的に増加させてデータを格納するためのコンピューティングシステム及びその動作方法を提供する。【解決手段】本発明によるコンピューティングシステムは中央処理装置と、メモリアダプター回路及び第１メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第１メモリインターフェイスと、前記第１メモリに接続された第２メモリインターフェイスと、を含み、前記第１メモリインターフェイスは、２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであり、前記メモリアダプター回路は、前記第１メモリの格納容量の増加を用いて前記第１メモリにデータを格納し、前記第１メモリからデータを回収するよう構成される。【選択図】  図２
2018060538.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）と、
メモリアダプター回路及び第１メモリを含むメモリシステムと、を有し、
前記メモリアダプター回路は、前記中央処理装置に接続された第１メモリインターフェイスと、前記第１メモリに接続された第２メモリインターフェイスと、を含み、
前記第１メモリインターフェイスは、２倍速同期式（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ）ダイナミックランダムアクセスメモリインターフェイスであり、
前記メモリアダプター回路は、前記第１メモリの格納容量の増加を用いて前記第１メモリにデータを格納し、前記第１メモリからデータを回収するよう構成されることを特徴とするコンピューティングシステム。
【請求項２】
前記第１メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも１つを含むことを特徴とする請求項１に記載のコンピューティングシステム。
【請求項３】
前記第１メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項４】
前記第２メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項５】
前記第１メモリインターフェイスは、フラッシュメモリインターフェイスであり、前記コンピューティングシステムは、ブロック装置として前記メモリシステムを動作するように構成されることを特徴とする請求項３に記載のコンピューティングシステム。
【請求項６】
前記中央処理装置は、メモリ管理回路を通じて前記メモリアダプター回路に接続されることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項７】
前記第１メモリは、ダイナミックランダムアクセスメモリであり、前記第２メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項８】
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路（ｓｉｎｇｌｅ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）であることを特徴とする請求項１に記載のコンピューティングシステム。
【請求項９】
メモリ管理回路を通じて前記中央処理装置に接続される第２メモリをさらに有することを特徴とする請求項１に記載のコンピューティングシステム。
【請求項１０】
前記第２メモリは、第３メモリインターフェイスを通じて前記メモリ管理回路に接続され、前記第３メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項９に記載のコンピューティングシステム。
【請求項１１】
前記中央処理装置は、前記第２メモリにページキャッシュを保持するように構成され、
前記中央処理装置は、前記ページキャッシュからクリーンページを追い出す（ｅｖｉｃｔｉｎｇ）時、前記クリーンページに対するクリーンキャッシュ機能を呼び出すよう構成され、前記クリーンキャッシュ機能は、前記クリーンページを格納するために構成され、
前記クリーンページを格納するための充分な空間が前記第１メモリで利用可能する時、前記クリーンページは、前記第１メモリに格納され、前記クリーンページを格納するための充分な空間が前記第１メモリで利用可能でない時は、前記クリーンページは、持続性（ｐｅｒｓｉｓｔｅｎｔ）格納装置に格納されることを特徴とする請求項９に記載のコンピューティングシステム。
【請求項１２】
前記クリーンキャッシュ機能は、推定増加比率に基づいて前記第１メモリで前記クリーンページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第１メモリに格納されたデータに対する増加比率の関数であることを特徴とする請求項１１に記載のコンピューティングシステム。
【請求項１３】
前記中央処理装置は、前記第２メモリに使用者メモリ空間を保持するよう構成され、
前記中央処理装置は、前記使用者メモリ空間からダーティページを追い出す（ｅｖｉｃｔｉｎｇ）時、前記ダーティページに対するフロントスワップ機能を呼び出すよう構成され、前記フロントスワップ機能は、前記ダーティページを格納するよう構成され、
前記ダーティページを格納するための充分な空間が前記第１メモリで利用可能する時、前記ダーティページは、前記第１メモリに格納され、前記ダーティページを格納するための充分な空間が前記第１メモリで利用可能でない時は、前記ダーティページは、持続性格納装置に格納されることを特徴とする請求項９に記載のコンピューティングシステム。
【請求項１４】
前記フロントスワップ機能は、推定増加比率に基づいて前記第１メモリで前記ダーティページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第１メモリに格納されたデータに対する増加比率の関数であることを特徴とする請求項１３に記載のコンピューティングシステム。
【請求項１５】
前記中央処理装置は、１つ以上のアプリケーションを実行し、
システム情報関数に対する１つ以上のアプリケーションに応答して、前記第１メモリのサイズ及び前記第２メモリのサイズに基づいたトータル有効（ｔｏｔａｌ  ａｖａｉｌａｂｌｅ）メモリに対する値、及び前記第１メモリで使用可能なメモリの量（ｔｈｅ  ａｍｏｕｎｔ  ｏｆ  ｆｒｅｅ  ｍｅｍｏｒｙ）及び前記第２メモリで使用可能なメモリの量に基づいたトータル使用可能な（ｔｏｔａｌ  ｆｒｅｅ）メモリに対する値を返す（ｒｅｔｕｒｎ）よう構成されることを特徴とする請求項９に記載のコンピューティングシステム。
【請求項１６】
前記トータル使用可能なメモリに対する前記値は、前記第２メモリで使用可能なメモリの量及び最小増加比率と、前記第１メモリで使用可能なメモリの量とを乗算した値を総和した値であり、
前記最小増加比率は、システム開始の後に設定された間隔が経過した時、前記設定された間隔の時間の間に前記第１メモリに格納されたデータに対する増加比率の関数であり、有意義な推定の基礎となるデータが利用できない場合、「１．０」であることを特徴とする請求項１５に記載のコンピューティングシステム。
【請求項１７】
中央処理装置と、メモリアダプター回路及び第１メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第１メモリインターフェイスと前記第１メモリに接続された第２メモリインターフェイスとを含み、前記第１メモリインターフェイスは、２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであるコンピュータシステムの動作方法であって、
前記第１メモリの格納容量の増加を用いて前記第１メモリにデータを格納し、前記第１メモリからデータを回収する段階を有することを特徴とするコンピュータシステムの動作方法。
【請求項１８】
前記第１メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも１つを含むことを特徴とする請求項１７に記載のコンピュータシステムの動作方法。
【請求項１９】
前記メモリシステムをフラッシュメモリプロトコルで動作することができるブロック装置として使用する段階をさらに有することを特徴とする請求項１７に記載のコンピュータシステムの動作方法。
【請求項２０】
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路であることを特徴とする請求項１７に記載のコンピュータシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ格納装置に関し、特に、メモリ増加を用いてデータを格納するためのコンピューティングシステム及びその動作方法に関する。
【背景技術】
【０００２】
データベース、仮想デスクトップコンピュータインフラ（ｉｎｆｒａ  ｓｔｒｕｃｔｕｒｅ）、及びデータ分析のような一部の現代のアプリケーションは、大きなメインメモリ空間を有する可能性がある。
システムが拡張されることによって、このようなメモリ容量の要求が大きく増加している。
したがって、より大きい格納容量を提供するシステム及び方法が要求されるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は上記従来の大きなメインメモリ空間を有する可能性があるシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、メモリを効率的に増加させてデータを格納するためのコンピューティングシステム及びその動作方法を提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するためになされた本発明によるコンピューティングシステムは中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）と、メモリアダプター回路及び第１メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第１メモリインターフェイスと、前記第１メモリに接続された第２メモリインターフェイスと、を含み、前記第１メモリインターフェイスは、２倍速同期式（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ）ダイナミックランダムアクセスメモリインターフェイスであり、前記メモリアダプター回路は、前記第１メモリの格納容量の増加を用いて前記第１メモリにデータを格納し、前記第１メモリからデータを回収するよう構成されることを特徴とする。
【０００５】
前記第１メモリの格納容量の増加は圧縮、重複除去、及びエラー訂正の中の少なくとも１つを含むことが好ましい。
前記第１メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記第２メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記第１メモリインターフェイスは、フラッシュメモリインターフェイスであり、前記コンピューティングシステムはブロック装置として前記メモリシステムを動作するように構成されることが好ましい。
前記中央処理装置はメモリ管理回路を通じて前記メモリアダプター回路に接続されることが好ましい。
前記第１メモリは、ダイナミックランダムアクセスメモリであり、前記第２メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路（ｓｉｎｇｌｅ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）であることが好ましい。
メモリ管理回路を通じて前記中央処理装置に接続される第２メモリをさらに有することが好ましい。
前記第２メモリは、第３メモリインターフェイスを通じて前記メモリ管理回路に接続され、前記第３メモリインターフェイスは、第２世代又はそれより高い世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
【０００６】
前記中央処理装置は、前記第２メモリにページキャッシュを保持するように構成され、前記中央処理装置は、前記ページキャッシュからクリーンページを追い出す（ｅｖｉｃｔｉｎｇ）時、前記クリーンページに対するクリーンキャッシュ機能を呼び出すよう構成され、前記クリーンキャッシュ機能は、前記クリーンページを格納するために構成され、前記クリーンページを格納するための充分な空間が前記第１メモリで利用可能する時、前記クリーンページは前記第１メモリに格納され、前記クリーンページを格納するための充分な空間が前記第１メモリで利用可能でない時は、、前記クリーンページは、持続性（ｐｅｒｓｉｓｔｅｎｔ）格納装置に格納されることが好ましい。
前記クリーンキャッシュ機能は、推定増加比率に基づいて前記第１メモリで前記クリーンページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は設定された時間隔間の間に前記第１メモリに格納されたデータに対する増加比率の関数であることが好ましい。
前記中央処理装置は、前記第２メモリに使用者メモリ空間を保持するよう構成され、前記中央処理装置は、前記使用者メモリ空間からダーティページを追い出す（ｅｖｉｃｔｉｎｇ）時、前記ダーティページに対するフロントスワップ機能を呼び出すよう構成され、前記フロントスワップ機能は、前記ダーティページを格納するよう構成され、前記ダーティページを格納するための充分な空間が前記第１メモリで利用可能する時、前記ダーティページは前記第１メモリに格納され、前記ダーティページを格納するための充分な空間が前記第１メモリで利用可能でない時は、前記ダーティページは、持続性格納装置に格納されることが好ましい。
前記フロントスワップ機能は、推定増加比率に基づいて前記第１メモリで前記ダーティページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第１メモリに格納されたデータに対する増加比率の関数であることが好ましい。
【０００７】
前記中央処理装置は、１つ以上のアプリケーションを実行し、システム情報関数に対する１つ以上のアプリケーションに応答して、前記第１メモリのサイズ及び前記第２メモリのサイズに基づいたトータル有効（ｔｏｔａｌ  ａｖａｉｌａｂｌｅ）メモリに対する値、及び前記第１メモリで使用可能なメモリの量（ｔｈｅ  ａｍｏｕｎｔ  ｏｆ  ｆｒｅｅ  ｍｅｍｏｒｙ）及び前記第２メモリで使用可能なメモリの量に基づいたトータル使用可能な（ｔｏｔａｌ  ｆｒｅｅ）メモリに対する値を返す（ｒｅｔｕｒｎ）よう構成されることが好ましい。
前記トータル使用可能なメモリに対する前記値は、前記第２メモリで使用可能なメモリの量及び最小増加比率と、前記第１メモリで使用可能なメモリの量とを乗算した値を総和した値であり、前記最小増加比率は、システム開始の後に設定された間隔が経過した時、前記設定された間隔の時間の間に前記第１メモリに格納されたデータに対する増加比率の関数であり、有意義な推定の基礎となるデータが利用できない場合、「１．０」であることが好ましい。
【０００８】
上記目的を達成するためになされた本発明によるコンピュータシステムの動作方法は、中央処理装置と、メモリアダプター回路及び第１メモリを含むメモリシステムとを有し、前記メモリアダプター回路は前記中央処理装置に接続された第１メモリインターフェイスと前記第１メモリに接続された第２メモリインターフェイスとを含み、前記第１メモリインターフェイスは２倍速同期式ダイナミックランダムアクセスメモリインターフェイスであるコンピュータシステムの動作方法であって、前記第１メモリの格納容量の増加を用いて前記第１メモリにデータを格納し、前記第１メモリからデータを回収する段階を有することを特徴とする。
【０００９】
前記第１メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも１つを含むことが好ましい。
前記メモリシステムをフラッシュメモリプロトコルで動作することができるブロック装置として使用する段階をさらに有することが好ましい。
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路であることが好ましい。
【発明の効果】
【００１０】
本発明に係るコンピューティングシステム及びその動作方法によれば、圧縮及び／又は重複除去及び／又はエラー訂正によってインラインメモリ増加を配置するための効率的な擬似メモリメカニズムにより、メモリを効率的に増加させてデータを格納するためのシステムを提供することができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る擬似メインメモリとしてメモリＡＢＣＤＥを使用したシステムメモリ階層を示す図面である。
【図２】本発明の一実施形態に係るコンピューティングシステムのハードウェアブロック図である。
【図３】本発明の一部の実施形態に係るハイブリッドハードウェア−ソフトウェアブロック図である。
【図４】本発明の実施形態に係るｓｙｓｉｎｆｏ関数呼出に対する応答を修正するためのシステムのソフトウェアブロック図である。
【発明を実施するための形態】
【００１２】
次に、本発明に係るコンピューティングシステム及びその動作方法を実施するための形態の具体例を図面を参照しながら説明する。
【００１３】
添付した図面と関連して以下本明細書の詳細な説明は、本発明に関して提供されるコンピューティングシステム（擬似メインメモリシステム）の例示的な実施形態に対する説明であり、本発明が構成するか、或いは利用することができる単一の形態を示すものではない。
詳細な説明は、例示的な実施形態と関連して本発明の特徴に対する説明である。
しかし、本発明の思想や範囲内に含まれる他の実施形態によって同一であるか、或いは同一の機能及び構造が遂行されることを理解されるべきである。本明細書で示す同じ構成の番号は同じ要素又は特徴を示す。
【００１４】
本発明の実施形態において、システムは“メモリＡＢＣＤＥ”（以下、この呼称を用いるものとする。）と呼ぶことができる圧縮及び／又は重複除去及び／又はエラー訂正によってインラインメモリ増加を配置するための効率的な擬似メモリメカニズムである。
このようなシステムは、メモリシステムに完全に局部的なハードウェア技術に依存しながら、メモリ密度を劇的に増加させることができる。
メモリＡＢＣＤＥシステムのための課題は、２倍速同期式ダイナミックランダムアクセスメモリ（ＤＤＲ：ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）バスに対する統合と、このようなシステムが提供することができる可変メモリ密度に対する管理（例えば、アプリケーションデータ又は外部条件（例えば、エラーに影響を及ぶ外部条件）に応じて変化するメモリ密度）を含む。
【００１５】
さらに、一部のアプリケーションは、メモリＡＢＣＤＥシステムによって提供される追加容量を明示的に使用するように作成されなくともよい。
本発明の実施形態において、システムは、シミュレーションされたシステムメモリ容量を提供して使用者空間アプリケーションが大容量のメモリを処理できるようにする。
本発明の実施形態において、オペレーティングシステム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）は、下部メモリの物理的構成及び容量を認識し、関連動作を遂行してアプリケーションからこのような細部事項をマスクする。
使用者空間下で、オペレーティングシステムのメモリ管理装置（ＭＭＵ：ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）（又は“メモリ管理回路”）は、リナックス（登録商標）カーネルに存在する超越メモリ（ｔｒａｎｓｃｅｎｄｅｎｔ  ｍｅｍｏｒｙ）機能を再使用してメモリＡＢＣＤＥシステムをＤＤＲインターフェイス（例えば、第４世代ＤＤＲ（ＤＤＲ４）インターフェイス）に対する高速スワップブロック装置として示す。
【００１６】
図１は、本発明の一実施形態に係る擬似メインメモリとしてメモリＡＢＣＤＥを使用したシステムメモリ階層を示す図である。
メモリＡＢＣＤＥシステムは、ブロック装置として動作できるので、メモリＡＢＣＤＥ“ドライブ”であると称する。
【００１７】
図２は、本発明の一実施形態に係るコンピューティングシステムのハードウェアブロック図である。
本発明の一実施形態において、メモリＡＢＣＤＥシステムを使用するコンピューティングシステムは、次の３つの構成を含み得る。
第１に、コンピューティングシステムは、フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）フォームファクタ及びインターフェイス（例えば、図２で、メモリＡＢＣＤＥシステム２４０とメモリ管理回路２２０との間のインターフェイス）を具備する不揮発性デュアルインラインメモリモジュール（ＮＶＤＩＭＭ）に基づいたメモリＡＢＣＤＥシステム２４０を含む。
フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）は、メモリＡＢＣＤＥシステムと共通の属性を有し、このような理由は、例えば両方とも可変格納密度を示すことができるためである。
【００１８】
第２に、コンピューティングシステムは、超越（ｔｒａｎｓｃｅｎｄｅｎｔ）メモリを基盤としたソフトウェアインフラを使用することができる。
このようなインフラは、メモリＡＢＣＤＥシステムにアクセスするためにオペレーティングシステムによって使用されるメモリＡＢＣＤＥドライバーであると称するドライバーを含む。
【００１９】
第３に、コンピューティングシステムは、増加したメインメモリ容量をシミュレーションするために修正されたシステム機能（例えば、修正されたシステム情報（関数（ｓｙｓｉｎｆｏ（）））を採用することができる。
【００２０】
フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコルは、ＤＤＲメモリバス上にフラッシュモジュールを配置するために関連技術分野のアプリケーションで採用することができる。
このようなアプリケーションは、６４バイトキャッシュラインを具備する短いアクセスバーストのみをサポートするインターフェイス（例えば、ＤＤＲインターフェイス）を使用して長いアクセス待機時間を有するブロックアクセスを可能にすることができる。
このようなアプリケーションでは、アドレス空間はＤＤＲコマンドバスが自身のピン制限（ｐｉｎ  ｌｉｍｉｔｓ）内でロジックブロックアドレス（ＬＢＡ）を伝送できないほど、十分に大きい場合がある。
したがって、フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）インターフェイスは、ＤＲＡＭデータバスを用いてフラッシュモジュールに命令（アドレスを含む）を伝送することができる。
【００２１】
本発明の実施形態において、ブロックアクセスを提供するためにダイナミックランダムアクセスメモリ（ＤＲＡＭ）基盤メモリＡＢＣＤＥシステムに対するアクセスを含むようにフラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコルが代わりに採用される。
本発明の実施形態において、メモリＡＢＣＤＥシステムは、フラッシュ基盤システムより少ない容量を有するので、フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコルが命令とアドレスとのための命令及びアドレスバス（データバスの代わりに）を使用するように修正することができる。
このような実施形態で、アドレスは、命令及びアドレスバス上に（メモリＡＢＣＤＥドライバーによって）書き込まれ、したがってメモリ位置に直接アクセス（修正されないフラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコルでのようにアドレス自体を小さいバッファに書き込む代わりに）する。
【００２２】
本発明の実施形態において、システムは、メモリＡＢＣＤＥシステムに対する読出し及び書込み命令がキャッシュされないように保障し、したがって命令が中央処理装置（ＣＰＵ）キャッシュからフラッシュ（ｆｌｕｓｈ）されるのを待つ代わりにメモリＡＢＣＤＥシステムに直接伝送される。
これを達成するために、メモリＡＢＣＤＥドライバーは、フラッシュキャッシュライン（例えば、ＣＬＦＬＵＳＨ）ＣＰＵ命令及びフラッシュオンデマンド（例えば、ＰＣＯＭＭＩＴ）ＣＰＵ命令を使用して命令がＡＢＣＤＥモジュールに到達するようにする。
追加的に、メモリＡＢＣＤＥシステムで効率的なメモリ−メモリダイレクトメモリアクセス（ＤＭＡ）エンジンを、メインメモリとメモリＡＢＣＤＥシステムとの間でページを速やかに移動することができるように、メモリＡＢＣＤＥシステムのブロック基盤の内部ページからコンピューティングシステムのＤＤＲ４バスにデータを伝送するために採用することができる。
【００２３】
図２の実施形態で、中央処理装置（ＣＰＵ）２１０は、メモリ管理回路（ＭＭＵ）２２０を通じて
（ｉ）メインメモリ２３０（ＤＤＲメモリ、例えば、ＤＤＲ４メモリ又は他の実施形態で第２世代又はそれ以上の世代の２倍速同期式ダイナミックランダムアクセスメモリインターフェイス（例えば、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４、又はＤＤＲ５メモリ））と通信する。
メモリ管理回路２２０は、またメモリアダプター回路２５０及び中間メモリ２６０（その役割がメインメモリ２３０と持続性記憶装置（例えば、ソリッドステートドライブ（ＳＳＤ））との中間役割をすることと看做されるので、“中間メモリ”と称される）を含むメモリＡＢＣＤＥシステム２４０に接続される。
【００２４】
メモリアダプター回路２５０は、システムオンチップ（ＳｏＣ）であり、例えば、それはプロセッサ、メモリ（プロセッサのためのプログラム及びデータを格納するための）、及び他のロジックやドライブ回路を含む単一集積回路である。
メモリアダプター回路２５０は、メモリ管理回路２２０に接続された（例えば、ＤＤＲバスを通じて）第１メモリインターフェイス（例えば、ＤＤＲ４インターフェイス）及び中間メモリ２６０に接続された第２メモリインターフェイスを含む。
第２メモリインターフェイスは、中間メモリ２６０が互換可能な任意の適合なインターフェイス（例えば、中間メモリ２６０がＤＤＲ４メモリであれば、ＤＤＲ４インターフェイス）である。
メモリアダプター回路２５０は、先に説明したように、第１メモリインターフェイスで、フラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコル、又は修正されたフラッシュメモリ（ＮＶＤＩＭＭ−Ｆ）プロトコル（後者はデータバスの代わりに制御及びアドレスバス上のアドレスを送信する）を実行する。
【００２５】
メモリアダプター回路２５０は、本発明の実施形態において、圧縮、重複除去、及びエラー訂正の中の１つ以上によってメモリ増加（メモリ可用空間増加）を提供するようにさらに構成することができる。
例えば、メモリアダプター回路２５０は、メモリ管理回路２２０から受信したデータを圧縮して中間メモリ２６０に格納し、メモリ管理回路２２０からの要請によって中間メモリ２６０から圧縮されたデータを取り出し、圧縮されたデータの圧縮を解除してメモリ管理回路２２０に伝送することができる。
同様に、メモリアダプター回路２５０は、中間メモリ２６０に格納されたデータから重複したデータを除去し（重複エントリが含まれたデータがメモリ管理回路２２０によって要請される時、重複エントリを復元する）、中間メモリ２６０にデータを格納する前にエラー訂正コードを通じてデータをエンコーディングし、中間メモリ２６０から回収する任意のデータに対してエラー訂正を遂行することができる。
【００２６】
図３は、本発明の一実施形態に係るハイブリッドハードウェア−ソフトウェアブロック図である。
中央処理装置２１０は、メインメモリ２３０及びメモリＡＢＣＤＥシステム２４０を含む複合メモリ３１０にアクセスする。
ブーティングの時（Ａｔ  ｂｏｏｔ−ｕｐ）、基本入／出力システム（ＢＩＯＳ）の命令は、ＤＤＲバスのアドレス範囲をメモリＡＢＣＤＥシステムに登録し、アドレス範囲に対してアドレスインタリービングを非活性化し、ブロック装置に対応するアドレス範囲を指定する。
【００２７】
メモリＡＢＣＤＥシステム２４０は、
（ｉ）データを圧縮及び圧縮解除する等の一部の動作が個別的なワードアクセスよりブロックアクセスにさらに適合であり、
（ｉｉ）中央処理装置２１０が同期式ＤＤＲメモリとしての動作に不適切に依存しないので、ブロック装置として登録される。
【００２８】
本発明の実施形態において、オペレーティングシステムがローディングされる時、メモリＡＢＣＤＥドライバー３２０は、フロントスワップ機能及びクリーンキャッシュ機能を登録し、実行する。
このような機能は、このような機能がリナックス（登録商標）カーネルに存在し、使用可能であれば、リナックス（登録商標）カーネルの超越（ｔｒａｎｓｃｅｎｄｅｎｔ）メモリ機能であると称される。
超越メモリ機能は、カーネル動作をインターセプトして
（ｉ）クリーンキャッシュページ、又は
（ｉｉ）ダーティ（ｄｉｒｔｙ）使用者ページを追い出し（ｅｖｉｃｔｉｎｇ）、メモリＡＢＣＤＥドライバー３２０のクリーンキャッシュ及びフロントスワップ機能を呼び出すことができる。
【００２９】
例えば、クリーンキャッシュページが追い出される時、超越メモリ機能は、追い出し動作をインターセプトし、メインメモリ２３０からメモリＡＢＣＤＥシステム２４０にページをコピーすることができるクリーンキャッシュ機能を呼び出し、中央処理装置２１０によって次にアクセスされるか、又は代わりに削除されることより、さらに速くメインメモリ２３０に再びコピーすることができる（後続のアクセスは、ＳＳＤ又はハードドライブのような持続性格納装置から復旧することが要求される）。
ダーティ使用者ページがカーネルによって追い出される時、超越メモリ機能は、追い出し動作をインターセプトし、追い出されるダーティ使用者ページをメモリＡＢＣＤＥシステム２４０にコピーすることができるフロントスワップ機能を呼び出す、これはページを持続性格納装置に書き込むことよりさらに速く遂行される動作である。
【００３０】
メモリＡＢＣＤＥドライバー３２０は、メモリＡＢＣＤＥシステム２４０によって受信された任意の書込み要請を収容又は拒絶するか否かを決定するための方法を含む。
メモリＡＢＣＤＥドライバー３２０は、推定増加比率（ｅｓｔｉｍａｔｅｄ  ａｕｇｍｅｎｔａｔｉｏｎ  ｒａｔｉｏ）によって中間メモリ２６０の自由空間を増加させ、その結果を書き込み要請のデータ量と比較することによってこのような決定を行う。
推定増加比率は、例えば、推定された重複除去比率、即ち重複除去を使用した結果として、どのぐらい多くデータがさらに格納されるかに対する推定値である。
本発明の実施形態において、メモリＡＢＣＤＥドライバー３２０は、完了した書き込み動作に対する実際の増加比率に基づくか、時間に応じてゆっくりと変化する推定増加比率を算出するように構成され、実際の増加比率（例えば、少ない量のデータに関連された書き込み動作に対する）の大きな変動が推定増加比率の大きな変動をもたらさない。
【００３１】
例えば、始動時に、推定増加比率を、「１．０」に設定し、設定された長さの時間間隔が経過した後、このような設定された長さとエンディングを有する時間間隔の間の実際の増加比率の平均とが同一になるように周期的にアップデートする。
最終使用者（エンドユーザー）及びアプリケーションフレームワークは、他のページングされていない（ｎｏｎ−ｐａｇｅｄ）メモリシステムが（例えば、持続的格納装置内に）二次的な格納装置に存在し、長いアクセス待ち時間を有する可能性があるため、ページングされていないメモリの使用を避けるように特別に設計することができる。
【００３２】
本発明の実施形態において、メモリＡＢＣＤＥシステム２４０はページジングされていないメモリを提供するので、これはメモリＡＢＣＤＥシステム２４０の長所を不必要に先行するようなアプリケーションをもたらす可能性がある。
１つの可能な解法は、開発者がアプリケーションライブラリ及びミドルウェアフレームワークを再作成することであるが、これは多い既存のフレームワークに対する修正を伴う重大な課題を引き起こす。
したがって、本発明の実施形態において、カーネルは、メモリＡＢＣＤＥシステム２４０がシステム情報関数に対する呼び出しのようなシステム呼び出しに応答するためにメインメモリをシミュレーションするように修正され得る。
【００３３】
図４は、本発明の実施形態に係るシステム情報関数呼出に対する応答を修正するためのシステムのソフトウェアブロック図である。
図４を参照すると、本発明の一実施形態において、アプリケーション又はミドルウェア４１０がシステム関数（ｓｙｓｉｎｆｏ（））を呼び出す時、リターンされる構造４２０は
（ｉ）メインメモリ２３０のサイズ及び中間メモリ２６０のサイズに基づいたトータル可用メモリ（ｔｏｔａｌ  ａｖａｉｌａｂｌｅ  ｍｅｍｏｒｙ）（例えば、図４でトラム（ｔｒａｍ））に対する値、及び
（ｉｉ）メインメモリ２３０の使用可能なメモリ（ｆｒｅｅ  ｍｅｍｏｒｙ）の量及び中間メモリ２６０の使用可能なメモリ（ｆｒｅｅ  ｍｅｍｏｒｙ）の量に基づいた全体使用可能なメモリ（ｔｏｔａｌ  ｆｒｅｅ  ｍｅｍｏｒｙ）に対する値を含むことができる。
【００３４】
中間メモリ２６０内での格納を考慮して、トータルメモリ及び使用可能なメモリ（ｆｒｅｅ  ｍｅｍｏｒｙ）情報を増加させる量は、中間メモリ２６０に格納されるデータに対する予想増加比率を考慮する。
本発明の実施形態において、リターンされた全体使用可能なメモリ（ｔｏｔａｌ  ｆｒｅｅ  ｍｅｍｏｒｙ）に対する値は
（ｉ）メインメモリ２３０で使用可能なメモリの量と
（ｉｉ）（１）推定増加比率及び（２）中間メモリ２６０で使用可能なメモリの量を乗算した値の総和と同一である。
【００３５】
推定増加比率は、先に説明した通りに計算してもよく、また、システム開始の時に値「１．０」を使用することによって、有意義な推定の基礎となるデータが利用できない場合には、控えめな（ｃｏｎｓｅｒｖａｔｉｖｅ）アルゴリズム（“最小増加比率”と称する推定の結果）に応じて計算されることができる。
有意義な推定の基礎になるデータが利用可能である時、推定増加比率は、例えば、一定期間の間に完了された書き込み動作に対する最小実際増加比率を使用して計算することができる。
【００３６】
このようなアプローチは、ｍｌｏｃｋ（）システム機能の具現という追加的な課題を提起する可能性がある。
このようなシステム機能は、呼び出されると、仮想アドレスをメインメモリから開始して、２次的な格納装置にスワップしないように特定のサイズのメモリを固定又はロックするよう設計することができる。
本発明の実施形態において、動作時、このようなメモリの一部はメインメモリ２３０に存在し、他の部分はメモリＡＢＣＤＥシステム２４０に存在することができる。
使用者空間要請を履行するために、メモリＡＢＣＤＥドライバーは、メモリＡＢＣＤＥシステム内の現在ページがそこに固定されたままであることを確実にさせ、それらを２次的な格納装置（例えば持続性格納装置）にスワッピングすることを遅延させるよう構成することができる。
【００３７】
前述した観点より、本発明の実施形態は、擬似メインメモリシステムを提供する。
このシステムは、圧縮、重複除去、及び／又はエラー訂正を使用してメモリ増加を遂行するためのメモリアダプター回路を含む。
メモリアダプター回路はメモリに接続され、メモリ増加方法を採用してメモリの有効格納容量を増加させる。
【００３８】
“第１”、“第２”、“第３”等の用語が本明細書で多様な要素、構成、領域、層、及び／又はセクションを説明するために使用するが、このような要素、構成、領域、層、及び／又はセクションがこのような用語に制限されない。
これらの用語は、ただ１つの要素、構成、領域、層、又はセクションを他の要素、構成、領域、層、又はセクションと区別するために使用する。したがって、第１要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第２要素、成分、領域、層、又はセクションとして説明することができる。
本明細書で使用する用語は特定の実施形態を説明するためのことであり、本発明の思想を制限するものではない。
本明細書で使用された用語“実質的に”、“約”、及び類似する用語は類似する用語として使用し、程度（等級）の用語として使用せず、これらによって認識される測定又は計算された値の固有な偏差を説明するためのものである。
【００３９】
本明細書で使用した単数形態は文脈の上に異なりに指示しない限り、複数の形態を含むことと意図する。
本明細書で使用する用語“含んでいる”及び／又は“含む”は説明された特徴、整数、段階、動作、要素、及び／又は構成が存在することを示すが、このような存在を排除することはなく、また１つ以上の他の特徴、整数、段階、動作、要素、構成、及び／又はグループの追加を含むことと理解されるべきである。
本明細書で使用した用語“及び／又は”は１つ以上の関連されて列挙された項目の任意及びすべての組み合わせを含む。
“少なくとも１つ”のような表現は要素の目録の先で要素の全体目録を修正し、要素の個別要素を修正しない。
さらに、本発明の実施形態を説明する時に使用された“することができる”という用語は本発明の１つ以上の実施形態を意味する。また、“例示的な”という用語は例又は説明を意味する。本明細書で使用された用語“使用する”、“使用”、及び“使用された”は各々“活用する”、“活用する”、及び“活用された”と同意語として考慮されることができる。
【００４０】
構成要素又は層が他の構成要素又は層の“上”、“接続された”、“結合された”、又は“隣接する”と言及される時、これは他の構成要素又は層の直ちに上、直ちに接続された、直ちに結合された、直ちに隣接することを示すか、又は構成要素又は層の間に少なくとも１つ以上の構成要素及び層が存在することを示す。対照的に１つの構成要素又は層が他の構成要素又は層の“直ちに上”、“直ちに接続された”、“直ちに結合された”、“直ちに隣接する”ことと言及される時、構成要素又は層間に構成要素及び層が存在しない。
中間に介在される構成が第２構成に連結された第１構成の間に存在する時、第１構成は中間に介在される構成を通じて第２構成に連結されることと看做される。
【００４１】
擬似メインメモリシステムの例示的な実施形態を本明細書で具体的であり、例示的に説明したが、多様な変形及び変更が当業者に可能である。
したがって、本発明の思想にしたがって構成されたコンピューティングシステム及びその動作方法が本明細書で具体的に説明したもの以外の他のことと具現することができることが理解されるべきである。
本発明は、特許請求の範囲によって定義される。
【符号の説明】
【００４２】
２１０    中央処理装置（ＣＰＵ）
２２０    メモリ管理回路（ＭＭＵ）
２３０    メインメモリ
２４０    メモリＡＢＣＤＥシステム
２５０    メモリアダプター回路
２６０    中間メモリ
３１０    複合メモリ
３２０    メモリＡＢＣＤＥドライバー
４１０    アプリケーション又はミドルウェア
４２０    リターンされる構造
【図１】
2018060538.tif 000003
【図２】
2018060538.tif 000004
【図３】
2018060538.tif 000005
【図４】
2018060538.tif 000006