JP2016528640A - 物理メモリアドレスを問い合わせる方法及び装置 - Google Patents
物理メモリアドレスを問い合わせる方法及び装置 Download PDFInfo
- Publication number
- JP2016528640A JP2016528640A JP2016535319A JP2016535319A JP2016528640A JP 2016528640 A JP2016528640 A JP 2016528640A JP 2016535319 A JP2016535319 A JP 2016535319A JP 2016535319 A JP2016535319 A JP 2016535319A JP 2016528640 A JP2016528640 A JP 2016528640A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- page table
- stored
- thread
- table entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップと
を含む方法を提供する。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ
を含む。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせるステップ
をさらに含む。
仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ
をさらに含む。
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶するステップ
をさらに含む。
バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップと、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除するステップ
をさらに含む。
スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除するステップ
をさらに含む。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ
を含む。
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶するステップ
をさらに含む。
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
第2のスレッドに対応するメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
を備える装置を提供する。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する
ように具体的に構成される。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせる
ようにさらに構成される。
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除する
ようにさらに構成される。
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する
ようにさらに構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成される。
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする
ように具体的に構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶する
ようにさらに構成される。
メモリは、命令を記憶するように構成され、
バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
スタンバイバッファは、バイパス変換バッファに記憶されているTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
プリフェッチバッファは、スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
プロセッサは、メモリ内に記憶された命令を実行して、第1の態様に係る、物理メモリアドレスを問い合わせる方法を実行するように構成される、
装置を提供する。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成され得る。
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成され得る。
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるステップと
を含む方法を提供する。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行するステップ
を含む。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせるステップ
をさらに含む。
仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除するステップ
をさらに含む。
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶するステップ
をさらに含む。
バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶するステップと、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除するステップ
をさらに含む。
スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除するステップ
をさらに含む。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップは、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きするステップ
を含む。
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶するステップ
をさらに含む。
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
第2のスレッドに対応するメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
仮想アドレスに従って、バイパス変換バッファに記憶されたページテーブルエントリ及びプリフェッチバッファに記憶されたページテーブルエントリにおいて、仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
を備える装置を提供する。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在する場合、第1の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する、又は、
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、第2の物理アドレスを使用することによってメモリにアクセスして、データアクセスを実行する
ように具体的に構成される。
仮想アドレスに対応する第1の物理アドレスが、バイパス変換バッファに存在せず、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在しない場合、仮想アドレスに対応する第3の物理アドレスについてメモリに問い合わせる
ようにさらに構成される。
仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、仮想アドレス及び第2の物理アドレスに対応し、プリフェッチバッファに記憶されているページテーブルエントリをバイパス変換バッファ内に記憶し、仮想アドレス及び第2の物理アドレスに対応するページテーブルエントリをプリフェッチバッファから削除する
ようにさらに構成される。
仮想アドレス及び第3の物理アドレスに対応し、メモリ内に発見されるページテーブルエントリをバイパス変換バッファ内に記憶する
ようにさらに構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されたページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成される。
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量以下である場合、スタンバイバッファに記憶されている、第2のスレッドの全てのページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする、又は、
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きい場合、スタンバイバッファに記憶されている第2のスレッドの、プリフェッチバッファの記憶容量に等しい数のページテーブルエントリを、プリフェッチバッファ内に記憶し、プリフェッチバッファに現在記憶されているデータを上書きする
ように具体的に構成される。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリの数が、プリフェッチバッファの記憶容量よりも大きく、仮想アドレスに対応する第1の物理アドレスは、バイパス変換バッファに存在しないが、仮想アドレスに対応する第2の物理アドレスが、プリフェッチバッファに存在する場合、プリフェッチバッファに記憶されたページテーブルエントリを除いて、スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリのうちの1つのページテーブルエントリを、プリフェッチバッファ内に記憶する
ようにさらに構成される。
メモリは、命令を記憶するように構成され、
バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
スタンバイバッファは、バイパス変換バッファに記憶されているTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
プリフェッチバッファは、スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
プロセッサは、メモリ内に記憶された命令を実行して、第1の態様に係る、物理メモリアドレスを問い合わせる方法を実行するように構成される、
装置を提供する。
スタンバイバッファに記憶されている第2のスレッドのページテーブルエントリが、プリフェッチバッファ内に記憶される前に、バイパス変換バッファに記憶されるページテーブルエントリの数が、バイパス変換バッファの記憶容量を超える場合、バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリをスタンバイバッファ内に記憶し、設定時間内に問い合わせをされないページテーブルエントリをバイパス変換バッファから削除する
ようにさらに構成され得る。
バイパス変換バッファにおいて設定時間内に問い合わせをされないページテーブルエントリが、スタンバイバッファ内に記憶された後に、スタンバイバッファに記憶されたページテーブルエントリの数が、スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリをスタンバイバッファから削除する
ようにさらに構成され得る。
Claims (19)
- 物理メモリアドレスを問い合わせる方法であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するステップと、
スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するステップであって、前記スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、記憶するステップと、
前記第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するステップであって、前記メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信するステップと、
前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせるステップと
を含む、方法。 - 前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせる前記ステップが、
前記仮想アドレスに対応する第1の物理アドレスが、前記バイパス変換バッファに存在する場合、前記第1の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行するステップ、又は、
前記仮想アドレスに対応する第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記第2の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行するステップ
を含む、請求項1に記載の方法。 - 前記方法が、
前記仮想アドレスに対応する前記第1の物理アドレスが、前記バイパス変換バッファに存在せず、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在しない場合、前記仮想アドレスに対応する第3の物理アドレスについて前記メモリに問い合わせるステップ
をさらに含む、請求項2に記載の方法。 - 前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記方法は、
前記仮想アドレス及び前記第2の物理アドレスに対応し、前記プリフェッチバッファに記憶されているページテーブルエントリを前記バイパス変換バッファ内に記憶し、前記仮想アドレス及び前記第2の物理アドレスに対応する前記ページテーブルエントリを前記プリフェッチバッファから削除するステップ
をさらに含む、請求項2に記載の方法。 - 前記方法が、
前記仮想アドレス及び前記第3の物理アドレスに対応し、前記メモリ内に発見されるページテーブルエントリを前記バイパス変換バッファ内に記憶するステップ
をさらに含む、請求項3に記載の方法。 - スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶する前記ステップの前に、前記方法が、
前記バイパス変換バッファに記憶されたページテーブルエントリの数が、前記バイパス変換バッファの記憶容量を超える場合、前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶するステップと、前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記バイパス変換バッファから削除するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。 - 前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶する前記ステップの後に、前記方法が、
前記スタンバイバッファに記憶されたページテーブルエントリの数が、前記スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリを前記スタンバイバッファから削除するステップ
をさらに含む、請求項6に記載の方法。 - スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶する前記ステップが、
前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量以下である場合、前記スタンバイバッファに記憶されている、前記第2のスレッドの全ての前記ページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きするステップ、又は、
前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記スタンバイバッファに記憶されている前記第2のスレッドの、前記プリフェッチバッファの前記記憶容量に等しい数のページテーブルエントリを前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きするステップ
を含む、請求項1から7のいずれか一項に記載の方法。 - 前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの前記数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記方法が、
前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記プリフェッチバッファに記憶された前記ページテーブルエントリを除いて、前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリのうちの1つのページテーブルエントリを、前記プリフェッチバッファ内に記憶するステップ
をさらに含む、請求項8に記載の方法。 - メモリ内の物理アドレスを問い合わせる装置であって、
プリセットされたスレッド切り替えポリシーに従って、メモリアドレス指定動作が、第1のスレッドから第2のスレッドへ将来の設定時間内に切り替えられると判定するように構成された判定モジュールと、
スタンバイバッファに記憶されている前記第2のスレッドのページテーブルエントリをプリフェッチバッファ内に記憶するように構成された実行モジュールであって、前記スタンバイバッファは、バイパス変換バッファに記憶されている変換索引バッファTLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶する、実行モジュールと、
前記第2のスレッドによって送信されたメモリアドレス指定要求メッセージを受信するように構成された受信モジュールであって、前記メモリアドレス指定要求メッセージは、仮想アドレスを伝達する、受信モジュールと、
前記仮想アドレスに従って、前記バイパス変換バッファに記憶されたページテーブルエントリ及び前記プリフェッチバッファに記憶された前記ページテーブルエントリにおいて、前記仮想アドレスに対応する物理アドレスを問い合わせるように構成された問い合わせモジュールと
を備える、装置。 - 前記問い合わせモジュールが、
前記仮想アドレスに対応する第1の物理アドレスが、前記バイパス変換バッファに存在する場合、前記第1の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行する、又は、
前記仮想アドレスに対応する第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記第2の物理アドレスを使用することによって前記メモリにアクセスして、データアクセスを実行する
ように具体的に構成される、請求項10に記載の装置。 - 前記問い合わせモジュールが、
前記仮想アドレスに対応する前記第1の物理アドレスが、前記バイパス変換バッファに存在せず、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在しない場合、前記仮想アドレスに対応する第3の物理アドレスについて前記メモリに問い合わせる
ようにさらに構成される、請求項11に記載の装置。 - 前記問い合わせモジュールが、
前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記仮想アドレス及び前記第2の物理アドレスに対応し、前記プリフェッチバッファに記憶されているページテーブルエントリを前記バイパス変換バッファ内に記憶し、前記仮想アドレス及び前記第2の物理アドレスに対応する前記ページテーブルエントリを前記プリフェッチバッファから削除する
ようにさらに構成される、請求項11又は12に記載の装置。 - 前記問い合わせモジュールが、
前記仮想アドレス及び前記第3の物理アドレスに対応し、前記メモリ内に発見されるページテーブルエントリを前記バイパス変換バッファ内に記憶する
ようにさらに構成される、請求項12に記載の装置。 - 前記実行モジュールが、
スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリが、前記プリフェッチバッファ内に記憶される前に、前記バイパス変換バッファに記憶されたページテーブルエントリの数が、前記バイパス変換バッファの記憶容量を超える場合、前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記スタンバイバッファ内に記憶し、前記設定時間内に問い合わせをされない前記ページテーブルエントリを前記バイパス変換バッファから削除する
ようにさらに構成される、請求項10から14のいずれか一項に記載の装置。 - 前記実行モジュールが、
前記バイパス変換バッファにおいて前記設定時間内に問い合わせをされない前記ページテーブルエントリが、前記スタンバイバッファ内に記憶された後に、前記スタンバイバッファに記憶されたページテーブルエントリの数が、前記スタンバイバッファの記憶容量を超える場合、最長の記憶時間を有するページテーブルエントリを前記スタンバイバッファから削除する
ようにさらに構成される、請求項15に記載の装置。 - 前記実行モジュールが、
前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量以下である場合、前記スタンバイバッファに記憶されている、前記第2のスレッドの全ての前記ページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きする、又は、
前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの数が、前記プリフェッチバッファの記憶容量よりも大きい場合、前記スタンバイバッファに記憶されている前記第2のスレッドの、前記プリフェッチバッファの前記記憶容量に等しい数のページテーブルエントリを、前記プリフェッチバッファ内に記憶し、前記プリフェッチバッファに現在記憶されているデータを上書きする
ように具体的に構成される、請求項10から16のいずれか一項に記載の装置。 - 前記実行モジュールが、
前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリの前記数が、前記プリフェッチバッファの記憶容量よりも大きく、前記仮想アドレスに対応する前記第1の物理アドレスは、前記バイパス変換バッファに存在しないが、前記仮想アドレスに対応する前記第2の物理アドレスが、前記プリフェッチバッファに存在する場合、前記プリフェッチバッファに記憶された前記ページテーブルエントリを除いて、前記スタンバイバッファに記憶されている前記第2のスレッドの前記ページテーブルエントリのうちの1つのページテーブルエントリを、前記プリフェッチバッファ内に記憶する
ようにさらに構成される、請求項17に記載の装置。 - メモリと、バイパス変換バッファと、スタンバイバッファと、プリフェッチバッファと、プロセッサとを備える、物理メモリアドレスを問い合わせる装置であって、
前記メモリは、命令を記憶するように構成され、
前記バイパス変換バッファは、変換索引バッファTLBを記憶するように構成され、
前記スタンバイバッファは、前記バイパス変換バッファに記憶されている前記TLBにおいて設定時間内に問い合わせをされないページテーブルエントリを記憶するように構成され、
前記プリフェッチバッファは、前記スタンバイバッファに記憶されている、対応するスレッドのページテーブルエントリを記憶するように構成され、
前記プロセッサは、前記メモリ内に記憶された前記命令を実行して、請求項1から9のいずれか一項に記載の、物理メモリアドレスを問い合わせる前記方法を実行するように構成される、
装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364417.1 | 2013-08-20 | ||
CN201310364417.1A CN104424117B (zh) | 2013-08-20 | 2013-08-20 | 内存物理地址查询方法和装置 |
PCT/CN2014/083875 WO2015024451A1 (zh) | 2013-08-20 | 2014-08-07 | 内存物理地址查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016528640A true JP2016528640A (ja) | 2016-09-15 |
JP6198952B2 JP6198952B2 (ja) | 2017-09-20 |
Family
ID=52483060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016535319A Active JP6198952B2 (ja) | 2013-08-20 | 2014-08-07 | 物理メモリアドレスを問い合わせる方法及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10114762B2 (ja) |
EP (1) | EP3023878B1 (ja) |
JP (1) | JP6198952B2 (ja) |
KR (1) | KR101768828B1 (ja) |
CN (2) | CN107608912B (ja) |
WO (1) | WO2015024451A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9740621B2 (en) * | 2014-05-21 | 2017-08-22 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US9672159B2 (en) * | 2015-07-02 | 2017-06-06 | Arm Limited | Translation buffer unit management |
CN109684238A (zh) * | 2018-12-19 | 2019-04-26 | 湖南国科微电子股份有限公司 | 一种固态硬盘映射关系的存储方法、读取方法及固态硬盘 |
CN111552653B (zh) * | 2020-05-14 | 2021-01-29 | 上海燧原科技有限公司 | 页表的读取方法、装置、设备及计算机存储介质 |
CN114238167B (zh) * | 2021-12-14 | 2022-09-09 | 海光信息技术股份有限公司 | 信息预取方法、处理器、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5998367A (ja) * | 1982-11-26 | 1984-06-06 | Nec Corp | アドレス変換バツフア方式 |
JPH0652058A (ja) * | 1992-07-30 | 1994-02-25 | Matsushita Electric Ind Co Ltd | アドレス変換装置 |
US20060206686A1 (en) * | 2005-03-08 | 2006-09-14 | Mips Technologies, Inc. | Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor |
JP2011028610A (ja) * | 2009-07-28 | 2011-02-10 | Fujitsu Ltd | プロセッサ及び演算処理方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181590B2 (en) * | 2003-08-28 | 2007-02-20 | Intel Corporation | Method for page sharing in a processor with multiple threads and pre-validated caches |
US8219780B2 (en) * | 2005-09-16 | 2012-07-10 | Hewlett-Packard Development Company, L.P. | Mitigating context switch cache miss penalty |
US8213393B2 (en) * | 2006-08-21 | 2012-07-03 | Citrix Systems, Inc. | Methods for associating an IP address to a user via an appliance |
CN100487660C (zh) * | 2007-05-28 | 2009-05-13 | 中兴通讯股份有限公司 | 一种多线程处理器动态内存管理系统及方法 |
US8868847B2 (en) * | 2009-03-11 | 2014-10-21 | Apple Inc. | Multi-core processor snoop filtering |
US8161246B2 (en) * | 2009-03-30 | 2012-04-17 | Via Technologies, Inc. | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry |
US8397049B2 (en) | 2009-07-13 | 2013-03-12 | Apple Inc. | TLB prefetching |
US8880844B1 (en) * | 2010-03-12 | 2014-11-04 | Trustees Of Princeton University | Inter-core cooperative TLB prefetchers |
CN101833440B (zh) * | 2010-04-30 | 2013-01-02 | 西安交通大学 | 编译器支持下的推测多线程内存数据同步执行方法及装置 |
WO2012149723A1 (zh) | 2011-09-02 | 2012-11-08 | 华为技术有限公司 | 虚拟内存区域的查询、遍历方法及装置 |
CN102708211A (zh) * | 2012-05-30 | 2012-10-03 | 福建星网视易信息系统有限公司 | 一种基于多线程检索并加载数据的方法 |
US20140108766A1 (en) * | 2012-10-17 | 2014-04-17 | Advanced Micro Devices, Inc. | Prefetching tablewalk address translations |
US9349386B2 (en) * | 2013-03-07 | 2016-05-24 | Analog Device Global | System and method for processor wake-up based on sensor data |
-
2013
- 2013-08-20 CN CN201710708313.6A patent/CN107608912B/zh active Active
- 2013-08-20 CN CN201310364417.1A patent/CN104424117B/zh active Active
-
2014
- 2014-08-07 EP EP14838503.2A patent/EP3023878B1/en active Active
- 2014-08-07 KR KR1020167005743A patent/KR101768828B1/ko active IP Right Grant
- 2014-08-07 JP JP2016535319A patent/JP6198952B2/ja active Active
- 2014-08-07 WO PCT/CN2014/083875 patent/WO2015024451A1/zh active Application Filing
-
2016
- 2016-02-19 US US15/047,938 patent/US10114762B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5998367A (ja) * | 1982-11-26 | 1984-06-06 | Nec Corp | アドレス変換バツフア方式 |
JPH0652058A (ja) * | 1992-07-30 | 1994-02-25 | Matsushita Electric Ind Co Ltd | アドレス変換装置 |
US20060206686A1 (en) * | 2005-03-08 | 2006-09-14 | Mips Technologies, Inc. | Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor |
JP2011028610A (ja) * | 2009-07-28 | 2011-02-10 | Fujitsu Ltd | プロセッサ及び演算処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3023878B1 (en) | 2019-01-30 |
KR20160040665A (ko) | 2016-04-14 |
CN107608912A (zh) | 2018-01-19 |
CN104424117A (zh) | 2015-03-18 |
WO2015024451A1 (zh) | 2015-02-26 |
US10114762B2 (en) | 2018-10-30 |
CN104424117B (zh) | 2017-09-05 |
KR101768828B1 (ko) | 2017-08-16 |
JP6198952B2 (ja) | 2017-09-20 |
US20160170904A1 (en) | 2016-06-16 |
EP3023878A4 (en) | 2016-07-06 |
EP3023878A1 (en) | 2016-05-25 |
CN107608912B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6198952B2 (ja) | 物理メモリアドレスを問い合わせる方法及び装置 | |
US20200057729A1 (en) | Memory access method and computer system | |
US7805588B2 (en) | Caching memory attribute indicators with cached memory data field | |
TWI531912B (zh) | 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法 | |
KR100562906B1 (ko) | 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩 | |
US8966219B2 (en) | Address translation through an intermediate address space | |
US7793070B2 (en) | Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics | |
JP2020529656A (ja) | アドレス変換キャッシュ | |
CN111061655B (zh) | 存储设备的地址转换方法与设备 | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
JP2009020881A (ja) | 可変のページサイズのメモリ編成を実装する処理システム | |
US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
US20180089094A1 (en) | Precise invalidation of virtually tagged caches | |
US9875191B2 (en) | Electronic device having scratchpad memory and management method for scratchpad memory | |
WO2014201998A1 (zh) | 一种tlb管理方法及装置 | |
US8543791B2 (en) | Apparatus and method of reducing page fault rate in virtual memory system | |
US8015361B2 (en) | Memory-centric page table walker | |
US9836410B2 (en) | Burst translation look-aside buffer | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
Bletsch | ECE 650 Systems Programming & Engineering Spring 2018 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170703 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170822 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6198952 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |