(58)【調査した分野】(Int.Cl.,DB名)
前記第1タイプのメモリデータは、アノンタイプ(anon−type)メモリページに対応し、前記第2タイプのメモリデータは、ファイルタイプメモリページに対応することを特徴とする請求項1に記載の異種統合メモリ部。
前記拡張統合メモリスペースは、前記複数の物理的異種メモリモジュールにまたがる(span)シングル統合論理メモリスペースを含み、前記アノンタイプメモリページとファイルタイプメモリページを格納することを特徴とする請求項2に記載の異種統合メモリ部。
前記複数の物理的異種メモリモジュールは、STT MRAM(spin−transfer torque magnetoresistive random access memory)、SSD(solid state drive)、フラッシュメモリ、抵抗性メモリ、PCM(phase change memory)、及びDRAMの内から少なくとも1つを含むことを特徴とする請求項1に記載の異種統合メモリ部。
前記アノンタイプメモリページに対応するコールドページの各々に対して、前記知能型ページ整列論理部は、前記ターゲットメモリモジュールに前記アノンタイプメモリページを書き込み、
前記ファイルタイプメモリページに対応するコールドページの各々に対して、前記知能型ページ整列論理部は、前記ターゲットメモリモジュールに前記ファイルタイプメモリページを書き込むことを特徴とする請求項6に記載の異種統合メモリ部。
前記知能型ページ整列論理部は、少なくとも前記メモリモジュールの第1プールの特性の第1セットとメモリモジュールの第2プールの特性の第2セット、及び前記優先順位の割り当てに基づき、前記選択されたメモリモジュールの第1又は第2プールに前記アノンタイプメモリページに対応する前記メモリページの第1サブセットを分配し、
少なくとも前記メモリモジュールの第1プールの特性の第1セットとメモリモジュールの第2プールの特性の第2セット、及び前記優先順位の割り当てに基づき、前記選択されたメモリモジュールの第1又は第2プールに前記ファイルタイプメモリページに対応する前記メモリページの第2サブセットを分配することを特徴とする請求項6に記載の異種統合メモリ部。
前記動的チューニング論理部は、前記第1タイプのメモリデータを有する前記メモリページに対し割り当てられた前記拡張統合メモリスペース内のスペースの量を増加させ、前記第2タイプのメモリデータを有する前記メモリページに対し割り当てられた前記拡張統合メモリスペース内の前記増加に対応するスペースの量を減少させることを特徴とする請求項1に記載の異種統合メモリ部。
前記動的チューニング論理部は、前記第1タイプのメモリデータを有する前記メモリページに対し割り当てられた前記拡張統合メモリスペース内のスペースの量を減少させ、前記第2タイプのメモリデータを有する前記メモリページに対し割り当てられた前記拡張統合メモリスペース内の前記減少に対応するスペースの量を増加させることを特徴とする請求項1に記載の異種統合メモリ部。
前記拡張統合メモリスペースは、特定のファイルに連関した少なくとも1つ以上の互いに異なるメモリページを格納する前記システムメモリと、同時に前記特定のファイルに連関した前記少なくとも1つ以上のメモリページを格納することを特徴とする請求項1に記載の異種統合メモリ部。
前記複数のコールドページからメタデータページ内の互いに異なる修正された部分を一つのコンパクトなメタデータページに圧縮し、前記一つのコンパクトなメタデータページを前記拡張統合メモリスペースに格納させるコンパクトメタデータ論理部をさらに有することを特徴とする請求項1に記載の異種統合メモリ部。
前記知能型ページ整列論理部によって、前記追い出されたコールドページは、第1タイプのメモリデータを含むのか否か、又は第2タイプのメモリデータを含むのか否かを判断する段階と、
前記知能型ページ整列論理部によって、前記拡張統合メモリスペースがいっぱいに満たされたか否かを判断する段階と、
前記追い出されたコールドページが前記第1タイプのメモリデータであり、前記拡張統合メモリスペースがいっぱいに満たされなかったと判別された時、それに応答して、メモリページを前記ターゲットメモリモジュールに割り当てる段階と、前記ターゲットメモリモジュールに前記第1タイプのメモリデータを有する前記追い出されたコールドページを書き出す段階と、
前記追い出されたコールドページが前記第2タイプのメモリデータであり、前記拡張統合メモリスペースがいっぱいに満たされなかったと判別された時、それに応答して、メモリページを前記ターゲットメモリモジュールに割り当てる段階と、前記ターゲットメモリモジュールに前記第2タイプのメモリデータを有する前記追い出されたコールドページを書き出す段階とをさらに有することを特徴とする請求項13に記載の拡張統合メモリスペース管理方法。
前記追い出されたコールドページが前記第1タイプのメモリデータを含み、前記拡張統合メモリスペースがいっぱいに満たされたと判別された時、それに応答して、前記第1タイプのメモリデータを有するメモリページに対し割り当てられた前記拡張統合メモリスペース内のスペースの量を増加させる段階と、前記第2タイプのメモリデータを有するメモリページに対し割り当てられた前記拡張統合メモリスペース内の前記増加に対応するスペースの量を減少させる段階と、
前記追い出されたコールドページが前記第2タイプのメモリデータを含み、前記拡張統合メモリスペースがいっぱいに満たされたと判別された時、それに応答して、最後に使われてから最も長い時間が経過した(least recently used;LRU)ファイルタイプメモリページを前記第2タイプのメモリデータを有する前記追い出されたコールドページに取り替える段階とをさらに有することを特徴とする請求項14に記載の拡張統合メモリスペース管理方法。
【発明を実施するための形態】
【0017】
次に、本発明に係る異種統合メモリ部及びその拡張統合メモリスペース管理方法を実施するための形態の具体例を図面を参照しながら説明する。
【0018】
しかし、本発明の概念は、多い他の形態に具現することができ、ここで説明する実施形態に限定されることではない。実施形態によって、本発明の開示が徹底であり、完壁であり、当業者に本発明に開示された概念の範囲を完全に伝達される。図面で、層及び領域の数値は明瞭性のために誇張されている。
それは構成要素或いは層が、“他の構成要素或いは層”の“上に”、“連結される”か、或いは“結合される”ことと言及された時、これは残りの構成要素或いは層に直接的に上にあるか、連結させるか、結合されるか、或いは挿入された構成要素或いは層が存在することと理解されるべきである。反面に、構成要素が他の構成要素或いは層に“直接に上に”、“直接に連結される”か、或いは“直接に連結される”という言及された時には、それとの間に挿入された構成要素或いは層がないことと理解される。符号は構成要素として称する。本発明で使用された用語“及び/或いは”は関連された列挙項目の少なくとも1つ及び可能であるすべての組み合わせを含む。
【0019】
その用語が第1、第2等が多様な構成要素、成分、領域、層、及び/或いは構成要素領域、層を説明するために使用されるが、セクションはこれらの用語によって制限されないこととして理解されるべきである。このような用語は他の地域、階層、或いはセクションで1つの構成要素、成分、領域、層、或いはセクションを区分するのに使用される。したがって、第1構成要素、成分、領域、層、或いはセクションは本発明の開示から逸脱しなく、第2構成要素、成分、領域、層、或いは部分を指すこともあり得る。
このような用語は単なる特定な例示的な実施形態を説明するために使用されたが、本発明を限定する意図ではない。本発明で使用される単数形態、例えば、“1つ”、”ひとつ”、及び“前記”は文脈の上に明確に異なる意味を含まない限り、複数型も含む。用語“含む”及び“包含する”は、明示した特徴、数字、段階、動作、構成要素、及び/或いは構成の存在を説明する時、少なくとも1つの他の特徴、数字、段階、動作、構成要素、構成及び/或いはグループを排除しない。
別途に定義されない限り、ここに使用された専門用語或いは科学用語を含むすべての用語は本発明の技術分野に属する当業者に同様に理解される。一般的に使用される辞書に定義されている用語は、当業界の関連分野の文脈の上に有する意味と同一の意味を有することとして解釈されなければならなく、本出願で明確に定義しない限り、理想的であるか、或いは過度に形式的な意味として解釈されない。
【0020】
本発明の技術的特徴はARMプロセッサコアのようなプロセッサに連関したところに具現するのに適合である。
また、本発明の原理は、他の種類のメモリモジュール、プロセッサ、ASIC(application specific integrated circuits)、及び/又はファームウェア等に適用できる。
発明の概念はプロセッサ及び/又はスマートフォン、タブレット、ノート型コンピューター又はそのようなもののモバイル装置又はデスクトップコンピュータ、ルータ、又はそのような多様な装置のプロセッサ及び/又はメモリモジュール内に具現することができる。
【0021】
本発明の実施形態は、複数の物理的異種統合メモリモジュールを含む拡張統合メモリスペース(extended unified memory space)に互いに異なるタイプの“非活性”或いは“コールド(cold)”ページのためのスペース割り当て及び/又は非割り当てを簡単に管理できる異種統合メモリ部(heterogeneous unified memory section)を含む。
また、異種統合メモリ部はシステムメモリ(例えば、DRAM)及び拡張統合メモリスペースの間でデータ伝送を初期化するか、又は追跡することができる。
さらに、異種統合メモリ部は、非活性ページの互いに異なるタイプの中でスペース利用要請を分析することができ、したがって、割り当てられたスペースの縮小及び/又は減少させることができる。
その結果として、互いに異なるアプリケーションを実行することと入出力(I/O)ワークロード(workloads)が自動的に収容される。
【0022】
図1は、本発明の実施形態によるシステムスタック100を例示的に示す図である。
図1を参照すると、システムスタック100は、アプリケーションスペース105、カーネルスペース110、システムメモリ115、及び異種統合メモリ部(HUM)120を含む。
【0023】
アプリケーションスペース105は、カーネルスペース110と通信できるアプリケーション130を含む少なくとも1つのアプリケーション125を含む。
付加的に、アプリケーションスペース105は少なくとも1つのアプリケーション125及び/又はカーネルスペース110と通信できる外部ライブラリー140を含む少なくとも1つの外部ライブラリー135を含む。
カーネルスペース110は、例えば、リナックス(登録商標)カーネルを含む。
さらに、他の適合的な駆動システムカーネルはここに開示された本発明から分離して使用できると理解される。
【0024】
システムメモリ115は、ホットページ145及びコールドページ155を格納できる少なくとも1つのDRAM(dynamic random access memory)モジュール117を含む。
ホットページ145は、アプリケーション125又は外部ライブラリー135によって最近にアクセスされたメモリページである。
コールドページ155は、アプリケーション125又は外部ライブラリー135によって最近にアクセスされなかった根本的に非活性メモリページである。
【0025】
異種統合メモリ部120は以下で詳細に説明される、複数のプール(pools)(例えば、プールA、プールB)に配置できる複数の物理的異種メモリモジュール(例えば、M1、M2、M3、〜MN)に亘る(across)拡張統合メモリスペース180を含む。
拡張統合メモリスペース180は、複数の物理的異種メモリモジュール(例えば、M1、M2、M3、〜MN)にまたがる(span)シングル統合論理メモリスペースを含み、アノンタイプ(anon−type)メモリページ(例えば、符号152)及びファイルタイプ(file−type)メモリページ(例えば、符号154)を格納するように具現される。
実施形態においては、拡張統合メモリスペース180は、物理的に及び/又は論理的にシステムメモリ115から分離することができる。
選択的な実施形態において、拡張統合メモリスペース180は、システムメモリ115の少なくとも一部を含んでもよい。
【0026】
異種統合メモリ部120は、システムメモリ115からコールドページ155を受信し、優先順位を付与するコールドページ校正論理部160を含む。
コールドページ155は、第1タイプのメモリデータ(例えば、符号152)を有するメモリページの第1サブセットを含み、第2タイプのメモリデータ(例えば、符号154)を有するメモリページの第2サブセットを含む。
第1タイプのメモリデータ152は、アノンタイプメモリページ(例えば、ユーザースタック又はヒープページ)を含む。
第2タイプのメモリデータ154は、ファイルタイプメモリページ(例えば、ファイルシステムデータ又はページ)を含む。
コールドページ校正論理部160は、コールドページ155の各々に、基礎プール又は物理的異種メモリモジュール(例、M1、M2、M3、〜MN)に優先順位を割り当てる。
【0027】
異種統合メモリ部120を、以下で詳細に説明する。
第1タイプのメモリデータ(例えば、符号152)を有するメモリページの第1サブセットと第2タイプのメモリデータ(例えば、符号154)を有するメモリページの第2サブセットとの間に拡張統合メモリスペース180内のスペース割り当てを管理する動的チューニング論理部170を含む。
異種統合メモリ部120は、少なくとも割り当てられた優先順位に基づいて、少なくとも物理的異種メモリモジュール(例えば、M1、M2、M3、・・・、MN)から第1プール(例えば、プールA)のメモリモジュールに、及び物理的異種メモリモジュール(例えば、M1、M2、M3、・・・、MN)から第2プール(例えば、プールB)にコールドページ155を分配する知能型ページ整列論理部175を含む。
【0028】
コールドページ155は、物理的異種メモリモジュールの中で少なくとも3つのプールのメモリモジュールの間に分配されていることと理解されなければならない。
第1プールのメモリモジュール(例えば、プールA)は特性の第1セットを有し、第2プールのメモリモジュール(例、プールB)は特性の第2セットを有する。
例えば、第1及び第2セットの特性は、性能特性、保安特性、寿命特性、磨耗抵抗特性、電力消費特性、電力故障(停電)の観点からのデータの維持性に関連された特性、出力特性、レイテンシ特性、又はそのようなものである。
プールAに連関した第1セットの特徴は、プールBのような他のプールに連関された第2セットの特徴の全体又は一部が互いに異なる。
知能型ページ整列論理部175は、基礎メモリモジュールの特性及び/又はデータ特性にしたがってデータ割り当て及び書き込みのために書き込まれるデータに一致を提供するプール及び/又は特定の物理的メモリモジュールを選択する。
【0029】
異種統合メモリ部120は、コンパクトメタデータ論理部165を含む。
コンパクトメタデータ論理部165は、メタデータページ内に互いに異なる修正された部分を1つのコンパクトなメタページに圧縮し、そして以下にさらに詳細に説明される1つのコンパクトなメタデータページを拡張統合メモリスペース180に格納する。
異種統合メモリ部120内で、拡張統合メモリスペース180は、アノンタイプメモリページとファイルタイプメモリページ間に明示的な利用パーティションを有する必要がないように一様に管理される。これを達成するため、異種統合メモリ部120はアノンタイプメモリページ(例えば、符号152)とファイルタイプメモリページ(例えば、符号154)に対し異なって割り当てられたエントリのデータのタイプやマークを内部的に認識する。
【0030】
拡張統合メモリスペース180は、異なる特性に従って、異なるストレージプール(例えば、プールA、プールB)に亘って管理する。
互に異なるストレージプールに対して、異種統合メモリ部120は、ストレージプール及び/又は入ってくるメモリページに対し互に異なる優先順位値を割り当てる。
割り当てられた優先順位に基づいて、特定のプール及びターゲットメモリモジュールはスペースを割り当てるように選択される。
実施形態において、高い優先順位のプール又はメモリモジュールは、新しいメモリ割り当てのために優先される。
各々の個別的なメモリモジュールにおいて、スペースは4KBページ或いはブロックに区分される。
異種統合メモリ部120は、占有される時、“ANON_BLK”(ANON_PAGEによって使用される)或いは“FILE_BLK”(FILE_PAGEによって使用される)としてページ或いはブロックに明示的に表示される。
【0031】
図2は、
図1に示した異種統合メモリ部120に連関した拡張統合メモリスペース180内の物理的異種メモリモジュールの多様な実施形態を示す図である。
物理的異種メモリモジュールは、少なくとも1つの不揮発性及び/又は揮発性メモリモジュールを含む。
例えば、拡張統合メモリスペース180は、プール(A、B、C、D、E、F、又はG)の中で少なくとも1つ以上を含む。
各々のプールは同一であるか、或いは類似する特性を有する物理的メモリモジュール内にグループ化される。
【0032】
例えば、プールAは、少なくとも1つのSTT MRAM(Spin Transfer Torque Magnetoresistive Random Access Memory)モジュールを含む。
プールBは、少なくとも1つのDRAMモジュールを含む。
プールCは、少なくとも1つのSSD(solid state drive)を含む。
プールDは、少なくとも1つのフラッシュ(例えば、NANDフラッシュ)メモリモジュールを含む。
プールEは、少なくとも1つの抵抗タイプメモリモジュールを含む。
プールFは、少なくとも1つのPCM(phase Change Memory)を含む。
プールGは、少なくとも2つの互いに異なるタイプのモジュール(タイプ1、タイプ2)を含む。
言い換えれば、各プールは同一の種類及び同一の特性を有するメモリモジュール、又は互いに異なるタイプ及び互いに異なる特性を有するメモリモジュールを含む。
【0033】
各プールは、それと連関した特性、例えば、高性能、ローレイテンシ、高い保安性、高い耐久性、永久的格納、等の特性のセットを含む。
メモリページは、メモリモジュールの基礎特性及びメモリページ内に含まれたデータの特性に基づいて、多様な物理的異種メモリモジュールに割り当てられ、書き込まれる。
例えば、アノンタイプメモリページは、ファイルタイプメモリページより高性能及び保安性が要求される。
アノンタイプメモリページの所定のタイプはメモリページの他のタイプより高い保安性及び性能を要求する。
ファイルタイプメモリページは、安全な格納及び常に高性能の格納を要求される。
メモリページのタイプ及び基礎格納のタイプの各々に対し最善の適合を探すことは、異種統合メモリ部120によって管理され、時間経過とともに展開する。
【0034】
図3は、本発明の実施形態による知能型ページ整列論理部175の動作を含む
図1の異種統合メモリ部120を例示的に示すブロック図である。
知能型ページ整列論理部175は、物理的異種メモリモジュールの中でターゲットメモリモジュール(例えば、M1)を選択する。
知能型ページ整列論理部175は、コールドページ155の各々がアノンタイプメモリページ(例えば、符号152)であるか否か、又はファイルタイプメモリページ(例えば、符号154)であるか否かを判断する。
【0035】
アノンタイプメモリページ(例えば、符号152)に対応するコールドページ155の各々に対して、知能型ページ整列論理部175はターゲットメモリモジュール(M1)にアノンタイプメモリページ(例えば、符号152)を割り当てる。
ファイルタイプメモリページ(例えば、符号154)に対応するコールドページ155の各々に対して、知能型ページ整列論理部175はターゲットメモリモジュール(M1)にファイルタイプメモリページ(例えば、符号154)を割り当てる。
選択されたメモリモジュール(M1)はアノンタイプメモリページのみであるか、ファイルタイプメモリページのみであるか、又はアノンタイプメモリページ及びファイルタイプメモリページの組み合わせであってもよい。
【0036】
選択されたメモリモジュール(M1)は少なくとも1つのプリページを含む。
実施形態において、ページの大きさは4KBであるが、他の適当なページの大きさが使用されてもよい。
実施形態において、ディスクストレージ310は異種統合メモリ部120に接続されて通信し得る。
知能型ページ整列論理部175は、アノンタイプメモリページ(例えば、符号152)及びファイルタイプメモリページ(例えば、符号154)がディスクストレージ310に書き込まれるようにする。
選択的に、ディスクストレージ310は、拡張統合メモリスペース180(
図2参照)のストレージ構成要素であってもよい。
【0037】
図4は、本発明の実施形態による知能型ページ整列論理部175の動作を含む
図1の異種統合メモリ部120を例示的に示すブロックブロック図である。
知能型ページ整列論理部175は、多様なプールの中からメモリモジュールのプール(例えば、プールA)を選択する。
例えば、知能型ページ整列論理部175は、少なくともプールAの特性及び/又は他のプール(例えば、プールB又はC)の特性に基づいてプールAを選択する。
特性は、性能特性、電源故障の観点からデータを維持する特性、出力特性、レイテンシ特性、又はそれらようなものを含んでもよい。
【0038】
例えば、アノンタイプメモリページは、ほとんどファイルタイプメモリページより高い優先順位を有する。これはアノンタイプメモリページのサービスすることを失敗するとコンピューターシステムを故障や動作停止を引き起こすためである。
さらに、知能型ページ整列論理部175は、特定のコールドページ155の割り当てられた優先順位405に基づいてプールを選択する。
【0039】
ディバイスデスクリプター(device descriptor)410を利用する時、知能型ページ整列論理部175は、物理的異種メモリモジュールの中よりメモリモジュールで選択されたディバイスプール(例えば、プールA)からターゲットメモリモジュール(例えば、M2)を選択する。
知能型ページ整列論理部175は、コールドページ155の各々がアノンタイプメモリページ152であるか否か、又はファイルタイプメモリページ154であるか否かを判断する。
アノンタイプメモリページ152に対応するコールドページ155の各々に対して、知能型ページ整列論理部175は、ターゲットメモリモジュールM2にアノンタイプメモリページ152を割り当てる。
ファイルタイプメモリページ154に対応するコールドページ155の各々に対して、知能型ページ整列論理部175は、ターゲットメモリモジュールM2にファイルタイプメモリページ154を割り当てる。
【0040】
選択されたメモリモジュールM2は、アノンタイプメモリページのみであるか、ファイルタイプメモリページのみであるか、又はアノンタイプメモリページとファイルタイプメモリページとの組み合わせである。
選択されたメモリモジュールM2は、少なくとも1つのプリページを含む。
本実施形態において、ページの大きさは4KBであるが、他の適当なページの大きさも使用され得ることが理解できる。
本実施形態において、ディスクストレージ310は、異種統合メモリ部120に接続されて通信できる。
知能型ページ整列論理部175は、アノンタイプメモリページ152及びファイルタイプメモリページ154がディスクストレージ310に書き込まれ、そして読み出すことができる。
また、選択的に、ディスクストレージ310は、拡張統合メモリスペース180(
図2参照)のストレージ構成要素であってもよい。
【0041】
アノンタイプメモリページ152に対応するコールドページ155の各々に対して、知能型ページ整列論理部175は、ターゲットメモリモジュールM2にアノンタイプメモリページ152を書き込む。
ファイルタイプメモリページ154に対応するコールドページ155の各々に対して、知能型ページ整列論理部175は、ターゲットメモリモジュールM2(又はファイルタイプメモリページ154のための他の選択されたターゲットメモリモジュール)にファイルタイプメモリページ154を書き込む。
【0042】
言い換えれば、知能型ページ整列論理部175は、少なくともメモリモジュールの中から選択されたプール(例えば、プールA)の特性のセット及び/又は他のプール(例えば、プールB又はC)の特性のセットに基づき、少なくとも割り当てられた優先順位に基づいてアノンタイプメモリページ152に対応するメモリページの第1サブセットを分配する。
さらに、知能型ページ整列論理部175は、少なくともメモリモジュールの中から選択されたプール(例えば、プールA)の特性のセット及び/又は他のプール(例えば、プールB又はC)の特性のセットに基づき、少なくとも割り当てられた優先順位に基づいてファイルタイプメモリページ154に対応するメモリページの第2サブセットを分配する。
【0043】
図5は、本発明の実施形態による
図1の異種統合メモリ部120の動的チューニング論理部170の動作を例示的に説明するための図である。
動的チューニング論理部170は、アノンタイプメモリページ152のために割り当てられた拡張統合メモリスペース180内のスペース505の量を増加させ、そしてファイルタイプメモリページ154のために割り当てられた拡張統合メモリスペース180内のスペース505の対応する量を減少させる。
追加的に、動的チューニング論理部170は、アノンタイプメモリページ152のために割り当てられた拡張統合メモリスペース180内のスペース505の量を減少させ、そしてファイルタイプメモリページ154のために割り当てられた拡張統合メモリスペース180内のスペース505の対応する量を増加させる。
【0044】
言い換えれば、全体拡張統合メモリスペース180の所定のパーセンテージ505は、アノンタイプメモリページに割り当てられ、そして全体拡張統合メモリスペース180の残りのパーセンテージ510はファイルタイプメモリページに割り当てられる。
パーセンテージの合計は、100パーセントである。
このような個別的なパーセンテージは、ファイルタイプメモリページの個数と比較して相対的に遂行するのに必要であるアノンタイプメモリページの個数に基づいて動的に調節することができる。
【0045】
図6は、本発明の実施形態によるコールドページ校正技術を説明するためのフローチャート600である。
言い換えれば、
図6は、拡張統合メモリスペース180にビクティム(victim)メモリページを書き込む工程である。
システムメモリ115(
図1参照)から追い出されたコールドページ155(
図1参照)をコールドページ校正論理部160(
図1参照)によって受信するところ(S605段階)からこの技術が開始される。
【0046】
S610段階で、コールドページ校正論理部160は、追い出されたコールドページ155に優先順位を割り当てる。
S615段階で、知能型ページ整列論理部175(
図1参照)は、少なくとも割り当てられた優先順位及び各プールの特性に基づいてターゲットメモリモジュールプール(例えば、プールA、プールB等)を選択する。
S620段階で、知能型ページ整列論理部175は、選択されたプールからターゲットメモリモジュールを選択する。
S625段階で、追い出されたコールドページがアノンタイプメモリページであるか否か、又はファイルタイプメモリページであるか否かを判断する。
【0047】
コールドページがアノンタイプメモリページである時、S630段階に進行する。
S630段階で、異種統合メモリ部(HUM)120の拡張統合メモリスペース180がいっぱいに満たされている否かを判断する。
もし、いっぱいに満たされていなかったら、S640段階に進行する。
S640段階で、アノンタイプメモリページが割り当てられ、その後、S645段階に進行する。
S645段階で、アノンタイプメモリページは拡張統合メモリスペース180に格納される(書き込まれる)。
【0048】
一方、異種統合メモリ部120の拡張統合メモリスペース180がいっぱいに満たされている場合、S650段階に進行する。
S650段階で、ファイルタイプメモリページのために割り当てられた拡張統合メモリスペース内のスペース量が縮小されるか、或いは減少され、アノンタイプメモリページのために割り当てられたスペースの対応する量は動的に増加される。
このような調節の後に、S655段階に進行する。
S655段階で、異種統合メモリ部120の拡張統合メモリスペース180がいっぱいに満たされているか否かを判断する。
【0049】
もし、いっぱいに満たされていない場合、アノンタイプメモリページの割り当て及び書込みのためにS640段階に戻る。
一方、いっぱいに満たされている場合、S660段階に進行する。
S660段階で、エラーメッセージ(例えば、“ERR_NOSPACE”)を発生させ、アプリケーション又は拡張されたライブラリーに戻る。
【0050】
一方、S625段階に戻り、もし、コールドページ155がファイルタイプメモリページである時、S635段階に進行する。
S635段階で、異種統合メモリ部120の拡張統合メモリスペース180が有用なファイルスペースに関していっぱいに満たされているか否かを判断する。
もし、いっぱいに満たされていない場合、S665段階に進行する。
S665段階で、ファイルタイプメモリページは割り当てられ、その後、S670段階に進行する。
S670段階で、ファイルタイプメモリページは、拡張統合メモリスペース180に書き込まれる。
【0051】
一方、いっぱいに満たされている場合、S675段階に進行する。
S675段階で、ファイルタイプメモリページは置き換えられ、S670段階に進行する。
例えば、LRU(least recently used)ファイルタイプメモリページは、追い出されたコールドページ(例えば、格納される必要がある他のファイルタイプメモリページ)に置き換えられる。
S670段階で、追い出されたファイルタイプメモリページは、拡張統合メモリスペース180に書き込まれる。
【0052】
図6のフローチャート600の構成と段階は、例示的に特定順序に発生する必要もなく、むしろ他の順序に、或いは中間段階で発生することができる。
拡張統合メモリスペース180で、アノンタイプメモリページのための割り当て要請はファイルタイプメモリページより高い優先順位を有する。
なぜならば、アノンタイプメモリページを挿入失敗は、ソースアプリケーションを故障させるか、或いはダウンさせるからである。
【0053】
一方、ファイルタイプメモリページの挿入失敗は、入出力ワークロードのための性能のみに影響を及ぶ。
望ましくは、異種統合メモリ部120は、アノンタイプメモリページの割り当て要請を待たない。
もし、拡張統合メモリスペース180が高い利用の下にあれば、ファイルタイプメモリページの新しい割り当ては、アノンタイプメモリページのための割り当て要請に影響が及ぶことを避けるために禁止される。
このような状況で、LRU(least recently used)ファイルタイプメモリページは新しいファイルタイプメモリページの挿入を便利にするように置き換えられる。
ここに到達するために、すべてのファイルタイプメモリページは、LRUリストに挿入され、従って管理される。
読み出し動作の間に、特定のファイルタイプメモリページへのすべてのヒット(hit)は、当該ファイルタイプメモリページをリスト内のMRU(most recently used)位置に推し進める(promote)する。
【0054】
選択的な他の実施形態において、S625段階のファイル分岐は、本質的にアノンスペースサイド分岐を模倣する工程を有することもある。
言い換えれば、選択的な実施形態において、S635段階で拡張統合メモリスペース180がいっぱいに満たされていると判断されることに応答して、アノンタイプメモリページを割り当てるための拡張統合メモリスペース180内のスペースの量は縮小させるか、又は減少させ、ファイルタイプメモリページを割り当てるための拡張統合メモリスペース180内の対応するスペースの量は動的に増加させる。
このような調節の後に、異種統合メモリ部120の拡張統合メモリスペース180がいっぱいに満たされているか否かが判断する。
もし、いっぱいに満たされていない場合、ファイルタイプメモリページは割り当てられ書き込まれる。
一方、いっぱいに満たされている場合、エラーメッセージ(例えば、“ERR_NOSPACE”)を発生させ、アプリケーション又は拡張されたライブラリーに戻る。
【0055】
図7は、本発明の実施形態によるメモリページ読み出し技術を説明するためのフローチャートである。
言い換えると、
図7は、拡張統合メモリスペース180からメモリページを読み出す工程を示す。
まず、S705段階で、異種統合メモリ部120によってターゲット読み出しページを受信すると、この技術が開始される。
【0056】
次に、S710段階で、知能型ページ整列論理部175(
図1参照)によって、ターゲット読み出しページがアノンタイプメモリページであるか否か、又はファイルタイプメモリページであるか否かを判断する。
そして、もし、それがアノンタイプメモリページであれば、S715段階に進行する。S715段階で、ページテーブルが引き出される。
S720段階のページテーブルに基づいた判断で、ターゲット読み出しページ(例えば、アノンタイプメモリページ)がシステムメモリ115(
図1)又は拡張統合メモリスペース180(Extended Unified Memory Space:EUMS)に位置しているか否かを判断する。
【0057】
もし、拡張統合メモリスペース180に位置すれば、S725段階に進行する。
S725段階で、アノンタイプメモリページは拡張統合メモリスペース180からシステムメモリ115に伝送され、その後、S730段階で、アプリケーション130(
図1参照)又は外部ライブラリー140(
図1参照)は、システムメモリ115からアノンタイプメモリページを読み出す。
一方、S720段階で、ターゲット読み出しページ(例えば、アノンタイプメモリページ)がシステムメモリ115に位置すれば、S745段階に進行する。
S745段階で、アプリケーション130又は外部ライブラリー140はシステムメモリ115からアノンタイプメモリページを読み出す。
【0058】
S710段階の判断工程に戻って、ターゲット読み出しページがファイルタイプメモリページであれば、S735段階に進行する。
S735段階で、ファイルアドレススペースが引き出される。
引き出されたファイルアドレススペースに基づいたS740段階の判断で、ターゲット読み出しページ(例えば、ファイルタイプメモリページ)がシステムメモリ115に位置するか否かを判断する。
もし、ファイルタイプメモリページがシステムメモリ115に位置すれば、S745段階に進行する。
S745段階で、アプリケーション130又は外部ライブラリー140はシステムメモリ115からファイルタイプメモリページを読み出す。
【0059】
一方、もし、ファイルタイプメモリページがシステムメモリ115位置しなかったら、S750段階に進行する。
S750段階で、ターゲット読み出しページ(例えば、ファイルタイプメモリページ)が異種統合メモリ部120の拡張統合メモリスペース180に位置するか否かを判断する。
もし、拡張統合メモリスペース180に位置すれば、S755段階に進行する。
S755段階で、ファイルタイプメモリページは、拡張統合メモリスペース180からシステムメモリ115に伝送される。
その後、S760段階に進行する。
S760段階で、アプリケーション130又は外部ライブラリー140によってファイルタイプメモリページをシステムメモリ115から読み出す。
【0060】
一方、S750段階で、ターゲット読み出しページが拡張統合メモリスペース180に位置していない場合、即ち、ターゲット読み出しページが拡張統合メモリスペース180又はシステムメモリ115に位置しないことを意味する時、S765段階に進行する。
S765段階で、ファイルタイプメモリページはディスクストレージ310(
図3参照)から読み出されるか、又はシステムメモリ115から伝送される。
次に、S770段階で、ファイルタイプメモリページは、異種統合メモリ部120の拡張統合メモリスペース180に挿入される。
図7のフローチャート700の構成と段階は例示的に特定順序に発生する必要もなく、むしろ他の順序に、或いは中間段階で発生することができる。
【0061】
図8は、本発明の実施形態による異種統合メモリ部120の拡張統合メモリスペース180及びシステムメモリ115(
図1参照)に格納された構成要素を有するファイル815を示す図である。
ターゲット読み出しページがファイルタイプメモリページであれば、拡張ファイルアドレススペースが引き出される。
拡張ファイルアドレススペースは、システムメモリスペース及び拡張統合メモリスペースの全てのデータをインデックスする。
【0062】
ファイル815は、少なくとも1つのシステムメモリページ805、及び少なくとも1つの拡張メモリページ810を含む。
言い換えれば、ファイル815はシステムメモリ115及び拡張メモリスペース180全てにメモリページを含む。
拡張統合メモリスペース180は、ファイル815に連関した少なくとも1つの互いに異なるメモリページを格納するシステムメモリ115と同時にファイル815に連関した少なくとも1つのメモリページを格納する。
【0063】
もし、ファイル815に連関したメモリページが読み出されるとすれば、そして、システムメモリ115又は拡張統合メモリスペース180に存在しなければ、ミス(miss)820)が発生する。
ターゲット読み出しページは、ディスクストレージ310からアクセスされる。
言い換えれば、ターゲット読み出しページがシステムメモリ又は拡張ファイルアドレススペースに存在しなかったら、データはディスクストレージ310から読み出される。
この場合に、読み出し要請ページは、未来のアクセスのために入出力性能を向上するように拡張統合メモリスペース180に非同期的に挿入される。
【0064】
図9は、本発明の実施形態によるコンパクトメタデータ論理部165及びその技術を説明するための図である。
異種統合メモリ部120のコンパクトメタデータ論理部165は、コールドページ155(
図1参照)からメタデータページ内の互いに異なる最近修正された部分910を一つの(single)コンパクトなメタデータページ940に圧縮する。
コンパクトメタデータ論理部165は、一つのコンパクトなメタデータページが拡張統合メモリスペース180(
図1)に格納されるようにする。
【0065】
メタデータページ(例えば、符号915、920、925)の各々は、最近修正された部分910及び最近修正されなかった部分905を含む。
例えば、メタデータページ925の部分930は最近修正された。
実施形態において、各パート(例えば、部分930)は大きい4KBメモリページ内の128バイト値である。
各パート(例えば、部分930)が128バイトである必要はなく、互いに異なる大きさになってもよい。
コンパクトなメモリページ920が4KBである必要がなく、互いに異なる大きさになってもよい。
コンパクトなメモリページ940の大きさは、部分930の大きさの複数倍であってもよい。
【0066】
多様なメタデータページは、例えば、アイノード(inodes)を含む。
例えば、メタデータページ915は、アイノードA、B、B+1〜B+Nを含む。
他の例として、メタデータページ920は、アイノードX、Y、Y+1、Y+2〜Y+Nを含む。
さらに他の例として、メタデータページ925は、アイノードM、K、K+1、K+2〜K+Nを含む。
各アイノードは、最近修正されたか、又は最近修正されていないかを指示する個別パート(例えば、部分930)に対応する。
コンパクトなページ940は、複数の互いに異なるメタデータメモリページ(例えば、915、920、925)から多様なアイノード又はパートであってもよい。
【0067】
一般的な技術で、ディスクキャッシュソリューションはジェネリックブロックレイヤーで具現される。
その結果、それはキャッシュされたデータ(cached data)に対する特殊な(特定の)情報を有しない。
挿入されたデータは、何がパスされたかによって正確にキャッシュ装置に書き込まれる。その結果、例えば、4KBページに非常に小さいアップデートをしても、一般的なディスクキャッシュアプローチ法は、キャッシュ装置に完全な4KBブロックを書き込まなければならない。
このような一般的なアプローチ法は、フラッシュ及び/又はSSDメモリストレージ装置がディスクキャッシュとして使用できるので、特に不利益がある。
このような装置は、書込み耐久性を制限し、潜在的に書き込み性能を減少させる。
【0068】
本発明の実施形態によれば、ファイルシステムレイヤーの情報は、拡張物理的異種メモリモジュール(例えば、ファイルタイプメモリページに使用されたスペース)に不必要な書き込みを減少させるように影響力を行使する。
その結果、単に実際に修正されたパートは、拡張統合メモリスペース180に書き込まれる。
これはメモリモジュールの磨耗と寿命を改善しながら、全体の書き込み回数を減らし、結論的に性能を向上させる。
【0069】
図10〜
図15は、本発明の実施形態による
図1の異種統合メモリ部が多様な装置が内装されることを示す図である。
例えば、
図10に示すスマートフォン1005は上述した異種統合メモリ部120を含む。
同様に、
図11に示すタブレット1105、
図12に示すノート型コンピュータ、
図13に示すモバイルフォン1305、
図14に示すカメラ1405、及び
図15に示すデスクトップコンピュータ1505は上述した異種統合メモリ部120を含む。
少なくとも1つのメモリ装置を使用する何らかの適合的なコンピュータ装置は上述した異種統合メモリ部120を含むか、又は結合した動作を遂行する。
【0070】
図16は、本発明の実施形態による異種統合メモリ部120を含むコンピューティングシステム1600を示すブロック図である。
図16を参照すると、コンピューティングシステム1600は、クロック1610、RAM1615、ユーザーインターフェイス1620、ベースバンドチップセットようなモデム1625、SSD1640(solid state drive)、メモリ制御器1645、及び/又はバッテリー1635、すべてのものが電気的に接続されたシステムバス1605を含む。
異種統合メモリ部1630は、上述したように異種統合メモリ部120に対応し、システムバス1605に電気的に接続される。
【0071】
実施形態において、コンピューティングシステム1600は、コンピュータ、ポータブルコンピュータ、UMPC(ultra mobile PC)、ワークステーション、ネットブック、PDA、ウェブタブレット、無線フォン、モバイルフォン、スマートフォン、電子本、PMP(portable multimedia player)、デジタルカメラ、デジタルオーディオ録音機/再生器、デジタル写真/ビデオ記録器/再生器、ポータブルゲームマシン、ナビゲーションシステム、ブラックボックス、3Dテレビジョン、無線環境で情報を受信及び送信する装置、ホームネットワークを構成する多様な電子装置のいずれか1つ、コンピューターネットワークを構成する多様な電子装置のいずれか1つ、テレマティクス(telematics)ネットワークを構成する多様な電子装置のいずれか1つ、RFID、又はコンピューティングシステムを構成する多様な電子装置のいずれか1つに使用されてもよい。
【0072】
次の説明は本発明の概念の特定形態を具現できる適切なマシン又はマシンの簡単な一般的な説明を提供することを目的としている。
一般的に装置(マシン)又は装置群は、プロセッサ、メモリ、例えば、RAM、ROM、又は他の状態記憶媒体、記憶装置、ビデオインターフェイス、及び入力/出力インターフェイスポートを含む。
装置又は装置群は、キーボード、マウス等のような典型的な入力装置、他のコンピュータ、仮想現実環境との相互作用、生体から受けたフィードバック、又は他の入力信号から入力によって少なくとも一部分で制御される。
本明細書で使用する用語“装置(マシン)”は広くシングルシステム、仮想コンピュータ、又は通信できるように結合されたマシンシステム、仮想マシン、又は共に作動する装置を含む。
【0073】
一般的な装置(マシン)は、個人又は公共交通手段、例えば、自動車、汽車、タクシー等のような個人用コンピュータ、ワークステーション、サーバー、携帯用コンピュータ、携帯用装置、電話、タブレット等のコンピューティング装置及び輸送装置を含む。
装置又は装置群は、プログラミング又はノンプログラマブル論理装置及びアレイのような内蔵コントローラ、特定用途向け集積回路(ASIC)、埋め込み型コンピュータ、スマートカード等を含む。
装置又は装置群は、コンピュータ又はコンピューターネットワークインターフェイス、モデム又は他の通信接続を通じてような1つ以上の遠隔コンピュータに1つ以上の接続を利用する。
装置(マシン)は、イントラネット等のインターネットローカル領域ネットワーク、広域ネットワーク等の物理的的及び/又は論理的なネットワークを通じて相互接続する。
ネットワーク通信が無線周波数(RF)、人工衛星、マイクロ波、IEEE545.11、ブルートゥース(登録商標)、光学、紫外線、ケーブル、レーザー等を含む短距離/長距離無線・有無線キャリヤーを利用できることは当業者に容易に理解できる。
【0074】
本発明の実施形態による概念は、機能、工程、データ構造、アプリケーションプログラム等を含むデータと共に又は参照して説明した。
このようなデータは、業務を遂行するか、又は要約データタイプ/ローレベルハードウェアコンテキストを定義する、装置(マシン)にアクセスされる。
例えば、連関したデータは、揮発性及び/又は不揮発性メモリ、例えばRAM、ROM等に格納されるか、或いは、他の格納装置及び格納媒体に連関されたもの、例えば、ハードドライブ、フロッピー(登録商標)ディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、バイオストレージ等のようなものに格納される。
【0075】
連関データは、物理的及び/又は論理ネットワークを含む伝送環境上に、パケット、直列データ、並列データ、電波信号等のような形態に伝送され、圧縮されるか、又は暗号化されたフォーマットに使用される。
連関データは、分配環境に使用され、そしてマシンアクセスのために局部的に及び/又は遠隔的に格納される。
【0076】
以上、説明し図示した実施形態を参照して本発明の概念の原理を例示したが、それら図示した実施形態はこのような原理から逸脱しなく、配置及び詳細で変更されて所定の望む方式に結合できること理解できる。
上記説明は、特定実施形態に着目したが、他の構成が図られ得る。特に、このような表現は、“本発明の実施形態によれば”は本明細書で使用されているにも拘らず、この単語は一般的な実施形態の可能性を参照することを意味し、特定実施形態の構成に本発明の概念を限定することではないが、本明細書で使用される場合、この用語は他の実施形態に組み合わせ、同一又は他の実施形態を参照することができる。
【0077】
本発明の実施形態は、少なくとも1つのプロセッサによって実行できるインストラクションを含む持続性マシン読み出し可能媒体(non−transitory machine−readable medium)を含む。ここで、インストラクションは本発明の概念による素子を遂行するインストラクションである。
【0078】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。