TWI489279B - 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 - Google Patents
虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 Download PDFInfo
- Publication number
- TWI489279B TWI489279B TW102143294A TW102143294A TWI489279B TW I489279 B TWI489279 B TW I489279B TW 102143294 A TW102143294 A TW 102143294A TW 102143294 A TW102143294 A TW 102143294A TW I489279 B TWI489279 B TW I489279B
- Authority
- TW
- Taiwan
- Prior art keywords
- entry
- address
- conversion
- virtual
- translation
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明係關於記憶體管理,尤指一種以一虛擬位址之一部分的位元來作為索引的虛擬實體位址轉換系統管理方法及其相關的虛擬實體位址轉換系統。
記憶體管理單元(memory management unit)係透過轉換後備緩衝器(translation lookaside buffer,TLB)來提昇分頁表(page table)的查閱效能。舉例來說,無互鎖管線階段的微處理器(microcomputer without interlocked pipeline stages,MIPS)所採用的轉換後備緩衝器可具有複數個(例如,64)入口(entry)以進行高速查閱,其中每一入口均可儲存一虛擬位址(virtual address)與一實體位址(physical address)之一虛擬實體位址轉換(virtual-to-physical address translation)。
然而,於上述轉換後備緩衝器之中進行查閱時,需要將欲查閱的一虛擬位址與每一入口所儲存之虛擬位址進行比對(亦即,全關聯式比對(fully-associative mapping)),也就是說,需要有複數個(例如,64)比較電路,因此,若增加轉換後備緩衝器的入口個數以提昇系統效能,轉換後備緩衝器的電路面積也會隨之增加,處理速度也會下降,然而,若將轉換後備緩衝器的入口個數降低,則會降低系統效能(例如,轉換後備緩衝器錯失(TLB miss)的機率增加)。
因此,需要一種可提昇系統效能而不會犧牲電路面積與處理速度的虛擬實體位址轉換系統。
有鑑於此,本發明的目的之一在於提供一種以一虛擬位址之一部分的位元來作為索引的虛擬實體位址轉換系統管理方法及其相關的虛擬實體位址轉換系統,來解決上述問題。
依據本發明之一實施例,其揭示一種虛擬實體位址轉換系統的管理方法。該管理方法包含下列步驟:提供一第一儲存空間,其中該第一儲存空間包含複數個緩衝入口;提供一第二儲存空間,其中該第二儲存空間包含複數個轉換入口,以及該複數個轉換入口係對應於複數個轉換索引;以及當接收一寫入指令以將一第一虛擬實體位址轉換寫入該複數個緩衝入口之一特定緩衝入口時,依據該第一虛擬實體位址轉換所對應之一第一虛擬位址之一第一部份的位元來將該第一虛擬實體位址轉換儲存於該複數個轉換入口之中的一寫入轉換入口,以及將該第一虛擬位址與該寫入轉換入口所對應之一寫入轉換索引儲存於該特定緩衝入口。
依據本發明之另一實施例,其另揭示一種虛擬實體位址轉換系統的管理方法。該管理方法包含下列步驟:提供一儲存空間,其中該儲存空間包含複數個轉換入口,該複數個轉換入口係儲存至少一虛擬實體位址轉換,並分別對應於複數個轉換索引;以及當接收一讀出指令以讀出一虛擬位址所對應之一實體位址時,依據該虛擬位址之一部份的位元以自該儲存空間讀出該實體位址。
依據本發明之一實施例,其揭示一種虛擬實體位址轉換系統。該虛擬實體位址轉換系統包含一第一儲存空間、一第二儲存空間以及一處理電路。該第一儲存空間包含複數個緩衝入口。該第二儲存空間包含複數個轉換入口,其中該複數個轉換入口係分別對應於複數個轉換索引。該處理電路係耦接於該第一儲存空間以及該第二儲存空間。當該系統接收一寫入指令以將一第一虛擬實體位址轉換寫入該複數個緩衝入口之中的一特定緩衝入口時,該處理電路係依據該第一虛擬實體位址轉換所對應之一第一虛擬位址之一第
一部份的位元來將該第一虛擬實體位址轉換儲存於該複數個轉換入口之中的一寫入轉換入口,以及將該第一虛擬位址與該寫入轉換入口所對應之一寫入轉換索引儲存於該特定緩衝入口。
依據本發明之另一實施例,其另揭示一種虛擬實體位址轉換系統。該虛擬實體位址轉換系統包含一儲存空間以及一處理電路。該儲存空間包含複數個轉換入口,其中該複數個轉換入口係儲存至少一虛擬實體位址轉換,並分別對應於複數個轉換索引。該處理電路係耦接於該儲存空間,其中當該系統接收一讀出指令以讀出一虛擬位址所對應之一實體位址時,該處理電路係依據該虛擬位址之一部份的位元以自該儲存空間讀出該實體位址。
本發明所提供之虛擬實體位址轉換系統及其管理方法可儲存大量的轉換資料,並可將相關的虛擬實體位址轉換合併或儲存於相鄰的入口,因此,本發明所提供之虛擬實體位址轉換系統及其管理方法可提昇系統效能而不會大幅增加電路面積,也不會降低處理速度。另外,本發明所提供之虛擬實體位址轉換系統及其管理方法可相容於無互鎖管線階段之微處理器的指令。
100、200‧‧‧虛擬實體位址轉換系統
110、210、310‧‧‧第一儲存空間
120、220、320‧‧‧第二儲存空間
130、230‧‧‧處理電路
224‧‧‧虛擬位址表
226‧‧‧實體位址表
234‧‧‧比較器
236‧‧‧選擇器
1000、1002、1004、1006、1007、1008、1010、1400、1402、1404、1406、1407、1408、1409、1410、1412、1414‧‧‧步驟
C_W‧‧‧寫入指令
C_R‧‧‧讀出指令
V2P、V2Px‧‧‧虛擬實體位址轉換
B1、B2、Bi、Bm‧‧‧緩衝入口
T1、T2、Tx、Tn‧‧‧轉換入口
I1、I2、Ix、In、idx(0)、idx(1)、idx(2)、idx(3)‧‧‧轉換索引
I‧‧‧虛擬索引
VA、VAx1~VAx8‧‧‧虛擬位址
PA、PAx1~PAx8‧‧‧實體位址
W1、W2‧‧‧路
v、v1、v2‧‧‧有效位元域
idx‧‧‧轉換索引域
vaddr、vaddr1、vaddr2‧‧‧虛擬位址域
paddr、paddr1、paddr2‧‧‧實體位址域
pastart1、pastart2‧‧‧分頁起始域
mp1、mp2‧‧‧多頁域
num_e‧‧‧流失個數域
ran_s‧‧‧搜尋範圍域
IND(0)、IND(1)、IND(2)、IND(3)、IND(4)、IND(5)、IND(6)、IND(7)‧‧‧緩衝索引
第1圖為本發明虛擬實體位址轉換系統之一實施例的示意圖。
第2圖為本發明虛擬實體位址轉換系統之另一實施例的示意圖。
第3圖為第1圖所示之第一儲存空間與第二儲存空間之一實作範例的示意圖。
第4圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第5圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第6圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第7圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第8圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第9圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第10圖為本發明虛擬實體位址轉換系統的管理方法之一實施例的流程圖。
第11圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第12圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第13圖為於第3圖所示之第一儲存空間與第二儲存空間進行虛擬實體位址轉換操作的一實作範例的示意圖。
第14圖為本發明虛擬實體位址轉換系統的管理方法之一實施例的流程圖
為了提昇系統效能而不會大幅增加電路面積,本發明將一虛擬位址之一部份的位元作為一索引,以依據該索引來查閱該虛擬位址相對應之一實體位址,並透過容量較大的記憶體來提供較多的轉換後備緩衝器入口,進而大幅提昇系統效能並可減少系統在進行查閱時所需的比較電路。
請參閱第1圖,其係為本發明虛擬實體位址轉換系統之一實施例的示意圖。由第1圖可知,虛擬實體位址轉換系統100包含一第一儲存空間110、一第二儲存空間120以及一處理電路130,其中第一儲存空間110包含複數個緩衝入口(buffer entry)B1~Bm,以及第二儲存空間120包含複數個轉換入口(translation entry)T1~Tn。於此實施例中(但本發明並不局限於此),第一儲存空間110與第二儲存空間120均可採用靜態隨機存取記憶體(Static random access memory,SRAM)來實作以提供較多的緩衝入口個數
以及轉換入口個數。另外,複數個轉換入口T1~Tn可分別對應於複數個轉換索引(translation index)I1~In。
處理電路130係耦接於第一儲存空間110與第二儲存空間120。當虛擬實體位址轉換系統100接收到一寫入指令C_W(其指示將一虛擬實體位址轉換V2P寫入複數個緩衝入口B1~Bm之中的一特定緩衝入口Bi)時,處理電路130可依據虛擬實體位址轉換V2P所對應之一虛擬位址VA之一部份的位元來將虛擬實體位址轉換V2P(例如,虛擬位址VA及其相對應之一實體位址PA)寫入/儲存於複數個轉換入口T1~Tn之中的一寫入轉換入口Tx,並將虛擬位址VA與寫入轉換入口Tx所對應之一寫入轉換索引Ix寫入/儲存於特定緩衝入口Bi。舉例來說,處理電路130可將一虛擬位址VA之該部份的位元作為一虛擬索引I,並依據虛擬索引I來索引至相對應之轉換索引(例如,寫入轉換索引Ix),進而將虛擬實體位址轉換V2P寫入/儲存至寫入轉換入口Tx(假設寫入轉換入口Tx可用(available))。第一儲存空間110則是藉由將虛擬位址VA以及寫入轉換索引Ix寫入/儲存於特定緩衝入口Bi,以代表虛擬實體位址轉換V2P係儲存於第二儲存空間120之寫入轉換入口Tx。如此一來,當虛擬實體位址轉換系統100接收到一讀出指令C_R(其指示讀出/查閱虛擬位址VA所對應之實體位址PA)時,處理電路130便可依據虛擬位址VA之該部份的位元(亦即,虛擬索引1)以自第二儲存空間120讀出實體位址PA,而無需將虛擬位址VA與儲存於第一儲存空間110之中所有的虛擬位址進行比對。
第一儲存空間110可視為一轉換後備緩衝器入口表(TLB entry table),其可採用傳統的轉換後備緩衝器指令來控制,此外,第二儲存空間120可視為一虛擬實體位址轉換表(virtual-to-physical address translation table),其中複數個轉換入口T1~Tn之至少其一可包含複數個儲存槽(slot),以及該複數個儲存槽可分別用以儲存複數個虛擬實體位址轉換以增加提昇系統的轉換效能。請參閱第2圖,其係為本發明虛擬實體位址轉換系統之另一實施例
的示意圖。虛擬實體位址轉換系統200的架構係基於第1圖所示之虛擬實體位址轉換系統100的架構,因此,虛擬實體位址轉換系統200可包含一第一儲存空間210、一第二儲存空間220以及一處理電路230,其中第一儲存空間210、第二儲存空間220以及處理電路230可分別用來實作出第1圖所示之第一儲存空間110、第二儲存空間120以及處理電路130。於此實施例中(但本發明並不限於此),第一儲存空間210可包含1024個緩衝入口,以及第二儲存空間220可包含128個轉換入口。第二儲存空間220可包含一虛擬位址表224以及一實體位址表226,以分別儲存複數個虛擬位址與複數個實體位址,此外,第二儲存空間220可採用多路(multi-way)存取的方式來實作之,因此,每一轉換入口可包含複數個儲存槽以儲存複數個虛擬實體位址轉換(例如,複數個虛擬位址與複數個實體位址)。
處理電路230包含一比較器234以及一選擇器236。當虛擬實體位址轉換系統200欲查閱一虛擬位址VA相對應之一實體位址PA時,可將虛擬位址VA之一部份的位元作為一虛擬索引I,並據以索引至一轉換入口Tx。比較器可將虛擬位址VA與儲存於轉換入口Tx之該複數個儲存槽(例如,8個儲存槽)之中的複數個虛擬位址VAx1~VAx8作比較,選擇器236再根據比較器234之輸出,自複數個實體位址PAx1~PAx8(分別對應於複數個虛擬位址VAx1~VAx8)之中得到適當的實體位址(亦即,虛擬位址VA所對應之實體位址PA)。由第2圖可知,處理電路230可採用單一比較電路234來完成查閱操作,故可大幅提昇虛擬實體位址轉換系統200的操作速度,也減少所需的電路面積。
為了對本發明的技術特徵有更進一步的了解,請參閱第3圖~第9圖所示之虛擬實體位址轉換系統之管理操作的實作範例。第3圖係為第1圖所示之第一儲存空間110與第二儲存空間120之一實作範例的示意圖。於此實作範例中,第一儲存空間310包含複數個緩衝入口,其中該複數個緩衝入口分別對應於具有索引值0~7的複數個緩衝索引IND(0)~IND(7)。每一緩
衝入口包含一有效位元域(valid bit field)v、一轉換索引域(translation index field)idx以及一虛擬位址域(virtual address field)vaddr。每一緩衝入口的有效位元域v的初始值可設為0,代表未有資料存入。轉換索引域idx可用來儲存一轉換索引,而虛擬位址域vaddr則可用來儲存一虛擬位址。請注意,為求說明簡潔,在此並未繪示位址空間識別符號域(address-space identifier field,ASID field)、更動位元域(dirty bit field)以及全域位元域(global bit field)於第一儲存空間310(例如,轉換後備緩衝器入口表)之中,此外,熟習技藝者應可了解位址空間識別符號域、更動位元域以及全域位元域所代表的意義,故相關的說明在此便不再贅述。
第二儲存空間320(例如,虛擬實體位址轉換表)可包含複數個轉換入口,其中該複數個轉換入口分別對應於具有索引值0~3的複數個轉換索引idx(0)~idx(3)。另外,第二儲存空間320採用多路(multi-way)存取的方式(亦即,複數個路(way)W1與W2),其中路W1包含一有效位元域v1、一虛擬位址域vaddr1、一實體位址域(physical address field)paddr1、一實體分頁起始域(physical page start field)pa_start1以及一多頁域(multi-page field)mp1。有效位元域v1的初始值可設為0,其可代表未有資料存入。虛擬位址域vaddr1可儲存一虛擬位址、實體位址域paddr1可儲存該虛擬位址相對應之一實體位址、實體頁起始域pa_start1則可儲存該實體位址所屬實體頁的一起始位址,而多頁域mp1可指示出相對應的儲存槽(slot)之中所儲存的至少一實體位址於所屬實體頁之中的頁數。關於多頁域mp1/mp2的進一步的說明容後再敘。相似地,路W2包含一有效位元域v2、一虛擬位址域vaddr2、一實體位址域paddr2、一實體分頁起始域pa_start2以及一多頁域mp2。換言之,每一轉換入口包含有兩個儲存槽以儲存複數個虛擬實體位址轉換。
另外,每一轉換入口均可包含一偏移狀態域(offset status field),其可指示出因為一目前轉換入口不可用而儲存到另一轉換入口的虛擬實體位
址轉換個數(亦即,流失個數域(escape number field)num_e),並可指示出該另一轉換入口距離該目前轉換入口的轉換入口個數(亦即,搜尋範圍域(search range field)ran_s)。關於該偏移狀態域的進一步的說明容後再敘。
請注意,以上僅供說明之需,並非用來作為本發明之限制。舉例來說,第一儲存空間310所包含之緩衝入口的個數並不限於8個,以及第二儲存空間320所包含之轉換入口的個數並不限於4個,此外,第二儲存空間320也可以採用更多路(亦即,三路以上)的存取方式。
請連同第3圖來參閱第4圖。第4圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖。於此實作範例中,第一儲存空間310與第二儲存空間320所對應之一虛擬實體位址轉換系統(未繪示於第4圖中)係接收一寫入指令(例如,無互鎖管線階段之微處理器的指令TLBWI/TLBWR),其指示出將一虛擬位址0x0000_8000與相對應之一實體位址0x9000_0000之間的一虛擬實體位址轉換,寫入/儲存於一轉換後備緩衝器入口表(亦即,第一儲存空間310)之中對應於緩衝索引IND(3)的緩衝入口。請注意,虛擬位址0x0000_8000/實體位址0x9000_0000係以16進位(亦即,「0x」)來表示之。
於此實作範例中,係以4千位元組(4kilobytes,4KB)作為一分頁(page)(但本發明並不限於此),因此,虛擬位址(例如,虛擬位址0x0000_8000)之第1~12個位元(自最小有效位元(least significant bit,LSB)算起)[11:0]係對應於一分頁的範圍,以及實體位址(例如,實體位址0x9000_0000)之第1~12個位元(自最小有效位元算起)[11:0]係對應於一分頁的範圍。虛擬位址之第13、14個位元[13:12]可用來表示可合併的分頁頁數,舉例來說(但本發明不限於此),由於虛擬位址之第13、14個位元[13:12]的位元數可形成4種位元樣式(bit pattern)「00」、「01」、「10」與「11」,故可將四個連續實體分頁合併為一合併頁。更具體地說,假若複數個虛擬位址0x0000_8000、0x0000_9000、0x0000_a000與0x0000_b000分別對應於複數個
實體位址0x9000_0000、0x9000_1000、0x9000_2000與0x9000_3000,則可將四個連續實體分頁(對應於複數個實體位址0x9000_0000、0x9000_1000、0x9000_2000與0x9000_3000;相對應之位元[13:12]的位元樣式分別為「00」、「01」、「10」與「11」)合併為一合併頁,並可將可將複數個實體位址0x9000_0000、0x9000_1000、0x9000_2000與0x9000_3000分別視為合併頁之中的第1~4分頁。
虛擬位址之第15、16個位元[15:14]可用來表示索引至虛擬實體位址轉換表(亦即,第二儲存空間320)的虛擬索引,舉例來說(但本發明不限於此),虛擬位址0x0000_8000(其位元[15:14]之位元樣式為「10」)可索引至對應於轉換索引idx(2)的轉換入口,換言之,可依據虛擬位址之一部份的位元(例如,虛擬位址0x0000_8000之第15、16個位元[15:14])來索引至與該部份位元之位元樣式相對應的轉換入口(例如,位元樣式「10」所對應的值為2,故可索引至轉換索引idx(2))。另外,虛擬位址之第17~32個位元[31:16]則可用來識別該虛擬位址的內容。
值得注意的是,由於此實作範例是以虛擬位址之中的兩個位元來作為一索引,故任何虛擬位址均可對應於第二儲存空間320所包含之複數個轉換入口的其中之一。換言之,第二儲存空間320所包含之複數個轉換入口係分別對應於依據一虛擬位址之一部份的位元(亦即,第15、16個位元[15:14])的位元數(亦即,2)所形成的複數個位元樣式(亦即,「00」、「01」、「10」與「11」)
於此實作範例中,當接收到將虛擬位址0x0000_8000之該虛擬實體位址轉換寫入一特定緩衝入口(對應於緩衝索引IND(3))之指令時,第一儲存空間310與第二儲存空間320所對應之處理電路(例如,依據第1圖所示之處理電路130或第2圖所示之處理電路230來實作之處理電路;未繪示於第4圖中)可依據虛擬位址0x0000_8000之位元[15:14](亦即,虛擬索引)來將該虛擬實體位址轉換儲存於一寫入轉換入口。更具體地說,該處理電路
首先可依據虛擬位址0x0000_8000之位元[15:14]的位元樣式(亦即,「10」)來索引至該複數個轉換入口之中的一轉換入口(亦即,對應於轉換索引idx(2)之轉換入口)以作為一目前所索引之轉換入口,其中轉換索引idx(2)係對應於虛擬位址0x0000_8000之位元[15:14]的位元樣式「10」,換言之,轉換索引idx(2)之索引值「2」係等於二進位數字「10」之值。
接下來,該處理電路可判斷該目前所索引之轉換入口是否可用,以產生一判斷結果,並依據該判斷結果來將該虛擬實體位址轉換儲存該寫入轉換入口。由第3圖可知,由於對應於轉換索引idx(2)之轉換入口並未儲存任何虛擬實體位址轉換,表示該目前所索引之轉換入口為可用,故可直接儲存虛擬位址0x0000_8000與實體位址0x9000_0000於其中,以完成將虛擬位址0x0000_8000之虛擬實體位址轉換儲存於該寫入轉換入口(亦即,對應於轉換索引idx(2)之轉換入口)的操作(如第4圖所示)。另外,有效位元域v1會設為「1」以表示有資料儲存於其中,實體分頁起始域pa_start1會設為「0x9000_0000」,以及多頁域mp1會設為「0x1」(亦即,實體位址0x9000_0000對應的分頁係為實體分頁起始域0x9000_0000之第1分頁)
再者,該處理電路另可將虛擬位址0x0000_8000與該寫入轉換入口所對應之一寫入轉換索引(亦即,轉換索引idx(2))儲存於該特定緩衝入口(對應於緩衝索引IND(3)),舉例來說,該特定緩衝入口的轉換索引域idx會被設為轉換索引idx(2)之索引值「2」,此外,該特定緩衝入口的有效位元域v會被設為「1」。
請連同第4圖來參閱第5圖。第5圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第5圖所示之位址轉換管理操作係接續第4圖所示之位址轉換管理操作。於此實作範例中,上述虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0000_9000與相對應之一實體位址0x8000_1000之間的一虛擬實體位址轉換寫入對應於緩衝索引IND(6)的緩衝入口。由於虛
擬位址0x0000_9000之位元[15:14](亦即,虛擬索引)之位元樣式也是「10」,故上述處理電路也會索引至對應轉換索引idx(2)之轉換入口以作為一目前所索引之轉換入口。由第4圖可知,該目前所索引之轉換入口於路W2的儲存槽並未儲存任何虛擬實體位址轉換(亦即,該目前所索引之轉換入口並未被佔滿(occupied)),其代表該目前所索引之轉換入口為可用,因此,上述處理電路可依據第4圖之相關說明所述之流程來分別將虛擬位址0x0000_9000與實體位址0x8000_1000儲存於虛擬位址域vaddr2與實體位址域paddr2。值得注意的是,由於實體位址0x8000_1000所對應的分頁係為實體分頁起始域0x8000_0000之第2分頁,故多頁域mp2可設為「0x2」(亦即,二進位格式「0010」)。其他與上述實作範例相仿之處在此便不再贅述。
請連同第5圖來參閱第6圖。第6圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第6圖所示之位址轉換管理操作係接續第5圖所示之位址轉換管理操作。於此實作範例中,上述虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0000_a000與相對應之一實體位址0x8000_2000之間的一虛擬實體位址轉換寫入對應於緩衝索引IND(1)的緩衝入口。由於虛擬位址0x0000_a000之位元[15:14]之位元樣式也是「10」,故上述處理電路也會索引至對應轉換索引idx(2)之轉換入口以作為一目前所索引之轉換入口。由第5圖可知,雖然該目前所索引之轉換入口所對應之儲存槽均已被佔滿,但是該處理電路仍可判斷虛擬位址0x0000_a000與實體位址0x8000_2000是否分別相鄰於儲存在該目前所索引之轉換入口之中的任一虛擬實體位址轉換所對應之虛擬位址與實體位址。由於虛擬位址0x0000_a000與實體位址0x8000_2000係分別相鄰於虛擬位址0x0000_9000與實體位址0x8000_1000(亦即,滿足合併分頁的條件),該處理電路仍會判斷該目前所索引之轉換入口為可用,並據以將虛擬位址0x0000_a000與實體位址0x8000_2000之虛擬實體位址轉換儲存於該目前所索引之轉換入口。
實作上,該處理電路可將多頁域mp2更新為「0x6」(如第6圖所示)以作為將虛擬位址0x0000_a000與實體位址0x8000_2000之虛擬實體位址轉換儲存於該目前所索引之轉換入口的操作結果。請注意,多頁域mp2更新為「0x6」代表了實體分頁起始域0x8000_0000之第2分頁(對應於實體位址0x8000_1000之位元[13:12]的位元樣式「01」)與第3分頁(對應於實體位址0x8000_2000之位元[13:12]的位元樣式「10」)被合併為一合併頁,其意味著虛擬位址0x0000_9000之虛擬實體位址轉換與虛擬位址0x0000_a000之虛擬實體位址轉換均儲存於對應轉換索引idx(2)之轉換入口之中。其他與上述實作範例相仿之處在此便不再贅述。
請連同第6圖來參閱第7圖。第7圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第7圖所示之位址轉換管理操作係接續第6圖所示之位址轉換管理操作。於此實作範例中,上述虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0010_8000與相對應之一實體位址0x8010_0000之間的一虛擬實體位址轉換寫入對應於緩衝索引IND(0)的緩衝入口。由於虛擬位址0x0010_8000之位元[15:14]之位元樣式也是「10」,故上述處理電路也會索引至對應轉換索引idx(2)之轉換入口以作為一目前所索引之轉換入口。由第6圖可知,該目前所索引之轉換入口所對應之儲存槽均已被佔滿,且虛擬位址0x0010_8000與實體位址0x8010_0000並未相鄰於儲存在該目前所索引之轉換入口之中的任一虛擬實體位址轉換所對應之虛擬位址與實體位址,因此,該處理電路會判斷該目前所索引之轉換入口不可用,該處理電路便索引至相鄰於該目前所索引之轉換入口的另一轉換入口(例如,對應於轉換索引idx(3)之轉換入口)以作為該目前所索引之轉換入口,並重複執行上述判斷該目前所索引之轉換入口是否可用的步驟(例如,該目前所索引之轉換入口是否被佔滿,或是否有相鄰之虛擬位址與實體位址),以產生該判斷結果。
由第6圖可知,由於對應於轉換索引idx(3)之轉換入口並未儲存
任何虛擬實體位址轉換,故該判斷結果會指示出該目前所索引之轉換入口可用。該處理電路便可將該目前所索引之轉換入口作為該寫入轉換入口,將虛擬位址0x0010_8000與實體位址0x8010_0000之虛擬實體位址轉換儲存該目前所索引之轉換入口。值得注意的是,該處理電路另更新對應於轉換索引idx(2)之轉換入口之偏移狀態域。實作上,該處理電路可將流失個數域num_e設為「1」以及將搜尋範圍域ran_s設為「1」(如第7圖所示),其中搜尋範圍域ran_s表示該目前所索引之轉換入口(亦即,對應於轉換索引idx(3)之轉換入口)距離原本欲儲存之轉換入口(亦即,對應於轉換索引idx(2)之轉換入口)的轉換入口個數為1,而流失個數域num_e「1」表示由於原本欲儲存之轉換入口不可用而儲存至其他所索引之轉換入口(亦即,該目前所索引之轉換入口;對應於轉換索引idx(3)之轉換入口)的虛擬實體位址轉換的個數為1。另外,由於虛擬位址0x0010_8000與實體位址0x8010_0000之虛擬實體位址轉換係儲存於對應於轉換索引idx(3)之轉換入口,因此,對應於緩衝索引IND(0)之緩衝入口的轉換索引域idx會設為3。
值得注意的是,以上轉換入口的選擇係僅供說明之需。於一設計變化中,當該判斷結果指示出該目前所索引之轉換入口(例如,對應於轉換索引idx(2)之轉換入口)不可用時,該處理電路也可以索引至其他相鄰的轉換入口(例如,對應於轉換索引idx(1)之轉換入口)以作為該目前所索引之轉換入口,並進行後續的操作。由上可知,相關的虛擬實體位址轉換可儲存在相鄰的轉換入口,故可大幅提昇系統運作效能。其他與上述實作範例相仿之處在此便不再贅述。
請連同第7圖來參閱第8圖。第8圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第8圖所示之位址轉換管理操作係接續第7圖所示之位址轉換管理操作。於此實作範例中,上述虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0000_c000與相對應之一實體位址0x0000_0000
之間的一虛擬實體位址轉換寫入對應於緩衝索引IND(2)的緩衝入口。由於虛擬位址0x0000_c000之位元[15:14]之位元樣式是「11」,故上述處理電路會索引至對應轉換索引idx(3)之轉換入口以作為一目前所索引之轉換入口。由第7圖可知,該目前所索引之轉換入口於路W2的儲存槽並未儲存任何虛擬實體位址轉換,因此,上述處理電路可依據第4圖之相關說明所述之流程來分別將虛擬位址0x0000_c000與實體位址0x0000_0000儲存於虛擬位址域vaddr2與實體位址域paddr2。其他與上述實作範例相仿之處在此便不再贅述。
請連同第8圖來參閱第9圖。第9圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第9圖所示之位址轉換管理操作係接續第8圖所示之位址轉換管理操作。於此實作範例中,上述虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0020_8000與相對應之一實體位址0x8020_0000之間的一虛擬實體位址轉換寫入對應於緩衝索引IND(4)的緩衝入口。由於虛擬位址0x0020_8000之位元[15:14]之位元樣式是「10」,故上述處理電路會索引至對應轉換索引idx(2)之轉換入口以作為一目前所索引之轉換入口。由第8圖可知,該目前所索引之轉換入口所對應之儲存槽均已被佔滿,且虛擬位址0x0020_8000與實體位址0x8020_0000並未相鄰於儲存在該目前所索引之轉換入口之中的任一虛擬實體位址轉換所對應之虛擬位址與實體位址,因此,該處理電路便可索引至相鄰於該目前所索引之轉換入口的另一轉換入口(例如,對應於轉換索引idx(3)之轉換入口)以作為該目前所索引之轉換入口。然而,由於對應於轉換索引idx(3)之轉換入口也被佔滿,且未滿足上述合併分頁的條件,因此,該處理電路再次索引至相鄰於該目前所索引之轉換入口之一轉換入口(亦即,對應於轉換索引idx(0)之轉換入口)。
由第8圖可知,由於對應於轉換索引idx(0)之轉換入口並未儲存任何虛擬實體位址轉換,故該處理電路便可將該目前所索引之轉換入口作為該寫入轉換入口,將虛擬位址0x0020_8000與實體位址0x8020_0000之虛擬
實體位址轉換儲存該目前所索引之轉換入口。相似地,該處理電路另將對應於轉換索引idx(2)之轉換入口之流失個數域num_e更新為「2」,以及將搜尋範圍域ran_s設為「2」(如第9圖所示)。其他與上述實作範例相仿之處在此便不再贅述。
請注意,以上僅供說明之需,並非用來作為本發明之限制。舉例來說,虛擬位址之中對應於分頁範圍、合併頁及/或虛擬索引的位元數可視實際設計需求來調整。另外,多頁域的實作方式並不限於上述實作範例,舉例來說,也可以僅用兩個位元之位元樣式(亦即,「00」、「01」、「10」、「11」)來示意4個分頁的頁數。再者,偏移狀態域的實作方式也不限於上述實作範例,舉例來說,偏移狀態域可儲存一個位元組(byte),其中前四個位元(自最小有效位元算起)可對應於搜尋範圍域ran_s,以及後四個位元可對應於流失個數域num_e。
除了寫入操作,本發明所提供之虛擬實體位址轉換系統亦可提昇查閱/讀出操作的運作效能。請再次參閱第9圖。於此實作範例中,當第一儲存空間310與第二儲存空間320所對應之虛擬實體位址轉換系統接收一讀出指令(其指示讀出一虛擬位址0x0020_8000所對應之一實體位址時,該處理電路可依據虛擬位址0x0020_8000之一部份的位元(例如,位元[15:14])以自第二儲存空間320讀出該實體位址。
舉例來說,該處理電路可依據虛擬位址0x0020_8000之位元[15:14]的位元樣式「10」來索引至對應於轉換索引idx(2)之一特定轉換入口。接下來,該處理電路可虛擬位址0x0020_8000與儲存於該特定轉換入口之中的複數個虛擬實體位址轉換所對應之複數個虛擬位址0x0000_8000、0x0000_9000與0x0000_a000作比較。當該特定轉換入口之中可找到虛擬位址0x0020_8000時,該處理電路便可自該特定轉換入口讀出該實體位址;當該處理電路並未於該特定轉換入口找到匹配的虛擬位址時,該處理電路另可參照該特定轉換入口之偏移狀態域,以自其他轉換入口讀出該實體位址。於此實作範例中,
由於該處理電路並未於該特定轉換入口找到虛擬位址0x0020_8000,故該處理電路便會參照該特定轉換入口之流失個數域num_e與搜尋範圍域ran_s來試著讀出該實體位址。
該特定轉換入口之流失個數域num_e係設為「2」,代表有2個虛擬實體位址轉換因該特定轉換入口不可用而儲存到至少一其他轉換入口,此外,該特定轉換入口之搜尋範圍域ran_s亦設為「2」,代表該至少一其他轉換入口之中距離該特定轉換入口最多的轉換入口個數為2。因此,該處理電路便可依序索引至對應於轉換索引idx(3)之轉換入口以及對應於轉換索引idx(0)之轉換入口,以檢查是否有匹配的虛擬位址。如此一來,該處理電路便可於對應於轉換索引idx(0)之轉換入口找到匹配的虛擬位址,並讀出該實體位址(亦即,實體位址0x8020_0000)。
於此實作範例中,當所接收之讀出指令係指示讀出一虛擬位址0x0020_c000所對應之一實體位址時,熟習技藝者經由上述相關說明應可了解該處理電路無法找到匹配的虛擬位址,因此,該處理電路可回報一轉換後備緩衝器錯失(TLB miss)。換言之,本發明所提供之虛擬實體位址轉換系統可相容與無互鎖管線階段的微處理器。
上述查閱操作可參閱第10圖所示之流程圖。第10圖係為本發明虛擬實體位址轉換系統的管理方法之一實施例的流程圖,其中該方法可用於查閱儲存於一儲存空間的一虛擬實體位址轉換(例如,於第9圖中,查閱儲存於第二儲存空間320之中虛擬位址0x0020_8000所對應之實體位址),並可簡單歸納如下:步驟1000:開始。
步驟1002:以該虛擬位址之一部份的位元作為一虛擬索引(例如,第9圖所示之虛擬位址0x0020_8000之位元[15:14]的位元樣式「10」)。
步驟1004:依據該虛擬索引來索引至對應於一特定轉換索引的一特定轉換入口(例如,對應於轉換索引idx(2)之轉換入口),其中該特定轉換
索引對應於該虛擬索引。
步驟1006:該儲存空間是否有儲存該虛擬位址所對應之一虛擬實體位址轉換?若有,執行步驟1008;反之,執行步驟1007。
步驟1007:增加該虛擬索引之索引值(例如,將該虛擬索引更新為位元樣式「11」),並判斷增加後的該虛擬索引之索引值(例如,3)與該虛擬位址之該部份的位元所對應之索引值(例如,對應於轉換索引idx(2)之索引值「2」)之間的差距是否大於該虛擬位址之該部份的位元所對應之轉換入口的一搜尋範圍域(例如,對應於轉換索引idx(2)之搜尋範圍域ran_s「2」)?若是,執行步驟1009;反之,執行步驟1004。
步驟1008:回傳該虛擬位址所對應之一實體位址。
步驟1009:回報一轉換後備緩衝器錯失。
步驟1010:結束。
以查閱第9圖所示之虛擬位址0x0020_8000所對應之實體位址為例,於步驟1007中,當該虛擬索引自位元樣式「10」更新為位元樣式「11」時,相對應之索引值也會自「2」更新為「3」,此外,另可將增加後的索引值「3」與轉換索引idx(2)之索引值「2」之間的差(亦即,「1」)與轉換索引idx(2)所對應之搜尋範圍域ran_s「2」作比較,來判斷是否要依據更新後的虛擬索引來進行後續的索引操作。若上述索引值之差小於(或等於)搜尋範圍域,其意味著更新後的虛擬索引所對應之轉換入口(對應於轉換索引idx(3))可能儲存了原本應該要儲存於對應轉換索引idx(2)之轉換入口的虛擬實體位址轉換,因此,可再次執行步驟1004。然而,若上述索引值之差大於搜尋範圍域,其意味著更新後的虛擬索引所對應之轉換入口(對應於轉換索引idx(3))並未儲存原本應該要儲存於對應轉換索引idx(2)之轉換入口的虛擬實體位址轉換,因此,可執行步驟1009以回報轉換後備緩衝器錯失。由於熟習技藝者經由閱讀第1圖~第9圖所示之相關說明之後,應可輕易了解第10圖所示之方法中每一步驟的操作細節,故進一步的說明在此便不再贅述。
另外,在依據一虛擬位址之一部份的位元來進行上述相關寫入操作之前,該處理電路另可檢查欲寫入之一特定緩衝入口是否可用。若該特定緩衝入口可用,則該處理電路可進行上述相關寫入操作:反之,若該特定緩衝入口不可用(例如,儲存一特定虛擬位址之一特定虛擬實體位址轉換),則該處理電路需先將儲存於該特定緩衝入口以及該第二儲存空間之中的該特定虛擬實體位址轉換刪除,接著再將該虛擬位址之虛擬實體位址轉換寫入。請連同第9圖來參閱第11圖。第11圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第11圖所示之位址轉換管理操作係接續第9圖所示之位址轉換管理操作。於此實作範例中,該虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0000_4000與相對應之一實體位址0x0000_0000之間的一虛擬實體位址轉換寫入一特定緩衝入口(亦即,對應於緩衝索引IND(0)的緩衝入口)。由第9圖可知,該特定緩衝入口已儲存虛擬位址0x0010_8000所對應之轉換資訊,因此,該處理電路需要先將儲存於第一儲存空間310與第二儲存空間320之中關於虛擬位址0x0010_8000所對應之一特定虛擬實體位址轉換刪除。
實作上,該處理電路可先將該特定緩衝入口所儲存之一特定轉換索引(亦即,轉換索引idx(3)之索引值「3」)以及虛擬位址0x0010_8000之一部份的位元(亦即,位元[15:14])進行比對,並據以刪除儲存於第一儲存空間310與第二儲存空間320之中的該特定虛擬實體位址轉換。
當該特定轉換索引係對應於虛擬位址0x0010_8000之位元[15:14]時,其意味著該特定虛擬實體位址轉換係儲存於原本預定的轉換入口,該處理電路可透過刪除第二儲存空間320之中該特定轉換索引所對應之一特定轉換入口所儲存的該特定虛擬實體位址轉換(例如,更新有效位元域、虛擬位址域、實體位址域、實體分頁起始域及/或多頁域)、刪除第一儲存空間310所儲存之虛擬位址0x0010_8000與該特定轉換索引,以及更新該特定緩衝入
口之有效位元域,來完成移除該特定虛擬實體位址轉換的操作。然而,於此實作範例中,由於該特定轉換索引並未對應於虛擬位址0x0010_8000之位元[15:14],其意味著該特定虛擬實體位址轉換並未儲存於原本預定的轉換入口,因此,該處理電路另會更新原本預定的轉換入口之偏移狀態域。如第11圖所示,儲存於對應於緩衝索引IND(0)之緩衝入口以及儲存於對應於轉換索引idx(3)之轉換入口的該特定虛擬實體位址轉換均已被移除,此外,該處理電路係將對應於轉換索引idx(2)之轉換入口的流失個數域num_e更新為「1」。
接下來,該處理電路便可將虛擬位址0x0000_4000與實體位址0x0000_0000之該虛擬實體位址轉換儲存於第一儲存空間310與第二儲存空間320之中(如第12圖所示)。由於熟習技藝者經由閱讀第3圖~第9圖的相關說明之後,應可了解儲存該虛擬實體位址轉換的操作細節,故進一步的說明在此便不再贅述。
請連同第12圖來參閱第13圖。第13圖係為於第3圖所示之第一儲存空間310與第二儲存空間320進行虛擬實體位址轉換操作的一實作範例的示意圖,其中第13圖所示之位址轉換管理操作係接續第12圖所示之位址轉換管理操作。於此實作範例中,該虛擬實體位址轉換系統係接收另一寫入指令,其指示將一虛擬位址0x0030_0000與相對應之一實體位址0x0000_0000之間的一虛擬實體位址轉換寫入一特定緩衝入口(亦即,對應於緩衝索引IND(4)的緩衝入口)。由第12圖可知,該特定緩衝入口已儲存虛擬位址0x0020_8000所對應之轉換資訊,因此,該處理電路需要先將儲存於第一儲存空間310與第二儲存空間320之中關於虛擬位址0x0020_8000所對應之一特定虛擬實體位址轉換刪除,接著再寫入虛擬位址0x0030_0000與實體位址0x0000_0000之間的虛擬實體位址轉換。值得注意的是,由於刪除虛擬位址0x0020_8000所對應之特定虛擬實體位址轉換的關係,該處理電路會將對應於轉換索引idx(2)之轉換入口的流失個數域num_e更新為「0」(如第13圖所示),其意味著對應於轉換索引idx(2)之轉換入口已經沒有流失的位址轉換對
應了,因此,該處理電路也會將對應於轉換索引idx(2)之轉換入口的搜尋範圍域ran_s更新為「0」。由於熟習技藝者經由閱讀第3圖~第12圖的相關說明之後,應可了解儲存該虛擬實體位址轉換的操作細節,故進一步的說明在此便不再贅述。
請一併參閱第9圖、第11圖、第12圖以及第14圖。第14圖係為本發明虛擬實體位址轉換系統的管理方法之一實施例的流程圖,其中該方法係用於虛擬實體位址轉換的寫入操作(例如,於第9圖、第11圖以及第12圖所示之實作範例中,將虛擬位址0x0000_4000之虛擬實體位址轉換寫入/儲存對應於緩衝索引IND(0)的緩衝入口)。該方法可簡單歸納如下:步驟1400:開始。
步驟1402:以一第一虛擬位址之一部份的位元(例如,虛擬位址0x0000_4000之位元[15:14]的位元)作為一第一轉換索引(亦即,一虛擬索引)。
步驟1404:讀取將要被覆寫的一特定緩衝入口(例如,對應於緩衝索引IND(0)的緩衝入口),以得到該特定緩衝入口所儲存之一第二轉換索引(例如,具有索引值「3」之轉換索引)。
步驟1406:刪除該第二轉換索引所對應之一第二轉換入口(例如,第二儲存空間320之中對應於轉換索引idx(3)之轉換入口)所儲存之一第二虛擬實體位址轉換。
步驟1407:依據該第一轉換索引來索引至對應於一特定轉換索引的一特定轉換入口(例如,第二儲存空間320之中對應於轉換索引idx(1)之轉換入口),其中該特定轉換索引對應於該第一轉換索引。
步驟1408:判斷該特定轉換入口是否有可用的路。若有,執行步驟1410;反之,執行步驟1409。
步驟1409:增加該第一轉換索引之索引值。
步驟1410:將該第一虛擬位址之一第一虛擬實體位址轉換寫入一
第二儲存空間(例如,將虛擬位址0x0000_4000之虛擬實體位址轉換寫入對應於轉換索引idx(1)之轉換入口)。
步驟1412:更新一第一儲存空間(例如,將虛擬位址0x0000_4000之虛擬實體位址轉換寫入對應於緩衝索引IND(0)的緩衝入口)。
步驟1414:結束。
由於熟習技藝者經由閱讀第1圖~第13圖所示之相關說明之後,應可輕易了解第14圖所示之方法中每一步驟的操作細節,故進一步的說明在此便不再贅述。
200‧‧‧虛擬實體位址轉換系統
210‧‧‧第一儲存空間
220‧‧‧第二儲存空間
230‧‧‧處理電路
224‧‧‧虛擬位址表
226‧‧‧實體位址表
234‧‧‧比較器
236‧‧‧選擇器
Tx‧‧‧轉換入口
I‧‧‧虛擬索引
VA、VAx1~VAx8‧‧‧虛擬位址
PA、PAx1~PAx8‧‧‧實體位址
Claims (36)
- 一種虛擬實體位址轉換系統的管理方法,包含:提供一第一儲存空間,其中該第一儲存空間包含複數個緩衝入口(entry);提供一第二儲存空間,其中該第二儲存空間包含複數個轉換入口,以及該複數個轉換入口係對應於複數個轉換索引;以及當接收一寫入指令以將一第一虛擬實體位址轉換寫入該複數個緩衝入口之一特定緩衝入口時,依據該第一虛擬實體位址轉換所對應之一第一虛擬位址之一第一部份的位元來將該第一虛擬實體位址轉換儲存於該複數個轉換入口之中的一寫入轉換入口,以及將該第一虛擬位址與該寫入轉換入口所對應之一寫入轉換索引儲存於該特定緩衝入口。
- 如申請專利範圍第1項所述之方法,其中將該第一虛擬實體位址轉換儲存於該寫入轉換入口的步驟包含:依據該第一虛擬位址之該第一部份的位元來將該第一虛擬位址與該第一虛擬位址相對應之一第一實體位址儲存於該寫入轉換入口。
- 如申請專利範圍第1項所述之方法,其中該複數個轉換入口之至少其一包含複數個儲存槽(slot),以及該複數個儲存槽用以儲存複數個虛擬實體位址轉換。
- 如申請專利範圍第1項所述之方法,其中該複數個轉換索引係分別對應於依據該第一虛擬位址之該第一部份的位元之位元數所形成的複數個位元樣式(bit pattern)。
- 如申請專利範圍第4項所述之方法,其中將該第一虛擬實體位址轉換儲存於該寫入轉換入口的步驟包含:依據該第一虛擬位址之該第一部份的位元之位元樣式來索引至該複數個轉換入口之中的一第一轉換入口以作為一目前所索引之轉換入口,其中該第一轉換入口之一第一轉換索引係對應於該第一部份的位元之位 元樣式;以及判斷該目前所索引之轉換入口是否可用,以產生一判斷結果;以及依據該判斷結果來將該第一虛擬實體位址轉換儲存至該寫入轉換入口。
- 如申請專利範圍第5項所述之方法,其中當該判斷結果指示出該目前所索引之轉換入口可用時,依據該判斷結果來將該第一虛擬實體位址轉換儲存該寫入轉換入口的步驟包含:以該目前所索引之轉換入口作為該寫入轉換入口,並將該第一虛擬實體位址轉換儲存至該目前所索引之轉換入口。
- 如申請專利範圍第5項所述之方法,其中判斷該目前所索引之轉換入口是否可用的步驟包含:判斷該目前所索引之轉換入口是否已佔滿;其中當該目前所索引之轉換入口未佔滿時,該判斷結果係指示出該目前所索引之轉換入口為可用。
- 如申請專利範圍第7項所述之方法,其中判斷該目前所索引之轉換入口是否可用的步驟另包含:當該目前所索引之轉換入口已佔滿時,判斷該第一虛擬位址與該第一實體位址是否分別相鄰於儲存於該目前所索引之轉換入口之中的一第二虛擬實體位址轉換所對應之一第二虛擬位址與一第二實體位址;其中當該第一虛擬位址與該第一實體位址分別相鄰於該第二虛擬位址與該第二實體位址時,該判斷結果係指示出該目前所索引之轉換入口為可用。
- 如申請專利範圍第8項所述之方法,其中該目前所索引之轉換入口包含一多頁域(multi-page field),以及當該判斷結果指示出該目前所索引之轉換入口為可用時,依據該判斷結果來將該第一虛擬實體位址轉換儲存該寫入轉換入口的步驟包含:透過更新該多頁域來作為將該第一虛擬實體位址轉換儲存於該目前所索 引之轉換入口的操作結果,其中該目前所索引之轉換入口係為該寫入轉換入口。
- 如申請專利範圍第9項所述之方法,其中透過更新該多頁域來作為將該第一虛擬實體位址轉換儲存於該目前所索引之轉換入口的操作結果的步驟包含:依據該第一虛擬位址之一第二部份的位元於該第一實體位址之中所對應的位元、該第二虛擬位址之一第二部份的位元於該第二實體位址之中所對應的位元來更新該多頁域,使該多頁域指示出該第一實體位址與該第二實體位址所分別對應的頁數;其中該第一虛擬位址之該第二部份的位元於該第一虛擬位址之中的位置係相同於該第二虛擬位址之該第二部份的位元於該第二虛擬位址之中的位置。
- 如申請專利範圍第5項所述之方法,其中當該判斷結果指示出該目前所索引之轉換入口不可用時,依據該第一虛擬實體位址轉換所對應之該第一虛擬位址之該第一部份的位元來將該第一虛擬實體位址轉換儲存於該複數個轉換入口之中的該寫入轉換入口的步驟另包含:索引至相鄰於該目前所索引之轉換入口的一第二轉換入口以作為該目前所索引之轉換入口,並重複執行判斷該目前所索引之轉換入口是否可用以產生該判斷結果的步驟。
- 如申請專利範圍第11項所述之方法,其中每一轉換入口包含一偏移狀態域;在重複執行判斷該目前所索引之轉換入口是否可用的步驟之後,該判斷結果指示出該目前所索引之轉換入口可用時,依據該判斷結果來將該第一虛擬實體位址轉換儲存該寫入轉換入口的步驟包含:以該目前所索引之轉換入口作為該寫入轉換入口來將該第一虛擬實體位址轉換儲存該目前所索引之轉換入口,並更新該第一轉換入口所對應之偏移狀態域,其中更新後之該偏移狀態域係指示出該目前所索引之 轉換入口距離該第一轉換入口的轉換入口個數,並指示出由於該第一轉換入口不可用而儲存至該目前所索引之轉換入口的虛擬實體位址轉換個數。
- 如申請專利範圍第1項所述之方法,其中當接收該寫入指令以將該第一虛擬實體位址轉換寫入該複數個緩衝入口之該特定緩衝入口時,該方法另包含:檢查該特定緩衝入口是否可用;以及當該特定緩衝入口已儲存一特定轉換索引以及一特定虛擬位址時,在將該第一虛擬實體位址轉換儲存於該寫入轉換入口之前,比對該特定轉換索引以及該特定虛擬位址之一第一部份的位元,並據以刪除儲存於該第一儲存空間與該第二儲存空間之中該特定虛擬位址所對應之一特定虛擬實體位址轉換,其中該特定虛擬位址之該第一部份的位元於該特定虛擬位址之中的位置係相同於該第一虛擬位址之該第一部份的位元於該第一虛擬位址之中的位置。
- 如申請專利範圍第13項所述之方法,其中刪除儲存於該第一儲存空間與該第二儲存空間之中該特定虛擬位址所對應之該特定虛擬實體位址轉換的步驟包含:刪除該第二儲存空間之中該特定轉換索引所對應之一特定轉換入口所儲存之該特定虛擬實體位址轉換;以及刪除該第一儲存空間所儲存之該特定虛擬位址以及該特定轉換索引。
- 如申請專利範圍第14項所述之方法,其中該特定虛擬位址之該第一部份的位元係對應於該複數個轉換入口之中的一第一轉換入口,該第一轉換索引所對應之一第一轉換入口包含一偏移狀態域;該偏移狀態域係指示出由於該第一轉換入口不可用而儲存到至少一第二轉換入口的至少一虛擬實體位址轉換的個數,以及指示出該至少一第二轉換入口距離該第一轉換入口的轉換入口個數;以及當該特定轉換索引並未對應於該特定虛擬位址之 該第一部份的位元時,刪除儲存於該第一儲存空間與該第二儲存空間之中該特定虛擬位址所對應之該特定虛擬實體位址轉換的步驟另包含:更新該第一轉換入口之該偏移狀態域。
- 一種虛擬實體位址轉換系統的管理方法,包含:提供一儲存空間,其中該儲存空間包含複數個轉換入口,該複數個轉換入口係儲存至少一虛擬實體位址轉換,並分別對應於複數個轉換索引;以及當接收一讀出指令以讀出一虛擬位址所對應之一實體位址時,依據該虛擬位址之一部份的位元以自該儲存空間讀出該實體位址。
- 如申請專利範圍第16項所述之方法,其中依據該虛擬位址之該部份的位元以自該儲存空間讀出該實體位址步驟的包含:索引至該複數個轉換入口之中的一特定轉換入口,其中該特定轉換入口之一特定轉換索引係對應於該虛擬位址之該部份的位元;以及將該虛擬位址與儲存於該特定轉換入口之中的至少一虛擬實體位址轉換之至少一虛擬位址作比較,並據以讀出該實體位址。
- 如申請專利範圍第17項所述之方法,其中該特定轉換入口包含一偏移狀態域;該偏移狀態域係指示出由於該特定轉換入口不可用而儲存到至少一其他轉換入口的至少一虛擬實體位址轉換的個數,以及指示出該至少一轉換入口距離該特定轉換入口的轉換入口個數;以及當該特定轉換入口之中並未儲存該虛擬位址時,自該儲存空間讀出該實體位址的步驟包含:依據該偏移狀態域來自該至少一其他轉換入口讀出該實體位址。
- 一種虛擬實體位址轉換系統,包含:一第一儲存空間,包含複數個緩衝入口;一第二儲存空間,包含複數個轉換入口,該複數個轉換入口係分別對應於複數個轉換索引;以及一處理電路,耦接於該第一儲存空間以及該第二儲存空間,其中當該系統 接收一寫入指令以將一第一虛擬實體位址轉換寫入該複數個緩衝入口之中的一特定緩衝入口時,該處理電路係依據該第一虛擬實體位址轉換所對應之一第一虛擬位址之一第一部份的位元來將該第一虛擬實體位址轉換儲存於該複數個轉換入口之中的一寫入轉換入口,以及將該第一虛擬位址與該寫入轉換入口所對應之一寫入轉換索引儲存於該特定緩衝入口。
- 如申請專利範圍第19項所述之系統,其中該處理電路係依據該第一虛擬位址之該第一部份的位元來將該第一虛擬位址與該第一虛擬位址相對應之一第一實體位址儲存於該寫入轉換入口,以將該第一虛擬實體位址轉換儲存於該寫入轉換入口。
- 如申請專利範圍第19項所述之系統,其中該複數個轉換入口之至少其一包含複數個儲存槽(slot),以及該複數個儲存槽用以儲存複數個虛擬實體位址轉換。
- 如申請專利範圍第19項所述之系統,其中該複數個轉換索引係分別對應於依據該第一虛擬位址之該第一部份的位元之位元數所形成的複數個位元樣式(bit pattern)。
- 如申請專利範圍第22項所述之系統,其中該處理電路係用以:依據該第一虛擬位址之該第一部份的位元之位元樣式來索引至該複數個轉換入口之中的一第一轉換入口以作為一目前所索引之轉換入口,其中該第一轉換入口之一第一轉換索引係對應於該第一部份的位元之位元樣式;判斷該目前所索引之轉換入口是否可用,以產生一判斷結果;以及依據該判斷結果來將該第一虛擬實體位址轉換儲存該寫入轉換入口。
- 如申請專利範圍第23項所述之系統,其中當該判斷結果指示出該目前所索引之轉換入口可用時,該處理電路係以該目前所索引之轉換入口作為該寫入轉換入口,並將該第一虛擬實體位址轉換儲存至該目前所索引之轉換 入口。
- 如申請專利範圍第23項所述之系統,其中該處理電路透過檢查該目前所索引之轉換入口是否已佔滿來判斷該目前所索引之轉換入口是否可用;以及當該目前所索引之轉換入口未佔滿時,該判斷結果係指示出該目前所索引之轉換入口為可用。
- 如申請專利範圍第25項所述之系統,其中當該目前所索引之轉換入口已佔滿時,該處理電路另判斷該第一虛擬位址與該第一實體位址是否分別相鄰於儲存於該目前所索引之轉換入口之中的一第二虛擬實體位址轉換所對應之一第二虛擬位址與一第二實體位址;以及當該第一虛擬位址與該第一實體位址分別相鄰於該第二虛擬位址與該第二實體位址時,該判斷結果係指示出該目前所索引之轉換入口為可用。
- 如申請專利範圍第26項所述之系統,其中該目前所索引之轉換入口包含一多頁域(multi-page field);當該判斷結果指示出該目前所索引之轉換入口為可用時,該處理電路透過更新該多頁域來作為將該第一虛擬實體位址轉換儲存於該目前所索引之轉換入口的操作結果,其中該目前所索引之轉換入口係為該寫入轉換入口。
- 如申請專利範圍第27項所述之系統,其中該處理電路係依據該第一虛擬位址之一第二部份的位元於該第一實體位址之中所對應的位元、該第二虛擬位址之一第二部份的位元於該第二實體位址之中所對應的位元來更新該多頁域,使該多頁域指示出該第一實體位址與該第二實體位址所分別對應的頁數,其中該第一虛擬位址之該第二部份的位元於該第一虛擬位址之中的位置係相同於該第二虛擬位址之該第二部份的位元於該第二虛擬位址之中的位置。
- 如申請專利範圍第23項所述之系統,其中當該判斷結果指示出該目前所索引之轉換入口不可用時,該處理電路係索引至相鄰於該目前所索引之轉換入口的一第二轉換入口以作為該目前所索引之轉換入口,並重複判斷該 目前所索引之轉換入口是否可用,以產生該判斷結果。
- 如申請專利範圍第29項所述之系統,其中每一轉換入口包含一偏移狀態域;在重複判斷該目前所索引之轉換入口是否可用之後,該判斷結果指示出該目前所索引之轉換入口可用時,該處理電路係以該目前所索引之轉換入口作為該寫入轉換入口來將該第一虛擬實體位址轉換儲存該目前所索引之轉換入口,並更新該第一轉換入口所對應之偏移狀態域;以及更新後之該偏移狀態域係指示出該目前所索引之轉換入口距離該第一轉換入口的轉換入口個數,並指示出由於該第一轉換入口不可用而儲存至該目前所索引之轉換入口的虛擬實體位址轉換個數。
- 如申請專利範圍第19項所述之系統,其中該處理電路另檢查該特定緩衝入口是否可用;以及當該特定緩衝入口已儲存一特定轉換索引以及一特定虛擬位址時,在將該第一虛擬實體位址轉換儲存於該寫入轉換入口之前,該處理電路另用以:比對該特定轉換索引以及該特定虛擬位址之一第一部份的位元,並據以刪除儲存於該第一儲存空間與該第二儲存空間之中該特定虛擬位址所對應之一特定虛擬實體位址轉換,其中該特定虛擬位址之該第一部份的位元於該特定虛擬位址之中的位置係相同於該第一虛擬位址之該第一部份的位元於該第一虛擬位址之中的位置。
- 如申請專利範圍第31項所述之系統,其中該處理電路係刪除該第二儲存空間之中該特定轉換索引所對應之一特定轉換入口所儲存之該特定虛擬實體位址轉換,以及刪除該第一儲存空間所儲存之該特定虛擬位址以及該特定轉換索引。
- 如申請專利範圍第32項所述之系統,其中該特定虛擬位址之該第一部份的位元係對應於該複數個轉換入口之中的一第一轉換入口,該第一轉換索引所對應之一第一轉換入口包含一偏移狀態域;該偏移狀態域係指示出由於該第一轉換入口不可用而儲存到至少一第二轉換入口的至少一虛擬實 體位址轉換的個數,以及指示出該至少一第二轉換入口距離該第一轉換入口的轉換入口個數;以及當該特定轉換索引並未對應於該特定虛擬位址之該第一部份的位元時,該處理電路另更新該第一轉換入口之該偏移狀態域。
- 一種用於虛擬實體位址轉換的系統,包含:一儲存空間,包含複數個轉換入口,該複數個轉換入口係儲存至少一虛擬實體位址轉換,並分別對應於複數個轉換索引;以及一處理電路,耦接於該儲存空間,其中當該系統接收一讀出指令以讀出一虛擬位址所對應之一實體位址時,該處理電路係依據該虛擬位址之一部份的位元以自該儲存空間讀出該實體位址。
- 如申請專利範圍第34項所述之系統,其中該處理電路係用以:索引至該複數個轉換入口之中的一特定轉換入口,其中該特定轉換入口之一特定轉換索引係對應於該虛擬位址之該部份的位元;以及將該虛擬位址與儲存於該特定轉換入口之中的至少一虛擬實體位址轉換之至少一虛擬位址作比較,並據以讀出該實體位址。
- 如申請專利範圍第35項所述之系統,其中該特定轉換入口包含一偏移狀態域;該偏移狀態域係指示出由於該特定轉換入口不可用而儲存到至少一其他轉換入口的至少一虛擬實體位址轉換的個數,以及指示出該至少一轉換入口距離該特定轉換入口的轉換入口個數;以及當該特定轉換入口之中並未儲存該虛擬位址時,該處理電路係依據該偏移狀態域來自該至少一其他轉換入口讀出該實體位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102143294A TWI489279B (zh) | 2013-11-27 | 2013-11-27 | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
US14/547,110 US9824023B2 (en) | 2013-11-27 | 2014-11-18 | Management method of virtual-to-physical address translation system using part of bits of virtual address as index |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102143294A TWI489279B (zh) | 2013-11-27 | 2013-11-27 | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201520767A TW201520767A (zh) | 2015-06-01 |
TWI489279B true TWI489279B (zh) | 2015-06-21 |
Family
ID=53183694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102143294A TWI489279B (zh) | 2013-11-27 | 2013-11-27 | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9824023B2 (zh) |
TW (1) | TWI489279B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016012382A (ja) * | 2014-06-27 | 2016-01-21 | ソニー株式会社 | 情報処理装置と情報処理方法およびプログラム |
US9652402B2 (en) * | 2014-12-23 | 2017-05-16 | Texas Instruments Incorporated | Hiding page translation miss latency in program memory controller by next page prefetch on crossing page boundary |
US10990537B1 (en) | 2020-01-07 | 2021-04-27 | International Business Machines Corporation | Logical to virtual and virtual to physical translation in storage class memory |
CN113297105B (zh) * | 2021-05-08 | 2024-01-09 | 阿里巴巴新加坡控股有限公司 | 一种转换地址的缓存处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115611A1 (en) * | 1997-11-26 | 2003-06-19 | Hilts Paul John | Method and apparatus for bit vector array |
US20090172348A1 (en) * | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
TW201337557A (zh) * | 2011-12-22 | 2013-09-16 | Intel Corp | 索引化頁面位址之轉譯以降低在虛擬化環境中記憶體使用量的技術 |
TW201346754A (zh) * | 2011-12-23 | 2013-11-16 | Intel Corp | 執行將寫入罩暫存器轉換成向量暫存器中的索引值列表的系統、裝置及方法 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
JPH0887451A (ja) * | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | アドレス変換を管理する方法およびアドレス変換マネージャ |
JP3713312B2 (ja) * | 1994-09-09 | 2005-11-09 | 株式会社ルネサステクノロジ | データ処理装置 |
US5928352A (en) * | 1996-09-16 | 1999-07-27 | Intel Corporation | Method and apparatus for implementing a fully-associative translation look-aside buffer having a variable numbers of bits representing a virtual address entry |
KR19980032776A (ko) * | 1996-10-16 | 1998-07-25 | 가나이 츠토무 | 데이타 프로세서 및 데이타 처리시스템 |
US6332165B1 (en) * | 1997-09-05 | 2001-12-18 | Sun Microsystems, Inc. | Multiprocessor computer system employing a mechanism for routing communication traffic through a cluster node having a slice of memory directed for pass through transactions |
US6014737A (en) * | 1997-11-19 | 2000-01-11 | Sony Corporation Of Japan | Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity |
US6212613B1 (en) * | 1999-03-22 | 2001-04-03 | Cisco Technology, Inc. | Methods and apparatus for reusing addresses in a computer |
US6519684B1 (en) * | 1999-11-23 | 2003-02-11 | Motorola, Inc. | Low overhead method for selecting and updating an entry in a cache memory |
US6889296B2 (en) * | 2001-02-20 | 2005-05-03 | International Business Machines Corporation | Memory management method for preventing an operating system from writing into user memory space |
US7363389B2 (en) * | 2001-03-29 | 2008-04-22 | Intel Corporation | Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine |
US20020144078A1 (en) * | 2001-03-30 | 2002-10-03 | Siroyan Limited | Address translation |
US6684305B1 (en) * | 2001-04-24 | 2004-01-27 | Advanced Micro Devices, Inc. | Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence |
US6854046B1 (en) * | 2001-08-03 | 2005-02-08 | Tensilica, Inc. | Configurable memory management unit |
US6941442B2 (en) * | 2002-08-02 | 2005-09-06 | Arm Limited | Entry lockdown within a translation lookaside buffer mechanism |
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
US7243208B2 (en) * | 2003-08-13 | 2007-07-10 | Renesas Technology Corp. | Data processor and IP module for data processor |
US7188229B2 (en) * | 2004-01-17 | 2007-03-06 | Sun Microsystems, Inc. | Method and apparatus for memory management in a multi-processor computer system |
US20060004941A1 (en) * | 2004-06-30 | 2006-01-05 | Shah Hemal V | Method, system, and program for accessesing a virtualized data structure table in cache |
US7930514B2 (en) * | 2005-02-09 | 2011-04-19 | International Business Machines Corporation | Method, system, and computer program product for implementing a dual-addressable cache |
US7805588B2 (en) * | 2005-10-20 | 2010-09-28 | Qualcomm Incorporated | Caching memory attribute indicators with cached memory data field |
US7991960B2 (en) * | 2006-10-11 | 2011-08-02 | Arm Limited | Adaptive comparison control in a data store |
US8645666B2 (en) * | 2006-12-28 | 2014-02-04 | Intel Corporation | Means to share translation lookaside buffer (TLB) entries between different contexts |
US8631206B1 (en) * | 2007-09-21 | 2014-01-14 | Marvell International Ltd. | Way-selecting translation lookaside buffer |
CN101178701B (zh) | 2007-12-11 | 2010-07-21 | 华为技术有限公司 | 一种多处理器间通信的方法及系统 |
US8549254B2 (en) * | 2007-12-31 | 2013-10-01 | Intel Corporation | Using a translation lookaside buffer in a multiple stage memory address translation structure to manage protected microcontexts |
US8151084B2 (en) * | 2008-01-23 | 2012-04-03 | Oracle America, Inc. | Using address and non-address information for improved index generation for cache memories |
WO2009142631A1 (en) * | 2008-05-21 | 2009-11-26 | Hewlett-Packard Development Company, L.P. | Translation look-aside buffer |
JP5300407B2 (ja) | 2008-10-20 | 2013-09-25 | 株式会社東芝 | 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法 |
CN101751345B (zh) * | 2008-12-10 | 2012-04-11 | 国际商业机器公司 | 在主机中运行客户机的程序的模拟器和模拟方法 |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
US20130024647A1 (en) * | 2011-07-20 | 2013-01-24 | Gove Darryl J | Cache backed vector registers |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US9465748B2 (en) * | 2011-12-30 | 2016-10-11 | Advanced Micro Devices, Inc. | Instruction fetch translation lookaside buffer management to support host and guest O/S translations |
US9323691B2 (en) * | 2012-03-08 | 2016-04-26 | Freescale Semiconductor, Inc. | Multiple page size memory management unit |
TWI475385B (zh) * | 2012-03-14 | 2015-03-01 | Phison Electronics Corp | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 |
US9092359B2 (en) * | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
US20140108766A1 (en) * | 2012-10-17 | 2014-04-17 | Advanced Micro Devices, Inc. | Prefetching tablewalk address translations |
US20140281366A1 (en) * | 2013-03-15 | 2014-09-18 | Cognitive Electronics, Inc. | Address translation in a system using memory striping |
CN104239238B (zh) * | 2013-06-21 | 2018-01-19 | 格芯公司 | 用于管理转换旁视缓冲的方法和装置 |
-
2013
- 2013-11-27 TW TW102143294A patent/TWI489279B/zh active
-
2014
- 2014-11-18 US US14/547,110 patent/US9824023B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030115611A1 (en) * | 1997-11-26 | 2003-06-19 | Hilts Paul John | Method and apparatus for bit vector array |
US20090172348A1 (en) * | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
TW201337557A (zh) * | 2011-12-22 | 2013-09-16 | Intel Corp | 索引化頁面位址之轉譯以降低在虛擬化環境中記憶體使用量的技術 |
TW201346754A (zh) * | 2011-12-23 | 2013-11-16 | Intel Corp | 執行將寫入罩暫存器轉換成向量暫存器中的索引值列表的系統、裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150149743A1 (en) | 2015-05-28 |
TW201520767A (zh) | 2015-06-01 |
US9824023B2 (en) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4064380B2 (ja) | 演算処理装置およびその制御方法 | |
US9086988B2 (en) | Identification and consolidation of page table entries | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
US10997078B2 (en) | Method, apparatus, and non-transitory readable medium for accessing non-volatile memory | |
TWI489279B (zh) | 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法 | |
JP2014078248A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
WO2016082191A1 (zh) | 访问文件的方法和装置 | |
WO2018027839A1 (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
US11334499B2 (en) | Method for locating metadata | |
CN111832065A (zh) | 使用电路实现的软件和用于密钥-值存储的方法 | |
CN108062357B (zh) | F2fs文件系统的删除文件恢复方法及存储介质 | |
JP2020523676A (ja) | 仮想キャッシュのための変換支援 | |
JP2020523682A (ja) | 仮想キャッシュにおける仮想および実変換の共有 | |
CN111352865B (zh) | 存储控制器的写缓存 | |
CN107766259B (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
US8527736B1 (en) | Systems and methods for improving address translation speed | |
CN110362509B (zh) | 统一地址转换方法与统一地址空间 | |
US9740628B2 (en) | Page table entry consolidation | |
US10120813B2 (en) | Address translation | |
CN104699633A (zh) | 虚拟物理地址转换系统及其管理方法 | |
CN116974472A (zh) | 面向存储架构的重复数据删除方法、装置及可读介质 |