(57)【要約】              プログラム可能なメモリ転送リクエストユニット装置（１００）は、プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）およびプログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニット（１４０）を備える。ＰＭＴＲＰユニット（１２０）は少なくとも１つのプログラム可能な領域記述子（１２３）を備える。ＰＤＭＡユニット（１４０）は少なくとも１つのプログラム可能なメモリからメモリへの転送制御記述子（１４８，１４９，１５０）を備える。ＰＤＭＡユニット（１４０）を、メモリ転送リクエストをＰＭＴＲＰユニット（１２０）に送信する（１４３）ことに適用する。ＰＭＴＲＰユニット（１２０）を、ＰＭＴＲＰユニット（１２０）の少なくとも１つの領域記述子（１２３）の少なくとも１つの部分に関連するメモリロケーションに送られたＰＤＭＡユニット（１２０）により発行されたメモリ転送リクエストを受信して（１３４）処理することに適用する。
2018523247.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子であり、それぞれに対して、領域記述子のタイプは固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーションルックアサイドバッファ記述子、範囲記述子、プログラム可能なメモリアドレス変換ポリシーで適用された範囲記述子、キャッシュタグ記述子の１つから選択される第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子を備えるプログラム可能なコンフィギュレーションデータと、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第２ポートと、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化された第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポートで受信された第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化された第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポートで受信された第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするための第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの領域記述子の１つに関連する第３アドレス空間においてメモリロケーションに向けられる第３ポート上で受信する正しい形式のメモリ転送リクエストを処理する手段と、を備えるプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、
ターゲットポートであり、ＰＤＭＡユニットを制御するためにメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
マスタポートであり、メモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
メモリからメモリへの転送処理を記述することができる少なくとも１つのメモリからメモリへの転送制御記述子を含むプログラム可能なコンフィギュレーションデータと、
第２ポートおよび少なくとも１つのメモリからメモリへの転送制御記述子を用いてメモリからメモリへの転送処理を処理する手段と、を備えるプログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニットと、を備え、
ＰＤＭＡユニットは前記第２ポートからＰＭＴＲＰユニットの第３ポートへメモリ転送リクエストを送信することに適用し、ＰＭＴＲＰユニットはＰＭＴＲＰユニットの少なくとも１つの領域記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられるＰＤＭＡユニットの第２ポートに発行される正しい形式のメモリ転送リクエストを受信して処理することに適用することを特徴とする装置。
【請求項２】
プログラム可能なコンフィギュレーションデータの部分は第１アドレス空間のユーザ部に関連し、
ＰＭＴＲＰユニットの第３ポートにアクセス可能である第１アドレス空間のユーザ部に関連するＰＭＴＲＰユニットのすべてのプログラム可能なコンフィギュレーションデータを１つのＰＤＭＡユニットのメモリからメモリへの転送処理においてプログラム可能であることを特徴とする請求項１に記載の装置。
【請求項３】
ＰＭＴＲＰユニットのプログラム可能なコンフィギュレーションデータはさらに少なくとも１つのキャッシュラインまたは少なくとも１つのキャッシュブロックを備えることを特徴とする請求項１または２のいずれか１項に記載の装置。
【請求項４】
ＰＭＴＲＰユニットはアドレス空間識別子を前記ＰＭＴＲＰユニットの第１ポート上で受信されるメモリ転送リクエストと関連付ける手段を備え、前記ＰＭＴＲＰユニットのプログラム可能なコンフィギュレーションデータの少なくとも１つの領域記述子はアドレス空間識別子に関連していることを特徴とする請求項１から３のいずれか１項に記載の装置。
【請求項５】
ターゲットポートであり、第１アドレス空間におけるメモリアドレスと、アドレス空間識別子と、に関連し、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
Ｎ＋１の論理的に独立したＭＴＲＰ領域の１つに関連する値を送信することに適用する第２ポートと、
第１ポート上で受信するメモリ転送リクエストに応答して第２ポート上のＮ＋１の論理的に独立したＭＴＲＰ領域の１つに関連する値を生成する手段と、
メモリ転送リクエストを第３ポート上でＮ＋１の論理的に独立したＭＴＲＰ領域の１つにマッピングできなかったことを示す手段と、を備え、
少なくともＮ＋１の論理的に独立したメモリ転送リクエスト処理領域の１つで、少なくともＮの連続するパーティションに分割される第１アドレス空間に関連するメモリ転送リクエストをマッピングすることに適用し、
Ｎの値は少なくとも２であり、
Ｎ＋１の論理的に独立したＭＴＲＰ領域の少なくとも２つを、第１アドレス空間の少なくともＮの連続するパーティションの同じパーティションにマッピングすることができ、
第１ポート上で受信するメモリ転送リクエストに関連するメモリアドレスがマッピングされたＮ＋１の論理的に独立したＭＴＲＰ領域の少なくとも２つを有することができる第１アドレス空間の少なくともＮの連続するパーティションの１つに関連する場合、メモリ転送リクエストに関連するアドレス空間識別子の値を、マッピングする少なくとも２つのＮ＋１の論理的に独立したＰＭＴＲＰ領域を区別することに用いることを特徴とする装置。
【請求項６】
各少なくともＮ＋１の論理的に独立したメモリ転送リクエスト処理（ＭＴＲＰ）領域は前記領域に向けられるメモリ転送リクエストを変換するためにプログラム可能なメモリアドレス変換を利用することを特徴とする請求項５に記載の装置。
【請求項７】
プログラム可能なメモリ変換アドレス方法の少なくとも１つはダイレクトインデックス１階層方式を利用することを特徴とする請求項６に記載の装置。
【請求項８】
少なくとも２つのアドレス空間識別子は第１アドレス空間の少なくともＮの連続するパーティションの１つに関連してよく、第１アドレス空間の前記連続するパーティションはＮ＋１の論理的に独立するＭＴＲＰ領域の１つに関連することを特徴とする請求項５または６に記載の装置。
【請求項９】
メモリ転送リクエストに関連するアドレス空間識別子の値は第１アドレス空間の少なくともＮの連続するパーティションの少なくとも２つに関連することを特徴とする請求項５または６に記載の装置。
【請求項１０】
ターゲットポートであり、第１インターコネクトから第１空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
マスタポートであり、第１インターコネクトではない第２インターコネクトに第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
それぞれが第１アドレス空間のメモリ領域にプログラム的に関連し、プログラム可能なアクセスパーミッションポリシーを備え、プログラム可能なメモリアドレス変換ポリシーを備える第１セットの少なくとも２つのプログラム可能な領域記述子と、
ターゲットポートであり、第１セットの少なくとも２つのプログラム可能な領域記述子にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
第１セットの少なくとも２つのプログラム可能な領域記述子の少なくとも１つのプログラム可能な領域記述子の部分に関連する第３アドレス空間においてメモリロケーションに向けられる第３ポート上で受信する正しい形式のメモリ転送リクエストを処理する手段と、
出力ポートである第４ポートと、
第１セットの少なくとも２つのプログラム可能なメモリ領域記述子に格納されるような受信したメモリ転送リクエストに関連する少なくとも１つのポリシーに一致する第１ポート上で受信するメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、
プログラム的に前記アドレスに関連する少なくとも２つのプログラム可能な記述子の１つが有効な変換ポリシーを有する場合、第１ポート上で受信するメモリ転送リクエストのアドレスを変換する手段と、
前記アドレスにプログラム的に関連する少なくとも２つのプログラム可能な領域記述子の１つ以上のプログラム可能な領域記述子が前記有効な変換ポリシーを有する場合、第４ポート上で信号を生成する手段と、を有するプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットを備えることを特徴とする装置。
【請求項１１】
ＰＭＴＲＰユニットの第１セットの少なくとも２つのプログラム可能な領域記述子の少なくとも１つのプログラム可能な領域記述子は、
１つ以上のプロセッサコア上で走るソフトウェアのために発行される実行可能なコードメモリ転送リクエストに関連する少なくとも１つのパーミッションフィールドと、１つ以上のプロセッサコア上で走るソフトウェアのために発行されるデータメモリ転送リクエストに関連する少なくとも１つのパーミッションフィールドと、を有することを特徴とする請求項１０に記載の装置。
【請求項１２】
ＰＴＲＭＰユニットは前記ＰＭＴＲＰユニットの第１ポート上で受信するメモリ転送リクエストをアドレス空間識別子と関連付ける手段を備え、
前記ＰＭＴＲＰユニットのプログラム可能な領域記述子の少なくとも１つはアドレス空間識別胃に関連付けることができることを特徴とする請求項１０または１１に記載の装置。
【請求項１３】
ターゲットポートであり、第１インターコネクトから第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
第１インターコネクトではない第２インターコネクトに第２アドレス空間に関連するメモリ転送リクエストを送信し、メモリ転送を受信することに適用する第２ポートと、
第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つのキャッシュされた領域記述子を備えるプログラム可能なコンフィギュレーションデータと、
第２ポートでセットのキャッシュされた領域記述子である少なくとも１つのメモリ転送リクエストを生成して送信することにより少なくともＮセットの少なくとも２つの領域記述子にアクセスし、対応する応答を受信し、前記受信した領域記述子をキャッシュする手段と、
処理時間において第２ポートでアクセス可能なＮセットの少なくとも２つの領域記述子の第１セットにおいてコード化されるポリシーに従って第１ポート上で受信されるメモリ転送リクエストを処理する手段と、
Ｎセットの少なくとも２つの領域記述子の第１セットに格納されるように前記受信されたメモリ転送リクエストに関連する少なくとも１つのポリシーに一致する第１ポート上で受信するメモリ転送リクエストに応答して第２ポート上でメモリ転送リクエストを生成して送信する手段と、を備え、
Ｎの値は少なくとも１であることを特徴とする装置。
【請求項１４】
Ｎの値は少なくとも２であり、ＰＭＴＲＰユニットはさらに、
第１ポートの第１アドレス空間を少なくとも２つの連続した領域に分割し、
第１アドレス空間の少なくとも２つの連続した領域の各領域に対して、前記領域を第２ポートでアクセス可能なＮセットの少なくとも２つの領域記述子の異なるセットとプログラム的に関連させる、ことに適用することを特徴とする請求項１３に記載の装置。
【請求項１５】
Ｎセットの少なくとも２つの領域記述子の少なくとも１セットを単一レベルダイレクトインデックス方式において利用することを特徴とする請求項１３または１４に記載の装置。
【請求項１６】
Ｎセットの少なくとも２つの領域記述子の少なくとも１セットを多層方式において利用することを特徴とする請求項１３または１４に記載の装置。
【請求項１７】
Ｎセットの少なくとも２つのＰＭＴＲＰユニットの領域記述子の各セットに対して、
前記セットにおけるすべての領域記述子は同じタイプであり、
すべての領域記述子のタイプは、固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーション・ルックアサイド・バッファ記述子、領域記述子、プログラム可能なメモリアドレス変換ポリシーで適用された領域記述子の１つから選択され、
Ｎセットの少なくとも２つのＰＭＴＲＰユニットの領域記述子の少なくとも２セットは異なるタイプの領域記述子を有することを特徴とする請求項１３に記載の装置。
【請求項１８】
Ｎセットの少なくとも２つのＰＭＴＲＰユニットの領域記述子の各セットに対して、
前記セットにおけるすべての領域記述子は同じタイプであり、
すべての領域記述子のタイプは、固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーション・ルックアサイド・バッファ記述子、範囲記述子、プログラム可能なメモリアドレス変換ポリシーで適用された範囲記述子の１つから選択され、
Ｎセットの少なくとも２つのＰＭＴＲＰユニットの領域記述子の少なくとも２セットは異なるタイプの領域記述子を有することを特徴とする請求項１４に記載の装置。
【請求項１９】
ＰＭＴＲＰユニットはさらに、
第２ポートで少なくとも１つのメモリ転送リクエストを生成して送信し、対応する応答を受信することにより、それぞれが少なくとも２つの領域記述子を含む少なくとも１つの領域記述子のキャッシュにアクセスする手段と、
処理時間において第２ポートでアクセス可能な少なくとも１つの領域記述子のキャッシュの１つにおいてコード化されるポリシーに一致して第１ポート上で受信するメモリ転送リクエストを処理する手段と、
処理時間において第２ポートでアクセス可能な少なくとも１つの領域記述子のキャッシュの１つにおいてコード化されるポリシーに一致して第１ポート上で受信されるメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、
に適用することを特徴とする請求項１８に記載の装置。
【請求項２０】
ＰＭＴＲＰユニットはさらに、
少なくとも２つの領域記述子のキャッシュにアクセスする手段と、
第１ポートの第１アドレス空間を少なくとも２つの連続する領域に分割することと、
各それらの少なくとも２つの連続する領域を第２ポートでアクセス可能な少なくとも２つの領域記述子のキャッシュの１つをプログラム的に関連付ける手段で適用することを特徴とする請求項１９に記載の装置。
【請求項２１】
ＰＭＴＲＰユニットはさらに、
第２インターコネクトではない第３インターコネクトに第３アドレス空間に関連するメモリ転送リクエストを送信し、メモリ転送を受信することに適用する第３ポートと、
処理時間において第３ポートでアクセス可能な少なくともＮセットのプログラム可能な領域記述子の１セットにおいてコード化されるポリシーに一致する第１ポート上で受信されるメモリ転送リクエストを処理する手段と、
処理時間において第３ポートでアクセス可能な少なくともＮセットのプログラム可能な領域記述子の１セットにおいてコード化されるポリシーに一致する第１ポート上で受信されるメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、に適用することを特徴とする請求項１４または１９に記載の装置。
【請求項２２】
ターゲットポートであり、Ｎのパーティションに細分化され、範囲がＭキキバイトである第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
マスタポートであり、範囲がＯキキバイトである第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
それぞれが第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化し、すべてが同じタイプの領域記述子であり、前記タイプの領域記述子を少なくとも８の異なるページ長のサポートを備えるページ記述子および少なくとも１６の異なる割り当てられたセグメント長のサポートを備えるセグメント記述子の１つから選択され、少なくともＮが異なる第１アドレス空間のＮパーティションの１つに関連する少なくともＮの領域記述子と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信する第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信する第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、を有するプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットを備え、
Ｍの値は少なくとも１０２４であり、
Ｎの値は少なくとも２であり、１６３８４より小さく、
Ｏの値は少なくとも１であることを特徴とする装置。
【請求項２３】
ＰＭＴＲＰユニットはさらに、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信する第３ポートと、
少なくともＮの領域記述子の少なくとも１つの部分にアクセスする有効なメモリロケーションに向けられた第３ポート上で受信された正しい形式のメモリ転送リクエストを処理する手段と、
第３ポート上でメモリ転送応答を送信することにより少なくともＮの領域記述子の少なくとも１つの部分にアクセスするメモリロケーションに向けられる第３ポート上で受信する正しい形式の読み取りメモリ転送リクエストに応答する手段と、を備えることを特徴とする請求項２２に記載の装置。
【請求項２４】
装置はさらに、
インターコネクトと、
インターコネクトに接続される少なくとも１つのインターコネクトターゲット周辺機器と、を備え、
ＰＭＴＲＰユニットの第３ポートはさらにインターコネクトに接続されていることを特徴とする請求項２３に記載の装置。
【請求項２５】
ＰＭＴＲＰユニットはどの少なくともＮの領域記述子がメモリ転送リクエストに関連しているかを識別するためにダイレクトインデックスルックアップ方式のタイプを利用することを特徴とする請求項２２から２３のいずれか一項に記載の装置。
【請求項２６】
ＰＭＴＲＰユニットはどの少なくともＮの領域記述子がメモリ転送リクエストに関連するかを識別するコンテンツ・アソシエイティブ・メモリ・ルックアップ方式のタイプを利用することを特徴とする請求項２２から２３のいずれか一項に記載の装置。
【請求項２７】
ＰＭＴＲＰユニットはどの少なくともＮの領域記述子がメモリ転送リクエストに関連するかを識別する古アソシエイティブ・ルックアップ方式のタイプを利用することを特徴とする請求項２７から２３のいずれか一項に記載の装置。
【請求項２８】
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適応する第１ポートと、
それぞれに対してタイプが、固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーション・ルックアサイド・バッファ記述子、プログラム可能なメモリアドレス変換ポリシーで適用した領域記述子の５つのタイプの１つから選択される、第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子と、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの領域記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられた第３ポート上で受信される正しく形成されるメモリ転送リクエストを処理する手段と、を備える第１プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
第１ポート上で１つ以上のメモリ転送リクエストで受信される領域記述子においてコード化される少なくとも１つのポリシーの少なくとも１つをどのように転送するかについて少なくとも１つのポリシーをコード化する、第１アドレス空間の領域に関係する少なくとも１つのポリシーをコード化する少なくとも１つの記述子を備えるプログラム可能なコンフィギュレーションデータと、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフイギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられた第３ポート上で受信される正しく形成されるメモリ転送リクエストを処理する手段と、を備える第２プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、を備え、
第２ＰＭＴＲＰユニットの第２ポートは第１ＰＭＴＲＰユニットの第３ポートに接続されていることを特徴とする装置。
【発明の詳細な説明】
【０００１】発明の分野
発明は、これに限定されないが、いわゆるメモリ保護ユニット、メモリ管理ユニット、命令キャッシュ、データキャッシュおよびメモリ管理ユニットにおいて用いられるトランスレーション・ルックアサイド・バッファの形でのキャッシュの実装および利用に関する。本発明のさまざまな実施形態は、多くの３２ビットおよび６４ビットプロセッサ環境において用いることに適している。限定されないが、これはリアルタイムの、安全でセキュリティ・クリティカルの、サイバー・フィジカル・コンピューティング環境、さらにかなりリソースが制約されたコンピューティング環境を含む。
発明の背景
出版された文書に対する本明細書における言及は、前記文書の内容が本明細書の当業者の一般的な知識の一部であるということを認めたことにはならない。メモリ管理アーキテクチャの例を［１］、［２］および［３］に開示する。さまざまなメモリ保護ユニット（ＭＰＵ）およびメモリ管理ユニット（ＭＭＵ）技術のアーキテクチャを記述するために利用される専門用語は、矛盾する定義を有する場合がある。請求項を含め、本明細書では以下のとおりとする。
●「備える」は述べられた特徴、整数、ステップまたは構成要素の存在を規定するために用いられるが、１つ以上の別の特徴、整数、ステップおよび構成要素の存在または追加を排除する。
●メモリコントローラ（例えば図１の１１５）に接続されるメモリ格納（例えば図１の１１８）は、メモリ格納として高レベルの抽象的概念として記述することができる。
●周辺機器（例えば図１のネットワークコントローラ１０５）は、外部Ｉ／Ｏピンを有しても、有さなくてもよい。周辺機器は少なくとも１つのインターコネクト・インターフェースを備え、各インターコネクタ・インターフェースはインターコネクトマスタまたはインターコネクトターゲットポートのいずれかである。
●バスはインターコネクトのタイプである。クロスバーはインターコネクトのタイプである。
●メモリからメモリへのダイレクトメモリアクセス（ＭＷＭ  ＤＭＡ）ユニット（例えば図１の１４０）は、１つのメモリロケーションに格納されるメモリの値を読み、前記値を異なるメモリロケーションに書き込む目的のための１つ以上のインターコネクトマスタ（例えば図１の１４３および１４４）にわたるメモリ転送リクエストを発行するために特に最適化されたプログラム可能なハードウェア回路である。Ｍ２Ｍ  ＤＭＡは異なるマスターデバイス（例えば図１の１１０または１９４）による制御の支配下にあるスレーブデバイスである。本タイプのＭ２Ｍ  ＤＭＡユニットの既知の例はインテルの８２３７Ａである。Ｍ２Ｍ  ＤＭＡユニットはさらに、メモリ格納から連続したメモリロケーションを読み、データの各ワードをメモリマップド周辺機器の同じアドレスに書き込むような、追加のメモリ移動の関連ケーパビリティを供給することができる。Ｍ２Ｍ  ＤＭＡユニットはプログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニットとして記述することができる。
●メモリ保護ユニット（ＭＰＵ）は入力アドレス空間に関連したメモリ転送リクエストを受信して、それに応答して出力アドレス空間に関連したメモリ転送リクエストを生成する。ＭＰＵは（ａ）アクセス制御が入力アドレス空間の１つ以上の領域に適用することができ、（ｂ）ＭＰＵが常に入力アドレス空間におけるメモリ転送リクエストのアドレスと、出力アドレス空間における対応するメモリ転送リクエストのアドレスの間の恒等変換を利用することを特徴とする。あるＭＰＵアーキテクチャを２つ以上の領域記述子のランタイムでの入力アドレス空間の同じ連続した領域へのマッピングを支持するように明確に設計する。
●メモリ管理ユニット（ＭＭＵ）は入力アドレス空間に関連するメモリ転送リクエストを受信し、それに応答して出力アドレス空間に関連する対応するメモリ転送リクエストを生成する。ＭＭＵを（ａ）アクセス制御が入力アドレス空間の１つ以上の領域に適用することができ、（ｂ）ＭＭＵが入力アドレス空間に関連するメモリ転送リクエストのアドレスおよび出力アドレス空間における対応するメモリ転送リクエストのアドレスを変換することに適用する。
●正しい形式のメモリ転送リクエストは、メモリ転送リクエストに対する関連のインターコネクト・プロトコルの要件を正しく満たすいかなるメモリ転送リクエストである。正しい形式のメモリ転送リクエストを受信することは、リクエストが発行において不正な形式でなく、リクエストが転送において破壊されなかったことを示している。
メモリ管理技術が記述される複数の出版物において、「仮想アドレス空間」は「物理アドレス空間」にマッピングされる。本用語は、与えられたコンピュータアーキテクチャにおいて利用される汎用プロセッサ上で走るソフトウェアのための単一レベルのアドレス変換手段がある場合に明瞭である。本明細書において、前記用語を「入力アドレス空間」が「変換されたアドレス空間に」マッピングされたという用語を使用する。この後者の用語は、２つ以上のレベルのアドレス変換手段を有するコンピュータアーキテクチャを考慮する場合に、各レベルのメモリアドレス変換手段のために一貫して用いることができる。この後者の用語はさらに、汎用プロセッサ、グラフィックプロセッサおよび別のタイプのインターコネクトマスタ周辺機器からのメモリ転送リクエストを受信することに適用されるメモリアドレス変換手段のために一貫して用いることができる。
請求項を含めた本明細書により、ページ、ページ記述子、フレーム、セグメント、セグメント記述子およびレンジ記述子を次のように定義する。
●Ｎバイト長の「フレーム」は、Ｎバイト長さであり、Ｎバイト境界で開始する変換されたアドレス空間における連続したメモリの領域を定義する。
●Ｎバイト長の「ページ」は、Ｎバイト長さであり、Ｎバイト境界で開始する入力アドレス空間における連続したメモリの領域を定義する。「ページ記述子」は入力アドレス空間に関連したメモリのページを記述する。入力アドレス空間におけるメモリのページは変換されたアドレス空間におけるメモリのフレームにマッピングしてもよい。
●Ｎバイト長の「セグメント」は、Ｎバイトの長さであり、Ｏバイト境界を起点として入力アドレス空間においてメモリの連続領域を定義する。割り当てられたセグメント部分はＮバイト長未満であってよく、また本セグメント内に位置するアドレスオフセットから始まってよい。用語「可変長セグメント」とは、割り当てられたセグメントのポートの長さを変更してよいことを意味する。割り当てられたセグメント部分を、変換されたアドレス空間におけるＰバイト境界上でメモリの連続領域にマッピングしてよい。Ｏ値およびＰ値はまた異なってよい。Ｎ値、Ｏ値およびＰ値との間の関係は、セグメント化方式の実装の詳細に応じて変化する。実際には、ハードウェアにて実装手段を用いるために幾つかのコンピュータアーキテクチャを設計して、入力されたアドレス空間において割り当てられた２つのプログラム可能セグメント部分が重複するのを防止する。前記他のコンピュータアーキテクチャの訂正動作では、入力されたアドレス空間において、割り当てられた２つのプログラム可能セグメント部分が実行時に重複しないことを確実にするための、管理ソフトウェアが必要とされる場合もある。「セグメント記述子」は、入力されたアドレス空間と関連したメモリのセグメントを記述する。
●Ｎバイト長の「範囲記述子」はＮバイト長である入力アドレス空間においてメモリの連続領域を定義する。範囲を下限アドレスおよび上限アドレス、または下限アドレスおよび範囲長さにより定義してよい。与えられた範囲記述子において可能であるプログラム可能なアドレス変換がない場合、入力アドレス空間における範囲を、恒等変換を用いて出力アドレス空間におけるメモリの連続領域にマッピングする。範囲記述子は入力アドレス空間においてファイングレイン境界（例えば６４バイト粒度）において開始および終了してよい。あるいは、範囲記述子は入力アドレス空間においてコースグレイン境界（例えばキビバイト粒度）において開始および終了してよい。商用オフザシェルフＭＰＵ実装において、プログラム可能なアドレス変換ケーパビリティを有さない２つ以上の範囲記述子が入力アドレス空間において重複メモリ領域に関連することを明らかに可能にすることは一般的である。
請求項を含めて本明細書を通じて、キャッシュライン、キャッシュブロック、キャッシュサブブロックおよびキャッシュタグを次のように定義する。
●「キャッシュライン」はメモリの連続領域である。従来の汎用目的のコンピュータアーキテクチャにおいて、キャッシュラインの長さは８バイトから３２バイトの範囲である。原理的には、キャッシュラインはページまたはセグメントの最大長と同じ長さを有することができる。各キャッシュラインはキャッシュタグと関連している。キャッシュラインの内容において、「キャッシュタグ」はキャッシュラインに関するメタデータを格納する。前記メタデータは、限定されないが、入力アドレス空間において前記アドレス、および／または変換されたアドレス空間および前記キャッシュの状態において前記アドレスを含んでよい。
●「キャッシュブロック」はキャッシュサブブロックに再分割されたメモリの連続領域である。従来の汎用目的のコンピュータアーキテクチャにおいて、キャッシュブロックは２から４のキャッシュサブブロックからなる。従来の汎用目的のコンピュータアーキテクチャにおいて、キャッシュサブブロックの長さは８バイトから３２バイトの範囲である。各キャッシュブロックはキャッシュタグと関連している。キャッシュブロックの内容において、キャッシュタグはキャッシュブロックに関するメタデータを格納する。メタデータは、限定されないが、入力アドレス空間において前記アドレス、および／または変換されたアドレス空間および前記キャッシュの状態において前記アドレスを含んでよい。
請求項を含めて本明細書を通じて、「プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）」ユニットおよび「領域記述子」を次のように定義する。
●ＰＭＴＲＰはさまざまなポリシーに従ってメモリ転送リクエストを受信して処理することに適用し、各メモリ転送リクエストは特定のアドレス空間に関連し、各アドレス空間は前記ＰＭＴＲＰユニットにより実施される複数のポリシーに関連する。「領域記述子」は、さまざまなポリシーを特定のＰＭＴＲＰユニットインスタンスに関連する特定のアドレス空間の特定領域に関連づけるために用いる。例えば、
2018523247.tif 000003
くてもよい。
2018523247.tif 000004
くてもよい。
2018523247.tif 000005
るメモリサブシステムのデフォルト動作を修正するフィールドに適用してもよいし、そうでなくてもよい（例えば、キャッシュ書き込みポリシー、および／またはメモリオーダポリシーを調整することにより）。
●領域記述子に関連するアドレス空間の領域は、
2018523247.tif 000006
関して規制してもよいし、そうでなくてもよく、さらに、
2018523247.tif 000007
てもよい。
したがって、「領域記述子」のフィールドはさまざまな記述子を実行することに適用することができる。これは、限定されないが、ページ記述子、セグメント記述子、トランスレーション・ルックアサイド・バッファ記述子、プログラムのアドレス変換なしの範囲記述子、プログラムのアドレス空間ありの範囲記述子およびキャッシュタグを含む。
明らかに、与えられた領域記述子の特定フィールドを、前記領域記述子インスタンスのために特に定義する。
ＰＭＴＲＰユニットを、前記ＰＭＴＲＰユニットの１つ以上のインターコネクトターゲットポートにメモリ転送リクエストを発行することに適用する１つ以上のインターコネクトマスタから独立して定義する。非限定例により、ＭＭＵ機能を実行するＰＭＴＲＰユニットは一般性を失うことなく１つのインターコネクトマスタの周辺機器に対するプライベートＩＯＭＭＵとして用いるために適用してよい。さらにＭＭＵ機能を実行するＰＭＴＲＰは一般性を失うことなく複数のインターコネクトマスタの周辺機器にわたって共有される、共有ＩＯＭＭＵとして用いるために適用してよい。
請求項を含めて本明細書を通じて、「プログラム可能な領域記述子」を、前記領域記述子の１つ以上のフィールドをプログラムで調整してよい領域記述子として定義する。
コンピュータアーキテクチャのメインメモリを管理するための初期のＭＭＵスキームは一般的に、小さい記憶容量を有するメインメモリで用いるために適用した。物理メモリの記憶容量が向上するにつれ、異なる原理に基づくＭＭＵスキームを、小さい記憶容量のために設計されたこれらの初期のＭＭＵスキームのさまざまな認知または実際の制限［１］、［２］を克服するために利用した。
著者の知る限り、ファイングレインメモリ割り当てケーパビリティで大きな入力アドレス空間をサポートする全ての発行されたＭＭＵスキームは、（ソフトウェアまたはハードウェアのどちらかで制御する）トランスレーション・ルックアサイド・バッファ（ＴＬＢ）を利用する。これらのＴＬＢを、入力アドレス空間と関連付けることができる比較的少数の潜在的に非常に大きな数の領域記述子をキャッシュすることに用いる。ＶＡＸ−１１／７８０アーキテクチャを考える［３］。ＶＡＸ−１１／７８０ＭＭＵスキームは３２ビット入力アドレス空間全体を割り当てるために８，３８８，６０８の領域記述子を必要とする［３］。ＶＡＸ−１１／７８０の複数の実装では一元化したＴＬＢを利用して高速メモリにおいて、これらの８，３８８，６０８の領域記述子［２］までの１２８までをキャッシュし、１つ以上のテーブルにおいてイネーブルな領域記述子を格納し、比較的遅いメインメモリストレージに格納した。後に著者の知る限りにおいて、工業利用では潜在的に非常に大きな数のイネーブルな領域記述子の管理を改善するための領域記述子を捜す場合、２つ（以上）のレベルの間接参照（インデックススキーム、ハッシュスキーム、連結リストスキーム）を利用することに主に焦点を当ててきた。２つ以上の間接参照のレベルの利用に対する工業的トレンドは明らかに、ＶＡＸ−１１／７８０アーキテクチャ［２］のようなシングルレベルの変換アーキテクチャにおいて発見されるさまざまな技術的困難を解決することである。著者の知る限り、３２ビットまたは６４ビットアドレス空間においてリーフ領域記述子にアクセスするための２つ以上の間接参照のレベルをサポートする全ての発行されたＭＭＵスキームの実装は、それらのパフォーマンスを加速するために（ソフトウェアまたはハードウェアのどちらかで制御する）ＴＬＢを利用する。データキャッシュと組み合わせて領域記述子をキャッシュするためにＴＬＢを利用することは、可能なデータキャッシュを有し、可能なＴＬＢケーパビリティを有するプロセッサコアにおいて走るソフトウェアの静的タイミング解析を実行する複雑度を顕著に向上させる。３２ビットおよび６４ビット入力アドレス空間において、比較的ファイングレインのメモリ割り当てに対するサポートのある、低レイテンシで、ハイスループットで、一定時間のオペレーションを有するＭＭＵアーキテクチャに対して長年必要とされている。マイクロコントローラ市場において、メモリ保護ユニット（ＭＰＵ）として処理することができ、さらに市販のハイアシュランスのセキュリティ・クリティカル・リアルタイム・オペレーティングシステム（ＲＴＯＳ）を走らせるＭＭＵとして処理することができるＰＭＴＲＰユニットを供給する必要性もある。これは、多くのハイアシュランスのＲＴＯＳがアドレス変換ケーパビリティのあるハードウェアＭＭＵのアベイラビリティに依存しているからである。さらに、より迅速なタスクスワッピングおよび改善されたシステムパフォーマンスをサポートするためのリアルタイム環境において時間解析可能な方法で遅延の少ない領域記述子の再プログラミングを低コストで加速するための手段も長年にわたって必要とされている。
さらに、性的に時間解析可能なリアルタイムシステムにおいて用いることに適切な、それぞれが異なるソフトウェアの制御下にある（例えばハイパーバイザは第１レベルのＭＭＵスキームを制御し、ハイパーバイザにおいてホストされるオペレーティングシステムは第２レベルのＭＭＵスキームを制御する）２階層のアドレス変換をサポートすることが長年必要とされている。Ｌｉｎｕｘのような汎用目的のオペレーティングシステムをサポートするためのページベースのＭＭＵスキームを走らせる必要があるリソース制約の環境（例えばモノのインターネット）において、従来のページベースのＭＭＵよりもより少ない実装するハードウェア回路領域を必要とし、さらにユーザアドレス空間コンテキストスワップの後にソフトウェアのより迅速な実行をサポートする刷新的なＭＭＵアーキテクチャに対する注目すべき市場のニーズがある。
本発明の好ましい実施形態は、上記市場ニーズに対して新しく刷新的な解決手段を供給する。
本発明の好ましい実施形態の説明
より迅速なタスクスワッピングおよび改善されたシステムパフォーマンスをサポートするためにリアルタイム環境において時間解析可能な方法で遅延の少ない領域記述子の再プログラミングを低コストで加速するための方法が長年にわたって必要とされている。
図１は、本発明の好ましい実施形態のためのデータを処理する装置（１００）の部分を示すブロック概略図である。装置（１００）はプロセッサユニット（１１０）を備える。プロセッサユニット（１１０）はインターコネクト（１９０）に接続されるインターコネクトマスタポート（１１１）を有する。プロセッサユニットの例は、限定されないが、汎用１６ビット、３２ビットまたは６４ビットプロセッサコア、グラフィックプロセッサユニットまたは特定用途向けプロセッサコアを含む。原理的には、インターコネクトマスタの周辺機器をプロセッサユニット（１１０）の代わりに用いてもよい。
装置（１００）はさらに不揮発性メモリストア（１１２）を備える。前記不揮発性メモリストア（１１２）はインターコネクトターゲットポート（１１３）によりインターコネクト（１９０）に接続される。
装置（１００）はさらにプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）を備える。ＰＭＴＲＰユニットが利用することができる機能の例は、限定されないが、ページベースのメモリ管理ユニット（ＭＭＵ）、最近アクセスしたページ記述子をキャッシュするトランスレーション・ルックアサイド・バッファを備えるページベースのＭＭＵ、セグメントベースのＭＭＵ、最近アクセスしたセグメント記述子をキャッシュするトランスレーション・ルックアサイド・バッファを備えるセグメントベースのＭＭＵおよびキャッシュタグとキャッシュデータがＰＭＴＲＰユニット（１２０）のメモリストア（１２３）のプログラム可能なコンフィギュレーションデータに格納されるキャッシュを含む。
キャッシュタグは、限定されないが、シングルビットキャッシュラインの現在フィールド、（３２ビット／６４ビット）入力アドレスフィールド、（３２ビット／６４ビット）変換アドレスフィールド、システムソフトウェアタスクのためのアクセス制御ポリシーをコード化するマルチビットフィールド、インターコネクトマスタの周辺機器のためのアクセス制御ポリシーをコード化するマルチビットフィールド、シングルビット「キャッシュラインの現在」フラグ、８、１６および／または３２ビット粒度を備える現在マスクフィールド、フラグを「読み込むための最近アクセスしたキャッシュライン」、シングルビット「キャッシュラインのダーティ」フラグ、８、１６および／または３２ビット粒度を備えるダーティマスクフィールド、マルチビットキャッシュモードフィールド（例えばライトスルー、ライトバックなど）、マルチバスマスター環境においてメモリコンシステンシを示すマルチビットメモリオーダフィールドのようなさまざまなフィールドを備えてよい。
装置（１００）はさらに以下を備える。
●プログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニット（１４０）。
●任意の一方向のインターコネクトブリッジ（１６０）。前記ブリッジ（１６０）のインターコネクトマスタポート（１６１）はインターコネクト（１９１）に接続されている。前記ブリッジ（１６０）のインターコネクトターゲットポート（１６２）はインターコネクト（１９２）に接続されている。
●ＳＤＲＡＭコントローラ（１１５）。ＳＤＲＡＭコントローラ（１１５）のインターコネクトターゲットポート（１１６）はインターコネクト（１９２）に接続されている。
●ＳＤＲＡＭメモリストア（１１８）。前記ＳＤＲＡＭメモリストア（１１８）のターゲットポート（１１９）はＳＤＲＡＭコントローラ（１１５）のマスタポートに接続されている。
●インターコネクトターゲットポート（１７１）および格納手段（１７２）を備えるオンチップＳＲＡＭメモリストア（１７０）。
●ネットワークインターフェース周辺機器（１０５）。前記ネットワークインターフェース周辺機器（１０５）のインターコネクトターゲットポート（１０６）およびインターコネクトマスタポート（１０７）はインターコネクト（１９２）に接続されている。
●高精細度マルチメディアインターフェース（ＨＤＭＩ）周辺機器（１８０）。前記ＨＤＭＩ周辺機器（１８０）のインターコネクトターケットポート（１８１）およびインターコネクトマスタポート（１８２）は共にインターコネクト（１９２）に接続されている。
●デュアルポート（１８８，１８９）ユニバーサルシリアルバス（ＵＳＢ）周辺機器（１８５）。前記ＵＳＢ周辺機器（１８５）のインターコネクトターゲットポート（１８６）およびインターコネクトマスタポート（１８７）は共にインターコネクト（１９２）に接続されている。
●集積コア（１９９）、ＭＭＵサブシステム（１９７）およびキャッシュサブシステム（１９９）を備える汎用プロセッサ（１９４）。前記汎用プロセッサ（１９４）はインターコネクトマスタポート（１９５）およびインターコネクトターゲットポート（１９６）の両方を介してインターコネクト（２９２）に接続されている。
集合的に、プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）、プログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニット、任意のブリッジ（１６０）およびインターコネクト（１９１）は、コンポジットプログラム可能なメモリ転送リクエスト処理ユニット（１６５）として集合的に記述することができる。
本模範的明細書において、プロセッサユニット（１１０）は、インターコネクトマスタ（１１１）からインターコネクト（１９０）にデータメモリ転送リクエスト、および／またはコードメモリ転送リクエストを発行することに適用する。
プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）は、書き込みポート（１２６）および読み込みポート（１２７）にわたってランタイム制御ユニット（１２２）にアクセスすることに適用する制御ユニット（１２１）を有する。ランタイム制御ユニット（１２２）は１つ以上の制御レジスタ（図示されていない）のバンクを有する。ＰＭＴＲＰユニット（１２０）はメモリストア（１２３）にアクセスすることに適用する。メモリストア（１２３）はＰＭＴＲＰユニット（１２０）のためにプログラム可能なコンフィギュレーションデータを格納することに適用する。前記プログラム可能なコンフィギュレーションデータは、少なくとも２つのプログラム可能な領域記述子要素を格納することに適用する。制御ユニット（１２１）はさらに、インターコネクト（１９０）に接続されているインターコネクトターゲット（１２８）上でメモリ転送リクエストを受信することに適用する。制御ユニット（１２１）はさらに、インターコネクト（１９２）に接続されているインターコネクトマスタ（１２９）上でメモリ転送リクエストを送信することに適用する。制御ユニット（１２１）はさらに、処理時間においてメモリストア（１２３）のプログラム可能なコンフィギュレーションデータにおいて格納される少なくとも２つのプログラム可能な領域記述子要素においてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致するインターコネクトターゲットポート（１２８）で受信する第１アドレス空間に関連するメモリ転送リクエストを処理することに適用する。
プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）は、メモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータ内に格納される領域記述子要素の部分にアクセスするためにメモリ転送リクエストを受信することに適用するインターコネクトターゲットポート（１３４）を有する。これはＰＤＭＡユニット（１４０）のインターコネクトマスタ（１４３）による前記メモリストア（１２３）内の適切なメモリロケーションへの正しい形式のメモリ転送リクエストを許可して処理する読み取り手段（１３２）および書き込み手段（１３３）を含む。
本発明の好ましい実施形態において、プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニット（１２０）のインターコネクトターゲットポート（１３４）はさらに、領域記述子でないメモリストア（１２３）において格納されるプログラム可能なコンフィギュレーションデータの部分にアクセスするためにメモリ転送リクエストを受信することに適用する。
ＰＭＴＲＰユニット（１２０）はランタイム制御ユニット（１２２）にメモリ転送リクエストを読み取りて書き込むことに適用する。インターコネクトターゲットポート（１２４）はインターコネクト（１９０）に接続される。あるいは、ＰＭＴＲＰユニット（１２０）はランタイム制御ユニット（１２２）にメモリ転送リクエストを読み取りて書き込むことに適用するインターコネクトターゲットポート（１３６）を有する。インターコネクトターゲットポート（１３６）はインターコネクト（１９２）に接続される。
プログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニット（１４０）はインターコネクト（１９１）に接続される第１インターコネクトマスタポート（１４３）、インターコネクト（１９２）に接続される第２インターコネクトマスタポート（１４４）およびインターコネクト（１９２）に接続されるインターコネクトターゲットポート（１４２）を有する。ＰＤＭＡユニット（１４０）は一方向ＦＩＦＯモジュールを利用することに適用する。ＦＩＦＯユニット（１４７）の第１ポートは第１サブ制御回路（１４５）に接続される。ＦＩＦＯユニット（１４７）の第２ポートは第２サブ制御ユニット（１４６）に接続される。第１サブ制御回路（１４５）は、インターコネクトマスタ（１４３）にメモリ転送リクエストを発行し、カウンタ（１５１）および現在のメモリアドレスインデックス（１５２）を利用することに適用する。第２サブ制御回路（１４６）はインターコネクトマスタ（１４４）にメモリ転送リクエストを発行し、カウンタ（１５３）および現在のアドレスインデックス（１５４）を利用することに適用する。
ＰＤＭＡユニット（１４０）はインターコネクトターゲットポート（１４２）上で受信する１つ以上のメモリ転送リクエストでプログラムすることに適用する。本模式図において、ＰＤＭＡユニット（１４０）は１つのプログラム可能なメモリからメモリへの転送記述子（１４８，１４９，１５０）を有する。前記メモリからメモリへの転送記述子（１４８，１４９，１５０）は、ソースメモリアドレスフィールド（１４８）、ターゲットメモリアドレスフィールド（１４９）およびメモリ転送長フィールド（１５０）の３つのフィールドを有する。メモリからメモリへの転送記述子はフィールド（１４８）、（１４９）、（１５０）の順で書き込むことによりプログラムされる。ＰＤＭＡユニット（１４０）のメモリからメモリへの転送処理は結局、書き込まれるメモリからメモリへの転送記述子の３つのフィールド（１４８，１４９，１５０）を開始する。本処理を次のように実行する。ソースアドレス（１４８）の値を２つのサブ制御回路（１４５，１４６）の１つの現在のアドレスポインタ（１５１，１５３）にロードする。ターゲットアドレス（１４９）を２つのサブ制御回路（１４５，１４６）の他方の現在のアドレスポインタ（１５１，１５３）にロードする。例えば、ソースアドレス（１４８）の高ビットを、ＰＤＭＡユニット（１４０）のどのマスタポート（１４３，１４４）と前記ソースアドレスが関連するかを示すことに用いることができる。
あるいは、ＰＤＭＡユニット（１４０）はどのマスタポートが前記ソースアドレスと関連する課を決定するために各前記マスタポート（１４３，１４４）と関連する異なるメモリアドレス範囲に対してソースアドレスを比較することに適用する。メモリ転送長フィールド（１５０）の値をさらに両方のカウンタフィールド（１５１，１５３）にコピーする。ＦＩＦＯユニット（１４７）を前記ＦＩＦＯユニットのキューに存在するデータの要素がないことを保証するためにリセットする。制御ユニット（１４１）はさらに、２つのサブ制御回路（１４５，１５６）にリクエストされたメモリからメモリへの転送処理を実行するために必要な読み込みまたは書き込みを開始することを命令する。ソースアドレスから読み込まれたメモリのワードをＦＩＦＯユニット（１４７）にプッシュする。ターゲットアドレスに書き込まれたメモリのワードをＦＩＦＯユニット（１４７）からポップする。カウンタ（２５１）および（２５３）の値を、それぞれ読み取りまたは書き込みデータの量に従って減らす。前記カウンタフィールド（１５１）がゼロである場合、サブ制御ユニット（１４５）のプロセスは完了する。前記カウンタフィールド（１５３）がゼロである場合、サブ制御ユニット（１４６）のプロセスは完了する。
図２は、本発明の好ましい実施形態に従う図１に示されたＰＭＴＲＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータにアクセスするためのアドレス空間（２０１）の分割を示すブロック図（２００）である。前記メモリアドレス空間（２０１）は１２のフィールド（２１０から２２１）に分割される。各フィールド（２１０から２２１）は３２ビット長である。前記アドレス空間（２０１）を論理的に、
●ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）のアドレス空間のシステムパートのコンフィギュレーションに関係する第１の連続したセット（２０２）の６フィールド（２１０から２１５）と、
●ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）のアドレス空間のシステムパートのコンフィギュレーションに関係する第１の連続したセット（２０３）の６フィールド（２１６から２２１）
に分割する。
フィールド（２１０）はシステムアドレス空間（２０２）に関連するコンフィギュレーションおよび／または状態情報を格納する。フィールド（２１１）から（２１４）はシステムアドレス空間に関係する少なくとも１つの領域記述子を格納することに適用する。ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（２１０）から（２１４）に書き込むことはＰＭＴＲＰ制御ユニット（１２１）に、アドレス空間のシステム部（２０２）に対するコンフィギュレーションデータが現在再プログラミングされていることを通知するように適用する。ＰＭＴＲＰユニットを、いかなる値もフィールド（２１５）に書き込むことはＰＭＴＲＰ制御ユニット（１２１）に、アドレス空間のシステム部に対するコンフィギュレーションデータが再プログラミングを終了したことを通知するように適用する。
フィールド（２１６）はユーザアドレス空間（２０３）に関連するコンフィギュレーションおよび／または状態情報を格納する。フィールド（２１６）から（２２１）はユーザアドレス空間に関連する少なくとも１つの領域記述子を格納することに適用する。ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（２１６）から（２２１）に書き込むことはＰＭＴＲＰ制御ユニット（１２１）に、アドレス空間のユーザ部（２０３）に対するコンフィギュレーションでータが現在再プログラミングされていることを通知するように適用する。ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（２２１）に書き込むことはＰＭＴＲＰ制御ユニット（１２１）に、アドレス空間のユーザ部に対するコンフィギュレーションデータが再プログラミングを終了したことを通知するように適用する。ＰＭＴＲＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータのアドレス空間（２０１）のこの新しいコンフィギュレーションは、全てのシステムデータを連続するメモリからメモリへの転送処理（フィールド２１０から２１５にわたる）を用いてアップデートし、全てのユーザデータを連続するメモリからメモリへの転送処理（フィールド２１６から２２１にわたる）を用いてアップデートし、システムデータとユーザデータの両方を連続するメモリからメモリへの転送処理（フィールド２１０から２２１にわたる）を用いてアップデートすることを可能にする。
有利には、このことは新しい方法においてＰＤＭＡユニット（１４０）によりＰＭＴＲＰユニット（１２０）の設定可能なデータの非常に速い再プログラミングを可能にする。
本発明のさらに好ましい実施形態において、装置（１００）をリセットする場合、ＰＭＴＲＰユニット（１２０）は前記ランタイム制御ユニット（１２２）の状態をリセットし、プログラム可能なコンフィギュレーションでータ（１２３）の状態をリセットする。さらに、ＰＭＴＲＰユニット（１２０）に対する処理のデフォルトモードは、マスタポート（１２９）への修正なしにターゲットポート（１２８）上で受信するメモリ転送リクエストをリレーし、ターゲットポート（１２８）への修正なしにマスタポート（１２９）上で受信するメモリ転送応答をリレーすることである。
図３は、１つのメモリからメモリへの転送処理（図１の１４８，１４９および１５０）においてＰＭＴＲＰユニット（図１の１２０）のメモリストア（図１の１２３）において格納される全てのプログラム可能なコンフィギュレーションデータにＰＤＭＡユニット（図１の１４０）により実行されるメモリからメモリへの転送処理を示すフローチャート（３００）である。ＰＭＴＲＰユニット（図１の１２０）はメモリ管理ユニットの機能を実装する。本フローチャートにおいて、ＰＭＴＲＰユニット（１２０）およびプロセッサコア（１１０）は既に初期化されている。
ラベル（３０１）はプロセッサコア（１１０）により実行されるステップのシーケンス（３０１，３０５，３０８，３１１，３１４，３３０，３３１，３３４）を示す。ラベル（３０２）はＰＤＭＡユニット（１４０）により実行されるステップのシーケンス（３０３，３０７，３１０，３１３，３１６，３１７，３２０，３２２，３２６，３３６）を示す。ラベル（３０４）はＳＤＲＡＭストア（１１５，１１８）により実行されるステップのシーケンス（３０４，３０８，３１９，３２４，３２５，３３７）を示す。
フローチャート（３００）はステップ（３０１）、（３０２）、（３０３）および（３０４）で開始する。
ステップ（３０５）において、プロセッサコア（１１０）はＰＤＭＡユニット（１４０）の「ソースメモリアドレス」フィールド（１４８）に向けられた３２ビット書き込みメモリ転送リクエストを発行する。前記メモリ転送リクエストを、ステップ（３０６）においてＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）上で受信する。ＰＭＴＲＰユニット（１２０）は、前記ターゲットポート（１２８）に関連し、メモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションでータに格納されるメモリ変換アドレスに従って、前記メモリ転送リクエストを処理する。ＰＭＴＲＰユニット（１２０）はマスタポート（１２９）、続いてインターコネクト（１９２）を通じて、前記処理したメモリ転送リクエストをＰＤＭＡユニット（１４０）に転送する。ＰＤＭＡユニット（１４０）はさらに、ステップ（３０７）において前記ターゲットポート（１４２）上で前記メモリ転送リクエストを受信する。ＰＤＭＡユニット（１４０）は前記メモリ転送リクエストのデータフィールドを前記「ソースメモリアドレス」フィールド（１４８）に書き込む。
ステップ（３０８）において、プロセッサコア（１１０）はＰＤＭＡユニット（１４０）のターゲットポート（１４２）の「ターゲットメモリアドレス」フィールド（１４９）に向けられた３２ビット書き込みメモリ転送リクエストを発行する。前記メモリ転送リクエストをＰＭＴＲＰユニット（１２０）はＰＤＭＡユニット（１４０）にステップ（３０９）において処理して転送する。ステップ（３１０）において、前記ＰＤＭＡユニット（１４０）はメモリ転送リクエストを受信し、メモリ転送リクエストのデータを「ターゲットメモリアドレス」フィールド（１４９）に書き込む。
ステップ（３１１）において、プロセッサコア（１１０）はＰＤＭＡユニット（１４０）の「メモリ転送長」フィールド（１５０）に向けられた３２ビット書き込みメモリ転送リクエストを発行する。前記メモリ転送リクエストをＰＭＴＲＰユニット（１２０）はＰＤＭＡユニット（１４０）にステップ（３１２）において処理して転送する。ステップ（３１３）において、前記ＰＤＭＡユニット（１４０）は前記メモリ転送リクエストを受信し、メモリ転送リクエストのデータを前記「長さメモリアドレス」フィールド（１５０）に書き込む。メモリ転送長フィールド（２５０）を書き込む場合にメモリからメモリへの転送処理を初期化する。
ステップ（３１４）において、プロセッサコア（１１０）は、前記ＰＭＴＲＰユニットのプログラム可能なコンフィギュレーションデータのシステム部とユーザ部の両方が完全にアップデートされた後に、読み込み応答を発行する前記ＰＭＴＲＰユニット（１２０）となるＰＭＴＲＰユニット（１２０）のターゲットポート（１２４）のアドレス空間内のメモリロケーションに向けられるリードメモリ転送リクエストを発行する。前記メモリ転送リクエストをステップ（３１５）で受信して処理する。対応するメモリ転送応答を下記のステップ（３２９）において発行する。
ステップ（３１６）において、「ソースメモリアドレス」（１４８）の値を現在のアドレスポインタ（１５３）の値としてロードする。「ターゲットメモリアドレス」（１４９）の値を現在のアドレスポインタ（１５１）の値としてロードする。「メモリ転送長」（１５０）の値をカウンタフィールド（１５１）の値およびカウンタフィールド（１５３）の値としてロードする。ＦＩＦＯユニット（１４７）を、前記ＦＩＦＯユニットのキューに存在するデータの要素がないことを保証するためにリセットする。サブ制御回路（１４５）に、ソースメモリから読み取りたデータの処理を開始するように命令する。サブ制御回路（１４６）に、ターゲットメモリに書き込んだデータの処理を開始するように命令する。
ステップ（３１７）において、サブ制御回路（１４６）はリクエストされたメッセージ長（１５９）の第１の半分を読み出すためにポート（１４４）にわたるバーストメモリ読み取りメモリ転送リクエストを発行する。バーストメモリ転送リクエストは、２つ以上のデータのワード上で処理することに適用するメモリ転送リクエストである。前記バースト読み取りメモリ転送リクエストは「現在のアドレスポインタ」（１５１）の値を使用する。前記読み込みバーストメモリ転送リクエストをステップ（３１８）においてＳＤＲＡＭストアにより受信して処理する。リクエストされたデータをＳＤＲＡＭストアがＰＤＭＡユニット（１４０）のマスタポート（１４４）にバーストメモリ転送応答の形でステップ（３１９）において発行する。
ステップ（３２０）において、ＰＤＭＡユニット（１４０）はリクエストされたデータを含むマスタポート（１４４）上の読み込みバーストメモリ転送応答を受信する。前記データをＦＩＦＯユニット（１４７）にプッシュする。「現在のアドレスポインタ」（１５４）の値は増加し、カウンタ（１５３）の値は受信したデータの量に従って減少する。
ステップ（３２０）において、サブ制御ユニット（１４５）は前記データをＦＩＦＯユニット（１４７）からポップし、「現在のアドレスポインタ」（１５２）を用いてＰＭＴＲＰユニット（１２０）のターゲットポート（１３４）に向けられた書き込みバーストメモリ転送リクエストを発行する。「現在のアドレスポインタ」（１５１）の値は増加し、カウンタ（１５２）の値は書き込んだデータ量に従って減少する。
ステップ（３２１）において、ＰＭＴＲＰユニット（１２０）はターゲットポート（１３４）上で前記バースト書き込みメモリ転送リクエストを受信し、メモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションでータに書き込んで読み出す。ＰＭＴＲＰ制御ユニット（１２１）は、システムおよびメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションでータのユーザ部がアップデートされる場合にアクティブに追跡し、システムのコンフィギュレーションおよび前記プログラム可能なコンフィギュレーションでータのユーザ部が図２を記述するテキストに示されるようにファイナライズされる場合にアクティブに追跡する。
ステップ（３２２）において、ＰＤＭＡユニット（１４０）はステップ（３１７）で発行された前記バーストメモリ読み取りメモリ転送リクエストによりリクエストされた全てのデータを受信した。サブ制御回路（１４６）はリクエストされたメモリ長（１５０）の第２の半分を読み出すために、ポート（１４４）によりバーストメモリ読み取りメモリ転送リクエストを発行する。前記バースト読み取りメモリ転送リクエストは「現在のアドレスポインタ」（１５１）の値を使用する。
ステップ（３２２）において、ＰＤＭＡユニット（１４０）のサブ制御ユニット（１４５）は、ＦＩＦＯユニット（１４７）に格納されるいかなる顕著なデータもＰＭＴＲＰユニット（１２０）に転送することを続ける。これは必要に応じて追加の書き込みメモリ転送リクエストを発行してもよいし、そうでなくてもよい。
ステップ（３２４）において、ステップ（３２２）で発行した読み取りバーストメモリ転送リクエストをＳＤＲＡＭストアにより受信して処理する。ステップ（３２５）において、リクエストしたデータをＳＤＲＡＭストアがＰＤＭＡユニット（１４０）のマスタポート（１４４）にバーストメモリ転送応答として発行する。
ステップ（３２６）において、ＰＤＭＡユニット（１４０）はデータをＰＭＴＲＰユニット（１２０）に転送することを続ける。前記カウンタ（１５３）の値がゼロである場合、ＰＤＭＡユニット（１４０）のサブ制御回路（１４６）は終了する。サブ制御回路（１４６）および（１４５）の両方が終了する場合、ＰＤＭＡユニット（１４０）のメモリからメモリへの転送処理は完了したことになる（少なくともＰＤＭＡユニットに関する限り）。
ステップ（３２７）において、ＰＭＴＲＰユニット（１２０）はＰＤＭＡユニット（１４０）のマスタポート（１４３）により発行されたものとして書き込みメモリ転送データを受信して処理することを続ける。
ステップ（３２８）において、ＰＭＴＲＰユニット（１２０）は再プログラミンを完了した。ＰＭＴＲＰユニット（１２０）はＰＭＴＲＰユニットのメモリストア（１２３）のプログラム可能なコンフィギュレーションでコード化されたポリシーに従って、ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）上で受信されたメモリ転送リクエストを処理する。
ステップ（３２９）において、ＰＭＴＲＰユニット（１２０）のランタイム制御ユニット（１２２）はプロセッサコア（１１０）に読み取りデータフィールドにおいて値１で読み取りメモリ転送応答を送信する。これはプロセッサコアに、ＰＭＴＲＰユニット（１２０）が完全に再プログラムされたことを通知する。ステップ（３３０）において、プロセッサコア（１１０）は前記メモリ転送応答を受信する。
ステップ（３３１）において、プロセッサコア（１１０）はＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）の入力アドレス空間に向けられる書き込みメモリ転送リクエストを発行する。ステップ（３２２）において、前記書き込み転送リクエストをＰＭＴＲＰユニット（１２０）のターゲットポート上で受信し、ＰＭＴＲＰユニットのメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータに現在格納されるポリシーに従って前記制御ユニット（１２１）で処理する。
フローチャートはラベル（３３４）、（３３５）、（３３６）および（３３７）において終了する。
本発明の別の好ましい実施形態において、図１のＰＭＴＲＰユニット（１２０）は図１のプロセッサコア（１１０）と確実に接続され、図１のメモリストア（１１２）は図１のインターコネクト（１９０）から切り離されて図１のインターコネクト（１９２）に接続され、図１のＰＭＴＲＰユニット（１２０）のバスターゲット（１２４）を利用せず、図１のＰＭＴＲＰユニット（１２０）のバスターゲットを利用する。
３２ビットおよび６４ビット入力アドレス空間において比較的ファイングレインメモリ割り当てに対するサポートで、低レイテンシで、ハイスループットで、一定時間の処理を有するＭＭＵアーキテクチャに対する長年の必要性がある。
図４は、図１のＰＭＴＲＰユニット（１２０）がメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する本発明の好ましい実施形態を部分的に示すハイブリッドのブロック概略図およびデータフロー図である。
ＭＭＵ（１２０）は入力アドレス空間（４１４）に関連する少数のセグメント記述子がある大きな入力アドレス空間（例えばこの場合では３１ビット入力アドレス空間（４１４））で用いるために適用する新規の単一レベルのダイレクトインデックスセグメントベースのメモリアドレス変換方式を利用し、各セグメント記述子は前記セグメント内でファイングレインメモリ割り当て（５３３）をサポートする。この新規メモリアドレス変換スキームは、限定されないが、図６および図８を参照して記述されるものを含む、メモリ編成方式の範囲で用いるためのものである。特に、図８を参照して記述される新規のメモリ編成方式は、大きな入力アドレス空間および（ｂ）ファイングレインなメモリ割り当てのための手段を供給する少数の領域記述子の組合せを利用して、別の単一レベルのダイレクトインデックスメモリアドレス変換方式［１］［２］に関連するアドレス空間のサイズスケーリング問題に予期しない解決法を供給する。有利なことに、ＰＭＴＲＰユニット（１２０）の１つのハードウェアの実装は、図６および図８において記述されるメモリ編成方式の両方をサポートすることができる。
この方式は出力アドレス空間より大きい、同じまたは小さい大きな入力アドレス空間で用いるために平凡に適用する。
ＰＭＴＲＰユニット（１２０）の領域記述子はセグメント記述子（４３０）に対して示されるように、フィールドでセグメント記述子を記述することに適用する。
ラベル（４１０）はＰＭＴＲＰユニット（１２０）のインターコネクトターゲットポート（１２８）上で受信するメモリ転送リクエストのフィールドを示す。前記メモリ転送リクエスト（４１０）はフィールド（４１１）、（４１２）および（４１４）で示される。フィールド（４１１）は前記メモリ転送リクエスト（４１０）のために３ビット制御フィールドをコード化する。これらの３つのビットは「データのための読み取り」、「書き込み」および「実行するための読み取り」処理をそれぞれコード化する。フィールド（４１２）は前記メモリ転送リクエスト（４１０）に対してシステムレベル特権またはユーザレベル特権のどちらかを示す１ビットの特権値をコード化する。フィールド（４１４）は入力アドレス空間において３１ビット入力アドレスの値をコード化する。３１ビット入力アドレス（４１４）の５つの最上位ビット（４１５）をセグメントインデックスセレクタとして利用する。３１ビット入力アドレス（４１４）の残りの２６ビット（４１６）を前記セグメント（４１５）内のディスプレースメントオフセットとして利用する。
単一レベルのダイレクトインデックスセグメント記述子ルックアップモジュール（４２０）は、ランタイムでプログラムすることができる３２セグメント記述子のテーブルを格納する。前記テーブルのセグメント記述子をＰＭＴＲＰユニット（１２０）のインターコネクトターゲットポート（１２８）上で受信するメモリ転送リクエストの入力アドレス（６１４）の上位５ビット（６１５）によりランタイムでインデックスする。
各セグメント記述子は、セグメント記述子（４３０）により示されるように、５つのフィールド（４３１）、（４３２）、（４３４）、（４３５）および（４３６）からなる。セグメント記述子（４３０）は合計６４ビット長である。本発明の本実施形態において、前記セグメント記述子（４３０）は２∧３１バイトのストレージをアドレスすることができる３１ビット出力アドレス空間もサポートする。セグメント記述子（４３０）のフィールド（４３１から４３６）は次のとおりである。フィールド（４３１）は前記セグメント記述子に関連する６ビットのメタデータをコード化する。フィールド（４３２）は変換されたアドレス空間内で２９ビット長のディスプレースメントオフセットをコード化する。フィールド（４３２）のビット数を減少することにより、入力アドレス空間がマッピングすることができる物理的アドレス空間サイズを低減する。前記結果、これはセグメント記述子を格納することに必要なハードウェアリソースを低減することができる。フィールド（４３４）は８バイト粒度により２４ビットで割り当てられたセグメント長をコード化する。フィールド（４３３）は論理的に２４ビットで割り当てられたセグメント長を２４ビットで割り当てられたセグメント長値（４３７）に伸ばす。特に、バイナリ値ゼロを前記２９ビットで割り当てられたセグメント長値（４３７）の各上位５ビット（４３３）に格納する。フィールド（４３５）はユーザ特権アクセスに対して３ビットパーミッションフィールドをコード化する。これらの３つのビットは「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをそれぞれコード化する。フィールド（４３６）はシステム特権アクセスに対して３ビットパーミッションフィールドをコード化する。これらの３つのビットは「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをそれぞれコード化する。
セグメント記述子ルックアップモジュール（４２０）の出力をメモリ転送リクエストリアセンブリおよびパーミッションチェックモジュール（４４０）への入力として供給する。前記モジュール（４４０）は、メモリ転送リクエスト（４１０）の３１ビットディスプレースメントフィールド（４１６）の２９の最上位ビット（４１７）を入力として受信し、前記セグメント記述子（４３０）に対する変換アドレス空間内で２９ビットディスプレースメントオフセット（４３２）を入力として受信し、さらに変換されたメモリ転送リクエスト（４１３）の３１ビットアドレス（４５４，４５４）の最上位２９ビット（４５４）として利用される出力として２９ビット値を生成する２９ビットワイド算術加算処理を備える。
メモリ転送リアセンブリおよびパーミッションチェックモジュール（４４０）はさらに、
●メモリ転送リクエスト（４１０）のディスプレースメントオフセット（４１６）の値がメモリ転送リクエスト（４１０）に関連するセグメント記述子（４３０）の２９ビットセグメント長（４３７）より小さいまたは同じであることをチェックし、メモリ転送リクエスト（４１０）の３ビット制御フィールド（４１１）および１ビット特権フィールド（４１２）がフィールド（４３５）においてコード化され、メモリ転送リクエスト（４１０）に関連するセグメント記述子（４３０）のパーミッションポリシーにより許可されることをチェックする、
パーミッションチェックモジュール（４４２）を備える。本発明の好ましい実施形態において、前記フォールト信号はプロセッサコア（１１０）に発行されるインタラプトとなってよい。
前記セグメント記述子（４３０）のメタバイトフィールド（４３１）の値を変換メモリ転送リクエスト（４１３）のメタフィールド（４５３）として利用する。本発明の好ましい実施形態において、メタデータフィールド（４３１）は、
●追加のメモリアドレス変換手段によるメモリアドレス変換の追加のレベルを条件的に可能にする単一ビットカスケードフィールドと、
●キャッシュモードの選択（例えばライトスルー、ライトバック）およびメモリ一貫性を保持するためのメモリオーダ要件を含む、メモリサブシステムを制御するための４ビット
をコード化することに適用する。
メモリ転送リクエスト（４１０）の３ビット処理（４１１）および１ビット特権フィールド（４１２）の値（４１３）を、変換されたメモリ転送リクエスト（４１３）の３ビット処理（４５１）および１ビット特権フィールド（４３５）の値としてそれぞれ供給する。
入力メモリ転送リクエスト（４１０）のアドレス（４１６）の下位の２ビット（４１８）の値を変換されたメモリリクエスト（４５０）の下位の２ビット（４５４）の値として供給する。
図５は、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（１２０）の制御ユニット（１２１）により実行されるメモリアドレス変換処理のステップを示すフローチャート（５００）である。
フローチャートはステップ（５０１）で開始する。
ステップ（５０２）において、メモリ転送リクエストをポート（１２８）上のＰＭＴＲＰユニット（１２０）の制御ユニット（１２１）により受信する。
ステップ（５０３）において、前記メモリ転送リクエスト（４１０）のアドレス（４１４）の５つの最上位ビット（４１５）をセグメント記述子ルックアップモジュール（４２０）へのインデックスとして供給する。セグメント記述子ルックアップモジュール（４２０）は、前記インデックス値に関連するセグメント記述子（４３０）の値を出力としてリリースする。セグメント記述子ルックアップモジュール（４２０）の出力をリアセンブリおよびパーミッションチェックモジュール（４４０）により受信する。
ステップ（５０４）において、パーミッションチェックモジュール（４４２）はステップ（５０２）で受信したメモリ転送リクエスト（４１４）とステップ（５０３）において発行された対応するセグメント記述子の間で一貫性チェックを実行する。
ステップ（５０５）において、ステップ（５０４）の一貫性チェックが失敗した場合、ステップ（５０６）に移動し、そうでない場合はステップ（５０９）に移動する。
ステップ（５０６）において、ポート（４４３）上でパーミッションチェックフォールトイベント信号を生成する。
ステップ（５０７）において、ステップ（５０２）において受信したメモリ転送リクエスト（４１０）が書き込みメモリ転送リクエストである場合はステップ（５１５）に移動し、そうでない場合はステップ（５０８）に移動する。
ステップ（５０８）において、書き出すメモリ転送応答を発行する。値ゼロを前記メモリ転送応答のデータフィールドに格納する。インターコネクトプロトコルがケーパビリティをオファーする場合、前記メモリ転送リクエストに対するエラー状態に戻る。ステップ（５１５）に移動する。
ステップ（５０９）において、図４を記述するテキストにおいて記述されるように、２９ビットワイド追加処理（４４１）を実行し、変換されたメモリ転送リクエスト（４５０）のフィールドを組み立てる。
ステップ（５１０）において、ステップ（５０２）において受信したメモリ転送リクエストが書き込みメモリ転送リクエストである場合はステップ（５１１）に移動し、そうでない場合はステップ（５１２）に移動する。
ステップ（５１１）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で書き込みメモリ転送リクエストを発行する。ステップ（５１５）に移動する。
ステップ（５１２）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で読み取りメモリ転送リクエストを発行する。
ステップ（５１３）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で対応する読み取りメモリ転送応答を受信する。
ステップ（５１４）において、ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）上でステップ（５１３）において受信した前記読み取りメモリ転送応答の結果を転送する。
フローチャートはステップ（５１５）で終了する。
図６は、本発明の好ましい実施形態に従う、入力アドレス空間（６１０）と変換されたアドレス空間（６３０）の間のセグメントベースのアドレス変換方式のマッピング例を示すブロック図（６００）である。本図において、入力アドレス空間（６１０）は長方形（６１０）の左上角においてゼロで開始し、前記長方形（６１０）の右下角で終了する。本図（６００）において、ターゲットアドレス空間（６３０）は長方形（６３０）の左上角においてゼロで開始し、前記長方形（６３０）の右下角で終了する。線形入力アドレス空間（６１０）を同じ長さのＮ＝８のパーティションに再分割する（６１１から６１８）。本図において、入力アドレス空間パーティションにおけるセグメントのオフセットを８バイト粒度（例えばラベル６３２）の出力アドレス空間のいかなる位置にもマッピングすることができる。セグメントの割り当てられた長さはさらに８バイト粒度（例えばラベル６３４、８３７、８３８）を有する。
パーティション（６１１）に対するセグメント記述子を、前記パーティション（６１１）の全体長さを割り当て、ターゲットアドレス空間（６３０）において、前記ベースオフセットを高いアドレス（６３１）に変換するとして示す。パーティション（６１２）に対するセグメント記述子は前記パーティション（６１２）の上部を割り当て、ターゲットアドレス空間（６３０）において前記ベースオフセットを高いアドレス（６３２）に変換する。第１セグメント（６１１）および第２セグメント（６１２）の割り当てられた部分は入力アドレス空間において連続している。パーティション（６１３）に対するセグメント記述子は前記パーティションのどの部分も割り当てない。（６１４）に対するセグメント記述子は前記パーティション（６１４）の上部を割り当て、ターゲットアドレス空間（６３０）において前記ベースオフセットを同じアドレス（６３４）に変換する。
パーティション（６１５）に対するセグメント記述子は前記パーティションのどのメモリも割り当てない。パーティション（６１６）に対するセグメント記述子は前記パーティションのどのメモリも割り当てない。
（６１７）に対するセグメント記述子は前記パーティション（６１７）の上部における小領域を割り当て、ターゲットアドレス空間（６３０）において前記ベースオフセットを低いアドレス（６３７）に変換する。（６１８）に対するセグメント記述子は前記パーティション（６１８）の上部における小領域を割り当て、ターゲットアドレス空間において前記ベースオフセットを低いアドレス（６３８）に変換する。本図において、パーティション（６１７）に対するセグメント記述子を、ユーザがメモリの前記割り当てられた領域に書き込むことを可能にするパーミッションアクセスポリシーで適用し、パーティション（６１８）に対するセグメント記述子を、アンキャッシュユーザが変換されたアドレス空間の同じ部分に読み出すことを可能にするパーミッションアクセスポリシーで適用する。
このようにして、入力アドレス空間において全ての可変長セグメントは、前記セグメント記述子の遅延が少なく効率的ハードウェアのインデックスを可能にするパーティション境界で開始する（図２１のラベル１２３で示されるような範囲記述子のテーブルを利用することと比較する場合）。セグメントの割り当てられた長さの８バイト粒度およびディスプレースメントオフセットの８バイト粒度は、複数の従来のＭＭＵにおいてみられるような４キビバイト長ページで可能であるよりも、変換されたメモリアドレス空間により効率的な入力アドレス空間のパッキングを可能にする。変換されたアドレス空間へのマッピングのファイン粒度は、かなり制限されたメモリストレージケーパビリティを有するエンベッドマイクロアプリケーションにおいて特に望ましい。
図７は、［３］の図６−１に示されるようなＤＥＣ  ＶＡＸ−１１／７６０に対する単一レベルのダイレクトマッピングページベースの方式の入力アドレス空間（７０１）の編成を示すブロック図（６７０）である。各ページ記述子を３２入力アドレス空間の５１２バイトの連続領域にマッピングする。入力アドレス空間（７０１）を処理空間（７０２）およびシステム空間（７０２）に等しく分割する。ユーザ空間（７０２）をＰ０と呼ばれる第１領域（７１０）およびＰ１と呼ばれる第２領域（７１１）に動的に分割する。領域Ｐ０はユーザ空間の上部で開始して下向きに成長する。領域Ｐ１はユーザ空間の底部で開始して上向きに成長する。システム空間（７０３）を「システム領域」および「予約領域」と呼ばれる第１領域（７１２）に動的に分割する。システム領域（７１２）はシステム空間の上部で開始して下向きに成長する。このメモリ編成を、メモリアドレス変換［３］をサポートする３つの領域（Ｐ０、Ｐ１およびシステム領域）のためのページ記述子を格納する単一レベルのダイレクトインデックステーブルのサイズを制限するためにＤＥＣが選択した。
図８は、本発明の好ましい実施形態に対する単一レベルのダイレクトマッピングされたセグメントベース方式に対する入力空間（７０１）の新規編成を示すブロック図（６７０）である。本例においてＮ＝８のセグメント（８１１から８１８）に等しく分割されたＭビット入力アドレス空間（８０１）を考える。上位４セグメント（８１１，８１２，８１３，８１４）はシステム空間（８０３）に関連し、下位４セグメント（８１５，８１６，８１７，８１８）はユーザ空間（８０２）に関連する。
入力アドレス空間がＭ＝３２ビットである場合、単一領域記述子は変換されたアドレス空間の５１２メビバイトをマッピングすることができる。リアルタイムのエンベッドシステムの大多数は５１２メビバイトより少ない物理メモリを有する。この場合において、それらのエンベッドシステムは物理メモリのストレージキャパシティ全体を１つの領域記述子にマッピングすることができる。このことは、物理メモリのいかなる連続する領域にもアクセスするために２つ以上のセグメント記述子をマッピングする必要性を回避する。多くのセーフティクリティカルリアルタイムオペレーティングシステムは、電源をオンにする場合にＲＴＯＳ上で走る各アプリケーションに利用可能にメモリを統計的に割り当てる。これは、システム空間および前記ＲＴＯＳインスタンスの各アプリケーション空間に対する多くの領域記述子を、前記デバイスの電源がオンになる前に統計的に作ることができることを意味する。例えば、ＲＴＯＳの実行可能なコードをシステム特権読み取り用パーミッションアクセスでパーティション（８１１）によりマッピングすることができる。ＢＳＳ、Ｓｔａｃｋｓおよび前記ＲＴＯＳのＨｅａｐをシステム特権読み取り／書き込みパーミッションアクセスによりパーティション（８１２）にマッピングすることができる。セグメント（８１３）はプロセッサコアによって実行されるメモリからメモリへのコピー機能をサポートするために、入力アドレス空間においてメインメモリ全体を連続したメモリ領域にマッピングすることができる。セグメント（８１４）は電源を入れた時にマッピングしないままであることができる。第１アプリケーションの実行可能なコードをユーザ特権読み取り用パーミッションアクセスによりパーティション（８１５）にマッピングすることができる。ＢＳＳ、Ｓｔａｃｋおよび前記第１アプリケーションのＨｅａｐをユーザ特権読み取り／書き込みパーミッションアクセスによりパーティション（８１６）にマッピングすることができる。第１アプリケーションと第２アプリケーションの間で共有されるメモリの第１領域を、セグメント（８１７）においてユーザ特権読み取り／書き込みパーミッションアクセスによりマッピングすることができる。第１アプリケーションと第２アプリケーションの間で共有されるメモリの第２領域を、セグメント（８１８）においてユーザ特権読み取り用パーミッションアクセスによりマッピングすることができる。この静的マッピングはランタイムにおいてダイナミックマッピングも実行するケーパビリティを妨げない。
Ｎ＝８からＮ＝１６に領域記述子の数が増加することはメモリの非常に微妙な編成をサポートする一方で、システム空間（８０２）およびユーザ空間（８０３）の両方に対して非常に小さい領域記述子テーブルを維持する。領域記述子テーブルの完全なコンテンツを低レイテンシでハイスループットのアクセスに対してオンチップＳＲＡＭに容易に格納することができる。３２ビットから６４ビットへの入力アドレス空間のサイズを増加させる一方で、同時にターゲットアドレス空間定数のサイズを保持することは、領域記述子テーブルのストレージ要件を増加しない。
大きな入力アドレス空間のために新規なセグメンテーション方式を利用する当社のＰＭＴＲＰユニットで共に設計されたこの新規メモリ編成（８００）は、非常に小さい回路領域オーバーヘッドにより一定時間のメモリアドレス変換を可能にし、リソースが制限されたセーフティクリティカルサイバーフィジカルアプリケーションに利用的に適合する。
本発明の好ましい実施形態において、４キキバイトの固定されたページベースのＭＭＵ方式を条件的にイネーブルなメモリアドレス変換手段の第２レベルとして利用する。
２階層のアドレス変換をサポートする長年の必要性があり、各アドレス変換のレベルは統計的に時間解析可能なリアルタイムシステムに適切な異なるソフトウェアの制御下（例えばハイパーバイザは第１レベルのＭＭＵ方式を制御し、ハイパーバイザ上でホストするオペレーティングシステムは第２レベルのＭＭＵ方式を制御する）にある。
図９は本発明の好ましい実施形態に従う２階層のメモリ管理手段を示すブロック図（９００）である。図（９００）はＰＭＴＲＰユニット（９１０）およびＭＭＵ（９２０）を示す。
本発明の好ましい実施形態において、ＰＭＴＲＰユニット（９１０）のプログラム可能なコンフィギュレーションデータのコンテンツをプロセッサコア上で走るソフトウェアハイパーバイザにより制御する。プロセッサコアは前記ＰＭＴＲＰユニット（９１０）のプログラム可能なコンフィギュレーションを構成するために、ＰＭＴＲＰユニット（９１０）のターゲットポート（９１１）に１つ以上のメモリ転送リクエストを発行する。
ＭＭＵユニット（９２０）のプログラム可能なコンフィギュレーションデータのコンテンツをバーチャルマシンおよび前記ハイパーバイザの実行ソフトウェアにおいてハイパーバイザ上でホストするオペレーティングシステムにより一緒に制御する。前記ソフトウェアハイパーバイザ上で走るオペレーティングシステムは、オペレーティングシステムがそれ自身の内部処理に必要なポリシーを定義する。それらのポリシーをＰＭＴＲＰユニット（９１０）のターゲットポート（９１２）にコード化して書き込む。さらにそれらのポリシーをハイパーバイザの実行ソフトウェアにより制御されるＰＭＴＲＰユニット（９１０）におけるポリシーにより変換する。それらの変換されたポリシーをさらにＰＭＴＲＰユニット（９１０）により、前記ＭＭＵユニット（９２０）のプログラム可能なコンフィギュレーションデータに書き込む。
特に、ＰＭＴＲＰユニット（９１０）はＰＭＴＲＰユニット（９１０）のプログラム可能なコンフィギュレーションデータにおいてコード化されたポリシーに従って、前記ターゲットポート（９１２）上で受信したメモリ転送リクエストを受信して処理することに適用する。ＰＭＴＲＰユニット（９１０）のプログラム可能なコンフィギュレーションデータにおけるそれらのポリシーは、ターゲットポート（９１２）上で受信して、前記ターゲットポート（９２１）上でＭＭＵ（９１０）のプログラム可能なコンフィギュレーションデータに書き込むように意図される１つ以上の領域記述子のメモリアドレス変換をどのように実行するかをコード化する。これらの変換されたポリシーをさらにＰＭＴＲＰユニット（９１０）により、ターゲットポート（９２１）を用いてＭＭＵユニット（９２０）のプログラム可能なコンフィギュレーションデータに書き込む。
例えば、ＰＭＴＲＰユニット（９１０）においてコード化されたポリシーは、全てのそれらのアドレスをマスターポート（９２３）の変換されたアドレス空間に変換するために相対オフセットに沿ってターゲットポート（９２２）上で受信するメモリ転送リクエストによりアクセスすることができるターゲットポート（９２２）の入力アドレス空間の連続領域を特定してよい。
ＭＭＵ（９２０）は前記ターゲットポート（９２２）上でメモリ転送リクエストを受信し、ＭＭＵユニット（９２０）のプログラム可能なコンフィギュレーションデータにおいてコード化されるポリシーに従ってそれらのアドレスを変換することに適用する。
このようにして、ＭＭＵ（９２０）のプログラム可能なコンフィギュレーションデータに書き込まれたメモリアドレス変換は２階層のメモリアドレス変換をシリアルに実行することに論理的に等しい（ソフトウェアハイパーバイザレベルのメモリアドレス変換により従うオペレーティングシステムレベルのメモリアドレス変換）。有利なことに、２階層のアドレス空間変換は単一レベルのアドレス空間変換のレイテンシによりＭＭＵ（９２０）によりランタイムで影響を受け得る。
図１０は本発明の好ましい実施形態に従う、メモリ転送リクエスト（１０１０）およびメモリ変換応答（１０４０）において存在してよいさまざまなフィールドを示すブロック図（１０００）である。
メモリ転送リクエスト（１０１０）に関して、オプションフィールド（１０１１）はインターコネクトマスタデバイスのグループを識別するデバイスグループ識別子をコード化する。オプションフィールド（１０１２）はデバイスタイプ（ネットワークインターフェース、グラフィックプロセッサユニットなどのような）をコード化する。オプションフィールド（１０１３）はデバイス識別子をコード化する。オプションフィールド（１０１４）は、このメモリ変換リクエストのコンシステンシポリシー（アンキャッシュ、デフォルトキャッシュポリシー、書き込み専用キャッシュ、ライトバックキャッシュなどのような）を示す。オプションフィールド（１０１５）はメモリオーダリングポリシー（トータルのストアオーダ、リラックスメモリオーダ、パーシャルストアオーダなど）をコード化する。オプションフィールド（１０１６）はインターコネクトロックリクエストフラグをコード化する。オプションフィールド（１０１７）は「データのための読み取り」処理をコード化する。オプションフィールド（１０１８）は「書き込み」処理をコード化する。オプションフィールド（１０１９）は「実行のための読み込み」処理をコード化する。オプションフィールド（１０２０）はこのメモリ転送リクエストの長さをコード化する。オプションフィールド（１０２１）はこのメモリ転送リクエストに関連するアドレス空間記述子をコード化する。フィールド（１０２２）はアクセスするためのメモリのアドレスをコード化する。オプションフィールド（１０２３）は書き込みメモリ転送リクエストの一部として書き込むためにデータをコード化する。オプションフィールド（１０２４）は書き込みメモリ転送リクエストのためにバイトイネーブルマスクをコード化する。オプションフィールド（１０２５）はこのメモリ転送リクエストの特権レベルをコード化する。
メモリ転送応答（１０４０）に関して、オプションフィールド（１０４１）は関連するメモリ転送リクエスト（１０１０）のための結果コードをコード化する。オプションフィールド（１０４２）はこれに関連する読み取りデータが有効であるかどうかを示す１ビット値をコード化する。オプションフィールド（１０４３）は読み取りメモリ転送リクエスト（１０１０）に関連する読み取りデータを格納する。オプションフィールド（１０４４）は読み取りバイトイネーブルマスクをコード化する。
本発明の好ましい実施形態において、ＰＭＴＲＰユニット（１２０）はメモリ転送リクエスト（１０１０）の１つ以上のフィールド（１０１２）を用いて前記ターゲットポート（１２８）上で受信するメモリ転送リクエストを発行する発信インターコネクトマスタを識別するための手段に適用する。本発明の好ましい実施形態において、ＰＭＴＲＰユニット（１２０）は前記メモリ転送リクエスト（１０１０）の１つ以上のフィールド（１０１１）を用いて前記ターゲットポート（１２８）上で受信するメモリ転送リクエストを発行する発信インターコネクトマスタのデバイスグループを識別するための手段に適用する。本発明の好ましい実施形態において、ＰＭＴＲＰユニット（１２０）は前記メモリ転送リクエスト（１０１０）の１つ以上のフィールド（１０１２）を用いて前記ターゲットポート（１２８）上で受信するメモリ転送リクエストを発行する発信インターコネクトマスタのデバイスグループを識別するための手段に適用する。本発明の好ましい実施形態において、ＰＭＴＲＰユニット（１２０）は前記メモリ転送リクエストの１つ以上のフィールド（１０１１，１０１２，１０１３，１０２１）を用いて前記ターゲットポート（１２８）上で受信するメモリ転送リクエストでアドレス空間記述子を結び付けるための手段に適用する。本発明の好ましい実施形態において、ポリシーを少なくとも１つの領域記述子においてコード化し、ＰＭＴＲＰユニット（１２０）のプログラム可能なコンフィギュレーションデータはターゲットポート（１２８）上で受信したメモリ転送リクエストの１つ以上のフィールド（１０１１，１０１２，１０１３，１０１６，１０２１）と関連する。
３２ビットおよび６４ビット入力アドレス空間において、比較的ファイングレインメモリ割り当てに対するサポートにより、低レイテンシで、ハイスループットで、一定の時間の処理を有するＭＭＵアーキテクチャに対して長年必要とされてきた。さらにより迅速なタスクスワッピングおよび改善されたシステムパフォーマンスをサポートするためにリアルタイム環境において時間解析可能な方法で低レイテンシにより領域記述子の再プログラミングを低コストで加速するための手段に対して長年必要とされてきた。ＰＭＴＲＰユニット（１２０）をページベースのＭＭＵ方式で採用する図１の好ましい実施形態について述べる。
図１１は、図１のＰＭＴＲＰユニット（１２０）を分割された単一レベルのダイレクトインデックスのページベースメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する、本発明の好ましい実施形態（１１００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。本図において、ＰＭＴＲＰユニット（１２０）は８のパーティション（１１５１から１１５８）を利用する。これらの８のパーティション（１１５１から１１５８）を８つの独立したメモリ転送リクエスト処理領域として記述することができる。各それらのパーティションを６４の領域記述子の単一レベルのダイレクトインデックステーブルによりバックアップする。各それらの５１２の領域記述子はファイングレインのメモリ割り当てを備える可変長ページ記述子である。各それらの５１２の領域記述子を１つの物理メモリストアに格納することができる。
ラベル（１１０１）はＰＭＴＲＰユニット（１２０）のインターコネクトターゲットポート上で受信したメモリ転送リクエストのフィールドを示す。
前記メモリ転送リクエスト（４１０）をフィールド（１１０６）、（１１０７）、（１１０２）および（１１０５）で示す。フィールド（１１０６）は２ビット特権フィールドを次の３つの特権でコード化する。つまり、ソフトウェアのためのユーザ特権、ソフトウェアのためのスーパバイザ特権、およびインターコネクトマスタ周辺機器のためのアクセス特権である。
フィールド（１１０７）は３ビットにおいて５つの空間の１つの選択をコード化する。
フィールド（１１０２）は３２ビット入力アドレスをコード化する。３２ビット入力アドレスの２つの最上位ビット（１１１０）は、前記アドレス空間（１１２０）を４つの空間に細分化する。つまり、インターコネクトマスタプライベート空間（１２１１）、システム空間（１１２２）、高ユーザ空間（１１２３）および低ユーザ空間（１１２４）である。３２ビット入力アドレス（１１０２）の次の６つの重要なビット（１１１１）は各空間（１１２１，１１２２，１１２３，１１２４）を６４の空間に細分化する。３２ビット入力アドレス（１１０２）の残りの２４ビット（１１１２）は３２ビット入力アドレス（１１０２）の上位８ビット（１１０３）内でオフセットを供給する。
フィールド（１１０５）は前記メモリ転送リクエスト（４１０）に対して３ビット制御フィールドをコード化する。これらの３ビットは「データのための読み取り」、「書き込み」、および「実行のための読み取り」処理をそれぞれコード化する。
パーティション選択モジュール（１１３０）は入力としてフィールド（１１０６）、（１１０７）、（１１１０）および（１１１１）の値を受信する。パーティション選択モジュール（１１３０）は以下を行うことに適用する。
●パーティション選択中にフォールトを示す出力（１１４０）をリリースする。
●メモリアドレス変換が必要でないことを示す出力（１１３１）をリリースする。前記出力を入力としてリアセンブリおよびパーミッションチェックモジュール（１１７０）に供給する。
●メモリ転送リクエスト（１１０１）の３２ビットアドレス（１１０２）の変換のために８つのパーティション（１１５１から１１５８）のどのパーティションを使用するかを示す出力をリリースする。前記出力を入力として分割された１階層のダイレクトインデックスページ記述子クックアップモジュール（１１５０）に供給する。
分割された１階層のダイレクトページ記述子ルックアップモジュール（１１５０）は８つのパーティション（８つの独立したメモリ転送リクエスト処理領域）を有する。各それらの８つのパーティションはランタイムでプログラムすることができる６４のページ記述子のテーブルを有する。メモリアドレス変換を実行する場合に利用するパーティションの選択を、ターゲットポート（１２８）上で受信する各メモリ転送リクエスト（１１０１）に対してパーティション選択モジュール（１１３０）によりランタイムで行う。
本発明の好ましい実施形態において、メモリ転送リクエスト（１１０１）の５つの空間（１１０７）を分割された１階層のダイレクトマッピングされたページ記述子ルックアップ（１１５０）にマッピングすることを、パーティション選択モジュール（１１３０）の実装により静的に行う。このシンプルな性的マッピングを低ハードウェア回路リソースで、ランタイムにおいて非常に速いスピードで組合せ論理を用いて容易に実装することができる。
図１１のパーティション選択モジュール（１１３０）内に描かれている矢印は、次の入力空間およびパーティションの模式的マッピングを示す。
●インターコネクトマスタプライベート空間（１１２１）をいかなる８つのパーティション（１１５１から１１５８）にもマッピングしない。
●システムレベル空間（１１２２）を常にパーティション（１１５８）にマッピングする。本発明の好ましい実施形態において、前記メモリ転送リクエスト（１１０１）の特権レベル（１１０６）がシステムレベル特権を有さない場合にフォールト（１１４０）を送る。
●メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値が０である場合、低ユーザ空間（１１２４）をパーティション（１１５１）にマッピングし、高ユーザ空間（１１２３）をパーティション（１１５２）にマッピングする。このようにして、ユーザ空間（１１２３，１１２４）全体を割り当てることができる。
●メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値が１である場合、低ユーザ空間（１１２４）をパーティション（１１５３）にマッピングし、高ユーザ空間（１１２３）をパーティション（１１５４）にマッピングする。このようにして、ユーザ空間全体を割り当てることができる。
●メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値が２である場合、低ユーザ空間（１１２４）をパーティション（１１５５）にマッピングし、高ユーザ空間（１１２３）をいかなるパーティションにもマッピングしない。
●メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値が３である場合、低ユーザ空間（１１２４）をパーティション（１１５６）にマッピングし、高ユーザ空間（１１２３）をいかなるパーティションにもマッピングしない。
●メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値が４である場合、低ユーザ空間（１１２４）をパーティション（１１５７）にマッピングし、高ユーザ空間（１１２３）をいかなるパーティションにもマッピングしない。
プロセッサコア上で走るソフトウェアは、
●パーティション選択モジュール（１１３０）により管理されるメモリ転送リクエスト（１１０７）の５つの空間（１１０７）に実行するシステムにより管理されるアドレス空間をマッピングすることと、
●分割された１階層のダイレクトマッピングページ記述子ルックアップモジュール（１１５０）のページ記述子をプログラミングすることと、
●前記実行システムのアドレス空間コンテキストスワップ中にメモリ転送リクエスト（１１０７）の空間選択フィールド（１１０７）に供給する値を変えることと、
に対して責任がある。
実行システム上で走る低メモリストレージ要求を備える５つの直近のスケジュールされたユーザアプリケーションを、パーティション選択モジュール（１１３０）のいかなる５つの空間にもマッピングすることができる。
それらの５つの空間の間の非常に低いレイテンシのタスクスワッピングを、メモリ転送リクエスト（１１０７）の空間選択フィールド（１１０７）に供給する値を単に変化させることにより、実行システムで達成することができる。例えば、プロセッサコア（１１０）を、メモリ転送リクエストを発行する場合にプロセッサコアにより使用される空間選択フィールド（１１０７）の値を決定するコンフィギュレーションレジスタで適用してよい。実行システム上で走る高メモリストレージ要求を備える２つの直近のスケジュールされたユーザアプリケーションを、ページ記述子ルックアップモジュール（１１５０）の２つのパーティションにマッピングするパーティション選択モジュール（１１３０）の２つの空間にマッピングすることができる。
ページ記述子ルックアップモジュール（１１５０）は、選択したページ記述子の値を入力としてリアセンブリおよびパーミッションチェックモジュール（１１７０）にリリースすることに適用する。
リアセンブリおよびパーミッションチェックモジュール（１１７０）はさらに、入力として２ビット特権フィールド（１１０６）の値、３ビット空間セレクタフィールド（１１０７）、３２ビット入力アドレスの８つの最上位ビット（１１０３）、３２ビット入力アドレスの２４の最下位ビット（１１１２）および入力メモリ転送リクエスト（１１０１）の３ビット制御フィールド（１１０５）を受信する。リアセンブリおよびパーミッションチェックモジュールは、
●メモリ転送リクエストの処理中にフォールトを示す単一ビット出力（１１７２）をリリースし、
●変換されたメモリ転送リクエストの値を出力（１１７３）としてリリースし、
●メモリアドレス変換の追加レベルが変換されたメモリ転送リクエストに対して必要であることを示す単一ビットカスケード出力（１１７１）をリリースする、
ことに適用する。
変換されたアドレス空間（１１９０）は、
●変換されたアドレス空間（１１９０）の上位１／４（１１９１）が入力アドレス空間（１１２０）のインターコネクトマスタプライベート空間（１２１１）と１対１で関連し、
●変換されたアドレス空間（１１９０）の下位３／４（１１９１）が入力アドレス空間（１１２０）のシステム空間（１１２２）、高ユーザ空間（１１２３）および低ユーザ空間（１１２４）と関連する、
ことを示す。
図１２は、図１のＰＭＴＲＰユニット（１２０）はメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する、本発明の好ましい実施形態を部分的に示すハイブリッドブロック概略図およびデータフロー図である。前記ＭＭＵは大きな入力アドレス空間および比較的少量のページ記述子を備える単一レベルのダイレクトインデックスのページベースのメモリアドレス変換方式を利用する。
本方式を出力アドレス空間より大きい、同じまたは小さい大きな入力アドレスで用いるために適用することができる。
この場合、ＰＭＴＲＰユニット（１２０）の領域記述子は、ページ記述子（１２１０）により示されるようにページ記述子をコード化することに適用する。図１２は、図１１を示すテキストに示されるように、メモリ転送リクエスト（１１０１）および前記フィールド（１１０２）、（１１０３）、（１１０４）、（１１０５）、（１１０６）、（１１０７）および（１１２９）を利用する。図１２はさらに図１１を示すテキストに示されるように、パーティション選択モジュール（１１３０）、分割された１階層ダイレクトインデックスページルックアップモジュール（１１２９）および前記出力（１１３１）、（１１４０）、（１１７１）および（１１７２）を利用する。
ページ記述子（１２１０）により示されるように、各ページ記述子は７つのフィールド（１１２１）、（１２１２）、（１２１３）、（１２１４）、（１２１５）、（１２１６）および（１２１７）からなる。ページ記述子（１２１０）は３２ビットの全長を有する。前記ページ記述子（１２１０）は２∧３２バイトの入力アドレス空間をサポートし、２∧３２バイトの出力アドレス空間をサポートする。本ページ記述子（１２１０）のフィールドは次のとおりである。
●フィールド（１２１１）は、別のレベルのメモリアドレス変換がこのページ記述子と関連するメモリ転送リクエストに対して必要であるかを示す１ビットカスケードフィールドである。
●フィールド（１２１２）は１２の異なるページ長をコード化することができる４ビット値をコード化する。本図において、ページ長は、４キキバイト、１６キキバイト、３２キキバイト、６４キキバイト、１２８キキバイト、２５６キキバイト、５１２キキバイト、１メビバイト、２メビバイト、４メビバイト、８メビバイトおよび１６メビバイトである。
●フィールド（１２１３）は８ビットフレーム識別子をコード化する。
●フィールド（１２１４）はフレーム内で１２ビット長ディスプレースメントオフセットをコード化する。ビット数（つまり１２ビット）はフィールド（１２１２）の異なるページ長（つまり１２ページ長）の数に対応する。
●フィールド（１２１５）はユーザ特権ソフトウェアアクセスに対する３ビットパーミッションフィールドをコード化する。これらの３つのビットは「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをそれぞれコード化する。
●フィールド（１２１６）はシステム特権ソフトウェアアクセスに対する２ビットパーミッションフィールドをコード化する。これらの２つのビットは「いかなる目的のための読み取り」または「書き込み」パーミッションをそれぞれコード化する。
●フィールド（１２１７）はシステム特権周辺機器アクセスに対する２ビットパーミッションフィールドをコード化する。これらの２ビットは「データのための読み取り」および「書き込み」パーミッションをそれぞれコード化する。
メモリ転送リクエスト（１１０１）の３２ビットアドレスフィールド（１１０２）は論理的に２つのフィールドに分割される。
●ページ識別子をコード化する最上位８ビット（１１０３）。
●３２ビットアドレス（１１０２）の別の２４ビット（１１０４）はページ（１１０３）内でディスプレースメントをコード化する。これらの２４ビット（１１０１４）を、ページ内のディスプレースメントの１２の最上位ビット（１２０１）と、ページ内のディスプレースメントの１２の最下位ビット（１２０２）とに細分化する。
ページ記述子ルックアップモジュール（図１１の１１２９および図１２の１１２９）の出力を入力として、メモリ転送リクエストリアセンブリおよびパーミッションチェックモジュール（図１１の１１７０および図１２の１１７０）に供給する。モジュール（図１２の１１７０）は、以下を行う１２ビット幅組合せ処理を備える。
●メモリ転送リクエスト（１１０１）のページ（１１０３）内のディスプレースメントの１２の最上位ビット（１２０１）を入力として受信する。
●フレーム（１２１４）内で１２ビット長ディスプレースメントオフセットを入力として受信する。
●パススルー信号（１１３１）の値が１である場合、
2018523247.tif 000008
上位ビット（１２０１）を出力（１２８６）としてリリースし、
2018523247.tif 000009
メントの１２の最上位ビット（１２０１）をフレーム（１２１４）内で１２ビット長ディスプレースメントオフセットと組合せ、前記組合せの結果を出力（１２８６）としてリリースする。本発明の好ましい実施形態において、１２ビット幅の算術加算を組合せ関数として利用する。別の機能の組合せは、限定されないが、１２ビット幅ＸＯＲ、またはどのフィールド（１２０１）のビットまたはどの（１２１４）のビットを出力としてリリースするかを決定するために長さフィールド（１２１２）の値を用いる組合せ関数を含む。
メモリ転送リクエストリアセンブリおよびパーミッションチェックモジュール（１１７０）はさらに以下を行うパーミッションチェックモジュール（１２７４）を備える。
●メモリ転送リクエスト（１１０１）のページ内のディスプレースメントの１２の最上位ビット（１２０１）の値が、前記メモリ転送リクエスト（１１０１）と関連するページ記述子（１２１０）のページ長より少ないか等しいことを確認する。
●メモリ転送リクエスト（１１０１）の制御フィールド（１１０５）および特権フィールド（１１０６）が、前記メモリ転送リクエスト（１１０１）に関連するページ記述子（１２１０）のフィールド（１２１５，１２１６，１２１７）においてコード化されるパーミッションポリシーにより許可されることを確認する。前記パーミッションチェックが失敗した場合、フォールト信号を投げる（１１７２）。
本発明の好ましい実施形態において、フォールト信号（１１４０）または（１１７２）のアクティベーションにより、プロセッサコア（１１０）に発行される中断イベントとなる。
変換されたメモリ転送リクエスト（１２８０）の値を次のように生成する。変換されたメモリ転送リクエスト（１２８０）の制御フィールド（１２８１）の値を入力メモリ転送リクエスト（１１０１）の制御フィールド（１１０５）の値に設定する。変換されたメモリ転送リクエスト（１２８０）の特権フィールド（１２８２）の値を入力メモリ転送リクエスト（１１０１）の特権フィールド（１１０６）の値に設定する。変換されたメモリ転送リクエスト（１２８０）のオプションの空間選択フィールド（１２８３）の値を入力メモリ転送リクエスト（１１０１）の空間選択フィールド（１１０７）の値に設定する。パススルー信号（１１３１）の値が１である場合、変換されたメモリ転送リクエスト（１２０５）のアドレスフィールド（１２８４，１２８５）の８ビットフレームフィールド（１２８４）の値を入力メモリ転送リクエスト（１１０２）のフレームフィールド（１１０３）の値に設定する。そうでない場合、変換されたメモリ転送リクエスト（１２８０）のアドレスフィールド（１２８４，１２８５）の８ビットフレームフィールド（１２８４）の値を、前記メモリ転送リクエスト（１１０１）に関連するページ記述子（１２１０）のフレーム識別子（１２１３）の値に設定する。変換されたメモリ転送リクエスト（１２８０）のアドレスフィールド（１２８４，１２８５）の２４ビットディスプレースメントフィールド（１２８５）の最上位１２ビットの値を１２ビット幅の組合せ処理モジュール（１２７３）の出力（１２８６）の値に設定する。変換されたメモリ転送リクエスト（１２８０）のアドレス（１２８４，１２８５）の２４ビットディスプレースメントフィールド（１２８５）の最下位１２ビットの値をメモリ転送リクエスト（１１０１）の最下位の１２ビットのアドレスフィールド（１１０４）の値に設定する。
図１３は、図１１および図１２に示されるような、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（図１の１２０）の制御ユニット（図１の１２１）により実行されるメモリアドレス変換処理を示すフローチャート（１３００）である。
フローはステップ１３０１で開始する。
ステップ（１３０２）において、メモリ転送リクエストをターゲットポート（１２８）上の制御ユニット（１２１）で受信する。
ステップ（１３０３）において、パーティション選択モジュール（１１３０）は、もしあればどのパーティションが前記メモリ転送リクエストに関連しているかを決定するためにメモリ転送リクエスト（１１０１）を処理する。パーミッションチェックをシステム空間（１１２２）に向けられたメモリ転送リクエストに関して実行する。さらにチェックを高ユーザ空間（１１２４）に向けられたメモリ転送リクエストおよび前記高ユーザ空間（１１２４）にマッピングしたパーティションのアヴェイラビリティに関して実行する。
ステップ（１３０４）において、フォールトがステップ（１３０３）中に生成される場合はステップ（１３０８）に移動し、そうでない場合はステップ（１３０５）に移動する。
ステップ（１３０５）において、ステップ（１３０３）において選択されたパーティションをパーティションインデックスとして分割された単一レベルのダイレクトインデックスページ記述子ルックアップモジュール（１１５０）に供給する。各４つの空間（図１１の１１２１、１１２２、１１２３および１１２４）を６４の空間に細分化するメモリ転送リクエスト（１１１０２）の３２ビットアドレスフィールド（１１０２）の６ビット（１１１１）をページインデックスとして、前記分割されたページ記述子ルックアップモジュール（１１５０）に供給する。ページ記述子ルックアップモジュールはリクエストされたページ記述子の値を取り込み、出力として前記値をリリースする。ページ記述子ルックアップモジュールの出力を入力としてリアセンブリおよびパーミッションチェックモジュール（１１７０）により受信する。
ステップ（１３０６）において、パーミッションチェックモジュール（図１２の１２７４）は、ステップ（１３０２）において受信されたメモリ転送アドレスとステップ（１３０５）において発行されたページ記述子との間でコンシステンシチェックを実行する。
ステップ（１３０７）において、ステップ（１３０６）において実行されたコンシステンシチェックが失敗した場合にはステップ（１３０８）に移動し、そうでない場合はステップ（１３１１）に移動する。
ステップ（１３０８）において、フォールト信号（１１４０または１１７２上）を生成する。
ステップ（１３０９）において、ステップ（１３０２）において受信されたメモリ転送リクエストが書き込みリクエストである場合はステップ（１３０７）に移動し、そうでない場合はステップ（１３１０）に移動する。
ステップ（１３１０）において、データフィールドにおいて値ゼロで読み取りメモリ転送宝刀を発行する。インターコネクトプロトコルがケーパビリティをオファーする場合、前記メモリ転送リクエストのためにエラーステータス（図１０の１０４１）に戻る。ステップ（１３１７）に移動する。
ステップ（１３１１）において、１２ビット幅のマージ処理（１２７３）を実行し、変換されたメモリ転送リクエスト（１２８０）のフィールドを生成する。
ステップ（１３１２）において、ステップ（１２０２）において受信されたメモリ転送リクエストが書き込みリクエストである場合はステップ（１３１３）に移動し、そうでない場合はステップ（１３１４）に移動する。
ステップ（１３１３）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で書き込みメモリ転送リクエストを発行する。ステップ（１３１７）に移動する。
ステップ（１３１４）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で読み取りメモリ転送リクエストを発行する。
ステップ（１３１５）において、ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）上で対応する読み取りメモリ転送応答を受信する。
ステップ（１３１６）において、ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）上で前記読み取りメモリ転送応答の結果を転送する。
フローチャートはステップ（１３１７）で終了する。
かなりリソースが制限されたエンベッドマイクロ環境において、ＰＭＴＲＰユニット（図１の１２０）に専ら向けられたハードウェアリソースの量を低減する必要性がある。特に、Ｌｉｎｕｘのような汎用のオペレーティングシステムをサポートするページベースのＭＭＵ方式を走らせる必要があるリソース制限された環境（モノのインターネットのような）において、従来のページベースのＭＭＵよりも少ない実行するハードウェア回路領域を必要とし、さらにユーザアドレス空間コンテキストスワップの後に迅速なソフトウェアの実行をサポートする新規のＭＭＵアーキテクチャに対して長年必要とされてきた。さらに、変換ルックアサイドバッファを利用するＭＭＵ方式に対してタスクコンテキストスイッチの後にソフトウェアのパフォーマンスを改善する必要性もある。さらに、迅速なタスクスワッピングおよび改善されたシステムパフォーマンスをサポートするためにリアルタイム環境において時間解析可能な方法により低レイテンシで領域記述子の再プログラミングを低コストで加速する手段に対して長年必要とされていた。
図１２を参照して、本発明の別の好ましい実施形態で次の修正を行う。
●２ビットフィールド（１２１６）および２ビットフィールド（１２１７）を利用しない。システム特権を備えるソフトウェアには全てのデータにアクセスすることを許可する。周辺機器には全てのデータにアクセスすることを許可する。
●フィールド（１２１２）は２５６ビットの異なるページ長をコード化することができる８ビット値をコード化する。第１セットの１２８ページ長（０から１２７の値を備える）は４キキバイトの粒度を有し、４ＫＢから５１２ＫＢの範囲をマッピングする。第２セットの１２８ページ長（１２８から２５５の値を備える）は１２８ＫＢの粒度を有し、１２８ＫＢから１６メビバイトの範囲をマッピングする。
この別のコンフィギュレーションはページ記述子（１２１０）に対してメモリ割り当ての改善された粒度を供給する一方で、３２ビットの記述子長を保持する。現在のリソース制限されたエンベッドマイクロアプリケーションにおける多くのアプリケーションでは５１２ＫＢより少ないメモリを必要とするため、４ＫＢ粒度で物理メモリに効率的にマッピングをすることができる。必要な場合には、ページ長（１２１２）の粒度およびディスプレースメントオフセット（１２１４）の粒度を技術者が容易に増加することができる。
ＰＭＴＲＰユニット（１２０）のマスタポート（１２９）により少なくとも１つのメモリ転送リクエストを生成して送信し、前記マスタポート（１２９）上で対応する応答を受信することにより、ＰＭＴＲＰユニット（１２０）を少なくとも２つのプログラム可能な領域記述子の少なくとも２つのセット（２つのテーブルとして実行してよい）へのアクセスをキャッシュする手段で適用する、図１の好ましい実施形態を述べる。この特定の適用は、キャッシュされた領域記述子を、変換されたメモリ転送リクエストを向けてよい同じメモリストア（１７０）に直接格納することを可能にする。特に、これらのキャッシュされた領域記述子テーブルを２階層の変換ルックアサイドバッファ方式を実装するために用い、第１レベルのキャッシュされたＴＬＢエントリをＰＭＴＲＰユニットのプログラム可能なコンフィギュレーションデータに格納する。第２レベルのＴＬＢエントリをＰＭＴＲＰユニットのプログラム可能なコンフィギュレーションデータから分離することにより、各ユーザアドレス空間は比較的大きくて安価なメインメモリに格納される自身専用の第２レベルの変換ルックアサイドバッファテーブルを有することを可能にし、コンテキストスワップ後により高い第２レベルのＴＬＢヒットレートとなる。例えば、ＴＬＢルックアップの第１レベルはキャッシュされたＴＬＢ記述子の完全に関連するルックアップを利用し、ＴＬＢルックアップの第２レベルはキャッシュされたＴＬＢ記述子の単一レベルのダイレクトインデックスルックアップを利用することができる。本発明の好ましい実施形態において、個別のユーザアドレス空間を有する各ソフトウェアアプリケーションは、キャッシュされたＴＬＢ記述子の単一レベルのダイレクトインデックスルックアップの地震専用のテーブルを有する。
図１４は、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータにアクセスするためのアドレス空間（１４００）の分割を示すブロック図である。図１４において、前記メモリアドレス空間（１４００）を２３のフィールド（１４０１から１４２３）に分割する。各２３のフィールド（１４０１から１４２３）は３２ビット長である。前記アドレス空間（１４００）を論理的に、
●ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）のアドレス空間のシステム部のコンフィギュレーションに関連する第１の連続する６フィールド（１４０１から１４０６）のセットと（１４３１）、
●ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）のアドレス空間のユーザ部のコンフィギュレーションに関連する第２の連続する６フィールド（１４０７から１４１３）のセット（１４３２）と、
●ＰＭＴＲＰユニット（１２０）のターゲットポート（１２８）のアドレス空間のシステム部またはユーザ部のどちらからのコンフィギュレーションに関連する第３の連続する６フィールド（１４１４から１４２３）のセット（１４３３）と、
に分割する。
第１の連続するフィールドセットは以下を備える。
●第１システム領域記述子テーブルに関連するコンフィギュレーションメタデータをコード化する１６ビット長フィールド（１４０１．ａ）。第１システム領域記述子テーブルのベースアドレスオフセットを３２長フィールド（１４０２）に格納する。
●第２システム領域記述子テーブルに関連するコンフィギュレーションメタデータをコード化する１６ビット長フィールド（１４０１．ｂ）。第２システム領域記述子テーブルのベースアドレスオフセットを３２ビット長フィールド（１４０３）に格納する。
●システム領域のための第２レベルのアドレス変換をコード化するフィールド（１４０４および１４０５）。特にフィールド（１４０４）は第１レベルの変換されたアドレス空間内でシステムアドレス空間の最大長をコード化し、フィールド（１４０５）は第２レベルの変換されたアドレス空間内でシステムアドレス空間のディスプレースメントオフセットをコード化する。
ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（１４０１，１４０２，１４０３，１４０４，１４０５）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、アドレス空間のシステム部に対するコンフィギュレーションデータを現在再プログラミングしているということを通知するように適用する。ＰＭＴＲＰユニット（１２１）を、いかなる値もフィールド（１４０６）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、アドレス空間のシステム部に対するコンフィギュレーションデータは再プログラミンを終了したことを通知するように適用する。
第２の連続するフィールドセット（１４３１）は以下を備える。
●第１ユーザ領域記述子テーブルに関連するコンフィギュレーションメタデータをコード化する１６ビット長フィールド（１４０７．ａ）。第１ユーザ領域記述子テーブルのベースアドレスオフセットを３２ビット長フィールド（１４０８）に格納する。
●第２ユーザ領域記述子テーブルに関連するコンフィギュレーションメタデータをコード化する１６ビット長フィールド（１４０７．ｂ）。第２ユーザ領域記述子テーブルのベースアドレスオフセットを３２ビット長フィールド（１４０９）に格納する。
●フィールド（１４１０）をハッシュインデックスの１階層記述子テーブルにおいてコード化される領域記述子と入力アドレス空間の領域を関連付けるためのハッシュ変換を計算することを実行システムがアシストすることに用いる。ハッシュに対する値をフィールド（１４１０）に書き込む。ハッシュされた値をさらにフィールド（１４１０）から読み取る。
●ユーザ領域に対して第２レベルのアドレス変換をコード化するフィールド（１４１１）から（１４１２）。特にフィールド（１４１１）は第１レベルの変換されたアドレス空間内でユーザアドレス空間の最大長をコード化し、フィールド（１４１２）は第２レベルの変換されたアドレス空間内でユーザアドレス空間のディスプレースメントオフセットをコード化する。
ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（１４０７，１４０８，１４０９，１４１０，１４１１，１４１２）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、アドレス空間のユーザ部に対するコンフィギュレーションデータを現在再プログラミングしているということを通知するように適用する。ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（１４０６）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、アドレス空間のユーザ部に対するコンフィギュレーションデータは再プログラミンを終了したことを通知するように適用する。
第３の連続するフィールドセット（１４３１）は以下を備える。
●第１の１２８ビット長キャッシュライン（１４１５から１４１８）。
●第２の１２８ビット長キャッシュライン（１４１９から１４２２）。
●第１キャッシュライン（１４１５から１４１８）および第２キャッシュライン（１４１９から１４２２）のためにタグデータをコード化するフィールド（１４１４）。
ＰＭＴＲＰユニット（１２０）を、いかなる値もフィールド（１４１４，１４１５，１４１６，１４１７，１４１８，１４１９．１４２０，１４２１，１４２２）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、キャッシュに対するコンフィギュレーションデータを現在再プログラミングしているということを通知するように適用する。ＰＭＴＲＰユニットを、いかなる値もフィールド（１４１３）に書き込むことが、ＰＭＴＲＰ制御ユニット（１２１）に対して、キャッシュ対するコンフィギュレーションデータは再プログラミンを終了したことを通知するように適用する。
本発明の好ましい実施形態において、ＰＭＴＲＰユニット（１２０）のプログラム可能なコンフィギュレーションデータのキャッシュフィールド（１４３３）は領域記述子に対する変換ルックアサイドバッファを実装することに適用し、
●第１の１２８ビット長キャッシュライン（１４１５から１４１８）は第１の１２８ビット長領域記述子を格納することに適用し、
●第２の１２８ビット長キャッシュライン（１４１９から１４２２）は第２の１２８ビット長領域記述子を格納することに適用する。
本発明の好ましい実施形態において、２つの１２８ビット長領域記述子を、ユーザ空間またはシステム空間に関連する領域記述子をキャッシュすることに用いる。
図１５は、本発明の好ましい実施形態に従う図１４において利用する１６ビット幅のコンフィギュレーションメタデータフィールド（１５１０）を示すブロック図である。前記コンフィギュレーションメタデータフィールド（１５１０）をＰＭＴＲＰユニット（１２０）のメモリストア（１２３）において格納されるプログラム可能なコンフィギュレーションデータのフィールド（１４０１．ａ，１４０２．ｂ，１４０７．ａ，１４０７．ｂ）において利用する。１６ビットコンフィギュレーションメタデータフィールド（１５１０）のフィールドは以下を備える。
●このコンフィギュレーションメタデータに関連する領域記述子テーブルが有効であるかどうかを示す１ビット長フィールド（１５１１）。
●線形ダイレクトマッピングまたは非線形ダイレクトマッピングインデックス方式を領域記述子の前記テーブルにおいて領域記述子にアクセスするために利用するかどうかを示す１ビット長フィールド（１５１２）。
●テーブルにおいて領域記述子の数をコード化する３ビット長フィールド（１５１３）。本発明の好ましい実施形態において、領域記述子の数を８，１６，３２，６４，１２８，２５６，５１２および１０２４の領域記述子の８つのテーブル長の１つから選択することができる。
●領域記述子のコード化フォーマットを示す３ビット長フィールド（１５１４）。コード化フォーマットの５つの例は以下を含む。
2018523247.tif 000010
●記述子のタイプに最も適切な最大ページ長または最大セグメント長を示す６ビット長フィールド（１５１５）。本発明の好ましい実施形態において、６ビットバイナリ値００００００は十進法の値１をコード化し、６ビット値１１１１１１は十進法の値６４をコード化する。最大長フィールドの値を、値２の、前記６ビットフィールドの十進法の値のべき乗（∧）として計算する。前記６ビット長フィールドの十進法の値が３２である場合、最大長を（２∧３２）＝４ギビバイトとして計算する。
●追加の長さチェックを第１アドレス変換処理が完了した後に利用するかどうかを示す１ビット長フィールド（１５１６）。
●第２アドレス変換を第１アドレス変換処理が完了した後に利用するかどうかを示す１ビット長フィールド（１５１７）。
図１６は、本発明の好ましい実施形態に従う図１４において利用された領域記述子（１６００）を示すブロック図である。
領域記述子（１６００）を３２ビット長ページ記述子として構成する場合、図１６のフィールドを、この領域記述子が有効であるかどうかを示す１ビット長フィールド（１６１１）、周辺機器は同時に「データのための読み取り」および「書き込み」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１２）、スーパバイザソフトウェアは同時に「データのための読み取り」、「書き込み」および「実行のための読み取り」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１３）、ユーザソフトウェアに対してぞれぞれ「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをコード化する３ビット長フィールド（１６１４）、このページのためにフレーム識別子をコード化する２６ビット長フィールド（１６１５）として利用する。フィールド１６２１，１６２２，１６２３，１６２４，１６２５，１６３１，１６３５，１６４０）は利用していない。
領域記述子（１６００）を６４ビット長セグメント記述子として構成する場合、図１６のフィールドを、この領域記述子が有効であるかどうかを示す１ビット長フィールド（１６１１）、周辺機器は同時に「データのための読み取り」および「書き込み」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１２）、スーパバイザソフトウェアは同時に「データのための読み取り」、「書き込み」および「実行のための読み取り」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１３）、ユーザソフトウェアに対してそれぞれ「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをコード化する３ビット長フィールド（１６１４）、６４バイト粒度を備えるこの領域ための変換されたアドレス空間内のディスプレースメントをコード化する２６ビット長フィールド（１６１５）、６４バイト粒度を備えるこのセグメントの割り当てられた部分の長さをコード化する２６ビット長フィールド（１６２５）として利用する。フィールド（１６２１，１６２２，１６２３，１６２４）は今後の利用のために予約する。フィールド（１６２５，１６３１，１６３５，１６４０）は利用しない。
領域記述子（１６００）を６４ビット長キャッシュページ記述子として（構成する場合、図１６のフィールドを、この領域記述子が有効であるかどうかを示す１ビット長フィールド（１６１１）、周辺機器は同時に「データのための読み取り」および「書き込み」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１２）、スーパバイザソフトウェアは同時に「データのための読み取り」、「書き込み」および「実行のための読み取り」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１３）、ユーザソフトウェアに対してそれぞれ「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをコード化する３ビット長フィールド（１６１４）、６４バイト粒度を備えるこの領域ための変換されたアドレス空間内のディスプレースメントをコード化する２６ビット長フィールド（１６１５）、６４バイト粒度を備えるこのセグメントの割り当てられた部分の長さをコード化する２６ビット長フィールド（１６２５）、このキャッシュ領域記述子のためのデータ書き込み（ダーティ）フラグをコード化する１ビット長フィールド（１６２１）、このキャッシュ領域記述子のためのデータ読み取りフラグをコード化する１ビット長フィールド（１６２２）、この領域記述子に関連する領域内でメモリロケーションに向けられたメモリ転送リクエストに用いるキャッシュポリシーをコード化する１ビット長フィールド（１６２３）として利用する。フィールド（１６２４）は今後の利用のために予約する。フィールド（１６２５，１６３１，１６３５，１６４０）は利用しない。
領域記述子（１６００）を１２８ビット長キャッシュセグメント記述子として構成する場合、図１６のフィールドを、この領域記述子が有効であるかどうかを示す１ビット長フィールド（１６１１）、周辺機器は同時に「データのための読み取り」および「書き込み」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１２）、スーパバイザソフトウェアは同時に「データのための読み取り」、「書き込み」および「実行のための読み取り」がこの領域記述子に関連するメモリの領域にアクセスすることを可能にするかどうかを示す１ビット長フィールド（１６１３）、ユーザソフトウェアに対してそれぞれ「データのための読み取り」、「書き込み」および「実行のための読み取り」パーミッションをコード化する３ビット長フィールド（１６１４）、６４バイト粒度を備えるこの領域ための変換されたアドレス空間内のディスプレースメントをコード化する２６ビット長フィールド（１６１５）、このキャッシュ領域記述子のためのデータ書き込み（ダーティ）フラグをコード化する１ビット長フィールド（１６２１）、このキャッシュ領域記述子のためのデータ読み取りフラグをコード化する１ビット長フィールド（１６２２）、この領域記述子に関連する領域内でメモリロケーションに向けられたメモリ転送リクエストに用いるキャッシュポリシーをコード化する１ビット長フィールド（１６２３）、６４バイト粒度を備えるこのセグメントの割り当てられた部分の長さをコード化する２６ビット長フィールド（１６２５）、６４バイト粒度を備えるこのセグメントの割り当てられた部分の長さをコード化する２６ビット長フィールド（１６３５）として利用する。フィールド（１６２４）は今後の利用のために予約する。フィールド１６３１，１６４０）は今後の使用のために予約する。
領域記述子（１６００）を３２ビット長テーブル記述子として構成する場合、図１６のフィールドを、この領域記述子が有効であるかどうかを示す１ビット長フィールド（１６１１）、領域記述子のテーブルのアドレス（変換されたアドレス空間において）をコード化する２６ビット長フィールドとして利用する。フィールド（１６１２，１６１３，１６１４）は今後の使用のために予約する。
本発明の好ましい実施形態において、Ｎビット長領域記述子をメモリにおいて整列したＮビットである。
図１７は、図１、１４、１５および１６を参照として示されるような、本発明の好ましい実施形態に従う装置（１７００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。図１７のプロセッサコア（１１０）および前記マスタポート（１１１）は図１に示されるものである。図１７のＰＭＴＲＰユニット（１２０）および前記関連のラベル（１２１，１２３，１２８，１２９，１３０，１３１，１３４，１３０）は図１に示されるものである。装置（１７００）はさらに、コア（１１０）上のＩＲＱターゲットポート（１７１１）およびＩＲＱターゲットポート（１７１１）に接続されるＰＭＴＲＰユニット（１２０）上のＩＲＱマスタポート（１７２８）を備える。
ＰＭＴＲＭＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータを図１４に述べるテキストに従って適用する。
ラベル（１７１０）はシステム空間（１７１１）およびユーザ空間（１７１２）に等しく分割された入力アドレス空間を示す。ラベル（１７２０）は変換されたアドレス空間を示す。ＰＭＴＲＰユニットのマスタポート（１２９）により発行されたメモリ転送リクエストは、前記変換されたアドレス空間（１７２０）に向けられたものである。
ラベル（図１７の１４０２）は第１システム領域記述子テーブルフィールド（図１４の１４０２）のベースアドレスオフセットは８つの領域記述子を格納するシステム領域記述子テーブルに関連していることを示す。ポート（１２８）の入力アドレス空間（１７１０）のシステム空間（１７１１）は変換されたアドレス空間（１７２０）に格納された第１システム領域記述子テーブル（１４２１）に関連している。
ラベル（図１７の１４０８）は第１ユーザ領域記述子テーブルフィールド（図１４の１４０８）のベースアドレスオフセットが８つの領域記述子を格納するユーザ領域記述子テーブル（１４２２）に関連していることを示す。ポート（１２８）の入力アドレス空間（１７１０）のユーザ空間（１７１２）は変換されたアドレス空間（１７２０）に格納された第１ユーザ領域記述子テーブル（１４２２）に関連する。
ラベル（図１７の｛１４１５から１４１８｝）はユーザ領域記述子テーブル（１４２３）の領域記述子の１つを図１４の第１の１２８ビット長キャッシュライン（｛１４１５から１４１８｝）にキャッシュすることを示す。本実施形態において、領域記述子テーブル（１４２３）は１６の領域記述子を格納する。ユーザ空間（１７１２）は変換されたアドレス空間（１７２０）に格納されたユーザ領域記述子テーブル（１４２３）に関連する。
領域（１７２５）は第１の１２８ビット長キャッシュライン（｛１４１５から１４１８｝）にキャッシュされた領域記述子に関連する。ユーザ空間（１７１２）は変換されたアドレス空間（１７２０）に格納された領域（１７２５）に関連する。
本発明の好ましい実施形態において、システム領域記述子テーブル（１４２１）を次２つの方式の１つで構成する。
●単一レベルダイレクトマッピング・インデックスセグメントテーブル方式。
●２階層ＴＬＢ方式のために領域記述子を格納する単一レベルダイレクトマッピング・インデックスキャッシュページテーブル方式。
本発明の好ましい実施形態において、領域記述子テーブル（１４２２）は第１レベルの２階層ダイレクトマッピングインデックステーブル方式をコード化し、領域記述子テーブル（１４２３）は第２レベルの２階層ダイレクトマッピングインデックステーブル方式をコード化する。
本発明の好ましい実施形態において、第１レベルの２階層ダイレクトマッピングインデックステーブル方式および第２レベルの２階層ダイレクトマッピングインデックステーブル方式を、２階層テーブルルックアップ処理中に同じキャッシュライン（｛１４１５から１４１８｝）に順次ロードする。
本発明の好ましい実施形態において、ＰＭＴＲＰユニット（図１７の１２０）の制御ユニット（図１７の１２１）を追加のバスマスタインターフェース（１７２９）で適用する。ＰＭＴＲＰユニット（図１７の１２１）をさらに２つの異なるメモリストアに同時に格納される２つの領域記述子要素を読み取るために変換されたアドレス空間（１７２０）に２つの同時アクセスを発行するための手段で適用する。
図１８は、図１４、１５、１６および１７に従うＰＭＴＲＰユニット（図１７の１２１）の制御ユニット（図１７の１２１）により実行されるメモリアドレス変換処理を示すフローチャート（１８００）である。本模式的フローチャートにおいて、ＰＭＴＲＰユニットは単一レベルのダイレクトマッピング領域記述子テーブルをクエリすることだけに適用する。
フローチャートはステップ（１８０１）で開始する。
ステップ（１８０２）において、メモリ転送リクエストをターゲットポート（１２８）上のＰＭＴＰユニット（１２０）により受信する。
ステップ（１８０３）において、キャッシュタグデータフィールド（図１４の１４１４）のコンテンツおよび２つの１２８ビットキャッシュラインフィールド（｛１４１５から１４１８｝）と（｛１４１９から１４２２｝）を、もしあれば、２つの１２８ビットキャッシュラインのどちらがこのメモリ転送リクエストに関連するかを決定するためにクエリを行う。
ステップ（１８０４）において、どちらのキャッシュラインもこのメモリ転送リクエストに関連していない場合はステップ（１８０５）に移動し、そうでない場合はステップ（１８０９）に移動する。
ステップ（１８０５）において、図１４の第１システム領域記述子テーブル（１４０１．ａ）、第２システム領域記述子テーブル（１４０１．ｂ）、第１ユーザ領域記述子テーブル（１４０７．ａ）および第２ユーザ領域記述子テーブル（１４０７．ｂ）に関連するコンフィギュレーションメタデータのコンテンツを、このメモリ転送リクエストに関係する領域記述子のテーブルのアドレスオフセット（１４０２，１４０３，１４０８，１４０９）を決定するためにクエリを行う。
ステップ（１８０６）において、バースト読み取りメモリ転送リクエストを、ステップ（１８０５）において選択された領域記述子テーブルからこのメモリ転送リクエストに関連する領域記述子をレトリーブするために発行する。バーストメモリ転送リクエストの長さを、このメモリ転リクエストに関連するコンフィギュレーションメタデータの領域記述子コード化方式フィールド（図１５の１５１５）により示される領域記述子のタイプに関係して決定する。
ステップ（１８０７）において、選択された領域記述子要素の値を２つの１２８ビットキャッシュライン（｛１４１５から１４１８｝）および（｛１４１９から１４２２｝）の直近で使用していないキャッシュラインにロードする。
ステップ（１８０８）において、（１８０７）において受信した領域記述子要素の値を検査する。
ステップ（１８０９）において、領域記述子要素が有効でない場合はステップ（１８１３）に移動する。領域記述子がステップ（１８０２）においてメモリ転送リクエストのアドレスに関係していないキャッシュされた領域記述子である場合にはステップ（１８１３）に移動する。ステップ（１８１０）に移動する。
ステップ（１８１０）において、ステップ（１８０２）においてポート（１２８）上の制御ユニットにより受信されたメモリ転送リクエストに関係するキャッシュラインに格納される領域記述子を、前記ＰＭＴＲＰユニットのリアセンブリおよびパーミッションチェックモジュールにより受信する。
ステップ（１８１１）において、パーミッションチェックモジュールはステップで受信したメモリ転送アドレスとステップ（１８１０）において受信したセグメント記述子の間でコンシステンシチェックを実行する。
ステップ（１８１２）において、コンシステンシチェックが失敗した場合はステップ（１８１３）に移動し、そうでない場合はステップ（１８１６）に移動する。
ステップ（１８１３）において、図１７のＰＭＴＲＰユニット（１２０）のポート（１７２８）上で中断することによりフォールト通知イベントを生成する。
ステップ（１８１４）において、ステップ（１８０２）で受信したメモリ転送リクエストが書き込みリクエストである場合にはステップ（１８１５）に移動し、そうでない場合はステップ（１８２０）に移動する。
ステップ（１８１５）において、データフィールド（１０４３）において値ゼロで読み取りメモリ転送応答を発行する。インターコネクトプロトコルがエラーレポート機能を供給する場合には、前記メモリ転送リクエストに対してエラーステータス（１０４１）を返す。ステップ（１８２２）に移動する。
ステップ（１８１４）において、メモリアドレス変換を実行し、変換されたメモリ転送リクエストのフィールドを生成する。
ステップ（１８１７）において、ステップ（１８０２）において受信したメモリ転送リクエストが書き込みリクエストである場合はステップ（１８１８）に移動し、そうでない場合はステップ（１８１９）に移動する。
ステップ（１８１８）において、ＰＭＴＲＰユニットのマスタポート（１８１８）上で書き込みメモリ転送リクエストを発行する。ステップ（１８２２）に移動する。
ステップ（１８１９）において、ＰＭＴＲＰユニットのマスタポート（１２９）上で読み取りメモリ転送リクエストを発行する。
ステップ（１８２０）において、マスタポート（１２９）上で対応する読み取りメモリ転送応答を受信する。
ステップ（１８２１）において、ターゲットポート（１２８）上で前記読み取りメモリ転送応答の結果を転送する。
フローチャートはステップ（１８２２）で終了する。
本発明の好ましい実施形態において、ステップ（１８０５）、（１８０６）、（１８０８）および（１８０９）はさらに、２つの領域記述子をレトリーブして評価することに適用する。例えば、キャッシュされた領域記述子の２ウェイセットアソシエイティブテーブルに格納された領域記述子をサーチする。この適用は、セットアソシエイティブキャッシュ方式を実装する技術者によって容易に実行することができる。
本発明の好ましい実施形態において、ステップ（１８０５）、（１８０６）、（１８０８）および（１８０９）はさらに、２階層領域記述子ウォークを実行することに適用する。この適用は、２階層ＭＭＵ方式を実装する技術者によって容易に実行することができる。
３２ビットおよび６４ビット入力アドレス空間において比較的ファイングレインのメモリ割り当てに対するサポートで、低レイテンシで、ハイスループットで、一定時間の処理を有するＭＭＵアーキテクチャが長年必要とされている。マイクロコントローラ市場においてさらに、メモリ保護ユニット（ＭＰＵ）として処理することができ、市販のハイアシュランスのセキュリティ・クリティカル・リアルタイム・オペレーティングシステム（ＲＴＯＳ）を走らせるためのＭＭＵとして処理することもできるＰＭＴＲＰユニットを供給する必要性もある。これは、多くのハイアシュランスＲＴＯＳがアドレス変換機能を備えるハードウェアＭＭＵのアベイラビリティに依存しているからである。さらに、より迅速なタスクスワッピングおよび改善されたシステムパフォーマンスをサポートするためにリアルタイム環境において時間解析可能な方法により低レイテンシで領域記述子の再プログラミングを低コストで加速するための手段に対する永年の必要性がある。
図１９は、本発明の好ましい実施形態に従うプログラム可能なメモリアドレス変換ポリシーで適用した範囲記述子（１９１０）に存在してよいさまざまなフィールドを示すブロック図である。範囲の下限アドレスおよび上限アドレスを、それぞれフィールド（１９１４）および（１９１８）に格納する。フィールド（１９１１）はユーザ特権ソフトウェアアクセスに対して１ビットの「データのための読み取り」パーミッションフィールドをコード化する。フィールド（１９１２）はユーザ特権ソフトウェアアクセスに対して１ビットの「書き込み」パーミッションフィールドをコード化する。フィールド（１９１３）はユーザ特権ソフトウェアアクセスに対して１ビットの「実行のための読み取り」パーミッションフィールドをコード化する。フィールド（１９１４）はこの範囲記述子に関連する入力アドレス空間の連続する領域の２９ビット下限アドレスをコード化する。フィールド（１９１５）はユーザ特権ソフトウェアアクセスに対して１ビットの「データのための読み取り」パーミッションフィールドをコード化する。フィールド（１９１６）はユーザ特権ソフトウェアアクセスに対して１ビットの「書き込み」パーミッションフィールドをコード化する。フィールド（１９１７）はユーザ特権ソフトウェアアクセスに対して１ビットの「実行のための読み取り」パーミッションフィールドをコード化する。フィールド（１９１８）はこの範囲記述子に関連する入力アドレス空間の連続する領域の２９ビット上限アドレスをコード化する。この領域の長さは、上限アドレス（１９１８）の値から下限アドレス（１９１４）の値を引き、さらに値１を加えることにより計算する。フィールド（１９２０）は、この範囲記述子が有効であるかどうかを示す１ビットの値をコード化する。フィールド（１９２１）は、メモリアドレス変換がこの範囲記述子に対して有効であるかどうかを示す１ビットの値をコード化する。フィールド（１９２２）は入力アドレス空間におけるアドレスを変換されたアドレス空間におけるアドレスに変換することに用いられる符号付き３０ビットの値をコード化する。最上位ビット（１９２３）は残り２９ビット（１９２４）の符号（＋／−）をコード化する。
図２０は、本発明の好ましい実施形態に従うメモリ転送リクエスト（２００１）のフィールドを示すブロック図（２０００）である。メモリ転送リクエスト（２００１）はフィールド（２００５から２０１３）を備える。フィールド（２００５）はメモリ転送リクエスト（２００１）の３ビット（２００６，２００７，２００８）制御フィールドをコード化する。フィールド（２００６）はユーザ特権ソフトウェアアクセスに対して「データのための読み取り」パーミッションフィールドをコード化する。フィールド（２００７）はユーザ特権ソフトウェアアクセスに対して「書き込み」パーミッションフィールドをコード化する。フィールド（２００９）は前記メモリ転送リクエスト（２００１）に対してユーザレベル特権（２０１０）またはシステムレベル特権（２０１１）のどちらかを示す２ビット（２０１０，２０１１）特権値をコード化する。フィールド（２０１２）は前記メモリ転送リクエスト（２００１）に関連する入力アドレス空間における３２ビットアドレスをコード化する。フィールド（２０１３）を前記３２ビットアドレス（２０１２）の２９の最上位ビットにマッピングする。
図２１は、図１のＰＭＴＲＰユニット（１２０）が２つのメモリ管理ユニット（２１０１，２１４０）を利用することに適用する本発明の好ましい実施形態（２１００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。メモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータは図１に示すとおりである。ターゲットポート（１３４）は図１に示される図２１のメモリストア（１２３）内に格納される領域記述子要素の部分にアクセスするためにメモリ転送リクエストを受信することに適用する。図２１のラベル（２００１）は図２０のメモリ転送リクエスト（２００１）である。第１ＭＭＵ（２１０１）は図１９の範囲記述子により示されるようなプログラム可能なメモリアドレス変換ポリシーで適用された８つの範囲記述子（２１１１から２１１８）を利用する。本実施形態において、８つの範囲記述子（２１１１から２１１８）を各メモリ転送リクエストに対して並列して評価する。
範囲記述子コンパレータモジュール（２１２１）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１１）の値を受信し、入力としてコンパレータあぐれげーたモジュール（２１３０）受信する出力を生成する。範囲記述子コンパレータモジュール（２１２３）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１３）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子コンパレータモジュール（２１２４）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１４）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子コンパレータモジュール（２１２５）は入力としてメモリ転送リクエストおよび範囲記述子（２１１５）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子コンパレータモジュール（２１２６）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１６）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子コンパレータモジュール（２１２７）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１７）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子コンパレータモジュール（２１２８）は入力としてメモリ転送リクエスト（２００１）および範囲記述子（２１１８）の値を受信し、入力としてコンパレータアグリゲータモジュール（２１３０）に受信する出力を生成する。範囲記述子（２１１１から２１１８）の機能を図２２に示す。
第２メモリ管理ユニット（２１４０）は少なくとも２階層の変換テーブルで３２ビットページベースのＭＭＵ方式を利用することに適用するＰＭＴＲＰユニットである。
コンパレータ結果アグリゲータモジュール（２１３０）は以下を行うことに適用する。
●メモリ転送リクエスト（２００１）のアドレス（２０１２）が前記第２ＭＭＵ（２１４０）により変換されるかどうかを示す第２ＭＭＵ（２１４０）に入力として供給されるカスケードフラグ出力（２１３４）を生成する。
●２入力１出力マルチプレクサ（２１５０）に選択入力として供給されるカスケードフラグ出力（２１３２）を生成する。
●２入力１出力マルチプレクサ（２１５０）に第１データ入力として供給される変換されたメモリ転送リクエストを出力（２１３３）として生成する。
●フォールトイベントをアグリゲートするフォールトアグリゲーションユニット（２１６０）に入力として供給されるトランザクションフォールトを出力（２１３１）として生成する。
第２メモリ管理ユニット（２１４０）は以下を行うことに適用する。
●２入力１出力マルチプレクサ（２１５０）に第２データ入力として供給される変換されたメモリ転送リクエストを出力（２１４０）として生成する。
●フォールトイベントをアグリゲートするフォールトアグリゲーションユニット（２１６０）に入力として供給されるトランザクションフォールトを出力（２１４２）として生成する。
フォールトを第１ＭＭＵ（２１０１）により発行する（２１３１）か、あるいはフォールトを第２ＭＭＵ（２１４０）により発行する（２１４２）場合に、フォールトアグリゲーションユニット（２１６０）はフォールトイベントを出力（２１６１）として発行する。
２入力１出力マルチプレクサ（２１５０）は出力（２１５１）として変換されたメモリ転送リクエストを生成する。フォールトアグリゲーションユニットがフォールトイベント（２１６１）を発行しない場合、前記変換されたメモリ転送リクエスト（２１５１）をＰＭＴＲＰユニット（１２０）のマスタポート（１２９）により出力として発行する。
図２２は、本発明の好ましい実施形態に従う範囲記述子コンパレータモジュール（２２００）を部分的に示すハイブリッドブロック模式図およびデータフロー図である。図２２のラベル（１９１１，１９１２，１９１３，１９１４，１９１５，１９１６，１９１７，１９１８，１９２１，１９２３，１９２０および１９２４）は図１９の範囲記述子（１９１０）に示すとおりである。ラベル（２００６，２００７，２００８および２０１３）は図２０のメモリ転送リクエスト（２００１）に示すとおりである。コンパレータモジュール（２２２０）は次のサブモジュールを備える。
●アドレス（２０１２）の値が入力アドレス空間の連続する領域の下限アドレス（２０１３）の値以上である場合、大きいか等しいコンパレータモジュール（２２１０）はメモリ転送リクエスト（２００１）の３２ビットアドレス（２０１２）の上位２９ビット（２０１３）の値を受信し、それを入力アドレス空間の連続領域の２９ビットの下限アドレス（１９１４）の値と比較し、単一ビット値１を出力として生成する。そうでない場合、コンパレータモジュール（２２１０）は単一ビット値０を出力として生成する。前記単一ビット値を３入力１出力ＡＮＤモジュール（２１２２）に第１入力として供給する。
●アドレス（２０１２）の値が入力アドレス空間の連続する領域の下限アドレス（２０１３）の値以下である場合、小さいか等しいコンパレータモジュール（２２１１）はメモリ転送リクエスト（２００１）の３２ビットアドレス（２０１２）の上位２９ビットの値を比較し、それを入力アドレス空間の連続する領域の２９ビットの上限アドレス（１９１８）の値と比較し、単一ビット値１を出力として生成する。そうでない場合、コンパレータモジュール（２２１１）は単一ビット値０を出力として生成する。前記単一ビット値を３入力１出力ＡＮＤモジュール（２１２２）に第２入力として供給する。
●範囲記述子イネーブルフラグ（１９２０）の値を３入力１出力ＡＮＤモジュール（２１２２）に第３入力として供給する。３入力１出力ＡＮＤモジュール（２１２２）の各３つのデータ入力が単一ビット値１である場合、ＡＮＤモジュール（２２１２）の出力は単一ビット値１である。そうでない場合、ＡＮＤモジュール（２２１２）の出力は単一ビット値０である。
●前記ＡＮＤモジュール（２２１２）の出力を出力（２２４０）の範囲記述子アクティブフィールド（２２３６）に対する値として供給する。このフィールド（２２３６）は、このメモリ転送リクエスト（２００１）がこの範囲記述子（１９１０）に関連しているかどうかを示す。
●アドレス変換モジュール（２２１３）はメモリ転送リクエスト（２００１）の３２ビットアドレス（２０１２）の符号なし上位２９ビット（２０１３）の値および入力アドレス空間におけるアドレスを変換されたアドレス空間におけるアドレスに変換することに用いられる符号付３０ビット値（１９２２）の値の符号付算術加算を実行する。
●２入力１出力２９ビット幅マルチプレクサ（２２１６）は符号付算術処理の出力を前記第２データ入力として受信する。マルチプレクサ（２２１６）は一定の２９ビット長値０（つまり２９ビット全ては一定の単一ビット値０に設定されている）を前記第１データ入力として受信する。
●モジュール（２２１５）は、このメモリ転送リクエストがこの範囲記述子に関連するかどうかを示す２入力１出力ＡＮＤモジュール（２１２２）の出力を入力として受信する。前記範囲記述子の変換イネーブルフィールド（１９２１）の値が有効であり、モジュール（２１２２）の出力が単一ビット値１である場合、モジュール（２２１５）の出力は単一ビット値１であり、そうでない場合は前記モジュール（２２１５）の出力は単一ビット値０である。
●モジュール（２２１５）の出力を出力（２２４０）の変換アクティブフィールド（２２３７）に対する値として供給する。
●モジュール（２２１５）の出力を２入力１出力２９ビット幅マルチプレクサ（２２１６）へ選択入力として供給する。選択入力の値が単一ビット値１である場合、変換されたアドレスを含むマルチプレクサ（２２１６）への第１データ入力の値をマルチプレクサ（２２１６）の出力としてリリースする。そうでない場合、一定値ゼロを含むマルチプレクサ（２２１６）への第２データ入力の値をマルチプレクサ（２２１６）の出力としてリリースする。
●パーミッションチェックモジュール（２２２０）は入力として、ユーザの「データのための読み取り」パーミッションフィールド（１９１１）の値、メモリ転送リクエストの「データのための読み取り」フィールド（２００６）の値、メモリ転送リクエスト（２００１）の特権レベル（２００９の値およびこのメモリ転送リクエストがこの範囲記述子と関連するかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２０）は、前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２１）は入力として、ユーザ「書き込み」パーミッションモジュール（１９１２）の値、メモリ転送リクエストの「書き込み」フィールド（２００７）、メモリ転送リクエスト（２００１）の特権レベル（２００９）の値およびこのメモリ転送リクエストがこの範囲記述子と関連するかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２１）は、前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２２）は入力として、ユーザの「実行のための読み取り」パーミッションフィールド（１９１３）の値、メモリ転送リクエストの「実行のための読み取り」フィールド（２００８）の値、メモリ転送リクエスト（２００１）の特権レベル（２００９）の値およびこのメモリ転送リクエストがこの範囲記述子と関連しているかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２２）は、前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２３）は入力として、メモリ転送リクエストの「実行のための読み取り」フィールド（２００６）の値、メモリ転送リクエスト（２００１）の特権レベル（２００９）の値およびこのメモリ転送リクエストがこの範囲記述子と関連しているかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２３）は前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２４）はシステム「書き込み」パーミッションフィールド（１９１６）の値、メモリ転送リクエストの「書き込み」フィールド（２００７）の値、メモリ転送リクエスト（２００１）の特権レベル（２００９）の値およびこのメモリ転送リクエストがこの範囲記述子と関連しているかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２４）は前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２５）は入力として、システムの「実行のための読み込み」パーミッションフィールド（１９１７）の値、メモリ転送リクエストの「実行のための読み込み」フィールド（２００８）の値、メモリ転送リクエスト（２００１）の特権レベル（２００９）の値およびこのメモリ転送リクエストがこの範囲記述子と関連しているかどうかを示すモジュール（２２１２）の出力を受信する。パーミッションチェックモジュール（２２２５）は前記入力を評価し、パーミッションチェックが失敗した場合は単一ビット値１をリリースし、そうでない場合は単一ビット値０をリリースする。
●パーミッションチェックモジュール（２２２０から２２２５）の出力をフォールトアグリゲーションユニット（２２２６）への入力として供給する。いかなる前記出力も単一ビット値１である場合、フォールトアグリゲーションユニット（２２２６）は単一ビット値１をリリースする。そうでない場合、フォールトアグリゲーションユニット（２２２６）は単一ビット値０をリリースする。アグリゲーションユニット（２２２６）の出力を出力（２２４０）のパーミッションチェックフォールトフィールド（２２３０）に対する値として供給する。
図２３は本発明の好ましい実施形態に従うコンパレータ結果アグリゲータモジュール（図２１の２１３０）を部分的に示すハイブリッドブロック概略図（２３００）である。２ビット（図１９の２０１０，２０１０）特権レベルフィールド（図２３の２００９）は図１９が示すとおりである。１ビットカスケードフラグ（図２３の２１３４）は図２１が示すとおりである。１ビットトランザクションフォールトフラグ（図２３の２１３１）は図２１が示すとおりである。
ラベル（２３１０）は８つのコンパレータモジュール（２１２１から２１２８）による出力として同時にリリースされる８つの変換アクティブフィールド（２２３７）を示す。
ラベル（２３２０）は８つの範囲記述子コンパレータモジュール（２１２１から２１２８）により出力として同時にリリースされる８つのパーミッションチェックフォールトフィールド（２２３０）を示す。
ラベル（２３０１）は前記ＭＭＵ（２１０１）のアドレス変換を可能にする単一ビット「変換イネーブル」コンフィギュレーションフィールドを示す。
カスケードモジュール（２３１２）は入力として、８つの（２３１０）変換アクティブフィールド（２２３７）および単一ビット変換イネーブルコンフィギュレーションフィールド（２３０１）を受信する。変換イネーブルコンフィギュレーションフィールド（２３０１）の値が１であり、どの８つの（２３１０）変換アクティブフィールド（２２３７）が値１を有していない場合、カスケードモジュール（２３１２）の出力の単一ビット値は１である。そうでない場合、カスケードモジュールの出力は値０である。カスケードモジュール（２３１２）の出力を単一ビットカスケードフラグ（２１３４）の値として利用する。
トランザクションフォールトモジュール（２３１１）は入力として８つの（２３１０）トランザクションアクティブフィールド（２２３７）および単一ビット変換イネーブルコンフィギュレーションフィールド（２３０１）を受信する。変換イネーブルコンフィギュレーションフィールド（２３０１）の値が１で、８つの（２３１０）変換アクティブフィールド（２２３７）の１つ以上が値１を有する場合、トランザクションフォールトモジュール（２３１１）の出力の単一ビット値は１である。変換イネーブルコンフィギュレーションファイル（２３０１）の値が０であり、いかなる８つの変換アクティブフィールド（２２３７）が値１を有する場合、トランザクションフォールトモジュール（２３１１）の出力の単一ビット値も１である。そうでない場合、トランザクションフォールトモジュール（２３１１）の出力の単一ビット値は値０である。
パーミッションチェックフォールトモジュール（２３２２）は入力として、８つの範囲記述子コンパレータモジュール（２１２１から２１２８）により発行される８つの（２３２０）パーミッションチェックフォールトフィールド（２２３０）を受信する。８つの（２３２０）ユーザパーミッションチェックフォールトフィールド（２３２０）のいかなる１つも値１である場合、パーミッションチェックフォールトモジュール（２３２２）の出力の単一ビット値を値１に設定する。そうでない場合、パーミッションチェックフォールトモジュール（２３２２）の出力の単一ビット値を０に設定する。
フォールトアグリゲーションモジュール（２３６０）は入力として、モジュール（２３１１）および（２３２２）の出力を受信する。いかなる前記単一ビット入力が値１である場合、フォールトアグリゲーションモジュール（２３６０）は値１の単一ビット出力を生成する。そうでない場合、フォールトアグリゲーションモジュール（２３６０）は値０の単一ビット出力を生成する。ふぉーるとアグリゲーションモジュール（２３６０）の出力をトランザクションフォールトフラグ（２１３１）の値として供給する。
図２４は、本発明の好ましい実施形態に従う２つのＭＭＵ手段（図２１の２１０１から２１４０）を用いた入力アドレス空間（２４０１）の変換されたアドレス空間（２４０２）へのマッピングの例を示すブロック図（６００）である。ラベル（２４００）は８つの範囲記述子（２１１１から２１１８）を示す。範囲記述子（２１１１）の範囲記述子イネーブルフラグ（１９２０）は無効であると示されている。各範囲記述子（２１１２から２１１８）の範囲記述子イネーブルフラグ（１９２０）は有効であると示されている。変換イネーブルフラグ（１９２１）は範囲記述子（２１１１，２１１２，２１１７）に対して無効であり、範囲記述子（２１１３，２１１４，２１１５，２１１６，２１１８）に対して有効である。範囲記述子（２１１２）を、アドレス変換なしで書き込み許可を有効にするように構成する。範囲記述子（２１１７）を、アドレス変換なしで読み取り許可を有効にするように構成する。範囲記述子（２１１３，２１１４，２１１５，２１１６，２１１８）を、入力アドレス空間の範囲をターゲットアドレス空間（｛２１１３，２４３３｝，｛２１１４，２４３４｝，｛２１１５，２４３５｝，｛２１１６，２４３６｝，｛２１１８，２４３８｝）の範囲にマッピングするものとして示す。領域記述子（２１１２）に関連するメモリアドレスに向けられた書き込みメモリ転送リクエストを、恒等変換であるアドレス変換（２４３５）で実行する。
第１ＭＭＵ（２１０１）のいかなる領域記述子（２１１１から２１１８）の１つに関連しない、いかなるメモリ領域（２４１０，２４１１，２４１２，２４１３，２４１４，２４１５，２４１６）の１つに向けられるメモリ転送リクエストを、追加の処理のために第２ＭＭＵ（２１４０）に転送する。例えば、入力アドレス空間における領域（２４２０）は第２ＭＭＵ（２１４０）において１つ以上の領域記述子に関連する。領域（２４２０）を第２ＭＭＵ（２１４０）によりターゲットアドレス空間においてメモリ範囲（２４２２）に変換する。
本発明の好ましい実施形態において、装置は、
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子であり、それぞれに対して、領域記述子のタイプは固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーションルックアサイドバッファ記述子、範囲記述子、プログラム可能なメモリアドレス変換ポリシーで適用された範囲記述子、キャッシュタグ記述子の１つから選択される第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子を備えるプログラム可能なコンフィギュレーションデータと、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第２ポートと、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化された第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポートで受信された第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化された第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポートで受信された第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするための第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの領域記述子の１つに関連する第３アドレス空間においてメモリロケーションに向けられる第３ポート上で受信する正しい形式のメモリ転送リクエストを処理する手段と、を備えるプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、
ターゲットポートであり、ＰＤＭＡユニットを制御するためにメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
マスタポートであり、メモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
メモリからメモリへの転送処理を記述することができる少なくとも１つのメモリからメモリへの転送制御記述子を含むプログラム可能なコンフィギュレーションデータと、
第２ポートおよび少なくとも１つのメモリからメモリへの転送制御記述子を用いてメモリからメモリへの転送処理を処理する手段と、を備えるプログラム可能なダイレクトメモリアクセス（ＰＤＭＡ）ユニットと、を備え、
ＰＤＭＡユニットは前記第２ポートからＰＭＴＲＰユニットの第３ポートへメモリ転送リクエストを送信することに適用し、ＰＭＴＲＰユニットはＰＭＴＲＰユニットの少なくとも１つの領域記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられるＰＤＭＡユニットの第２ポートに発行される正しい形式のメモリ転送リクエストを受信して処理することに適用することを特徴とする。
本発明のさらなる好ましい実施形態において、
プログラム可能なコンフィギュレーションデータの部分は第１アドレス空間のユーザ部に関連し、
ＰＭＴＲＰユニットの第３ポートにアクセス可能である第１アドレス空間のユーザ部に関連するＰＭＴＲＰユニットのすべてのプログラム可能なコンフィギュレーションデータを１つのＰＤＭＡユニットのメモリからメモリへの転送処理においてプログラム可能である。
本発明の好ましい実施形態において、装置は、
ターゲットポートであり、第１アドレス空間におけるメモリアドレスと、アドレス空間識別子と、に関連し、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
Ｎ＋１の論理的に独立したＭＴＲＰ領域の１つに関連する値を送信することに適用する第２ポートと、
第１ポート上で受信するメモリ転送リクエストに応答して第２ポート上のＮ＋１の論理的に独立したＭＴＲＰ領域の１つに関連する値を生成する手段と、
メモリ転送リクエストを第３ポート上でＮ＋１の論理的に独立したＭＴＲＰ領域の１つにマッピングできなかったことを示す手段と、を備え、
少なくともＮ＋１の論理的に独立したメモリ転送リクエスト処理領域の１つで、少なくともＮの連続するパーティションに分割される第１アドレス空間に関連するメモリ転送リクエストをマッピングすることに適用し、
Ｎの値は少なくとも２であり、
Ｎ＋１の論理的に独立したＭＴＲＰ領域の少なくとも２つを、第１アドレス空間の少なくともＮの連続するパーティションの同じパーティションにマッピングすることができ、
第１ポート上で受信するメモリ転送リクエストに関連するメモリアドレスがマッピングされたＮ＋１の論理的に独立したＭＴＲＰ領域の少なくとも２つを有することができる第１アドレス空間の少なくともＮの連続するパーティションの１つに関連する場合、メモリ転送リクエストに関連するアドレス空間識別子の値を、マッピングする少なくとも２つのＮ＋１の論理的に独立したＰＭＴＲＰ領域を区別することに用いる。
本発明のさらなる好ましい実施形態において、各少なくともＮ＋１の論理的に独立したメモリ転送リクエスト処理（ＭＴＲＰ）領域は前記領域に向けられるメモリ転送リクエストを変換するためにプログラム可能なメモリアドレス変換を利用する。
本発明のさらなる好ましい実施形態において、装置は、
ターゲットポートであり、第１インターコネクトから第１空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第１ポートと、
マスタポートであり、第１インターコネクトではない第２インターコネクトに第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
それぞれが第１アドレス空間のメモリ領域にプログラム的に関連し、プログラム可能なアクセスパーミッションポリシーを備え、プログラム可能なメモリアドレス変換ポリシーを備える第１セットの少なくとも２つのプログラム可能な領域記述子と、
ターゲットポートであり、第１セットの少なくとも２つのプログラム可能な領域記述子にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
第１セットの少なくとも２つのプログラム可能な領域記述子の少なくとも１つのプログラム可能な領域記述子の部分に関連する第３アドレス空間においてメモリロケーションに向けられる第３ポート上で受信する正しい形式のメモリ転送リクエストを処理する手段と、
出力ポートである第４ポートと、
第１セットの少なくとも２つのプログラム可能なメモリ領域記述子に格納されるような受信したメモリ転送リクエストに関連する少なくとも１つのポリシーに一致する第１ポート上で受信するメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、
プログラム的に前記アドレスに関連する少なくとも２つのプログラム可能な記述子の１つが有効な変換ポリシーを有する場合、第１ポート上で受信するメモリ転送リクエストのアドレスを変換する手段と、
前記アドレスにプログラム的に関連する少なくとも２つのプログラム可能な領域記述子の１つ以上のプログラム可能な領域記述子が前記有効な変換ポリシーを有する場合、第４ポート上で信号を生成する手段と、を有するプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットを備える。
本発明のさらに好ましい実施形態において、ＰＭＴＲＰユニットの第１セットの少なくとも２つのプログラム可能な領域記述子の少なくとも１つのプログラム可能な領域記述子は、１つ以上のプロセッサコア上で走るソフトウェアのために発行される実行可能なコードメモリ転送リクエストに関連する少なくとも１つのパーミッションフィールドと、１つ以上のプロセッサコア上で走るソフトウェアのために発行されるデータメモリ転送リクエストに関連する少なくとも１つのパーミッションフィールドと、を有する。
本発明のさらに好ましい実施形態において、
ＰＴＲＭＰユニットは前記ＰＭＴＲＰユニットの第１ポート上で受信するメモリ転送リクエストをアドレス空間識別子と関連付ける手段を備え、
前記ＰＭＴＲＰユニットのプログラム可能な領域記述子の少なくとも１つはアドレス空間識別胃に関連付けることができる。
本発明のさらに好ましい実施形態において、装置は、
ターゲットポートであり、第１インターコネクトから第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
第１インターコネクトではない第２インターコネクトに第２アドレス空間に関連するメモリ転送リクエストを送信し、メモリ転送を受信することに適用する第２ポートと、
第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つのキャッシュされた領域記述子を備えるプログラム可能なコンフィギュレーションデータと、
第２ポートでセットのキャッシュされた領域記述子である少なくとも１つのメモリ転送リクエストを生成して送信することにより少なくともＮセットの少なくとも２つの領域記述子にアクセスし、対応する応答を受信し、前記受信した領域記述子をキャッシュする手段と、
処理時間において第２ポートでアクセス可能なＮセットの少なくとも２つの領域記述子の第１セットにおいてコード化されるポリシーに従って第１ポート上で受信されるメモリ転送リクエストを処理する手段と、
Ｎセットの少なくとも２つの領域記述子の第１セットに格納されるように前記受信されたメモリ転送リクエストに関連する少なくとも１つのポリシーに一致する第１ポート上で受信するメモリ転送リクエストに応答して第２ポート上でメモリ転送リクエストを生成して送信する手段と、を備え、
Ｎの値は少なくとも１である。
本発明のさらに好ましい実施形態において、Ｎの値は少なくとも２であり、ＰＭＴＲＰユニットはさらに、
第１ポートの第１アドレス空間を少なくとも２つの連続した領域に分割し、
第１アドレス空間の少なくとも２つの連続した領域の各領域に対して、前記領域を第２ポートでアクセス可能なＮセットの少なくとも２つの領域記述子の異なるセットとプログラム的に関連させる、ことに適用する。
本発明のさらに好ましい実施形態において、ＰＭＴＲＰユニットはさらに、
第２ポートで少なくとも１つのメモリ転送リクエストを生成して送信し、対応する応答を受信することにより、それぞれが少なくとも２つの領域記述子を含む少なくとも１つの領域記述子のキャッシュにアクセスする手段と、
処理時間において第２ポートでアクセス可能な少なくとも１つの領域記述子のキャッシュの１つにおいてコード化されるポリシーに一致して第１ポート上で受信するメモリ転送リクエストを処理する手段と、
処理時間において第２ポートでアクセス可能な少なくとも１つの領域記述子のキャッシュの１つにおいてコード化されるポリシーに一致して第１ポート上で受信されるメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、に適用する。
本発明のさらに好ましい実施形態において、ＰＭＴＲＰユニットはさらに、
第２インターコネクトではない第３インターコネクトに第３アドレス空間に関連するメモリ転送リクエストを送信し、メモリ転送を受信することに適用する第３ポートと、
処理時間において第３ポートでアクセス可能な少なくともＮセットのプログラム可能な領域記述子の１セットにおいてコード化されるポリシーに一致する第１ポート上で受信されるメモリ転送リクエストを処理する手段と、
処理時間において第３ポートでアクセス可能な少なくともＮセットのプログラム可能な領域記述子の１セットにおいてコード化されるポリシーに一致する第１ポート上で受信されるメモリ転送リクエストに応答してメモリ転送リクエストを第２ポート上で生成して送信する手段と、に適用する。
本発明のさらに好ましい実施形態において、装置は、
ターゲットポートであり、Ｎのパーティションに細分化され、範囲がＭキキバイトである第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
マスタポートであり、範囲がＯキキバイトである第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、それぞれが第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化し、すべてが同じタイプの領域記述子であり、前記タイプの領域記述子を少なくとも８の異なるページ長のサポートを備えるページ記述子および少なくとも１６の異なる割り当てられたセグメント長のサポートを備えるセグメント記述子の１つから選択され、少なくともＮが異なる第１アドレス空間のＮパーティションの１つに関連する少なくともＮの領域記述子と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信する第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信する第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、を有するプログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットを備え、
Ｍの値は少なくとも１０２４であり、
Ｎの値は少なくとも２であり、１６３８４より小さく、
Ｏの値は少なくとも１である。
本発明のさらに好ましい実施形態において、ＰＭＴＲＰユニットはさらに、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信する第３ポートと、
少なくともＮの領域記述子の少なくとも１つの部分にアクセスする有効なメモリロケーションに向けられた第３ポート上で受信された正しい形式のメモリ転送リクエストを処理する手段と、
第３ポート上でメモリ転送応答を送信することにより少なくともＮの領域記述子の少なくとも１つの部分にアクセスするメモリロケーションに向けられる第３ポート上で受信する正しい形式の読み取りメモリ転送リクエストに応答する手段と、を備える。
本発明のさらに好ましい実施形態において、ＰＭＴＲＰユニットは、
●どの少なくともＮの領域記述子がメモリ転送リクエストに関連するかを識別するダイレクトインデックスルックアップ方式のタイプと、
●どの少なくともＮの領域記述子がメモリ転送リクエストに関連するかを識別するコンテンツ・アソシエイティブ・メモリ・ルックアップ方式と、
●どの少なくともＮの領域記述子がメモリ転送リクエストに関連するかを識別する古アソシエイティブ・ルックアップ方式と、
のルックアップ方式の１つを利用することに適用する。
本発明のさらに好ましい実施形態において、装置は、
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適応する第１ポートと、
それぞれに対してタイプが、固定長ページを備えるページ記述子、可変長ページを備えるページ記述子、セグメント記述子、トランスレーション・ルックアサイド・バッファ記述子、プログラム可能なメモリアドレス変換ポリシーで適用した領域記述子の５つのタイプの１つから選択される、第１アドレス空間の領域に関連する少なくとも１つのポリシーをコード化する少なくとも１つの領域記述子と、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの領域記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられた第３ポート上で受信される正しく形成されるメモリ転送リクエストを処理する手段と、を備える第１プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、
ターゲットポートであり、第１アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を受信することに適用する第１ポートと、
第１ポート上で１つ以上のメモリ転送リクエストで受信される領域記述子においてコード化される少なくとも１つのポリシーの少なくとも１つをどのように転送するかについて少なくとも１つのポリシーをコード化する、第１アドレス空間の領域に関係する少なくとも１つのポリシーをコード化する少なくとも１つの記述子を備えるプログラム可能なコンフィギュレーションデータと、
マスタポートであり、第２アドレス空間に関連するメモリ転送リクエストを送信し、対応するメモリ転送応答を受信することに適用する第２ポートと、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストを処理する手段と、
処理時間においてプログラム可能なコンフィギュレーションデータにおいてコード化される第１アドレス空間に関連する少なくとも１つのポリシーに一致する第１ポート上で受信される第１アドレス空間に関連するメモリ転送リクエストに応答して第２アドレス空間に関連するメモリ転送リクエストを第２ポート上で生成して送信する手段と、
ターゲットポートであり、プログラム可能なコンフィギュレーションデータの部分にアクセスするために第３アドレス空間に関連するメモリ転送リクエストを受信し、対応するメモリ転送応答を送信することに適用する第３ポートと、
少なくとも１つの記述子の少なくとも１つの部分に関連する第３アドレス空間においてメモリロケーションに向けられた第３ポート上で受信される正しく形成されるメモリ転送リクエストを処理する手段と、を備える第２プログラム可能なメモリ転送リクエスト処理（ＰＭＴＲＰ）ユニットと、を備え、
第２ＰＭＴＲＰユニットの第２ポートは第１ＰＭＴＲＰユニットの第３ポートに接続されている。
発明のさまざまな実施形態を複数の異なる形で実現してよく、プロセッサ（例えばマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサまたは汎用コンピュータ）で使用するためのコンピュータプログラムロジック、プログラム可能なロジックデバイス（例えば現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、または別のＰＬＤ）で使用するためのプログラム可能なロジック、個別部品、集積回路（例えば特定用途向け集積回路（ＡＳＩＣ））、またはそれらの組合せを含むいかなる別の手段を含む。本発明の実施形態において、主にユーザとサーバの間のすべての通信を、コンピュータが実行可能な形に変換され、前記ようなものとしてコンピュータが読み取り可能な媒体に格納され、オペレーティングシステム下でマイクロプロセッサにより実行されるセットのコンピュータプログラム命令として実装する。
コンピュータプログラムロジックは機能のすべてまたは一部を実装し、ここで述べられるものをさまざまな形において実現してよく、ソースコードの形、コンピュータが実行可能な形およびさまざまな中間形（例えばアセンブラ、コンパイラ、リンカまたはロケータにより生成される形）を含む。ソースコードはさまざまなオペレーティングシステムまたはオペレーティング環境で使用するために、いかなるさまざまなプログラミング言語（例えばオブジェクトコード、アセンブリ言語、ＳＰＡＲＫ  ＡＤＡ，Ｆｏｒｔｒａｎ，Ｃ，Ｃ＋＋，ＪＡＶＡ，ＲｕｂｙまたはＨＴＭＬのようなハイレベル言語）において実装される一連のコンピュータプログラム命令を含んでよい。ソースコードはさまざまなデータ構造および通信メッセージを定義して使用してよい。ソースコードはコンピュータが実行可能な形（例えばインタープリタ経由で）であってよく、またはソースコードを（トランスレータ、アセンブラまたはコンパイラ経由で）コンピュータが実行可能な形に変換してよい。
コンピュータプログラムを、半導体メモリデバイス（例えばＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュプログラム可能なＲＡＭ）、磁気メモリデバイス（例えばフロッピーディスクまたは固定ディスク）、光学メモリデバイス（例えばＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）、ＰＣカード（例えばＰＣＭＣＩＡカード）または別のメモリデバイスのような有形記憶媒体において永久または一時的にいかなる形（例えばソースコードの形、コンピュータが実行可能な形または中間形）において固定してよい。コンピュータプログラムをいかなるさまざまな通信技術を用いてコンピュータに転送可能な信号においていかなる形でも固定してよく、限定されないが、アナログ技術、デジタル技術、光学技術、無線技術（例えばブルートゥース）、ネットワーク技術およびインターネットワーク技術を含む。コンピュータプログラムを伴う印刷書類または電子書類（シュリンクパックされたソフトウェア）を備える取り外し可能な記憶媒体としていかなる形で分配し、コンピュータシステム（例えばオンシステムＲＯＭまたは固定ディスク）でプリロードし、または通信システム（例えばインターネットまたはワールド・ワイド・ウェブ）によりサーバまたは電子掲示板から分配してよい。ハードウェアロジック（プログラム可能なロジックデバイスで使用するためのプログラム可能なロジックを含む）は機能のすべてまたは一部を実装し、ここで記述されるものを従来の手動の方法を用いて設計するか、コンピュータ支援設計（ＣＡＤ）、ハードウェア記述言語（例えばＶＨＤＬまたはＡＨＤＬ）またはＰＬＤプログラミング言語（例えばＰＡＬＡＳＭ、ＡＢＥＬまたはＣＵＰＬ）のようなさまざまなツールを用いて電子的に設計、取り込み、シミュレーションまたは記録してよい。
プログラム可能なロジックを半導体メモリデバイス（例えばＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュプログラミング可能なＲＡＭ）、磁気メモリデバイス（例えばフロッピーディスクまたは固定ディスク）、光学メモリデバイス（例えばＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭ）または別のメモリデバイスのような有形記憶媒体において永久または一時的に固定してよい。プログラム可能なロジックを限定されないが、アナログ技術、デジタル技術、光学技術、無線技術（例えばブルートゥース）、ネットワーク技術およびインターネットワーク技術を含むいかなるさまざまな通信技術を用いてコンピュータに転送可能な信号において固定してよい。プログラム可能なロジックを取り外し可能な記憶媒体としていかなる形で分配し、コンピュータシステム（例えばオンシステムＲＯＭまたは固定ディスク）でプリロードし、または通信システム（例えばインターネットまたはワールド・ワイド・ウェブ）によりサーバまたは電子掲示板から分配してよい。
図面の簡単な説明
発明のより良い理解について、そして、それがどのように有効に実施することができる方法を示すために、添付の図面の中で、非限定的な例だけとして、それの実施形態は示されています。
図１は、本発明の好ましい実施形態のためのデータを処理する装置（１００）の部分を示すブロック概略図である。
図２は、本発明の好ましい実施形態に従う図１に示されたＰＭＴＲＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータにアクセスするためのアドレス空間（２０１）の分割を示すブロック図（２００）である。
図３は、１つのメモリからメモリへの転送処理（図１の１４８，１４９および１５０）においてＰＭＴＲＰユニット（図１の１２０）のメモリストア（図１の１２３）において格納される全てのプログラム可能なコンフィギュレーションデータにＰＤＭＡユニット（図１の１４０）により実行されるメモリからメモリへの転送処理を示すフローチャート（３００）である。
図４は、図１のＰＭＴＲＰユニット（１２０）がメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する本発明の好ましい実施形態を部分的に示すハイブリッドのブロック概略図およびデータフロー図である。
図５は、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（１２０）の制御ユニット（１２１）により実行されるメモリアドレス変換処理のステップを示すフローチャート（５００）である。
図６は、本発明の好ましい実施形態に従う、入力アドレス空間（６１０）と変換されたアドレス空間（６３０）の間のセグメントベースのアドレス変換方式のマッピング例を示すブロック図（６００）である。
図７は、［３］の図６−１に示されるようなＤＥＣ  ＶＡＸ−１１／７６０に対する単一レベルのダイレクトマッピングページベースの方式の入力アドレス空間（７０１）の編成を示すブロック図（６７０）である。
図８は、本発明の好ましい実施形態に対する単一レベルのダイレクトマッピングされたセグメントベース方式に対する入力空間（７０１）の新規編成を示すブロック図（６７０）である。
図９は本発明の好ましい実施形態に従う２階層のメモリ管理手段を示すブロック図（９００）である。
図１０は本発明の好ましい実施形態に従う、メモリ転送リクエスト（１０１０）およびメモリ変換応答（１０４０）において存在してよいさまざまなフィールドを示すブロック図（１０００）である。
図１１は、図１のＰＭＴＲＰユニット（１２０）を分割された単一レベルのダイレクトインデックスのページベースメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する、本発明の好ましい実施形態（１１００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。
図１２は、図１のＰＭＴＲＰユニット（１２０）はメモリ管理ユニット（ＭＭＵ）の機能を実装することに適用する、本発明の好ましい実施形態を部分的に示すハイブリッドブロック概略図およびデータフロー図である。
図１３は、図１１および図１２に示されるような、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（図１の１２０）の制御ユニット（図１の１２１）により実行されるメモリアドレス変換処理を示すフローチャート（１３００）である。
図１４は、本発明の好ましい実施形態に従うＰＭＴＲＰユニット（１２０）のメモリストア（１２３）に格納されるプログラム可能なコンフィギュレーションデータにアクセスするためのアドレス空間（１４００）の分割を示すブロック図である。
図１５は、本発明の好ましい実施形態に従う図１４において利用する１６ビット幅のコンフィギュレーションメタデータフィールド（１５１０）を示すブロック図である。
図１６は、本発明の好ましい実施形態に従う図１４において利用された領域記述子（１６００）を示すブロック図である。
図１７は、図１、１４、１５および１６を参照として示されるような、本発明の好ましい実施形態に従う装置（１７００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。
図１８は、図１４、１５、１６および１７に従うＰＭＴＲＰユニット（図１７の１２１）の制御ユニット（図１７の１２１）により実行されるメモリアドレス変換処理を示すフローチャート（１８００）である。
図１９は、本発明の好ましい実施形態に従うプログラム可能なメモリアドレス変換ポリシーで適用した範囲記述子（１９１０）に存在してよいさまざまなフィールドを示すブロック図である。
図２０は、本発明の好ましい実施形態に従うメモリ転送リクエスト（２００１）のフィールドを示すブロック図（２０００）である。
図２１は、図１のＰＭＴＲＰユニット（１２０）が２つのメモリ管理ユニット（２１０１，２１４０）を利用することに適用する本発明の好ましい実施形態（２１００）を部分的に示すハイブリッドブロック概略図およびデータフロー図である。
図２２は、本発明の好ましい実施形態に従う範囲記述子コンパレータモジュール（２２００）を部分的に示すハイブリッドブロック模式図およびデータフロー図である。
図２３は本発明の好ましい実施形態に従うコンパレータ結果アグリゲータモジュール（図２１の２１３０）を部分的に示すハイブリッドブロック概略図（２３００）である。
図２４は、本発明の好ましい実施形態に従う２つのＭＭＵ手段（図２１の２１０１から２１４０）を用いた入力アドレス空間（２４０１）の変換されたアドレス空間（２４０２）へのマッピングの例を示すブロック図（６００）である。
参考文献
［１］Ｈｅｎｒｙ  Ｍ．Ｌｅｖｙ，Ｃａｐａｂｉｌｉｔｙ−Ｂａｓｅｄ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ，Ｄｉｇｉｔａｌ  Ｐｒｅｓｓ，１９８４．
［２］Ｈａｒｖｅｙ  Ｇ．Ｃｒａｇｏｎ，Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｐｉｐｅｌｉｎｅｄ  Ｐｒｏｃｅｓｓｏｒ，１９９６．
［３］Ｄｉｇｉｔａｌ．Ｖａｘ１１／７８０  Ｈａｒｄｗａｒｅ  Ｈａｎｄｂｏｏｋ，１９７９−８０，１９７９．
【図１】
2018523247.tif 000011
【図２】
2018523247.tif 000012
【図３】
2018523247.tif 000013
【図４】
2018523247.tif 000014
【図５】
2018523247.tif 000015
【図６】
2018523247.tif 000016
【図７】
2018523247.tif 000017
【図８】
2018523247.tif 000018
【図９】
2018523247.tif 000019
【図１０】
2018523247.tif 000020
【図１１】
2018523247.tif 000021
【図１２】
2018523247.tif 000022
【図１３】
2018523247.tif 000023
【図１４】
2018523247.tif 000024
【図１５】
2018523247.tif 000025
【図１６】
2018523247.tif 000026
【図１７】
2018523247.tif 000027
【図１８】
2018523247.tif 000028
【図１９】
2018523247.tif 000029
【図２０】
2018523247.tif 000030
【図２１】
2018523247.tif 000031
【図２２】
2018523247.tif 000032
【図２３】
2018523247.tif 000033
【図２４】
2018523247.tif 000034
【国際調査報告】
2018523247.tif 000035
2018523247.tif 000036
2018523247.tif 000037
2018523247.tif 000038