TWI823238B - 統一記憶體位址轉譯系統、提供一統一記憶體位址轉譯之方法及計算裝置 - Google Patents
統一記憶體位址轉譯系統、提供一統一記憶體位址轉譯之方法及計算裝置 Download PDFInfo
- Publication number
- TWI823238B TWI823238B TW111103285A TW111103285A TWI823238B TW I823238 B TWI823238 B TW I823238B TW 111103285 A TW111103285 A TW 111103285A TW 111103285 A TW111103285 A TW 111103285A TW I823238 B TWI823238 B TW I823238B
- Authority
- TW
- Taiwan
- Prior art keywords
- translation
- module
- gen
- request
- queue
- Prior art date
Links
- 238000013519 translation Methods 0.000 title claims abstract description 347
- 238000000034 method Methods 0.000 title claims description 63
- 238000005192 partition Methods 0.000 claims description 15
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 235000015250 liver sausages Nutrition 0.000 claims 3
- XYSQXZCMOLNHOI-UHFFFAOYSA-N s-[2-[[4-(acetylsulfamoyl)phenyl]carbamoyl]phenyl] 5-pyridin-1-ium-1-ylpentanethioate;bromide Chemical compound [Br-].C1=CC(S(=O)(=O)NC(=O)C)=CC=C1NC(=O)C1=CC=CC=C1SC(=O)CCCC[N+]1=CC=CC=C1 XYSQXZCMOLNHOI-UHFFFAOYSA-N 0.000 claims 3
- 230000014616 translation Effects 0.000 description 258
- 230000008569 process Effects 0.000 description 36
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000008520 organization Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/1009—Address translation using page tables, e.g. page table structures
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/1054—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 physically 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/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
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
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)
- Executing Machine-Instructions (AREA)
Abstract
一種統一記憶體位址轉譯系統包括一轉譯隊列模組,該轉譯隊列模組經組態以接收對一實體記憶體之一真實位址(RA)之不同模式的轉譯請求。一轉譯快取(XLTC)介面經組態以接收對一RA之先前請求之成功轉譯結果,且將該先前成功轉譯結果提供至該轉譯隊列模組。複數個頁表項群(PTEG)搜尋模組耦接至該轉譯隊列模組。一統一轉譯查核位址產生(UTWAG)模組經組態以為轉譯請求之該等不同模式中之每一模式提供一轉譯支援。一記憶體介面耦接於該UTWAG與該實體記憶體之間。
Description
本發明大體上係關於電腦系統,且更特定言之,係關於管理支援多個作業系統之處理系統中的記憶體表。
近年來,計算平台之作業系統使用硬體與軟體之組合將由程式使用之記憶體位址(有時被稱作虛擬位址)映射至電腦之記憶體中的實體位址中。以此方式,主儲存器在連續位址空間中呈現為均一段。作業系統管理虛擬位址空間及真實(實體)記憶體至虛擬記憶體之指派。處理器中之位址轉譯硬體(有時被稱作記憶體管理單元(MMU))將虛擬位址轉譯成實體位址。作業系統內之軟體可提供大於真實記憶體之容量的虛擬位址空間,藉此參考比實體上存在於計算平台中之記憶體更多的記憶體。藉由使用虛擬記憶體,軟體可使用比可能實體上可用之記憶體更多的記憶體。虛擬記憶體藉由對實體記憶體進行偽裝片段化而簡化應用程式設計。
當今之計算系統基於所使用之作業系統之類型而使用不同位址轉譯機制。為了支援多個電腦系統環境,位址轉譯硬體應在自有效位址(EA)轉譯成真實位址(RA)時支援多個定址模式。如本文中所使用,有效位址(EA)為程式看到之位址;虛擬位址(VA)為OS所使用之位址;且真
實位址(RA)為實際記憶體硬體之位址。當將EA最終轉譯成RA時,處理器通常執行查核轉譯表之時間密集程序以便產生正確位址,使得可存取適當記憶體位址。頁表為作業系統儲存其虛擬位址(VA)至實體位址之映射的地方,其中每一映射亦稱為頁表項(PTE)。將EA轉換成VA且最終轉換成RA之時間密集程序可能涉及許多記憶體讀取、快取存取,且可能停止硬體執行緒或整個處理器核心之進展。
根據一個實施例,一種統一記憶體位址轉譯系統包括一轉譯隊列模組,該轉譯隊列模組經組態以接收對一實體記憶體之一真實位址(RA)之不同模式的轉譯請求。一轉譯快取(XLTC)介面經組態以接收對一RA之先前請求之成功轉譯結果,且將該先前成功轉譯結果提供至該轉譯隊列模組。複數個表項群(TEG)搜尋模組(例如,頁表項群PTEG及/或段表項群STEG)耦接至該轉譯隊列模組。一統一轉譯查核位址產生(UTWAG)模組經組態以為轉譯請求之該等不同模式中之每一模式提供一轉譯支援。一記憶體介面耦接於該UTWAG與該實體記憶體之間。
在一個實施例中,該XLTC介面、該等PTEG搜尋模組及該轉譯隊列模組由該UTWAG模組之所有轉譯支援共用。
在一個實施例中,轉譯請求之該等模式包括以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求;一非巢狀基數請求;或一巢狀基數請求。
在一個實施例中,該等轉譯請求中之每一者由該轉譯隊列模組之一序列模組處理。
在一個實施例中,該轉譯隊列模組之該序列模組經組態以
在該等轉譯請求之間提供一循環仲裁。
在一個實施例中,該UTWAG模組之該等轉譯支援包括以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其可操作以提供自一有效位址(EA)至一虛擬位址(VA)之一轉譯;一段表項群真實位址產生(STEG RA GEN),其可操作以定義一中間虛擬位址(STEG VA)至RA轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA GEN);或一基數客體真實位址產生(RADIX GUEST RA GEN)。
在一個實施例中,一有限狀態機耦接至每一轉譯隊列項。
在一個實施例中,該狀態機由該UTWAG模組之所有轉譯支援共用。
根據一個實施例,一種提供一統一記憶體位址轉譯之方法包括由一轉譯隊列模組接收對一實體記憶體之一真實位址(RA)的複數個轉譯請求。將該複數個轉譯請求中之每一者分配至該轉譯隊列模組之一轉譯查核隊列項。對於每一轉譯查核隊列項,判定一起始虛擬位址(VA)及來自一對應轉譯請求之一轉譯模式。將該VA及轉譯模式提供至一統一轉譯查核位址產生(UTWAG)模組,該UTWAG模組包括適應不同轉譯模式之複數個轉譯支援。由該UTWAG模組基於該轉譯模式而將該VA轉譯成一RA。UTWAG本身不將VA轉譯成RA;而是遵循基於HPT請求之HPT轉譯流程。EA至VA為「段表轉譯」之目標。當「HPT轉譯」開始時,存取XLTC以尋找先前EA至VA轉譯,隨後尋找轉譯查核隊列項,其中彼「起始VA」執行表查核以尋找RA。
在一個實施例中,該複數個轉譯請求並非均一模式。
在一個實施例中,該複數個轉譯請求包括以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求;一非巢狀基數請求;或一巢狀基數請求。
在一個實施例中,該複數個轉譯請求中之一轉譯請求由一轉譯快取(XLTC)介面自一轉譯快取(XLTC)接收,該XLTC可操作以儲存一或多個先前成功轉譯結果。
在一個實施例中,該XLTC介面、一或多個頁表項群(PTEG)搜尋模組及該轉譯隊列模組由該UTWAG模組之所有轉譯支援共用。
在一個實施例中,每一轉譯請求至複數個轉譯查核隊列項中之一者的該分配係基於判定在該XLTC中未找到一匹配先前結果。
在一個實施例中,對於一處理器之每一時脈週期,每一轉譯查核隊列項係不同的。
在一個實施例中,在複數個轉譯查核隊列項之間提供一循環仲裁。
在一個實施例中,該UTWAG模組之該等轉譯支援提供以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其用以提供一有效位址(EA)至一虛擬位址(VA)轉譯;一段表項群真實位址產生(STEG RA GEN),其用以定義該STEG VA之一VA至一RA轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA GEN);或一基數客體真實位址產生(RADIX GUEST RA GEN)。
在一個實施例中,一有限狀態機耦接至每一轉譯隊列項。
在一個實施例中,該狀態機由該UTWAG模組之所有轉譯支援共用。
根據一個實施例,一種計算裝置包括:一處理器;一轉譯隊列模組,其經組態以接收對一實體記憶體之一真實位址(RA)之不同模式的轉譯請求;一轉譯快取(XLTC)介面,其經組態以接收對一RA之先前請求之成功轉譯結果,且將該先前成功轉譯結果提供至該轉譯隊列模組;及複數個頁表項群(PTEG)搜尋模組,其耦接至該轉譯隊列模組。存在耦接至該處理器之一記憶體。一統一轉譯查核位址產生(UTWAG)軟體模組儲存於該記憶體中,其中該處理器對該UTWAG之一執行對該計算裝置進行組態以為轉譯請求之該等不同模式中之每一模式提供一轉譯模式。存在耦接於該UTWAG與該實體記憶體之間的一記憶體介面。
在一個實施例中,該XLTC介面、該等PTEG搜尋模組及該轉譯隊列模組由該UTWAG模組之所有轉譯支援共用。
在一個實施例中,轉譯請求之該等模式包括以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求;一非巢狀基數請求;或一巢狀基數請求。
在一個實施例中,該UTWAG模組之該等轉譯支援包括以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其可操作以提供一有效位址(EA)至一虛擬位址(VA);一段表項群真實位址產生(STEG RA GEN),其可操作以定義一中間虛擬位址(STEG VA)至RA轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA
GEN);或一基數客體真實位址產生(RADIX GUEST RA GEN)。
在一個實施例中,一有限狀態機耦接至每一轉譯隊列項。
在一個實施例中,該狀態機由該UTWAG模組之所有轉譯支援共用。
藉助於藉由各種轉譯模式共用各種硬體及/或軟體組件,為位址轉譯提供改良之面積及功率效率。實際上,轉譯查核隊列之反覆程序連同UTWAG之組合實現了晶片面積之高效使用、降低之功耗及改良之轉譯請求效能。此等及其他特徵將自其說明性實施例之以下詳細描述變得顯而易見,該詳細描述將結合隨附圖式來閱讀。
100:統一記憶體位址轉譯系統/架構
102:載入/儲存單元
104:載入/儲存單元
106:位址轉譯單元
108:位址轉譯單元/段表轉譯
110:位址轉譯單元/非巢狀基數轉譯/基數樹頁表
112:位址轉譯單元/巢狀基數轉譯表/基數樹頁表
114:記憶體
200:統一記憶體位址轉譯系統/架構
202:轉譯請求介面
204:轉譯快取(XLTC)
206:XLTC介面
208:頁表項群(PTEG)搜尋模組
210:段表項群模組
212:記憶體介面/記憶體存取介面/讀取/寫入介面
214:記憶體
220:有限狀態機下一狀態產生模組
230:轉譯隊列模組
232:轉譯查核隊列項/HPT轉譯
234:轉譯查核隊列項/段表轉譯
236:轉譯查核隊列項/非巢狀基數轉譯
238:轉譯查核隊列項/巢狀基數轉譯
239:序列模組
240:轉譯模組
260:統一轉譯查核位址產生(UTWAG)模組
262:分區表項真實位址產生(PATE RA GEN)
264:段表項群虛擬位址產生(STEG VA GEN)
266:段表項群真實位址產生(STEG RA GEN)
268:頁表項群真實位址產生(PTEG RA GEN)
270:基數主機真實位址產生(RADIX HOST RA GEN)
272:基數客體真實位址產生(RADIX GUEST RA GEN)
300:程序
301:段表請求/段表請求查核
302:雜湊頁表(HPT)請求/區塊
303:雜湊頁表(HPT)請求/區塊
304:段表請求/區塊
306:區塊
308:區塊
310:區塊
312:區塊
314:區塊
316:區塊
318:區塊
320:區塊
322:區塊
324:區塊
400:程序
401A:區塊
401B:區塊
402:區塊
404:區塊
406:區塊
408:區塊
410:區塊
412:區塊
414:區塊
416:區塊
418:區塊
420:區塊
422:區塊
424:區塊
500:電腦硬體平台/電腦平台/計算裝置
502:系統匯流排
504:中央處理單元
506:硬碟驅動機
508:隨機存取記憶體(RAM)及/或唯讀記憶體(ROM)
510:鍵盤
512:滑鼠
514:顯示器
516:通信介面
540:UTWAG模組/UTWAG引擎
542:PATE RA GEN
544:STEG VA GEN
546:STEG RA GEN
548:PTEG RA GEN
550:RADIX HOST RA GEN
552:RADIX GUEST RA GEN
600:雲端計算環境
610:雲端計算節點
650:雲端計算環境
654A:個人數位助理/蜂巢式電話
654B:桌上型電腦
654C:膝上型電腦
654N:汽車電腦系統
700:功能抽象層之集合
760:硬體及軟體層
761:大型電腦
762:基於精簡指令集電腦(IRSC)架構之伺服器
763:伺服器
764:刀鋒伺服器
765:儲存裝置
766:網路及網路連接組件
767:網路應用程式伺服器軟體
768:資料庫軟體
770:虛擬化層
771:虛擬伺服器
772:虛擬儲存器
773:虛擬網路
774:虛擬應用程式及作業系統
775:虛擬用戶端
780:管理層
781:資源佈建
782:計量及定價
783:使用者入口網站
784:服務層級管理
785:服務層級協定(SLA)規劃及履行
790:工作負載層
791:地圖繪製及導航
792:軟體開發及生命週期管理
793:虛擬教室教育遞送
794:資料分析處理
795:異動處理
796:統一轉譯引擎
圖式為說明性實施例。其未說明所有實施例。可另外或替代地使用其他實施例。可省略可為顯而易見或不必要的細節以節省空間或用於更有效說明。一些實施例可在有額外組件或步驟之情況下及/或在無所有所說明組件或步驟之情況下實踐。當相同數字出現在不同圖式中時,該數字係指相同或類似組件或步驟。
圖1為根據說明性實施例之支援多個轉譯模式之統一記憶體位址轉譯系統的概念方塊圖。
圖2為根據說明性實施例之支援多個轉譯模式之統一記憶體位址轉譯系統的更詳細方塊圖。
圖3為適應雜湊頁表(HPT)請求及段表請求同時共用圖2之統一轉譯系統之各種組件的實例程序流程。
圖4為適應巢狀及非巢狀基數請求兩者之實例程序流程。
圖5提供可用以代管統一轉譯查核位址產生(UTWAG)模組
之電腦硬體平台的功能方塊圖說明。
圖6描繪根據說明性實施例之雲端計算環境。
圖7描繪根據說明性實施例之抽象模型層。
在以下詳細描述中,藉助於實例闡述眾多特定細節以提供對相關教示之透徹理解。然而,應顯而易見,可在無此等特定細節之情況下實踐本發明教示。在其他情況下,已在相對較高層級上描述熟知方法、程序、組件及/或電路而無詳述,以免不必要地混淆本發明教示之態樣。
本發明大體上係關於管理支援多個作業系統之處理系統中之記憶體表的系統及方法。現今,已開發出可支援不同作業環境及虛擬機之處理器核心。舉例而言,計算系統之部分可運行基數轉譯模式,其使用一系列巢狀表而非單一大雜湊表來尋找用於該部分特定作業系統(OS)之頁表項,而系統之另一部分運行威力PC,其對該另一部分之對應OS使用不同轉譯模式。舉例而言,有時被稱作虛擬機監視器(VMM)之超管理器可藉由將超管理器作業系統及資源與虛擬機隔離而建立及運行虛擬機(VM),且實現可基於不同OS的此類機器之建立及管理,同時共用相同硬體。每一作業系統可涉及基於不同頁表之不同位址轉譯。當程序請求存取其記憶體中之資料時,OS負責將由該程序提供之虛擬位址(VA)映射至其中儲存有彼資料之實際記憶體之實體位址。頁表為作業系統儲存其虛擬位址至實體位址之映射的地方,其中每一映射亦稱為頁表項(PTE)。由於使用不同作業系統,因此可存在不同轉譯單元,在本文中有時被稱作轉譯模式。
PTE通常用以將由作業系統所見之虛擬位址轉譯成由硬體使用以處理應用程式之指令的實體位址。執行此轉譯之硬體有時被稱作記憶體管理單元(MMU)。頁表中之每一項包括對應頁是否在實體記憶體中之指示。若該頁在實體記憶體中,則頁表項將包括儲存頁之實際記憶體位址。當硬體對頁進行參考時,若該頁之頁表項指示該頁當前不在實體記憶體中,則硬體會引發分頁錯誤例外狀況,從而調用作業系統之分頁監督器組件,如稍後更詳細地論述。
歸因於每一模式之唯一性,典型實施為每一位址轉譯模式專門提供硬體表查核邏輯。處理器內存在單獨單元,每一單元皆具有其自身之介面以處置記憶體存取、載入/儲存資料轉譯請求及指令提取位址轉譯請求。
在各種情境下,系統可具有用於整個系統之一個頁表、用於每一應用程式之單獨頁表、用於大段之頁表樹,或其組合。若僅存在一個頁表,則同時運行之不同應用程式使用單一虛擬位址範圍之不同部分。若存在多個頁表或段表,則存在多個虛擬位址空間,且具有單獨頁表之並行應用程式重定向至不同實際位址。
多個轉譯單元增加了複雜度及晶片面積以適應多個介面。位址轉譯潛時及效能亦受影響,此係由於請求單元處置每一轉譯單元之唯一態樣。舉例而言,段表轉譯可涉及中間雜湊頁表(HPT)轉譯,其可能需要由請求單元處置、轉譯單元之間的單獨邊帶介面,或更糟的是複製HPT轉譯邏輯。此外,基數轉譯與HPT有很大不同,此係因為基數轉譯使用一系列巢狀表而非單一大雜湊表來尋找定義EA至RA轉譯之頁表項(PTE)。已知計算系統不支援多個轉譯模式,更不必說以高效方式了。
因此,本文中之教示在電腦系統及方法中為支援多位址轉譯模式之處理器提供支援複數個請求之轉譯查核隊列,其中每一轉譯查核可處於不同模式及轉譯流程中之不同階段,以及由複數個轉譯模式共用且提供用於轉譯之所有中間位址的統一轉譯查核位址產生器。藉助於藉由各種轉譯模式共用各種硬體及/或軟體組件,位址轉譯實現改良之面積及功率效率。本文中所描述之技術可以數種方式實施。下文參考以下諸圖提供實例實施。
現參考圖1,其為根據說明性實施例之支援多個轉譯模式之統一記憶體位址轉譯系統100的概念方塊圖。統一位址轉譯系統100有助於在不複製邏輯及硬體組件之情況下共用各種轉譯區塊。系統100包括複數個載入/儲存單元,其由區塊102及104表示,該等載入/儲存單元與處理器核心中可操作以接收資料且將資料寫入至由實體記憶體114表示之暫存器中的單元相關。為此,此等單元102及104具有有效位址(EA),該有效位址將轉譯成實體位址,在本文中有時被稱作(實體)記憶體114之真實位址(RA)。基於使用對應載入/儲存單元102或104之作業系統(OS),可存在將EA轉譯成由複數個轉譯單元106至112表示之RA的不同方法。在各種情境下,可使用雜湊頁表(HPT)轉譯、段表轉譯108、非巢狀基數轉譯110,或巢狀基數轉譯表112。
對應於裝載/儲存單元之一些處理器架構可使用雜湊頁表(HPT)以將虛擬記憶體位址動態地映射至實體記憶體位址。舉例而言,在HPT中,虛擬位址中之虛擬頁碼經雜湊至雜湊表中。舉例而言,HPT可用以處置高於32個位元之位址空間。雜湊表中之每一項為PTE或PTEG之
群,其中每一PTE包括VA及對應RA。當VA與PTE VA匹配時,存取對應RA,使得HPT能夠在記憶體114中提供RA。
一些處理器架構可使用基數樹頁表(例如,110或112)將虛擬記憶體位址動態地映射至實體記憶體位址。OS利用藉由OS判定且儲存於基數樹頁表中之位址轉譯管理固定頁大小之分配單元處的實體資源。將由OS使用之虛擬位址映射至記憶體114之實體(亦即,RA)涉及遍歷基數樹,其在本文中有時被稱作「查核頁表」,可涉及多個記憶體存取。舉例而言,單一載入操作可涉及針對轉譯及資料提取之若干記憶體存取。
雖然圖1中說明四個位址轉譯單元(亦即,106至112)以避免混亂,但應理解,本文中之教示支援額外位址轉譯單元。通常,位址轉譯單元106至112中之每一者將為獨立的且不共用任何組件,藉此引起額外複雜度、晶片面積及功率消耗。相比之下,本文中之教示有助於在不複製邏輯及硬體組件之情況下共用轉譯系統之各種轉譯區塊,如將在下圖2之論述之上下文中更佳地理解。
圖2為根據說明性實施例之支援多個轉譯模式之統一記憶體位址轉譯系統200的更詳細方塊圖。存在經組態以接收可為任意模式之位址轉譯請求的轉譯隊列模組230。舉例而言,轉譯請求可為雜湊頁表(HPT)轉譯請求、段表轉譯請求、非巢狀基數請求、巢狀基數請求等。存在轉譯快取(XLTC)介面206,其經組態以自轉譯快取204接收經轉譯快取請求且將其提供至轉譯隊列模組230。轉譯快取(XLTC)204可操作以儲存先前成功轉譯結果。舉例而言,XLTC 204可包括不同類型之先前轉譯,諸如EA至VA、VA至RA及EA至RA。存在耦接至轉譯隊列模組230之頁表項群(PTEG)搜尋模組208及/或段表項群模組210。STEG為STE之群。段
表轉譯以類似方式搜尋STE之STEG。舉例而言,使用段表項以將EA轉譯成VA。
轉譯模組240包括統一轉譯查核位址產生(UTWAG)模組260,其經組態以為複數個轉譯請求中之轉譯請求之每一模式提供轉譯支援。UTWAG之轉譯支援包括以下各者中之至少一者:分區表項真實位址產生(PATE RA GEN)262;段表項群虛擬位址產生(STEG VA GEN)264,其提供EA至VA位址轉譯;段表項群真實位址產生(STEG RA GEN)266,其讀取STE之群,其中匹配STE提供EA至VA位址轉譯;頁表項群真實位址產生(PTEG RA GEN)268;基數主機真實位址產生(RADIX HOST RA GEN)270;或基數客體真實位址產生(RADIX GUEST RA GEN)272。HPT PTE(其可藉由區塊208提供)定義VA至RA轉譯。
UTWAG 260耦接至可操作以與實體記憶體214通信之記憶體介面212。在一些實施例中,轉譯模組240包括有限狀態機下一狀態產生模組220。有限狀態機可被視為具有兩個部分:定義機器之當前狀態的一組鎖存器;及可操作以判定機器之下一狀態的邏輯區塊。在轉譯隊列模組230中,每一轉譯隊列項在邏輯上具有其自身的獨立FSM,此係由於每一項具有定義其當前狀態之一組鎖存器。在給定處理器週期中,仲裁239決定哪一隊列項能夠存取共用FSM下一狀態產生邏輯區塊220。
記憶體存取介面212、轉譯快取(XLTC)讀取/寫入介面206及XLTC介面206全部由UTWAG 260之轉譯支援262至272共用,藉此節約功率及/或晶片面積,同時降低統一記憶體位址轉譯系統200之複雜度。
藉助於實例而非作為限制,圖2之架構200說明適應四項轉譯查核之轉譯隊列模組230,但應理解,本文中之教示支援轉譯隊列模組
230中之任何數目個轉譯查核隊列。至轉譯隊列模組230中之每一項能夠利用架構化轉譯項232至238(在本文中有時被稱作轉譯模組)中之任一者獨立地適應轉譯請求。舉例而言,異動查核模式可包括HPT轉譯232、段表轉譯234、非巢狀基數轉譯236、巢狀基數轉譯238等。在一個實施例中,轉譯隊列模組230包括序列模組239,其可操作以在不同轉譯查核隊列項232至238之間提供循環仲裁。此等轉譯查核隊列項232至238中之每一者可屬於不同類型。舉例而言,轉譯查核隊列項232可執行段表查核,轉譯查核隊列項234可執行巢狀基數查核,轉譯查核隊列項236可執行非巢狀基數查核等。因此,架構200自動地支援不同執行緒模式。
除了隊列項232至238以外,架構200亦包括統一轉譯查核位址產生(UTWAG)區塊260,其可操作以產生與最終達成RA相關的所有中間位址。明顯地,UTWAG經組態以使得記憶體存取介面212、轉譯快取(XLTC)204、XLTC介面206、讀取/寫入介面(在本文中有時被稱作XLTC介面206)及轉譯請求介面202由所有轉譯支援262至272共用。UTWAG 260亦使得轉譯模式能夠與另一轉譯模式共用一個模式之轉譯功能,如稍後更詳細地解釋。每一處理器週期可為完全不同的執行緒模式。轉譯查核隊列項232至238之反覆程序連同UTWAG之組合實現了晶片面積之高效使用、降低之功耗及改良之轉譯請求效能。
當載入/儲存單元或指令獲取單元202請求轉譯有效位址(EA)時,考慮例如Power10(P10)處理器。此請求可發送至包括先前轉譯結果之轉譯快取(XLTC)204。此等先前轉譯可為自EA至虛擬位址(VA)、VA至RA轉譯或直接EA至RA;此取決於位址轉譯模式。若在XLTC 204中未找到先前結果,則轉譯請求202經分配至轉譯查核隊列項232至238中之
一者。作為請求之部分,定義轉譯模式之上下文資訊連同起始EA一起提供。舉例而言,在PowerPC架構中,此可為段表EA至虛擬位址轉譯、雜湊頁表虛擬位址至真實位址轉譯,或基數EA至RA轉譯。
每一轉譯請求包括位址(例如,EA或VA)連同上下文資訊(例如,請求模式)。利用上下文資訊,轉譯查核隊列項開始。所有轉譯模式涉及定義個別轉譯表(段表、雜湊頁表或基數(1級)表)之基礎位址的「分區表項」(PATE)262。UTWAG 260藉由在記憶體214中產生每一模式之PATE之位址以及RA而高效地提供此共同功能。
藉由實例架構100及200之前述概述,現在考慮實例程序之高層級論述可能會有幫助。為此,圖3及4呈現根據說明性實施例之轉譯具有不同模式之記憶體位址的說明性程序300及400。程序300及400各自說明為邏輯流程圖中之區塊之集合,其表示可實施於硬體、軟體或其組合中之操作之序列。在軟體之上下文中,區塊表示電腦可執行指令,其在由一或多個處理器執行時執行所敍述之操作。通常,電腦可執行指令可包括執行功能或實施抽象資料類型之常式、程式、物件、組件、資料結構及其類似者。在每一程序中,描述操作之次序並不意欲被解釋為限制,且任何數目個所描述區塊可以任何次序組合及/或並行地執行以實施該程序。出於論述目的,參考圖2之架構描述程序300及400。
圖3為適應HPT請求及段表請求同時共用圖2之統一轉譯系統200之各種組件的實例程序流程。舉例而言,記憶體存取介面212、轉譯快取(XLTC)204、XLTC介面206、讀取/寫入介面212及轉譯請求介面202由回應於HPT請求302及段表請求304而使用之所有轉譯模式共用。
在區塊303處,接收HPT請求,其包含虛擬位址(VA)及指示轉譯請求之模式的上下文。在區塊310處,將虛擬位址雜湊至頁表項(PTE)群真實位址(GEN PTEG RA)中且發送至記憶體214。在區塊312處,系統等待預定時段以自記憶體接收PTEG。
在區塊314處,搜尋PTEG中的PTE命中。若不存在PTE命中(亦即,存在「失誤」),則轉譯隊列模組230將位址(例如,具備轉譯請求之VA)識別為例外狀況。舉例而言,FSM下一狀態產生模組220將轉變至「例外狀況」狀態。然而,若存在PTE「命中」,則程序繼續進行區塊324,在該區塊處用RA更新轉譯快取(XLTC)。
程序300亦說明由段表請求301表示之另一進入點。在區塊302處,在接收到包含有效位址(EA)之段表請求後,基於所提供之轉譯請求上下文(GEN PATE)產生分區表項。在區塊304處,系統等待預定時段,直至產生分區表項為止。在區塊306處,產生段表項群(STEG VA)。換言之,提供中間虛擬位址(VA)。作為虛擬位址之段表項群(STEG)自身需要轉譯(亦即,因為其為真實位址之中間轉譯)。
在區塊308處,在一個實施例中,檢查轉譯快取XLTC 204以判定此虛擬位址(VA)是否先前已經轉譯。若此虛擬位址先前未經轉譯且因此在轉譯快取(XLTC)204中不可用(亦即,判定區塊308處之「失誤」),則程序繼續進行區塊310至314,該等區塊與先前論述之HPT請求303無縫整合。換言之,關於HPT請求303已經就位之邏輯及/或硬體可成功地再用於段表請求查核301。
更特定言之,在區塊310處,將虛擬位址雜湊至頁表項(PTE)群真實位址(GEN PTEG RA)中且發送至記憶體214。在區塊312
處,系統等待預定時段以自記憶體接收PTEG。在區塊314處,搜尋PTEG中的PTE「命中」。若不存在PTE「命中」(亦即,在判定區塊314處存在「失誤」),則系統將位址識別為例外狀況。然而,若存在PTE「命中」,則程序繼續進行區塊316,在該區塊處用真實位址(RA)更新轉譯快取(XLTC)204。此真實位址(RA)經發送至記憶體214且程序繼續進行區塊318,在該區塊處提供段表項群真實位址(GEN STEG RA)且將其發送至記憶體214。在區塊320處,系統等待預定時段以自記憶體214接收段表群(STEG)資料。
在區塊322處,執行段表群搜尋(SEARCH STEG)。若其成功(亦即,判定區塊322處之「命中」),則程序繼續進行區塊324,在該區塊處用VA更新轉譯快取(XLTC)204。段表轉譯請求之目標為藉由使用段表項(STE)將EA轉譯成VA。更具體言之,在STE中找到之EA部分及對應虛擬位址儲存於XLTC 204中,使得對同一EA頁之進一步存取將為「命中」以避免下一搜尋中之「失誤」。
然而,若SEARCH STEG不成功(亦即,判定區塊處之「失誤」),則程序返回至區塊306且反覆程序繼續。舉例而言,此反覆循環功能可涉及四個單獨反覆。
返回至區塊308,若虛擬位址先前已經轉譯(亦即,判定區塊308處之「命中」),則查核實質上經簡化且直接進行到區塊318,且程序如上文所論述而繼續。
若包括於請求上下文資訊202中之定址模式係針對基數EA至RA轉譯,則遵循亦高效地共用XLTC介面206及記憶體介面212之不同流程。舉例而言,一些處理器使用深度為4之基數樹以在本機應用程式中
進行有效至實體轉譯。樹中可存在四個層,其中第四層L4為樹之根。樹中之每一節點包括表示樹之後續層級中之節點的表。節點填充一單一實體記憶體訊框。每一表項維持子節點之實體訊框號碼(例如,指標)及OS對整個子樹強加之權限。轉譯程序(在本文中有時被稱作頁表查核)為反覆的且遍歷自根至葉節點之路徑。在每一步驟中,使用來自源有效位址(EA)之後續位元集合以沿路徑索引後續節點中之表。
就此而言,現參考圖4,其為適應巢狀基數請求及非巢狀基數請求兩者之實例程序流程。為了避免混亂,程序400已與圖3之程序300分開,但應理解,可整合此等程序。在程序400中,巢狀基數流程係由實線提供,而非巢狀基數流程係由虛線提供。
在區塊401A處,接收非巢狀基數請求,其包含有效位址及指示請求模式之上下文(亦即,非巢狀基數)。在區塊402處,在接收到巢狀基數請求之後,基於所接收之轉譯上下文(GEN PATE)產生分區表項。在區塊404處,系統等待預定時段,直至產生分區表項為止。
程序接著繼續進行至區塊410,在該區塊處最初針對L1產生主機位址(GEN HOST RA)。基數經過經連續參考之一系列表。當存取L1時,其包括至L2主機表之指標,以此類推。查核四個此類表,如由區塊410至416所指示,直至識別出正確的頁表項PTE為止。程序接著繼續進行區塊424,在該區塊處用RA更新轉譯快取(XLTC)。
如上文所提及,程序400亦可適應巢狀基數請求。舉例而言,在區塊401B處,接收巢狀基數請求,其包含有效位址及指示請求模式之上下文(亦即,巢狀基數)。在區塊402處,在接收到巢狀基數請求之後,基於所接收之轉譯上下文(GEN PATE)產生分區表項。在區塊404
處,系統等待預定時段,直至完成分區表項產生為止。
程序接著繼續進行區塊406,在該區塊處針對四個基數層級L1至L4中之每一者產生客體真實位址(GEN GUEST RA)。換言之,有效位址產生在位址可發送至記憶體之前進一步細化之客體層級位址,如下文更詳細地論述。
在區塊408處,在一個實施例中,檢查轉譯快取XLTC 204以判定此客體真實位址是否先前已經轉譯。若此客體真實位址先前未經轉譯(亦即,判定區塊308處之「失誤」),則程序繼續進行區塊410,在該區塊處最初針對L1產生主機位址(GEN HOST RA)。如在先前所論述之非巢狀狀況下,基數經過經連續參考之一系列表,如由區塊410至416所指示,直至識別出正確的頁表項PTE為止。程序接著繼續進行區塊418,在該區塊處用RA更新轉譯快取(XLTC)204。
在區塊420處,產生主機真實位址(GEN HOST RA)。就此而言,應注意,對於巢狀基數,EA至RA轉譯包括於客體L4項中。每一客體項(L1、L2、L3、L4)最初由客體RA定址。然而,客體RA無法發送至記憶體214且因此轉譯成主機RA,如上文所論述。區塊420為自客體RA(區塊406)轉譯之主機RA。
在區塊422處,系統等待個體基數層級(例如,L1)之客體表項完成。反覆程序藉由返回至區塊406而繼續,直至已針對客體表項評估所有基數層級(亦即,本實例中之L1至L4)。程序繼續進行區塊424,在該區塊處用RA更新轉譯快取(XLTC)。
返回至區塊408,若客體位址先前已經轉譯(亦即,判定區塊408處之「命中」),則程序實質上經簡化且直接進行到區塊420,且程
序如上文所論述而繼續。
在一個實施例中,可藉由使用一或多個計算裝置來執行與提供統一記憶體位址轉譯系統相關之功能。圖5提供可用以代管統一轉譯查核位址產生(UTWAG)模組540之電腦硬體平台500的功能方塊圖說明。
電腦平台500可包括連接至系統匯流排502之中央處理單元(CPU)504、硬碟驅動機(HDD)506、隨機存取記憶體(RAM)及/或唯讀記憶體(ROM)508、鍵盤510、滑鼠512、顯示器514及通信介面516。
在一個實施例中,HDD 506具有包括以下各項之能力:以本文中所描述之方式儲存可執行諸如UTWAG引擎540之各種程序的程式。UTWAG引擎540可具有經組態以執行不同功能之各種模組,諸如在圖2之上下文中論述的彼等模組及其他模組。舉例而言,可存在執行本文中所論述之功能的PATE RA GEN 542、STEG VA GEN 544、STEG RA GEN 546、PTEG RA GEN 548、RADIX HOST RA GEN 550及RADIX GUEST RA GEN 552模組。雖然模組542至552在圖5中說明為HDD 506之部分,在一些實施例中,此等模組中之一或多者可實施於計算裝置500之硬體中。舉例而言,本文中所論述之模組可以部分硬體及部分軟體之形式實施。亦即,圖5中所展示之UTWAG引擎540之組件中之一或多者可以電子電路形式實施,該電子電路具有電晶體、二極體、電容器、電阻器、電感器、可變電抗器及/或憶阻器。換言之,UTWAG引擎540可藉由一或多個專門設計之電子電路來實施,該一或多個專門設計之電子電路執行本文中由CPU之組件及/或RAM/ROM 508之模組所描述的特定任務及功能。
如上文所論述,與提供統一記憶體位址轉譯系統相關之功能可包括如雲端中之分散式計算及/或儲存架構。應理解,儘管本發明包括關於雲端計算之詳細描述,但本文中所敍述之教示之實施不限於雲端計算環境。實情為,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之計算環境來實施。
雲端計算為用於實現對可組態計算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機及服務)之共用集區進行便利之按需網路存取的服務遞送之模型,該等計算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
按需自助服務:雲端消費者可按需要自動地單向佈建計算能力(諸如伺服器時間及網路儲存),而無需與服務提供者進行人為互動。
廣泛網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之計算資源經集用以使用多租戶模型為多個消費者服務,其中根據需求動態指派及再指派不同實體及虛擬資源。存在位置獨立性之意義,此係因為消費者通常不具有對所提供資源之確切位置的控制或瞭解,但可能能夠按較高抽象層級(例如,國家、州或資料中心)指定位置。
快速彈性:可快速地且彈性地(在一些狀況下,自動地)佈
建能力以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
所量測服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及活動使用者賬戶)之某一抽象層級下充分利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用狀況,從而為所利用服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給消費者之能力係使用在雲端基礎架構上運行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網頁之電子郵件)之精簡型用戶端介面自各種用戶端裝置存取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之底層雲端基礎架構,其中可能的例外狀況為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將使用由提供者所支援之程式設計語言及工具建立的消費者建立或獲取之應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎架構,但具有對所部署之應用程式及可能的代管環境組態之應用程式的控制。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存器、網路及其他基礎計算資源,其中消費者能夠部署及運行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制底層雲端基礎架構,但控制作業系統、儲存器、所部署應用程式,及可能有限地控制選
擇網路連接組件(例如,主機防火牆)。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在內部部署或外部部署。
社群雲端:該雲端基礎架構由若干組織共用且支援具有共用關注事項(例如,任務、安全要求、策略及順應性考量)的特定社群。群集雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:可使該雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:該雲端基礎架構為兩個或更多個雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端爆裂)之標準化或專屬技術系結在一起。
藉由集中於無國籍、低耦合、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎架構。
現參看圖6,描繪說明性雲端計算環境600。如所展示,雲端計算環境600包括一或多個雲端計算節點610,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話654A、桌上型電腦654B、膝上型電腦654C及/或汽車電腦系統654N的本端計算裝置可與該一或多個雲端計算節點通信。節點610可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端,或其組合)中將該等節點實體地或虛擬地分組(未展示)。此允許雲端計算環境650提供基礎架構、平台及/或軟體
作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維護資源。應理解,圖6中所展示之計算裝置654A至654N之類型意欲僅為說明性的,且計算節點610及雲端計算環境650可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參看圖7,展示由雲端計算環境650(圖6)提供之功能抽象層之集合700。事先應理解,圖7中所展示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層760包括硬體及軟體組件。硬體組件之實例包括:大型電腦761;基於精簡指令集電腦(IRSC)架構之伺服器762;伺服器763;刀鋒伺服器764;儲存裝置765;及網路及網路連接組件766。在一些實施例中,軟體組件包括網路應用程式伺服器軟體767及資料庫軟體768。
虛擬化層770提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器771;虛擬儲存器772;虛擬網路773,其包括虛擬私用網路;虛擬應用程式及作業系統774;及虛擬用戶端775。
在一個實例中,管理層780可提供下文所描述之功能。資源佈建781提供計算資源及用以執行雲端計算環境內之任務之其他資源的動態採購。當在雲端計算環境內利用資源時,計量及定價782提供成本追蹤,及對此等資源之消耗之帳務處理及發票請款。在一個實例中,此等資源可包括應用程式軟體授權。安全性為雲端消費者及任務提供身分驗證,以及對資料及其他資源之保護。使用者入口網站783為消費者及系統管理者提供對雲端計算環境之存取。服務層級管理784提供雲端計算資源分配
及管理以便滿足所需服務層級。服務層級協定(SLA)規劃及履行785為雲端計算資源提供預先配置及採購,針對雲端計算資源之未來要求係根據SLA來預期。
工作負載層790提供功能性之實例,可針對該功能性利用雲端計算環境。可自此層提供之工作負載及功能的實例包括:地圖繪製及導航791;軟體開發及生命週期管理792;虛擬教室教育遞送793;資料分析處理794;異動處理795;及統一轉譯引擎796,如本文所論述。
已出於說明之目的呈現本發明教示之各種實施例之描述,但該等描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神的情況下,一般熟習此項技術者將顯而易見許多修改及變化。本文中所使用之術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現之技術的技術改良,或使得其他一般熟習此項技術者能夠理解本文中所揭示之實施例。
儘管前文已描述所認為之最佳狀態及/或其他實例,但應理解,其中可進行各種修改,且本文中所揭示之標的物可以各種形式及實例實施,且教示可應用於諸多應用中,本文僅描述其中一些。以下申請專利範圍意欲主張屬於本發明教示之真實範疇的任何及所有應用、修改及變化。
已在本文中論述之組件、步驟、特徵、物件、益處及優點僅為說明性的。其中無一者及與其相關之論述均不意欲限制保護範疇。雖然本文中已論述各種優點,但將理解,並非所有實施例必定包括所有優點。除非另外陳述,否則本說明書中(包括隨後之申請專利範圍中)所闡述
之所有量測結果、值、額定值、位置、量值、大小及其他規格為近似的而非精確的。其意欲具有符合其相關功能及其所屬領域習用的合理範圍。
亦涵蓋眾多其他實施例。此等實施例包括具有較少、額外及/或不同組件、步驟、特徵、物件、益處及優點的實施例。此等實施例亦包括組件及/或步驟以不同方式配置及/或排序之實施例。
本文中參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明的態樣。將理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中之區塊之組合。
此等電腦可讀程式指令可提供至經適當組態之電腦、專用電腦或其他可程式化資料處理設備之處理器以產生機器,使得經由電腦或其他可程式化資料處理設備之處理器執行的指令建立用於實施流程圖及/或方塊圖區塊中所指定之功能/動作的手段。此等電腦可讀程式指令亦可儲存於電腦可讀儲存媒體中,該等電腦可讀程式指令可引導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得其中儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作。
本文中之諸圖中之調用流程、流程圖及方塊圖說明根據本
發明之各種實施例之系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、段或部分,其包含用於實施指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中提及之功能可能不以諸圖中所提及之次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可按相反次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明中之每一區塊,及方塊圖及/或流程圖說明中之區塊之組合。
雖然前文已結合例示性實施例進行描述,但應理解,術語「例示性」僅意謂作為實例,而非最好或最佳。除上文剛剛陳述之內容外,任何已陳述或說明之內容均不意欲或不應被解釋為使任何組件、步驟、特徵、物件、益處、優點或等效於奉獻給公眾,無論其是否在申請專利範圍中敍述。
將理解,除非本文中已另外闡述特定含義,否則本文中所使用之術語及表達具有如關於其對應各別查詢及研究領域給予此類術語及表達的一般含義。關係術語,諸如第一及第二及其類似者,可僅用於區分一個實體或動作與另一實體或動作,而不必要求或暗示此類實體或動作之間的任何實際此類關係或次序。術語「包含」或其任何變化形式意欲涵蓋非排他性包括,使得包含一系列要素之程序、方法、物品或設備不僅包括彼等要素,而且亦可包括未明確列出或為此類程序、方法、物品或設備所固有之其他要素。前面有「一」之要素不(但不進一步限制)排除包含該要素之程序、方法、物品或設備中存在額外相同要素。
提供本發明之摘要以允許讀者迅速確定技術揭示內容之性質。應遵從以下理解:本發明之摘要不會用於解釋或限制申請專利範圍之範疇或含義。另外,在前述實施方式中,可看到出於精簡本發明之目的在各種實施例中將各種特徵分組在一起。不應將此揭示方法解釋為反映以下意圖:所主張之實施例具有比每一技術方案中明確敍述之特徵更多的特徵。實際上,如以下申請專利範圍所反映,本發明標的物在於單一所揭示實施例之少於全部的特徵。因此,以下申請專利範圍特此併入實施方式中,其中每一技術方案作為單獨主張之標的物獨立存在。
300:程序
301:段表請求/段表請求查核
302:雜湊頁表(HPT)請求/區塊
303:雜湊頁表(HPT)請求/區塊
304:段表請求/區塊
306:區塊
308:區塊
310:區塊
312:區塊
314:區塊
316:區塊
318:區塊
320:區塊
322:區塊
324:區塊
Claims (24)
- 一種統一記憶體位址轉譯系統,其包含:一轉譯隊列模組,其經組態以接收對一實體記憶體之一真實位址(RA)之不同模式的轉譯請求;一轉譯快取(XLTC)介面,其耦接至該轉譯隊列模組並經組態以接收對一RA之先前請求之先前成功轉譯結果,且將該先前成功轉譯結果提供至該轉譯隊列模組;一頁表項群(PTEG)搜尋模組或一段表項群(STEG)搜尋模組中之至少一者,其耦接至該轉譯隊列模組;一統一轉譯查核位址產生(UTWAG)模組,其耦接至該轉譯隊列模組並經組態以為轉譯請求之該等不同模式中之每一模式提供一轉譯支援;及一記憶體介面,其耦接於該UTWAG模組與該實體記憶體之間,其中該等轉譯請求中之每一者由該轉譯隊列模組之一序列模組處理。
- 如請求項1之系統,其中該XLTC介面、該PTEG搜尋模組或STEG搜尋模組及該轉譯隊列模組由所有轉譯模式共用。
- 如請求項1之系統,其中轉譯請求之該等模式包含以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求; 一非巢狀基數請求;及一巢狀基數請求。
- 如請求項1之系統,其中該轉譯隊列模組之該序列模組經組態以在該等轉譯請求之間提供一循環仲裁。
- 如請求項1之系統,其中該UTWAG模組之該等轉譯支援包括以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其可操作以提供自一有效位址(EA)至一虛擬位址(VA)之一轉譯;一段表項群真實位址產生(STEG RA GEN),其可操作以定義一中間虛擬位址(STEG VA)至一真實位址(RA)轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA GEN);或一基數客體真實位址產生(RADIX GUEST RA GEN)。
- 如請求項1之系統,其進一步包含耦接至該轉譯隊列模組之每一轉譯隊列項的一有限狀態機。
- 如請求項6之系統,其中該狀態機由該UTWAG模組之所有轉譯支援共用。
- 一種提供一統一記憶體位址轉譯之方法,其包含:由一轉譯隊列模組接收對一實體記憶體之一真實位址(RA)的複數個轉譯請求;將該複數個轉譯請求中之每一者分配至該轉譯隊列模組之一轉譯查核隊列項;對於每一轉譯查核隊列項:判定一起始虛擬位址(VA)及來自一對應轉譯請求之一轉譯模式;將該起始VA及該轉譯模式提供至一統一轉譯查核位址產生(UTWAG)模組,該UTWAG模組包含適應不同轉譯模式之複數個轉譯支援;及由該UTWAG模組基於該轉譯模式而將該起始VA轉譯成一RA。
- 如請求項8之方法,其中該複數個轉譯請求並非均一模式。
- 如請求項8之方法,其中該複數個轉譯請求包含以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求;一非巢狀基數請求;或一巢狀基數請求。
- 如請求項8之方法,其中該複數個轉譯請求中之一轉譯請求由一轉譯快取(XLTC)介面自一轉譯快取(XLTC)接收,該XLTC可操作以儲存一或 多個先前成功轉譯結果。
- 如請求項11之方法,其中該XLTC介面、一或多個頁表項群(PTEG)搜尋模組及該轉譯隊列模組由所有轉譯模式共用。
- 如請求項12之方法,其中每一轉譯請求至複數個轉譯查核隊列項中之一者的該分配係基於判定在該XLTC中未找到一匹配先前結果。
- 如請求項8之方法,其中對於一處理器之每一時脈週期,每一轉譯查核隊列項係不同的。
- 如請求項8之方法,其進一步包含在複數個轉譯查核隊列項之間提供一循環仲裁。
- 如請求項8之方法,其中該UTWAG模組之該等轉譯支援提供以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其提供一有效位址(EA)至一虛擬位址(VA)轉譯;一段表項群真實位址產生(STEG RA GEN),其定義一中間虛擬位址(STEG VA)至一真實位址(RA)轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA GEN);或 一基數客體真實位址產生(RADIX GUEST RA GEN)。
- 如請求項8之方法,其進一步包含將一有限狀態機耦接至該轉譯隊列模組之每一轉譯隊列項。
- 如請求項17之方法,其中該狀態機由所有轉譯模式共用。
- 一種計算裝置,其包含:一處理器;一轉譯隊列模組,其經組態以接收對一實體記憶體之一真實位址(RA)之不同模式的轉譯請求;一轉譯快取(XLTC)介面,其經組態以接收對一RA之先前請求之先前成功轉譯結果,且將該先前成功轉譯結果提供至該轉譯隊列模組;一頁表項群(PTEG)搜尋模組或一段表項群(STEG)搜尋模組中之至少一者,其耦接至該轉譯隊列模組;一記憶體,其耦接至該處理器;一統一轉譯查核位址產生(UTWAG)軟體模組,其儲存於該記憶體中,其中該處理器對該UTWAG軟體模組之一執行對該計算裝置進行組態以為轉譯請求之該等不同模式中之每一模式提供一轉譯支援;及一記憶體介面,其耦接於該UTWAG軟體模組與該實體記憶體之間,其中該等轉譯請求中之每一者由該轉譯隊列模組之一序列模組處理。
- 如請求項19之計算裝置,其中該XLTC介面、該等PTEG搜尋模組及該轉譯隊列模組由所有轉譯模式共用。
- 如請求項19之計算裝置,其中轉譯請求之該等模式包含以下各者中之至少一者:一雜湊頁表(HPT)請求;一段表請求;一非巢狀基數請求;或一巢狀基數請求。
- 如請求項19之計算裝置,其中該UTWAG軟體模組之該等轉譯支援包括以下各者中之至少一者:一分區表項真實位址產生(PATE RA GEN);一段表項群虛擬位址產生(STEG VA GEN),其可操作以提供一有效位址(EA)至一虛擬位址(VA);一段表項群真實位址產生(STEG RA GEN),其可操作以定義一中間虛擬位址(STEG VA)至一真實位址(RA)轉譯;一頁表項群真實位址產生(PTEG RA GEN);一基數主機真實位址產生(RADIX HOST RA GEN);或一基數客體真實位址產生(RADIX GUEST RA GEN)。
- 如請求項19之計算裝置,其進一步包含耦接至該轉譯隊列模組之每一轉譯隊列項的一有限狀態機。
- 如請求項23之計算裝置,其中該狀態機由所有轉譯模式共用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/199,315 | 2021-03-11 | ||
US17/199,315 US11734188B2 (en) | 2021-03-11 | 2021-03-11 | Unified translation miss queue for multiple address translation modes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202240399A TW202240399A (zh) | 2022-10-16 |
TWI823238B true TWI823238B (zh) | 2023-11-21 |
Family
ID=80952176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111103285A TWI823238B (zh) | 2021-03-11 | 2022-01-26 | 統一記憶體位址轉譯系統、提供一統一記憶體位址轉譯之方法及計算裝置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11734188B2 (zh) |
JP (1) | JP2024508588A (zh) |
CN (1) | CN117063166A (zh) |
DE (1) | DE112022000897T5 (zh) |
GB (1) | GB2619477A (zh) |
TW (1) | TWI823238B (zh) |
WO (1) | WO2022189159A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516247B2 (en) * | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
US20130262817A1 (en) * | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Hybrid address translation |
TWI524272B (zh) * | 2013-09-20 | 2016-03-01 | 上海兆芯集成電路有限公司 | 微處理器及其動態重設方法及偵測方法、及電腦程式產品 |
US20170371789A1 (en) * | 2016-06-23 | 2017-12-28 | International Business Machines Corporation | Techniques for maintaining consistency between address translations in a data processing system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811472B2 (en) | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
US9600419B2 (en) * | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9348757B2 (en) * | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
GB2536201B (en) * | 2015-03-02 | 2021-08-18 | Advanced Risc Mach Ltd | Handling address translation requests |
US10552338B2 (en) | 2017-02-21 | 2020-02-04 | Arm Limited | Technique for efficient utilisation of an address translation cache |
US10552937B2 (en) | 2018-01-10 | 2020-02-04 | Intel Corporation | Scalable memory interface for graphical processor unit |
US11847064B2 (en) | 2018-12-07 | 2023-12-19 | International Business Machines Corporation | Buffer and methods for address translations in a processor |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
-
2021
- 2021-03-11 US US17/199,315 patent/US11734188B2/en active Active
-
2022
- 2022-01-26 TW TW111103285A patent/TWI823238B/zh active
- 2022-02-24 GB GB2314593.1A patent/GB2619477A/en active Pending
- 2022-02-24 JP JP2023540042A patent/JP2024508588A/ja active Pending
- 2022-02-24 DE DE112022000897.0T patent/DE112022000897T5/de active Pending
- 2022-02-24 CN CN202280020211.4A patent/CN117063166A/zh active Pending
- 2022-02-24 WO PCT/EP2022/054650 patent/WO2022189159A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516247B2 (en) * | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
US20130262817A1 (en) * | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Hybrid address translation |
TWI524272B (zh) * | 2013-09-20 | 2016-03-01 | 上海兆芯集成電路有限公司 | 微處理器及其動態重設方法及偵測方法、及電腦程式產品 |
US20170371789A1 (en) * | 2016-06-23 | 2017-12-28 | International Business Machines Corporation | Techniques for maintaining consistency between address translations in a data processing system |
Also Published As
Publication number | Publication date |
---|---|
JP2024508588A (ja) | 2024-02-28 |
DE112022000897T5 (de) | 2023-11-16 |
GB2619477A (en) | 2023-12-06 |
CN117063166A (zh) | 2023-11-14 |
TW202240399A (zh) | 2022-10-16 |
WO2022189159A1 (en) | 2022-09-15 |
US20220292028A1 (en) | 2022-09-15 |
US11734188B2 (en) | 2023-08-22 |
GB202314593D0 (en) | 2023-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5559176B2 (ja) | ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法 | |
US11119942B2 (en) | Facilitating access to memory locality domain information | |
US11132290B2 (en) | Locality domain-based memory pools for virtualized computing environment | |
US11144320B2 (en) | Selective suppression of instruction cache-related directory access | |
US11194580B2 (en) | Selective suppression of instruction translation lookaside buffer (ITLB) access | |
US10067716B2 (en) | Inaccessibility status indicator | |
US10691590B2 (en) | Affinity domain-based garbage collection | |
CN115827502A (zh) | 一种内存访问系统、方法及介质 | |
JP7083446B2 (ja) | 複数のプロセッサによる共有キャッシュ・ラインの同時変更 | |
US10838872B2 (en) | System, method, and recording medium for common memory programming | |
TWI823238B (zh) | 統一記憶體位址轉譯系統、提供一統一記憶體位址轉譯之方法及計算裝置 | |
CN108228333A (zh) | 一种多核系统的核间资源隔离方法 | |
WO2023029756A1 (en) | Sleep / wake-up performance enhancing for simultaneous address translation table walks | |
US11880350B2 (en) | Identifying resource lock ownership across a clustered computing environment |