TW201907308A - 位址轉譯資料的無效化 - Google Patents
位址轉譯資料的無效化 Download PDFInfo
- Publication number
- TW201907308A TW201907308A TW107121680A TW107121680A TW201907308A TW 201907308 A TW201907308 A TW 201907308A TW 107121680 A TW107121680 A TW 107121680A TW 107121680 A TW107121680 A TW 107121680A TW 201907308 A TW201907308 A TW 201907308A
- Authority
- TW
- Taiwan
- Prior art keywords
- translation
- address
- context
- data
- buffer
- Prior art date
Links
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]
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Machine Translation (AREA)
- Executing Machine-Instructions (AREA)
Abstract
包括儲存位址轉譯資料的一或更多個事務緩存器16、18、20的資料處理系統2執行各別位址轉譯上下文VMID、ASID、X內的轉譯緩存器無效化指令TLBI。由於執行轉譯緩存器無效化指令而產生的轉譯緩存器無效化訊號被廣播到各別的轉譯緩存器且包括指定被執行的轉譯緩存器無效化指令的位址轉譯上下文的訊號。轉譯緩存器無效化訊號內所指定的此位址轉譯上下文用來閘控彼等轉譯緩存器無效化訊號在由是潛在的無效化目標的轉譯緩存器所接收時是否被刷新。轉譯緩存器無效化訊號內所提供的位址轉譯上下文資料亦可用來控制在接收到轉譯緩存器無效化訊號時是否中止用於本端事務記憶體存取的本端記憶體事務。
Description
此揭示案關於資料處理系統的領域。更具體而言,此揭示案關於儲存在資料處理系統內的位址轉譯資料的無效化。
提供利用位址轉譯資料來將接收到的位址映射到轉譯的位址的資料處理系統是大家都知道的。例如,處理器可使用虛擬位址空間來執行指令,且本端轉譯緩存器可儲存用於將接收到的虛擬位址映射成轉譯的實體位址、或中介實體位址(例如在超管理器正支援多個虛擬機器執行環境的存在時)的位址轉譯資料。在此類系統中,重要的是,位址轉譯不應使處理操作慢下來,且因此可將一或更多個位址轉譯緩存器分佈在靠近處理電路系統的一個系統的任何部分,該處理電路系統使用該轉譯資料以便可在低延遲內本端取得該轉譯資料。然而,在將位址轉譯資料分佈在整個系統時,引起了該資料的一致性管理問題。管理位址轉譯資料的一致性的機構本身不應約束處理效能。
本揭示案的至少一些示例實施例提供用於處理資料的裝置,該裝置包括: 一或更多個轉譯緩存器,用來儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理電路系統,用來執行程式指令;其中 所述處理電路系統回應於使用給定位址轉譯上下文來執行的程式指令序列內的轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
本揭示案的至少一些示例實施例提供用於處理資料的裝置,該裝置包括: 一或更多個轉譯緩存器構件,用於儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理構件,用於執行程式指令;其中 所述處理構件回應於使用給定位址轉譯上下文來執行的程式指令序列內的轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
本揭示案的至少一些實施例提供一種處理資料的方法,該方法包括以下步驟: 將各別的位址轉譯資料儲存在一或更多個轉譯緩存器內,該位址轉譯資料用來將接收到的位址映射到轉譯的位址;及 執行程式指令;其中 回應於使用給定位址轉譯上下文來執行的程式指令序列內的轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
本揭示案的至少一些實施例提供了一種用於控制主機資料處理裝置以提供指令執行環境的電腦程式,該電腦程式包括: 一或更多個轉譯緩存器資料結構,用來儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理程式邏輯,用來執行程式指令;其中 所述處理程式邏輯回應於使用給定位址轉譯上下文來執行的程式指令序列內的轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器資料結構廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
電腦程式可儲存在儲存媒體中。該儲存媒體可為非暫時性儲存媒體。
圖1示意性地繪示資料處理系統2,該資料處理系統包括通用處理器4及6及圖形處理單元8的形式的複數個處理元件。這些處理元件4、6、8中的各者包括本端快取記憶體10、12、14及本端轉譯後備緩存器16、18、20的形式的本端轉譯緩存器。轉譯後備緩存器16、18、20儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料。接收到的位址可例如為如由處理元件4、6、8本端使用的虛擬位址,且被轉譯到如該等處理元件的本端快取記憶體10、12、14內所使用的位址資料。位址轉譯資料可將此類虛擬位址映射到實體位址PA或中介實體位址IPA(例如在使用超管理程式來支援多個虛擬機器執行環境的系統的情況下)。
處理元件4、6、8使用它們的本端轉譯後備緩存器16、18、20來將接收到的位址轉換到轉譯的位址(例如實體位址),接著經由互連器24向記憶系統分級結構內的其他元件(例如被通用處理器4、6共享的另外的快取記憶體22,及主共享記憶體26)發出該等轉譯的位址。
在處理元件4、6、8中的各者內本端供應轉譯後備緩存器16、18、20允許這些處理元件在轉譯資料存在於轉譯後備緩存器16、18及20內時以高速及以低延遲執行位址映射。轉譯後備緩存器16、18、20通常可形成處理元件內的關鍵路徑的一部分(該等轉譯後備緩存器形成該等處理元件的一部分),使得重要的是,轉譯後備緩存器16、18、20應快速及高效地操作,否則該等轉譯後備緩存器的相關聯的處理元件4、6、8的整體效能可能降級。
資料處理系統2的不同部分內所使用的位址轉譯資料被管理為提供由資料處理系統的不同部分所施用的記憶體映射的一致整體控制,以確保一致性及資料完整性。通常可在使用期間更改映射資料。為了確保本端保持在不同轉譯後備緩存器16、18、20內的位址轉譯資料的不同複本之間的一致性,提供了轉譯緩存器無效化指令,該轉譯緩存器無效化指令可由處理元件4、6、8中的任一者在該處理元件的程式指令序列內執行。在此類轉譯緩存器無效化指令被執行時,接著轉譯緩存器無效化訊號被廣播到系統內的轉譯後備緩存器16、18、20且被用來選擇性地觸發保持在彼等分佈式轉譯後備緩存器16、18、20內的位址轉譯資料的無效化。
被執行的轉譯緩存器無效化指令是由處理元件4、6、8中的給定處理元件在正在執行轉譯緩存器無效化指令的該處理元件4、6、8的位址轉譯上下文內所執行的程式指令序列的一部分。位址轉譯上下文包括哪個虛擬機器執行環境目前現用(active)在該處理元件上及哪個程式執行緒目前現用在利用本身的位址空間的該處理元件上,轉譯緩存器無效化指令是在該位址轉譯上下文內執行的。據此,可用包括虛擬機器識別碼(VMID)的變數來表示任何給定時間處的給定處理元件4、6、8的位址轉譯上下文,該虛擬機器識別碼識別可由相關的處理元件4、6、8所執行的複數個虛擬機器執行上下文之中的一個虛擬機器執行上下文。指定位址轉譯上下文的變數還可包括位址空間識別碼(ASID),該位址空間識別碼識別可由相關的處理元件4、6、8所執行的複數個程序之中的一個給定程序,且可將轉譯緩存器無效化指令包括在執行緒內。
在針對轉譯緩存器無效化指令現用在該特定時間處的位址轉譯上下文內由處理元件4、6、8中的一者執行該轉譯緩存器無效化指令的行為引起廣播轉譯緩存器無效化訊號的行為,該等轉譯緩存器無效化訊號指定位址轉譯上下文,該轉譯緩存器無效化指令曾是在該位址轉譯上下文內執行的。包括在轉譯緩存器無效化訊號內的是指定始發的轉譯緩存器無效化指令的位址轉譯上下文的資料。這允許轉譯後備緩存器16、18、20閘控彼等轉譯緩存器無效化訊號在該轉譯後備緩存器接收到彼等轉譯無效化訊號的給定時間點是否觸發位址轉譯資料的刷新(部分或完全的刷新),該等轉譯後備緩存器取決於藉以始發轉譯緩存器無效化訊號的位址轉譯上下文與轉譯後備緩存器16、18、20的本端上下文之間的匹配或不匹配而儲存該位址轉譯資料。這可避免在不需要維持一致性時不必要地移除位址轉譯資料,且因此避免了使效能降級,例如是藉由由於實際上不必要的位址轉譯資料刷新而要求轉譯後備緩存器再填充及/或事務記憶體事務中止來避免。
圖2示意性地繪示通用處理器4的形式的處理元件,該通用處理器包括轉譯後備緩存器16,該轉譯後備緩存器包括轉譯後備緩存器記憶體28、比較電路系統30及暫存器32、34、36及38,該等暫存器儲存虛擬機器識別碼VMID、位址空間識別碼ASID、高存取值HI及低存取值LO的形式的緩存器上下文資料。通用處理器4接收要在指令解碼器40處在程式指令序列內執行的程式指令,在該指令解碼器處,彼等程式指令被解碼以產生控制訊號,該等控制訊號接著控制多個執行管線(pipeline)42、44、46的操作。這些執行管線包括加載儲存管線42,該加載儲存管線負責執行執行記憶體存取的程式指令(加載指令及儲存指令),且該加載儲存管線利用儲存在轉譯後備緩存器16的轉譯後備緩存器記憶體28內的位址轉譯資料48。
在通用處理器4在指令解碼器40處接收到轉譯緩存器無效化指令TLBI時,接著這用來在訊號線50上產生轉譯緩存器無效化訊號,該等轉譯緩存器無效化訊號被廣播到該通用處理器本身的轉譯後備緩存器16及資料處理系統2內的任何其他轉譯後備緩存器18、20兩者。轉譯後備緩存器無效化指令TLBI將正被無效化的轉譯後備緩存器儲存格的位址值指定為引數X。
通用處理器4包括目前程式狀態暫存器52,該目前程式狀態暫存器儲存表示通用處理器4的目前狀態的資料。此目前狀態包括通用處理器4的目前虛擬機器識別碼,該目前虛擬機器識別碼指示複數個虛擬機器執行內容中的哪一者在通用處理器4內是目前現用的(對應於目前正被執行的程式指令序列)。目前程式狀態暫存器52進一步使用與正在執行的目前現用程序相關聯的位址空間識別碼ASID來在複數個程序之中指定該目前現用程序。
儲存在目前程式狀態暫存器52內的虛擬機器識別碼VMID及程序識別碼ASID一起表示與轉譯後備緩存器指令TLBI相關聯的位址轉譯上下文的一部分,該轉譯後備緩存器指令被解碼且要被執行。在訊號線50上廣播的轉譯緩存器無效化訊號包括指定虛擬機器識別碼VMID、位址空間識別碼ASID及目標的接收到的位址值X的訊號,要針對該位址值無效化位址轉譯資料。因此,轉譯緩存器無效化訊號指定與所執行的轉譯緩存器無效化指令TLBI相關聯的位址轉譯上下文。
廣播的轉譯緩存器無效化訊號被發送到系統內的轉譯後備緩存器16、18、20且被供應到彼等各別的轉譯後備緩存器16、18、20內的比較電路系統30。比較電路系統決定與儲存在相關的轉譯後備緩存器16、18、20內的位址轉譯資料48相關聯的緩存器上下文資料是否匹配以轉譯緩存器無效化訊號指定的緩存器上下文資料。若緩存器上下文資料的虛擬機器識別碼VMID匹配轉譯緩存器無效化訊號內所指定的虛擬機器識別碼,且緩存器上下文資料的位址空間識別碼ASID亦匹配轉譯緩存器無效化訊號的位址空間識別碼,則比較電路系統30容許從其本端的轉譯後備緩存器記憶體28刷新位址轉譯資料48。此類刷新行為可採取各種不同的形式,例如將儲存的資料標記為是無效的。若緩存器上下文資料(VMID、ASID)並不匹配與接收到的轉譯緩存器無效化訊號相關聯的位址轉譯上下文,則比較電路系統30禁止刷新位址轉譯資料48,因為無效化操作對於該本端保持的位址轉譯資料48而言是不必要的。
處理元件中的至少一些部分(包括通用處理器4、6)支援事務記憶體存取。此類事務記憶體存取提供了包括程式指令的事務,該等程式指令以各別事務起始點及事務提交點為界。此類事務在若是在達到事務提交點之前被中止則裝置返回對應於事務起始點的狀態的意義上被原子地(atomically)執行。此類事務記憶體存取在利用共享記憶體時藉由例如避免明確地使用設定及重設記憶鎖的需要來改良系統效能上是有用的。
可能觸發在此類系統內中止記憶體存取事務的一個情況是儲存在本端轉譯後備緩存器16、18、20內的位址轉譯資料被不適當地改變的時候。本揭示案提供暫存器形式的範圍追蹤電路系統36、38,該等暫存器追蹤在使用儲存在相關的本端轉譯後備緩存器16內的給定位址轉譯資料48期間由處理元件4所存取的最小位址值LO及最大位址值HI。在本端轉譯後備緩存器16被刷新時,接著最大位址值HI及最小位址值LO分別被重設為表示位址空間範圍內的最低點及位址空間範圍內的最高點的值。每次隨後進行位址存取,就將儲存在暫存器36內的最大值與目前位址值進行比較,且若該目前位址值在位址空間範圍中高於目前針對HI所儲存的值,則將儲存在暫存器36內的值更新成目前位址值。以類似的方式,將最小位址值LO與目前使用的位址值進行比較,且若目前位址在記憶體位址空間中低於目前儲存的最小位址值LO,則將儲存的最小位址值LO更新成目前位址值。因此,暫存器36、38儲存追蹤位址範圍的範圍追蹤值,與轉譯記憶體的目前未決事務相關聯的任何記憶體存取都位於該位址範圍內。
在給定轉譯後備緩存器16處接收到轉譯緩存器無效化訊號時,本端比較電路系統30將所要針對來無效化位址轉譯資料的目標的接收到的位址值X與範圍追蹤值HI、LO進行比較,該等範圍追蹤值追蹤已由該處理元件所使用的總位址空間內的位址空間範圍。若所作出的比較的結果是,目標的接收到的位址X或目標的接收到的位址範圍是在以最小位址值LO及最大位址值HI為界的範圍(本端處理器的現用位址範圍)之外,則相關的處理元件4繼續進行事務記憶體的任何未決轉譯,如同此類事務未受到由轉譯緩存器無效化訊號以訊號通知的位址轉譯無效化影響一般。在儲存在暫存器32、34內的給定緩存器上下文資料VMID、ASID兩者匹配接收到的位址轉譯上下文VMID及ASID且接收到的目標位址值X是在以最小位址值LO及最大位址值HI為界的範圍內時,比較電路系統30發出中止該本端處理元件4內的任何未決記憶體事務的訊號。此類記憶體事務中止行為觸發返回至對應於相關聯的事務起始點的狀態的行為。
給定的處理元件4、6、8可支***錯執行複數個程式執行緒(例如在SMT處理器內)。這些程式執行緒中的各者可具有其本身的位址轉譯上下文。這些位址轉譯上下文由儲存在轉譯後備緩存器16、18、20內的VMID、ASID、HI及LO值所表示。圖3示意性地繪示可如何使用多個暫存器32、32'、34、34'、36、36'、38、38'來儲存與儲存在位址轉譯緩存記憶體28內的位址轉譯資料48相關聯的多個本端位址轉譯內容。將指示了指示執行緒0還是執行緒1目前為現用的訊號的執行緒用來切換多工器以選擇要將這些位址轉譯上下文中的哪一者用於與具有接收到的轉譯緩存器無效化訊號的位址轉譯上下文識別訊號進行比較。
圖4示意性地繪示如何可將用於處理元件的位址範圍追蹤用來閘控轉譯緩存器無效化訊號。系統的記憶體位址空間54從零延伸到最高位址值。由範圍追蹤電路系統使用暫存器36、38來追蹤從最後一次轉譯後備緩存器刷新以來由相關的處理元件所執行的記憶體存取,藉此在每次執行記憶體存取時,將該記憶體存取與被註記為已存取的範圍的目前儲存的最小位址值及最大位址值進行比較。若新接收到的記憶體位址值是在目前追蹤的範圍之外,則在必要時更新HI及LO的儲存值。此行為繪示在圖4的左側上。
圖4的右側指示接收到的轉譯緩存器無效化訊號,該等轉譯緩存器無效化訊號指定用於無效化操作的各別目標位址。若這些目標位址是在目前追蹤的記憶體位址範圍之外,則轉譯緩存器無效化訊號並不引起本端處理元件的未決記憶體存取事務的任何中止行為。然而,若轉譯緩存器無效化訊號指定了是在從最後一次TLB刷新以來已被使用的目前正被追蹤的位址範圍內的目標位址,則這就針對本端處理元件4的任何未決記憶體事務觸發記憶體事務中止行為。
圖5是一個流程圖,示意性地繪示轉譯後備緩存器刷新(flush)控制。處理在步驟56處等待,直到接收到轉譯緩存器無效化訊號為止。步驟58將在轉譯緩存器無效化訊號中所接收到的VMID值與保持在暫存器32內而作為相關的轉譯後備緩存器的緩存器上下文資料的一部分的VMID值進行比較。若沒有匹配,則不執行刷新且處理繼續進行到結束。若有匹配,則步驟60用來將被包括在引起轉譯緩存器無效化訊號的轉譯緩存器無效化指令中的指示現用程序的接收到的位址空間識別碼值ASID與緩存器上下文資料且特別是儲存在暫存器34內的ASID值進行比較。若沒有匹配,則程序再次終止。然而,若在步驟58及60兩者處有匹配,則處理到達步驟62,在步驟62處,轉譯後備緩存器28內的位址轉譯資料48被刷新(例如被標示為是無效的)。
圖6是一個流程圖,示意性地繪示事務中止控制。處理在步驟64處等待接收到轉譯緩存器無效化訊號。步驟66及68再次用來檢查表示虛擬機器識別碼的接收到的VMID訊號及表示始發事務緩存器無效化指令的程序的ASID訊號與本端的轉譯後備緩存器的緩存器上下文資料之間的匹配。若這些不皆匹配,則處理繼續進行到結束且不執行事務中止。然而,若VMID及ASID皆匹配,則處理到達步驟70,在步驟70處,在接收到的轉譯緩存器無效化訊號的目標位址X及儲存在暫存器36內的目前儲存的最大位址值之間作出比較。若接收到的位址小於最大儲存值HI,則處理進行到步驟72。若接收到的位址大於儲存的HI值,則目標位址是在已使用位址轉譯資料48來存取的位址範圍之外,且因此中止是不必要的。在步驟72處,將由轉譯緩存器無效化訊號所指定的接收到的目標位址與儲存的最小位址值LO進行比較。若接收到的位址值小於儲存的最小值LO,則不執行事務且處理再次終止。然而,若步驟70及72兩者被通過而指示接收到的目標位址是在已使用相關的轉譯後備緩存器48來存取的記憶體位址的追蹤範圍之內,則可能的情況是,未決記憶體事務中的一者會取決於已被指示要無效化的位址轉譯資料,且因此步驟74用來觸發本端處理元件4內的所有未決記憶體事務的事務中止行為。將理解到,依據圖5的流程圖,位址轉譯資料亦被無效化。
圖7繪示可使用的模擬器實施方式。儘管先前所述的實施例根據用於操作支援相關技術的特定處理硬體的裝置及方法實施本發明,亦可能提供依據本文中所述的實施例的指令執行環境,該指令執行環境是通過使用電腦程式來實施的。此類電腦程式通常稱為模擬器,只要它們提供硬體架構的基於軟體的實施方式。模擬器電腦程式的變體包括仿真器、虛擬機器、模型及二進制轉譯器(包括動態二進制轉譯器)。一般而言,模擬器實施方式可運行在支援模擬器程式510的主機處理器530(可選地運行主機作業系統520)上。在一些佈置中,可能在硬體及所提供的指令執行環境之間存在著多層模擬,及/或存在著提供在相同主機處理器上的多個相異的指令執行環境。歷史上,已經需要強力的處理器來提供在合理速度下執行的模擬器實施方式,但此類方法在某些環境中可被調整(justify),例如在基於相容性或重複使用的理由而有需要運行本端代碼至另一處理器時。例如,模擬器實施方式可提供具有未受主機處理器硬體所支援的額外功能性的指令執行環境,或提供一般與不同的硬體架構相關聯的指令執行環境。Robert Bedichek在1990年冬季USENIX會議第53-63頁的「Some Efficient Architecture Simulation Techniques」中給出了模擬的概述。
在先前已針對特定硬體構造或特徵描述實施例的情況下,在模擬的實施例中,可由合適的軟體構造或特徵提供等效的功能性。例如,可在模擬的實施例中將特定的電路系統實施為電腦程式邏輯。類似地,可在模擬的實施例中將記憶體硬體(例如暫存器或快取記憶體)實施為軟體資料結構。在先前所述的實施例中所指稱的硬體元件中的一或更多者存在於主機硬體(例如主機處理器530)上的佈置中,一些模擬的實施例可在合適時利用主機硬體。
模擬器程式510可被儲存在電腦可讀取儲存媒體(其可為非暫時性媒體)上,且向目標代碼500(其可包括應用程式、作業系統及超管理器)提供程式介面(指令執行環境),該程式介面與正被模擬器程式510所建模的硬體架構的應用程式介面相同。因此,可使用模擬器程式510來藉由在指令執行環境內執行目標代碼500的程式指令(包括基於上述的領域(realm)保護功能性的記憶體存取控制),使得實際上不具有上文所論述的裝置2的硬體特徵的主機電腦530可模仿這些特徵。
至少一些實例提供了一種虛擬機器,該虛擬機器提供依據一方法來操作的一執行環境,該方法包括以下步驟:將各別的位址轉譯資料儲存在一或更多個轉譯緩存器內,該位址轉譯資料用來將接收到的位址映射到轉譯的位址;及執行程式指令;其中回應於使用一給定的位址轉譯上下文來執行的一程式指令序列內的一轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,且所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。儲存媒體可儲存虛擬機器電腦程式。儲存媒體可為非暫時性儲存媒體。
在本案中,用詞「配置為...」用來意指裝置的元件具有能夠實現所界定的操作的配置。在此上下文中,「配置」意指硬體或軟體互連的佈置或方式。例如,裝置可具有提供所界定操作的專用硬體,或處理器或其他處理裝置可經程式化以執行該功能。「配置為」並不暗示,裝置元件需要以任何方式改變以提供所界定的操作。
儘管已參照附圖而在本文中詳細描述本發明的說明性實施例,要了解到,本發明不限於彼等準確的實施例,且本領域中的技術人員可在該等實施例中作出各種改變及更改而不脫離如由隨附請求項所界定的發明的範圍及精神。
2‧‧‧資料處理系統
4‧‧‧處理元件
6‧‧‧處理元件
8‧‧‧處理元件
10‧‧‧本端快取記憶體
12‧‧‧本端快取記憶體
14‧‧‧本端快取記憶體
16‧‧‧轉譯後備緩存器
18‧‧‧轉譯後備緩存器
20‧‧‧轉譯後備緩存器
22‧‧‧快取記憶體
24‧‧‧互連器
26‧‧‧主共享記憶體
28‧‧‧轉譯後備緩存器記憶體
30‧‧‧比較電路系統
32‧‧‧暫存器
32'‧‧‧暫存器
34‧‧‧暫存器
34'‧‧‧暫存器
36‧‧‧暫存器
36'‧‧‧暫存器
38‧‧‧暫存器
38'‧‧‧暫存器
40‧‧‧指令解碼器
42‧‧‧執行管線
44‧‧‧執行管線
46‧‧‧執行管線
48‧‧‧位址轉譯資料
50‧‧‧訊號線
52‧‧‧目前程式狀態暫存器
54‧‧‧記憶體位址空間
56‧‧‧步驟
58‧‧‧步驟
60‧‧‧步驟
62‧‧‧步驟
64‧‧‧步驟
66‧‧‧步驟
68‧‧‧步驟
70‧‧‧步驟
72‧‧‧步驟
74‧‧‧步驟
500‧‧‧目標代碼
510‧‧‧模擬器程式
520‧‧‧主機作業系統
530‧‧‧主機電腦
結合附圖閱讀以下實例的描述,本技術的另外的態樣、特徵及優點將變得顯而易見,在該等繪圖中:
圖1示意性地繪示一種資料處理系統,該資料處理系統包括利用本端轉譯緩存器的多個處理元件;
圖2示意性地繪示處理元件及本端轉譯緩存器;
圖3示意性地繪示針對多執行緒處理器內的各個程式執行緒儲存緩存器上下文資料;
圖4示意性地繪示用於處理元件的位址範圍追蹤,該位址範圍追蹤用來閘控(gate)轉譯緩存器無效化訊號的行動;
圖5是一個流程圖,示意性地繪示轉譯後備緩存器刷新(flush)控制;
圖6是一個流程圖,示意性地繪示事務(transaction)中止(abort)控制;及
圖7示意性地繪示本技術的模擬器實施方式。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
Claims (18)
- 一種用於處理資料的裝置,包括: 一或更多個轉譯緩存器,用來儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理電路系統,用來執行程式指令;其中 所述處理電路系統回應於使用一給定位址轉譯上下文來執行的一程式指令序列內的一轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
- 如請求項1所述的裝置,其中所述裝置支援執行複數個虛擬機器執行上下文,且所述給定的位址轉譯上下文包括用來識別所述轉譯緩存器無效化指令的一虛擬機器執行上下文的一虛擬機器識別碼。
- 如請求項1所述的裝置,其中所述裝置支援執行具有各別的位址空間轉譯映射的複數個程序,且所述給定的位址轉譯上下文包括用來在所述複數個程序之中識別所述轉譯緩存器無效化指令的一程序的一位址空間識別碼。
- 如請求項1所述的裝置,其中所述一或更多個轉譯緩存器之中的一給定的轉譯緩存器儲存給定的緩存器上下文資料,該給定的緩存器上下文資料指定儲存在所述給定轉譯緩存器內的給定位址轉譯資料的一位址轉譯上下文。
- 如請求項4所述的裝置,包括與所述給定轉譯緩存器相關聯的上下文比較電路系統,該上下文比較電路系統用來執行所述給定緩存器上下文資料與指定所述給定位址轉譯上下文的所述訊號的一比較。
- 如請求項5所述的裝置,其中: 在所述給定緩存器上下文資料匹配指定所述給定位址轉譯上下文的所述訊號時,所述比較電路系統容許刷新所述給定位址轉譯資料,及 在所述給定緩存器上下文資料與指定所述給定位址轉譯上下文的所述訊號不同時,所述比較電路系統禁止刷新所述給定位址轉譯資料。
- 如請求項4所述的裝置,其中: 所述處理電路系統包括一處理元件,該處理元件使用儲存在所述給定轉譯緩存器內的所述給定位址轉譯資料, 所述處理元件支援事務記憶體存取,藉此以一事務起始點及一事務提交點為界的包括程式指令的一事務被原子地執行,且可在到達所述事務提交點之前被中止及將所述裝置返回至對應於所述事務起始點的一狀態,及 所述處理元件取決於所述比較而選擇性地中止一未決事務。
- 如請求項7所述的裝置,其中所述處理元件在所述給定緩存器上下文資料與指定所述給定位址轉譯上下文的所述訊號不同時繼續進行所述未決事務。
- 如請求項7所述的裝置,其中: 所述轉譯緩存器無效化訊號指定一或更多個目標的接收到的位址值,要針對該一或更多個目標的接收到的位址值無效化位址轉譯資料; 所述給定轉譯緩存器包括範圍追蹤電路系統,該範圍追蹤電路系統用來追蹤由所述處理元件在使用儲存在所述給定轉譯緩存器內的所述給定轉譯資料的期間所存取的一最小位址值及一最大位址值,及 所述處理元件在所述一或更多個目標的接收到的位址值是在以所述最小位址值及所述最大位址值為界的一範圍之外時繼續進行所述未決事務。
- 如請求項9所述的裝置,其中所述處理元件在所述給定緩存器上下文資料匹配指定所述給定位址轉譯上下文的所述訊號且所述一或更多個目標的接收到的位址值是在以所述最小位址值及所述最大位址值為界的一範圍內時中止所述未決事務。
- 如請求項9所述的裝置,其中所述處理元件支***錯執行複數個程式執行緒,且所述給定轉譯緩存器針對所述複數個程式執行緒中的各者儲存給定緩存器上下文資料及描述所述最小位址值及所述最大位址值的範圍追蹤資料。
- 如請求項7所述的裝置,其中所述處理元件包括一通用處理器及一圖形處理單元中的一者。
- 如請求項1所述的裝置,其中所述位址轉譯資料提供以下項目中的一者: 將虛擬位址映射到實體位址的一行為;及 將虛擬位址映射到中介實體位址的一行為。
- 如請求項1所述的裝置,其中所述一或更多個轉譯緩存器包括一或更多個轉譯後備緩存器。
- 一種用於處理資料的裝置,包括: 一或更多個轉譯緩存器構件,用於儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理構件,用於執行程式指令;其中 所述處理構件回應於使用一給定位址轉譯上下文來執行的一程式指令序列內的一轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
- 一種處理資料的方法,包括以下步驟: 將各別的位址轉譯資料儲存在一或更多個轉譯緩存器內,該位址轉譯資料用來將接收到的位址映射到轉譯的位址;及 執行程式指令;其中 回應於使用一給定位址轉譯上下文來執行的一程式指令序列內的一轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
- 一種用於控制一主機資料處理裝置以提供一指令執行環境的電腦程式,該電腦程式包括: 一或更多個轉譯緩存器資料結構,用來儲存用來將接收到的位址映射到轉譯的位址的各別位址轉譯資料;及 處理程式邏輯,用來執行程式指令;其中 所述處理程式邏輯回應於使用一給定位址轉譯上下文來執行的一程式指令序列內的一轉譯緩存器無效化指令,向所述一或更多個轉譯緩存器資料結構廣播轉譯緩存器無效化訊號,及 所述轉譯緩存器無效化訊號指定所述給定的位址轉譯上下文。
- 一種儲存如請求項17所述的電腦程式的儲存媒體。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17386022.2A EP3422192B1 (en) | 2017-06-28 | 2017-06-28 | Address translation data invalidation |
EP17386022.2 | 2017-06-28 | ||
??17386022.2 | 2017-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201907308A true TW201907308A (zh) | 2019-02-16 |
TWI790242B TWI790242B (zh) | 2023-01-21 |
Family
ID=59350848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107121680A TWI790242B (zh) | 2017-06-28 | 2018-06-25 | 位址轉譯資料的無效化 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11615032B2 (zh) |
EP (1) | EP3422192B1 (zh) |
JP (1) | JP2020525905A (zh) |
KR (1) | KR102635247B1 (zh) |
CN (1) | CN110770709B (zh) |
IL (1) | IL270987B (zh) |
TW (1) | TWI790242B (zh) |
WO (1) | WO2019001896A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977183B2 (en) * | 2018-12-11 | 2021-04-13 | International Business Machines Corporation | Processing a sequence of translation entry invalidation requests with regard to draining a processor core |
US10915456B2 (en) * | 2019-05-21 | 2021-02-09 | International Business Machines Corporation | Address translation cache invalidation in a microprocessor |
CN112463657B (zh) * | 2019-09-09 | 2024-06-18 | 阿里巴巴集团控股有限公司 | 一种地址转换缓存清除指令的处理方法和处理装置 |
US11210233B2 (en) * | 2020-01-07 | 2021-12-28 | International Business Machines Corporation | System and method for handling address translation invalidations using an address translation invalidation probe |
US11615033B2 (en) * | 2020-09-09 | 2023-03-28 | Apple Inc. | Reducing translation lookaside buffer searches for splintered pages |
WO2023034662A1 (en) * | 2021-09-02 | 2023-03-09 | Nuvia, Inc. | System and methods for invalidating translation information in caches |
US11748300B2 (en) * | 2021-11-18 | 2023-09-05 | Vmware, Inc. | Reverse deletion of a chain of snapshots |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06139149A (ja) * | 1992-10-29 | 1994-05-20 | Mitsubishi Electric Corp | 多重仮想空間制御装置 |
US7206916B2 (en) * | 2004-03-08 | 2007-04-17 | Sun Microsystems, Inc. | Partial address compares stored in translation lookaside buffer |
US7802055B2 (en) * | 2006-04-19 | 2010-09-21 | Qualcomm Incorporated | Virtually-tagged instruction cache with physically-tagged behavior |
US8005661B2 (en) * | 2007-05-07 | 2011-08-23 | Nec Laboratories America, Inc. | Modeling and verification of concurrent systems using SMT-based BMC |
US10146545B2 (en) * | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9086987B2 (en) * | 2012-09-07 | 2015-07-21 | International Business Machines Corporation | Detection of conflicts between transactions and page shootdowns |
US9086986B2 (en) | 2012-09-07 | 2015-07-21 | International Business Machines Corporation | Detection of conflicts between transactions and page shootdowns |
US10169091B2 (en) * | 2012-10-25 | 2019-01-01 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US10310973B2 (en) * | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US9619387B2 (en) * | 2014-02-21 | 2017-04-11 | Arm Limited | Invalidating stored address translations |
GB2528061B (en) * | 2014-07-08 | 2021-04-21 | Advanced Risc Mach Ltd | Translating between memory transactions of first type and memory transactions of a second type |
US9940287B2 (en) | 2015-03-27 | 2018-04-10 | Intel Corporation | Pooled memory address translation |
US9898418B2 (en) * | 2015-05-21 | 2018-02-20 | Via Alliance Semiconductor Co., Ltd. | Processor including single invalidate page instruction |
US10037280B2 (en) * | 2015-05-29 | 2018-07-31 | Qualcomm Incorporated | Speculative pre-fetch of translations for a memory management unit (MMU) |
US9733689B2 (en) * | 2015-06-27 | 2017-08-15 | Intel Corporation | Hardware apparatuses and methods to perform transactional power management |
US11023233B2 (en) * | 2016-02-09 | 2021-06-01 | Intel Corporation | Methods, apparatus, and instructions for user level thread suspension |
-
2017
- 2017-06-28 EP EP17386022.2A patent/EP3422192B1/en active Active
-
2018
- 2018-06-01 WO PCT/EP2018/064497 patent/WO2019001896A1/en active Application Filing
- 2018-06-01 JP JP2019570895A patent/JP2020525905A/ja active Pending
- 2018-06-01 US US16/625,102 patent/US11615032B2/en active Active
- 2018-06-01 KR KR1020207001455A patent/KR102635247B1/ko active IP Right Grant
- 2018-06-01 CN CN201880041764.1A patent/CN110770709B/zh active Active
- 2018-06-25 TW TW107121680A patent/TWI790242B/zh active
-
2019
- 2019-11-27 IL IL270987A patent/IL270987B/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3422192B1 (en) | 2020-08-12 |
CN110770709A (zh) | 2020-02-07 |
WO2019001896A1 (en) | 2019-01-03 |
CN110770709B (zh) | 2023-10-20 |
JP2020525905A (ja) | 2020-08-27 |
IL270987B (en) | 2022-06-01 |
US20200167292A1 (en) | 2020-05-28 |
KR20200023380A (ko) | 2020-03-04 |
IL270987A (en) | 2020-01-30 |
EP3422192A1 (en) | 2019-01-02 |
US11615032B2 (en) | 2023-03-28 |
KR102635247B1 (ko) | 2024-02-08 |
TWI790242B (zh) | 2023-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI790242B (zh) | 位址轉譯資料的無效化 | |
TWI622880B (zh) | 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法 | |
US10037228B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US7734892B1 (en) | Memory protection and address translation hardware support for virtual machines | |
Seshadri et al. | Page overlays: An enhanced virtual memory framework to enable fine-grained memory management | |
US20080235477A1 (en) | Coherent data mover | |
US9471494B2 (en) | Method and apparatus for cache line write back operation | |
US10223026B2 (en) | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored | |
US20140379955A1 (en) | Memory mirroring and redundancy generation for high availability | |
JP5608594B2 (ja) | プレロード命令制御 | |
TWI457759B (zh) | 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體 | |
US20160092371A1 (en) | Method and Apparatus For Deterministic Translation Lookaside Buffer (TLB) Miss Handling | |
Zhang et al. | Enigma: architectural and operating system support for reducing the impact of address translation | |
US20150095576A1 (en) | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments | |
WO2012163017A1 (zh) | 分布式虚拟机访问异常的处理方法以及虚拟机监控器 | |
TW202018517A (zh) | 用於控制記憶體存取的裝置及方法 | |
US20120079201A1 (en) | System and method for explicitly managing cache coherence | |
US10423537B2 (en) | Address space resizing table for simulation of processing of target program code on a target data processing apparatus | |
JP2024523150A (ja) | メモリマッピング無効化要求の同時処理 | |
TWI801622B (zh) | 用於處理保護標籤損失的裝置、方法、電腦程式、與儲存媒體 | |
CN114253603A (zh) | 用于处理器中的用户空间对象一致性的***、装置和方法 | |
KR910004263B1 (ko) | 컴퓨터 시스템 | |
AU2014328735A1 (en) | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments |