JP2016527652A - 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング - Google Patents
多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング Download PDFInfo
- Publication number
- JP2016527652A JP2016527652A JP2016535541A JP2016535541A JP2016527652A JP 2016527652 A JP2016527652 A JP 2016527652A JP 2016535541 A JP2016535541 A JP 2016535541A JP 2016535541 A JP2016535541 A JP 2016535541A JP 2016527652 A JP2016527652 A JP 2016527652A
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- architectural
- architecture
- local
- block
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 216
- 238000013507 mapping Methods 0.000 claims abstract description 167
- 230000014616 translation Effects 0.000 claims description 211
- 238000000034 method Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 39
- 230000003287 optical effect Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 3
- 230000006870 function Effects 0.000 description 46
- 238000001341 grazing-angle X-ray diffraction Methods 0.000 description 32
- 230000004044 response Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000007704 transition Effects 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- 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/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- 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/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本出願は、参照によりその全体が本明細書に組み込まれる、2014年7月21日に出願された米国特許仮出願第62/026,830号に基づく優先権を主張する。
「アドレス変換コンテキスト」とは、第1のメモリ・アドレス空間から第2のメモリ・アドレス空間へのメモリ・アドレスの変換を可能にする情報のセットである。x86 ISAにおけるアドレス変換コンテキストの一例は、CR3レジスタ(及び他の制御レジスタ、たとえば、CR0及びCR4並びに関連するモデル固有レジスタ(MSR))、ページ・テーブル、ページ・ディレクトリ、ページ・ディレクトリ・ポインタ・テーブル、PML4テーブル、拡張ページ・テーブル・ポインタ(EPTP)、及び/又は線形アドレスから物理メモリ・アドレスへの変換を可能にする拡張ページ・テーブル(EPT)に含まれる情報のセットであり得る。x86 ISAの場合、変換は、プロセッサ内のハードウェアにより実行される。しかしながら、他のISA(たとえば、MIPS、SPARC)では、オペレーティング・システムが、変換を実行し得る。ARM ISAにおけるアドレス変換コンテキストの別の例は、変換テーブル・ベース・レジスタ(TTBR)(及び他の制御レジスタ、たとえば、変換制御レジスタ(TCR)、システム制御レジスタ(SCTLR)、及びHyp構成レジスタ(HCR))、及び/又は変換テーブルに含まれる情報のセットであり得る。
Claims (20)
- アーキテクチャ仮想プロセッサ識別子を非アーキテクチャ・グローバル識別子にマッピングし、アーキテクチャ・プロセス・コンテキスト識別子を非アーキテクチャ・ローカル識別子にマッピングするマッピング・モジュールと、
複数のアドレス変換を有する変換ルックアサイド・バッファ(TLB)であって、
前記複数のアドレス変換の各アドレス変換について、
前記アドレス変換がグローバル・アドレス変換である場合、前記アドレス変換は、前記マッピング・モジュールが前記アーキテクチャ仮想プロセッサ識別子のうちの1つのアーキテクチャ仮想プロセッサ識別子をマッピングした前記非アーキテクチャ・グローバル識別子のうちの1つの非アーキテクチャ・グローバル識別子の表現によりタグ付けされ、
前記アドレス変換がローカル・アドレス変換である場合、前記アドレス変換は、前記マッピング・モジュールが前記アーキテクチャ・プロセス・コンテキスト識別子のうちの1つのアーキテクチャ・プロセス・コンテキスト識別子をマッピングした前記非アーキテクチャ・ローカル識別子のうちの1つの非アーキテクチャ・ローカル識別子の表現によりタグ付けされる、
TLBと、
を備えたプロセッサ。 - 当該プロセッサによりサポートされている前記アーキテクチャ・プロセス・コンテキスト識別子の空間は、当該プロセッサによりサポートされている前記非アーキテクチャ・ローカル識別子の空間よりも大きく、
前記マッピング・モジュールは、前記非アーキテクチャ・ローカル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化することにより、非アーキテクチャ・ローカル識別子を再利用して、新しいアーキテクチャ・プロセス・コンテキスト識別子を前記非アーキテクチャ・ローカル識別子にマッピングする、請求項1に記載のプロセッサ。 - 当該プロセッサによりサポートされている前記アーキテクチャ仮想プロセッサ識別子の空間は、当該プロセッサによりサポートされている前記非アーキテクチャ・グローバル識別子の空間よりも大きく、
前記マッピング・モジュールは、前記非アーキテクチャ・ローカル識別子の各々を、非アーキテクチャ・グローバル識別子に関連付け、
前記マッピング・モジュールは、前記非アーキテクチャ・グローバル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化し、前記非アーキテクチャ・グローバル識別子に関連付けられている非アーキテクチャ・ローカル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化することにより、非アーキテクチャ・グローバル識別子を再利用して、新しいアーキテクチャ仮想プロセッサ識別子を前記非アーキテクチャ・グローバル識別子にマッピングする、請求項1に記載のプロセッサ。 - 前記アーキテクチャ仮想プロセッサ識別子は、x86命令セット・アーキテクチャ仮想プロセッサ識別子(VPID)である、請求項1に記載のプロセッサ。
- 前記アーキテクチャ・プロセス・コンテキスト識別子は、x86命令セット・アーキテクチャ・プロセス・コンテキスト識別子(PCID)である、請求項1に記載のプロセッサ。
- 前記TLBの前記グローバル・アドレス変換がタグ付けされている前記非アーキテクチャ・グローバル識別子の前記表現は、1ホット・ビット・ベクトルを含み、前記TLBの前記ローカル・アドレス変換がタグ付けされている前記非アーキテクチャ・ローカル識別子の前記表現は、1ホット・ビット・ベクトルを含む、請求項1に記載のプロセッサ。
- 複数の関連付けられているアーキテクチャ拡張ページ・テーブル・ポインタを有する仮想プロセッサ識別子について、前記マッピング・モジュールは、アーキテクチャ仮想プロセッサ識別子:アーキテクチャ拡張ページ・テーブル・ポインタのペアを前記非アーキテクチャ・グローバル識別子にマッピングする、請求項1に記載のプロセッサ。
- 前記非アーキテクチャ・グローバル識別子への前記アーキテクチャ仮想プロセッサ識別子のマッピングを保持するグローバル・コンテキスト・テーブルをさらに備えた、請求項1に記載のプロセッサ。
- 前記非アーキテクチャ・ローカル識別子への前記アーキテクチャ・プロセス・コンテキスト識別子のマッピングを保持するローカル・コンテキスト・テーブルをさらに備えた、請求項1に記載のプロセッサ。
- 前記マッピング・モジュールは、当該プロセッサのマイクロコードを含む、請求項1に記載のプロセッサ。
- 複数のアドレス変換を有する変換ルックアサイド・バッファ(TLB)を備えるプロセッサを動作させる方法であって、
アーキテクチャ仮想プロセッサ識別子を非アーキテクチャ・グローバル識別子にマッピングし、アーキテクチャ・プロセス・コンテキスト識別子を非アーキテクチャ・ローカル識別子にマッピングするステップと、
前記複数のアドレス変換の各アドレス変換について、
前記アドレス変換がグローバル・アドレス変換である場合、前記アドレス変換を、マッピング・モジュールが前記アーキテクチャ仮想プロセッサ識別子のうちの1つのアーキテクチャ仮想プロセッサ識別子をマッピングした前記非アーキテクチャ・グローバル識別子のうちの1つの非アーキテクチャ・グローバル識別子の表現によりタグ付けするステップと、
前記アドレス変換がローカル・アドレス変換である場合、前記アドレス変換を、前記マッピング・モジュールが前記アーキテクチャ・プロセス・コンテキスト識別子のうちの1つのアーキテクチャ・プロセス・コンテキスト識別子をマッピングした前記非アーキテクチャ・ローカル識別子のうちの1つの非アーキテクチャ・ローカル識別子の表現によりタグ付けするステップと、
を含む方法。 - 前記プロセッサによりサポートされている前記アーキテクチャ・プロセス・コンテキスト識別子の空間は、前記プロセッサによりサポートされている前記非アーキテクチャ・ローカル識別子の空間よりも大きく、
前記非アーキテクチャ・ローカル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化することにより、非アーキテクチャ・ローカル識別子を再利用して、新しいアーキテクチャ・プロセス・コンテキスト識別子を前記非アーキテクチャ・ローカル識別子にマッピングする、請求項11に記載の方法。 - 前記プロセッサによりサポートされている前記アーキテクチャ仮想プロセッサ識別子の空間は、前記プロセッサによりサポートされている前記非アーキテクチャ・グローバル識別子の空間よりも大きく、
前記非アーキテクチャ・ローカル識別子の各々を非アーキテクチャ・グローバル識別子に関連付け、
前記非アーキテクチャ・グローバル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化し、前記非アーキテクチャ・グローバル識別子に関連付けられている非アーキテクチャ・ローカル識別子の前記表現によりタグ付けされている、前記TLBのすべてのアドレス変換を無効化することにより、非アーキテクチャ・グローバル識別子を再利用して、新しいアーキテクチャ仮想プロセッサ識別子を前記非アーキテクチャ・グローバル識別子にマッピングする、請求項11に記載の方法。 - 前記アーキテクチャ仮想プロセッサ識別子は、x86命令セット・アーキテクチャ仮想プロセッサ識別子(VPID)である、請求項11に記載の方法。
- 前記アーキテクチャ・プロセス・コンテキスト識別子は、x86命令セット・アーキテクチャ・プロセス・コンテキスト識別子(PCID)である、請求項11に記載の方法。
- 前記TLBの前記グローバル・アドレス変換がタグ付けされている前記非アーキテクチャ・グローバル識別子の前記表現は、1ホット・ビット・ベクトルを含み、前記TLBの前記ローカル・アドレス変換がタグ付けされている前記非アーキテクチャ・ローカル識別子の前記表現は、1ホット・ビット・ベクトルを含む、請求項11に記載の方法。
- 複数の関連付けられているアーキテクチャ拡張ページ・テーブル・ポインタを有する仮想プロセッサ識別子について、アーキテクチャ仮想プロセッサ識別子を非アーキテクチャ・グローバル識別子に前記マッピングすることは、アーキテクチャ仮想プロセッサ識別子:アーキテクチャ拡張ページ・テーブル・ポインタのペアを前記非アーキテクチャ・グローバル識別子にマッピングすることを含む、請求項11に記載の方法。
- 前記マッピング及び前記タグ付けは、前記プロセッサのマイクロコードにより実行される、請求項11に記載の方法。
- コンピューティング・デバイスとともに使用するための少なくとも1つの非一時的なコンピュータ使用可能な媒体内に符号化されたコンピュータ・プログラム製品であって、
プロセッサを指定するための、前記媒体内に具現化されたコンピュータ使用可能なプログラム・コードを含み、前記コンピュータ使用可能なプログラム・コードは、
アーキテクチャ仮想プロセッサ識別子を非アーキテクチャ・グローバル識別子にマッピングし、アーキテクチャ・プロセス・コンテキスト識別子を非アーキテクチャ・ローカル識別子にマッピングするマッピング・モジュールを指定するための第1のプログラム・コードと、
複数のアドレス変換を有する変換ルックアサイド・バッファ(TLB)を指定するための第2のプログラム・コードであって、前記複数のアドレス変換の各アドレス変換について、
前記アドレス変換がグローバル・アドレス変換である場合、前記アドレス変換は、前記マッピング・モジュールが前記アーキテクチャ仮想プロセッサ識別子のうちの1つのアーキテクチャ仮想プロセッサ識別子をマッピングした前記非アーキテクチャ・グローバル識別子のうちの1つの非アーキテクチャ・グローバル識別子の表現によりタグ付けされ、
前記アドレス変換がローカル・アドレス変換である場合、前記アドレス変換は、前記マッピング・モジュールが前記アーキテクチャ・プロセス・コンテキスト識別子のうちの1つのアーキテクチャ・プロセス・コンテキスト識別子をマッピングした前記非アーキテクチャ・ローカル識別子のうちの1つの非アーキテクチャ・ローカル識別子の表現によりタグ付けされる、
第2のプログラム・コードと、を含む、
コンピュータ・プログラム製品。 - 前記少なくとも1つの非一時的なコンピュータ使用可能な媒体は、ディスク、テープ、他の磁気記憶媒体、他の光記憶媒体、及び他の電子的記憶媒体からなる群から選択される、請求項19に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462026830P | 2014-07-21 | 2014-07-21 | |
US62/026,830 | 2014-07-21 | ||
PCT/IB2014/003084 WO2016012830A1 (en) | 2014-07-21 | 2014-11-26 | Efficient address translation caching in processor that supports large number of different address spaces |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016527652A true JP2016527652A (ja) | 2016-09-08 |
JP6081672B2 JP6081672B2 (ja) | 2017-02-15 |
Family
ID=55162551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016535541A Active JP6081672B2 (ja) | 2014-07-21 | 2014-11-26 | 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング |
Country Status (7)
Country | Link |
---|---|
US (3) | US9727480B2 (ja) |
EP (2) | EP2997478B1 (ja) |
JP (1) | JP6081672B2 (ja) |
KR (2) | KR101770495B1 (ja) |
CN (3) | CN105993005B (ja) |
TW (3) | TWI592867B (ja) |
WO (3) | WO2016012830A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021533455A (ja) * | 2018-07-31 | 2021-12-02 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 仮想化用のgpuタスクコンテナとしてのvmid |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727480B2 (en) | 2014-07-21 | 2017-08-08 | Via Alliance Semiconductor Co., Ltd. | Efficient address translation caching in a processor that supports a large number of different address spaces |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9697137B2 (en) | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9672159B2 (en) * | 2015-07-02 | 2017-06-06 | Arm Limited | Translation buffer unit management |
US10509729B2 (en) * | 2016-01-13 | 2019-12-17 | Intel Corporation | Address translation for scalable virtualization of input/output devices |
US10042691B2 (en) * | 2016-04-26 | 2018-08-07 | International Business Machines Corporation | Operation of a multi-slice processor implementing exception handling in a nested translation environment |
DK3255550T3 (da) | 2016-06-08 | 2019-07-15 | Google Llc | TLB shootdowns til lave omkostninger |
US10540292B2 (en) | 2016-06-08 | 2020-01-21 | Google Llc | TLB shootdowns for low overhead |
US10108554B2 (en) * | 2016-12-05 | 2018-10-23 | Intel Corporation | Apparatuses, methods, and systems to share translation lookaside buffer entries |
WO2018107322A1 (en) * | 2016-12-12 | 2018-06-21 | Intel Corporation | System and method to improve nested virtual machine monitor performance |
US10725685B2 (en) | 2017-01-19 | 2020-07-28 | International Business Machines Corporation | Load logical and shift guarded instruction |
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
US10496292B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Saving/restoring guarded storage controls in a virtualized environment |
US10732858B2 (en) | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US11409551B2 (en) | 2017-02-27 | 2022-08-09 | Red Hat, Inc. | Emulating VPID correctly for a nested hypervisor |
US10228981B2 (en) | 2017-05-02 | 2019-03-12 | Intel Corporation | High-performance input-output devices supporting scalable virtualization |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US10896030B2 (en) | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US11221957B2 (en) | 2018-08-31 | 2022-01-11 | International Business Machines Corporation | Promotion of ERAT cache entries |
US10769076B2 (en) | 2018-11-21 | 2020-09-08 | Nvidia Corporation | Distributed address translation in a multi-node interconnect fabric |
US11663118B2 (en) * | 2021-03-10 | 2023-05-30 | Infineon Technologies Ag | Address vectors for data storage elements |
US20220414016A1 (en) * | 2021-06-23 | 2022-12-29 | Advanced Micro Devices, Inc. | Concurrent processing of memory mapping invalidation requests |
US11947992B2 (en) | 2022-05-09 | 2024-04-02 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for managing TLB cache in virtualization platform |
CN114595164B (zh) * | 2022-05-09 | 2022-08-16 | 支付宝(杭州)信息技术有限公司 | 在虚拟化平台中管理tlb高速缓存的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04156638A (ja) * | 1990-10-20 | 1992-05-29 | Fujitsu Ltd | 変換バッファを具備する情報処理装置 |
JP2000020399A (ja) * | 1998-06-30 | 2000-01-21 | Hitachi Ltd | 仮想計算機システム |
JP2006526203A (ja) * | 2003-05-12 | 2006-11-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストレージの無効化、バッファ・エントリの消去 |
US20080016315A1 (en) * | 2006-07-12 | 2008-01-17 | Microsoft Corporation | Tagged translation lookaside buffers in a hypervisor computing environment |
JP2008077642A (ja) * | 2006-08-15 | 2008-04-03 | Intel Corp | 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化 |
JP2009146344A (ja) * | 2007-12-18 | 2009-07-02 | Hitachi Ltd | 計算機仮想化装置のtlb仮想化方法および計算機仮想化プログラム |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430850A (en) | 1991-07-22 | 1995-07-04 | Massachusetts Institute Of Technology | Data processing system with synchronization coprocessor for multiple threads |
US5845331A (en) | 1994-09-28 | 1998-12-01 | Massachusetts Institute Of Technology | Memory system including guarded pointers |
US5926642A (en) * | 1995-10-06 | 1999-07-20 | Advanced Micro Devices, Inc. | RISC86 instruction set |
US5715427A (en) | 1996-01-26 | 1998-02-03 | International Business Machines Corporation | Semi-associative cache with MRU/LRU replacement |
US6041396A (en) * | 1996-03-14 | 2000-03-21 | Advanced Micro Devices, Inc. | Segment descriptor cache addressed by part of the physical address of the desired descriptor |
US5953520A (en) | 1997-09-22 | 1999-09-14 | International Business Machines Corporation | Address translation buffer for data processing system emulation mode |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US8065504B2 (en) * | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US8074055B1 (en) | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US6212613B1 (en) | 1999-03-22 | 2001-04-03 | Cisco Technology, Inc. | Methods and apparatus for reusing addresses in a computer |
US6490671B1 (en) * | 1999-05-28 | 2002-12-03 | Oracle Corporation | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system |
US6412043B1 (en) * | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6470437B1 (en) | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US6604187B1 (en) * | 2000-06-19 | 2003-08-05 | Advanced Micro Devices, Inc. | Providing global translations with address space numbers |
US6510506B2 (en) | 2000-12-28 | 2003-01-21 | Intel Corporation | Error detection in cache tag array using valid vector |
US7073044B2 (en) | 2001-03-30 | 2006-07-04 | Intel Corporation | Method and apparatus for sharing TLB entries |
US6662289B1 (en) | 2001-05-15 | 2003-12-09 | Hewlett-Packard Development Company, Lp. | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
US7089396B2 (en) | 2002-10-10 | 2006-08-08 | International Business Machines Corporation | Method and profiling cache for management of virtual memory |
US7363462B2 (en) | 2003-04-04 | 2008-04-22 | Sun Microsystems, Inc. | Performing virtual to global address translation in processing subsystem |
KR100591755B1 (ko) | 2003-07-22 | 2006-06-22 | 삼성전자주식회사 | 복수의 스레드를 동시에 처리하는 장치 및 방법 |
US7167970B2 (en) * | 2004-05-24 | 2007-01-23 | Sun Microsystems, Inc. | Translating loads for accelerating virtualized partition |
US7234038B1 (en) | 2004-05-28 | 2007-06-19 | Sun Microsystems, Inc. | Page mapping cookies |
US7551614B2 (en) | 2004-12-14 | 2009-06-23 | Hewlett-Packard Development Company, L.P. | Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network |
US8522253B1 (en) | 2005-03-31 | 2013-08-27 | Guillermo Rozas | Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches |
US20070005933A1 (en) * | 2005-06-29 | 2007-01-04 | Kopec Brian J | Preventing multiple translation lookaside buffer accesses for a same page in memory |
US20080005528A1 (en) | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space |
US20080005529A1 (en) | 2006-06-30 | 2008-01-03 | Morris Robert P | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space |
US7490191B2 (en) | 2006-09-22 | 2009-02-10 | Intel Corporation | Sharing information between guests in a virtual machine environment |
US7836258B2 (en) * | 2006-11-13 | 2010-11-16 | International Business Machines Corporation | Dynamic data cache invalidate with data dependent expiration |
US8099559B2 (en) * | 2007-09-11 | 2012-01-17 | International Business Machines Corporation | System and method for generating fast instruction and data interrupts for processor design verification and validation |
US7937556B2 (en) | 2008-04-30 | 2011-05-03 | Oracle America, Inc. | Minimizing TLB comparison size |
JP5300407B2 (ja) | 2008-10-20 | 2013-09-25 | 株式会社東芝 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
CN101398768B (zh) * | 2008-10-28 | 2011-06-15 | 北京航空航天大学 | 一种分布式虚拟机监视器系统的构建方法 |
CN101794214B (zh) | 2009-02-04 | 2013-11-20 | 世意法(北京)半导体研发有限责任公司 | 使用多块物理寄存器映射表的寄存器重命名系统及其方法 |
US8443156B2 (en) * | 2009-03-27 | 2013-05-14 | Vmware, Inc. | Virtualization system using hardware assistance for shadow page table coherence |
US8533437B2 (en) * | 2009-06-01 | 2013-09-10 | Via Technologies, Inc. | Guaranteed prefetch instruction |
US8412911B2 (en) | 2009-06-29 | 2013-04-02 | Oracle America, Inc. | System and method to invalidate obsolete address translations |
US8301865B2 (en) | 2009-06-29 | 2012-10-30 | Oracle America, Inc. | System and method to manage address translation requests |
US8930635B2 (en) | 2009-12-14 | 2015-01-06 | International Business Machines Corporation | Page invalidation processing with setting of storage key to predefined value |
US8386749B2 (en) * | 2010-03-16 | 2013-02-26 | Advanced Micro Devices, Inc. | Address mapping in virtualized processing system |
US9003171B2 (en) | 2010-06-23 | 2015-04-07 | Apple Inc. | Page fault prediction for processing vector instructions |
US8527736B1 (en) * | 2010-09-07 | 2013-09-03 | Adtran, Inc. | Systems and methods for improving address translation speed |
CN103620547B (zh) * | 2011-01-27 | 2018-07-10 | 英特尔公司 | 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射 |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
JP2013097671A (ja) | 2011-11-02 | 2013-05-20 | Fujitsu Ltd | アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置 |
CN104246692B (zh) | 2012-03-30 | 2018-02-23 | 英特尔公司 | 用于实时指令跟踪的系统和方法 |
US8856789B2 (en) * | 2012-09-06 | 2014-10-07 | Assured Information Security, Inc. | Facilitating execution of a self-modifying executable |
US10310973B2 (en) * | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US9311239B2 (en) | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US9507597B2 (en) * | 2013-06-10 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Selective accumulation and use of predicting unit history |
WO2014209269A1 (en) | 2013-06-24 | 2014-12-31 | Intel Corporation | A protected memory view for nested page table access by virtual machine guests |
CN104424034A (zh) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | 硬件资源访问方法及装置 |
US9727480B2 (en) * | 2014-07-21 | 2017-08-08 | Via Alliance Semiconductor Co., Ltd. | Efficient address translation caching in a processor that supports a large number of different address spaces |
-
2014
- 2014-11-26 US US14/761,126 patent/US9727480B2/en active Active
- 2014-11-26 US US14/890,341 patent/US9760496B2/en active Active
- 2014-11-26 EP EP14891591.1A patent/EP2997478B1/en active Active
- 2014-11-26 KR KR1020157033139A patent/KR101770495B1/ko active IP Right Grant
- 2014-11-26 WO PCT/IB2014/003084 patent/WO2016012830A1/en active Application Filing
- 2014-11-26 EP EP14891592.9A patent/EP3172673B1/en active Active
- 2014-11-26 CN CN201480065923.3A patent/CN105993005B/zh active Active
- 2014-11-26 WO PCT/IB2014/003116 patent/WO2016012832A1/en active Application Filing
- 2014-11-26 JP JP2016535541A patent/JP6081672B2/ja active Active
- 2014-11-26 US US14/890,334 patent/US9842055B2/en active Active
- 2014-11-26 CN CN201480065921.4A patent/CN105993003B/zh active Active
- 2014-11-26 KR KR1020157033233A patent/KR101770496B1/ko active IP Right Grant
- 2014-11-26 WO PCT/IB2014/003110 patent/WO2016012831A1/en active Application Filing
- 2014-11-26 CN CN201480065922.9A patent/CN105993004B/zh active Active
-
2015
- 2015-07-20 TW TW104123448A patent/TWI592867B/zh active
- 2015-07-20 TW TW104123452A patent/TWI605339B/zh active
- 2015-07-20 TW TW104123447A patent/TWI581098B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04156638A (ja) * | 1990-10-20 | 1992-05-29 | Fujitsu Ltd | 変換バッファを具備する情報処理装置 |
JP2000020399A (ja) * | 1998-06-30 | 2000-01-21 | Hitachi Ltd | 仮想計算機システム |
JP2006526203A (ja) * | 2003-05-12 | 2006-11-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストレージの無効化、バッファ・エントリの消去 |
US20080016315A1 (en) * | 2006-07-12 | 2008-01-17 | Microsoft Corporation | Tagged translation lookaside buffers in a hypervisor computing environment |
JP2008077642A (ja) * | 2006-08-15 | 2008-04-03 | Intel Corp | 翻訳ルックアサイドバッファと拡張ページングテーブルとの同期化 |
JP2009146344A (ja) * | 2007-12-18 | 2009-07-02 | Hitachi Ltd | 計算機仮想化装置のtlb仮想化方法および計算機仮想化プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021533455A (ja) * | 2018-07-31 | 2021-12-02 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 仮想化用のgpuタスクコンテナとしてのvmid |
JP7123235B2 (ja) | 2018-07-31 | 2022-08-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 仮想化用のgpuタスクコンテナとしてのvmid |
US11467870B2 (en) | 2018-07-31 | 2022-10-11 | Advanced Micro Devices, Inc. | VMID as a GPU task container for virtualization |
Also Published As
Publication number | Publication date |
---|---|
TW201617898A (zh) | 2016-05-16 |
US20160179688A1 (en) | 2016-06-23 |
EP3172673A1 (en) | 2017-05-31 |
EP3172673B1 (en) | 2020-09-02 |
TWI605339B (zh) | 2017-11-11 |
EP2997478A1 (en) | 2016-03-23 |
KR101770496B1 (ko) | 2017-09-05 |
TWI581098B (zh) | 2017-05-01 |
US9760496B2 (en) | 2017-09-12 |
KR20160033653A (ko) | 2016-03-28 |
TW201610837A (zh) | 2016-03-16 |
EP2997478B1 (en) | 2019-03-13 |
WO2016012830A1 (en) | 2016-01-28 |
CN105993003A (zh) | 2016-10-05 |
WO2016012831A1 (en) | 2016-01-28 |
US20160179701A1 (en) | 2016-06-23 |
KR101770495B1 (ko) | 2017-08-22 |
TWI592867B (zh) | 2017-07-21 |
CN105993003B (zh) | 2019-04-09 |
US20160041922A1 (en) | 2016-02-11 |
WO2016012832A1 (en) | 2016-01-28 |
CN105993004A (zh) | 2016-10-05 |
KR20160033654A (ko) | 2016-03-28 |
EP2997478A4 (en) | 2017-06-07 |
CN105993004B (zh) | 2019-04-02 |
CN105993005A (zh) | 2016-10-05 |
US9727480B2 (en) | 2017-08-08 |
CN105993005B (zh) | 2019-06-04 |
JP6081672B2 (ja) | 2017-02-15 |
EP3172673A4 (en) | 2018-03-28 |
US9842055B2 (en) | 2017-12-12 |
TW201610683A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6081672B2 (ja) | 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング | |
CN109240950B (zh) | 处理器、区分系统管理模式条目的方法以及存储介质 | |
US9335943B2 (en) | Method and apparatus for fine grain memory protection | |
US8386749B2 (en) | Address mapping in virtualized processing system | |
KR100834362B1 (ko) | 스토리지 무효화, 버퍼 엔트리 제거 | |
KR101787851B1 (ko) | 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법 | |
US20190205261A1 (en) | Systems, methods, and apparatuses for patching pages | |
WO2016055828A1 (en) | Cache system with primary cache and overflow fifo cache | |
US10423537B2 (en) | Address space resizing table for simulation of processing of target program code on a target data processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161011 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161121 |
|
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: 20161220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6081672 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |