(57)【要約】  プロセッサベースシステムにおける空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理を実現することが開示される。一態様では、プロセッサベースシステムの異種メモリシステムは、第1のメモリおよび第2のメモリを含む。異種メモリシステムは、複数のメモリ領域に分割され、各々がQoS識別子(QoSID)に関連付けられ、QoSIDは、ソフトウェアによって設定され更新され得る。異種メモリシステムのメモリコントローラは、QoSポリシーテーブルを提供し、QoSポリシーテーブルは、各QoSIDをQoSポリシー状態に関連付けるように作用し、またソフトウェア構成可能であり得る。メモリ領域のメモリアドレスを含むメモリアクセス要求を受信すると、メモリコントローラは、メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別し、QoSポリシーテーブルを使用してQoSIDをQoSポリシー状態に関連付ける。メモリコントローラは次いで、メモリアクセス動作を実行するためにQoSポリシー状態を適用する。
2019532412.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラであって、前記メモリコントローラは、異なる性能特性を有する第1のメモリおよび第2のメモリに通信可能に結合され、
前記メモリコントローラは、複数のサービス品質(QoS)ポリシーエントリを提供するソフトウェア構成可能なQoSポリシーテーブルを含み、各QoSポリシーエントリは、QoSポリシー状態を含み、1つまたは複数のQoS識別子(QoSID)のうちのQoSIDに関連付けられ、前記QoSIDは、複数のメモリ領域のうちの1つまたは複数に関連付けられ、前記複数のメモリ領域は、前記第1のメモリ、前記第2のメモリ、または両方の中に存在し、
前記メモリコントローラは、
前記複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信することと、
前記メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別することと、
前記QoSポリシーテーブルを使用して、前記メモリアドレスに関連付けられる前記QoSIDをQoSポリシー状態に関連付けることと、
前記第1のメモリおよび前記第2のメモリの一方でメモリアクセス動作を実行するために前記QoSポリシー状態を適用することと
を行うように構成される、メモリコントローラ。
【請求項２】
前記第2のメモリのための透過的なキャッシュとして前記第1のメモリを動作させるようにさらに構成され、
前記複数のメモリ領域は、前記第2のメモリの複数のメモリ領域を含む、請求項1に記載のメモリコントローラ。
【請求項３】
前記QoSポリシー状態に基づいて前記第1のメモリからのキャッシュエビクションおよび前記第1のメモリのキャッシュフィルの一方を実行するように構成されることによって、前記メモリアクセス動作を実行するために前記QoSポリシー状態を適用するように構成される、請求項2に記載のメモリコントローラ。
【請求項４】
前記第1のメモリの複数のキャッシュラインに対応する前記複数のQoSIDをランダムにサンプリングすることと、
前記第1のメモリからのエビクションのために、最大のクォータ超過であるQoSIDに関連付けられる前記複数のキャッシュラインのうちのキャッシュラインを選択することと
を行うように構成されることによって、前記QoSポリシー状態に基づいて前記第1のメモリからの前記キャッシュエビクションを実行するように構成される、請求項3に記載のメモリコントローラ。
【請求項５】
前記第2のメモリにおけるマスタテーブルにアクセスするように構成されることによって、前記メモリアドレスに関連付けられる前記QoSIDを識別するように構成され、前記マスタテーブルは、各々が前記1つまたは複数のQoSIDのうちのQoSIDに関連付けられる1つまたは複数のメモリアドレスの範囲に対応する複数のマスタテーブルエントリを含む、請求項2に記載のメモリコントローラ。
【請求項６】
前記プロセッサベースシステム上で実行されているソフトウェアプロセスから、前記マスタテーブルの前記複数のマスタテーブルエントリのうちのマスタテーブルエントリに対する更新を受信するようにさらに構成される、請求項5に記載のメモリコントローラ。
【請求項７】
各々が前記マスタテーブルのマスタテーブルエントリをキャッシュするように構成された複数のマスタテーブルキャッシュエントリを含むマスタテーブルキャッシュをさらに含み、
前記メモリコントローラは、前記第2のメモリにおける前記マスタテーブルにアクセスする前に、
前記マスタテーブルキャッシュの前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応するかどうかを判断することと、
前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応するとの判断に応答して、前記マスタテーブルキャッシュエントリにアクセスすることと
を行うように構成されることによって、前記メモリアドレスに関連付けられる前記QoSIDを識別するように構成され、
前記メモリコントローラは、前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応しないとの判断に応答して、前記第2のメモリにおける前記マスタテーブルにアクセスするように構成される、請求項5に記載のメモリコントローラ。
【請求項８】
前記メモリアドレスに関連して前記第1のメモリによって記憶された前記QoSIDにアクセスするように構成されることによって、前記メモリアドレスに関連付けられる前記QoSIDを識別するように構成される、請求項2に記載のメモリコントローラ。
【請求項９】
前記プロセッサベースシステム上で実行されているソフトウェアプロセスから、前記QoSポリシーテーブルの前記複数のQoSポリシーエントリのうちのQoSポリシーエントリに対する更新を受信するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項１０】
前記複数のQoSポリシーエントリの各々のQoSポリシー状態は、クォータ、優先度、比例配分重み、および確率のうちの1つまたは複数を示す、請求項1に記載のメモリコントローラ。
【請求項１１】
前記第1のメモリとして高帯域幅メモリ(HBM)および前記第2のメモリとしてダイナミックランダムアクセスメモリ(DRAM)に通信可能に結合される、請求項1に記載のメモリコントローラ。
【請求項１２】
集積回路(IC)に組み込まれる、請求項1に記載のメモリコントローラ。
【請求項１３】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、全地球測位システム(GPS)デバイス、モバイルフォン、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)フォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、モバイルコンピューティングデバイス、装着型コンピューティングデバイス(たとえば、スマートウォッチ、ヘルスまたはフィットネストラッカー、アイウェアなど)、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、自動車、車両構成要素、アビオニクスシステム、ドローン、およびマルチコプターからなるグループから選択されたデバイスに組み込まれる、請求項1に記載のメモリコントローラ。
【請求項１４】
プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラであって、
異なる性能特性を有する第1のメモリおよび第2のメモリの一方または両方の複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するための手段と、
前記メモリアドレスに関連付けられるソフトウェア構成可能なサービス品質(QoS)識別子(QoSID)を識別するための手段と、
ソフトウェア構成可能なQoSポリシーテーブルを使用して、前記メモリアドレスに関連付けられる前記QoSIDをQoSポリシー状態に関連付けるための手段と、
前記第1のメモリおよび前記第2のメモリの一方でメモリアクセス動作を実行するために前記QoSポリシー状態を適用するための手段と
を含むメモリコントローラ。
【請求項１５】
プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するための方法であって、
メモリコントローラによって、異なる性能特性を有する第1のメモリおよび第2のメモリの一方または両方の複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するステップと、
複数のサービス品質(QoS)識別子(QoSID)のうちのソフトウェア構成可能なQoSIDを識別するステップであって、前記QoSIDは、前記メモリアドレスに関連付けられる、ステップと、
前記メモリコントローラのソフトウェア構成可能なQoSポリシーテーブルを使用して、前記メモリアドレスに関連付けられる前記QoSIDをQoSポリシー状態に関連付けるステップと、
前記第1のメモリおよび前記第2のメモリの一方でメモリアクセス動作を実行するために前記QoSポリシー状態を適用するステップと
を含む方法。
【請求項１６】
前記第2のメモリのための透過的なキャッシュとして前記第1のメモリを動作させるステップをさらに含み、
前記複数のメモリ領域は、前記第2のメモリの複数のメモリ領域を含む、請求項15に記載の方法。
【請求項１７】
前記メモリアクセス動作を実行するために前記QoSポリシー状態を適用するステップは、前記QoSポリシー状態に基づいて前記第1のメモリからのキャッシュエビクションおよび前記第1のメモリのキャッシュフィルの一方を実行するステップを含む、請求項16に記載の方法。
【請求項１８】
前記QoSポリシー状態に基づいて前記第1のメモリからの前記キャッシュエビクションを実行するステップは、
前記第1のメモリの複数のキャッシュラインに対応する前記複数のQoSIDをランダムにサンプリングするステップと、
前記第1のメモリからのエビクションのために、最大のクォータ超過であるQoSIDに関連付けられる前記複数のキャッシュラインのうちのキャッシュラインを選択するステップと
を含む、請求項17に記載の方法。
【請求項１９】
前記メモリアドレスに関連付けられる前記QoSIDを識別するステップは、前記第2のメモリにおけるマスタテーブルにアクセスするステップを含み、前記マスタテーブルは、各々が前記複数のQoSIDのうちのQoSIDに関連付けられる1つまたは複数のメモリアドレスの範囲に対応する複数のマスタテーブルエントリを含む、請求項16に記載の方法。
【請求項２０】
前記プロセッサベースシステム上で実行されているソフトウェアプロセスから、前記マスタテーブルの前記複数のマスタテーブルエントリのうちのマスタテーブルエントリに対する更新を受信するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記メモリコントローラは、各々が前記マスタテーブルのマスタテーブルエントリをキャッシュするように構成された複数のマスタテーブルキャッシュエントリを含むマスタテーブルキャッシュを含み、
前記メモリアドレスに関連付けられる前記QoSIDを識別するステップは、前記第2のメモリにおける前記マスタテーブルにアクセスする前に、
前記マスタテーブルキャッシュの前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応するかどうかを判断するステップと、
前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応するとの判断に応答して、前記マスタテーブルキャッシュエントリにアクセスするステップと、
前記複数のマスタテーブルキャッシュエントリのうちのマスタテーブルキャッシュエントリが前記メモリアドレスに対応しないとの判断に応答して、前記第2のメモリにおける前記マスタテーブルにアクセスするステップと
を含む、請求項19に記載の方法。
【請求項２２】
前記メモリアドレスに関連付けられる前記QoSIDを識別するステップは、前記メモリアドレスに関連して前記第1のメモリによって記憶された前記QoSIDにアクセスするステップを含む、請求項16に記載の方法。
【請求項２３】
前記プロセッサベースシステム上で実行されているソフトウェアプロセスから、前記QoSポリシーテーブルの複数のQoSポリシーエントリのうちのQoSポリシーエントリに対する更新を受信するステップをさらに含む、請求項15に記載の方法。
【請求項２４】
前記QoSポリシー状態は、クォータ、優先度、比例配分重み、および確率のうちの1つまたは複数を示す、請求項15に記載の方法。
【請求項２５】
前記第1のメモリは、高帯域幅メモリ(HBM)を含み、前記第2のメモリは、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その内容全体が参照により本明細書に組み込まれる、2016年9月22日に出願された「PROVIDING FLEXIBLE MANAGEMENT OF HETEROGENEOUS MEMORY SYSTEMS USING SPATIAL QUALITY OF SERVICE (QoS) TAGGING IN PROCESSOR-BASED SYSTEMS」と題する米国特許出願第15/272,951号の優先権を主張する。
【０００２】
本開示の技術は、一般に、メモリ管理に関し、詳細には、異種メモリシステムを管理することに関する。
【背景技術】
【０００３】
異種メモリシステムは、比較的異なる性能特性(たとえば、容量、帯域幅、アクセスレイテンシ、電力消費など)を有する2つ以上の異なるタイプのメモリを組み込むプロセッサベースシステムのメモリシステムである。非限定的な例として、異種メモリシステムは、通常のサイズの通信レーンを提供するダイナミックランダムアクセスメモリ(DRAM)とともに、非常に広い通信レーンを提供する高帯域幅メモリ(HBM)を含み得る。異種メモリシステムの他の態様は、DRAMおよび相変化メモリ、DRAMおよびプロセッサダイ上のレベル3(L3)キャッシュ、ならびに/または当技術分野で知られている異なるメモリタイプの他の組合せを含み得る。
【０００４】
従来の異種メモリシステムは、メモリ管理に関する限定的なオプションを提示し得る。いくつかの態様では、あるタイプのメモリ(たとえば、HBM)は、異種メモリシステムのメモリアドレス空間全体のためのキャッシュとして働くように構成され得る。そのような態様は、比較的単純で、容易に配置でき、ハードウェアによって透過的に管理され得る。しかしながら、データの配置またはメモリの割振りに関するすべての決定がハードウェアによって行われるので、データ配置またはメモリ割振りに対するソフトウェアの入力または影響が利用されない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
代替的に、異種メモリシステムは、独立したアドレス領域を用いることができ、動的メモリ管理および再割振り動作がハードウェアの代わりにソフトウェアによって実行されることを可能にし得る。メモリ割振りに関係するが、ハードウェアがアクセスできないか、または透過的に推測できないデータ(たとえば、作業負荷、プログラムセマンティクス、および/または相対的優先度)へのアクセスをソフトウェアは有し得るので、この手法は、排他的なハードウェア制御よりも好ましいことが多い。しかしながら、そのような動的メモリ管理は、極めて複雑なデータ移行決定、およびそのような決定を管理することが可能なソフトウェアの他、他の必要なプロセッサおよび時間の面で高くつく動作を必要とすることがあり、開発し維持するのが難しいことがある。したがって、異種メモリシステムの柔軟な管理のためのハードウェアサポートおよびソフトウェア制御を実現するメモリ管理機構が望ましい。
【課題を解決するための手段】
【０００６】
発明を実施するための形態で開示する態様は、プロセッサベースシステムにおける空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理を実現することを含む。一態様では、プロセッサベースシステムの異種メモリシステムは、第1のメモリ(たとえば、非限定的な例として、高帯域幅メモリ(HBM))および第2のメモリ(たとえば、非限定的な例として、ダイナミックランダムアクセスメモリ(DRAM))を含む。異種メモリシステムは、非限定的な例として、各々が4キロバイトのサイズを有するメモリページなど、複数のメモリ領域に分割される。異種メモリシステムは、本明細書では「空間サービス品質(QoS)タグ付け」と呼ばれるものを用いるように構成され、空間QoSタグ付けでは、複数のメモリ領域の各々がQoS識別子(QoSID)に関連付けられ、QoSIDは、ソフトウェアによって設定され更新され得る。異種メモリシステムのメモリコントローラは、QoSポリシーテーブルを提供し、QoSポリシーテーブルは、各QoSIDを(非限定的な例として、クォータ、優先度、比例配分重み、および/または確率などの)QoSポリシー状態にマッピングするように作用し、またソフトウェア構成可能であり得る。メモリ領域のメモリアドレスを含むメモリアクセス要求を受信すると、メモリコントローラは、メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別し、QoSポリシーテーブルを使用してQoSIDをQoSポリシー状態に関連付ける。メモリコントローラは次いで、メモリアクセス動作を実行するためにQoSポリシー状態を適用する。たとえば、第1のメモリが第2のメモリのための透過的なキャッシュとして構成される態様では、メモリコントローラは、第1のメモリからのキャッシュエビクションまたは第1のメモリのキャッシュフィルを実行する際にQoSポリシー状態を適用し得る。このようにして、ソフトウェアプロセスは、複数のメモリ領域の各々に関するQoSIDを指定することによって、またメモリコントローラによって強制されたQoSポリシー状態にQoSIDを関連付けることによって、メモリ割振りおよびデータ配置に間接的に影響を及ぼし得る。
【０００７】
別の態様では、プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラが提供される。メモリコントローラは通信可能に、異なる性能特性を有する第1のメモリおよび第2のメモリに結合される。メモリコントローラは、複数のQoSポリシーエントリを提供するソフトウェア構成可能なQoSポリシーテーブルを含む。各QoSポリシーエントリは、QoSポリシー状態を含み、各々が複数のメモリ領域のうちの1つに関連付けられる1つまたは複数のQoSIDのうちのQoSIDに関連付けられる。複数のメモリ領域は、第1のメモリ、第2のメモリ、または両方の中に存在する。メモリコントローラは、複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するように構成される。メモリコントローラは、メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別するようにさらに構成される。メモリコントローラはまた、QoSポリシーテーブルを使用して、メモリアドレスに関連付けられるQoSIDをQoSポリシー状態に関連付けるように構成される。メモリコントローラは加えて、第1のメモリおよび第2のメモリの一方でメモリアクセス動作を実行するためにQoSポリシー状態を適用するように構成される。
【０００８】
別の態様では、プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラが提供される。メモリコントローラは、異なる性能特性を有する第1のメモリおよび第2のメモリの一方または両方の複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するための手段を含む。メモリコントローラは、メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別するための手段をさらに含む。メモリコントローラはまた、ソフトウェア構成可能なQoSポリシーテーブルを使用して、メモリアドレスに関連付けられるQoSIDをQoSポリシー状態に関連付けるための手段を含む。メモリコントローラは、第1のメモリおよび第2のメモリの一方でメモリアクセス動作を実行するためにQoSポリシー状態を適用するための手段をさらに含む。
【０００９】
別の態様では、プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するための方法が提供される。本方法は、メモリコントローラによって、異なる性能特性を有する第1のメモリおよび第2のメモリの一方または両方の複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するステップを含む。本方法は、複数のQoSIDのうちのソフトウェア構成可能なQoSIDを識別するステップをさらに含み、QoSIDは、メモリアドレスに関連付けられる。本方法はまた、メモリコントローラのソフトウェア構成可能なQoSポリシーテーブルを使用して、メモリアドレスに関連付けられるQoSIDをQoSポリシー状態に関連付けるステップを含む。本方法は加えて、第1のメモリおよび第2のメモリの一方でメモリアクセス動作を実行するためにQoSポリシー状態を適用するステップを含む。
【図面の簡単な説明】
【００１０】
【図１】異種メモリシステムを提供する例示的なプロセッサベースシステムのブロック図である。
【図２】空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理を実現するためのメモリコントローラを含むプロセッサベースシステムのブロック図である。
【図３Ａ】異種メモリシステムを柔軟に管理するために空間QoSタグ付けを使用するための図2のメモリコントローラの例示的な動作を示すフローチャートである。
【図３Ｂ】異種メモリシステムを柔軟に管理するために空間QoSタグ付けを使用するための図2のメモリコントローラの例示的な動作を示すフローチャートである。
【図３Ｃ】異種メモリシステムを柔軟に管理するために空間QoSタグ付けを使用するための図2のメモリコントローラの例示的な動作を示すフローチャートである。
【図４】図2の異種メモリシステムおよびメモリコントローラを含むことができる例示的なプロセッサベースシステムのブロック図である。
【発明を実施するための形態】
【００１１】
ここで図面を参照して、本開示のいくつかの例示的な態様について説明する。「例示的」という語は、本明細書では「例、事例、または例示として機能すること」を意味するために使用される。本明細書で「例示的」と説明するいずれの態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
【００１２】
発明を実施するための形態で開示する態様は、プロセッサベースシステムにおける空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理を実現することを含む。空間QoSタグ付けを使用してメモリを柔軟に管理するように構成されたメモリコントローラについて説明する前に、プロセッサベースシステムの異種メモリシステムの例示的な要素および動作について最初に説明する。
【００１３】
この点について、図1は、異種メモリシステム102を提供する例示的なプロセッサベースシステム100を示す。いくつかの態様では、プロセッサベースシステム100は、要素の中でも、知られているデジタル論理要素、半導体回路、処理コア、および/もしくはメモリ構造のうちのいずれか1つ、またはそれらの組合せを包含し得る。本明細書で説明する態様は、要素の任意の特定の構成に限定されず、開示する技法は、半導体ダイまたはパッケージ上の様々な構造およびレイアウトに容易に拡張され得る。プロセッサベースシステム100は、明快にするために本明細書で説明しない追加の要素を含み得ることを理解されたい。
【００１４】
図1に見られるように、異種メモリシステム102は、第1のメモリ104および第2のメモリ106を含む。いくつかの態様によれば、非限定的な例として、第1のメモリ104は高帯域幅メモリ(HBM)を含むことができ、第2のメモリ106はダイナミックランダムアクセスメモリ(DRAM)を含むことができる。第1のメモリ104および第2のメモリ106へのアクセスは、メモリコントローラ108によって管理され、メモリコントローラ108は、プロセッサベースシステム100によって実行される命令を含むソフトウェアプロセス110からのメモリアクセス要求を受信し得る。ソフトウェアプロセス110は、1つまたは複数の他のソフトウェアプロセスと並行して実行されてよく、非限定的な例として、アプリケーション、ハイパーバイザ、仮想機械、オペレーティングシステム、および/またはコンテナを含み得ることを理解されたい。
【００１５】
いくつかの態様は、メモリコントローラ108が第2のメモリ106の透過的なキャッシュとして第1のメモリ104を動作させるように構成され得ることを規定し得る。そのような態様では、第2のメモリ106は、マスタテーブル112を記憶するために使用され得る。マスタテーブル112は、複数のマスタテーブルエントリ114(0)〜114(M)を含み、それらの各々は、第2のメモリ106のメモリ領域118(0)〜118(X)のうちの1つまたは複数のメモリアドレス116(0)〜116(M)の範囲をキャッシュウェイ識別子(「WAY ID」)120(0)〜120(M)に関連付ける。したがって、第1のメモリ104のどのキャッシュウェイに第2のメモリ106の所与のメモリ領域118(0)〜118(X)が記憶され得るかを判断するために、メモリコントローラ108は、マスタテーブル112に対してルックアップ演算を実行し得る。マスタテーブル112は、図1において第2のメモリ106の一部として示されているが、マスタテーブル112は、たとえば、第1のメモリ104を含むメモリコントローラ108によってアクセス可能である他のメモリ要素の一部として記憶されてよいことを理解されたい。いくつかの態様では、メモリ領域118(0)〜118(X)はそれぞれ、メモリページ(たとえば、4キロバイトのメモリページ)であり得る一方、いくつかの態様は、メモリ領域118(0)〜118(X)の各々が第2のメモリ106のより大きいまたはより小さい下位区分であることを規定し得る。いくつかの態様は、メモリ領域118(0)〜118(X)が不均一なサイズを有してよいことを規定し得る。
【００１６】
図2は、空間QoSタグ付けを使用する図1の異種メモリシステム102の柔軟な管理を実行するためのメモリコントローラ202を提供するプロセッサベースシステム200を示す。図2の例では、メモリコントローラ202は、複数のQoSポリシーエントリ206(0)〜206(Y)を含むQoSポリシーテーブル204を含む。複数のQoSポリシーエントリ206(0)〜206(Y)の各々は、QoSID208(0)〜208(Y)を対応するQoSポリシー状態210(0)〜210(Y)に関連付ける。いくつかの態様では、QoSポリシーテーブル204は、図2に示すようなQoSID208(0)〜208(Y)に関する値を明示的に記憶しないことがあり、むしろ、対応するQoSポリシー状態210(0)〜210(Y)のQoSポリシーテーブル204における行インデックスとしてQoSID208(0)〜208(Y)の各々を暗示的に定義することがある。QoSポリシー状態210(0)〜210(Y)はそれぞれ、メモリコントローラ202によって強制され得る(非限定的な例として、クォータ、優先度、比例配分重み、および/または確率などの)該当するQoS属性を表し得る。QoSポリシーテーブル204は、ソフトウェアプロセス110によって更新され得る。したがって、ソフトウェアプロセス110は、各QoSID208(0)〜208(Y)に関連付けられる各QoSポリシー状態210(0)〜210(Y)に関するQoS属性を指定し得る。
【００１７】
いくつかの態様では、マスタテーブル112は、マスタテーブルエントリ114(0)〜114(M)の一部としてQoSID212(0)〜212(M)を含むように拡大され得る。このようにして、マスタテーブルエントリ114(0)〜114(M)は、メモリアドレス116(0)〜116(M)の範囲のうちの1つもしくは複数に、および/または第2のメモリ106のメモリ領域118(0)〜118(X)全体に関連付けられるQoSID212(0)〜212(M)を識別するために使用され得る。いくつかの態様では、マスタテーブル112は、異なるアドレス指定粒度を有する2つの別個の構造として編成され得る(たとえば、一方は、キャッシュライン粒度をもたらすためにメモリアドレス-ウェイマッピングを提供し得る一方、他方は、より粗いページ粒度をもたらすためにメモリアドレス-QoSIDマッピングを提供し得る)。代替的に、いくつかの態様は、2つの別個の構造の内容が合成またはインターリーブされた単一のマスタテーブル112を提供し得る。いくつかの態様によれば、マスタテーブル112は、明示的にメモリアドレス116を記憶しないことがあり、むしろ、マスタテーブル112へのインデックスとしてメモリアドレス116の最上位ビットを使用することがある。
【００１８】
マスタテーブル112のQoSID212(0)〜212(M)は、ソフトウェアプロセス110によって更新されてよく、これによりソフトウェアプロセス110が、メモリ領域118(0)〜118(X)に割り当てられたQoSID212(0)〜212(M)の値を選択的に設定することが可能になる。いくつかの態様では、QoSID208(0)〜208(Y)のうちの1つが、QoSID208(0)〜208(Y)に明示的に割り当てられないメモリ領域118(0)〜118(X)に適用されるべきQoSポリシー状態210(0)〜210(Y)を決定するために使用される「デフォルト」QoSID208(0)〜208(Y)を指定するものとして指定され得る。いくつかの態様は、最も明確な粒度に関連付けられるQoSID208(0)〜208(Y)が適用されるように、複数の粒度を表す異なるサイズのメモリ領域118(0)〜118(X)にQoSID208(0)〜208(Y)が関連付けられ得ることを規定し得る。たとえば、第1のQoSID208(0)〜208(Y)が、より大きい2メガバイトのメモリ領域118(0)〜118(X)に関連付けられ得る一方、第2のQoSID208(0)〜208(Y)が、より大きいメモリ領域118(0)〜118(X)内のより小さい4キロバイトのメモリ領域118(0)〜118(X)に関連付けられ得る。この場合、第1のQoSID208(0)〜208(Y)は、第2のQoSID208(0)〜208(Y)に該当するより小さい4キロバイトのメモリ領域118(0)〜118(X)を除く2メガバイトのメモリ領域118(0)〜118(X)全体に適用される。
【００１９】
いくつかの態様は、メモリコントローラ202が、最近読み取られたマスタテーブルエントリ114(0)〜114(M)をマスタテーブル112からキャッシュするためのマスタテーブルキャッシュ214も含むことを規定し得る。マスタテーブルキャッシュ214は、キャッシュされたメモリアドレス116'(0)〜116'(Z)、キャッシュされたウェイ識別子(「WAY ID」)120'(0)〜120'(Z)、およびキャッシュされたQoSID212'(0)〜212'(Z)を記憶する複数のマスタテーブルキャッシュエントリ216(0)〜216(Z)を提供する。メモリアドレス範囲および/またはメモリ領域118(0)〜118(X)のうちのメモリ領域に関連付けられるQoSIDを識別しようとするとき、メモリコントローラ202は、第2のメモリ106中のマスタテーブル112においてルックアップを実行する前に、マスタテーブルキャッシュ214にアクセスし得る。マスタテーブルキャッシュ214がキャッシュヒットを生成する場合、メモリコントローラ202は、キャッシュされたQoSID212'(0)〜212'(Z)をマスタテーブルキャッシュ214から読み取ることができ、それにより、マスタテーブル112への不要な読取りを回避することによって、メモリアクセスレイテンシが減り、メモリ帯域幅が節約される。第1のメモリ104が第2のメモリ106のための透過的なキャッシュとして使用されるいくつかの態様によれば、マスタテーブル112へのアクセスは、(たとえば、各キャッシュライン(図示せず)のためのキャッシュタグ(図示せず)とともに)第1のメモリ104内にQoSID218(0)〜218(Q)を記憶することによって回避されることもある。そのような態様では、マスタテーブル112からのキャッシュライン粒度データのサブセットが、第1のメモリ104によって提供されたキャッシュに組み込まれ得る。
【００２０】
例示的な動作中、メモリコントローラ202はソフトウェアプロセス110から、メモリアドレス222を含むメモリアクセス要求220を受信し得る。メモリコントローラ202は、(たとえば、メモリアドレス222またはメモリアドレス222の最上位ビットを使用して、マスタテーブル112へのルックアップおよび/またはマスタテーブルキャッシュ214へのルックアップを実行することによって)メモリアドレス222に対応するQoSID(たとえば、QoSID212(0))を識別する。QoSID212(0)が識別されると、メモリコントローラ202は、QoSID212(0)をQoSポリシー状態(たとえば、QoSポリシー状態210(0))に関連付けるためにQoSポリシーテーブル204を使用する。メモリコントローラ202は次いで、メモリアクセス要求220を実行する際にQoSポリシー状態210(0)を適用する。たとえば、第1のメモリ104が第2のメモリ106のための透過的なキャッシュとして動作するように構成される態様では、メモリアクセス要求220は、第2のメモリ106におけるメモリアドレス222に対するメモリ読取り動作またはメモリ書き込み動作を示し得る。メモリアクセス要求220を受信すると、メモリコントローラ202は、メモリアドレス222に対応するQoSID212(0)を識別し、第2のメモリ106のその領域に当てはまるQoSポリシー状態210(0)(たとえば、第1のメモリ104におけるキャッシュのうちのどれだけが占有され得るかなど)を決定する。メモリコントローラ202は、QoSポリシー状態210(0)に従って第1のメモリ104に対するキャッシュエビクション動作またはキャッシュフィル動作を実行し得る。
【００２１】
このようにして、ソフトウェアプロセス110がメモリ割振りおよび再配置に関する決定を下す必要がないので、メモリコントローラ202は透過的なアドレス指定および透過的なキャッシングの利益をもたらす。しかしながら、ソフトウェアプロセス110は依然として、QoSID212(0)〜212(M)および/またはQoSポリシーテーブル204を更新することによって、データ配置および割振りに影響を及ぼすことが可能である。この態様は、管理されていないキャッシュとソフトウェア管理された区分の両方に対する柔軟なサポートを提供する。たとえば、キャッシュとして第1のメモリ104を使用するとき、ソフトウェアプロセス110は、クォータベースのメモリ管理方式を実装することができ、それによって、第2のメモリ106のメモリ領域118(0)〜118(X)のうちの所与の1つ(たとえば、メモリ領域118(0))が、メモリ領域118(0)〜118(X)のサイズよりも大きいクォータを指定するようにQoSポリシー状態210(0)を割り当てることによって、第1のメモリ104においてロックされる。結果として、メモリ領域118(0)のためのデータは、クォータが決して満たされないので、決して第1のメモリ104からエビクトされない。同様に、ソフトウェアプロセス110は、0のクォータを指定するようにQoSポリシー状態210(0)を割り当てることによって、キャッシュバイパスを実装し得る。ソフトウェアプロセス110はまた、第1のメモリ104のサイズよりも小さいクォータを指定するようにQoSポリシー状態210(0)を割り当てることによって、部分的キャッシュ方式を実装し得る。QoSポリシー状態210(0)によって割り当てられたクォータは、対応するQoSID212(0)〜212(M)に関連付けられる第2のメモリ106のすべてのメモリ領域118(0)〜118(X)の合計サイズに当てはまることに留意されたい。たとえば、QoSID212(0)が第2のメモリ106の4つのメモリ領域118(0)〜118(3)に関連付けられ、メモリ領域118(0)〜118(3)の各々が4キロバイトのサイズであると仮定する。QoSID212(0)に関連付けられるQoSポリシー状態210(0)によって指定されたクォータが少なくとも16キロバイトである限り、メモリ領域118(0)〜118(3)は第1のメモリ104においてロックされたままとなる。
【００２２】
第1のメモリ104が第2のメモリ106のための透過的なキャッシュとして動作するように構成される態様の場合にQoSポリシー状態210(0)〜210(Y)を適用するとき、メモリコントローラ202は、第1のメモリ104の割振りのための異なる戦略を採用し得る。たとえば、第1のメモリ104からエビクトすべきキャッシュラインを決定するとき、メモリコントローラ202は、いくつかのキャッシュラインをランダムにサンプリングし、エビクションビクティムとして最大のクォータ超過(over quota)であるQoSIDに関連付けられるキャッシュラインを選択し得る。代替的に、第1のメモリ104に書き込まれるべきキャッシュラインが最大のクォータ超過である場合、メモリコントローラ202は、第1のメモリ104を完全にバイパスすること、または同じQoSIDを有する別のキャッシュラインをエビクトすることを選択し得る。キャッシュフィルを実行するとき、メモリコントローラ202は、キャッシュフィル動作を、新しいデータのQoSIDに関連付けられるQoSポリシー状態によって示されるクォータまたは確率に基づかせ得る。最後に、いくつかの態様では、メモリコントローラ202は、第1のメモリ104の一部のメモリ容量を意図的に未使用のままにすることによって、第1のメモリ104および第2のメモリ106のための合計帯域幅を改善することができる。これは、第1のメモリ104における無効なラインのためのクォータを指定し、指定された数のラインが第1のメモリ104においてアイドル状態にとどまることが可能になることによって、達成され得る。
【００２３】
異種メモリシステム102を柔軟に管理するための図2のメモリコントローラ202の例示的な動作を示すために、図3A〜図3Cを提供する。明快にするために、図3A〜図3Cについて説明する際に図2の要素が参照される。図3Aでは、動作は、異種メモリシステム102の特定の実装形態に応じて異なる方法で始まり得る。いくつかの態様では、メモリコントローラ202は、第2のメモリ106のための透過的なキャッシュとして第1のメモリ104を動作させることができ、複数のメモリ領域118(0)〜118(X)は、第2のメモリ106の複数のメモリ領域118(0)〜118(X)を含む(ブロック300)。メモリコントローラ202は、異なる性能特性を有する第1のメモリ104および第2のメモリ106の一方または両方の複数のメモリ領域118(0)〜118(X)のうちのメモリ領域118(0)に対応するメモリアドレス222を含むメモリアクセス要求220を受信する(ブロック302)。この点について、メモリコントローラ202は、本明細書では「異なる性能特性を有する第1のメモリおよび第2のメモリの一方または両方の複数のメモリ領域のうちのメモリ領域に対応するメモリアドレスを含むメモリアクセス要求を受信するための手段」と呼ばれ得る。次いで、処理は図3Bのブロック304で再開する。
【００２４】
次に図3Bを参照すると、メモリコントローラ202は次に、複数のQoSID208(0)〜208(Y)のうちのソフトウェア構成可能なQoSID208(0)を識別し、QoSID208(0)は、メモリアドレス222に関連付けられる(ブロック304)。したがって、メモリコントローラ202は、本明細書では「メモリアドレスに関連付けられるソフトウェア構成可能なQoSIDを識別するための手段」と呼ばれ得る。第1のメモリ104が第2のメモリ106のための透過的なキャッシュとして動作するように構成される態様などのいくつかの態様は、メモリアドレス222に関連付けられるQoSID208(0)を識別するためのブロック304の動作が、メモリコントローラ202のマスタテーブルキャッシュ214の複数のマスタテーブルキャッシュエントリ216(0)〜216(Z)のうちのマスタテーブルキャッシュエントリ216(0)がメモリアドレス222に対応するかどうかを判断すること(ブロック308)を含み得ることを規定し得る。対応する場合、メモリコントローラ202は、マスタテーブルキャッシュエントリ216(0)にアクセスし得る(ブロック310)。一方、複数のマスタテーブルキャッシュエントリ216(0)〜216(Z)のうちのマスタテーブルキャッシュエントリ216(0)がメモリアドレス222に対応しない場合、メモリコントローラ202は、第2のメモリ106におけるマスタテーブル112にアクセスすることができ、マスタテーブル112は、各々が複数のQoSID212(0)〜212(M)のうちのQoSID212(0)に関連付けられるメモリアドレス222に対応する複数のマスタテーブルエントリ114(0)〜114(M)を含む(ブロック312)。メモリアドレス222に関連付けられるQoSID212(0)を識別した後、処理は図3Cのブロック314で再開する。
【００２５】
次に図3Cを参照すると、メモリコントローラ202は、メモリコントローラ202のソフトウェア構成可能なQoSポリシーテーブル204を使用して、メモリアドレス222に関連付けられるQoSID208(0)をQoSポリシー状態210(0)に関連付ける(ブロック314)。したがって、メモリコントローラ202は、本明細書では「ソフトウェア構成可能なQoSポリシーテーブルを使用して、メモリアドレスに関連付けられるQoSIDをQoSポリシー状態に関連付けるための手段」と呼ばれ得る。メモリコントローラ202は次いで、第1のメモリ104および第2のメモリ106の一方でメモリアクセス動作を実行するためにQoSポリシー状態210(0)を適用する(ブロック316)。この点について、メモリコントローラ202は、本明細書では「第1のメモリおよび第2のメモリの一方でメモリアクセス動作を実行するためにQoSポリシー状態を適用するための手段」と呼ばれ得る。第1のメモリ104が第2のメモリ106のための透過的なキャッシュとして動作するように構成される態様などのいくつかの態様では、メモリアクセス動作を実行するためにQoSポリシー状態210(0)を適用するためのブロック316の動作は、QoSポリシー状態210(0)に基づいて第1のメモリ104からのキャッシュエビクションおよび第1のメモリ104のキャッシュフィルの一方を実行すること(ブロック318)を含み得る。いくつかの態様はまた、メモリコントローラ202が、プロセッサベースシステム200上で実行されているソフトウェアプロセス110から、QoSポリシーテーブル204の複数のQoSポリシーエントリ206(0)〜206(Y)のうちのQoSポリシーエントリ206(0)に対する更新を受信し得る(ブロック320)ことを規定し得る。
【００２６】
本明細書で開示する態様によるプロセッサベースシステムにおける空間サービス品質(QoS)タグ付けを使用する異種メモリシステムの柔軟な管理を実現することは、任意のプロセッサベースデバイス内で提供され得るか、または任意のプロセッサベースデバイスに統合され得る。例には、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、全地球測位システム(GPS)デバイス、モバイルフォン、セルラーフォン、スマートフォン、セッション開始プロトコル(SIP)フォン、タブレット、ファブレット、サーバ、コンピュータ、ポータブルコンピュータ、モバイルコンピューティングデバイス、装着型コンピューティングデバイス(たとえば、スマートウォッチ、ヘルスまたはフィットネストラッカー、アイウェアなど)、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤ、自動車、車両構成要素、アビオニクスシステム、ドローン、およびマルチコプターが含まれる。
【００２７】
この点について、図4は、図2のプロセッサベースシステム200に対応することができ、図2に示すメモリコントローラ202を用いることができる、プロセッサベースシステム400の一例を示す。この例では、プロセッサベースシステム400は、各々が1つまたは複数のプロセッサ404を含む、1つまたは複数の中央処理装置(CPU)402を含む。CPU402は、マスタデバイスであり得る。CPU402は、一時的に記憶されたデータに迅速にアクセスするために、プロセッサ404に結合されたキャッシュメモリ406を有し得る。CPU402は、システムバス408に結合され、プロセッサベースシステム400内に含まれるマスタデバイスとスレーブデバイスとを相互結合することができる。よく知られているように、CPU402は、システムバス408を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU402は、スレーブデバイスの一例として、メモリコントローラ202にバストランザクション要求を通信することができる。
【００２８】
他のマスタデバイスおよびスレーブデバイスがシステムバス408に接続されてよい。図4に示すように、これらのデバイスは、例として、メモリシステム410と、1つまたは複数の入力デバイス412と、1つまたは複数の出力デバイス414と、1つまたは複数のネットワークインターフェースデバイス416と、1つまたは複数のディスプレイコントローラ418とを含むことができる。入力デバイス412は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含むことができる。出力デバイス414は、限定はしないが、オーディオインジケータ、ビデオインジケータ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス416は、ネットワーク420へのデータ、およびネットワーク420からのデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク420は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス416は、任意のタイプの所望の通信プロトコルをサポートするように構成され得る。メモリシステム410は、1つまたは複数のメモリユニット422(0)〜422(Z)を含むことができ、そのサブセットは異種メモリを含み得る。
【００２９】
CPU402はまた、1つまたは複数のディスプレイ424に送られる情報を制御するために、システムバス408を介してディスプレイコントローラ418にアクセスするように構成され得る。ディスプレイコントローラ418は、1つまたは複数のビデオプロセッサ426を介して表示されるように情報をディスプレイ424に送り、ビデオプロセッサ426は、表示されるべき情報を処理してディスプレイ424に適したフォーマットにする。ディスプレイ424は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００３０】
当業者は、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェア、メモリ内もしくは別のコンピュータ可読媒体内に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることをさらに諒解されよう。本明細書で説明するメモリコントローラは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用される場合がある。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、任意のタイプの所望の情報を記憶するように構成され得る。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記において説明した。そのような機能がどのように実装されるのかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００３１】
本明細書で開示する態様に関して説明する様々な例示的なメモリコントローラ、論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。プロセッサは、マイクロプロセッサであってよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００３２】
本明細書で開示する態様は、ハードウェアにおいて具現化されてもよく、かつハードウェア内に記憶され、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、動的RAM(DRAM)、同期DRAM(SDRAM)、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体の中に存在し得る命令において具現化されてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読取るとともに記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化してよい。プロセッサおよび記憶媒体は、ASICの中に存在する場合がある。ASICは、リモート局の中に存在する場合がある。代替として、プロセッサおよび記憶媒体は、個別構成要素としてリモート局、基地局、またはサーバの中に存在する場合がある。
【００３３】
本明細書の例示的な態様のいずれかで説明した動作ステップが、例示および説明を提供するために記載されていることにも留意されたい。説明した動作は、図示のセット以外の数多くの異なるセットにおいて実行される場合がある。さらに、単一の動作ステップにおいて記載した動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。加えて、例示的な態様において論じられた1つまたは複数の動作ステップは組み合わせられる場合がある。フローチャート図に示した動作ステップは、当業者には容易に明らかであるように、多数の異なる変更を受ける場合があることを理解されたい。当業者は、情報および信号が様々な異なる技術および技法のうちのいずれかを使用して表されてもよいことも理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００３４】
本開示の上記の説明は、あらゆる当業者が本開示を作成または使用することを可能にするために提供されている。本開示の様々な変更が当業者に容易に明らかになり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用されてもよい。したがって、本開示は、本明細書で説明した例および設計に限定されるものでなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００３５】
100  プロセッサベースシステム
102  異種メモリシステム
104  第1のメモリ
106  第2のメモリ
108  メモリコントローラ
110  ソフトウェアプロセス
112  マスタテーブル
114(0)〜114(M)  マスタテーブルエントリ
116(0)〜116(M)  メモリアドレス
116'(0)〜116'(Z)  キャッシュされたメモリアドレス
118(0)〜118(X)  メモリ領域
120(0)〜120(M)  キャッシュウェイ識別子(「WAY ID」)
120'(0)〜120'(Z)  キャッシュされたウェイ識別子(「WAY ID」)
200  プロセッサベースシステム
202  メモリコントローラ
204 QoSポリシーテーブル
206(0)〜206(Y) QoSポリシーエントリ
208(0)〜208(Y) QoSID
210(0)〜210(Y) QoSポリシー状態
212(0)〜212(M) QoSID
212'(0)〜212'(Z)  キャッシュされたQoSID
214  マスタテーブルキャッシュ
216(0)〜216(Z)  マスタテーブルキャッシュエントリ
218(0)〜218(Q) QoSID
220  メモリアクセス要求
222  メモリアドレス
400  プロセッサベースシステム
402  中央処理装置(CPU)
404  プロセッサ
406  キャッシュメモリ
408  システムバス
410  メモリシステム
412  入力デバイス
414  出力デバイス
416  ネットワークインターフェースデバイス
418  ディスプレイコントローラ
420  ネットワーク
422(0)〜422(Z)  メモリユニット
424  ディスプレイ
426  ビデオプロセッサ
【図１】
2019532412.tif 000003
【図２】
2019532412.tif 000004
【図３Ａ】
2019532412.tif 000005
【図３Ｂ】
2019532412.tif 000006
【図３Ｃ】
2019532412.tif 000007
【図４】
2019532412.tif 000008
【国際調査報告】
2019532412.tif 000009
2019532412.tif 000010
2019532412.tif 000011