TWI607377B - 於脈絡之間共享轉譯後備緩衝區對映之方法、處理器和系統 - Google Patents
於脈絡之間共享轉譯後備緩衝區對映之方法、處理器和系統 Download PDFInfo
- Publication number
- TWI607377B TWI607377B TW101149319A TW101149319A TWI607377B TW I607377 B TWI607377 B TW I607377B TW 101149319 A TW101149319 A TW 101149319A TW 101149319 A TW101149319 A TW 101149319A TW I607377 B TWI607377 B TW I607377B
- Authority
- TW
- Taiwan
- Prior art keywords
- entry
- context
- thread
- mapping
- processor
- Prior art date
Links
- 238000013507 mapping Methods 0.000 title claims description 229
- 238000000034 method Methods 0.000 title claims description 30
- 230000015654 memory Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 25
- 238000013519 translation Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 210000003462 vein Anatomy 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009991 scouring Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/1024—Latency reduction
-
- 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/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本揭示係有關微處理器之技術領域,例如用於在多緒處理之期間內在脈絡之間共享一或多個資料結構的微處理器。
在允許多處理的系統(包括允許多緒處理的系統)中,複數個緒或軟體處理程序可共享一個共用的位址空間。因此,在一些事例中,完全相同的虛擬位址係可轉譯成完全相同的實體位址。例如,為了避免在取用高速儲存體(例如快取記憶體)當中的錯誤,資料係可依據實體位址而非由這些軟體處理程序所使用的虛擬位址來儲存。轉譯後備緩衝區(translation lookaside buffer,TLB)是可用來改善虛擬位址轉譯速度的一種資料結構。例如,一個處理器可使用一個TLB來對映虛擬和實體位址空間。典型上係將此TLB實施為內容可定址記憶體,當中,虛擬位址係作用為搜尋關鍵,而對應的實體位址是搜尋結果。若所請求的位址出現在TLB中,則此搜尋可快速地產生一項匹配(一個TLB命中),並且所取回的實體位址可被用來取用記
憶體。另一方面,若所請求的位址並不在TLB中(一個TLB未中),則可進行被稱為頁面漫步(page walk)的一種處理程序以讀取一個頁表的內容並判定出實體位址。在判定出實體位址後,可將虛擬位址對實體位址對映輸入到TLB中。
當一個快取被複數個邏輯處理器或複數個執行緒取用時,TLB之大小可被增加,以容許針對各個邏輯處理器或緒儲存虛擬位址轉譯。不幸的是,進行虛擬位址轉譯所需的時間會隨著TLB的大小而增加,因而降低取用速度和整體系統效能。
依據本發明之一實施例,係特地提出一種處理器,其包含:一個轉譯後備緩衝區(TLB),用以包括含有共享對映資訊的一個分錄,該共享對映資訊包括與一第一緒和一第二緒之脈絡相關聯的一個位址和一或多個屬性;以及一個控制邏輯,用以將對應於一個對映請求的一個位址和一個脈絡與被包括在該TLB之該分錄中的該位址和相關聯之該等脈絡作比較,並用以在儲存在該TLB之該分錄中的該位址和相關聯之該等脈絡中之至少一個脈絡與對應於該對映請求的該等位址和脈絡匹配時自該TLB之該分錄提取該共享對映資訊。
依據本發明之另一實施例,係特地提出一種處理器,其包含:一個資料結構,用以包括含有第一對映資訊的一個分錄,該第一對映資訊具有一個虛擬位址和與一第
一緒相關聯的一第一脈絡;以及一個控制邏輯,用以進行下列動作:接收針對第二對映資訊的一個請求,該第二對映資訊具有該虛擬位址和與一第二緒相關聯的一第二脈絡;判定與該第二脈絡相關聯的該第二對映資訊是否與該分錄中的該第一對映資訊等效;及若該第二對映資訊與該第一對映資訊等效,則使該第二緒與在該分錄中所含有的該第一對映資訊相關聯。
依據本發明之另一實施例,係特地提出一種方法,其包含下列步驟:在一個資料結構的一個分錄中維持與一第一脈絡相關聯的第一對映資訊,該第一對映資訊包括一第一虛擬位址;接收針對與一第二脈絡相關聯之第二對映資訊的一個請求,該第二對映資訊包括該第一虛擬位址;將該第一對應資訊與該第二對映資訊作比較;以及若該第二對映資訊與該第一對映資訊等效,則使該第二脈絡與在該資料結構之該分錄中所含有的該第一對映資訊相關聯。
依據本發明之另一實施例,係特地提出一種系統,其包含:一個處理器;一個記憶體,其維持一個轉譯後備緩衝區(TLB),該TLB具有一個共享分錄,該共享分錄包括與一第一緒和一第二緒相關聯的對映資訊,該第一緒具有一第一脈絡,該第二緒具有一第二脈絡,該對映資訊包括一個虛擬位址;以及控制邏輯,用以:接收包括該虛擬位址的另一個對映請求,該對映請求與該第一緒或該第二緒中之一者相關聯;及反應於接收到該對映請求而自
該TLB之該共享分錄提取該對映資訊。
100、202、702(702-1...702-J)‧‧‧處理器
102‧‧‧資料結構
104、208、210、304(304-1
~304-3)‧‧‧分錄
106‧‧‧對映資訊
108、708‧‧‧記憶體
110‧‧‧控制邏輯
112(112-0~112-N)‧‧‧緒
114(114-0~114-N)‧‧‧硬體脈絡
116‧‧‧多緒處理邏輯
118‧‧‧頁表
200‧‧‧示範架構
204、206、302、706‧‧‧轉譯後備緩衝區(TLB)
212‧‧‧L2快取
214‧‧‧L1指令快取
216‧‧‧L1資料快取
218‧‧‧前端
220‧‧‧暫存器
222‧‧‧執行功能
300‧‧‧框架
306、314‧‧‧虛擬位址
308‧‧‧實體位址
310‧‧‧屬性
312、316‧‧‧識別符(ID)
318‧‧‧找到虛擬位址,但係針對不同硬體脈絡的
320‧‧‧針對新硬體脈絡提取新對映
322‧‧‧找到針對不同硬體脈絡的對映
324‧‧‧針對等效性而比較對映
326‧‧‧若對映等效,則將新脈絡ID加入到現有對映
328‧‧‧若對映不等效,則配置新的分錄
400、500、600‧‧‧處理程序
402‧‧‧維持一個資料結構,以包括含有第一對映資訊的一個分錄,此第一對映資訊具有一個虛擬位址和與一第一緒相關聯的一第一脈絡
404‧‧‧接收針對第二對映資訊的一個請求,具有虛擬位址和與一第二緒相關聯的一第二脈絡
406‧‧‧判定與第二脈絡相關聯的第二對映資訊是否與此分錄中的第一對映資訊等效
408‧‧‧若第二對映資訊與第一對映資訊等效,則此控制邏輯可使第二緒與在此資料結構之此分錄中所含有的第一對映資訊相關聯
502‧‧‧維持具有一個共享分錄的一個TLB,此共享分錄包括與一第一緒和一第二緒相關聯的對映資訊,此第一緒具有一第一脈絡,此第二緒具有一第二脈絡,此對映資訊包括一個虛擬位址
504‧‧‧接收包括虛擬位址的一個對映請求,此對映請求與第一緒或第二緒中之一者相關聯
506‧‧‧反應於接收到此對映請求而自此TLB之共享分錄中提取對映資訊
602‧‧‧TLB接收與一個硬體脈絡相關聯的一個虛擬位址(VA)
604‧‧‧方塊;將輸入VA和TID與在此TLB中之現有分錄作比較
606‧‧‧輸入VA並不與此TLB中之任何分錄的VA匹配
608‧‧‧方塊;傳送請求以針對輸入VA而提取對映資訊
610‧‧‧接收對應的實體位址(PA)和屬性(ATTR)
612‧‧‧在TLB中以輸入VA和VID和反應PA和ATTR配置一個新的分錄
614‧‧‧方塊;以反應PA和反應ATTR來作出反應
616‧‧‧方塊;輸入VA和輸入TID都與此TLB中的一個現有分錄匹配
618‧‧‧方塊;以來自現有TLB分錄的PA和ATTR來作出反應
620‧‧‧輸入VA與一個TLB分錄匹配,但輸入TID並不與那個分錄中的任何TID匹配
622‧‧‧方塊;傳送一個請求以針對輸入VA提取對映資訊
624‧‧‧接收對應的實體位址和屬性
626‧‧‧將命中分錄PA與反應PA作比較,並將命中分錄ATTR與反應ATTR作比較
628‧‧‧二者都匹配
630‧‧‧方塊;將TID加入到命中分錄之硬體脈絡的列表中
632‧‧‧至少一者並不匹配
634‧‧‧方塊;藉由輸入VA和TID和反應TA和ATTR而在此TLB中配置一個新的分錄
700‧‧‧系統
704(704-1~704-M)‧‧‧處理器核心
710‧‧‧整合式記憶體控制器(IMC)
712‧‧‧本地互連
714‧‧‧共享快取
716‧‧‧儲存體
718‧‧‧圖形控制器(GFX)
720‧‧‧系統代理器
722‧‧‧集線器
724‧‧‧顯示引擎
726‧‧‧週邊部件互連快捷(PCIe)互連
728‧‧‧直接媒體介面(DMI)
730‧‧‧結構或程式
732‧‧‧作業系統(OS)
734‧‧‧通訊裝置
736‧‧‧網路
738‧‧‧輸入/輸出(I/O)裝置
740‧‧‧互連
係參照隨附之圖來提出詳細說明。在這些圖中,參照號碼的最左邊的(一或數個)位元可識別出此參照號碼首次出現的圖。在不同的圖中對相同參照號碼的使用係指出類似或相同的項目或特徵。
圖1依據一些實作例示出一個處理器的一個示範抽象表示型態,用以在複數個脈絡之間共享一個TLB分錄。
圖2依據一些實作例示出一個處理器的一個示範架構,用以在複數個脈絡之間共享一個TLB分錄。
圖3依據一些實作例示出一個示範TLB和一個框架,用以判定是否要在複數個脈絡之間共享一個TLB分錄。
圖4是一個方塊圖,其依據一些實作例示出一個示範處理程序,用以判定是否要在複數個脈絡之間共享一個TLB分錄。
圖5是一個方塊圖,其依據一些實作例示出一個示範處理程序,用以在複數個脈絡之間共享一個TLB分錄。
圖6是一個方塊圖,其依據一些實作依據一些實作例示出一個示範處理程序,用以判定是否要在複數個脈絡之間共享一個TLB分錄。
圖7依據一些實作例示出一個系統的一個示範架構,其包括要在多個脈絡之間共享的一或多個TLB。
本揭示包括用於在二或更多個脈絡之間共享資料結構分錄的技術和安排。依據本文中之一些實作,一個處理器可使得數個脈絡能夠同期運行。在這樣的一種安排中,在二或更多個脈絡之間對於內部結構(例如資料結構)的共享可增進效能,並節省資源。例如,使得二或更多個硬體脈絡能夠共享在一個資料結構中的一個分錄可有助於最大化通量而不使此種結構之大小增加。這樣的共享行為可有效地縮減結構大小、縮減電力消耗,以此類推。因此,本文中的一些實作可係藉由檢查實際等效性,而非藉由預測相容性或其他類似的傳統技術,來致能在二或更多個硬體脈絡間之對於轉譯後備緩衝區(TLB)分錄的共享。
在一些範例中,一個資料結構的一個分錄可係維持有與一第一脈絡相關聯的對映資訊。此對映資訊可包括一第一虛擬位址、一第一實體位址、和與第一脈絡相關聯的零或更多個第一屬性。例如,此資料結構分錄可維持有關與實體位址、虛擬位址和/或相關聯脈絡相關聯的各種屬性的資訊,例如讀取、寫入、或其他取用許可屬性、處理優先權屬性、頁面屬性(例如,頁面之大小、或在一個頁面中所含有的記憶體之快取能力的類型)、記憶體位置屬性、及其他諸如此類者。維持TLB的一個控制邏輯可接收針對與一第二脈絡相關聯的第二對映資訊的一個請求。例如,此第二對映資訊可包括第一虛擬位址。此控制邏輯可至少部份基於第一實體位址和這零或更多個第一屬性及第二實體位址和與第二脈絡相關聯的零或更多個第二屬性的
比較,而判定出第二對映資訊是否等效於第一對映資訊。例如,此控制邏輯可傳送一個請求以,例如從頁面漫步當中,獲得針對第二脈絡的第二對映資訊。在反應上,此控制邏輯可接收包括有第二實體位址和與第二脈絡相關聯的零或更多個第二屬性的第二對映資訊,且其對映至第一虛擬位址。
此控制邏輯可將第一對應資訊與第二對映資訊作比較,以判定出這些對映是否等效。可係在共享對映之結果與假設各個脈絡具有不同分錄中之不同對映資訊時會獲得的結果難以區辨時被指出具有等效性。例如,對於第一脈絡和第二脈絡二者,以及用來產生相同對映結果的任何其他資訊,例如與對映資訊相關聯的一或多個屬性,來說,虛擬位址和實體位址都應該要是等效的。
當比較之結果顯示出第一對映資訊等效於第二對映資訊時,第二脈絡可係與在此資料結構之現有分錄中所含有的第一對映資訊相關聯。因此,不若在資料結構中創造一個新的分錄,除了已與第一脈絡相關聯以外,現有分錄僅與第二脈絡相關聯。由是,當針對包括第一虛擬位址的對映資訊的一個後續請求在與第一脈絡或者是第二脈絡相關聯的情況下被接收時,來自此資料結構分錄的第一對映資訊可在定位出此資料結構中之此分錄的位置和驗證出分別與第一或第二脈絡之關聯性時立即被回傳。
因此,本文中之實作可供用於對與兩個不同硬體脈絡或緒相關聯的對映資訊的兩個實例的比較。此外,係
可在現有對映資訊中加入脈絡資訊,以使得此現有對映資訊能夠被二或更多個軟體脈絡共享,利用任何適當硬體脈絡識別符之形式來指出此對映是否可由那個軟體脈絡使用。另外,本文中之實作亦致能對所共享之對映資訊的更新,以使得共享此對映資訊的脈絡之數量可被適當地增量或減量。因此,一些範例係利用虛擬位址範圍和硬體脈絡識別符而致能對現有對映的表格查詢,來有可能地定位出TLB命中。
一些實作係在配合一個處理器之多個硬體脈絡所使用的TLB之環境中加以描述。然而,本文中的這些實作並不受限於所提供的這些特定範例,而可延伸至其他類型的資料結構、脈絡、處理器架構、及其他諸如此類者,如熟於本技藝者在得見本文中之揭示後所會明顯看出的。
圖1例示一個處理器100的示範抽象表示型態,包括一個資料結構102,其具有含有對映資訊106的一或多個分錄104。在一些實作中,處理器10可係一個單元處理器,但在其他實施例中,處理器100可係一個處理器之多個核心之中的一個處理核心,或是形成於單一個晶粒、多個晶粒、或當中之任何組合上的多個處理器之複數個核心之中的一個處理核心。例如,處理器100可係一個中央處理單元(central processing unit,CPU)、一個圖形處理單元(graphics processing unit,GPU)、或其他處理邏輯,或是一個CPU、一個圖形處理單元(graphics processing unit,
GPU)、或其他處理邏輯的一個處理核心,或是前述幾者當中之組合。
對映資訊106可提供在兩個位址空間之間的對映。例如,資料結構102可係一個轉譯後備緩衝區(TLB),用以提供在由一或多個處理器所使用的一個虛擬位址空間與對應於一個記憶體108的一個實體位址空間之間的對映。例如,此記憶體108可係或可包括由處理器100在執行處理程序之期間內所使用的一或多個快取記憶體或其他記憶體、儲存裝置、電腦可讀媒體、或其他諸如此類者。
資料結構102可體現多種不同結構組態(例如以大小和結合性方面來說)、以及對於資料結構102之內容的多種不同組態中之任何者。例如,資料結構102可致能對於給定虛擬位址範圍之出現的查詢或定位。此外,若有出現關於一個特定虛擬位址範圍的資訊,則資料結構102可含有可被用來將來自此範圍的虛擬位址對映到對應實體位址的對映資訊106。資料結構102可進一步含有關於給定位址範圍之性質的資訊,例如此位址範圍之大小、取用許可、和各種其他屬性,如於上文中所提過的。資料結構102亦使得能夠針對還沒有出現的虛擬位址範圍的而加入此等資訊,並能夠依據各種不同退役或沖刷技術而移除對映資訊。此外,當針對一個特定虛擬位址或虛擬位址範圍的對映沒有被找到時,對應於此虛擬位址或虛擬位址範圍的新的對映資訊可被提取,例如藉由進行頁面漫步或其他諸如此類者。
處理器100可進一步包括一或數個控制邏輯
110,用以管理資料結構102,以,例如,加入或移除分錄104和/或更新特定分錄104中之對映資訊106。在一些情況中,控制邏輯110可係藉由一或多個控制器來實施,例如一個微控制器或快取控制器、一或多個專用電路或硬體、微碼、一個作業系統、或當中之任何組合。因此,本文中之實作並不受限於例示於圖式中的用於實施控制邏輯110的特定範例,而可包括用於提供於本文中所述之功能以管理和取用資料結構102的任何適當安排或技術。
處理器100可用於進行對於多個執行緒112的處理,例如緒112-0、...、112-N(其中N是1的整數)。在一些範例中,這些執行緒112中之多者係可被同期執行,例如,以實行同時多緒處理(simultaneous multithreading,SMT)。SMT是一種處理器組態,用以支援具有不同硬體脈絡114的多個緒,使其能夠在單一個處理器或處理器核心上並行地調度指令。在一些情況中,SMT可在單一個實體處理器或處理器核心內創造出多個邏輯處理器。因此,一第一緒112-1和一第二緒112-N可係在由一個處理器或處理合器核心提供的分別的第一和第二邏輯處理器上執行。例如,一個多緒處理邏輯116可控制緒112的創造和執行,以及對應硬體脈絡114的配置。多緒處理邏輯116可係被包括在一個多定緒器中,例如針對各個緒各有一個定緒器(未示於圖1中),但也可替代性地使用其他技術來在控制邏輯110上執行多個緒112。
在圖1之所例示範例中,緒112-0、...、112-N各
有對應的分別的硬體脈絡114-0、...、114-N。例如,在一些情況中,這個分別的硬體脈絡114可包括被配置給各個特定緒的分別的數個特定於執行緒之暫存器檔案(圖1中未示)。此外,硬體脈絡114也可包括被配置給各別緒112的其他硬體元件,而這些暫存器檔案只是為作論述所提的一個範例。
依據本文中之一些實作,在資料結構102中的一個分錄104可係由具有不同硬體脈絡114的多個緒112共享。例如,藉由針對二或更多個硬體脈絡114而檢查對映資訊106間之等效性,控制邏輯110可判定出在此資料結構102中的一個特定分錄104是否可由二或更多個緒112共享。在一些情況中,控制邏輯110可將在與一第一緒112相關聯的一個現有分錄104中之對映資訊106及和與一第二緒112相關聯的一個新對映有關的資訊作比較。
此外,在一些範例中,實體位址空間可係對應於具有頁表實體位址的一或多個頁表118。例如,此控制邏輯110可進行頁面漫步,或可係傳送一個請求到另一個邏輯單元以進行頁面漫步,即,在這些頁表118中之一或多者中進行查詢以判定一個實體位址和對應於對映資訊106之一個特定實例的任何屬性。處理器100可獲得或接收反應對映資訊,並將此實體位址和任何屬性與現有分錄104中的那些作比較,以判定出此對映資訊是否等效。
當發現具有等效性時,控制邏輯110可將資訊加入到現有分錄104中,以使得在分錄104中所含有的對映資
訊106可由二或更多個硬體脈絡114或緒112共享。例如,控制邏輯110可針對能夠共享分錄104中之對映資訊106的各個硬體脈絡/緒而加入一個硬體脈絡識別符或緒識別符,以指出對映資訊106係可由那個硬體脈絡/緒使用。控制邏輯110可進一步在適當的時候更新共享資訊,以使得共享針對一個特定分錄之對映資訊的脈絡之數量依據在此對映資訊和/或在硬體脈絡114中之一或多者中的改變而被增量或減量。舉一個例子來說,一個作業系統或其他邏輯可將對應於一個給定硬體脈絡的一個特定軟體脈絡或緒置換為要在此處理器上執行的一個不同軟體脈絡。因此,在一些實作中,來自被逐出之此軟體脈絡的對映資訊可被廢止,而不影響同期運行於此處理器上的其他脈絡。在那個事例中,硬體和/或軟體,例如控制邏輯110,可將一個特定硬體脈絡從資料結構分錄104中之一或多者中移除(即,減量),以使得新的軟體脈絡能夠以新的對映植入資料結構102,而不受被逐出之軟體脈絡干擾。因此,本文中之實作提供可使得能夠利用針對與一個特定分錄104相關聯之任何硬體脈絡的虛擬位址範圍和硬體脈絡而查詢現有對映的一種資料結構102。
圖2例示一個處理器202的示範架構200,用以依據本文中之一些實作而致能對TLB分錄的共享。在由處理器202所表示的此處理器或處理器核心中可包括有一或多個TLB。在所例示的這個範例中,處理器202包括一個指令TLB 204和一個資料TLB 206。指令TLB 204可包括一或多
個分錄208,且資料TLB 206可包括一或多個分錄210。因此,在處理器202中可係包括有不同類型和或階層的多個TLB。這些TLB 204、206可將最近期被使用的頁面目錄和頁表作為對映資訊而儲存。如於前文中所提過的,在藉由減少讀取儲存在系統記憶體中之頁表所需的記憶體取用之數量而致能分頁時,TLB 204、206可加速記憶體取用速度。如於前文中所述的,係可將控制邏輯110實施在處理器202中,以致能對分別在TLB 204、206中所含有的分錄208和/或210之共享。
為求例示簡明,在圖2的這個範例中只有例示出單一個指令TLB 204和單一個資料TLB 206。然而,在其他範例(未示於圖2)中,在處理器202中的這些TLB係可被劃分成不同的群組,並且可包括在一個群組中的不同階層等級,例如用於較小頁面的一第一指令TLB和用於較大頁面的一第二指令TLB;用於較小頁面的一第一資料TLB和用於較大頁面的一第二資料TLB;以此類推,還有其他類型的TLB。在一些實作中,TLB 204、206通常只在有致能分頁行為的受保護模式中作動。因此,當分頁行為被廢止或處理器202係處於真實位址模式中時,TLB 204、206可保持其內容直到被明確或不明確沖刷為止。
處理器202可進一步包括一或多個快取記憶體。在所例示的這個範例中,處理器202包括一個L2快取212、一個L1指令快取214、和一個L1資料快取216。L1指令快取214可提供指令給一個指令解碼器和前端218。此外,處理
器202可包括多個每緒暫存器220,以使得具體的暫存器220被配置為對應於要在處理器202上執行的各別特定緒112的特定硬體脈絡114。因此,可藉由將一或多個暫存器220包括在硬體脈絡114-0內的方式來對緒112-0配置一或多個暫存器220,並且可藉由將一或多個暫存器220包括在硬體脈絡114-N內的方式來對緒112-N配置一或多個暫存器220。處理器202可額外包括一或多個執行單元或其他執行功能222,這一或多個執行單元或其他執行功能222可被操作來例如以於上文中所論述的同期或同時多緒處理方式執行這些緒112。此外,處理器202亦可包括為求例示簡明而未於圖2中示出的數個其他結構和功能性部件。因此,本文中之實作並不受限於所例示出的這個特定組態。
舉一個例子,假定指令解碼器和前端218請求對應於一個特定虛擬位址的對映資訊,以處理一個特定緒112,例如緒112-0(利用對應的硬體脈絡114-0)。此外,假定控制邏輯110檢查指令TLB 204並定位出與所請求之虛擬位址匹配但係與不同緒(例如,緒112-N和硬體脈絡114-N)相關聯的一個分錄208。由於分錄208係與一個不同的硬體脈絡相關聯,所以控制邏輯110並不使用分錄208中的對映資訊,而是,可提取或可傳送一個請求以藉由傳統方式(例如頁面漫步)來進行對於對映資訊的提取。所接收到的對映資訊可包括一個實體位址和一或多個屬性,例如讀取或寫入許可、或於上文中所述的其他屬性。控制邏輯110可回傳包括有實體位址和屬性資訊的對映資訊。此外,控制邏
輯110可將所接收到的實體位址和屬性資訊與TLB 204中的現有分錄208作比較以判定等效性。若此實體位址與在現有分錄208中所含有的實體位址匹配,並且屬性資訊與在現有分錄208中所含有的屬性資訊匹配,則可亦使現有分錄208與緒112-N和硬體脈絡114-N相關聯。因此,當在緒112-N的脈絡和硬體脈絡114-N中接收到一個後續請求時,控制邏輯110可立即以來自現有分錄208的對映資訊作反應。另一方面,若此實體位址與在現有分錄208中所含有的實體位址不匹配,或若此屬性資訊與在現有分錄208中所含有的屬性資訊不匹配,則控制邏輯110可在與緒112-N和硬體脈絡114-N相關聯的TLB 204中創造出另外一個分錄208。
圖3依據一些實作例示出一個示範框架300,其包括一個示範TLB 302,用以致能對一個TLB分錄的共享。TLB 302包括多個分錄304-1、304-2、304-3、...,用以容納對映資訊。例如,各個分錄304可容納包括一個虛擬位址306、一個實體位址308、和零或更多個屬性310的對映資訊。此外,一個分錄304可係具有與此分錄304相關聯的一或多個硬體脈絡識別符312。例如,一個分錄304可一開始係關聯於一第一硬體脈絡114或緒112而被創造。接下來,可使對應於所關聯之硬體脈絡114或緒112中之至少一者的一個ID 312被包括在各個分錄304中,或以其他方式與分錄304相關聯。因此,ID 312可係硬體脈絡ID、緒ID、或任何其它適當識別符或其他資訊,用以使一個緒112或硬體脈絡
114中之至少一者與一個TLB分錄304相關聯。
舉一個例示性範例來說,假定一開始,在TLB 302中的唯一一個分錄是分錄304-2,並且與分錄304-2相關聯的唯一一個硬體脈絡ID 312是「HC0」。此外,假定控制邏輯110接收一個對映請求,此對映請求包括具有一個值「Z」的一個虛擬位址314、和具有一個值「HC1」的一個硬體脈絡ID 316。此外,在一些範例中,不若接收一個實際ID 316,控制邏輯110可係接收使得控制邏輯110能夠使對映請求與一個特定硬體脈絡或緒相關聯的任何資訊。控制邏輯110可將所接收到的虛擬位址314與TLB 302中之現有分錄304-2作比較。若沒有找到任何匹配,則控制邏輯110以傳統方式繼續進行,並產生一個新的TLB分錄304-1,其可包括虛擬位址「Z」、一個實體位址「W」和屬性「A,C,E」。此外,控制邏輯110可使硬體脈絡ID「HC1」與分錄304-1相關聯。
再舉另一個例子,假定控制邏輯110接收包括具有一個值「X」的一個虛擬位址314和具有一個值「HC2」的一個硬體脈絡ID 316的一個對映請求。處理器100可將所接收到的虛擬位址314與現有分錄304-1和304-2作比較,並判定出虛擬位址「X」與現有分錄304-2匹配。此外,控制邏輯110可判定出目前與分錄304-2相關聯的唯一一個硬體脈絡ID是「HC0」。接下來,如於318所指出的,當找到有匹配但係針對不同硬體脈絡的一個虛擬位址時,控制邏輯110可啟始對針對這個新的硬體脈絡(即,硬體脈絡HC2)的新對映資訊的提取。如於322所指出的,當找到針對一個
不同硬體脈絡(即,HC0)的對映時,則如於324所指出的,控制邏輯110將現有分錄304-2的對映資訊與於320所獲得的針對新硬體脈絡的新對映資訊作比較。例如,控制邏輯110可比較實體位址308和屬性310,以判定是否有匹配。在這個範例中,假定於320的提取操作回傳具有一個值「Y」的一個實體位址和具有值「A,B,C」的屬性。控制邏輯110可判定出針對新硬體脈絡的此實體位址和這些屬性係與現有分錄304-2的那些匹配。因此,如於326所指出的,若這些對映是等效的,則此新硬體脈絡ID被加入到現有分錄304-2,並與現有對映資訊相關聯。因此,如於312所指出的,硬體脈絡ID HC2被加入到現有分錄304-2。接下來,下次控制邏輯110接收到針對HC0抑或HC2之脈絡(或其各別的對應緒)中的虛擬位址「X」的請求時,控制邏輯110可立即回傳在現有分錄304-2中所保持的對映資訊。
再舉另一個例子,假定控制邏輯110接收包括具有一個值「X」的一個虛擬位址314和具有一個值「HC3」的一個硬體脈絡ID 316的一個對映請求。控制邏輯110可將所接收到的虛擬位址314與現有分錄304-1和304-2作比較,並判定出虛擬位址「X」係與現有分錄304-2匹配。此外,控制邏輯110可判定出目前與分錄304-2相關聯的硬體脈絡ID是「HC0」和「HC2」。接下來,如於318所指出的,當找到針對不同硬體脈絡的一個虛擬位址時,控制邏輯110可啟始對針對這個新硬體脈絡(即,硬體脈絡HC3)的新對映資訊的提取。如於322所指出的,當所找到的這個對映係針
對一個不同硬體脈絡(即,HC0)時,則如於324所指出的,控制邏輯110將現有分錄304-2的對映資訊與於320所獲得的針對新硬體脈絡的新對映資訊作比較。例如,控制邏輯110可比較實體位址308和屬性310,以判定是否有匹配。在這個範例中,假定於320的提取操作回傳具有一個值「Y」的一個實體位址以及具有值「A,D」的屬性。控制邏輯110可判定出針對這個新硬體脈絡的實體位址係與現有分錄304-2的實體位址匹配,但屬性310並不相同。因此,如於328所指出的,若對映資訊並不等效,則會在TLB 302中配置一個新的分錄304-3,以容納與硬體脈絡HC3相關聯的新對映資訊。
此外,可注意到,屬性310並不一定要總是完全相同才能獲得等效的判定。例如,一些屬性310可能與等效之判定並不相關,且一些特定屬性310可能與由控制邏輯110反應於一個請求所回傳的對映資訊毫不相干。因此,在一些實作中,兩個對映可能是「等效的」,而此時對映之結果與在假設那些脈絡具有不同分錄304中之不同對映資訊的情況下所會獲得的結果是無法區辨的。這至少包括匹配的虛擬位址和實體位址對映,以及產生相同對映結果所需的任何其他資訊,例如與讀取許可、寫入許可、使用者/督導者取用許可、或其他取用許可、頁面大小、記憶體類型、虛擬機器資訊、及其他諸如此類者有關的匹配屬性。
圖4~6例示出用於實施於本文中所述之技術的
數個示範處理程序。係將這些處理程序例示為邏輯流程圖中的一組操作,其代表了多個操作,這些操作中的一些或全部可係實施在硬體、軟體或其當中之組合中。在軟體之脈絡中,這些方塊係代表儲存在當由一或多個處理器執行時可進行所載述之操作的一或多個電腦可讀媒體上的電腦可執行指令。一般而言,電腦可執行指令包括常式、程式、物件、部件、資料結構、和進行特定功能或實施特定抽象資料類型的其他諸如此類者。在一些實作中,這些操作中的一些或全部可係透過微碼、經硬式編碼指令(hardcoded instruction)、韌體、或其他在處理器外不可見但可由處理器、微控制器或其他諸如此類者執行的低階指令來執行。並不欲使描述這些操作的順序被解釋成是一種限制。任何數量的所描述方塊都可被以任何順序和/或平行地組合以實施此處理程序,並非所有的方塊都需要被執行。為便論述,係關聯於在本文中之範例中所描述的處理器、框架、架構、設備和環境來描述這些處理程序,但這些處理程序亦可係以各種其他處理器、框架、架構、設備或環境來實施。
圖4是一個流程圖,其例示出一個示範處理程序400,用以依據一些實作而判定是否要共享一個TLB分錄。此處理程序400可係由(一或數個)控制邏輯110執行,該(等)控制邏輯110可包括有適當的程式碼、指令、控制器、專用電路、或當中之組合,如於上文中所述的。
於402,係維持一個資料結構,以包括含有第一
對映資訊的一個分錄,此第一對映資訊具有一個虛擬位址和與一第一緒相關聯的一第一脈絡。例如,一個TLB可包括含有與一或多個緒和相關硬體脈絡相關聯的對映資訊的一或多個分錄。
於404,控制邏輯110可接收針對第二對映資訊的一個請求。此請求可包括對應於此TLB中之此分錄中之第一對映資訊的虛擬位址。針對第二對映資訊的此請求可包括與一第二緒相關聯的一第二脈絡。
於406,控制邏輯110可判定出與第二脈絡相關聯的第二對映資訊是否等效於在此資料結構中之此分錄中所含有的第一對映資訊。例如,控制邏輯110可提取或可傳送一個請求來提取第二對映資訊(例如從頁面漫步當中提取),並且可將第二對映資訊與第一對映資訊作比較。此比較行為可包括比較實體位址及與第二對映資訊和第一對映資訊相關聯的任何屬性。
於408,若第二對映資訊等效於第一對映資訊,則此控制邏輯可使第二緒與在此資料結構之此分錄中所含有的第一對映資訊相關聯。例如,此控制邏輯可將一個識別符或其他資訊加入到此資料結構的此分錄中,以指出此分錄除了與第一緒相關聯之外亦與第二緒相關聯。此後,第一序和第二緒便可共享此資料結構中之此分錄。
圖5是一個流程圖,其例示出一個示範處理程序500,用以依據一些實作而共享一個TLB分錄。此處理程序500可係由(一或數個)控制邏輯110執行,該(等)控制
邏輯110可包括有適當的程式碼、指令、控制器、專用電路、或當中之組合,如於上文中所述的。
於502,一個TLB被維持為具有一個共享分錄,此共享分錄包括與一第一緒和一第二緒相關聯的對映資訊,此第一緒具有一第一脈絡,此第二緒具有一第二脈絡。此對映資訊可包括一個虛擬位址。
於504,此控制邏輯接收一個對映請求,此對映請求包括被包括在共享分錄中的虛擬位址。此對映請求可係與第一緒或第二緒中之一者相關聯。
於506,此控制邏輯反應於接收到對映請求而自此TLB之共享分錄中提取對映資訊。例如,此控制邏輯可判定出此共享分錄係與第一緒或第二緒中之一者相關聯,並且可反應於接收到此對映請求而立即提取並回傳對映資訊。
圖6是一個流程圖,其例示出一個示範處理程序600,用以依據一些實作而判定是否要共享一個TLB分錄。此處理程序600可係由(一或數個)控制邏輯110執行,該(等)控制邏輯110可包括有適當的程式碼、指令、控制器、專用電路、或當中之組合,如於上文中所述的。
於602,一個TLB接收與一個硬體脈絡或緒相關聯的一個輸入虛擬位址(virtual address,VA)。例如,此控制邏輯110可接收與一個特定緒或硬體脈絡相關聯的一個對映請求。此對映請求可包括一個虛擬位址或一個範圍的虛擬位址。
於604,控制邏輯110將此輸入虛擬位址和一個緒ID(thread ID,TID)與在此TLB中之現有分錄作比較。例如,此控制邏輯可判定出在此TLB中是否有任何現有分錄具有相同的虛擬位址和緒ID。
於606,若輸入虛擬位址並不與此TLB中之任何分錄的虛擬位址匹配,則此處理程序來到方塊608。
於608,此控制邏輯傳送一個請求以針對輸入虛擬位址而提取對映資訊。例如,此控制邏輯110可傳送一個請求至另一個邏輯單元來進行對一或多個頁表的查詢以判定對映資訊。或者是,此控制邏輯110可自己進行對頁表的查詢。
於610,控制邏輯110接收對映資訊,此對映資訊包括對應實體位址和與此對映資訊相關聯的任何屬性。例如,零或更多個屬性可係與此對映資訊相關聯,例如讀取和寫入優先權、其他取用優先權,以此類推,如於上文中所述的。
於612,控制邏輯110在TLB中以此輸入虛擬位址、反應實體位址和任何新關聯屬性配置一個新的分錄。此外,此控制邏輯110可使TLB中之新配置的這個分錄與和對映請求相關聯的緒或硬體脈絡相關聯的緒ID相關聯。
於614,控制邏輯110以反應實體位址和任何相關聯屬性來對此對映請求作出反應。
於616,另一方面,若輸入虛擬位址和輸入緒ID都與此TLB中的一個現有分錄匹配,則此處理程序來到方
塊618。
於618,控制邏輯110以來自在方塊604和616中被判定為是一項匹配的現有TLB分錄的實體位址和任何屬性來對此對映請求作出反應。
於620,抑或是,若輸入虛擬位址與一個TLB分錄匹配,但輸入緒ID並不與那個分錄中的任何緒ID匹配,則此處理程序來到方塊622。
於622,控制邏輯110傳送一個請求以針對此輸入虛擬位址提取對映資訊。如於上文中針對方塊608所論述的,此控制邏輯110可傳送對於頁面漫步的一個請求,或可自己處理這個頁面漫步。
於624,控制邏輯110接收對應的實體位址和任何屬性作為對映資訊。
於626,控制邏輯110將命中分錄實體位址與反應實體位址作比較,並將命中分錄屬性與反應屬性作比較,以判定他們是否等效。如於上文中所提,係可在實體位址與屬性都匹配時判定出有等效性存在。此外,在一些實例中,可甚至是在一或多個屬性並不匹配時也判定有等效性,視並不匹配這些屬性之特定性質而定。
於628,若實體位址與屬性都匹配,則此處理程序前進到方塊630。
於630,控制邏輯110將這個緒ID加入到與TLB中之此命中分錄相關聯的硬體脈絡的列表中。例如,控制邏輯110可在此TLB分錄中儲存針對這個緒的一個識別符,或
可以其他方式使這個緒與此TLB分錄相關聯。此處理程序可接著前進到方塊614,如於上文中所描述的。
於632,另一方面,若實體位址或屬性中之至少一者並不與此TLB中的現有分錄匹配,則此處理程序來到方塊634。
於634,此控制邏輯110利用輸入虛擬位址、反應實體位址和任何屬性而在此TLB中配置一個新的分錄。此控制邏輯110可使這個緒與這個新分錄相關聯,例如藉由將緒ID包括在此TLB中的這個新分錄中。此處理程序可接著前進到方塊614,如於上文中所描述的。
從前文中,可注意到,這些實作並不需要對軟體脈絡作任何假設,而是獲得並比較兩個不同硬體脈絡的實際對映。因此,對應於各個共享脈絡的對映資訊係從這(些)頁表中被提取至少一次。然而,本文中之實作可達到超越傳統處理程序的節省,其藉由減少保證此二種對映都會等效所需的複雜性和結構而並不實際比較對映資訊。此外,於本文中所述的這些示範處理程序只是為作論述而提供的處理程序的一些非限制性範例。對於熟於此技藝者而言,按照本文之揭示,有許多其他變化會是很明顯可見的。
圖7依據本文中之一些實作,例示出一個示範系統700的非限制性選擇部件,其可包括於上文中所論述的處理器100和/或200的一或多個實例,用以實施框架300和於本文中所述的(一或數個)TLB。這個系統700只是可實施
硬體脈絡間之對TLB分錄之共享(例如上文中針對圖1~6所論述的)的許多可能系統和設備的一個範例。此系統700可包括一或多個處理器702-1、...、702-J(其中J是1的正整數),其各可包括一或多個處理器核心704-1、...、704-M(其中M是1的正整數)。在一些實作中,如於上文中所論述的,這(些)處理器702可係一個單核心處理器,而在其他實作中,這(些)處理器702可係具有大量的處理器核心704,這些處理器核心704各可包括例示於圖1和/或2中的一些或所有部件。例如,處理器核心704-1、...、704-M可包括控制邏輯110的一個實例,用以致能對針對各別的處理器核心704-1、...、704-M所維持的一或多個TLB 706之一或多個分錄的共享。如於上文中所提過的,控制邏輯110可包括或可係被包括在控制器、專用邏輯、邏輯單元、微碼、作業系統碼、或其他諸如此類者中之一或多者中。
這(些)處理器702和處理器核心704可係經由與一個本地互連712有關的一個整合式記憶體控制器(integrated memory controller,IMC)710而被操作,以對一個記憶體708作讀取和寫入。這(些)處理器702和處理器核心704可被操作來提取和執行儲存於記憶體708或其他電腦可讀媒體中的電腦可執行指令。此記憶體708可包括以任何類型的技術實施以儲存資訊(例如電腦可讀指令、資料結構、程式模組或其他資料)的依電性和非依電性記憶體及/或可移除和不可移除媒體。此種記憶體可包括但不受限於RAM、ROM、EEPROM、快取記憶體或其他記憶體技
術。在當中係有複數個處理器核心704的事例中,在一些實作中,這複數個處理器核心704可共享一個共享快取714,例如一個L3快取。此外,係可提供儲存體716以儲存資料、程式碼、程式、日誌、及其他諸如此類者。此儲存體716可包括固態儲存體、磁碟儲存體、RAID儲存體系統、儲存體陣列、網路附接儲存體、儲存體區域網路、雲端儲存體、CD-ROM、數位光碟(digital versatile disk,DVD)或其他光學儲存體、磁卡帶、磁帶、或可被用來儲存所欲資訊且可由運算裝置取用的任何其他媒體。視系統700之組態而定,記憶體708和/或儲存體716可係一種類型的電腦可讀儲存媒體,並且可係一種非過渡性媒體。
在許多實作中,本地互連712可亦與一個圖形控制器(graphical controller,GFX)718通訊,以提供圖形處理。在一些實施例中,此本地互連712可與一個系統代理器720通訊。此系統代理器720可與一個集線器722通訊,集線器722連接一個顯示引擎724、一個週邊部件互連快捷(Peripheral Component Interconnect Express,PCIe)互連726、和一個直接媒體介面(direct media interface,DMI)728。
記憶體708可儲存可由這(些)處理器702執行的功能性部件。在一些實作中,這些功能性部件包含可由這(些)處理器702執行的數個結構或程式730。例示於圖7中的這些示範功能性部件進一步包括一個作業系統(operating system,OS)732,用以管理系統700之操作。在
一些實例中,OS 732可係包括有或可係效力於控制邏輯110,以管理這些TLB 706。
系統700可包括一或多個通訊裝置734,這一或多個通訊裝置734可包括一或多個介面和硬體部件,以致能經由通訊鍊路(例如一或多個網路736)而與各種其他裝置的通訊。例如,通訊裝置734可有助於透過網際網路(Internet)、纜線網路、胞狀網路、無線網路(例如,Wi-Fi、胞狀)和有線網路中之一或多者的通訊。用於通訊的部件可至少部份係取決於所選擇的網路和/或環境的類型。用於經由此等網路通訊的協定和部件是習知的,在此將不詳細論述。
系統700可進一步配備有各種輸入/輸出(input/output,I/O)裝置738。此等I/O裝置738可包括顯示器、各種使用者介面控制(例如,按鈕、控制桿、鍵盤、觸控式螢幕等等)、音訊揚聲器、連接埠口、以此類推。可提供一個互連740,以致能在處理器702、記憶體708、儲存體716、通訊裝置734和I/O裝置738之間的通訊。此互連740可係複數種不同類型的互連(其可包括系統匯流排、點對點介面、晶片組、共享互連、網目互連、環圈互連、或其他適當連接和部件)中之任何一者或任何組合。
為作例示,本揭示已提供如所描述和如於圖式中所例示的各種示範實作。然而,本揭示並不受限於在本文中所描述和例示的這些實作,而是,本揭示係可延伸至其他實作,如熟於此技藝者所會熟知或將會熟知的。於本說
明書中對於「一個實作」、「此實作」、「這些實作」或「一些實作」的指涉係指所描述的一個特定特徵、結構或特性係被包括在至少一個實作中,並且這些詞語在本說明書中各處之出現並不一定全係指同一個實作。
雖然已以特定於結構性特徵和/或方法學動作的語言來描述本主旨,應瞭解,於後附申請專利範圍中所界定之主旨並不一定要受限於所描述的這些具體特徵或動作。而是,所描述的這些具體特徵或動作係作為實施申請專利範圍的示範形式而被揭露。
400‧‧‧處理程序
402‧‧‧維持一個資料結構,以包括含有第一對映資訊的一個分錄,此第一對映資訊具有一個虛擬位址和與一第一緒相關聯的一第一脈絡
404‧‧‧接收針對第二對映資訊的一個請求,具有虛擬位址和與一第二緒相關聯的一第二脈絡
406‧‧‧判定與第二脈絡相關聯的第二對映資訊是否等效於此分錄中的第一對映資訊
408‧‧‧若第二對映資訊等效於第一對映資訊,則此控制邏輯可使第二緒與在此資料結構之此分錄中所含有的第一對映資訊相關聯
Claims (20)
- 一種處理器,其包含:一個轉譯後備緩衝區(TLB),用以包括含有共享對映資訊的一個分錄,該共享對映資訊包括虛擬位址對實體位址的對映、一或多個脈絡識別符以及與一第一緒之脈絡和一第二緒之脈絡相關聯的一或多個屬性;以及控制邏輯,用以將對應於用於輸入虛擬位址對實體位址的一個對映請求的實體位址與一或多個屬性作比較以及該一或多個屬性在該TLB的該分錄中,以及如果符合下列至少一者,則在該TLB中分配一新的分錄:對應於用於該輸入虛擬位址的該對映請求的該實體位址與在該分錄中的該實體位址不匹配,以及對應於用於該輸入虛擬位址的該對映請求的該一或多個屬性與在該分錄中的該一或多個屬性不匹配。
- 如申請專利範圍第1項之處理器,其進一步包含多個暫存器,該第一緒之該脈絡包含一第一硬體脈絡以包括該等多個暫存器中之被配置給該第一緒的一或多個第一暫存器,並且該第二緒之該脈絡包含一第二硬體脈絡以包括該等多個暫存器中之被配置給該第二緒的一或多個第二暫存器。
- 如申請專利範圍第1項之處理器,其中至少該第一緒和該第二緒係用於同期地執行於該處理器上。
- 如申請專利範圍第1項之處理器,其中該控制邏輯進一步包含:用於在儲存於該TLB之該分錄中的該等脈絡沒有一個與對應於該對映請求的脈絡匹配時反應於該對映請求而請求從至少一個頁表中對新對映資訊作提取的邏輯。
- 如申請專利範圍第1項之處理器,其中該控制邏輯進一步包含:用於在儲存於該TLB之該分錄中的該等脈絡沒有一個與對應於該對映請求的脈絡匹配時,若對應於用於該輸入虛擬位址的該對映請求的該實體位址匹配在該分錄中的該實體位址,且對應於用於該輸入虛擬位址的該對映請求的該一或多個屬性匹配在該分錄中的該一或多個屬性,將對應於該對映請求的該脈絡添加至該分錄。
- 如申請專利範圍第1項之處理器,其中該處理器包括複數個處理器核心,該TLB和該控制邏輯對應於該等複數個處理器核心中的一第一處理器核心,該第一緒和該第二緒係執行於由該第一處理器核心所提供之各別的第一和第二邏輯處理器上。
- 一種處理器,其包含:一個資料結構,用以包括含有第一對映資訊的一個分錄,該第一對映資訊具有虛擬位址對實體位址的對映以及與一第一緒相關聯的一第一脈絡;以及控制邏輯,用以:接收對映請求,該對映請求包括一虛擬位址以及與一 第二緒相關聯的一第二脈絡;以及當在該分錄中的該虛擬位址與該對映請求的該虛擬位址匹配且該第二脈絡不與該第一脈絡匹配時:如果符合下列至少一者,則在該資料結構中分配一新的分錄:對應於該對映請求的該虛擬位址的該實體位址與在該分錄中的該實體位址不匹配,以及對應於該對映請求的該一或多個屬性與在該分錄中的該一或多個屬性不匹配,以及若對應於該對映請求的該虛擬位址的該實體位址匹配在該分錄中的該實體位址,且對應於該對映請求的該一或多個屬性匹配在該分錄中的該一或多個屬性,將該第二脈絡添加至包含在該分錄中的第一對映資訊。
- 如申請專利範圍第7項之處理器,其中該控制邏輯進一步包含:用於當在該分錄中的該虛擬位址與該對映請求的該虛擬位址匹配且該第二脈絡與該第一脈絡匹配時,以該分錄中的該實體位址反應於該對映請求的邏輯。
- 如申請專利範圍第7項之處理器,其中該分錄中的該一或多個屬性包含取用許可屬性、處理優先權屬性、頁面屬性以及記憶體位置屬性的至少一者。
- 如申請專利範圍第7項之處理器,其中該控制邏輯進一步包含:用於當在該分錄中的該虛擬位址與該對映請求的虛擬 位址不匹配時,在該資料結構中分配一新的分錄的邏輯。
- 如申請專利範圍第7項之處理器,其進一步包含多個暫存器,該第一脈絡包含一第一硬體脈絡以包括該等多個暫存器中之被配置給該第一緒的一或多個第一暫存器,並且該第二脈絡包含一第二硬體脈絡以包括該等多個暫存器中之被配置給該第二緒的一或多個第二暫存器。
- 如申請專利範圍第7項之處理器,其中該資料結構是一個轉譯後備緩衝區(TLB),並且該處理器包括複數個處理器核心,該TLB和該控制邏輯對應於該等複數個處理器核心中的一第一處理器核心。
- 一種用於在脈絡之間共享轉譯後備緩衝區(TLB)對映的方法,其包含下列步驟:在一個資料結構的一個分錄中維持與一第一脈絡相關聯的第一對映資訊,該第一對映資訊包括一第一虛擬位址對一第一實體位址的對映以及一或多個屬性;接收針對與一第二脈絡相關聯之第二對映資訊的一個請求,該第二對映資訊包括該第一虛擬位址對第二實體位址的對映以及一或多個屬性;如果符合下列至少一者,則在該資料結構中分配一新的分錄:該第一實體位址與該第二實體位址不匹配,以及該第一對映資訊的該一或多個屬性與該第二對映資訊的該一或多個屬性不匹配。
- 如申請專利範圍第13項之方法,其進一步包含 下列步驟:接收一個後續請求,該後續請求係針對包括該第一虛擬位址以及該第一脈絡的對映資訊;以及回傳該第一實體位址。
- 如申請專利範圍第13項之方法,其進一步包含下列步驟:在作比較之前,反應於針對第二對映資訊的該請求而從一或多個頁表中提取該第二對映資訊。
- 如申請專利範圍第13項之方法,其中進一步包含若該第一實體位址匹配該第二實體位址,且該第一對映資訊的該一或多個屬性匹配該第二對映資訊的該一或多個屬性,將該第二脈絡添加至該第一對映資訊。
- 如申請專利範圍第13項之方法,其中該第一脈絡是與執行於處理器上的一第一執行緒相關聯的一個硬體脈絡,並且該第二脈絡是與和該第一緒同期執行於該處理器上的一第二執行緒相關聯的一第二硬體脈絡。
- 一種用以在脈絡之間共享對映的系統,其包含:一個處理器;一個記憶體,其維持一個轉譯後備緩衝區(TLB),該TLB具有一分錄,該分錄包括與一第一緒和一第二緒相關聯的對映資訊,該第一緒具有一第一脈絡,該第二緒具有一第二脈絡,該對映資訊包括虛擬位址對實體位址的對映以及與該第一脈絡和該第二脈絡相關聯的一或多個屬性;以及 控制邏輯,用以:將對應於用於輸入虛擬位址對實體位址的一個對映請求的實體位址與一或多個屬性作比較,以及該一或多個屬性在該TLB的該分錄中,以及如果符合下列至少一者,則在該TLB中分配一新的分錄:對應於用於該輸入虛擬位址的該對映請求的該實體位址與在該分錄中的該實體位址不匹配,以及對應於用於該輸入虛擬位址的該對映請求的該一或多個屬性與在該分錄中的該一或多個屬性不匹配。
- 如申請專利範圍第18項之系統,其中該控制邏輯進一步包含用於進行下列動作的邏輯:接收包括有該虛擬位址的另一個對映請求,其係針對與具有一第三脈絡的一第三緒相關聯的對映資訊;提取與該第三緒相關聯的該對映資訊;將與該第三緒相關聯的該對映資訊與在該分錄中所包括的該對映資訊作比較;以及在與該第三緒相關聯的該對映資訊和在該分錄中所包括的該對映資訊等效時,使該第三緒與該分錄相關聯。
- 如申請專利範圍第18項之系統,其進一步包含多個暫存器,該第一緒的該第一脈絡包含一第一硬體脈絡以包括該等多個暫存器中之被配置給該第一緒的一或多個第一暫存器,並且該第二緒的該第二脈絡包含一第二硬體脈絡以包括該等多個暫存器中之被配置給該第二緒的一或 多個第二暫存器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067925 WO2013101104A1 (en) | 2011-12-29 | 2011-12-29 | Sharing tlb mappings between contexts |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201346753A TW201346753A (zh) | 2013-11-16 |
TWI607377B true TWI607377B (zh) | 2017-12-01 |
Family
ID=48698338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101149319A TWI607377B (zh) | 2011-12-29 | 2012-12-22 | 於脈絡之間共享轉譯後備緩衝區對映之方法、處理器和系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9703566B2 (zh) |
TW (1) | TWI607377B (zh) |
WO (1) | WO2013101104A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5858307B2 (ja) | 2012-04-27 | 2016-02-10 | 株式会社日立製作所 | データベース管理システム、計算機、データベース管理方法 |
CN106796856B (zh) | 2014-10-03 | 2020-03-06 | 管理科学有限公司 | 防止电气导管中电弧故障的方法、系统和装置 |
US9697137B2 (en) | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9652401B2 (en) * | 2015-08-13 | 2017-05-16 | Nxp Usa, Inc. | Tagged cache for data coherency in multi-domain debug operations |
US10564973B2 (en) * | 2015-11-20 | 2020-02-18 | Arm Limited | Apparatus and method for sharing branch information storage entries between threads that share an address translation regime |
US9778850B1 (en) * | 2015-12-16 | 2017-10-03 | EMC IP Holding Company LLC | Techniques for zeroing non-user data areas on allocation |
US10108554B2 (en) | 2016-12-05 | 2018-10-23 | Intel Corporation | Apparatuses, methods, and systems to share translation lookaside buffer entries |
CN108710584B (zh) * | 2018-05-22 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种提高tlb刷新效率的方法 |
US11238155B2 (en) | 2018-06-28 | 2022-02-01 | Intel Corporation | Microarchitectural mechanisms for the prevention of side-channel attacks |
US11580031B2 (en) | 2019-07-31 | 2023-02-14 | Intel Corporation | Hardware for split data translation lookaside buffers |
US11151050B2 (en) * | 2020-01-03 | 2021-10-19 | Samsung Electronics Co., Ltd. | Efficient cache eviction and insertions for sustained steady state performance |
US11436018B2 (en) | 2020-01-31 | 2022-09-06 | Intel Corporation | Apparatuses, methods, and systems for instructions to request a history reset of a processor core |
DE102020134681A1 (de) | 2020-01-31 | 2021-08-05 | Intel Corporation | Vorrichtungen, verfahren und systeme für anweisungen zum anfordern eines verlaufs-resets eines prozessorkerns |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI253015B (en) * | 2000-02-17 | 2006-04-11 | Tensilica Inc | Method allowing a desired operating system to be executed on different configurations of a base configurable processor, system for adapting operating systems to configurable microprocessors, method of porting a desired operating system to different ... |
US20080162868A1 (en) * | 2006-12-28 | 2008-07-03 | Andy Glew | Means to share translation lookaside buffer (TLB) entries between different contexts |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728858B2 (en) * | 2001-03-30 | 2004-04-27 | Intel Corporation | Method and apparatus including heuristic for sharing TLB entries |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
US20050027960A1 (en) | 2003-07-31 | 2005-02-03 | International Business Machines Corporation | Translation look-aside buffer sharing among logical partitions |
JP4576172B2 (ja) * | 2004-07-29 | 2010-11-04 | 富士通株式会社 | 演算処理装置,情報処理装置及び演算処理装置の制御方法 |
US7430643B2 (en) | 2004-12-30 | 2008-09-30 | Sun Microsystems, Inc. | Multiple contexts for efficient use of translation lookaside buffer |
-
2011
- 2011-12-29 WO PCT/US2011/067925 patent/WO2013101104A1/en active Application Filing
- 2011-12-29 US US13/997,789 patent/US9703566B2/en not_active Expired - Fee Related
-
2012
- 2012-12-22 TW TW101149319A patent/TWI607377B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI253015B (en) * | 2000-02-17 | 2006-04-11 | Tensilica Inc | Method allowing a desired operating system to be executed on different configurations of a base configurable processor, system for adapting operating systems to configurable microprocessors, method of porting a desired operating system to different ... |
US20080162868A1 (en) * | 2006-12-28 | 2008-07-03 | Andy Glew | Means to share translation lookaside buffer (TLB) entries between different contexts |
Also Published As
Publication number | Publication date |
---|---|
US9703566B2 (en) | 2017-07-11 |
TW201346753A (zh) | 2013-11-16 |
US20140223141A1 (en) | 2014-08-07 |
WO2013101104A1 (en) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI607377B (zh) | 於脈絡之間共享轉譯後備緩衝區對映之方法、處理器和系統 | |
US10860323B2 (en) | Method and apparatus for processing instructions using processing-in-memory | |
KR101441188B1 (ko) | 가상 시스템에서 메모리 중복 제거를 위한 기술 | |
US8046521B2 (en) | Computer virtualization apparatus and program and method therefor | |
US8572624B2 (en) | Providing multiple quiesce state machines in a computing environment | |
US8380907B2 (en) | Method, system and computer program product for providing filtering of GUEST2 quiesce requests | |
US9792220B2 (en) | Microcontroller for memory management unit | |
US9798487B2 (en) | Migrating pages of different sizes between heterogeneous processors | |
US8793528B2 (en) | Dynamic hypervisor relocation | |
US20170109279A1 (en) | Partitioning shared caches | |
US8032716B2 (en) | System, method and computer program product for providing a new quiesce state | |
KR102026877B1 (ko) | 메모리 관리 유닛 및 그 동작 방법 | |
WO2018027839A1 (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
TWI606340B (zh) | 用於資料快取之方法、電腦可讀取儲存媒體及系統 | |
US20190188028A1 (en) | Paravirtualized access for device assignment by bar extension | |
US20170262374A1 (en) | System and methods of a cpu-efficient cache replacement algorithm | |
TW201430566A (zh) | 在複數執行緒處理單元中的效率式記憶體虛擬化 | |
TW201346591A (zh) | 用於多上下文計算引擎的轉譯後備緩衝之技術 | |
US8458438B2 (en) | System, method and computer program product for providing quiesce filtering for shared memory | |
US20160103768A1 (en) | TLB Management Method and Computer | |
JP7123235B2 (ja) | 仮想化用のgpuタスクコンテナとしてのvmid | |
WO2016015583A1 (zh) | 一种内存管理方法、装置以及内存控制器 | |
US8555001B2 (en) | Cache memory, including miss status/information and a method using the same | |
WO2023216450A1 (zh) | 在虚拟化平台中管理tlb高速缓存的方法和装置 | |
US10789174B2 (en) | Guest intermediate address translation for virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |