(57)【特許請求の範囲】
【請求項１】
それぞれが、複数のメモリアドレス変換前読出しトランザクションおよび複数のメモリアドレス変換前書込みトランザクションを受信するように構成された複数の入力データパスに変換前トランザクションを搬送するように構成される複数の入力データポートであって、前記複数の入力データパスが、対応する複数の専用入力トランザクションバッファを備え、各専用入力トランザクションバッファが、前記複数の変換前トランザクションのうちのそれぞれの変換前トランザクションを記憶するように構成された複数の入力トランザクションバッファスロットを備える、複数の入力データポートと、
対応する複数の専用出力トランザクションバッファを備え、各専用出力トランザクションバッファが、複数の変換後トランザクションのうちのそれぞれの変換後トランザクションを記憶するように構成された複数の出力トランザクションバッファスロットを備える、複数の出力データパスと、
前記複数の出力データパスに対応する複数の出力データポートと、
変換後アービタと、
前記複数の専用入力トランザクションバッファのうちの1つの専用入力トランザクションバッファから変換前トランザクションのメモリアドレス変換要求(MATR)を検索することと、
変換されたメモリアドレスフィールド(TMAF)を生成するために、前記MATRに基づいてメモリアドレス変換動作を実行することと、
前記複数の専用出力トランザクションバッファのうちの1つの専用出力トランザクションバッファに、変換後トランザクションとして前記TMAFおよび変換前トランザクションペイロードを提供することと
を行うように構成されたMMU管理回路と
を備え、
前記複数の出力データパスのうちの各出力データパスが、対応する複数の出力データポートを通じて前記変換後トランザクションを出力するように構成され、
前記変換後アービタが、
前記複数の出力データポートのうちの1つの出力データポートに出力されるべき前記複数の出力データパスの複数のサブセットから1つまたは複数の変換後トランザクションを受信することと、
変換後サービス品質(QoS)アービトレーションに基づいて、前記1つまたは複数の変換後トランザクションのうちの1つの変換後トランザクションを選択することと、
前記選択された変換後トランザクションの前記TMAFを、出力するために前記出力データポートに提供することと
を行うように構成される、統合メモリ管理ユニット(MMU)。
【請求項２】
前記複数の入力データパスの各々を独立してクロックするように構成された、請求項1に記載の統合MMU。
【請求項３】
前記MMU管理回路が、前記複数の入力データパスおよび前記複数の出力データパスにメモリ管理機能を提供するために、前記複数の入力データパスおよび前記複数の出力データパスの近位にある共有レジスタおよび共有制御ロジックのうちの1つまたは複数をさらに備える、請求項1に記載の統合MMU。
【請求項４】
前記複数の出力データパスのうちの1つの出力データパスが、前記複数の入力データパスのすべてによる前記複数の出力トランザクションバッファスロットの残りの部分へのアクセスを可能にしながら、前記複数の入力データパスのうちの1つまたは複数の入力データパスを排他的に使用するために、前記複数の出力トランザクションバッファスロットのうちの1つまたは複数の出力トランザクションバッファスロットを予約するように構成される、請求項1に記載の統合MMU。
【請求項５】
前記複数の出力データパスのうちの1つの出力データパスが、任意のQoS優先度に関連付けられるMATRによる前記複数の出力トランザクションバッファスロットの残りの部分へのアクセスを可能にしながら、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために、前記複数の出力トランザクションバッファスロットのうちの1つまたは複数の出力トランザクションバッファスロットを予約するように構成される、請求項1に記載の統合MMU。
【請求項６】
前記MMU管理回路が、
前記複数の入力データパスおよび前記複数の出力データパスの近位にあり、仮想アドレスの複数のメモリアドレス変換を物理アドレスにキャッシュするように構成された1つまたは複数の変換キャッシュと、
前記複数の入力データパスおよび前記複数の出力データパスの近位にあり、それぞれがMATRのためのTMAFを生成するように構成された1つまたは複数のハードウェアページテーブルウォーカーと
を備え、
前記MMU管理回路が、前記1つまたは複数の変換キャッシュのうちの1つまたは複数および前記1つまたは複数のハードウェアページテーブルウォーカーのうちの1つまたは複数を使用して前記TMAFを生成するために、前記MATRに基づいて前記メモリアドレス変換動作を実行するように構成される、請求項1に記載の統合MMU。
【請求項７】
前記1つまたは複数のハードウェアページテーブルウォーカーが、それぞれ、前記複数の出力データポートのうちの1つの出力データポートを使用して前記MATRのための前記TMAFを生成するように構成される、請求項6に記載の統合MMU。
【請求項８】
前記1つまたは複数のハードウェアページテーブルウォーカーが、専用出力ポートを使用して前記MATRのための前記TMAFを生成するように構成される、請求項6に記載の統合MMU。
【請求項９】
前記MMU管理回路が、MATRおよび対応するTMAFを記憶するための複数のPTABスロットを備える保留中のトランザクションアドレスバッファ(PTAB)をさらに備え、
前記PTABが、
前記MMU管理回路によって前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから検索された前記変換前トランザクションの前記MATRを保留中の変換として記憶することと、
前記MMU管理回路によって生成された前記保留中の変換に対応する前記TMAFを受信することと、
前記保留中の変換のための前記TMAFを記憶することと、
前記TMAFを前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに提供するために、前記保留中の変換をデキューすることと
を行うように構成される、請求項6に記載の統合MMU。
【請求項１０】
前記PTABが、前記複数の入力データパスのすべてによる前記複数のPTABスロットの残りの部分へのアクセスを可能にしながら、前記複数の入力データパスのうちの1つまたは複数の入力データパスを排他的に使用するために、前記複数のPTABスロットのうちの1つまたは複数のPTABスロットを予約するように構成される、請求項9に記載の統合MMU。
【請求項１１】
前記PTABが、任意のQoS優先度に関連付けられるMATRによる前記複数のPTABスロットの残りの部分へのアクセスを可能にしながら、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために、前記複数のPTABスロットのうちの1つまたは複数のPTABスロットを予約するように構成される、請求項9に記載の統合MMU。
【請求項１２】
前記MMU管理回路が、
入力トランザクションQoSアービトレーションに基づいて、前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから前記変換前トランザクションの前記MATRを選択することと、
前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングすることと
を行うように構成されることによって、前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから前記変換前トランザクションの前記MATRを検索するように構成された入力変換スケジューラをさらに備え、
前記PTABが、前記入力変換スケジューラによってスケジューリングされた前記選択されたMATRを記憶することによって前記MATRを記憶するように構成される、請求項9に記載の統合MMU。
【請求項１３】
前記入力変換スケジューラが、前記選択されたMATRの前記変換前トランザクションの前記専用入力トランザクションバッファに対応する前記専用出力トランザクションバッファが、利用可能な出力トランザクションバッファスロットを含むと決定することによって、前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするように構成される、請求項12に記載の統合MMU。
【請求項１４】
前記選択されたMATRが、前記複数の入力データパスのうちの1つまたは複数を排他的に使用するために予約された前記複数のPTABスロットのうちの1つまたは複数に記憶され得るという決定に応答して、前記入力変換スケジューラが、前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするように構成される、請求項12に記載の統合MMU。
【請求項１５】
前記選択されたMATRが、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために予約された前記複数のPTABスロットのうちの1つまたは複数に記憶され得るという決定に応答して、前記入力変換スケジューラが、前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするように構成される、請求項12に記載の統合MMU。
【請求項１６】
前記MMU管理回路が、
TMAFが記憶されている前記PTAB内の1つまたは複数の保留中の変換の中から保留中の変換を選択することと、
出力トランザクションQoSアービトレーションに基づいて、前記TMAFを、前記複数の専用出力トランザクションバッファのうちの1つの専用出力トランザクションバッファに変換後トランザクションとして移動されるようにスケジューリングすることと
を行うように構成されることによって、前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに、前記変換後トランザクションとして前記TMAFおよび前記変換前トランザクションペイロードを提供するように構成された出力変換スケジューラをさらに備え、
前記PTABが、前記スケジューリングに基づいて、前記TMAFを前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに提供するために、前記保留中の変換をデキューするように構成される、請求項9に記載の統合MMU。
【請求項１７】
前記出力変換スケジューラが、前記保留中の変換の前記MATRが受信された前記専用入力トランザクションバッファに対応する前記専用出力トランザクションバッファが、利用可能な出力トランザクションバッファスロットと、前記保留中の変換の相対優先度とを含むという決定に基づいて、前記TMAFが前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに移動されるようにスケジューリングするように構成される、請求項16に記載の統合MMU。
【請求項１８】
前記出力変換スケジューラが、前記変換後トランザクションの相対優先度を上げるようにさらに構成される、請求項16に記載の統合MMU。
【請求項１９】
前記MMU管理回路が、
TMAFが記憶されていない1つまたは複数の保留中のMATRの中から、前記1つまたは複数の保留中のMATRの間のQoSアービトレーションに基づいて、前記PTAB内の保留中のMATRを選択することと、
前記選択されたMATRに対応するキャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在するかどうかを決定することと、
前記キャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在するという決定に応答して、前記PTABによって前記選択されたMATRのために記憶されるべき前記TMAFの一部として、前記キャッシュされたメモリアドレス変換結果を提供することと、
前記キャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在しないという決定に応答して、
前記選択された保留中のMATRのメモリアドレス変換結果を生成するために、前記1つまたは複数のハードウェアページテーブルウォーカーのうちの1つのハードウェアページテーブルウォーカーを割り当てることと、
前記ハードウェアページテーブルウォーカーから前記メモリアドレス変換結果を受信することと、
前記PTABによって前記選択された保留中のMATRのために記憶されるべき前記受信されたメモリアドレス変換結果をTMAFとして提供することと、
前記受信されたメモリアドレス変換結果を前記1つまたは複数の変換キャッシュに提供することと
を行うように構成されることによって、前記MATRに基づいて前記メモリアドレス変換動作を実行するように構成されたMMUマネージャをさらに備える、請求項9に記載の統合MMU。
【請求項２０】
前記MMUマネージャが、ハードウェアページテーブルウォーカーQoSアービトレーションに基づいて、前記選択された保留中のMATRのメモリアドレス変換結果を生成するために、前記1つまたは複数のハードウェアページテーブルウォーカーのうちの前記ハードウェアページテーブルウォーカーを割り当てるように構成される、請求項19に記載の統合MMU。
【請求項２１】
集積回路(IC)に統合される、請求項1に記載の統合MMU。
【請求項２２】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラーフォン、スマートフォン、タブレット、ファブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤおよび自動車からなるグループから選択されたデバイスに統合される、請求項1に記載の統合MMU。
【請求項２３】
統合メモリ管理ユニット(MMU)であって、
前記統合MMUの複数の入力データパスに対応する複数の専用入力トランザクションバッファのうちの1つの専用入力トランザクションバッファからメモリアドレス変換要求(MATR)を検索するための手段と、
変換されたメモリアドレスフィールド(TMAF)を生成するために、前記MATRに基づいてメモリアドレス変換動作を実行するための手段と、
前記複数の入力データパスに対応する複数の専用出力トランザクションバッファのうちの1つの専用出力トランザクションバッファに、変換後トランザクションとして前記TMAFおよび変換前トランザクションペイロードを提供するための手段と、
複数の出力データパスのうちの1つの出力データパスを介して、前記変換後トランザクションを前記統合MMUの複数の出力データポートのうちの1つの出力データポートに出力するための手段と、
前記複数の出力データポートのうちの1つの出力データポートに出力されるべき前記複数の出力データパスの複数のサブセットから1つまたは複数の変換後トランザクションを受信するための手段と、
変換後サービス品質(QoS)アービトレーションに基づいて、前記1つまたは複数の変換後トランザクションのうちの1つの変換後トランザクションを選択するための手段と、
前記選択された変換後トランザクションの前記TMAFを、出力するために前記出力データポートに提供するための手段と、
を備える、統合MMU。
【請求項２４】
前記TMAFを生成するために前記MATRに基づいて前記メモリアドレス変換動作を実行するための前記手段が、前記複数の入力データパスおよび前記複数の出力データパスの近位にある1つまたは複数の変換キャッシュと、前記複数の入力データパスおよび前記複数の出力データパスの近位にある1つまたは複数のハードウェアページテーブルウォーカーとを備える、請求項23に記載の統合MMU。
【請求項２５】
メモリ管理を提供するための方法であって、
統合メモリ管理ユニット(MMU)によって、前記統合MMUの複数の入力データパスに対応する複数の専用入力トランザクションバッファのうちの1つの専用入力トランザクションバッファから変換前トランザクションのメモリアドレス変換要求(MATR)を検索するステップと、
変換されたメモリアドレスフィールド(TMAF)を生成するために、前記MATRに基づいてメモリアドレス変換動作を実行するステップと、
前記複数の入力データパスに対応する複数の専用出力トランザクションバッファのうちの1つの専用出力トランザクションバッファに、変換後トランザクションとして前記TMAFおよび変換前トランザクションペイロードを提供するステップと、
複数の出力データパスのうちの1つの出力データパスを介して、前記統合MMUの複数の出力データポートのうちの1つの出力データポートに前記変換後トランザクションを出力するステップと、
前記複数の出力データポートのうちの1つの出力データポートに出力されるべき前記複数の出力データパスの複数のサブセットから1つまたは複数の変換後トランザクションを、前記統合MMUの変換後アービタによって受信するステップと、
変換後サービス品質(QoS)アービトレーションに基づいて、前記1つまたは複数の変換後トランザクションのうちの1つの変換後トランザクションを、前記変換後アービタによって選択するステップと、
前記選択された変換後トランザクションを、出力するために前記出力データポートに、前記変換後アービタによって提供するステップと
を備える、方法。
【請求項２６】
前記複数の入力データパスの各々が独立してクロックされる、請求項25に記載の方法。
【請求項２７】
前記統合MMUが、前記複数の入力データパスおよび前記複数の出力データパスにメモリ管理機能を提供するために、前記複数の入力データパスおよび前記複数の出力データパスの近位にある共有レジスタおよび共有制御ロジックのうちの1つまたは複数を備える、請求項25に記載の方法。
【請求項２８】
前記複数の出力データパスのうちの1つの出力データパスが、前記複数の入力データパスのすべてによる複数の出力トランザクションバッファスロットの残りの部分へのアクセスを可能にしながら、前記複数の入力データパスのうちの1つまたは複数の入力データパスを排他的に使用するために前記複数の出力トランザクションバッファスロットのうちの1つまたは前記複数の出力トランザクションバッファスロットを予約するように構成される、請求項25に記載の方法。
【請求項２９】
前記複数の出力データパスのうちの1つの出力データパスが、任意のQoS優先度に関連付けられるMATRによる前記複数の出力トランザクションバッファスロットの残りの部分へのアクセスを可能にしながら、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために、複数の出力トランザクションバッファスロットのうちの1つまたは複数の出力トランザクションバッファスロットを予約するように構成される、請求項25に記載の方法。
【請求項３０】
前記TMAFを生成するために前記MATRに基づいて前記メモリアドレス変換動作を実行するステップが、前記複数の入力データパスおよび前記複数の出力データパスの近位にある1つまたは複数の変換キャッシュと、前記複数の入力データパスおよび前記複数の出力データパスの近位にある1つまたは複数のハードウェアページテーブルウォーカーとを使用して前記メモリアドレス変換動作を実行するステップを備える、請求項25に記載の方法。
【請求項３１】
前記1つまたは複数のハードウェアページテーブルウォーカーが、前記複数の出力データポートのうちの1つの出力データポートを使用して前記MATRのための前記TMAFを生成する、請求項30に記載の方法。
【請求項３２】
前記1つまたは複数のハードウェアページテーブルウォーカーが、専用出力ポートを使用して前記MATRのための前記TMAFを生成する、請求項30に記載の方法。
【請求項３３】
前記統合MMUの保留中のトランザクションアドレスバッファ(PTAB)によって、MMUによって前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから検索された前記変換前トランザクションの前記MATRを保留中の変換として記憶するステップと、
前記PTABによって、MMU管理回路によって生成された前記保留中の変換に対応する前記TMAFを受信するステップと、
前記PTABによって、前記保留中の変換のための前記TMAFを記憶するステップと、
前記PTABによって、前記TMAFを前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに提供するために、前記保留中の変換をデキューするステップと
をさらに備える、請求項30に記載の方法。
【請求項３４】
前記PTABの複数のPTABスロットのうちの1つまたは複数のPTABスロットが、前記複数のPTABスロットの残りの部分が前記複数の入力データパスのすべてによってアクセス可能でありながら、前記複数の入力データパスのうちの1つまたは複数の入力データパスを排他的に使用するために予約される、請求項33に記載の方法。
【請求項３５】
前記PTABの複数のPTABスロットのうちの1つまたは複数のPTABスロットが、前記複数のPTABスロットの残りの部分が任意のQoS優先度に関連付けられるMATRによってアクセス可能でありながら、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために予約される、請求項33に記載の方法。
【請求項３６】
前記変換前トランザクションの前記MATRを前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから検索するステップが、
前記統合MMUの入力変換スケジューラによって、入力トランザクションQoSアービトレーションに基づいて、前記複数の専用入力トランザクションバッファのうちの前記専用入力トランザクションバッファから前記変換前トランザクションの前記MATRを選択するステップと、
前記入力変換スケジューラによって、前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするステップと
を備え、
前記MATRを記憶するステップが、前記入力変換スケジューラによってスケジューリングされた前記選択されたMATRを記憶するステップを備える、請求項33に記載の方法。
【請求項３７】
前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするステップが、前記選択されたMATRの前記変換前トランザクションの前記専用入力トランザクションバッファに対応する前記専用出力トランザクションバッファが、利用可能な出力トランザクションバッファスロットを含むと決定するステップを備える、請求項36に記載の方法。
【請求項３８】
前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするステップが、前記選択されたMATRが前記複数の入力データパスのうちの1つまたは複数を排他的に使用するために予約された前記複数のPTABスロットのうちの前記1つまたは複数に記憶され得ると決定するステップを備える、請求項36に記載の方法。
【請求項３９】
前記選択されたMATRが前記PTABによって記憶されるようにスケジューリングするステップが、前記選択されたMATRが、1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために予約された前記複数のPTABスロットのうちの前記1つまたは複数に記憶され得ると決定するステップを備える、請求項36に記載の方法。
【請求項４０】
前記TMAFおよび前記変換前トランザクションペイロードを、前記変換後トランザクションとして前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに提供するステップが、
前記統合MMUの出力変換スケジューラによって、TMAFが記憶されている前記PTAB内の1つまたは複数の保留中の変換の中から保留中の変換を選択するステップと、
前記出力変換スケジューラによって、出力トランザクションQoSアービトレーションに基づいて、前記TMAFを、前記複数の専用出力トランザクションバッファのうちの1つの専用出力トランザクションバッファに変換後トランザクションとして移動されるようにスケジューリングするステップと
を備え、
前記TMAFを前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに提供するために、前記保留中のTMAFをデキューするステップが、前記スケジューリングに基づく、請求項33に記載の方法。
【請求項４１】
前記保留中のTMAFが前記複数の専用出力トランザクションバッファのうちの前記専用出力トランザクションバッファに移動されるようにスケジューリングするステップが、前記保留中の変換の前記MATRが受信された前記専用入力トランザクションバッファに対応する前記専用出力トランザクションバッファが、利用可能な出力トランザクションバッファスロットと、前記保留中の変換の相対優先度とを含むという決定に基づく、請求項40に記載の方法。
【請求項４２】
前記出力変換スケジューラによって、前記変換後トランザクションの相対優先度を上げるステップをさらに備える、請求項40に記載の方法。
【請求項４３】
前記MATRに基づいて前記メモリアドレス変換動作を実行するステップが、
前記統合MMUのMMUマネージャによって、TMAFが記憶されていない1つまたは複数の保留中のMATRの中から、前記1つまたは複数の保留中のMATRの間のQoSアービトレーションに基づいて、前記PTAB内の保留中のMATRを選択するステップと、
前記MMUマネージャによって、前記選択された保留中のMATRに対応するキャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在するかどうかを決定するステップと、
前記キャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在するという決定に応答して、前記MMUマネージャによって、前記PTABによって前記選択された保留中のMATRのために記憶されるべき前記TMAFの一部として、前記キャッシュされたメモリアドレス変換結果を提供するステップと、
前記キャッシュされたメモリアドレス変換結果が前記1つまたは複数の変換キャッシュ内に存在しないという決定に応答して、
前記MMUマネージャによって、前記選択された保留中のMATRのメモリアドレス変換結果を生成するために、前記1つまたは複数のハードウェアページテーブルウォーカーのうちの1つのハードウェアページテーブルウォーカーを割り当てるステップと、
前記MMUマネージャによって、前記ハードウェアページテーブルウォーカーから前記メモリアドレス変換結果を受信するステップと、
前記MMUマネージャによって、前記PTABによって前記選択された保留中のMATRのために記憶されるべき前記受信されたメモリアドレス変換結果をTMAFとして提供するステップと、
前記受信されたメモリアドレス変換結果を前記1つまたは複数の変換キャッシュに提供するステップと
を備える、請求項33に記載の方法。
【請求項４４】
前記選択されたMATRの前記メモリアドレス変換結果を生成するために、前記1つまたは複数のハードウェアページテーブルウォーカーのうちの前記ハードウェアページテーブルウォーカーを割り当てるステップが、ハードウェアページテーブルウォーカーQoSアービトレーションに基づく、請求項43に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、2015年9月25日に出願された、米国特許出願第14/866,228号「PROVIDING MEMORY MANAGEMENT FUNCTIONALITY USING AGGREGATED MEMORY MANAGEMENT UNITS (MMUs)」に対する優先権を主張し、その内容は、その全体が参照により本明細書に組み込まれる。
【０００２】
本開示の技術は、一般に、コンピュータ処理システムのメモリ管理ユニット(MMU)に関する。
【背景技術】
【０００３】
メモリ管理ユニット、すなわちMMUは、コンピュータプロセッサおよび/または周辺デバイスにメモリ管理機能を提供する現代のコンピュータ処理システムの要素である。そのようなメモリ管理機能は、仮想-物理メモリアドレス変換およびキャッシング、ならびにメモリ保護および属性制御を含み得る。現代のコンピュータプロセッサにおける処理コアの数が増加するにつれて、それらの処理コアにMMU機能を提供するための専用のプロセッサチップ面積も同様に増加している。
【０００４】
当技術分野で現在知られているMMUアーキテクチャは、MMU性能を維持しながらMMU機能を提供するチップ面積コストを削減することには効果がないことを示している。そのようなアーキテクチャの1つは、本明細書では「モノリシックMMU」アーキテクチャと呼ばれる。モノリシックMMUアーキテクチャを使用するコンピュータ処理システムは、複数のモノリシックMMUを提供し、その各々は、1つの入力データパスと1つの出力データパスとを含む。各モノリシックMMUはまた、それ自体の変換キャッシュと、トランザクションバッファおよびスケジューラと、1つまたは複数の専用ハードウェアページテーブルウォーカーとを提供する。モノリシックMMUの各々は、他のモノリシックMMUとは独立して動作するので、高性能トラフィック生成クライアントごとに1つのMMUを提供することによって、高い処理性能が達成され得る。しかしながら、モノリシックMMUは、それらの構成要素の複製のために比較的大きなチップ面積を消費し得、低性能クライアント間でモノリシックMMUを共有すると、性能が低下する可能性がある。
【０００５】
別のMMUアーキテクチャは、本明細書では、「分散MMU」アーキテクチャと呼ばれる。分散MMUアーキテクチャを使用するコンピュータ処理システムにおいては、各トラフィック生成クライアントは、対応するクライアントMMUユニットに関連付けられ得る。各クライアントMMUユニットは、その関連付けられるトラフィック生成クライアントのためのローカルトランザクションバッファおよびスケジューラと、ローカル変換キャッシュとを提供する。クライアントMMUユニットは中央MMUユニットに通信可能に結合され、中央MMUユニットは中央変換キャッシュと、1つまたは複数のハードウェアページテーブルウォーカーとを提供する。中央MMUユニットのハードウェアページテーブルウォーカーはクライアントMMUユニット間で共有されるので、分散MMUアーキテクチャは、低性能プロセッサ用のモノリシックMMUと比較してチップ面積を節約し得る。しかしながら、分散MMUアーキテクチャは、中程度および高性能プロセッサには適していない。これは、クライアントMMUユニットおよび中央MMUユニットにおける変換キャッシュエントリの複製、ならびに各クライアントMMUユニットと中央MMUユニットとの間の相互接続に必要なチップ面積に部分的に起因する。中央MMUユニットはまた、メモリコントローラ相互接続への専用ポートを必要とし得、使用されるチップ面積をさらに増加させる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
詳細な説明において開示される態様は、統合メモリ管理ユニット(MMU)を使用したメモリ管理機能の提供を含む。関連する装置および方法もまた開示される。これに関して、一態様では、統合MMUが提供される。統合MMUは、それぞれが対応する入力データパスへのアクセスを提供する複数の入力データポートと、それぞれが出力データポートを駆動する複数の出力データパスとを備える。複数の入力データパスの各々は、それ自体の専用入力トランザクションバッファを含む。同様に、複数の出力データパスの各々は、それ自体の専用出力トランザクションバッファを含む。いくつかの態様では、入力データパスの数は、出力データパスの数と等しいか、より大きいか、または小さくてもよい。いくつかの態様では、入力データポートの数は、出力データポートの数と等しいか、より大きいか、または小さくてもよい。統合MMUはまた、入力トランザクションバッファ内に存在する変換前トランザクションのためのメモリアドレス変換要求(MATR)を検索するように構成されたMMU管理回路を含む。MMU管理回路は、変換されたメモリアドレスフィールド(TMAF)を生成するためにMATRに基づいてメモリアドレス変換動作を実行し、出力データポートへの出力データパスを介して変換後トランザクションの一部として出力されるべき出力トランザクションバッファにTMAFを提供する。このようにして、様々な入力データパスに接続された複数のトラフィック生成クライアントは、任意の単一のクライアントがMMUリソースを独占するのを防ぎながら、統合MMUによって効率的にサービスされ得る。
【０００７】
MMU管理回路のいくつかの態様は、1つまたは複数の変換キャッシュを備える。いくつかの態様によれば、1つまたは複数の変換キャッシュの各々は、すべての入力データパス間で共有されてもよく、ならびに/あるいはそれぞれが入力データパスのサブセット間で共有され得るように複数のより小さいキャッシュに分割されてもよく、および/あるいは入力データパスのうちの1つまたは複数専用であってもよい。統合MMUのいくつかの態様はさらに、1つまたは複数のハードウェアページテーブルウォーカーを提供する。いくつかの態様では、1つまたは複数のハードウェアページテーブルウォーカーは、すべての入力データパス間で共有されてもよく、特定の入力データパスまたは入力データパスのためにそれぞれが予約されたグループに分割されてもよく、および/あるいはサービス品質(QoS)スキームによって定義されるような特定の優先度を有するトランザクションのために予約されたグループに分割されてもよい。いくつかの態様は、入力データパス、出力データパス、1つまたは複数の変換キャッシュ、および1つまたは複数のハードウェアページテーブルウォーカーが、制御および管理回路の共有を可能にするように相互接続されることを提供し得る。
【０００８】
いくつかの態様では、MMU管理回路は、内部で共有されるリソースへのアクセスを管理するために、複数の処理ポイントにおいて内部サービス品質(QoS)アービトレーションを適用するように構成される。非限定的な例として、本明細書で開示されるいくつかの態様におけるMMU管理回路は、入力トランザクションQoSアービトレーションに従って入力トランザクションバッファ内に存在する変換前トランザクションのMATRを受信し得る入力変換スケジューラを備え、保留中のトランザクションアドレスバッファ(PTAB)に変換前トランザクションのMATRを配置する。いくつかの態様によれば、PTABは、すべての入力データパス間で共有されてもよく、それぞれが特定の入力データパスまたは入力データパスのグループに予約されるエントリのグループに分割されてもよく、および/あるいは、それぞれがQoSスキームによって定義されるような特定の優先度を有するトランザクションのために予約されたエントリのグループに分割されてもよい。
【０００９】
いくつかの態様によれば、MMU管理回路はまた、PTABへの変換前トランザクションのためのMATRの追加を監視し、1つまたは複数の保留中のMATR間のQoSアービトレーションに従って処理するためのMATRを選択し得るMMUマネージャを含み得る。MMUマネージャは、キャッシュされたメモリアドレス変換結果が1つまたは複数の変換キャッシュ内のMATRに存在するかどうかを決定し、存在する場合、キャッシュされたメモリアドレス変換結果をPTABに提供し得る。存在しない場合、MMUマネージャは、1つまたは複数のハードウェアページテーブルウォーカーのうちの1つにMATRの変換を割り当てることができる。MMU管理回路のいくつかの態様は、PTABから完了したTMAFを検索し、出力トランザクションのためのQoSアービトレーションポリシーに従ってTMAFを対応する出力トランザクションバッファにキューイングする出力変換スケジューラをさらに提供し得る。上述のような専用要素と共有要素との混合を提供することによって、統合MMUは、モノリシックMMUと分散MMUの両方に関する面積コストを削減しながら、性能を向上させることができる。
【００１０】
別の態様では、統合MMUが提供される。統合MMUは、複数の入力データポートを備え、入力データポートの各々は、複数のメモリアドレス変換前読出しトランザクションおよび複数の変換前書込みトランザクションを受信するように構成された複数の入力データパスに変換前トランザクションを搬送するように構成される。複数の入力データパスは、対応する複数の入力トランザクションバッファを備え、各入力トランザクションバッファは、複数の変換前トランザクションのうちのそれぞれの変換前トランザクションを記憶するように構成された複数の入力トランザクションバッファスロットを備える。統合MMUは、対応する複数の出力トランザクションバッファを備える複数の出力データパスをさらに備える。複数の出力トランザクションバッファの各々は、複数の変換後トランザクションのうちのそれぞれの変換後トランザクションを記憶するように構成された複数の出力トランザクションバッファスロットを備える。統合MMUはまた、MMU管理回路を備える。MMU管理回路は、複数の入力トランザクションバッファのうちの1つの入力トランザクションバッファから変換前トランザクションのMATRを検索するように構成される。MMU管理回路は、TMAFを生成するために、MATRに基づいてメモリアドレス変換動作を実行するようにさらに構成される。MMU管理回路はまた、複数の出力トランザクションバッファのうちの1つの出力トランザクションバッファに、変換後トランザクションとしてTMAFおよび変換前トランザクションペイロードを提供するように構成される。統合MMUの複数の出力データパスのうちの各出力データパスは、対応する複数の出力データポートを通じて変換後トランザクションを出力するように構成される。
【００１１】
別の態様では、統合MMUが提供される。統合MMUは、複数の入力データパスに対応する複数の入力トランザクションバッファのうちの1つの入力トランザクションバッファからMATRを検索するための手段を備える。統合MMUは、TMAFを生成するために、MATRに基づいてメモリアドレス変換動作を実行するための手段をさらに備える。統合MMUはまた、複数の入力データパスに対応する複数の出力トランザクションバッファのうちの1つの出力トランザクションバッファに、変換後トランザクションとしてTMAFおよび変換前トランザクションペイロードを提供するための手段を備える。統合MMUは、複数の出力データパスのうちの1つの出力データパスを介して、変換後トランザクションを複数の出力データポートのうちの1つの出力データポートに出力するための手段をさらに備える。
【００１２】
別の態様では、メモリ管理を提供するための方法が提供される。本方法は、統合メモリ管理ユニット(MMU)によって、複数の入力データパスに対応する複数の入力トランザクションバッファのうちの1つの入力トランザクションバッファからMATRを検索するステップを備える。本方法は、TMAFを生成するために、MATRに基づいてメモリアドレス変換動作を実行するステップをさらに備える。本方法はまた、複数の入力データパスに対応する複数の出力トランザクションバッファのうちの1つの出力トランザクションバッファに、変換後トランザクションとしてTMAFおよび変換前トランザクションペイロードを提供するステップを備える。本方法は、複数の出力データパスのうちの1つの出力データパスを介して、複数の出力データポートのうちの1つの出力データポートに変換後トランザクションを出力するステップをさらに備える。
【図面の簡単な説明】
【００１３】
【図１Ａ】変換前トランザクション(すなわち、読出しトランザクションおよび/または書込みトランザクション)の例示的な構成フィールドと、それぞれがメモリ管理ユニット(MMU)の動作によって変更され得る方法とを示す図である。
【図１Ｂ】変換前トランザクション(すなわち、読出しトランザクションおよび/または書込みトランザクション)の例示的な構成フィールドと、それぞれがメモリ管理ユニット(MMU)の動作によって変更され得る方法とを示す図である。
【図２Ａ】モノリシックMMUアーキテクチャに基づく例示的なコンピュータ処理システムのブロック図である。
【図２Ｂ】分散MMUアーキテクチャに基づく例示的なコンピュータ処理システムのブロック図である。
【図３Ａ】モノリシックMMUおよび分散MMUに関するチップ面積要件を低減しながらメモリ管理機能を提供する例示的な統合MMUのブロック図である。
【図３Ｂ】モノリシックMMUおよび分散MMUに関するチップ面積要件を低減しながらメモリ管理機能を提供する例示的な統合MMUのブロック図である。
【図３Ｃ】モノリシックMMUおよび分散MMUに関するチップ面積要件を低減しながらメモリ管理機能を提供する例示的な統合MMUのブロック図である。
【図４】図3A〜図3Cの統合MMUのMMU管理回路のさらなる例示的な要素を示すブロック図である。
【図５Ａ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図５Ｂ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図５Ｃ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図５Ｄ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図５Ｅ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図５Ｆ】図4の統合MMUおよびその構成要素による、メモリアドレス変換要求(MATR)のエンドツーエンド処理を示すブロック図である。
【図６Ａ】図4の例示的な統合MMUによるメモリ管理機能を提供するための例示的な動作を示すフローチャートである。
【図６Ｂ】図4の例示的な統合MMUによるメモリ管理機能を提供するための例示的な動作を示すフローチャートである。
【図７】MATRを処理するための、図4の入力変換スケジューラおよび保留中のトランザクションアドレスバッファ(PTAB)の例示的な動作を示すフローチャートである。
【図８】保留中のトランザクションの処理を完了するための、図4の出力変換スケジューラおよびPTABの例示的な動作を示すフローチャートである
【図９Ａ】保留中のトランザクションのメモリアドレス変換を提供するために、図4の1つまたは複数の変換キャッシュ、および/あるいは1つまたは複数のハードウェアページテーブルウォーカーを使用するための、図4のMMUマネージャの例示的な動作を示すフローチャートである。
【図９Ｂ】保留中のトランザクションのメモリアドレス変換を提供するために、図4の1つまたは複数の変換キャッシュ、および/あるいは1つまたは複数のハードウェアページテーブルウォーカーを使用するための、図4のMMUマネージャの例示的な動作を示すフローチャートである。
【図１０】図3A〜図3Cの統合MMUを含むことができる例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１４】
次に図面を参照すると、本開示のいくつかの例示的な態様が記載される。「例示的」という語は、本明細書では「一例、事例、または例示としての働きをすること」を意味するために用いられる。本明細書で「例示的」と記載されている任意の態様は、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきではない。
【００１５】
詳細な説明において開示される態様は、統合メモリ管理ユニット(MMU)を使用したメモリ管理機能の提供を含む。モノリシックMMUおよび分散MMUアーキテクチャ、ならびに例示的な統合MMUの要素および動作をより詳細に説明する前に、変換前トランザクション(すなわち、読出しトランザクションおよび/または書込みトランザクション)の例示的な構成フィールドと、それぞれがMMUの動作によって変更され得る方法について議論する。これに関して、図1Aおよび図1Bが提供される。図1Aは例示的な変換前書込みトランザクションを示し、図1Bは例示的な読出しトランザクションを示す。
【００１６】
次に図1Aを参照すると、クライアント(図示せず)から発する変換前書込みトランザクション10は、トランザクションメモリアドレス変換要求(MATR)12と、書込み要求ペイロード(WRP)14との2つの部分から構成され得る。MMU16は、クライアントから変換前書込みトランザクション10を受信し、必要に応じてその構成副構成要素を変更することによってMATR12を処理する。具体的には、MATR12の仮想アドレス18は、MMU16によって物理アドレス20に変換される。MATR12のアクセス属性22およびQoS属性24は、変換されたメモリアクセスフィールド(TMAF)30のアクセス属性26およびQoS属性28にそれぞれ変更されてもよく、あるいは変更されずにアクセス属性26およびQoS属性28にコピーされてもよい。MMU16は、変更されないWRP14(書込み属性34と書込み(WR)トランザクションデータ36とを備える)を、変換前書込みトランザクション10からTMAF30に付加することによって、変換後書込みトランザクション32を出力する。
【００１７】
同様に、図1Bに見られるように、例示的な変換前読出しトランザクション38は、MATR40と読出し要求ペイロード(RRP)42との2つの部分から構成される。MMU16は、クライアント(図示せず)から変換前読出しトランザクション38を受信し、必要に応じてその構成副構成要素を変更することによってMATR40を処理する。MATR40の仮想アドレス44は、MMU16によって物理アドレス46に変換される。MATR40のアクセス属性48およびQoS属性50は、TMAF56のアクセス属性52およびQoS属性54にそれぞれ変更されてもよく、あるいは変更されずにアクセス属性52およびQoS属性54にコピーされてもよい。MMU16は、変更されないRRP42(読出し属性60を備える)を、変換前読出しトランザクション38からTMAF56に付加することによって、変換後読出しトランザクション58を出力する。
【００１８】
次に図2Aを参照すると、モノリシックMMUアーキテクチャを例示するコンピュータ処理システム100は、複数のモノリシックMMU102(0)〜102(3)を提供する。モノリシックMMU102(0)〜102(3)の各々は、それぞれ1つの入力データパス104(0)〜104(3)と1つの出力データパス106(0)〜106(3)とを含む。モノリシックMMU102(0)〜102(3)の各々はまた、変換キャッシュ108(0)〜108(3)、トランザクションバッファおよびスケジューラ110(0)〜110(3)、ならびに1つまたは複数のハードウェアページテーブルウォーカー112(0)〜112(3)をそれぞれ提供する。その結果、モノリシックMMU102(0)〜102(3)は、コンピュータ処理システム100内で互いに独立して動作することができる。図2Aの例では、モノリシックMMU102(2)および102(3)の出力データパス106(2)および106(3)は、メモリコントローラ相互接続114に直接ルーティングされ、モノリシックMMU102(0)および102(1)の出力データパス106(0)および106(1)は相互接続116によって多重化される。このようにして、モノリシックMMU102(0)〜102(3)は、メモリコントローラ相互接続114を介して、メモリコントローラ118(0)〜118(X)のうちの1つなどのメモリコントローラにメモリアドレス変換結果を提供し得る。
【００１９】
図2Aのクライアント120、122、124、126、128、および130はトラフィック生成クライアントを表し、その各々が、対応する入力データパス104(0)〜104(3)を介してモノリシックMMU102(0)〜102(3)に通信されるMATR(図示せず)および他のデータの形でトラフィックを生成する。図2Aの例では、クライアント120、122、および130は、たとえば、大量のMATRを生成し得る高性能トラフィック生成クライアントを表す。したがって、クライアント120、122、および130は、それぞれ、モノリシックMMU102(0)〜102(2)のうちの単一のモノリシックMMU102によって排他的にサービスされる。その結果、モノリシックMMU102(0)〜102(2)の変換キャッシュ108(0)〜108(2)、トランザクションバッファおよびスケジューラ110(0)〜110(2)、およびハードウェアページテーブルウォーカー112(0)〜112(2)は、対応するクライアント120、122、および130に効果的に専用化される。クライアント120、122、および130は、他のトラフィック生成クライアントとMMUリソースを競合する必要がないので、モノリシックMMU102(0)〜102(2)は、高いレベルの性能を提供することができる。
【００２０】
しかしながら、モノリシックMMU102(0)〜102(3)の各々によって消費されるチップ面積が潜在的に大きいため、モノリシックMMU102(0)〜102(3)のうちの専用のものをすべてのトラフィック生成クライアントに提供することは実現可能ではない場合がある。したがって、クライアント124、126、および128などの低性能トラフィック生成クライアントの場合、コンピュータ処理システム100は、トラフィックを単一のトラフィックストリームに多重化するために、相互接続132などの外部トラフィックマルチプレクサを使用し得る。次いで、相互接続132は、トラフィックストリームを単一のモノリシックMMU102(3)の入力データパス104(3)に導くことができる。このようにして、モノリシックMMU102(3)は、複数のクライアント124、126、および128にサービスし得る。この手法は、メモリ管理機能を提供するために必要なチップ面積を減少させる可能性があるが、クライアント124、126、および128の間でモノリシックMMU102(3)のMMUリソースを共有することにより生じる追加の性能問題を招く可能性がある。たとえば、変換キャッシュ108(3)が共有されているので、クライアント124、126、128が互いのエントリを変換キャッシュ108(3)から繰返し退去させる「スラッシング」状態が生じ得る。さらに、トランザクションバッファおよびスケジューラ110(3)が共有されているので、攻撃的なクライアントがトランザクションバッファおよびスケジューラ110(3)内のすべてのスロットを占有し、より攻撃的でないクライアントからのトラフィックへのアクセスを効果的に拒否することが可能であり得る。
【００２１】
図2Bのコンピュータ処理システム200によって例示される分散MMUアーキテクチャは、図2AのモノリシックMMUアーキテクチャに固有の欠点のうちのいくつかに対処することを試みる。図2Bの例では、コンピュータ処理システム200は、対応するクライアントMMUユニット212(0)〜212(4)に関連付けられるトラフィック生成クライアント202、204、206、208、および210を含む。クライアントMMUユニット212(0)〜212(4)は、それらの関連付けられるトラフィック生成クライアント202、204、206、208、および210に、それぞれのローカルトランザクションバッファおよびスケジューラ214(0)〜214(4)ならびにローカル変換キャッシュ216(0)〜216(4)を提供する。コンピュータ処理システム200は、中央変換キャッシュ220、保留中のアドレス変換バッファ222、および1つまたは複数のハードウェアページテーブルウォーカー224を提供する中央MMUユニット218をさらに含む。中央変換キャッシュ220は、ローカル変換キャッシュ216(0)〜216(4)と比較して大きく、トラフィック生成クライアント202、204、206、208、および210のクライアントMMUユニット212(0)〜212(4)間で共有される。同様に、中央MMUユニット218のハードウェアページテーブルウォーカー224によって提供される機能は、トラフィック生成クライアント202、204、206、208、および210のクライアントMMUユニット212(0)〜212(4)間で共有され得る。図2Bに見られるように、メモリコントローラ226(0)〜226(Y)へのアクセスは、クライアントMMUユニット212(3)〜212(4)などのクライアントMMUユニットからメモリコントローラ相互接続228への直接接続によって提供されてもよく、クライアントMMUユニット212(0)〜212(2)などのクライアントMMUからの出力を統合する相互接続230によって提供されてもよい。
【００２２】
中央MMUユニット218のハードウェアページテーブルウォーカー224は、クライアントMMUユニット212(0)〜212(4)間で共有されるので、分散MMUアーキテクチャは、低性能コンピュータ処理システム用のモノリシックMMU102(0)〜102(3)と比較してチップ面積を節約し得る。しかしながら、図2Bに示される分散MMUアーキテクチャは、中性能および高性能コンピュータ処理システムには適さない原因となる、性能および面積の両方の欠点を招く可能性がある。たとえば、ローカル変換キャッシュ216(0)〜216(4)のうちの1つにおけるキャッシュミスの場合、中央変換キャッシュ220への結果のメモリアクセスは長いレイテンシを被る可能性があり、中央変換キャッシュ220におけるキャッシュミスの場合にはさらに悪化する可能性がある。さらに、中央変換キャッシュ220は、クライアントMMUユニット212(0)〜212(4)間で共有されるので、スラッシング条件が発生し得るか、および/または中央変換キャッシュ220内のスペースが、クライアントMMUユニット212(0)〜212(4)のすべてにとって十分ではない場合がある。さらに、分散MMUアーキテクチャに必要なチップ面積は、各クライアントMMUユニット212(0)〜212(4)と中央MMUユニット218との間の相互接続、ならびにメモリコントローラ相互接続228への専用ポート232のために増加する可能性がある。
【００２３】
したがって、図2AのモノリシックMMUアーキテクチャと、図2Bの分散MMUアーキテクチャとの両方の欠点に対処するために、統合MMUが提供される。これに関して、図3Aは例示的な統合MMU300を示す。統合MMU300は、他の要素の中でも、知られているデジタル論理素子、半導体回路、処理コア、および/またはメモリ構造のうちのいずれか1つ、あるいはそれらの組合せを包含し得ることを理解されたい。本明細書に記載される態様は、要素の特定の配置に限定されず、開示される技法は、半導体ダイまたはパッケージ上の様々な構造およびレイアウトに容易に拡張され得る。
【００２４】
統合MMU300は、対応する複数の入力データポート303(0)〜303(N)に接続された複数の入力データパス302(0)〜302(N)を提供する。入力データパス302(0)〜302(N)の各々は、それぞれ入力トランザクションバッファ304(0)〜304(N)を提供し、それぞれの出力トランザクションバッファ306(0)〜306(Q)を提供する出力データパス305(0)〜305(Q)に関連付けられる。入力トランザクションバッファ304(0)〜304(N)は、それぞれ入力トランザクションバッファスロット(「ITB SLOT」)308(0)〜308(A)、310(0)〜310(C)、および312(0)〜312(E)を含み、出力トランザクションバッファ306(0)〜306(Q)は、それぞれ出力トランザクションバッファスロット(「OTB SLOT」)314(0)〜314(B)、316(0)〜316(D)、および318(0)〜318(F)を含む。各入力データパス302(0)〜302(N)は、他の入力データパス302(0)〜302(N)と共有されないそれ自体の入力トランザクションバッファ304(0)〜304(N)を含むので、入力データパス302(0)〜302(N)のうちの1つを通過するデータは、入力データパス302(0)〜302(N)からのデータとは混ざらない。結果として、統合MMU300は、上述した分散MMUアーキテクチャにおいて生じる可能性がある、攻撃的なクライアントが入力トランザクションバッファスロット308(0)〜308(A)、310(0)〜310(C)、および312(0)〜312(E)のすべてを占有することを防止し得る。
【００２５】
統合MMU300はさらに、複数の出力データポート320(0)〜320(M)を提供する。図3Aの例では、入力データポート303(0)〜303(N)の数Nは、出力データポート320(0)〜320(M)の数Mと同じである。しかしながら、図3Bに関して以下でより詳細に説明するように、いくつかの態様は、入力データポート303(0)〜303(N)の数Nが出力データポート320(0)〜320(M)の数Mよりも大きくなり得ることを提供し得る。本明細書で開示されるいくつかの態様によれば、入力データパス302(0)〜302(N)の各々は、統合MMU300のクロック周波数と比較してより高いまたはより低いクロック周波数を提供するように独立してクロックされ得る。これは統合されたMMU300による電力消費を減少させることがある。
【００２６】
図3Aに見られるように、統合MMU300は、トラフィック生成クライアント322、324、326、328、および330から、入力データパス302(0)〜302(N)への入力データポート303(0)〜303(N)を介して、変換前トランザクション(たとえば、図1Aの変換前書込みトランザクション10および/または図1Bの変換前読出しトランザクション38)を受信するように構成される。いくつかの態様では、統合MMU300によって、図3Aに示されているよりも多い、またはより少ないトラフィック生成クライアントがサービスされ得ることを理解されたい。統合MMU300は、クライアント322の場合のように、クライアントに通信可能に直接結合されてもよく、または相互接続332および334などの相互接続からデータの多重化されたストリームを受信してもよい。統合MMU300のMMU管理回路336は、入力トランザクションバッファ304(0)〜304(N)から変換前トランザクションごとのMATR(たとえば、図1AのMATR12、および/または図1BのMATR40)を検索することと、対応するTMAF(たとえば、図1AのTMAF30、および/または図1BのTMAF56)を生成するためにメモリアドレス変換動作を実行することと、TMAFを出力データパス305(0)〜305(Q)内に配置された出力トランザクションバッファ306(0)〜306(Q)に提供することとを担当する。MMU管理回路336の例示的な構成要素および動作については、図4および図5A〜図5Fに関して以下により詳細に説明する。TMAFは、変換後トランザクション(たとえば、図1Aの変換後書込みトランザクション32、および/または図1Bの変換後読出しトランザクション58)として、対応する要求ペイロード(たとえば、図1AのWRP14および/または図1BのRRP42)と組み合わされ、次いで、出力データパス305(0)〜305(Q)を介して、出力データポート320(0)〜320(M)を介してトラフィック相互接続338に出力される。次いで、トラフィック相互接続338は、変換後トランザクションをメモリコントローラ340(0)〜340(Z)に提供し得る。
【００２７】
上述のように、統合MMU300のいくつかの態様は、入力データポート303(0)〜303(N)の数Nが出力データポート320(0)〜320(M)の数Mよりも大きいことを提供し得る。これに関して、図3Bは例示的な統合MMU300'を示す。統合MMU300'は、図3Aの統合MMU300と同じ構成要素を含み、さらに、メモリアドレス変換が行われた後に、出力データパス305(0)〜305(Q)からのトラフィックを単一の出力データポート320(M)に組み合わせるための変換後アービタ342を提供する。図3Bの例では、変換後アービタ342は、出力データパス305(1)〜305(Q)から複数の変換後トランザクション(図示せず)を受信し得、変換後QoSアービトレーションに基づいて、出力データポート320(M)に出力されるべき変換後トランザクションを選択し得る。変換後アービタ342によって実行される変換後QoSアービトレーションは、これらに限定されないが、ラウンドロビンアービトレーション、優先ラウンドロビンアービトレーション、完全優先アービトレーション、クレジットベースアービトレーション、ファーストインファーストアウトアービトレーション、加重ラウンドロビンアービトレーション、年齢ベースのアービトレーション、動的優先アービトレーション、ランダムアービトレーション、公正レートアービトレーション、および/または任意の他の形態のアービトレーションを含む、当技術分野で知られている任意のQoSアービトレーション方法を備え得る。
【００２８】
統合MMU300のいくつかの態様は、入力データパス302(0)〜302(N)の数Nが出力データパス305(0)〜305(Q)の数Qよりも大きいことを提供し得る。これに関して、図3Cは例示的な統合MMU300''を示す。統合MMU300"は、統合MMU300"が入力データパス302(0)〜302(N)の数Nよりも小さいQ個の出力データパス305(0)〜305(Q)を提供すること以外は、図3Aの統合MMU300のすべての態様に類似している。統合MMU300"において、MMU管理回路336は、複数の入力データパスからのトラフィックを1つの共有出力データパスに導く。図3Cの例では、メモリアドレス変換が行われた後に、入力データパス302(0)および302(1)からのトラフィックが単一の共有出力データパス305(0)に組み合わされる。図3Cの出力データパス305(0)は、出力データパス302(0)〜302(1)から複数の変換後トランザクションを受信し得、入力データパス302(0)から302(1)間の変換後QoSアービトレーションに基づいて、出力トランザクションバッファスロット314(0)〜314(B)に転送されるべきトランザクションを選択し得る。出力データパス305(0)によって実行される変換後QoSアービトレーションは、これらに限定されないが、ラウンドロビンアービトレーション、優先ラウンドロビンアービトレーション、完全優先アービトレーション、クレジットベースアービトレーション、ファーストインファーストアウトアービトレーション、加重ラウンドロビンアービトレーション、年齢ベースのアービトレーション、動的優先アービトレーション、ランダムアービトレーション、公正レートアービトレーション、および/または任意の他の形態のアービトレーションを含む、当技術分野で知られている任意のQoSアービトレーション方法を備え得る。
【００２９】
出力データパス305(0)が複数の入力データパス302(0)〜302(1)の間で共有される状況においては、入力データパス302(0)〜302(1)からのどのトランザクションも、すべての出力トランザクションバッファスロット314(0)〜314(B)を占有せず、結果として、他の入力データパス302(0)〜302(1)がそれらのトランザクションを共有出力データパス305(0)に送信することを防止することを保証することが望ましい場合がある。さらに、より低い優先度のトランザクション(たとえば、図1AのQoS属性24、28、および/または図1BのQoS属性50、54によって示される)がすべての出力トランザクションバッファスロット314(0)〜314(B)を占有せず、結果として、出力トランザクションバッファスロット314(0)〜314(B)へのより高い優先度のトランザクションアクセスを一時的に拒否することを保証することが望ましい場合がある。これらの状態を防止するために、出力トランザクションバッファスロット314(0)〜314(B)の残りの部分がすべての入力データパス302(0)〜302(N)間で共有されることを可能にしながら、入力データパス302(0)〜302(N)のうちの1つまたは複数から発するトランザクションを排他的に使用するために、いくつかの態様における共有出力データパス305(0)は、出力トランザクションバッファスロット314(0)〜314(B)の複数のサブセットの予約を可能にするように構成され得る。いくつかの態様によれば、出力トランザクションバッファスロット314(0)〜314(B)の残り部分がQoS属性に基づいて区別せずにすべてのトランザクション間で共有されることを可能にしながら、特定のQoS属性を有するトランザクションを排他的に使用するために、いくつかの態様における共有出力データパス305(0)は、出力トランザクションバッファスロット314(0)〜314(B)の複数のサブセットの予約を可能にするように構成され得る。
【００３０】
いくつかの態様による図3Aの統合MMU300のMMU管理回路336の例示的な構成要素をより良く説明するために、図4が提供される。図4の例では、MMU管理回路336は、1つまたは複数の変換キャッシュ400(0)〜400(P)、および1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を含み得る。いくつかの態様では、1つまたは複数の変換キャッシュ400(0)〜400(P)は、それぞれ、すべての入力データパス302(0)〜302(N)間で共有されてもよく、変換キャッシュ400(0)〜400(P)の各々が入力データパス302(0)〜302(N)のサブセット間で共有され得るように分割されてもよく、入力データパス302(0)〜302(N)のうちの1つまたは複数専用であってもよい。同様に、いくつかの態様によれば、ハードウェアページテーブルウォーカー402(0)〜402(W)の各々は、すべての入力データパス302(0)〜302(N)間で共有されてもよく、各ハードウェアページテーブルウォーカー402(0)〜402(W)が入力データパス302(0)〜302(N)のサブセット間で共有され得るように分割されてもよく、入力データパス302(0)〜302(N)のうちの1つまたは複数専用であってもよい。図5A〜図5Fに関してより詳細に後述するいくつかの態様では、MMU管理回路336は、受信されたMATR(たとえば、図1AのMATR12、および/または図1BのMATR40)に基づいてメモリアドレス変換動作を実行するときに、1つまたは複数の変換キャッシュ400(0)〜400(P)および/あるいは1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を使用するように構成され得る。
【００３１】
図4に見られるように、1つまたは複数の変換キャッシュ400(0)〜400(P)および1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)は統合MMU300内の入力データパス302(0)〜302(N)の近位にあり、入力データパス302(0)〜302(N)の間で共有され得る。1つまたは複数の変換キャッシュ400(0)〜400(P)および1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を入力データパス302(0)〜302(N)に近接して配置することによって、いくつかの態様における統合MMU300は、キャッシュリソースの不要な複製を回避し、ローカルキャッシュと集中キャッシュとの間の相互接続の必要性を排除する。ローカルキャッシュおよび集中キャッシュの必要性を回避することにより、ローカルキャッシュと集中キャッシュとの間の通信において生じるキャッシュアクセスレイテンシを排除することによって、分散MMUアーキテクチャと比較して統合MMU300の性能をさらに向上させることができる。
【００３２】
図4のMMU管理回路336は、入力変換スケジューラ404、保留中のトランザクションアドレスバッファ(PTAB)406、MMUマネージャ408、および出力変換スケジューラ410をさらに含み得る。入力変換スケジューラ404は、入力トランザクションQoSアービトレーションに従って、入力トランザクションバッファ304(0)〜304(N)からMATR(たとえば、図1AのMATR12、および/または図1BのMATR40)を検索することと、MATRをPTAB406のPTABスロット412(0)〜412(G)に配置することとを担当し得る。入力変換スケジューラ404内の入力トランザクションQoSアービトレーションは、利用可能なPTABスロット412(0)〜412(G)にどのMATRを許可するかを決定するためにアービトレーションを実行するために、入力データパス302(0)〜302(N)から複数の適格なMATRの対応するQoS属性(たとえば、図1AのQoS属性24、28、および/または図1BのQoS属性50、54)を使用し得る。非限定的な例として、入力トランザクションQoSアービトレーションは、これらに限定されないが、ラウンドロビンアービトレーション、優先ラウンドロビンアービトレーション、完全優先アービトレーション、クレジットベースアービトレーション、ファーストインファーストアウトアービトレーション、加重ラウンドロビンアービトレーション、年齢ベースのアービトレーション、動的優先アービトレーション、ランダムアービトレーション、公正レートアービトレーション、および/または任意の他の形態のアービトレーションを含む、当技術分野で知られている任意のQoSアービトレーション方法を含み得る。
【００３３】
次いで、MMUマネージャ408は、PTAB406内の適格なMATRのQoS属性に基づいてQoSアービトレーションを使用してPTAB406から保留中のMATRを選択し得、TMAF(たとえば、図1AのTMAF30、および/または図1BのTMAF56)を生成するために、1つまたは複数の変換キャッシュ400(0)〜400(P)および/あるいは1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を使用し得、次いで、それが対応するPTABスロット412(0)〜412(G)に配置される。次いで、出力変換スケジューラ410は、QoSアービトレーションを使用してPTAB406から完了したTMAFを選択し得、対応する要求ペイロード(たとえば、図1AのWRP14、および/または図1BのRRP42)が、入力データパス302(0)〜302(N)から対応する出力データパス305(0)〜305(Q)に移動されるようにスケジューリングし得る。出力変換スケジューラ410は、TMAFを対応する出力データパス305(0)〜305(Q)に提供し、出力トランザクションバッファスロット314(0)〜314(B)、318(0)〜318(F)内の変換後トランザクション(たとえば、図1Aの変換後書込みトランザクション32、および/または図1Bの変換後読出しトランザクション58)を作成するために、要求ペイロードと組み合わされる。次いで、変換後トランザクションは、出力データポート320(0)〜320(M)のうちの1つに出力される。このようにして、入力変換スケジューラ404、MMUマネージャ408、および出力変換スケジューラ410によって提供されるQoS機能は、優先度の高いトランザクションに優先変換リソースが与えられ、欠乏しないことを保証する。メモリアドレス変換結果を生成するためにMATRを処理する際の入力変換スケジューラ404、PTAB406、MMUマネージャ408、および出力変換スケジューラ410の動作については、図5A〜図5Fを参照して以下でより詳細に説明する。
【００３４】
いくつかの態様では、MMU管理回路336はまた、共有レジスタ414および共有制御ロジック416を含み得る。共有レジスタ414および共有制御ロジック416は、入力データパス302(0)〜302(N)のすべてにメモリ管理機能を提供するために、統合MMU300によって使用され得る。これは、メモリ管理に必要なレジスタおよび制御ロジックの多くがローカル変換キャッシュ216(0)〜216(4)および中央変換キャッシュ220において複製される、図2Bに示される分散MMUアーキテクチャとは対照的である。統合MMU300による共有レジスタ414および共有制御ロジック416の使用は、すべてのレジスタおよび制御ロジックが、モノリシックMMU102(0)〜102(3)の各々において複製される、図2AのモノリシックMMUアーキテクチャとはさらに対照的である。共有レジスタ414および共有制御ロジック416を使用することによって、統合MMU300はかなりのチップ面積を節約することができる。さらに、ソフトウェアオーバヘッドは、ソフトウェアによって管理および制御するためにMMUインスタンスの数を減らすことによって、統合MMU300を使用するコンピュータシステムにおいて低減され得る。
【００３５】
いくつかの態様では、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)は、システムメモリ(図示せず)内のページテーブルにアクセスする一連のトランザクション(図示せず)を通じて、仮想アドレスを物理アドレスに変換し得る。1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)から発生するトランザクションは、ハードウェアテーブルウォーカー(HTW)マルチプレクサ418を使用して、出力データパス305(0)〜305(Q)からのトランザクションと多重化され得る。HTWマルチプレクサ418は、2つのソースからトランザクションを選択し、それぞれの選択されたトランザクションを対応する出力データポート320(0)〜320(M)に送信するためにQoSアービトレーションを適用するために、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)からのトランザクションのQoS属性と、出力データパス305(0)〜305(Q)からのトランザクションとを使用し得る。いくつかの態様によれば、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)からのトランザクションのうちの一部または全部が、ハードウェアページテーブルウォーカー402(0)〜402(W)からトラフィック相互接続338にトランザクションを発行するために排他的に使用される専用出力ポート420にルーティングされ得る。1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)からのトランザクションは、非限定的な例として、トラフィック相互接続338における各トランザクションの最終目的地のアドレス、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)からのトランザクションの出力が、出力データパス305(0)〜305(Q)からのトランザクションの流れを妨げないことを保証する必要性、ならびに/あるいは、より高い優先度および/またはトラフィック相互接続338への別個のパスを有する1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)からトランザクションを提供する要望などの考慮事項に基づいて、出力データポート320(0)〜320(M)または専用出力ポート420を通じて統合MMU300を出るように導かれ得る。
【００３６】
図5A〜図5Fは、MATRの処理中の図4の統合MMU300のいくつかの態様の入力変換スケジューラ404、PTAB406、MMUマネージャ408、および出力変換スケジューラ410の動作をより良く説明するために提供されるブロック図である。これに関して、図5Aは、入力トランザクションとして入力MATRの入力バッファリングを示し、図5Bは、処理のためにPTAB406に転送する入力トランザクションを選択するための入力変換スケジューラ404の動作を示す。図5Cは、キャッシュされたメモリアドレス変換結果を得るためにMMUマネージャ408が1つまたは複数の変換キャッシュ400(0)〜400(P)をどのように使用し得るかを示し、図5Dは、仮想アドレスから物理アドレスへのアドレス変換を実行するために1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を使用するMMUマネージャ408を示す。図5Eは、完了したTMAFのPTAB406から出力データパス305(0)〜305(Q)への移動をスケジューリングするための出力変換スケジューラ410の動作を示し、図5Fは、出力データパス305(0)〜305(Q)を介して出力データポート320(0)〜320(M)に出力される、完了した変換後トランザクションを示す。明瞭にするために、図5A〜図5Fを説明する際に図4の要素が参照される。
【００３７】
次に図5Aを参照すると、いくつかの態様によるメモリ管理機能を提供するための統合MMU300の動作は、矢印504、506によって示されるように、入力データパス302(0)および302(N)への入力データポート(図示せず)を介して統合MMU300によってそれぞれ受信される変換前トランザクション500、502から始まる。変換前トランザクション500、502は、図1Aの変換前書込みトランザクション10などの変換前書込みトランザクション、および/または図1Bの変換前読出しトランザクション38などの変換前読出しトランザクションを備え得ることを理解されたい。図5Aの例では、変換前トランザクション500、502は、それぞれMATR507、508、およびそれぞれ要求ペイロード509、510を含む。MATR507、508は、図3Aのクライアント322、324、326、328、および330などの、統合MMU300に通信可能に結合されたトラフィック生成クライアント(図示せず)から変換前トランザクション500、502に埋め込まれて受信され得る。図5Aに見られるように、変換前トランザクション500は、入力データパス302(0)の入力トランザクションバッファ304(0)の入力変換バッファスロット308(0)に入力トランザクション511として記憶される。同様に、変換前トランザクション502は、入力データパス302(N)の入力トランザクションバッファ304(N)の入力変換バッファスロット312(0)に入力トランザクション512として記憶される。次いで、変換前トランザクション500、502のMATR507、508部分は、入力変換スケジューラ404による処理を待つ。
【００３８】
図5Bには、統合MMU300のいくつかの態様による入力変換スケジューラ404の動作が示されている。入力変換スケジューラ404は、QoSアービトレーションメカニズムを適用することによって、入力トランザクションバッファ304(0)〜304(N)からのMATR(図5Bの例では、矢印513によって示されるようにMATR508)を選択することを担当し、各MATR507、508のQoS属性が、それぞれのMATR507、508の相対優先度を示す。次いで、入力変換スケジューラ404は、選択されたMATR508がPTAB406によって記憶されるようにスケジューリングする。次いで、図5Bにおける矢印514によって示されるように、PTAB406は、入力変換スケジューラ404によって選択されスケジュールされたMATR508を、PTABスロット412(0)内の保留中の変換として記憶する。
【００３９】
入力変換スケジューラ404は、MATR508を選択する際に入力トランザクションQoSアービトレーションを適用することによって、異なる入力データパス302(0)〜302(N)の間で所望のQoSレベルを維持し得る。いくつかの態様では、入力QoSアービトレーションは、どのトラフィック生成クライアントもPTAB406を独占すること、および/または、トランザクションごとのQoS属性によって示されるように、他のトランザクションと比較して優先度が高い場合、入力データパス302(0)〜302(N)内に存在するいくつかのトランザクションに、PTAB406へのより大きなアクセスを許可することが許可されないようにし得る。いくつかの態様は、入力トランザクションQoSアービトレーションが、PTABスロット412(0)〜412(G)を1つまたは複数のPTABスロット412(0)〜412(G)のグループに分割するように動的に構成され得ることを提供し得る。各グループは、すべての入力データパス302(0)〜302(N)からのすべてのトランザクション511、512および/またはすべての優先度レベルのすべてのトランザクションの間で残りのPTABスロット412(0)〜412(G)を共有しながら、QoS属性フィールドによって示されるようにあらかじめ定められた高レベルの優先度を有する1つまたは複数の入力データパス302(0)〜302(N)のために、および/または入力トランザクション511、512のために、専用の非共有方法で排他的に使用するために予約され得る。いくつかの態様では、入力変換スケジューラ404は、入力トランザクションバッファ304(0)〜304(N)から受信した選択されたMATR508について、選択されたMATR508がPTAB406に記憶される前に、対応する出力トランザクションバッファ306(Q)内に、少なくとも1つの利用可能な出力トランザクションバッファスロット318(0)〜318(F)が存在することを保証し得る。
【００４０】
いくつかの態様では、MATR508が選択され、PTAB406の利用可能なPTABスロット412(0)に配置されると、入力変換スケジューラ404は、PTAB406内に未使用のスロット412(0)〜412(G)が存在するかどうかを決定するために、PTAB406の充填レベルを調べることができる。存在する場合、入力変換スケジューラ404は、未使用のPTABスロット412(0)〜412(G)に挿入するためのMATR507、508を選択するために、すべての入力トランザクションバッファ304(0)〜304(N)内のすべての入力トランザクションバッファスロット308(0)〜308(A)、312(0)〜312(E)内のすべての残りのMATRの間で連続するQoSアービトレーションを適用し得る。利用可能なPTABスロット412(0)〜412(G)が、特定の入力データパス302(0)〜302(N)からのMATRのためにあらかじめ予約されている場合、または、PTABスロット412(0)〜412(G)が特定の優先レベルのMATRのために予約されている場合、MATRを利用可能なPTABスロット412(0)〜412(G)に移動させることができない一時的な状況があり得、これらの状況は、入力トランザクションバッファ304(0)〜304(N)内に存在するMATRのいずれによっても満たされない。そのような状況においては、入力変換スケジューラ404は、予約基準を満たすPTABスロット412(0)〜412(G)が利用可能になるまで、PTAB406内の利用可能なPTABスロット412(0)〜412(G)を監視し得る。適切なPTABスロット412(0)〜412(G)が利用可能になると、入力変換スケジューラ404は、新たに解放されたPTABスロット412(0)〜412(G)への移動のためのMATRを選択するために、QoSアービトレーションを適用する。
【００４１】
図5Cは、統合MMU300のいくつかの態様による、TMAF515を生成するためにMATR508の仮想アドレス(図示せず)上で変換動作を実行するためのMMUマネージャ408の動作を示す。図5Cの例では、MMUマネージャ408は、TMAFが作成されていない保留中のMATR508などの保留中のMATRの追加を検出するためにPTAB406を監視する。保留中のMATR508が検出されると、MMUマネージャ408は、矢印520によって示されるように、PTAB406内の保留中のMATRの中から保留中の変換MATR508を選択する。いくつかの態様では、保留中のMATR508は、QoSアービトレーションに基づいて選択され得る。これにより、MMUマネージャ408が、PTAB406内の優先度の高い保留中のMATRが優先度の低いトランザクションの前に処理されることを保証することが可能になり得る。
【００４２】
次いで、MMUマネージャ408は、1つまたは複数の変換キャッシュ400(0)〜400(P)が、矢印522によって示されるように、MATR508内の仮想アドレスおよび対応するアクセス属性(図示せず)を対応する物理アドレス(図示せず)に変換するキャッシュされたエントリを含むかどうかを決定する。変換が見つかった場合、1つまたは複数の変換キャッシュ400(0)〜400(P)は、矢印524によって示されるように、物理アドレスをMMUマネージャ408に戻す。次いで、MMUマネージャ408は、1つまたは複数の変換キャッシュ400から取得された物理アドレスを含むTMAF515を構築する。TMAF515はまた、共有制御ロジック416および共有レジスタ414の実装形態に基づくMATR508の入力アクセス属性の同じバージョンまたは変更されたバージョンであり得るアクセス属性も含む。TMAF515はまた、QoS属性(図示せず)およびアクセス属性を含み、これは、共有制御ロジック416および共有レジスタ414の実装形態に基づくMATR508のQoS属性およびアクセス属性の同じバージョンまたは変更されたバージョンであり得る。TMAF515が構築されると、それは、矢印526によって示されるように、対応するPTABスロット412(0)内に配置される。次いで、PTABスロット412(0)内の保留中のTMAF515は、出力変換スケジューラ410による検討の対象としてマーク付けされる。
【００４３】
次に図5Dを参照すると、物理アドレスの変換が1つまたは複数の変換キャッシュ400内にキャッシュされていない場合、あるいは部分変換のみが存在する場合、MMUマネージャ408は、矢印528によって示されるように、完全なTMAF515を生成するために、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)のうちの1つを割り当てる。いくつかの態様では、MMUマネージャ408は、あらかじめ定められたQoSアービトレーションポリシーに基づいて、1つまたは複数のハードウェアページテーブルウォーカー402のうちの1つを割り当てることができる。このようにして、MMUマネージャ408は、任意の1つの入力データパス302(0)〜302(N)からの変換要求のセットのいずれも、すべての利用可能なハードウェアページテーブルウォーカー402を独占することはできないことを保証し得る。非限定的な例として、QoSアービトレーションポリシーは、先着順に1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)を割り当てることを備えてもよく、非限定的な例として、保留中のMATR508の優先度に基づいてもよい。いくつかの態様は、入力データパス302(0)〜302(N)が、トラフィックが到着したときに利用可能なハードウェアページテーブルウォーカー402(0)〜402(W)の不足によってブロックされないように、残りの1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)が任意の入力データパス302(0)〜302(N)によって使用されることを可能にしながら、MMUマネージャ408が、1つまたは複数の非アクティブ入力データパス302(0)〜302(N)を排他的に使用するために、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)の構成可能な数を予約するためにQoSアービトレーションを適用し得ることを提供し得る。
【００４４】
いくつかの態様は、MMUマネージャ408が、残りのグループ化されていないハードウェアページテーブルウォーカー402が任意の入力データパス302(0)〜302(N)によって使用されることを可能にしながら、1つまたは複数のハードウェアページテーブルウォーカー402のグループを予約するためにQoSアービトレーションも適用し得ることを提供し得、各グループは、1つまたは複数の入力データパス302(0)〜302(N)を排他的に使用するために、1つまたは複数のハードウェアページテーブルウォーカー402を含む。このようにして、入力データパス302(0)〜302(N)は、トラフィックが到着したときに利用可能なハードウェアページテーブルウォーカー402(0)〜402(W)の不足によってブロックされない。いくつかの態様によれば、MMUマネージャ408はまた、残りのグループ化されていない1つまたは複数のハードウェアページテーブルウォーカー402が任意のレベルの優先度を有する任意のMATRによって使用されることを可能にしながら、1つまたは複数のハードウェアページテーブルウォーカー402のグループを予約するためにQoSアービトレーションを適用し得、各グループは、それらのQoS属性にとって示されるように、あるレベルの優先度のMATRを排他的に使用するために、1つまたは複数のハードウェアページテーブルウォーカー402を含む。したがって、より高い優先度を有するMATRは、トラフィックが到着したときに利用可能なハードウェアページテーブルウォーカー402(0)〜402(W)の不足によってブロックされない。
【００４５】
いくつかの態様では、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)は、出力データポート320(0)〜320(M)を使用して、または、矢印530によって示されるように、トラフィック相互接続338への専用出力ポート420を通じて、(たとえば、1つまたは複数のハードウェアページテーブルウォークを実行することによって)MATR508の仮想アドレスの変換を実行するように構成される。そのような態様では、ハードウェアページテーブルウォーカー402(0)〜402(W)は、出力データパス305(0)〜305(Q)からの他の出力トランザクションとともに、ハードウェアページテーブルウォークトランザクション(図示せず)を出力データポート320(0)〜320(M)にインラインで選択的に挿入し得る。1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)の各々は、出力データポート320(0)〜320(M)のうちの1つを使用するように構成されてもよく、トランザクション優先度または出力データパスの輻輳に従って、複数の出力データポート320(0)〜320(M)の間でトラフィックを分散してもよい。
【００４６】
MATR508の仮想アドレスの変換が完了すると、矢印531によって示されるように、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)が、変換された物理アドレスをMMUマネージャ408に提供する。次に、MMUマネージャ408は、1つまたは複数のハードウェアページテーブルウォーカー402から変換された物理アドレスを受け取り、矢印522によって示されるように、仮想アドレスとMATR508の物理アドレスとの間の更新された変換で1つまたは複数の変換キャッシュ400(0)〜400(P)を更新する。MMUマネージャ408はまた、矢印532によって示されるように、TMAF515を構成し、PTAB406内の適切なPTABスロット412(0)〜412(G)にTMAF515を提供する。
【００４７】
図5Eにおいて、統合MMU300のいくつかの態様における出力変換スケジューラ410は、図5EのPTABスロット412(0)などの、MATR変換が完了し、TMAFが利用可能なスロットを見つけるために、PTAB406のPTABスロット412(0)〜412(G)を検索する。次いで、出力変換スケジューラ410は、PTAB406内の利用可能なTMAFの中から選択する。図5Eの例では、出力変換スケジューラ410は、矢印534によって示されるように、TMAF515を選択する。次いで、出力変換スケジューラ410は、矢印536によって示されるように、TMAF515を出力トランザクションバッファ306(Q)内の適切な出力トランザクションバッファスロット318(0)に移動させる。
【００４８】
出力変換スケジューラ410によるスケジューリングは、TMAF515のQoS属性、およびQoSアービトレーションスキームに基づき得、非限定的な例として、出力トランザクションバッファスロット318(0)〜318(F)の利用可能性、および/または保留中のMATRの相対優先度を考慮に入れることができる。PTAB406は、QoSベースのスケジューリングに基づいて、TMAF515を出力トランザクションバッファ306(Q)にデキューする。次いで、出力トランザクションバッファ306(Q)は、矢印537によって示されるように、要求ペイロード510を入力トランザクションバッファスロット312(0)から出力トランザクションバッファスロット318(0)に移動させ、変換後トランザクション512'を作成するために、それを受信されたTMAF515と組み合わせる。その後、変換後トランザクション512'は、出力トランザクションバッファスロット318(0)に記憶される。いくつかの態様では、出力変換スケジューラ410は、出力トランザクションバッファ306(Q)内の変換後トランザクション512'よりも高い優先度を有する入力トランザクションバッファ304(N)内に新しい入力トランザクション(図示せず)が存在する場合、変換後トランザクション512'の優先度を上げることができる。次いで、矢印540によって示されるように、変換後トランザクション512'が出力データパス305(Q)を介して出力されると、図5Fにおいてメモリアドレス変換動作が終了する。
【００４９】
図4の例示的な統合MMU300によるメモリ管理機能を提供するための例示的な動作を示すために、図6Aおよび図6Bが提供される。明瞭にするために、図6Aおよび図6Bを説明する際に図4および図5A〜図5Fの要素が参照される。動作は、複数の入力データパス302(0)〜302(N)に対応する複数の入力トランザクションバッファ304(0)〜304(N)の入力トランザクションバッファ304(N)から変換前トランザクション512のMATR508を検索する統合MMU300のMMU管理回路336を有する図6Aから始まる(ブロック600)。これに関して、MMU管理回路336は、本明細書では、「複数の入力データパスに対応する複数の入力トランザクションバッファのうちの1つの入力トランザクションバッファからメモリアドレス変換要求(MATR)を検索するための手段」と呼ばれ得る。いくつかの態様では、MATR508を検索するためのブロック600の動作は、図7に関して以下により詳細に説明するように、入力変換スケジューラ404によって実行される。いくつかの態様は、統合MMU300のPTAB406が、次に、MMU管理回路336によって複数の入力トランザクションバッファ304(0)〜304(N)のうちの入力トランザクションバッファ304(N)から検索された変換前トランザクション512のMATR508を保留中の変換として記憶することを提供し得る(ブロック602)。
【００５０】
次いで、MMU管理回路336は、TMAF515を生成するために、MATR508に基づいてメモリアドレス変換動作を実行する(ブロック604)。したがって、MMU管理回路336は、本明細書では、「変換されたメモリアドレスフィールド(TMAF)を生成するために、MATRに基づいてメモリアドレス変換動作を実行するための手段」と呼ばれ得る。いくつかの態様によれば、MATR508に基づいてメモリアドレス変換動作を実行するためのブロック604の動作は、図9Aおよび図9Bに関して以下により詳細に説明するように、MMUマネージャ408によって実行される。いくつかの態様は、メモリアドレス変換動作を実行することが、複数の入力データパス302(0)〜302(N)の近位にある1つまたは複数の変換キャッシュ400(0)〜400(P)、および複数の入力データパス302(0)〜302(N)の近位にある1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)のうちの1つを使用して達成され得ることを提供し得る(ブロック606)。統合MMU300のいくつかの例示的な態様では、PTAB406は、次に、MMU管理回路336によって生成された保留中の変換に対応するTMAF515を受信する(ブロック608)。次いで、PTAB406は、保留中の変換のためのTMAF515を記憶し得る(ブロック610)。次いで、図6Bのブロック612において処理を再開する。
【００５１】
次に図6Bを参照すると、いくつかの態様では、PTAB406は、TMAF515を複数の出力トランザクションバッファ306(0)〜306(Q)のうちの出力トランザクションバッファ306(Q)に提供するために、保留中の変換をデキューし得る(ブロック612)。いくつかの態様は、複数の入力データパス302(0)〜302(N)のサブセットからのMATR508に対応するTMAF515が、単一の出力トランザクションバッファ306(Q)にデキューされ得ることを提供し得、いくつかの態様によれば、入力データパス302(0)〜302(N)と出力トランザクションバッファ306(0)〜306(Q)との間には1対1の対応関係が存在し得る。
【００５２】
次いで、TMAF515および変換前トランザクションペイロード510が、複数の出力データパス305(0)〜305(Q)に対応する複数の出力トランザクションバッファ306(0)〜306(Q)のうちの出力トランザクションバッファ306(Q)に変換後トランザクション512'として提供される(ブロック614)。いくつかの態様は、TMAF515を出力トランザクションバッファ306(Q)に提供するためのブロック614の動作が、図8に関して以下により詳細に説明するように、出力変換スケジューラ410によって実行されることを提供し得る。したがって、出力変換スケジューラ410は、本明細書では、「複数の入力データパスに対応する複数の出力トランザクションバッファのうちの1つの出力トランザクションバッファに、変換後トランザクションとしてTMAFおよび変換前トランザクションペイロードを提供するための手段」と呼ばれ得る。
【００５３】
その後、TMAF515を含む変換後トランザクション512'が、複数の出力データパス305(0)〜305(Q)のうちの出力データパス305(Q)を介して、複数の出力データポート320(0)〜320(M)のうちの出力データポート320(M)に出力される(ブロック616)。これに関して、出力データパス305(Q)は、本明細書では、「変換後トランザクションを複数の出力データポートのうちの1つの出力データポートに出力するための手段」と呼ばれ得る。いくつかの態様では、変換後トランザクション512'を出力するための動作は、図3Bの変換後アービタ342が、複数の出力データポート320(0)〜320(M)のうちの出力データポート320(M)に出力されるべき複数の出力データパス305(0)〜305(Q)の複数のサブセットから1つまたは複数の変換後トランザクション512'を受信することを含み得る(ブロック618)。変換後アービタ342は、変換後QoSアービトレーションに基づいて、1つまたは複数の変換後トランザクション512'のうちの変換後トランザクション512'を選択し得る(ブロック620)。次いで、選択された変換後トランザクション512'は、出力するために変換後アービタ342によって出力データポート320(M)に提供され得る(ブロック622)。
【００５４】
上述のように、統合MMU300のいくつかの態様では、入力トランザクションバッファ304(N)からMATR508を検索するための図6Aのブロック600の動作は、入力変換スケジューラ404によって実行され得る。これに関して、図7は、MATR508を処理するための、入力変換スケジューラ404およびPTAB406の例示的な動作を示す。明瞭にするために、図7を説明する際に図4および図5A〜図5Fの要素が参照される。図7において、動作は、入力変換スケジューラ404が、入力トランザクションQoSアービトレーションに基づいて、複数の入力トランザクションバッファ304(0)〜304(N)のうちの入力トランザクションバッファ304(N)から変換前トランザクション512のMATR508を選択することから始まる(ブロック700)。いくつかの態様では、入力変換スケジューラ404は、選択されたMATR508の変換前トランザクション512の入力トランザクションバッファ304(N)に対応する出力トランザクションバッファ306(Q)が、利用可能な出力トランザクションバッファスロット318(0)〜318(F)を含むかどうかを決定し得る(ブロック702)。利用可能な出力トランザクションバッファスロット318(0)〜318(F)のいずれも利用可能ではない場合、処理はブロック700に戻ることができる。
【００５５】
しかしながら、入力変換スケジューラ404が、ブロック702において、利用可能な出力トランザクションバッファスロット318(0)〜318(F)が利用可能であると決定する場合、入力変換スケジューラ404は、いくつかの態様において、選択されたMATR508が、複数の入力データパス302(0)〜302(N)のうちの1つまたは複数を排他的に使用するために予約されていない、あるいは1つまたは複数の指定されたQoS優先度に関連付けられる、複数のPTABスロット412(0)〜412(G)のうちの1つまたは複数に記憶され得るかどうかを決定し得る(ブロック703)。記憶され得る場合、処理はブロック704において再開する。決定ブロック703において、選択されたMATR508が、複数の入力データパス302(0)〜302(N)のうちの1つまたは複数を排他的に使用するために予約されていない、あるいは1つまたは複数の指定されたQoS優先度に関連付けられる複数のPTABスロット412(0)〜412(G)のうちの1つまたは複数に記憶され得ないと決定された場合、いくつかの態様における入力変換スケジューラ404は、次に、選択されたMATR508が、複数の入力データパス302(0)〜302(N)のうちの1つまたは複数を排他的に使用するために予約された、あるいは1つまたは複数の指定されたQoS優先度に関連付けられるMATRを排他的に使用するために予約された複数のPTABスロット412(0)〜412(G)のうちの1つまたは複数に記憶され得るかどうかを決定し得る(ブロック705)。記憶され得ない場合、処理はブロック700に戻る。あるいは、入力変換スケジューラ404は、選択されたMATR508がPTAB406によって記憶されるようにスケジューリングする(ブロック704)。次いで、PTAB406は、入力変換スケジューラ404によってスケジューリングされた、選択されたMATR508を記憶する(ブロック706)。
【００５６】
図8は、いくつかの態様において、TMAF515を出力トランザクションバッファ306(Q)に提供するための、図6Bのブロック614の動作を実行し得る出力変換スケジューラ410の例示的な動作を示す。明瞭にするために、図8を説明する際に図4および図5A〜図5Fの要素が参照される。図8における動作は、統合MMU300の出力変換スケジューラ410が、TMAF515が記憶されているPTAB406内の1つまたは複数の保留中の変換の中から保留中の変換を選択することから始まる(ブロック800)。次に、出力変換スケジューラ410は、TMAF515が、出力トランザクションQoSアービトレーションに基づいて、変換後トランザクション512'として、複数の出力トランザクションバッファ306(0)〜306(Q)のうちの出力トランザクションバッファ306(Q)に移動されるようにスケジューリングする(ブロック802)。いくつかの態様によれば、出力トランザクションQoSアービトレーションは、非限定的な例として、出力トランザクションバッファスロット318(0)〜318(F)の利用可能性および保留中のTMAF515の相対優先度を考慮に入れることができる。
【００５７】
次いで、PTAB406は、スケジューリングに基づいて、保留中のTMAF515を複数の出力トランザクションバッファ306(0)〜306(Q)のうちの出力トランザクションバッファ306(Q)にデキューする(ブロック804)。いくつかの態様では、出力変換スケジューラ410は、変換後トランザクション512'の相対優先度を上げることができる(ブロック806)。これは、出力トランザクションバッファ306(Q)内の変換後トランザクション512'よりも高い優先度を有する入力トランザクションバッファ304(N)内に新しい入力トランザクションが存在する状況において望ましい場合がある。
【００５８】
図6Aに関して上述したように、MATR508に基づいてメモリアドレス変換動作を実行するためのブロック604の動作は、統合MMU300のいくつかの態様においてMMUマネージャ408によって実行され得る。これに関して、図9Aおよび図9Bは、メモリアドレス変換動作を実行するためのMMUマネージャ408の例示的な動作を示すために提供される。明瞭にするために、図9Aおよび図9Bを説明する際に図4および図5A〜図5Fの要素が参照される。
【００５９】
図9Aにおいて、動作は、MMUマネージャ408が、変換QoSアービトレーションに基づいて、TMAF515が記憶されていないPTAB406内の1つまたは複数の保留中のMATR508の中から保留中のMATR508を選択することから始まる(ブロック902)。次いで、MMUマネージャ408は、MATR508に対応するキャッシュされたメモリアドレス変換結果が1つまたは複数の変換キャッシュ400(0)〜400(P)内に存在するかどうかを決定する(ブロック904)。存在する場合、MMUマネージャ408は、PTAB406によって選択されたMATR508のために記憶されるべきTMAF515の一部として、キャッシュされたメモリアドレス変換結果(たとえば、キャッシュされた物理アドレス)を提供する(ブロック906)。
【００６０】
しかしながら、MMUマネージャ408が、決定ブロック904において、変換キャッシュ400がMATR508内の仮想アドレスのためのアドレス変換を含まないと決定した場合、処理は図9Bのブロック908において再開する。次に図9Bを参照すると、MMUマネージャ408は、選択された保留中のMATR508のメモリアドレス変換結果(たとえば、物理メモリアドレス変換)を生成するために、1つまたは複数のハードウェアページテーブルウォーカー402(0)〜402(W)のうちのハードウェアページテーブルウォーカー402(0)〜402(W)を割り当てる(ブロック908)。いくつかの態様では、ハードウェアページテーブルウォーカー402を割り当てるためのブロック908の動作は、ハードウェアページテーブルウォーカーQoSアービトレーションに基づく(ブロック909)。メモリ変換が完了すると、MMUマネージャ408は、ハードウェアページテーブルウォーカー402(0)〜402(W)からメモリアドレス変換結果を受信する(ブロック910)。次いで、MMUマネージャ408は、PTAB406によって、選択された保留中のMATR508のために記憶されるべき受信されたメモリアドレス変換結果をTMAF515として提供する(ブロック912)。MMUマネージャ408は、受信されたメモリアドレス変換結果を1つまたは複数の変換キャッシュ400にさらに提供する。
【００６１】
本明細書に開示された態様による、統合MMUを使用したメモリ管理機能の提供は、任意のプロセッサベースのデバイスに提供されてもよく、それに統合されてもよい。例としては、限定ではないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラーフォン、スマートフォン、タブレット、ファブレット、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、ポータブルデジタルビデオプレーヤおよび自動車が含まれる。
【００６２】
これに関して、図10は、図3Aに示される例示的な統合MMU300を使用し得るプロセッサベースのシステム1000の例を示す。この例では、プロセッサベースのシステム1000は、各々が1つまたは複数のプロセッサ1004を含む1つまたは複数の中央処理装置(CPU)1002を含む。CPU1002は、一時的に記憶されたデータへの迅速なアクセスのためにプロセッサ1004に結合されたキャッシュメモリ1006を有し得る。CPU1002は、CPUメモリアクセス要求のためのアドレス変換サービスを提供するためのCPU MMU1008をさらに含む。CPU1002は、システムバス1010に結合され、プロセッサベースのシステム1000に含まれるマスタデバイスとスレーブデバイスとを相互接続することができる。よく知られているように、CPU1002は、システムバス1010を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU1002は、バストランザクション要求を、メモリユニット1014(0)〜1014(N)を提供するメモリシステム1012に通信することができる。図10の例では、システムMMU(SMMU)1016もシステムバス1010に結合されている。CPU MMU1008およびSMMU1016のいずれかまたは両方が、図3Aの統合MMU300を備え得ることを理解されたい。
【００６３】
他のマスタデバイスおよびスレーブデバイスは、SMMU1016を介してシステムバス1010に接続され得る。図10に示されるように、これらのデバイスは、例として、メモリコントローラ1018、1つまたは複数の入力デバイス1020、1つまたは複数の出力デバイス1022、1つまたは複数のネットワークインターフェースデバイス1024、および1つまたは複数のディスプレイコントローラ1026を含むことができる。入力デバイス1020は、入力キー、スイッチ、音声プロセッサなどを含むが、これらに限定されない、任意のタイプの入力デバイスを含むことができる。出力デバイス1022は、オーディオ、ビデオ、他の視覚インジケータなどを含むが、これに限定されない、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス1024は、ネットワーク1028との間でデータを交換することを可能にするように構成された任意のデバイスであり得る。ネットワーク1028は、ワイヤードまたはワイヤレスネットワーク、プライベートまたはパブリックネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含むが、これらに限定されない、任意のタイプのネットワークであり得る。ネットワークインターフェースデバイス1024は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。
【００６４】
CPU1002はまた、1つまたは複数のディスプレイ1030に送信される情報を制御するために、システムバス1010を介してディスプレイコントローラ1026にアクセスするように構成され得る。ディスプレイコントローラ1026は、ディスプレイ1030に適したフォーマットに表示されるべき情報を処理する1つまたは複数のビデオプロセッサ1032を介して表示されるべきディスプレイ1030に情報を送信する。ディスプレイ1030は、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含むが、これらに限定されない、任意のタイプのディスプレイを含むことができる。
【００６５】
当業者であれば、本明細書で開示される態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが電子ハードウェアとして実装され得ることをさらに理解するであろう。本明細書で説明するデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用され得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであり得、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に説明するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、それらの機能の点で一般的に上述されている。そのような機能がどのように実装されるかは、特定のアプリケーション、設計選択、および/またはシステム全体に課せられた設計制約に依存する。当業者は、特定のアプリケーションごとに様々な方法で説明した機能を実装することができるが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００６６】
本明細書で開示される態様に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成要素、あるいは本明細書に記載の機能を実行するように設計されたそれらの任意の組合せによって実装されてもよく、実行されてもよい。プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと組み合わせた1つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実装され得る。
【００６７】
本明細書の例示的な態様のいずれかに記載された動作ステップは、例および議論を提供するために記載されることにも留意されたい。説明した動作は、図示したシーケンス以外の数多くの異なるシーケンスで実行されてよい。さらに、単一の動作ステップにおいて説明した動作は、実際にはいくつかの異なるステップにおいて実行されてよい。さらに、例示的な態様において論じた1つまたは複数の動作ステップを組み合わせることができる。フローチャートの図に示された動作ステップは、当業者には容易に明らかであるように、多くの異なる変更を受けることがあることを理解されたい。当業者であれば、様々な異なる技術および技法のいずれかを使用して情報および信号が表され得ることも理解するであろう。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現されてよい。
【００６８】
当業者が本開示を作成または使用することを可能にするために、本開示の前述の説明が提供される。本開示の様々な修正が、当業者に容易に明らかになり、本明細書で規定する一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されるものでなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲が与えられるべきである。
【符号の説明】
【００６９】
10  変換前書込みトランザクション
12  トランザクションメモリアドレス変換要求(MATR)
14  書込み要求ペイロード(WRP)
16  MMU
18  仮想アドレス
20  物理アドレス
22  アクセス属性
24  QoS属性
26  アクセス属性
28  QoS属性
30  変換されたメモリアクセスフィールド(TMAF)
32  変換後書込みトランザクション
34  書込み属性
36  書込み(WR)トランザクションデータ
38  変換前読出しトランザクション
40  MATR
42  読出し要求ペイロード(RRP)
44  仮想アドレス
46  物理アドレス
48  アクセス属性
50  QoS属性
52  アクセス属性
54  QoS属性
56  TMAF
58  変換後読出しトランザクション
60  読出し属性
100  コンピュータ処理システム
102(0)〜102(3)  モノリシックMMU
104(0)〜104(3)  入力データパス
106(0)〜106(3)  出力データパス
108(0)〜108(3)  変換キャッシュ
110(0)〜110(3)  トランザクションバッファおよびスケジューラ
112(0)〜112(3)  ハードウェアページテーブルウォーカー
114  メモリコントローラ相互接続
116  相互接続
118(0)〜118(X)  メモリコントローラ
120  クライアント
122  クライアント
124  クライアント
126  クライアント
128  クライアント
130  クライアント
132  相互接続
200  コンピュータ処理システム
202  トラフィック生成クライアント
204  トラフィック生成クライアント
206  トラフィック生成クライアント
208  トラフィック生成クライアント
210  トラフィック生成クライアント
212(0)〜212(4)  クライアントMMUユニット
214(0)〜214(4)  ローカルトランザクションバッファおよびスケジューラ
216(0)〜216(4)  ローカル変換キャッシュ
218  中央MMUユニット
220  中央変換キャッシュ
222  保留中のアドレス変換バッファ
224  ハードウェアページテーブルウォーカー
226(0)〜226(Y)  メモリコントローラ
228  メモリコントローラ相互接続
230  相互接続
232  専用ポート
300  統合MMU
300'  統合MMU
300''  統合MMU
302(0)〜302(N)  入力データパス
303(0)〜303(N)  入力データポート
304(0)〜304(N)  入力トランザクションバッファ
305(0)〜305(Q)  出力データパス
306(0)〜306(Q)  出力トランザクションバッファ
308(0)〜308(A)  入力トランザクションバッファスロット(「ITB SLOT」)
310(0)〜310(C)  入力トランザクションバッファスロット(「ITB SLOT」)
312(0)〜312(E)  入力トランザクションバッファスロット(「ITB SLOT」)
314(0)〜314(B)  出力トランザクションバッファスロット(「OTB SLOT」)
316(0)〜316(D)  出力トランザクションバッファスロット(「OTB SLOT」)
318(0)〜318(F)  出力トランザクションバッファスロット(「OTB SLOT」)
320(0)〜320(M)  出力データポート
322  トラフィック生成クライアント
324  トラフィック生成クライアント
326  トラフィック生成クライアント
328  トラフィック生成クライアント
330  トラフィック生成クライアント
332  相互接続
334  相互接続
336  MMU管理回路
338  トラフィック相互接続
340(0)〜340(Z)  メモリコントローラ
342  変換後アービタ
360(M)  出力データポート
400(0)〜400(P)  変換キャッシュ
402(0)〜402(W)  ハードウェアページテーブルウォーカー
404  入力変換スケジューラ
406  保留中のトランザクションアドレスバッファ(PTAB)
408  MMUマネージャ
410  出力変換スケジューラ
412(0)〜412(G)  PTABスロット
414  共有レジスタ
416  共有制御ロジック
418  ハードウェアテーブルウォーカー(HTW)マルチプレクサ
420  専用出力ポート
500  変換前トランザクション
502  変換前トランザクション
504  矢印
506  矢印
507  MATR
508  MATR
509  要求ペイロード
510  要求ペイロード
510  変換前トランザクションペイロード
511  入力トランザクション
512  入力トランザクション
512'  変換後トランザクション
513  矢印
514  矢印
515  TMAF
520  矢印
522  矢印
524  矢印
526  矢印
528  矢印
530  矢印
531  矢印
532  矢印
534  矢印
536  矢印
537  矢印
540  矢印
1000  プロセッサベースのシステム
1002  中央処理装置(CPU)
1004  プロセッサ
1006  キャッシュメモリ
1008  CPU MMU
1010  システムバス
1012  メモリシステム
1014(0)〜1014(N)  メモリユニット
1016  システムMMU(SMMU)
1018  メモリコントローラ
1020  入力デバイス
1022  出力デバイス
1024  ネットワークインターフェースデバイス
1026  ディスプレイコントローラ
1028  ネットワーク
1030  ディスプレイ
1032  ビデオプロセッサ
【要約】
統合メモリ管理ユニット(MMU)を使用したメモリ管理機能が提供され、関連装置および方法が開示される。一態様では、それぞれが複数の入力トランザクションバッファを含む複数の入力データパスと、それぞれが複数の出力トランザクションバッファを含む複数の出力パスとを備える統合MMUが提供される。統合MMUのいくつかの態様は、さらに、1つまたは複数の変換キャッシュおよび/あるいは1つまたは複数のハードウェアページテーブルウォーカーをさらに提供する。統合MMUは、入力トランザクションバッファからメモリアドレス変換要求(MATR)を検索することと、変換されたメモリアドレスフィールド(TMAF)を生成するためにMATRに基づいてメモリアドレス変換動作を実行することと、出力トランザクションバッファにTMAFを提供することとを行うように構成されたMMU管理回路をさらに含む。統合MMUはまた、複数の出力データパスを提供し、それぞれは、結果として得られるメモリアドレス変換を伴うトランザクションを出力するように構成される。【図１Ａ】
0006408747.tif 000002
【図１Ｂ】
0006408747.tif 000003
【図２Ａ】
0006408747.tif 000004
【図２Ｂ】
0006408747.tif 000005
【図３Ａ】
0006408747.tif 000006
【図３Ｂ】
0006408747.tif 000007
【図３Ｃ】
0006408747.tif 000008
【図４】
0006408747.tif 000009
【図５Ａ】
0006408747.tif 000010
【図５Ｂ】
0006408747.tif 000011
【図５Ｃ】
0006408747.tif 000012
【図５Ｄ】
0006408747.tif 000013
【図５Ｅ】
0006408747.tif 000014
【図５Ｆ】
0006408747.tif 000015
【図６Ａ】
0006408747.tif 000016
【図６Ｂ】
0006408747.tif 000017
【図７】
0006408747.tif 000018
【図８】
0006408747.tif 000019
【図９Ａ】
0006408747.tif 000020
【図９Ｂ】
0006408747.tif 000021
【図１０】
0006408747.tif 000022