TWI627533B - 提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體 - Google Patents
提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI627533B TWI627533B TW105113591A TW105113591A TWI627533B TW I627533 B TWI627533 B TW I627533B TW 105113591 A TW105113591 A TW 105113591A TW 105113591 A TW105113591 A TW 105113591A TW I627533 B TWI627533 B TW I627533B
- Authority
- TW
- Taiwan
- Prior art keywords
- partition
- partitions
- tcpid
- translation
- cache
- 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/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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/109—Address translation 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/12—Replacement control
-
- 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/1028—Power efficiency
-
- 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/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- 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/50—Control mechanisms for virtual memory, cache or 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/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of 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/70—Details relating to dynamic memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
提供記憶體管理單元(MMU)分割之轉譯快取,及其相關設備、方法及電腦可讀媒體。就此而言,在一個態樣中,提供一種包含一MMU之設備。該MMU包含一轉譯快取,其提供定義位址轉譯映射之複數個轉譯快取項目。該MMU進一步包含一分割區描述符表,其提供定義對應複數個分割區之複數個分割區描述符,該對應複數個分割區中之每一者包含該複數個轉譯快取項目之一或多個轉譯快取項目。該MMU亦包含一分割區轉譯電路,其經組態以自一請求器接收一記憶體存取請求。該分割區轉譯電路經進一步組態以判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID)、基於該TCPID而識別該複數個分割區之一或多個分割區,及對該一或多個分割區之一轉譯快取項目執行該記憶體存取請求。
Description
本發明之技術大體上係關於由記憶體管理單元(MMU)提供之轉譯快取。
虛擬記憶體係由最現代計算系統提供之記憶體管理技術。使用虛擬記憶體,計算系統之中央處理單元(CPU)或周邊裝置可使用經映射至實體記憶體空間內之實體記憶體位址的虛擬記憶體位址來存取記憶體緩衝器。以此方式,CPU或周邊裝置可能夠定址比以其他方式可定址大的實體位址空間,及/或可利用實際上在實體記憶體空間中實體上不連續的記憶體緩衝器之連續呈現。
習知地,經由將記憶體管理單元(MMU)用於虛擬記憶體位址至實體記憶體位址之轉譯來實施虛擬記憶體。MMU可整合至計算系統之CPU(CPU MMU),或可包含提供周邊裝置之記憶體管理功能(系統MMU,或SMMU)的單獨電路。在習知操作中,MMU自「上游」裝置接收記憶體存取請求,作為非限制性實例,「上游」裝置諸如直接記憶體存取(DMA)代理、視訊加速器及/或顯示器引擎。對於每一記憶
體存取請求,MMU將包括於記憶體存取請求中之虛擬記憶體位址轉譯為實體記憶體位址,且該記憶體存取請求隨後係使用經轉譯實體記憶體位址進行處理。
因為可能需要MMU在短時間間隔內反覆轉譯同一虛擬記憶體位址,所以可藉由快取MMU內的位址轉譯資料來改良MMU及計算系統整體之效能。就此而言,MMU可包括被稱為轉譯快取之結構(亦被稱作轉譯後援緩衝器或TLB)。轉譯快取提供轉譯快取項目,先前產生之虛擬至實體記憶體位址轉譯映射可儲存於該等轉譯快取項目中以供稍後存取。若MMU隨後接收用以轉譯儲存於轉譯快取中之虛擬記憶體位址的請求,則MMU可自轉譯快取擷取對應實體記憶體位址,而非再轉譯虛擬記憶體位址。
然而,在MMU將位址轉譯服務提供給多個上游裝置的情境下,可能失去經由使用轉譯快取達成之效能優勢。因為上游裝置必須共用MMU之轉譯快取的資源,所以對有限數目個轉譯快取項目之競爭可導致「輾轉現象(thrashing)」,其中兩個或兩個以上上游裝置為有利於自身而反覆地收回彼此之轉譯快取項目。在最差情況情境中,由輾轉現象產生之額外負擔可抵消快取之優勢。較大轉譯快取可減輕針對轉譯快取項目之裝置間競爭的效應,但亦可產生增大之功率消耗及較大之實體佔據面積。
實施方式中所揭示之態樣包括提供記憶體管理單元(MMU)分割之轉譯快取,及其相關設備、方法及電腦可讀媒體。就此而言,MMU經提供用於啟用轉譯快取分割。該MMU包括提供轉譯快取項目之一轉譯快取,該等轉譯快取項目中之每一者儲存由一先前位址轉譯操作判定之一虛擬至實體位址映射。為啟用分割,該MMU提供一分割區描述符表,且視情況提供一分割區再映射表及/或一分割區選擇
表。該分割區描述符表包括分割區描述符,該等分割區描述符各自定義含有該轉譯快取之一或多個轉譯快取項目的一分割區。在自一請求器接收一記憶體存取請求後,該MMU之一分割區轉譯電路即判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID),且基於該TCPID而識別該等分割區中之一或多者。在一些態樣中,判定該TCPID可包括使用該分割區再映射表來定位該記憶體存取請求之該TCPID,以作為與一輸出TCPID相關聯之一輸入TCPID。可轉而接著使用該輸出TCPID,以使用該分割區選擇表來識別該一或多個分割區。一旦識別該一或多個分割區,便對該一或多個分割區之該一或多個轉譯快取項目之一轉譯快取項目執行一快取操作(例如,一快取搜尋操作及/或一快取收回操作)。以此方式,可在多個請求器之中有效地分割該MMU之該轉譯快取,從而導致請求器之間針對轉譯快取項目的競爭減少。
在一個態樣中,提供一種設備,該設備包含用於提供分割之轉譯快取之一MMU。該MMU包含一轉譯快取,其經組態以提供各自定義一位址轉譯映射之複數個轉譯快取項目。該MMU進一步包含一分割區描述符表,其經組態以提供定義該轉譯快取之對應複數個分割區的複數個分割區描述符,該複數個分割區之每一分割區包含該複數個轉譯快取項目之一或多個轉譯快取項目。該MMU亦包含一分割區轉譯電路。該分割區轉譯電路經組態以自一請求器接收一記憶體存取請求。該分割區轉譯電路經進一步組態以判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID)。該分割區轉譯電路亦經組態以基於該TCPID而識別該複數個分割區之一或多個分割區。該分割區轉譯電路經另外組態以對該一或多個分割區之該一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
在另一態樣中,提供一種MMU。該MMU包含用於提供各自定義
一位址轉譯映射之複數個轉譯快取項目的一構件。該MMU進一步包含用於提供定義該MMU之一轉譯快取之對應複數個分割區的複數個分割區描述符的一構件,該複數個分割區中之每一分割區包含該複數個轉譯快取項目之一或多個轉譯快取項目。該MMU亦包含用於自一請求器接收一記憶體存取請求的一構件。該MMU另外包含用於判定該記憶體存取請求之一TCPID的一構件。該MMU進一步包含用於基於該TCPID而識別該複數個分割區之一或多個分割區的一構件。該MMU亦包含用於對該一或多個分割區之該一或多個轉譯快取項目之一轉譯快取項目執行一快取操作的一構件。
在另一態樣中,提供一種用於提供分割之轉譯快取的方法。該方法包含藉由一MMU自一請求器接收一記憶體存取請求。該方法進一步包含判定該記憶體存取請求之一TCPID。該方法亦包含基於該TCPID而識別該MMU之一轉譯快取之複數個分割區的一或多個分割區。該方法另外包含對該一或多個分割區之一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
在另一態樣中,提供一種非暫時性電腦可讀媒體,其上儲存有電腦可執行指令。該等電腦可執行指令在由一處理器執行時使該處理器自一請求器接收一記憶體存取請求。該等電腦可執行指令進一步使該處理器判定該記憶體存取請求之一TCPID。該等電腦可執行指令亦使該處理器基於該TCPID而識別一MMU之一轉譯快取之複數個分割區的一或多個分割區。該等電腦可執行指令另外使該處理器對該一或多個分割區之一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
100‧‧‧計算系統
102‧‧‧中央處理單元記憶體管理單元(CPU MMU)
104‧‧‧中央處理單元(CPU)
106‧‧‧系統記憶體管理單元(SMMU)
108‧‧‧上游裝置
110‧‧‧上游裝置
112‧‧‧上游裝置
114‧‧‧主控埠(M)
116‧‧‧主控埠(M)
118‧‧‧主控埠(M)
120‧‧‧從屬埠(S)
122‧‧‧從屬埠(S)
124‧‧‧從屬埠(S)
126‧‧‧互連件
128‧‧‧主控埠(M)
130‧‧‧從屬埠(S)
132‧‧‧記憶體
134‧‧‧從屬裝置
136‧‧‧系統互連件
138‧‧‧主控埠(M)
140‧‧‧從屬埠(S)
142‧‧‧主控埠(M)
144‧‧‧主控埠(M)
146‧‧‧從屬埠(S)
148‧‧‧從屬埠(S)
150‧‧‧主控埠(M)
152‧‧‧從屬埠(S)
200‧‧‧記憶體管理單元(MMU)
202‧‧‧轉譯快取
204(0)-204(X)‧‧‧轉譯快取項目
206‧‧‧分割區描述符表
208(0)-208(N)‧‧‧分割區描述符
210(0)-210(N)‧‧‧分割區
212‧‧‧分割區轉譯電路
214‧‧‧分割區再映射表
216(0)-216(M)‧‧‧再映射項目
218(0)-218(M)‧‧‧輸入TCPID
220(0)-220(M)‧‧‧輸出TCPID
222‧‧‧分割區選擇表
224(0)-224(Y)‧‧‧分割區選擇項目
226(0)-226(Y)‧‧‧搜尋控制指示符(SRCH)
228(0)-228(Y)‧‧‧收回控制指示符(EVCT)
300‧‧‧方塊圖
302‧‧‧方塊圖
304‧‧‧分割區描述符
306‧‧‧分割區描述符
308‧‧‧開始指標
310‧‧‧結束指標
312‧‧‧箭頭
314‧‧‧箭頭
316‧‧‧開始指標
318‧‧‧計數指示符
320‧‧‧箭頭
322‧‧‧箭頭
400‧‧‧圖式
402‧‧‧記憶體存取請求
404‧‧‧請求器
406‧‧‧源指示符
408‧‧‧請求器供應之TCPID
410‧‧‧轉譯快取分割區識別符(TCPID)
412‧‧‧箭頭
414‧‧‧屬性
416‧‧‧箭頭
418‧‧‧箭頭
500‧‧‧區塊
502‧‧‧區塊
504‧‧‧區塊
506‧‧‧區塊
600‧‧‧區塊
602‧‧‧區塊
604‧‧‧區塊
606‧‧‧區塊
609‧‧‧區塊
608‧‧‧區塊
610‧‧‧區塊
611‧‧‧區塊
612‧‧‧區塊
613‧‧‧區塊
614‧‧‧區塊
616‧‧‧區塊
620‧‧‧區塊
622‧‧‧區塊
624‧‧‧區塊
626‧‧‧區塊
628‧‧‧區塊
700‧‧‧基於處理器之系統
702‧‧‧中央處理單元(CPU)
704‧‧‧處理器
706‧‧‧快取記憶體
707‧‧‧中央處理單元記憶體管理單元(CPU MMU)
708‧‧‧系統匯流排
710‧‧‧記憶體系統
712(0)-712(N)‧‧‧記憶體單元
713‧‧‧系統記憶體管理單元(SMMU)
714‧‧‧系統記憶體管理單元(SMMU)
715‧‧‧記憶體控制器
716‧‧‧輸入裝置
718‧‧‧輸出裝置
720‧‧‧網路介面裝置
722‧‧‧顯示器控制器
724‧‧‧網路
726‧‧‧顯示器
728‧‧‧視訊處理器
圖1為說明例示性計算系統之方塊圖,該例示性計算系統說明自上游裝置至提供位址轉譯服務之記憶體管理單元(MMU)的通信流;
圖2為說明用於提供分割之轉譯快取之例示性MMU的方塊圖;圖3A及圖3B為說明圖2中所說明的用於定義轉譯快取分割區之分割區描述符之例示性態樣的方塊圖;圖4為說明記憶體存取請求及圖2中所說明的用於判定轉譯快取分割區識別符(TCPID)之分割區轉譯電路之例示性態樣的方塊圖;圖5為說明圖2的用於提供分割之轉譯快取之MMU之例示性操作的流程圖;圖6A至圖6C為說明用於提供分割之轉譯快取之其他例示性操作的流程圖,其包括TCPID再映射及使用分割區選擇項目;及圖7為可包括圖1之MMU的例示性之基於處理器之系統的方塊圖。
現在參看圖式,描述本發明之若干例示性態樣。詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。本文中描述為「例示性」之任何態樣未必應解釋為較佳或優於其他態樣。
在論述如本文所揭示之用於提供MMU分割之轉譯快取的例示性設備及方法之前,描述提供虛擬至實體記憶體位址轉譯之習知計算系統。就此而言,圖1為說明例示性計算系統100之方塊圖,其中中央處理單元(CPU)MMU 102為CPU 104提供位址轉譯服務,且系統MMU(SMMU)106為上游裝置108、110,及112提供位址轉譯服務。應理解,計算系統100及其元件可涵蓋其他元件之中的已知數位邏輯元件、半導體電路、處理核心及/或記憶體結構中之任一者,或其組合。本文中所描述之態樣不限於任何特定配置之元件,且所揭示技術可容易地擴展至半導體晶粒或封裝上之各種結構及佈局。
如圖1中所見,計算系統100包括分別具有主控埠(M)114、116及118之上游裝置108、110及112,該等主控埠連接至互連件126之對應
從屬埠(S)120、122及124。在一些態樣中,上游裝置108、110及112中之每一者可包含一周邊裝置,諸如直接記憶體存取(DMA)代理、視訊加速器及/或顯示引擎,作為非限制性實例。互連件126可自上游裝置108、110及112接收記憶體存取請求(未圖示),且可將該等記憶體存取請求自主控埠(M)128傳送至SMMU 106之從屬埠(S)130。在接收每一記憶體存取請求之後,SMMU 106可執行虛擬至實體記憶體位址轉譯,且基於該位址轉譯,可經由系統互連件136存取記憶體132及/或從屬裝置134。如圖1中所示,SMMU 106之主控埠(M)138與系統互連件136之從屬埠(S)140通信。系統互連件136轉而經由主控埠(M)142及144分別與記憶體132及從屬裝置134之從屬埠(S)146及148通信。在一些態樣中,記憶體132及/或從屬裝置134可包含系統記憶體、系統暫存器及/或記憶體映射輸入/輸出(I/O)裝置,作為非限制性實例。應理解,雖然SMMU 106服務上游裝置108、110及112,但一些態樣可提供:SMMU 106可服務比圖1中所說明的上游裝置多或少的上游裝置。
如上所述,計算系統100亦包括整合於CPU MMU 102中之CPU 104。CPU MMU 102可提供對CPU MMU 102之CPU記憶體存取請求(未圖示)之位址轉譯服務,其方式與SMMU 106將位址轉譯服務提供給上游裝置108、110及112差不多相同。在執行CPU記憶體存取請求之虛擬至實體記憶體位址轉譯之後,CPU MMU 102可經由系統互連件136來存取記憶體132及/或從屬裝置134。詳言之,CPU 104之主控埠(M)150與系統互連件136之從屬埠(S)152通信。系統互連件136接著經由主控埠(M)142及144分別與記憶體132及從屬裝置134之從屬埠(S)146及148通信。
為改良效能,諸如CPU MMU 102及/或SMMU 106之MMU可提供用於儲存先前產生之虛擬至實體記憶體位址轉譯映射的轉譯快取(未
圖示)。然而,在於多個上游裝置之中共用之MMU(諸如SMMU 106)的狀況下,可迫使上游裝置競爭以得到轉譯快取之有限資源。此競爭可導致輾轉現象,此係因為上游裝置為有利於自身而反覆地收回彼此之轉譯快取項目。在最差情況情境中,藉由輾轉現象招致之額外負擔可抵消轉譯快取之優勢。
就此而言,提供圖2以說明用於提供分割之轉譯快取之例示性MMU 200。在一些態樣中,可在諸如圖1之計算系統100的計算系統中利用MMU 200,從而代替CPU MMU 102及/或SMMU 106。MMU 200包括提供轉譯快取項目204(0)至204(X)之轉譯快取202。在一些態樣中,作為一非限制性實例,轉譯快取項目204(0)至204(X)中之每一者定義位址轉譯映射(未圖示),諸如虛擬至實體記憶體位址轉譯映射。應理解,一些態樣可提供:轉譯快取202可比圖2中所說明之轉譯快取項目多或少的轉譯快取項目204(0)至204(X)。轉譯快取202在本文中亦被稱作「用於提供各自定義位址轉譯映射之複數個轉譯快取項目的構件」。
MMU 200進一步包括分割區描述符表206。分割區描述符表206提供分割區描述符208(0)至208(N),該等分割區描述符定義對應分割區210(0)至210(N)。如圖2中所示,分割區210(0)至210(N)中之每一者包括轉譯快取202之轉譯快取項目204(0)至204(X)中之一或多者。舉例而言,在圖2之實例中,分割區210(0)包括轉譯快取項目204(0)至204(2),而分割區210(1)包括轉譯快取項目204(3)至204(5),且分割區210(N)包括轉譯快取項目204(6)至204(X)。根據一些態樣,分割區描述符表206可包括比圖2中所說明的分割區描述符多或少的分割區描述符208(0)至208(N)。分割區描述符表206在本文中亦被稱作「用於提供定義MMU之轉譯快取之對應複數個分割區的複數個分割區描述符的構件」。下文關於圖3A及圖3B更詳細地論述可由分割區描述符208(0)
至208(N)使用以定義對應分割區210(0)至210(N)的例示性機制。
在一些態樣中,分割區210(0)至210(N)可被視為由分割區描述符208(0)至208(N)定義之邏輯構造。一些態樣可提供:分割區描述符208(0)至208(N)可於設計時間進行組態。因此,在此等態樣中,可於設計時間判定分割區210(0)至210(N)之數目及分配至分割區210(0)至210(N)中之每一者的轉譯快取項目204(0)至204(X)之數目。在一些態樣中,分割區描述符208(0)至208(N)可在執行階段藉由軟體可程式化,從而准許分割區210(0)至210(N)之數目及分割區210(0)至210(N)中之每一者的轉譯快取項目204(0)至204(X)之數目以動態方式進行組態。
繼續參看圖2,MMU 200亦包括分割區轉譯電路212。在例示性操作中,分割區轉譯電路212自諸如圖1之上游裝置108、110、112中之一者的請求器接收記憶體存取請求(未圖示)。分割區轉譯電路212可接著判定記憶體存取請求之TCPID(未圖示)。如下文關於圖4所更詳細論述,可由請求器明確地提供TCPID以作為記憶體存取請求之部分,及/或可由分割區轉譯電路212基於記憶體存取請求自身之源類型及/或屬性而導出TCPID。分割區轉譯電路212接著基於TCPID而識別分割區210(0)至210(N)中之一或多者,且對對應於分割區210(0)至210(N)中之經識別之一或多者的轉譯快取項目204(0)至204(X)中之一或多者執行快取操作。在一些態樣中,執行快取操作可包含:搜尋轉譯快取項目204(0)至204(X);寫入至轉譯快取項目204(0)至204(X)中之一或多者;及/或收回轉譯快取項目204(0)至204(X)中之一或多者之內容,作為非限制性實例。分割區轉譯電路212可在本文中被稱作「用於自請求器接收記憶體存取請求的構件」、「用於判定記憶體存取請求之TCPID的構件」、「用於基於TCPID而識別複數個分割區之一或多個分割區的構件」及/或「用於對轉譯快取項目執行快取操作的構
件」。
分割區轉譯電路212因此可確保:回應於來自請求器之記憶體存取請求,分割區轉譯電路212僅對與藉由TCPID識別之分割區210(0)至210(N)中之一或多者相關聯的特定轉譯快取項目204(0)至204(X)執行快取操作。舉例而言,若TCPID識別分割區210(0),則分割區轉譯電路212可能夠僅對與分割區210(0)相關聯之轉譯快取項目204(0)至204(2)執行快取操作。實際上,分割區轉譯電路212可使用分割區210(0)至210(N)將存取控制機制提供至轉譯快取項目204(0)至204(X),從而阻止與不同TCPID相關聯之請求器不利地影響彼此之轉譯快取項目204(0)至204(X)。
在一些態樣中,許多情況可發生,在該等情況下,可能需要將記憶體存取請求內所接收或自該記憶體存取請求導出的TCPID映射至實際上用以識別分割區210(0)至210(N)中之一或多者的「輸出」TCPID。舉例而言,提供TCPID再映射可有助於分割區描述符208(0)至208(N)之軟體重新組態。就此而言,在一些態樣中,分割區轉譯電路212可視情況提供含有一或多個再映射項目216(0)至216(M)之分割區再映射表214。再映射項目216(0)至216(M)各自將對應輸入TCPID 218(0)至218(M)(即,識別上游請求器指定用於位址轉譯之轉譯快取分割區或分割區集合的TCPID)映射至對應輸出TCPID 220(0)至220(M)(即,識別實際上用於位址轉譯之轉譯快取分割區或分割區集合的TCPID)。分割區轉譯電路212可因此在判定自記憶體存取請求接收或導出之TCPID之後執行TCPID再映射。
為進行此操作,分割區轉譯電路212首先識別再映射項目216(0)至216(M)中之一者,其中輸入TCPID 218(0)至218(M)對應於記憶體存取請求之TCPID。在一些態樣中,記憶體存取請求之TCPID可為軟體可程式化的,或可經硬式寫碼,使得軟體無法修改記憶體存取請求之
TCPID之值。分割區轉譯電路212可接著自含有輸入TCPID 218(0)至218(M)之再映射項目216(0)至216(M)擷取輸出TCPID 220(0)至220(M),且可使用輸出TCPID 220(0)至220(M)以將分割區210(0)至210(N)中之一或多者識別為快取操作之目標。以此方式,分割區再映射表214可實現作為記憶體存取請求之部分而接收的TCPID之程式化再映射,其可允許軟體效能最佳化、系統效能調諧及/或由不正確請求器指定之TCPID產生的硬體問題之校正,作為非限制性實例。
根據一些態樣,MMU 200亦可視情況提供分割區選擇表222,以促進對作用中的且有資格用於快取搜尋及/或快取收回的轉譯快取項目204(0)至204(X)之選擇。為此目的,分割區選擇表222包括對應於分割區210(0)至210(N)之分割區選擇項目224(0)至224(Y)。分割區選擇項目224(0)至224(Y)中之每一者可對應於分割區210(0)至210(N)中之一或多者。在圖2之實例中,舉例而言,分割區選擇項目224(0)對應於分割區210(0)及210(1),而分割區選擇項目224(Y)對應於分割區210(N)。在一些態樣中,可使用自分割區再映射表214擷取之輸出TCPID 220(0)至220(M)中之一者來選擇分割區選擇項目224(0)至224(Y)。分割區選擇項目224(0)至224(Y)中之每一者可包括搜尋控制指示符(SRCH)226(0)至226(Y)及收回控制指示符(EVCT)228(0)至228(Y)中之一者或兩者。在一些態樣中,搜尋控制指示符226(0)至226(Y)及/或收回控制指示符228(0)至228(Y)可包含位元指示符、旗標及/或如此項技術中已知之其他狀態指示符。
分割區轉譯電路212可經組態以基於一或多個分割區210(0)至210(N)之對應分割區選擇項目224(0)至224(Y)而將分割區210(0)至210(N)中之一或多者識別為快取操作之目標。舉例而言,在對分割區210(0)及210(1)執行快取搜尋操作之前,分割區轉譯電路212可首先基於對應於分割區210(0)及210(1)之分割區選擇項目224(0)之搜尋控制
指示符226(0)而判定分割區210(0)及210(1)是否有資格用於搜尋。類似地,分割區轉譯電路212可基於對應於分割區210(0)及210(1)之分割區選擇項目224(0)之收回控制指示符228(0)而判定分割區210(0)及210(1)是否有資格用於收回。
如上所述,可提供分割區描述符表206之分割區描述符208(0)至208(N)以定義轉譯快取202之對應分割區210(0)至210(N)。圖3A及3B為分別展示兩個例示性分割區描述符的方塊圖300及302,該等方塊圖說明用於定義諸如圖2之分割區210(0)(未圖示)之分割區的不同機制。在圖3A及圖3B中,如上文所論述,圖2之轉譯快取202提供轉譯快取項目204(0)至204(X)。圖3A及圖3B亦分別提供分割區描述符304及306,每一者定義包括圖2之轉譯快取項目204(0)至204(2)之分割區210(0)。因此,分割區描述符304及306可因此在功能性上對應於圖2之分割區描述符208(0)。
在圖3A中,分割區描述符304使用開始指標308及結束指標310來定義分割區210(0)。如箭頭312所示,開始指標308指示分割區210(0)開始轉譯快取項目204(0)。類似地,如箭頭314所示,結束指標310指示分割區210(0)之結束轉譯快取項目204(2)。
圖3B之分割區描述符306說明替代性分割區定義機制。在圖3B中,分割區描述符306提供開始指標316及計數指示符318。如箭頭320所示,開始指標316指示分割區210(0)之開始轉譯快取項目204(0)。如箭頭322所指示,計數指示符318提供值(「3」),其指示含於分割區210(0)中之轉譯快取項目204(0)至204(2)的計數。
圖4提供圖400,以說明記憶體存取請求及圖2之MMU 200的用於判定TCPID之分割區轉譯電路212之例示性態樣。在圖4中,分割區轉譯電路212自請求器404接收記憶體存取請求402。在一些態樣中,請求器404可包含圖1之上游裝置108、110、112中之一者。一些態樣可
提供:MMU 200為第二階段MMU,且請求器404為第一階段MMU。如圖4中所見,記憶體存取請求可包括指示請求器404之源類型的源指示符406。作為一非限制性實例,源指示符406可為指示請求器404是否為圖1之上游裝置108、110、112中之一者,或請求器404是否為第一階段MMU的旗標。分割區轉譯電路212可接著基於源指示符406而導出TCPID。作為一非限制性實例,此可允許分割區轉譯電路212分配轉譯快取202之一部分供第一階段MMU單獨使用。
記憶體存取請求402亦可包括由請求器404提供的可選請求器供應之TCPID 408。當接收請求器供應之TCPID 408作為記憶體存取請求402之部分時,分割區轉譯電路212可擷取請求器供應之TCPID 408,且將其用作TCPID 410,用於將圖2之分割區210(0)至210(N)中之一或多者識別為快取操作之目標,如箭頭412所指示。一些態樣可提供:除將請求器供應之TCPID 408用作TCPID 410以外或替代將請求器供應之TCPID 408用作TCPID 410,分割區轉譯電路212可基於記憶體存取請求402之屬性414而導出TCPID 410,如箭頭416所示。作為非限制性實例,可基於一或多個屬性414而判定TCPID 410,該一或多個屬性諸如唯一地識別請求器404之主控識別符(ID)屬性、讀取/寫入屬性、安全/非安全屬性、記憶體類型屬性、可快取性屬性及/或記憶體存取請求402之可共用屬性。在一些態樣中,分割區轉譯電路212可視情況使用分割區再映射表214再映射TCPID 410,如箭頭418所示。
為說明圖2的用於提供分割之轉譯快取之MMU 200之例示性操作,提供圖5。出於簡潔起見,在描述圖5時參看圖2及圖4之元件。在圖5中,操作以MMU 200(詳言之,分割區轉譯電路212)自請求器404接收記憶體存取請求402開始(區塊500)。在一些態樣中,請求器404可包含第一階段MMU,或可包含諸如圖1之上游裝置108、110、112
的上游裝置。
分割區轉譯電路212判定記憶體存取請求402之TCPID 410(區塊502)。分割區轉譯電路212接下來基於TCPID 410而識別MMU 200之轉譯快取202之複數個分割區210(0)至210(N)之一或多個分割區,諸如分割區210(0)至210(1)(區塊504)。分割區轉譯電路212接著對一或多個分割區210(0)至210(1)之一或多個轉譯快取項目204(0)至204(5)之一轉譯快取項目(諸如轉譯快取項目204(0))執行快取操作(區塊506)。作為非限制性實例,一些態樣可提供:執行快取操作可包含搜尋轉譯快取項目204(0)至204(5)、寫入至轉譯快取項目204(0)至204(5)中之一或多者及/或收回轉譯快取項目204(0)至204(5)中之一或多者之內容。應理解,轉譯快取項目204(0)至204(5)之選擇在此實例中係非限制性實例,且可基於藉由TCPID 410識別之分割區210(0)至210(N)來選擇其他或額外轉譯快取項目204(0)至204(X)。
圖6A至圖6C為說明用於提供分割之轉譯快取之其他例示性操作的流程圖。詳言之,圖6A包括分割區轉譯電路212的用於TCPID再映射之操作,而圖6B提供分割區轉譯電路212的用於使用例示性分割區定義機制之操作。圖6C說明分割區轉譯電路212的用於在執行快取操作時使用分割區選擇項目之操作。出於簡潔起見,在描述圖6A至圖6C時參考圖2至圖4中之元件。
在圖6A中,操作以MMU 200(詳言之,分割區轉譯電路212)自請求器404接收記憶體存取請求402開始(區塊600)。分割區轉譯電路212接下來判定記憶體存取請求402之TCPID 410(區塊602)。一些態樣可提供:用於判定TCPID 410之區塊602之操作可包含基於記憶體存取請求402之屬性414而導出TCPID 410(區塊604)。在一些態樣中,用於判定TCPID 410之區塊602之操作可包括擷取由記憶體存取請求402提供的請求器供應之TCPID 408(區塊606)。根據一些態樣,用於判定
TCPID 410之區塊602之操作可包含:識別定義輸入TCPID 218(0)至輸出TCPID 220(0)之再映射之複數個再映射項目216(0)至216(M)之中的再映射項目(諸如再映射項目216(0)),其中再映射項目216(0)之輸入TCPID 218(0)對應於記憶體存取請求402之TCPID 410(區塊608)。在一些態樣中,用於判定TCPID 410之區塊602之操作可包含基於記憶體存取請求402的指示請求器404之源類型之源指示符406而導出TCPID 410(區塊609)。
分割區轉譯電路212接下來基於TCPID 410而識別MMU 200之轉譯快取202之複數個分割區210(0)至210(N)之一或多個分割區,諸如分割區210(0)至210(1)(區塊610)。在一些態樣中,用於識別分割區210(0)至210(1)之區塊610之操作可基於再映射項目216(0)之輸出TCPID 220(0)(區塊611)。一些態樣亦可提供:用於識別一或多個分割區210(0)至210(1)之區塊610之操作可基於一分割區選擇項目,諸如複數個分割區選擇項目224(0)至224(Y)之分割區選擇項目224(0)(區塊612)。作為一非限制性實例,分割區選擇項目224(0)至224(Y)中之每一者可定義搜尋控制指示符226(0)及收回控制指示符228(0)中之至少一者,且可對應於複數個分割區210(0)至210(N)之一或多個分割區210(0)至210(1)。在一些態樣中,作為一非限制性實例,可基於諸如輸出TCPID 220(0)之輸出TCPID而選擇分割區選擇項目224(0)。處理可接著在圖6B之區塊613處繼續。
現參看圖6B,根據一些態樣,分割區轉譯電路212可進一步基於對應複數個分割區描述符208(0)至208(N)而識別一或多個分割區210(0)至210(1)(區塊613)。根據一些態樣,複數個分割區描述符208(0)至208(N)中之每一者可包含:一開始指標,諸如開始指標308,其指向由分割區描述符208(0)定義之對應分割區210(0)之開始轉譯快取項目204(0);及一結束指標,諸如結束指標310,其指向對應分割
區210(0)之結束轉譯快取項目204(X)(區塊614)。在其他態樣中,分割區描述符208(0)至208(N)中之每一者可包含:一開始指標,諸如開始指標316,其指向由分割區描述符208(0)定義之對應分割區210(0)之開始轉譯快取項目204(0);及一計數指示符,諸如計數指示符318,其指示對應分割區210(0)之一或多個轉譯快取項目204(0)至204(X)之計數(區塊616)。處理接著在圖6C之區塊620處繼續。
現轉而參看圖6C,分割區轉譯電路212接下來對一或多個分割區210(0)至210(1)之一或多個轉譯快取項目204(0)至204(2)之轉譯快取項目204(0)執行快取操作(區塊620)。在一些態樣中,用於執行快取操作之區塊620之操作可基於TCPID 410之指示請求器404之源類型的源指示符406(區塊622)。一些態樣可提供:用於執行快取操作之區塊620之操作可基於一或多個分割區210(0)至210(1)之分割區選擇項目224(0)(區塊624)。用於基於分割區選擇項目224(0)而執行快取操作之區塊624之操作可包括:在一些態樣中,基於一或多個分割區210(0)至210(1)之搜尋控制指示符226(0)而判定一或多個分割區210(0)至210(1)之一或多個轉譯快取項目204(0)至204(2)有資格用於搜尋(區塊626)。根據一些態樣的用於基於分割區選擇項目224(0)而執行快取操作之區塊624之操作可包括:基於一或多個分割區210(0)至210(1)之收回控制指示符228(0)而判定一或多個分割區210(0)至210(1)之一或多個轉譯快取項目204(0)至204(2)有資格用於收回(區塊628)。
根據本文中所揭示之態樣,提供MMU分割之轉譯快取及其相關設備、方法及電腦可讀媒體可提供於或整合至任何基於處理器之裝置中。實例包括(但不限於)機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、行動電話、蜂巢式電話、電腦、攜帶型電腦、桌上型電腦、個人數位助理(PDA)、監視器、電腦監視器、電視、調諧器、無線電、衛星無線電、音樂播放器、數位音
樂播放器、攜帶型音樂播放器、數位視訊播放器、視訊播放器、數位視訊光碟(DVD)播放器及攜帶型數位視訊播放器。
就此而言,圖7說明可使用圖2中所說明之MMU 200的基於處理器之系統700之實例。在此實例中,基於處理器之系統700包括一或多個中央處理單元(CPU)702,每一CPU包括一或多個處理器704。CPU 702可具有耦接至處理器704之快取記憶體706,以供快速存取臨時儲存之資料。CPU 702進一步包括用於針對CPU記憶體存取請求提供位址轉譯服務之CPU MMU 707。CPU 702耦接至系統匯流排708,且可相互耦接包括於基於處理器之系統700中的主控裝置及從屬裝置。如所熟知,CPU 702藉由在系統匯流排708上交換位址、控制及資料資訊來與此等其他裝置通信。舉例而言,CPU 702可將匯流排異動請求傳達至記憶體系統710,該記憶體系統提供記憶體單元712(0)至712(N)。在圖7之實例中,SMMU 713及714亦耦接至系統匯流排708。應理解,CPU MMU 707及SMMU 713及714中之一或多者可包含圖2之MMU 200。應進一步理解,基於處理器之系統700可包括多個SMMU 713及714。
其他主控裝置及從屬裝置可經由SMMU 713及714連接至系統匯流排708。如圖7中所說明,作為實例,此等裝置可包括記憶體控制器715、一或多個輸入裝置716、一或多個輸出裝置718、一或多個網路介面裝置720及一或多個顯示器控制器722。輸入裝置716可包括任何類型之輸入裝置,包括(但不限於)輸入鍵、開關、語言處理器等。輸出裝置718可包括任何類型之輸出裝置,包括(但不限於)音訊、視訊、其他視覺指示器等。網路介面裝置720可為經組態以允許至及自網路724之資料交換的任何裝置。網路724可為任何類型之網路,包括(但不限於)有線或無線網路、私人或公用網路、區域網路(LAN)、廣域網路(WLAN)及網際網路。網路介面裝置720可經組態以支援任何類
型之所要通信協定。
CPU 702亦可經組態以在系統匯流排708上存取顯示器控制器722,以控制被發送至一或多個顯示器726之資訊。顯示器控制器722經由一或多個視訊處理器728將資訊發送至顯示器726以供顯示,視訊處理器將待顯示之資訊處理成適於顯示器726之格式。顯示器726可包括任何類型之顯示器,包括(但不限於)陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器等。
熟習此項技術者將進一步瞭解,結合本文所揭示之態樣所描述的各種說明性邏輯區塊、模組、電路及演算法可實施為電子硬體、儲存於記憶體中或另一電腦可讀媒體中且由處理器或其他處理裝置執行之指令或此兩者之組合。作為實例,本文中所描述之主控裝置及從屬裝置可用於任何電路、硬體組件、積體電路(IC)或IC晶片中。本文中所揭示之記憶體可為任何類型及大小之記憶體,且可經組態以儲存所要的任何類型之資訊。為清楚地說明此可互換性,上文已大體上關於功能性描述了各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性視特定應用、設計選擇及/或強加於整個系統之設計約束而定。對於每一特定應用而言,熟習此項技術者可以變化之方式實施所描述功能性,但不應將此等實施決策解釋為導致背離本發明之範疇。
結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組及電路可藉由以下各者來實施或執行:處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件,或其經設計以執行本文中所描述之功能的任何組合。處理器可為微處理器,但在替代方案中,處理器可為任何習知之處理器、控制器、微控制器或狀態機。處理器亦可實施為計算裝置之組合,例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任
何其他此組態。
本文中所揭示之態樣可體現於硬體及儲存於硬體中之指令中,且可駐留於(例如)隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式化ROM(EPROM)、電可抹除可程式化ROM(EEPROM)、暫存器、硬碟、抽取式磁碟、CD-ROM或此項技術中已知的任何其他形式之電腦可讀媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可整合至處理器。處理器及儲存媒體可駐留於ASIC中。ASIC可駐留於遠端台中。在替代方案中,處理器及儲存媒體可作為離散組件而駐留於遠端台、基地台或伺服器中。
亦應注意,描述在本文中之任何例示性態樣中之任一者中所描述的操作步驟以提供實例及論述。可以除所說明序列以外的眾多不同序列來執行所描述操作。此外,描述於單個操作步驟中之操作可實際上以多個不同步驟進行。另外,可組合例示性態樣中所論述之一或多個操作步驟。應理解,如熟習此項技術者將容易顯而易見的,流程圖圖式中所說明之操作步驟可經受眾多不同修改。熟習此項技術者亦將理解,可使用各種不同技術及技法中之任一者來表示資訊及信號。舉例而言,可藉由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合來表示貫穿以上描述可能提及之資料、指令、命令、資訊、信號、位元、符號及晶片。
提供本發明之先前描述以使得任何熟習此項技術者能夠進行或使用本發明。對本發明之各種修改對於熟習此項技術者而言將容易顯而易見,且在不背離本發明之精神或範疇的情況下,本文中所定義之一般原理可適用於其他變體。因此,本發明不意欲限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
Claims (33)
- 一種包含用於提供分割之轉譯快取之一記憶體管理單元(MMU)的設備,其包含:一轉譯快取,其經組態以提供各自定義一位址轉譯映射之複數個轉譯快取項目;一分割區描述符表,其經組態以提供定義該轉譯快取之對應複數個分割區的複數個分割區描述符,該複數個分割區之每一分割區包含該複數個轉譯快取項目之一或多個轉譯快取項目;及一分割區轉譯電路,其經組態以:自一請求器接收一記憶體存取請求;判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID);基於該TCPID而識別該複數個分割區之一或多個分割區;及對該一或多個分割區之該一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
- 如請求項1之設備,其中該分割區描述符表經組態以提供各自包含以下者之該複數個分割區描述符:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一結束指標,其指向該對應分割區之一結束轉譯快取項目。
- 如請求項1之設備,其中該分割區描述符表經組態以提供各自包含以下者之該複數個分割區描述符:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一計數指示符,其指示該對應分割區之該一或多個轉譯快取 項目的一計數。
- 如請求項1之設備,其中該分割區轉譯電路經組態以藉由基於該記憶體存取請求之一屬性而導出該TCPID來判定該TCPID。
- 如請求項1之設備,其中該分割區轉譯電路經組態以藉由擷取由該記憶體存取請求提供之一請求器供應之TCPID來判定該TCPID。
- 如請求項1之設備,其進一步包含一分割區再映射表,該分割區再映射表經組態以提供各自定義一輸入TCPID至一輸出TCPID之一再映射的複數個再映射項目;其中該分割區轉譯電路經組態以:藉由識別該複數個再映射項目之一再映射項目來判定該TCPID,其中該再映射項目之該輸入TCPID對應於該記憶體存取請求之該TCPID;及基於該再映射項目之該輸出TCPID而識別該複數個分割區之該一或多個分割區。
- 如請求項1之設備,其中:該記憶體存取請求包含指示該請求器之一源類型的一源指示符;且該分割區轉譯電路經組態以藉由基於該源指示符而導出該TCPID來判定該TCPID。
- 如請求項1之設備,其進一步包含包含複數個分割區選擇項目之一分割區選擇表,每一分割區選擇項目定義一搜尋控制指示符及一收回控制指示符中之至少一者,且每一分割區選擇項目對應於該複數個分割區之一或多個分割區;且其中該分割區轉譯電路經組態以基於該複數個分割區選擇項目之一分割區選擇項目而識別該複數個分割區之該一或多個分 割區。
- 如請求項8之設備,其中該分割區轉譯電路經組態以藉由如下操作來執行該快取操作:基於該一或多個分割區之該分割區選擇項目的該搜尋控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於搜尋。
- 如請求項8之設備,其中該分割區轉譯電路經組態以藉由如下操作來執行該快取操作:基於該一或多個分割區之該分割區選擇項目的該收回控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於收回。
- 如請求項1之設備,該設備經整合至一積體電路(IC)中。
- 如請求項1之設備,其整合至選自由以下各者組成之一群組的一裝置中:一機上盒、一娛樂單元、一導航裝置、一通信裝置、一固定位置資料單元、一行動位置資料單元、一行動電話、一蜂巢式電話、一電腦、一個人數位助理(PDA)、一監視器、一電腦監視器、一電視、一調諧器、一無線電、一音樂播放器及一視訊播放器。
- 一種記憶體管理單元(MMU),其包含:用於提供各自定義一位址轉譯映射之複數個轉譯快取項目的一構件;用於提供定義該MMU之一轉譯快取之對應複數個分割區的複數個分割區描述符的一構件,該複數個分割區之每一分割區包含該複數個轉譯快取項目之一或多個轉譯快取項目;用於自一請求器接收一記憶體存取請求的一構件;用於判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID)的一構件;用於基於該TCPID而識別該複數個分割區之一或多個分割區的 一構件;及用於對該一或多個分割區之該一或多個轉譯快取項目之一轉譯快取項目執行一快取操作的一構件。
- 一種用於提供分割之轉譯快取之方法,其包含:藉由一記憶體管理單元(MMU)自一請求器接收一記憶體存取請求;判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID);基於該TCPID而識別該MMU之一轉譯快取之複數個分割區的一或多個分割區;及對該一或多個分割區之一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
- 如請求項14之方法,其中識別該複數個分割區之該一或多個分割區係進一步基於各自包含以下者之對應複數個分割區描述符:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一結束指標,其指向該對應分割區之一結束轉譯快取項目。
- 如請求項14之方法,其中識別該複數個分割區之該一或多個分割區係進一步基於各自包含以下者之對應複數個分割區描述符:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一計數指示符,其指示該對應分割區之該一或多個轉譯快取項目的一計數。
- 如請求項14之方法,其中判定該TCPID包含基於該記憶體存取請求之一屬性而導出該TCPID。
- 如請求項14之方法,其中判定該TCPID包含擷取由該記憶體存取請求提供之一請求器供應之TCPID。
- 如請求項14之方法,其包含:藉由識別各自定義一輸入TCPID至一輸出TCPID之一再映射的複數個再映射項目之中的一再映射項目來判定該TCPID,其中該再映射項目之該輸入TCPID對應於該記憶體存取請求之該TCPID;及基於該再映射項目之該輸出TCPID而識別該複數個分割區之該一或多個分割區。
- 如請求項14之方法,其中:該記憶體存取請求包含指示該請求器之一源類型的一源指示符;且判定該TCPID包含基於該源指示符而導出該TCPID。
- 如請求項14之方法,其進一步包含基於複數個分割區選擇項目之一分割區選擇項目而識別該複數個分割區之該一或多個分割區,每一分割區選擇項目定義一搜尋控制指示符及一收回控制指示符中之至少一者且對應於該複數個分割區之一或多個分割區。
- 如請求項21之方法,其中基於該一或多個分割區之該分割區選擇項目而執行該快取操作包含基於該一或多個分割區之該分割區選擇項目的該搜尋控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於搜尋。
- 如請求項21之方法,其中基於該一或多個分割區之該分割區選擇項目而執行該快取操作包含基於該一或多個分割區之該分割區選擇項目的該收回控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於收回。
- 一種非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由一處理器執行時使該處理器進行以下操作:自一請求器接收一記憶體存取請求;判定該記憶體存取請求之一轉譯快取分割區識別符(TCPID);基於該TCPID而識別一記憶體管理單元(MMU)之一轉譯快取之複數個分割區的一或多個分割區;及對該一或多個分割區之一或多個轉譯快取項目之一轉譯快取項目執行一快取操作。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器基於各自包含以下各者之對應複數個分割區描述符而識別該複數個分割區之該一或多個分割區:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一結束指標,其指向該對應分割區之一結束轉譯快取項目。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器基於各自包含以下各者之對應複數個分割區描述符而識別該複數個分割區之該一或多個分割區:一開始指標,其指向藉由該分割區描述符定義之一對應分割區的一開始轉譯快取項目;及一計數指示符,其指示該對應分割區之該一或多個轉譯快取項目的一計數。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處 理器藉由基於該記憶體存取請求之一屬性而導出該TCPID來判定該TCPID。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器藉由擷取由該記憶體存取請求提供之一請求器供應之TCPID來判定該TCPID。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器進行以下操作:藉由識別各自定義一輸入TCPID至一輸出TCPID之一再映射的複數個再映射項目之中的一再映射項目來判定該TCPID,其中該再映射項目之該輸入TCPID對應於該記憶體存取請求之該TCPID;及基於該再映射項目之該輸出TCPID而識別該複數個分割區之該一或多個分割區。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器藉由基於該記憶體存取請求的指示該請求器之一源類型之一源指示符而導出該TCPID來判定該TCPID。
- 如請求項24之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器基於複數個分割區選擇項目之一分割區選擇項目而識別該複數個分割區之該一或多個分割區,每一分割區選擇項目定義一搜尋控制指示符及一收回控制指示符中之至少一者且對應於該複數個分割區之一或多個分割區。
- 如請求項31之非暫時性電腦可讀媒體,其上儲存有電腦可執行 指令,該等電腦可執行指令在由該處理器執行時,進一步使該處理器藉由如下操作來基於該一或多個分割區之該分割區選擇項目而執行該快取操作:基於該一或多個分割區之該分割區選擇項目的該搜尋控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於搜尋。
- 如請求項31之非暫時性電腦可讀媒體,其上儲存有電腦可執行指令,該等電腦可執行指令在由該處理器執行時進一步使該處理器藉由如下操作來基於該一或多個分割區之該分割區選擇項目而執行該快取操作:基於該一或多個分割區之該分割區選擇項目的該收回控制指示符,判定該一或多個分割區之該一或多個轉譯快取項目有資格用於收回。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/725,882 | 2015-05-29 | ||
US14/725,882 US9824015B2 (en) | 2015-05-29 | 2015-05-29 | Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201710907A TW201710907A (zh) | 2017-03-16 |
TWI627533B true TWI627533B (zh) | 2018-06-21 |
Family
ID=56015107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105113591A TWI627533B (zh) | 2015-05-29 | 2016-04-29 | 提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9824015B2 (zh) |
EP (1) | EP3304321B1 (zh) |
JP (1) | JP6391855B2 (zh) |
KR (1) | KR101895852B1 (zh) |
CN (1) | CN107667355B (zh) |
AU (1) | AU2016270028A1 (zh) |
TW (1) | TWI627533B (zh) |
WO (1) | WO2016195869A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936045B2 (en) * | 2016-09-26 | 2021-03-02 | Hewlett-Packard Development Company, L.P. | Update memory management information to boot an electronic device from a reduced power mode |
US10678690B2 (en) * | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
EP3899719A4 (en) * | 2018-12-21 | 2022-07-06 | INTEL Corporation | VIRTUALIZATION OF PROCESS ADDRESS SPACE IDENTIFIERS USING HARDWARE PALL INDICATORS |
US11513973B2 (en) | 2019-12-20 | 2022-11-29 | Advanced Micro Devices, Inc. | Arbitration scheme for coherent and non-coherent memory requests |
CN111338989B (zh) * | 2020-02-12 | 2021-01-12 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法与存储*** |
US11847074B2 (en) | 2020-11-02 | 2023-12-19 | Honeywell International Inc. | Input/output device operational modes for a system with memory pools |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100648A1 (en) * | 2005-06-21 | 2010-04-22 | Rajesh Madukkarumukumana | Address window support for direct memory access translation |
US20110145542A1 (en) * | 2009-12-15 | 2011-06-16 | Qualcomm Incorporated | Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups |
US8301865B2 (en) * | 2009-06-29 | 2012-10-30 | Oracle America, Inc. | System and method to manage address translation requests |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH087719B2 (ja) * | 1989-02-10 | 1996-01-29 | 日本電気株式会社 | 情報処理システム |
JPH04205636A (ja) * | 1990-11-30 | 1992-07-27 | Matsushita Electric Ind Co Ltd | 高速アドレス変換装置 |
US5430857A (en) | 1993-01-04 | 1995-07-04 | Intel Corporation | Method and apparatus for translating logical addresses into physical addresses using odd/even translation tables |
US5652872A (en) * | 1994-03-08 | 1997-07-29 | Exponential Technology, Inc. | Translator having segment bounds encoding for storage in a TLB |
US6230248B1 (en) * | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US6493800B1 (en) * | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US7346757B2 (en) * | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US6986017B2 (en) | 2003-04-24 | 2006-01-10 | International Business Machines Corporation | Buffer pre-registration |
US8146087B2 (en) | 2008-01-10 | 2012-03-27 | International Business Machines Corporation | System and method for enabling micro-partitioning in a multi-threaded processor |
WO2010095182A1 (ja) * | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
US20120096226A1 (en) * | 2010-10-18 | 2012-04-19 | Thompson Stephen P | Two level replacement scheme optimizes for performance, power, and area |
JP5466768B2 (ja) | 2010-11-02 | 2014-04-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ・アクセスを制御する装置およびコンピュータ |
US9405700B2 (en) | 2010-11-04 | 2016-08-02 | Sonics, Inc. | Methods and apparatus for virtualization in an integrated circuit |
US8683175B2 (en) | 2011-03-15 | 2014-03-25 | International Business Machines Corporation | Seamless interface for multi-threaded core accelerators |
US9086989B2 (en) | 2011-07-01 | 2015-07-21 | Synopsys, Inc. | Extending processor MMU for shared address spaces |
CN103116556B (zh) * | 2013-03-11 | 2015-05-06 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
US9317443B2 (en) * | 2014-04-17 | 2016-04-19 | International Business Machines Corporation | Managing translations across multiple contexts using a TLB with entries directed to multiple privilege levels and to multiple types of address spaces |
-
2015
- 2015-05-29 US US14/725,882 patent/US9824015B2/en active Active
-
2016
- 2016-04-29 KR KR1020177034306A patent/KR101895852B1/ko active IP Right Grant
- 2016-04-29 CN CN201680029040.6A patent/CN107667355B/zh active Active
- 2016-04-29 TW TW105113591A patent/TWI627533B/zh active
- 2016-04-29 WO PCT/US2016/030040 patent/WO2016195869A1/en active Search and Examination
- 2016-04-29 JP JP2017560724A patent/JP6391855B2/ja active Active
- 2016-04-29 EP EP16723591.0A patent/EP3304321B1/en active Active
- 2016-04-29 AU AU2016270028A patent/AU2016270028A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100648A1 (en) * | 2005-06-21 | 2010-04-22 | Rajesh Madukkarumukumana | Address window support for direct memory access translation |
US8301865B2 (en) * | 2009-06-29 | 2012-10-30 | Oracle America, Inc. | System and method to manage address translation requests |
US20110145542A1 (en) * | 2009-12-15 | 2011-06-16 | Qualcomm Incorporated | Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups |
Also Published As
Publication number | Publication date |
---|---|
JP6391855B2 (ja) | 2018-09-19 |
TW201710907A (zh) | 2017-03-16 |
KR101895852B1 (ko) | 2018-09-07 |
WO2016195869A1 (en) | 2016-12-08 |
KR20180013930A (ko) | 2018-02-07 |
JP2018519579A (ja) | 2018-07-19 |
US20160350222A1 (en) | 2016-12-01 |
EP3304321A1 (en) | 2018-04-11 |
US9824015B2 (en) | 2017-11-21 |
BR112017025619A2 (pt) | 2018-08-07 |
AU2016270028A1 (en) | 2017-11-09 |
CN107667355B (zh) | 2021-02-02 |
CN107667355A (zh) | 2018-02-06 |
EP3304321C0 (en) | 2023-09-20 |
EP3304321B1 (en) | 2023-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055158B2 (en) | Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems | |
TWI627533B (zh) | 提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體 | |
TWI744289B (zh) | 使用多個最後階層快取線提供記憶體帶寬壓縮之以一中央處理單元(cpu)為基礎之系統及方法 | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
US9632953B2 (en) | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers | |
TW201807588A (zh) | 動態地判定在以處理器為基礎的系統中之記憶體屬性 | |
TWI612422B (zh) | 產生用於共享快取記憶體系統之近似使用量測 | |
US11822487B2 (en) | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer | |
JP2018508869A (ja) | 仮想化環境におけるストレージリソース管理 | |
US10228991B2 (en) | Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems | |
US10754795B2 (en) | MMU assisted address sanitizer | |
US20180285269A1 (en) | Aggregating cache maintenance instructions in processor-based devices | |
JP6396625B1 (ja) | 複数のマスタデバイス間の条件付き介入を使用したキャッシュコヒーレンシの維持 | |
US20240176742A1 (en) | Providing memory region prefetching in processor-based devices | |
BR112017025619B1 (pt) | Aparelho que compreende uma unidade de gerenciamento de memória e método para fornecer caches de tradução particionados |