物理メモリアドレスを問い合わせる方法及び装置

 

本発明は、物理メモリアドレスを問い合わせる方法及び装置を提供する。ここで、本方法は、スタンバイバッファに記憶されている、アドレス指定を実行するべき第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、仮想アドレスを伝達し、第2のスレッドによって送信されるメモリアドレス指定要求メッセージを受信するステップと、バイパス変換バッファ及びプリフェッチバッファにおいて、仮想アドレスに従って、対応する物理アドレスを問い合わせるステップとを含む。本発明において提供される、物理メモリアドレスを問い合わせる方法及び装置によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。

 

 

本出願は、2013年8月20に中国特許庁に出願され、「METHOD AND APPARATUS FOR QUERYING PHYSICAL MEMORY ADDRESS」と題された中国特許出願第201310364417.1号の優先権を主張し、この中国特許出願は、その全体が参照によって本明細書に組み込まれる。
本発明は、情報技術の分野に関し、特に、物理メモリアドレスを問い合わせる方法及び装置に関する。
現在のところ、プロセッサは、主に、仮想アドレス(Virtual Address,略してVA)を使用して、メモリアドレス指定を実行し、実際の物理アドレス(Physical Address,略してPA)空間よりもずっと大きいアドレス指定空間は、仮想アドレス技術を使用することによって生成され得る。仮想メモリを使用するプロセッサは、主に、ページング(Paging)メカニズムを使用する。仮想アドレス空間は、ページ(Page)単位で分割される。それに応じて、物理アドレス空間も、ページ(Page)単位で分割される。仮想アドレスを使用することによってメモリアドレス指定を実行するプロセスにおいて、プロセッサ内のメモリ管理ユニット(Memory Management Unit,略してMMU)は、受信された仮想アドレスを物理アドレスに変換する必要がある。現在のところ、プロセッサは、主に、バイパス変換バッファを使用する。バイパス変換バッファは、プロセッサによって最近アクセスされたメモリの仮想アドレスと物理アドレスとの間のマッピング関係を含む変換索引バッファ(Translation Lookaside Buffer,略してTLB)である。TLB内にバッファリングされるデータは、メモリページテーブルエリアに記憶されるデータと一致する。メモリページテーブルエリアにおいて、仮想アドレスと物理アドレスとの間のマッピング関係を含む各レコードは、ページテーブルエントリ(Page Table Entry,略してPTE)と称される。同様に、TLBも、ページテーブルエントリPTEのうちの一部又は全部さえもバッファリングする。
メモリアドレス指定が、仮想アドレスを使用することによって実行される場合、アプリケーションプログラムによって送信された仮想アドレスを受信した後、まず、メモリ管理ユニットMMUは、バイパス変換バッファのTLBにおいて検索を実行する。TLBが、仮想アドレスに対応するページテーブルエントリをバッファリングする場合、すなわち、TLBがヒットした(Hit)場合、メモリ管理ユニットは、レベル1キャッシュ(Level 1 Cache)におけるデータアクセスを、ページテーブルエントリ内の物理アドレスを使用することによって実行する。物理アドレスに対応するデータが、レベル1キャッシュに存在しない場合、メモリ管理ユニットは、レベル2キャッシュ(Level 2 Cache)におけるデータアクセスを実行する。物理アドレスに対応するデータが、レベル2キャッシュに存在しない場合、メモリ管理ユニットは、メモリにおけるデータアクセスを実行する。TLBが、仮想アドレスに対応するページテーブルエントリを含まない場合、すなわち、TLBがミスした(Miss)場合、ソフトウェア又はオペレーティングシステム(Operating System,略してOS)は、仮想アドレスに対応する物理アドレスを検索し、仮想アドレスと物理アドレスとの間のマッピング関係をページテーブルエントリとして使用し、ページテーブルエントリをTLB内に記憶する必要があり、それにより、メモリ管理ユニットMMUが、後続の検索を実行し得る。
従来技術において、プリフェッチバッファ(Prefetch Buffer,略してPB)は、メモリ管理ユニットMMUに配置される。メモリ管理ユニットMMUにおいて、PBは、複数のページテーブルエントリを記憶する。物理メモリアドレスのアドレス指定が実行される場合、まず、TLBが、対応する物理アドレスについて検索され、TLBがミスした後、PBが、対応する物理アドレスについて検索され続ける。対応する物理アドレスが、PBに存在する場合、データアクセスは、物理アドレスを使用することによって実行され、ヒットしたページテーブルエントリは、TLB内に記憶される。対応する物理アドレスが、PBに存在しない場合、メモリ内の複数のページテーブルエントリは、PB内に記憶されて、PBに現在記憶されているデータが上書きされる。
しかしながら、マルチスレッドプロセッサの場合、複数のハードウェアスレッドは、1つのTLBを共有し、TLBの容量は限られているため、ハードウェアスレッドの数が、比較的大きい場合、TLBにおけるページテーブルエントリの数は、マルチスレッド要件を満たすことができない。結果として、各ハードウェアスレッドが、仮想アドレスを使用することによってメモリアドレス指定を実行する場合、TLBのミス率は、比較的高くなる。TLBがミスした後に初めて、仮想アドレスに対応するページテーブルエントリが、メモリから取得され、次いで、バッファリングされ得る。そのため、アドレス指定時間は、比較的長くなる。
本発明は、物理メモリアドレスを問い合わせる方法及び装置を提供して、アドレス指定時間が従来技術において比較的長くなるという問題を解決する。
第1の態様によれば、本発明は、物理メモリアドレスを問い合わせる方法であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップと
を含む方法を提供する。
第1の態様の第1の取り得る実装手法において、仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ
を含む。
第1の態様の第1の取り得る実装手法によれば、第2の取り得る実装手法において、本方法は、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせるステップ
をさらに含む。
第1の態様の第1の取り得る実装手法及び第2の取り得る実装手法によれば、第3の取り得る実装手法において、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、本方法は、
仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ
をさらに含む。
第1の態様の第2の取り得る実装手法によれば、第4の取り得る実装手法において、本方法は、
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶するステップ
をさらに含む。
第1の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、及び第4の取り得る実装手法によれば、第5の取り得る実装手法において、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップの前に、本方法は、
バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップと、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除するステップ
をさらに含む。
第1の態様の第5の取り得る実装手法によれば、第6の取り得る実装手法において、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップの後に、本方法は、
スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除するステップ
をさらに含む。
第1の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、第4の取り得る実装手法、第5の取り得る実装手法、及び第6の取り得る実装手法によれば、第7の取り得る実装手法において、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ
を含む。
第1の態様の第7の取り得る実装手法によれば、第8の取り得る実装手法において、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、本方法は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶するステップ
をさらに含む。
第2の態様によれば、本発明は、物理メモリアドレスを問い合わせる装置であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
第2のスレッドに対応するメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
を備える装置を提供する。
第2の態様の第1の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する
ように具体的に構成される。
第2の態様の第1の取り得る実装手法によれば、第2の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせる
ようにさらに構成される。
第2の態様の第1の取り得る実装手法及び第2の取り得る実装手法によれば、第3の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除する
ようにさらに構成される。
第2の態様の第2の取り得る実装手法によれば、第4の取り得る実装手法において、問い合わせモジュールは、
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する
ようにさらに構成される。
第2の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、及び第4の取り得る実装手法によれば、第5の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成される。
第1の態様の第5の取り得る実装手法によれば、第6の取り得る実装手法において、実行モジュールは、
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成される。
第2の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、第4の取り得る実装手法、第5の取り得る実装手法、及び第6の取り得る実装手法によれば、第7の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする
ように具体的に構成される。
第2の態様の第7の取り得る実装手法によれば、第8の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶する
ようにさらに構成される。
第3の態様によれば、本発明は、メモリと、バイパス変換バッファと、スタンバイバッファと、プリフェッチバッファと、プロセッサとを備える、物理メモリアドレスを問い合わせる装置であって、
メモリは、命令を記憶するように構成され、
バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
スタンバイバッファは、バイパス変換バッファに記憶されているTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
プリフェッチバッファは、スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
プロセッサは、メモリ内に記憶された命令を実行して、第1の態様に係る、物理メモリアドレスを問い合わせる方法を実行するように構成される、
装置を提供する。
本発明において提供される、物理メモリアドレスを問い合わせる方法及び装置によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
本発明の実施形態又は従来技術における技術的解決策をより明確に説明するために、下記は、実施形態又は従来技術を説明するために必要とされる添付の図面を簡単に紹介する。明らかに、添付の図面は、下記の説明において、本発明のいくつかの実施形態を示し、当業者は、創作的努力なしに、これらの添付の図面から他の図面をさらに導き出し得る。
本発明に係る、物理メモリアドレスを問い合わせる方法の実施形態の概略フローチャートである。 本発明に係る、物理メモリアドレスを問い合わせる方法の別の実施形態の概略フローチャートである。 バイパス変換バッファの変換索引バッファTLBにおいて、設定時間内に問い合わせをされないページテーブルエントリを、対応するスレッドのスタンバイバッファ内に記憶するステップの概略図である。 対応するスレッドのスタンバイバッファにおけるページテーブルエントリをプリフェッチバッファPB内に記憶するステップの概略図である。 仮想アドレスVAに従って物理メモリアドレスのアドレス指定をするステップの概略図である。 本発明に係る、物理メモリアドレスを問い合わせる装置の実施形態の概略構造図である。 本発明に係る、物理メモリアドレスを問い合わせる装置の別の実施形態の概略構造図である。
本発明の実施形態の目的、技術的解決策、及び利点をより明確にするために、下記は、本発明の実施形態における技術的解決策を、本発明の実施形態において添付の図面を参照しつつ、明確かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の一部ではあるが、全部ではない。創作的努力なしに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲内に収まるべきものである。
図1は、本発明に係る、物理メモリアドレスを問い合わせる方法の実施形態の概略フローチャートである。図1に示されるように、下記の方法実施形態において提供される方法は、様々なタイプの端末デバイス、例えば、PC、PAD、及び携帯電話に対して適用可能であり得る。下記のステップは、前述の様々な端末デバイスにおける中央演算処理装置(Central Processing Unit,略してCPU)によって実行され得、具体的には、CPUにおけるメモリ管理ユニットMMUなどによって実行され得る。本方法は、具体的には、下記を含む:
S101:プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップ。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
S102:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップ。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
具体的には、アドレス指定を実行するべき、S101に従って判定されるスレッド、すなわち、第2のスレッドは、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファPB内に記憶する。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。随意的に、スタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。同様に、バイパス変換バッファに記憶されるページテーブルエントリも、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。プリフェッチバッファPBに記憶されるページテーブルエントリは、仮想アドレスと物理アドレスとの間の対応、及びアドレス指定を実行するべき各対応するスレッドのIDを含む。
本明細書において留意すべきことは、スタンバイバッファの数が1つ又は複数となり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファの数とプリフェッチバッファの数との双方は、1つ又は複数となり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
S103:第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップ。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
S104:仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップ。
具体的には、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファPBに記憶されたページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファ又はプリフェッチバッファPBに存在する場合、データアクセスは、この物理アドレスを使用することによって実行される。仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、メモリに問い合わせがされて、仮想アドレスVAに対応する物理アドレスが得られる。
この実施形態において提供される、物理メモリアドレスを問い合わせる方法によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図2は、本発明に係る、物理メモリアドレスを問い合わせる方法の別の実施形態の概略フローチャートである。図2に示されるように、下記の方法実施形態において提供される方法は、様々なタイプの端末デバイス、例えば、PC、PAD、及び携帯電話に対して適用可能であり得る。下記のステップは、中央演算処理装置CPUによって実行され得、具体的には、CPUにおけるメモリ管理ユニットMMUなどによって実行され得る。本方法は、具体的には、下記を含む:
S201:プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップ。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
S202:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップ。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
下記のステップS203又はS204は、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数と、プリフェッチバッファPBの記憶容量との間の関係に従って、ここでは選択的に実行され得る。
S203:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ。
S204:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ。
具体的には、アドレス指定を実行するべき、S201に従って判定されるスレッド、すなわち、第2のスレッドは、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの一部又は全部をプリフェッチバッファPB内に記憶し、PBに現在記憶されているデータを削除する。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
随意的な実装手法として、各スレッドは、1つのスタンバイバッファに対応し得、各スタンバイバッファに記憶されるページテーブルエントリは、TLBにおいて設定時間内に問い合わせをされない、対応するスレッドのページテーブルエントリであり得る。図3は、バイパス変換バッファの変換索引バッファTLBにおいて、設定時間内に問い合わせをされないページテーブルエントリを、対応するスレッドのスタンバイバッファ内に記憶するステップの概略図である。図3に示されるように、バイパス変換バッファの変換索引バッファTLBに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。各スレッドに対応するスタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応を含む。スタンバイバッファ選択ユニットは、設定時間内に問い合わせをされず、TLBに記憶されるページテーブルエントリ及び対応するスレッドIDを受信し、このスレッドIDに従って、対応するスレッドのスタンバイバッファ内にページテーブルエントリを記憶する。
図4は、対応するスレッドのスタンバイバッファにおけるページテーブルエントリをプリフェッチバッファPB内に記憶するステップの概略図である。図4に示されるように、スタンバイバッファ選択ユニットは、アドレス指定を実行するべき判定済みのスレッドに従って、対応するスレッドIDと、アドレス指定を実行するべきスレッドのスタンバイバッファ内のページテーブルエントリの一部又は全部とを、プリフェッチバッファPB内に記憶し、それにより、プリフェッチバッファPBは、TLBにおいて置換される、アドレス指定を実行するべきスレッドのページテーブルエントリを記憶する。TLBにおいて置換されるこれらのページテーブルエントリのうちの大部分は、ページテーブルエントリが必要とされるという理由で置換されるのではなく、TLBの記憶容量が限定されており、スレッドの数が大きいため、いくつかのスレッドのよく使用されるページテーブルエントリが置換されるという理由で置換される。
本明細書においては、32個のスレッドが、128個のページテーブルエントリの記憶容量を有する1つのバイパス変換バッファを共有し、各スレッドに対応するスタンバイバッファの記憶容量及び各スレッドに対応するプリフェッチバッファPBの記憶容量が、32個のページテーブルエントリに設定され得、アドレス指定を実行するべきスレッドが、アドレス指定を実行する前に、アドレス指定を実行するべきスレッドに対応するスタンバイバッファ内の全てのページテーブルエントリが、プリフェッチバッファPB内に記憶され得、プリフェッチバッファPBに現在記憶されているデータは削除され得る、と仮定される。バイパス変換バッファ及びプリフェッチバッファPBは、仮想アドレスVA間の比較を、連想記憶メモリ(content addressable memory,略してCAM)を使用することによって完了させ得る。プリフェッチバッファPBの記憶容量の増加は、チップ消費電力を増加させ得、したがって、比較的小さい記憶容量を有するプリフェッチバッファPB、例えば、8個のページテーブルエントリの記憶容量を有するプリフェッチバッファPBが選択され得る。それにより、アドレス指定を実行するべきスレッドが、アドレス指定を実行する前に、アドレス指定を実行するべきスレッドに対応するスタンバイバッファ内の最短の記憶時間を有する8個のページテーブルエントリが、プリフェッチバッファPB内に記憶され得、プリフェッチバッファPBに現在記憶されているデータは削除され得る。
S205:第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップ。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
S206:仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップ。
下記のステップS207、S208、又はS209は、バイパス変換バッファ及びプリフェッチバッファPBにおけるアドレス指定結果に従って、ここでは選択的に実行され得る。
S207:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ。
S208:仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行し、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリをバイパス変換バッファに記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリが、プリフェッチバッファ内に記憶される。
S209:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせをし、仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する。
具体的には、図5は、仮想アドレスVAに従って物理メモリアドレスのアドレス指定をするステップの概略図である。図5に示されるように、バイパス変換バッファに記憶されるページテーブルエントリ及びプリフェッチバッファPBに記憶されるページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在する場合、すなわち、バイパス変換バッファのTLBがヒットした(TLB−Hit)場合、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在してもしなくても、すなわち、プリフェッチバッファPBが、ヒットしても(PB−Hit)又はミスしても(PB−Miss)、データアクセスは、バイパス変換バッファ内に発見される物理アドレス、すなわち、第1の物理アドレスPA1に従って実行される。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在しない、すなわち、バイパス変換バッファのTLBがミスした(TLB−Miss)が、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在する、すなわち、プリフェッチバッファPBがヒットした(PB−Hit)場合、データアクセスは、プリフェッチバッファPB内に発見される物理アドレス、すなわち、第2の物理アドレスPA2に従って実行され、発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリが、バイパス変換バッファのTLB内に記憶される。プリフェッチバッファPBが、スタンバイバッファ内の第2のスレッドのページテーブルエントリの一部のみを記憶する場合、例えば、前述のプリフェッチバッファPBが、第2のスレッドの、スタンバイバッファにおける最短の記憶時間を有する8個のページテーブルエントリのみを記憶する場合、プリフェッチバッファPB内のヒットしたページテーブルエントリは、TLB内に記憶され、第2のスレッドの、比較的短い記憶時間を有する次のページテーブルエントリは、スタンバイバッファから抽出され、プリフェッチバッファPB内に記憶され得る。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、すなわち、バイパス変換バッファとプリフェッチバッファPBとの双方がミスした(TLB−Miss及びPB−Miss)場合、仮想アドレスVAと、仮想アドレスVAに対応する物理アドレスについての対応するスレッドID、すなわち、第3の物理アドレスPA3とに従って、ページテーブル走査ユニットを使用することによって、メモリに問い合わせがされる。データアクセスは、発見された第3の物理アドレスPA3に従って実行される。発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリ、及び対応するスレッドIDは、バイパス変換バッファのTLB内に同時に記憶される。
ステップS208又はS209について、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリは、スタンバイバッファ内に記憶され、設定時間内に問い合わせをされないページテーブルエントリは、バイパス変換バッファから削除される。
具体的には、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、最も低いヒット率を有するページテーブルエントリ、すなわち、設定時間内にミスしたページテーブルエントリは、スタンバイバッファ内に優先的に記憶され、設定時間内にミスしたページテーブルエントリは削除される。
スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、スタンバイバッファから削除される。
具体的には、スタンバイバッファ内のページテーブルエントリのより長い記憶時間は、そのページテーブルエントリのより低いヒット率を示し、したがって、「先入れ先出し(First Input First Output,略してFIFO)」の記憶モードが、スタンバイバッファにおいて使用され得る。すなわち、スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、優先的に削除される。
この実施形態において提供される、物理メモリアドレスを問い合わせる方法によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図6は、本発明に係る、物理メモリアドレスを問い合わせる装置の実施形態の概略構造図である。図6に示されるように、この実施形態における、物理メモリアドレスを問い合わせる装置60は、物理メモリアドレスを問い合わせる前述の方法を実行する特定のエンティティであり、具体的には、判定モジュール61と、実行モジュール62と、受信モジュール63と、問い合わせモジュール64とを含む。
判定モジュール61は、プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成される。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
実行モジュール62は、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成される。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
具体的には、下記の2つのケースが、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数とプリフェッチバッファPBの記憶容量との間の関係に従って存在する。
ケース1:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリが、プリフェッチバッファ内に記憶され、プリフェッチバッファに現在記憶されているデータは上書きされる。
ケース2:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリが、プリフェッチバッファ内に記憶され、プリフェッチバッファに現在記憶されているデータは上書きされる。
具体的には、アドレス指定を実行するべき、判定モジュール61によって判定されるスレッド、すなわち、第2のスレッドに従って、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの一部又は全部が、プリフェッチバッファPB内に記憶される。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。随意的に、スタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。同様に、バイパス変換バッファに記憶されるページテーブルエントリも、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。プリフェッチバッファPBに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及びアドレス指定を実行するべき対応するスレッドのIDを含む。
ここで留意するべきことは、スタンバイバッファの数が1つ又は複数であり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファの数とプリフェッチバッファの数との双方は、1つ又は複数であり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
受信モジュール63は、第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するように構成される。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
問い合わせモジュール64は、仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成される。
具体的には、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファPBに記憶されたページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。下記の3つのケースは、ここでは、バイパス変換バッファ及びプリフェッチバッファPBにおけるアドレス指定結果に従って存在し得る。
ケース1:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、メモリは、第1の物理アドレスを使用することによってアクセスされて、データアクセスが実行される。
具体的には、仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在する場合、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在してもしなくても、データアクセスは、バイパス変換バッファ内に発見される物理アドレス、すなわち、第1の物理アドレスに従って実行される。
ケース2:仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、メモリは、第2の物理アドレスを使用することによってアクセスされて、データアクセスが実行される。仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリは、バイパス変換バッファ内に記憶され、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリは削除される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファには存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリが、プリフェッチバッファ内に記憶される。
具体的には、仮想アドレスVAに対応する物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在する場合、データアクセスは、プリフェッチバッファPB内に発見される物理アドレス、すなわち、第2の物理アドレスに従って実行され、発見されたページテーブルエントリ、すなわち、ヒットしたページエントリは、バイパス変換バッファのTLB内に記憶される。プリフェッチバッファPBが、スタンバイバッファ内の第2のスレッドのページテーブルエントリのうちの一部のみを記憶する場合、プリフェッチバッファPB内のヒットしたページテーブルエントリが、TLB内に記憶された後に、1つのページテーブルエントリが、スタンバイバッファから読み出され、プリフェッチバッファPB内に記憶され得る。
ケース3:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、メモリは、仮想アドレスに対応する第3の物理アドレスについて問い合わせをされ、仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリは、バイパス変換バッファ内に記憶される。
具体的には、仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、すなわち、バイパス変換バッファとプリフェッチバッファPBとの双方がミスした場合、メモリは、仮想アドレスVAに対応する物理アドレス、すなわち、第3の物理アドレスについて問い合わせをされる必要があり、発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリは、バイパス変換バッファのTLB内に記憶される。
さらに、実行モジュール62は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成され得る。
具体的には、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、最も低いヒット率を有するページテーブルエントリ、すなわち、設定時間内にミスしたページテーブルエントリは、スタンバイバッファ内に優先的に記憶され、設定時間内にミスしたページテーブルエントリは削除される。
さらに、実行モジュール62は、
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成され得る。
具体的には、スタンバイバッファ内のページテーブルエントリのより長い記憶時間は、そのページテーブルエントリのより低いヒット率を示し、したがって、「先入れ先出し(FIFO)」の記憶モードが、スタンバイバッファにおいて使用され得る。すなわち、スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、優先的に削除される。
この実施形態において提供される、物理メモリアドレスを問い合わせる装置によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図7は、本発明に係る、物理メモリアドレスを問い合わせる装置の別の実施形態の概略構造図である。図7に示されるように、この実施形態における、物理メモリアドレスを問い合わせる装置は、メモリ71と、バイパス変換バッファ72と、スタンバイバッファ73と、プリフェッチバッファ74と、プロセッサ75とを含む。
メモリ71は、命令を記憶するように構成される。
バイパス変換バッファ72は、変換索引バッファTLBを記憶するように構成される。
スタンバイバッファ73は、バイパス変換バッファに記憶されるTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成される。
プリフェッチバッファ74は、スタンバイバッファに記憶される、対応するスレッドのページテーブルエントリを記憶するように構成される。
プロセッサ75は、メモリに記憶された命令を実行して、図1又は図2に示される、物理メモリアドレスを問い合わせる方法を実行するように構成される。
具体的には、メモリ71は、高速RAMメモリを含み得、又は不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つのディスクメモリを含み得る。随意的に、メモリ71は、少なくとも1つの記憶装置を含み得る。メモリ71は、命令を記憶し、物理メモリアドレスを問い合わせる装置が実行される場合、プロセッサ75は、メモリ71と通信し、プロセッサ75は、命令を実行し、それにより、物理メモリアドレスを問い合わせる装置は、本発明の実施形態において提供される、物理メモリアドレスを問い合わせる方法を実行することができる。
スタンバイバッファ73は、仮想アドレスと物理アドレスとの間の対応を含むページテーブルエントリを記憶し、各対応するスレッドのIDを含み得る。バイパス変換バッファ72は、仮想アドレスと物理アドレスとの間の対応を含むページテーブルエントリを記憶し、各対応するスレッドのIDを含み得る。プリフェッチバッファ74は、仮想アドレスとの間の対応を含むページテーブルエントリを記憶し、アドレス指定を実行するべき対応するスレッドのIDを含み得る。
ここで留意すべきことは、スタンバイバッファ73の数が1つ又は複数であり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファ72の数とプリフェッチバッファ74の数との双方は、1つ又は複数であり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
この実施形態におけるプロセッサは、集積回路チップであってもよく、信号処理能力を有する。実装プロセスにおいて、前述の方法におけるステップは、プロセッサ内のハードウェアの集積論理回路又はソフトウェアの形式の命令を使用することによって完了され得る。前述のプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けプロセッサ(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは別のプログラマブルロジックコンポーネント、ディスクリートゲート若しくはトランジスタロジックコンポーネント、又はディスクリートハードウェアコンポーネントであってもよく、これらは、本発明の実施形態において開示された方法、ステップ、及び論理ブロック図を実装又は実行し得る。前述のプロセッサは、マイクロプロセッサであってもよく、又は前述のプロセッサは、任意の従来のプロセッサなどであってもよい。本発明の実施形態を参照しつつ開示された方法のステップは、ハードウェアプロセッサを用いて直接実行及び完了されてもよく、又はプロセッサ内のハードウェアモジュールとソフトウェアモジュールとの組み合わせを用いて実行及び完了されてもよい。ソフトウェアモジュールは、本技術分野における成熟した記憶媒体、例えば、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、又はレジスタなどに位置し得る。記憶媒体は、メモリに位置し、プロセッサは、メモリ内の情報を読出し、前述の方法におけるステップを、プロセッサのハードウェアとの組み合わせにおいて完了する。
本発明の実施形態は、チップをさらに提供する。ここで、チップは、物理メモリアドレスを問い合わせるように構成され、チップは、前述のプロセッサを含み得る。
この実施形態において提供される、物理メモリアドレスを問い合わせる装置によれば、プロセッサ75は、メモリ71に記憶される命令を実行し、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、バイパス変換バッファ及びプリフェッチバッファに同時に問い合わせをする。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
当業者は、前述の方法実施形態のステップの全部又は一部がプログラム命令関連ハードウェアによって実装され得ることを理解し得る。前述のプログラムは、コンピュータ読取可能な媒体に記憶され得る。プログラムが実行されると、前述の方法実施形態のステップが実行される。前述の記憶媒体は、プログラムコードを記憶することができる任意の媒体、例えば、ROM、RAM、磁気ディスク、又は光ディスクなどを含む。
最後に、留意すべきことは、前述の実施形態が本発明の技術的解決策を説明することを意図されたものに過ぎず、本発明を限定することを意図されたものではないことである。本発明は、前述の実施形態を参照しつつ詳細に説明されているが、当業者は、当業者が前述の実施形態において説明された技術的解決策に対して変形を行い得ること、又はその技術的特徴の一部若しくは全部に対して均等な置換を行い得ることを理解するべきである。しかしながら、こうした変形又は置換は、対応する技術的解決策の本質を、本発明の実施形態における技術的解決策の範囲から逸脱させるものではない。
本発明は、情報技術の分野に関し、特に、物理メモリアドレスを問い合わせる方法及び装置に関する。
現在のところ、プロセッサは、主に、仮想アドレス(Virtual Address,略してVA)を使用して、メモリアドレス指定を実行し、実際の物理アドレス(Physical Address,略してPA)空間よりもずっと大きいアドレス指定空間は、仮想アドレス技術を使用することによって生成され得る。仮想メモリを使用するプロセッサは、主に、ページング(Paging)メカニズムを使用する。仮想アドレス空間は、ページ(Page)単位で分割される。それに応じて、物理アドレス空間も、ページ(Page)単位で分割される。仮想アドレスを使用することによってメモリアドレス指定を実行するプロセスにおいて、プロセッサ内のメモリ管理ユニット(Memory Management Unit,略してMMU)は、受信された仮想アドレスを物理アドレスに変換する必要がある。現在のところ、プロセッサは、主に、バイパス変換バッファを使用する。バイパス変換バッファは、プロセッサによって最近アクセスされたメモリの仮想アドレスと物理アドレスとの間のマッピング関係を含む変換索引バッファ(Translation Lookaside Buffer,略してTLB)である。TLB内にバッファリングされるデータは、メモリページテーブルエリアに記憶されるデータと一致する。メモリページテーブルエリアにおいて、仮想アドレスと物理アドレスとの間のマッピング関係を含む各レコードは、ページテーブルエントリ(Page Table Entry,略してPTE)と称される。同様に、TLBも、ページテーブルエントリPTEのうちの一部又は全部さえもバッファリングする。
メモリアドレス指定が、仮想アドレスを使用することによって実行される場合、アプリケーションプログラムによって送信された仮想アドレスを受信した後、まず、メモリ管理ユニットMMUは、バイパス変換バッファのTLBにおいて検索を実行する。TLBが、仮想アドレスに対応するページテーブルエントリをバッファリングする場合、すなわち、TLBがヒットした(Hit)場合、メモリ管理ユニットは、レベル1キャッシュ(Level 1 Cache)におけるデータアクセスを、ページテーブルエントリ内の物理アドレスを使用することによって実行する。物理アドレスに対応するデータが、レベル1キャッシュに存在しない場合、メモリ管理ユニットは、レベル2キャッシュ(Level 2 Cache)におけるデータアクセスを実行する。物理アドレスに対応するデータが、レベル2キャッシュに存在しない場合、メモリ管理ユニットは、メモリにおけるデータアクセスを実行する。TLBが、仮想アドレスに対応するページテーブルエントリを含まない場合、すなわち、TLBがミスした(Miss)場合、ソフトウェア又はオペレーティングシステム(Operating System,略してOS)は、仮想アドレスに対応する物理アドレスを検索し、仮想アドレスと物理アドレスとの間のマッピング関係をページテーブルエントリとして使用し、ページテーブルエントリをTLB内に記憶する必要があり、それにより、メモリ管理ユニットMMUが、後続の検索を実行し得る。
従来技術において、プリフェッチバッファ(Prefetch Buffer,略してPB)は、メモリ管理ユニットMMUに配置される。メモリ管理ユニットMMUにおいて、PBは、複数のページテーブルエントリを記憶する。物理メモリアドレスのアドレス指定が実行される場合、まず、TLBが、対応する物理アドレスについて検索され、TLBがミスした後、PBが、対応する物理アドレスについて検索され続ける。対応する物理アドレスが、PBに存在する場合、データアクセスは、物理アドレスを使用することによって実行され、ヒットしたページテーブルエントリは、TLB内に記憶される。対応する物理アドレスが、PBに存在しない場合、メモリ内の複数のページテーブルエントリは、PB内に記憶されて、PBに現在記憶されているデータが上書きされる。
しかしながら、マルチスレッドプロセッサの場合、複数のハードウェアスレッドは、1つのTLBを共有し、TLBの容量は限られているため、ハードウェアスレッドの数が、比較的大きい場合、TLBにおけるページテーブルエントリの数は、マルチスレッド要件を満たすことができない。結果として、各ハードウェアスレッドが、仮想アドレスを使用することによってメモリアドレス指定を実行する場合、TLBのミス率は、比較的高くなる。TLBがミスした後に初めて、仮想アドレスに対応するページテーブルエントリが、メモリから取得され、次いで、バッファリングされ得る。そのため、アドレス指定時間は、比較的長くなる。
本発明は、物理メモリアドレスを問い合わせる方法及び装置を提供して、アドレス指定時間が従来技術において比較的長くなるという問題を解決する。
第1の態様によれば、本発明は、物理メモリアドレスを問い合わせる方法であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップと
を含む方法を提供する。
第1の態様の第1の取り得る実装手法において、仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ
を含む。
第1の態様の第1の取り得る実装手法によれば、第2の取り得る実装手法において、本方法は、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせるステップ
をさらに含む。
第1の態様の第1の取り得る実装手法及び第2の取り得る実装手法によれば、第3の取り得る実装手法において、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、本方法は、
仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ
をさらに含む。
第1の態様の第2の取り得る実装手法によれば、第4の取り得る実装手法において、本方法は、
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶するステップ
をさらに含む。
第1の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、及び第4の取り得る実装手法によれば、第5の取り得る実装手法において、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップの前に、本方法は、
バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップと、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除するステップ
をさらに含む。
第1の態様の第5の取り得る実装手法によれば、第6の取り得る実装手法において、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップの後に、本方法は、
スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除するステップ
をさらに含む。
第1の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、第4の取り得る実装手法、第5の取り得る実装手法、及び第6の取り得る実装手法によれば、第7の取り得る実装手法において、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ
を含む。
第1の態様の第7の取り得る実装手法によれば、第8の取り得る実装手法において、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、本方法は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶するステップ
をさらに含む。
第2の態様によれば、本発明は、物理メモリアドレスを問い合わせる装置であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
第2のスレッドに対応するメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
を備える装置を提供する。
第2の態様の第1の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する
ように具体的に構成される。
第2の態様の第1の取り得る実装手法によれば、第2の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせる
ようにさらに構成される。
第2の態様の第1の取り得る実装手法及び第2の取り得る実装手法によれば、第3の取り得る実装手法において、問い合わせモジュールは、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除する
ようにさらに構成される。
第2の態様の第2の取り得る実装手法によれば、第4の取り得る実装手法において、問い合わせモジュールは、
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する
ようにさらに構成される。
第2の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、及び第4の取り得る実装手法によれば、第5の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成される。
の態様の第5の取り得る実装手法によれば、第6の取り得る実装手法において、実行モジュールは、
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成される。
第2の態様の第1の取り得る実装手法、第2の取り得る実装手法、第3の取り得る実装手法、第4の取り得る実装手法、第5の取り得る実装手法、及び第6の取り得る実装手法によれば、第7の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする
ように具体的に構成される。
第2の態様の第7の取り得る実装手法によれば、第8の取り得る実装手法において、実行モジュールは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶する
ようにさらに構成される。
第3の態様によれば、本発明は、メモリと、バイパス変換バッファと、スタンバイバッファと、プリフェッチバッファと、プロセッサとを備える、物理メモリアドレスを問い合わせる装置であって、
メモリは、命令を記憶するように構成され、
バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
スタンバイバッファは、バイパス変換バッファに記憶されているTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
プリフェッチバッファは、スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
プロセッサは、メモリ内に記憶された命令を実行して、第1の態様に係る、物理メモリアドレスを問い合わせる方法を実行するように構成される、
装置を提供する。
本発明において提供される、物理メモリアドレスを問い合わせる方法及び装置によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
本発明の実施形態又は従来技術における技術的解決策をより明確に説明するために、下記は、実施形態又は従来技術を説明するために必要とされる添付の図面を簡単に紹介する。明らかに、添付の図面は、下記の説明において、本発明のいくつかの実施形態を示し、当業者は、創作的努力なしに、これらの添付の図面から他の図面をさらに導き出し得る。
本発明に係る、物理メモリアドレスを問い合わせる方法の実施形態の概略フローチャートである。 本発明に係る、物理メモリアドレスを問い合わせる方法の別の実施形態の概略フローチャートである。 バイパス変換バッファの変換索引バッファTLBにおいて、設定時間内に問い合わせをされないページテーブルエントリを、対応するスレッドのスタンバイバッファ内に記憶するステップの概略図である。 対応するスレッドのスタンバイバッファにおけるページテーブルエントリをプリフェッチバッファPB内に記憶するステップの概略図である。 仮想アドレスVAに従って物理メモリアドレスのアドレス指定をするステップの概略図である。 本発明に係る、物理メモリアドレスを問い合わせる装置の実施形態の概略構造図である。 本発明に係る、物理メモリアドレスを問い合わせる装置の別の実施形態の概略構造図である。
本発明の実施形態の目的、技術的解決策、及び利点をより明確にするために、下記は、本発明の実施形態における技術的解決策を、本発明の実施形態において添付の図面を参照しつつ、明確かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の一部ではあるが、全部ではない。創作的努力なしに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲内に収まるべきものである。
図1は、本発明に係る、物理メモリアドレスを問い合わせる方法の実施形態の概略フローチャートである。図1に示されるように、下記の方法実施形態において提供される方法は、様々なタイプの端末デバイス、例えば、PC、PAD、及び携帯電話に対して適用可能であり得る。下記のステップは、前述の様々な端末デバイスにおける中央演算処理装置(Central Processing Unit,略してCPU)によって実行され得、具体的には、CPUにおけるメモリ管理ユニットMMUなどによって実行され得る。本方法は、具体的には、下記を含む:
S101:プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップ。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
S102:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップ。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
具体的には、アドレス指定を実行するべき、S101に従って判定されるスレッド、すなわち、第2のスレッドは、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファPB内に記憶する。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。随意的に、スタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。同様に、バイパス変換バッファに記憶されるページテーブルエントリも、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。プリフェッチバッファPBに記憶されるページテーブルエントリは、仮想アドレスと物理アドレスとの間の対応、及びアドレス指定を実行するべき各対応するスレッドのIDを含む。
本明細書において留意すべきことは、スタンバイバッファの数が1つ又は複数となり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファの数とプリフェッチバッファの数との双方は、1つ又は複数となり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
S103:第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップ。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
S104:仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップ。
具体的には、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファPBに記憶されたページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファ又はプリフェッチバッファPBに存在する場合、データアクセスは、この物理アドレスを使用することによって実行される。仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、メモリに問い合わせがされて、仮想アドレスVAに対応する物理アドレスが得られる。
この実施形態において提供される、物理メモリアドレスを問い合わせる方法によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図2は、本発明に係る、物理メモリアドレスを問い合わせる方法の別の実施形態の概略フローチャートである。図2に示されるように、下記の方法実施形態において提供される方法は、様々なタイプの端末デバイス、例えば、PC、PAD、及び携帯電話に対して適用可能であり得る。下記のステップは、中央演算処理装置CPUによって実行され得、具体的には、CPUにおけるメモリ管理ユニットMMUなどによって実行され得る。本方法は、具体的には、下記を含む:
S201:プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップ。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
S202:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップ。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
下記のステップS203又はS204は、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数と、プリフェッチバッファPBの記憶容量との間の関係に従って、ここでは選択的に実行され得る。
S203:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ。
S204:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ。
具体的には、アドレス指定を実行するべき、S201に従って判定されるスレッド、すなわち、第2のスレッドは、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの一部又は全部をプリフェッチバッファPB内に記憶し、PBに現在記憶されているデータを削除する。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
随意的な実装手法として、各スレッドは、1つのスタンバイバッファに対応し得、各スタンバイバッファに記憶されるページテーブルエントリは、TLBにおいて設定時間内に問い合わせをされない、対応するスレッドのページテーブルエントリであり得る。図3は、バイパス変換バッファの変換索引バッファTLBにおいて、設定時間内に問い合わせをされないページテーブルエントリを、対応するスレッドのスタンバイバッファ内に記憶するステップの概略図である。図3に示されるように、バイパス変換バッファの変換索引バッファTLBに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。各スレッドに対応するスタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応を含む。スタンバイバッファ選択ユニットは、設定時間内に問い合わせをされず、TLBに記憶されるページテーブルエントリ及び対応するスレッドIDを受信し、このスレッドIDに従って、対応するスレッドのスタンバイバッファ内にページテーブルエントリを記憶する。
図4は、対応するスレッドのスタンバイバッファにおけるページテーブルエントリをプリフェッチバッファPB内に記憶するステップの概略図である。図4に示されるように、スタンバイバッファ選択ユニットは、アドレス指定を実行するべき判定済みのスレッドに従って、対応するスレッドIDと、アドレス指定を実行するべきスレッドのスタンバイバッファ内のページテーブルエントリの一部又は全部とを、プリフェッチバッファPB内に記憶し、それにより、プリフェッチバッファPBは、TLBにおいて置換される、アドレス指定を実行するべきスレッドのページテーブルエントリを記憶する。TLBにおいて置換されるこれらのページテーブルエントリのうちの大部分は、ページテーブルエントリが必要とされるという理由で置換されるのではなく、TLBの記憶容量が限定されており、スレッドの数が大きいため、いくつかのスレッドのよく使用されるページテーブルエントリが置換されるという理由で置換される。
本明細書においては、32個のスレッドが、128個のページテーブルエントリの記憶容量を有する1つのバイパス変換バッファを共有し、各スレッドに対応するスタンバイバッファの記憶容量及び各スレッドに対応するプリフェッチバッファPBの記憶容量が、32個のページテーブルエントリに設定され得、アドレス指定を実行するべきスレッドが、アドレス指定を実行する前に、アドレス指定を実行するべきスレッドに対応するスタンバイバッファ内の全てのページテーブルエントリが、プリフェッチバッファPB内に記憶され得、プリフェッチバッファPBに現在記憶されているデータは削除され得る、と仮定される。バイパス変換バッファ及びプリフェッチバッファPBは、仮想アドレスVA間の比較を、連想記憶メモリ(content addressable memory,略してCAM)を使用することによって完了させ得る。プリフェッチバッファPBの記憶容量の増加は、チップ消費電力を増加させ得、したがって、比較的小さい記憶容量を有するプリフェッチバッファPB、例えば、8個のページテーブルエントリの記憶容量を有するプリフェッチバッファPBが選択され得る。それにより、アドレス指定を実行するべきスレッドが、アドレス指定を実行する前に、アドレス指定を実行するべきスレッドに対応するスタンバイバッファ内の最短の記憶時間を有する8個のページテーブルエントリが、プリフェッチバッファPB内に記憶され得、プリフェッチバッファPBに現在記憶されているデータは削除され得る。
S205:第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップ。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
S206:仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップ。
下記のステップS207、S208、又はS209は、バイパス変換バッファ及びプリフェッチバッファPBにおけるアドレス指定結果に従って、ここでは選択的に実行され得る。
S207:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ。
S208:仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行し、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリをバイパス変換バッファに記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリが、プリフェッチバッファ内に記憶される。
S209:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせをし、仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する。
具体的には、図5は、仮想アドレスVAに従って物理メモリアドレスのアドレス指定をするステップの概略図である。図5に示されるように、バイパス変換バッファに記憶されるページテーブルエントリ及びプリフェッチバッファPBに記憶されるページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在する場合、すなわち、バイパス変換バッファのTLBがヒットした(TLB−Hit)場合、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在してもしなくても、すなわち、プリフェッチバッファPBが、ヒットしても(PB−Hit)又はミスしても(PB−Miss)、データアクセスは、バイパス変換バッファ内に発見される物理アドレス、すなわち、第1の物理アドレスPA1に従って実行される。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在しない、すなわち、バイパス変換バッファのTLBがミスした(TLB−Miss)が、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在する、すなわち、プリフェッチバッファPBがヒットした(PB−Hit)場合、データアクセスは、プリフェッチバッファPB内に発見される物理アドレス、すなわち、第2の物理アドレスPA2に従って実行され、発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリが、バイパス変換バッファのTLB内に記憶される。プリフェッチバッファPBが、スタンバイバッファ内の第2のスレッドのページテーブルエントリの一部のみを記憶する場合、例えば、前述のプリフェッチバッファPBが、第2のスレッドの、スタンバイバッファにおける最短の記憶時間を有する8個のページテーブルエントリのみを記憶する場合、プリフェッチバッファPB内のヒットしたページテーブルエントリは、TLB内に記憶され、第2のスレッドの、比較的短い記憶時間を有する次のページテーブルエントリは、スタンバイバッファから抽出され、プリフェッチバッファPB内に記憶され得る。
仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、すなわち、バイパス変換バッファとプリフェッチバッファPBとの双方がミスした(TLB−Miss及びPB−Miss)場合、仮想アドレスVAと、仮想アドレスVAに対応する物理アドレスについての対応するスレッドID、すなわち、第3の物理アドレスPA3とに従って、ページテーブル走査ユニットを使用することによって、メモリに問い合わせがされる。データアクセスは、発見された第3の物理アドレスPA3に従って実行される。発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリ、及び対応するスレッドIDは、バイパス変換バッファのTLB内に同時に記憶される。
ステップS208又はS209について、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリは、スタンバイバッファ内に記憶され、設定時間内に問い合わせをされないページテーブルエントリは、バイパス変換バッファから削除される。
具体的には、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、最も低いヒット率を有するページテーブルエントリ、すなわち、設定時間内にミスしたページテーブルエントリは、スタンバイバッファ内に優先的に記憶され、設定時間内にミスしたページテーブルエントリは削除される。
スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、スタンバイバッファから削除される。
具体的には、スタンバイバッファ内のページテーブルエントリのより長い記憶時間は、そのページテーブルエントリのより低いヒット率を示し、したがって、「先入れ先出し(First Input First Output,略してFIFO)」の記憶モードが、スタンバイバッファにおいて使用され得る。すなわち、スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、優先的に削除される。
この実施形態において提供される、物理メモリアドレスを問い合わせる方法によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図6は、本発明に係る、物理メモリアドレスを問い合わせる装置の実施形態の概略構造図である。図6に示されるように、この実施形態における、物理メモリアドレスを問い合わせる装置60は、物理メモリアドレスを問い合わせる前述の方法を実行する特定のエンティティであり、具体的には、判定モジュール61と、実行モジュール62と、受信モジュール63と、問い合わせモジュール64とを含む。
判定モジュール61は、プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成される。
具体的には、スレッド切り替えポリシーは、端末デバイスの実行中の各期間内にメモリアドレス指定動作を実行するスレッドを使用することを含む。本発明のこの実施形態において、第1のスレッドは、先行する期間内にメモリアドレス指定動作を実行するスレッドであり、第2のスレッドは、第1のスレッドの後にメモリアドレス指定動作を実行するスレッド、すなわち、アドレス指定を実行するべきスレッドである。
実行モジュール62は、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成される。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。
具体的には、下記の2つのケースが、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数とプリフェッチバッファPBの記憶容量との間の関係に従って存在する。
ケース1:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリが、プリフェッチバッファ内に記憶され、プリフェッチバッファに現在記憶されているデータは上書きされる。
ケース2:スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリが、プリフェッチバッファ内に記憶され、プリフェッチバッファに現在記憶されているデータは上書きされる。
具体的には、アドレス指定を実行するべき、判定モジュール61によって判定されるスレッド、すなわち、第2のスレッドに従って、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの一部又は全部が、プリフェッチバッファPB内に記憶される。ここで、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する。随意的に、スタンバイバッファに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。同様に、バイパス変換バッファに記憶されるページテーブルエントリも、具体的には、仮想アドレスと物理アドレスとの間の対応、及び各対応するスレッドのIDを含む。プリフェッチバッファPBに記憶されるページテーブルエントリは、具体的には、仮想アドレスと物理アドレスとの間の対応、及びアドレス指定を実行するべき対応するスレッドのIDを含む。
ここで留意するべきことは、スタンバイバッファの数が1つ又は複数であり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファの数とプリフェッチバッファの数との双方は、1つ又は複数であり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
受信モジュール63は、第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するように構成される。ここで、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する。
具体的には、アドレス指定を実行するべきスレッド、すなわち、第2のスレッドによって送信されたメモリアドレス指定要求メッセージが受信される。ここで、メモリアドレス指定要求メッセージは、アドレス指定されるべき仮想アドレスVAを伝達する。
問い合わせモジュール64は、仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成される。
具体的には、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファPBに記憶されたページテーブルエントリは、仮想アドレスVAに従って、同時に問い合わせをされ得る。下記の3つのケースは、ここでは、バイパス変換バッファ及びプリフェッチバッファPBにおけるアドレス指定結果に従って存在し得る。
ケース1:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、メモリは、第1の物理アドレスを使用することによってアクセスされて、データアクセスが実行される。
具体的には、仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファに存在する場合、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在してもしなくても、データアクセスは、バイパス変換バッファ内に発見される物理アドレス、すなわち、第1の物理アドレスに従って実行される。
ケース2:仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、メモリは、第2の物理アドレスを使用することによってアクセスされて、データアクセスが実行される。仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリは、バイパス変換バッファ内に記憶され、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されるページテーブルエントリは削除される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファには存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリが、プリフェッチバッファ内に記憶される。
具体的には、仮想アドレスVAに対応する物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスVAに対応する物理アドレスが、プリフェッチバッファPBに存在する場合、データアクセスは、プリフェッチバッファPB内に発見される物理アドレス、すなわち、第2の物理アドレスに従って実行され、発見されたページテーブルエントリ、すなわち、ヒットしたページエントリは、バイパス変換バッファのTLB内に記憶される。プリフェッチバッファPBが、スタンバイバッファ内の第2のスレッドのページテーブルエントリのうちの一部のみを記憶する場合、プリフェッチバッファPB内のヒットしたページテーブルエントリが、TLB内に記憶された後に、1つのページテーブルエントリが、スタンバイバッファから読み出され、プリフェッチバッファPB内に記憶され得る。
ケース3:仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、メモリは、仮想アドレスに対応する第3の物理アドレスについて問い合わせをされ、仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリは、バイパス変換バッファ内に記憶される。
具体的には、仮想アドレスVAに対応する物理アドレスが、バイパス変換バッファにもプリフェッチバッファPBにも存在しない場合、すなわち、バイパス変換バッファとプリフェッチバッファPBとの双方がミスした場合、メモリは、仮想アドレスVAに対応する物理アドレス、すなわち、第3の物理アドレスについて問い合わせをされる必要があり、発見されたページテーブルエントリ、すなわち、ヒットしたページテーブルエントリは、バイパス変換バッファのTLB内に記憶される。
さらに、実行モジュール62は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成され得る。
具体的には、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、最も低いヒット率を有するページテーブルエントリ、すなわち、設定時間内にミスしたページテーブルエントリは、スタンバイバッファ内に優先的に記憶され、設定時間内にミスしたページテーブルエントリは削除される。
さらに、実行モジュール62は、
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成され得る。
具体的には、スタンバイバッファ内のページテーブルエントリのより長い記憶時間は、そのページテーブルエントリのより低いヒット率を示し、したがって、「先入れ先出し(FIFO)」の記憶モードが、スタンバイバッファにおいて使用され得る。すなわち、スタンバイバッファに記憶されるページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリは、優先的に削除される。
この実施形態において提供される、物理メモリアドレスを問い合わせる装置によれば、バイパス変換バッファ及びプリフェッチバッファは、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、同時に問い合わせをされる。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
図7は、本発明に係る、物理メモリアドレスを問い合わせる装置の別の実施形態の概略構造図である。図7に示されるように、この実施形態における、物理メモリアドレスを問い合わせる装置は、メモリ71と、バイパス変換バッファ72と、スタンバイバッファ73と、プリフェッチバッファ74と、プロセッサ75とを含む。
メモリ71は、命令を記憶するように構成される。
バイパス変換バッファ72は、変換索引バッファTLBを記憶するように構成される。
スタンバイバッファ73は、バイパス変換バッファに記憶されるTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成される。
プリフェッチバッファ74は、スタンバイバッファに記憶される、対応するスレッドのページテーブルエントリを記憶するように構成される。
プロセッサ75は、メモリに記憶された命令を実行して、図1又は図2に示される、物理メモリアドレスを問い合わせる方法を実行するように構成される。
具体的には、メモリ71は、高速RAMメモリを含み得、又は不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つのディスクメモリを含み得る。随意的に、メモリ71は、少なくとも1つの記憶装置を含み得る。メモリ71は、命令を記憶し、物理メモリアドレスを問い合わせる装置が実行される場合、プロセッサ75は、メモリ71と通信し、プロセッサ75は、命令を実行し、それにより、物理メモリアドレスを問い合わせる装置は、本発明の実施形態において提供される、物理メモリアドレスを問い合わせる方法を実行することができる。
スタンバイバッファ73は、仮想アドレスと物理アドレスとの間の対応を含むページテーブルエントリを記憶し、各対応するスレッドのIDを含み得る。バイパス変換バッファ72は、仮想アドレスと物理アドレスとの間の対応を含むページテーブルエントリを記憶し、各対応するスレッドのIDを含み得る。プリフェッチバッファ74は、仮想アドレスと物理アドレスとの間の対応を含むページテーブルエントリを記憶し、アドレス指定を実行するべき対応するスレッドのIDを含み得る。
ここで留意すべきことは、スタンバイバッファ73の数が1つ又は複数であり得ることである。例えば、各スレッドは、1つのスタンバイバッファに対応し得る。ここで、スタンバイバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされないスレッドのページテーブルエントリを記憶するために使用される。同様に、バイパス変換バッファ72の数とプリフェッチバッファ74の数との双方は、1つ又は複数であり得る。例えば、各スレッドは、1つのバイパス変換バッファ及び1つのプリフェッチバッファに対応し得る。
この実施形態におけるプロセッサは、集積回路チップであってもよく、信号処理能力を有する。実装プロセスにおいて、前述の方法におけるステップは、プロセッサ内のハードウェアの集積論理回路又はソフトウェアの形式の命令を使用することによって完了され得る。前述のプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けプロセッサ(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは別のプログラマブルロジックコンポーネント、ディスクリートゲート若しくはトランジスタロジックコンポーネント、又はディスクリートハードウェアコンポーネントであってもよく、これらは、本発明の実施形態において開示された方法、ステップ、及び論理ブロック図を実装又は実行し得る。前述のプロセッサは、マイクロプロセッサであってもよく、又は前述のプロセッサは、任意の従来のプロセッサなどであってもよい。本発明の実施形態を参照しつつ開示された方法のステップは、ハードウェアプロセッサを用いて直接実行及び完了されてもよく、又はプロセッサ内のハードウェアモジュールとソフトウェアモジュールとの組み合わせを用いて実行及び完了されてもよい。ソフトウェアモジュールは、本技術分野における成熟した記憶媒体、例えば、ランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラマブル読み出し専用メモリ、電気的消去可能プログラマブルメモリ、又はレジスタなどに位置し得る。記憶媒体は、メモリに位置し、プロセッサは、メモリ内の情報を読出し、前述の方法におけるステップを、プロセッサのハードウェアとの組み合わせにおいて完了する。
本発明の実施形態は、チップをさらに提供する。ここで、チップは、物理メモリアドレスを問い合わせるように構成され、チップは、前述のプロセッサを含み得る。
この実施形態において提供される、物理メモリアドレスを問い合わせる装置によれば、プロセッサ75は、メモリ71に記憶される命令を実行し、第2のスレッドのアドレス指定されるべき仮想アドレスに従って、バイパス変換バッファ及びプリフェッチバッファに同時に問い合わせをする。ここで、プリフェッチバッファは、バイパス変換バッファにおいて設定時間内に問い合わせをされない、第2のスレッドのページテーブルエントリを記憶し、それによって、仮想アドレスに対応する物理アドレスを問い合わせるヒット率を増加させ、アドレス指定時間を短縮する。
当業者は、前述の方法実施形態のステップの全部又は一部がプログラム命令関連ハードウェアによって実装され得ることを理解し得る。前述のプログラムは、コンピュータ読取可能な媒体に記憶され得る。プログラムが実行されると、前述の方法実施形態のステップが実行される。前述の記憶媒体は、プログラムコードを記憶することができる任意の媒体、例えば、ROM、RAM、磁気ディスク、又は光ディスクなどを含む。
最後に、留意すべきことは、前述の実施形態が本発明の技術的解決策を説明することを意図されたものに過ぎず、本発明を限定することを意図されたものではないことである。本発明は、前述の実施形態を参照しつつ詳細に説明されているが、当業者は、当業者が前述の実施形態において説明された技術的解決策に対して変形を行い得ること、又はその技術的特徴の一部若しくは全部に対して均等な置換を行い得ることを理解するべきである。しかしながら、こうした変形又は置換は、対応する技術的解決策の本質を、本発明の実施形態における技術的解決策の範囲から逸脱させるものではない。



  1. 物理メモリアドレスを問い合わせる方法であって、
    プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
    スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、前記スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
    前記第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、前記メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
    前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせるステップと
    を含む、方法。

  2. 前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせる前記ステップが、
    前記仮想アドレスに対応する第1の物理アドレスが、前記バイパス変換バッファに存在する場合、前記第1の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行するステップ、又は、
    前記仮想アドレスに対応する第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記第2の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行するステップ
    を含む、請求項1に記載の方法。

  3. 前記方法が、
    前記仮想アドレスに対応する前記第1の物理アドレスが、前記バイパス変換バッファに存在せず、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在しない場合、前記仮想アドレスに対応する第3の物理アドレスについて前記メモリに問い合わせるステップ
    をさらに含む、請求項2に記載の方法。

  4. 前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記方法は、
    前記仮想アドレス及び前記第2の物理アドレスに対応し、前記プリフェッチバッファに記憶されているページテーブルエントリを前記バイパス変換バッファ内に記憶し、前記仮想アドレス及び前記第2の物理アドレスに対応する前記ページテーブルエントリを前記プリフェッチバッファから削除するステップ
    をさらに含む、請求項2に記載の方法。

  5. 前記方法が、
    前記仮想アドレス及び前記第3の物理アドレスに対応し、前記メモリ内に発見されるページテーブルエントリを前記バイパス変換バッファ内に記憶するステップ
    をさらに含む、請求項3に記載の方法。

  6. スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶する前記ステップの前に、前記方法が、
    前記バイパス変換バッファに記憶されたページテーブルエントリの数が、前記バイパス変換バッファの記憶容量を超える場合、前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶するステップと、前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記バイパス変換バッファから削除するステップと
    をさらに含む、請求項1から5のいずれか一項に記載の方法。

  7. 前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶する前記ステップの後に、前記方法が、
    前記スタンバイバッファに記憶されたページテーブルエントリの数が、前記スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリを前記スタンバイバッファから削除するステップ
    をさらに含む、請求項6に記載の方法。

  8. スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶する前記ステップが、
    前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量以下である場合、前記スタンバイバッファに記憶されている、前記第2のスレッドの全ての前記ページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
    前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記スタンバイバッファに記憶されている前記第2のスレッドの、前記プリフェッチバッファの前記記憶容量に等しい数のページテーブルエントリを前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きするステップ
    を含む、請求項1から7のいずれか一項に記載の方法。

  9. 前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの前記数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記方法が、
    前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記プリフェッチバッファに記憶された前記ページテーブルエントリを除いて、前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリのうちの1つのページテーブルエントリを、前記プリフェッチバッファ内に記憶するステップ
    をさらに含む、請求項8に記載の方法。

  10. メモリ内の物理アドレスを問い合わせる装置であって、
    プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
    スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、前記スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
    前記第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、前記メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
    前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
    を備える、装置。

  11. 前記問い合わせモジュールが、
    前記仮想アドレスに対応する第1の物理アドレスが、前記バイパス変換バッファに存在する場合、前記第1の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行する、又は、
    前記仮想アドレスに対応する第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記第2の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行する
    ように具体的に構成される、請求項10に記載の装置。

  12. 前記問い合わせモジュールが、
    前記仮想アドレスに対応する前記第1の物理アドレスが、前記バイパス変換バッファに存在せず、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在しない場合、前記仮想アドレスに対応する第3の物理アドレスについて前記メモリに問い合わせる
    ようにさらに構成される、請求項11に記載の装置。

  13. 前記問い合わせモジュールが、
    前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記仮想アドレス及び前記第2の物理アドレスに対応し、前記プリフェッチバッファに記憶されているページテーブルエントリを前記バイパス変換バッファ内に記憶し、前記仮想アドレス及び前記第2の物理アドレスに対応する前記ページテーブルエントリを前記プリフェッチバッファから削除する
    ようにさらに構成される、請求項11又は12に記載の装置。

  14. 前記問い合わせモジュールが、
    前記仮想アドレス及び前記第3の物理アドレスに対応し、前記メモリ内に発見されるページテーブルエントリを前記バイパス変換バッファ内に記憶する
    ようにさらに構成される、請求項12に記載の装置。

  15. 前記実行モジュールが、
    スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリが、前記プリフェッチバッファ内に記憶される前に、前記バイパス変換バッファに記憶されたページテーブルエントリの数が、前記バイパス変換バッファの記憶容量を超える場合、前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶し、前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記バイパス変換バッファから削除する
    ようにさらに構成される、請求項10から14のいずれか一項に記載の装置。

  16. 前記実行モジュールが、
    前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリが、前記スタンバイバッファ内に記憶された後に、前記スタンバイバッファに記憶されたページテーブルエントリの数が、前記スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリを前記スタンバイバッファから削除する
    ようにさらに構成される、請求項15に記載の装置。

  17. 前記実行モジュールが、
    前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量以下である場合、前記スタンバイバッファに記憶されている、前記第2のスレッドの全ての前記ページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きする、又は、
    前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記スタンバイバッファに記憶されている前記第2のスレッドの、前記プリフェッチバッファの前記記憶容量に等しい数のページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きする
    ように具体的に構成される、請求項10から16のいずれか一項に記載の装置。

  18. 前記実行モジュールが、
    前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの前記数が、前記プリフェッチバッファの記憶容量よりも大きく、前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記プリフェッチバッファに記憶された前記ページテーブルエントリを除いて、前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリのうちの1つのページテーブルエントリを、前記プリフェッチバッファ内に記憶する
    ようにさらに構成される、請求項17に記載の装置。

  19. メモリと、バイパス変換バッファと、スタンバイバッファと、プリフェッチバッファと、プロセッサとを備える、物理メモリアドレスを問い合わせる装置であって、
    前記メモリは、命令を記憶するように構成され、
    前記バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
    前記スタンバイバッファは、前記バイパス変換バッファに記憶されている前記TLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
    前記プリフェッチバッファは、前記スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
    前記プロセッサは、前記メモリ内に記憶された前記命令を実行して、請求項1から9のいずれか一項に記載の、物理メモリアドレスを問い合わせる前記方法を実行するように構成される、
    装置。

 

 

Patent trol of patentswamp
類似の特許
プロセッサは、変換ルックアサイド・バッファ(TLB)及びマッピング・モジュールを備える。TLBは、複数のエントリを含み、複数のエントリの各エントリは、アドレス変換及び有効ビット・ベクトルを保持するよう構成され、有効ビット・ベクトルの各ビットは、それぞれのアドレス変換コンテキストについて、セットされている場合にはアドレス変換が有効であり、クリアされている場合にはアドレス変換が無効であることを示す。TLBはまた、複数のエントリの有効ビット・ベクトルのビットに対応するビットを有する無効化ビット・ベクトルを含み、無効化ビット・ベクトルのセットされているビットは、複数のエントリの各エントリの有効ビット・ベクトルの対応するビットを同時にクリアすることを示す。マッピング・モジュールは、無効化ビット・ベクトルを生成する。
本発明は、支持パッドの厚さ方向に5g/cm2の圧力を加えて測定した第1厚さに対する、支持パッドの厚さ方向に100g/cm2の圧力を加えて測定した第2厚さと前記第1厚さとの差値の比率であるLow P圧縮率が1〜10%であり、前記第1厚さと第2厚さとの差であるLow P圧縮長さが15〜100μmである、支持パッドに関する。これによれば、実際の研磨条件で高い圧縮率と優れた弾性力を有し、より均一で高効率の研磨を実現して、研磨不良率を低下させることのできるポリウレタン支持パッドが提供できる。
【選択図】 図1
ポリオレフィンフィルムを含む吸収性物品が提供されている。ポリオレフィンフィルムは、ポリオレフィンマトリクスポリマーを含む連続相およびナノ包含添加剤を含有する熱可塑性組成物によって形成される。ナノ包含添加剤は、個別のナノスケール相領域として連続相内に分散されている。延伸される時、ナノスケール相領域は、ユニークな方法でマトリクスと相互作用してナノ細孔のネットワークを作ることができる。
【選択図】図2
本発明は、ポリウレタン樹脂およびDMF溶媒を含む樹脂組成物を湿式凝固する段階と、前記湿式凝固物を、酸触媒または塩基触媒を含む水溶液に浸漬する段階とを含む、ポリウレタン支持パッドの製造方法に関する。これによれば、製造されるパッドの内部に長くて大きい気孔を均一に形成して、低い硬度、優れた圧縮率などを示すようにし、パッドの全体領域でより均一な厚さ、圧力分布または張力分布などを示して、より均一で高効率の研磨を実現することのできるポリウレタン支持パッドが提供できる。
【選択図】 図1
様々な生物活性剤の貯蔵及び送達のために使用され得る重合体複合粒子が提供される。重合体複合粒子は、多孔質重合体コア、及び多孔質重合体コアの周囲のコーティング層を含有する。多孔質重合体複合粒子は典型的には、更に生物活性剤を含み、この生物活性剤は、多孔質重合体コア内に配置されるが、多孔質重合体コアに共有結合していない。生物活性剤は、コーティング層を通じて多孔質重合体コアの外へと拡散することにより、重合体複合粒子から放出され得る。
【選択図】 図1A
ポリオレフィンマトリックス重合体およびナノ含有物添加剤を含む連続相を含む熱可塑性組成物の固体状態延伸によって形成されるポリオレフィン材料が提供される。ナノ含有物添加剤は、分離したナノスケール相ドメインとして連続相内で分散される。延伸されるときに、ナノスケール相ドメインは、独特の様式でマトリックスと相互作用してナノ細孔のネットワークを作り出すことができる。
【選択図】なし
本発明は、コンピュータ技術の分野に関連し、物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式TLBを使用し得るとともに電力消費を削減し得る、物理アドレスを判定するための方法及び装置を開示する。本開示によれば、ページサイズは線形アドレスの上位Nビットに従って獲得され、Nは0より大きくかつ線形アドレスのビットの量より小さく、トランスレーション・ルックアサイド・バッファTLBのインデックス番号はページサイズに従って獲得され、マスクはページサイズ及びサポートされた最小のページサイズに従って獲得され、TLBのラベルはマスクに従って獲得され、線形アドレスに対応する物理アドレスの上位MAC1ビットはインデックス番号及びラベルに従ってTLBを検索することにより獲得され、物理アドレスはマスク、サポートされた最小のページ、及び物理アドレスの上位MAC1ビットに従って獲得される。物理アドレスが線形アドレスを使用することにより判定される場合に、本開示を使用することは適切である。
本開示は、エアロゲルを製造する方法であって、第1の溶媒中、ポリイミドポリマーを形成するのに適切な条件下で、少なくとも1種類の酸モノマーを少なくとも1種類のジアミノモノマーと反応させる工程;溶媒交換を行う工程であって、第1の溶媒が第2の溶媒と交換され、前記第2の溶媒が凝固点を有し、(1)ポリイミドポリマーを圧力容器内の第2の溶媒中に浸漬すること;および(2)圧力容器内部に高圧環境を第1の期間にわたって生成することをさらに含む、溶媒交換工程;ポリイミドポリマーを第2の溶媒の凝固点よりも低い第1の温度まで冷却する工程;ならびに冷却したポリイミドポリマーを第1の真空下に第2の期間にわたって第2の温度にて置く工程を含む方法を提供する。
ポリオレフィン包装フィルムが提供されている。ポリオレフィンフィルムは、ポリオレフィンマトリクスポリマーを含む連続相およびナノ包含添加剤を含有する熱可塑性組成物によって形成される。ナノ包含添加剤は、個別のナノスケール相領域として連続相内に分散されている。延伸される時、ナノスケール相領域は、ユニークな方法でマトリクスと相互作用してナノ細孔のネットワークを作ることができる。
【選択図】図2

本発明は、少なくとも、下記工程:a)(i)有機ゲルの形成に適した成分を含む組成物(A)及び(ii)溶剤混合物(B)を含む混合物(I)を供給する工程、b)組成物(A)の成分を溶剤混合物(B)の存在下に反応させ、ゲルを形成させる工程、及びc)工程b)で得られたゲルを乾燥する工程、を含む多孔性材料を製造する方法であって、溶剤混合物(B)は少なくとも2種の溶剤の混合物であり、且つ溶剤混合物(B)は3.0〜5.0MPa−1の範囲のハンセン溶解パラメータδを有し、該ハンセン溶解パラメータδは溶剤混合物(B)の各溶剤のパラメータδを用いて決定されることを特徴とする方法に関する。さらに本発明は、このようにして得られる多孔性材料、及びこの多孔性材料の、断熱材料としての、及び真空断熱パネルにおける使用に関する。
【選択図】 なし
To top