TWI634417B - 選擇性轉譯後備暫存器搜尋及分頁錯誤 - Google Patents
選擇性轉譯後備暫存器搜尋及分頁錯誤 Download PDFInfo
- Publication number
- TWI634417B TWI634417B TW105104989A TW105104989A TWI634417B TW I634417 B TWI634417 B TW I634417B TW 105104989 A TW105104989 A TW 105104989A TW 105104989 A TW105104989 A TW 105104989A TW I634417 B TWI634417 B TW I634417B
- Authority
- TW
- Taiwan
- Prior art keywords
- power mode
- local memory
- matching
- translation entry
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/684—TLB miss handling
-
- 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)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種轉譯後備緩衝器(TLB)儲存轉譯條目。該等轉譯條目包括一虛擬位址、一實體位址及一記憶體本端/非本端旗標。當一處理器處於一低功率/本端記憶體模式中時,接收一虛擬位址。一匹配轉譯條目具有一本端/非本端旗標。在該本端/非本端旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部後,即產生一超出存取範圍記憶體存取異常。
Description
本申請案大體上係關於轉譯後備緩衝器(TLB)結構及管理。
攜帶型計算裝置,諸如無線電話及個人數位助理(PDA),持續要求增大資料儲存容量及處理速度。舉例而言,無線電話可同時充當數位相機、多媒體檔案播放機及攜帶型遊戲播放機。與增大功能性及效能需求同時,可用電池容積正(例如)歸因於較小攜帶型裝置及/或容積由其他硬體佔據而減小。
用於降低功率的一個已知技術為將計算裝置組態為(例如)回應於明確指令而切換至本端記憶體/低功率模式。在本端記憶體/低功率模式中,可允許處理核心僅存取一組較低功率本端資源(例如,可緊密地耦接至該處理核心的本端記憶體),且選擇其他低功率及/或基本裝置資源,且不可存取非本端資源。
在本端記憶體/低功率模式中,可使非本端資源中之一些或全部斷電,或以其他方式將其置放於非操作狀態下,從而提供電力節省。然而,必須在非本端資源可由處理器核心存取之前執行通電序列。此外,必須禁止當在本端資源低功率模式中操作時存取非本端資源的嘗試,此係因為彼等資源可能係非操作性的。用於阻止此類存取的已知習知技術可具有成本及其他缺點。
舉例而言,用於阻止當在本端記憶體/低功率模式中操作時存取非本端資源之嘗試的一個已知技術為當將切換至該模式時使計算裝置之轉譯後備緩衝器(TLB)中指向非本端資源的全部條目失效。結果為,當在本端記憶體/低功率模式中時存取非本端資源的任何嘗試將引起「分頁錯誤異常」,此係因為在TLB中不存在有效的映射條目。然而,使指向非本端資源的全部TLB條目失效可能需要大量處理功率及時間。又,在喚醒至正常功率操作後,可能需要相當大數目個TLB遺漏及所得頁面查核行程搜尋,直至TLB重新填入有效的外部記憶體轉譯條目。重複頁面查核行程搜尋可承擔相當大的功率及時間成本。
本【發明內容】識別一些實例態樣,且不為對所揭示標的物之窮盡性描述。一特徵包括於本【發明內容】還是自本【發明內容】忽略並不意欲作為具有相對重要性之指示物。描述額外特徵及態樣,且熟習此項技術者在閱讀以下詳細描述且在檢視組成其一部分的圖式後將明瞭該等特徵及態樣。
各態樣可提供用於在可約束對本端記憶體之存取的本端記憶體/低功率模式與啟用對(例如)遠端記憶體及其他資源之完整存取的正常功率模式之間切換之快速、低處理額外負荷的構件及方法(以及其他特徵)。另外態樣可提供(例如)切換至一本端記憶體/低功率模式而不需要轉譯後備緩衝器條目之失效,及切換回至一正常功率模式,及提供對應完整存取,而不需要再填充一轉譯後備緩衝器的TLB遺漏/頁面查核行程。
根據一或多個所揭示方法態樣的實例可提供對記憶體之存取,且實例操作可包括在一轉譯後備緩衝器中儲存複數個轉譯條目,且每一轉譯條目可包含一虛擬位址、一實體位址及一本端記憶體旗標,且在一態樣中,該本端記憶體旗標可指示該實體位址是否在一本端記憶
體外部。實例操作可進一步包括當一處理器處於一低功率模式中時,接收一所產生虛擬位址,且在識別出具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目後,即接著,若該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部,則實例操作可包括產生一超出存取範圍記憶體存取異常。
根據一或多個所揭示設備態樣之實例可提供存取記憶體,且可包括可經組態以儲存複數個轉譯條目的一轉譯後備緩衝器(TLB),且每一轉譯條目可包含一虛擬位址、一實體位址及一本端記憶體旗標,且在一態樣中,該本端記憶體旗標可指示該實體位址是否在一本端記憶體外部。根據一或多個態樣之實例設備可經進一步組態以接收一所產生虛擬位址,及識別具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目。根據一或多個態樣之實例設備可進一步包括一超出存取範圍異常電路,該超出存取範圍異常電路可經組態以回應於該匹配轉譯條目之該本端旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部而產生一超出存取範圍記憶體存取異常。
根據一或多個其他所揭示設備態樣的實例可提供對記憶體之存取,且包括用於儲存複數個轉譯條目的構件,複數個轉譯條目中之每一者可包含一虛擬位址、一實體位址及一本端記憶體旗標。在一態樣中,該本端記憶體旗標可指示該實體位址是否在一本端記憶體外部。根據其他設備態樣之實例可包括用於當一處理器在一低功率模式中時接收一所產生虛擬位址的構件,包括用於識別具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目的構件,且可包括用於在該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部的情況下產生一超出存取範圍記憶體存取異常的構件。
根據一或多個所揭示態樣之非暫時性電腦可讀媒體的實例可包
含程式碼,該程式碼當由一處理器執行時可使得該處理器在一轉譯後備緩衝器(TLB)中儲存複數個轉譯條目,複數個轉譯條目中之每一者可包含一虛擬位址、一實體位址及一本端記憶體旗標。在根據一個態樣之實例中,該本端記憶體旗標可指示該實體位址是否在一本端記憶體外部。在根據一態樣之實例中,當由一處理器執行時,當一處理器處於一低功率模式中時,該程式碼可使得該處理器接收一所產生虛擬位址,且在識別出具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目後,即接著,若該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部,則產生一超出存取範圍記憶體存取異常。
100‧‧‧可切換功率/記憶體存取模式處理器
102‧‧‧指令執行電路
104‧‧‧本端記憶體
106‧‧‧遠端記憶體
108‧‧‧匯流排
110‧‧‧轉譯後備單元
112‧‧‧轉譯後備緩衝器(TLB)
114‧‧‧功率模式暫存器
116‧‧‧低功率模式超出範圍存取異常邏輯
118‧‧‧硬體頁面查核器電路
120‧‧‧偏移電路
122‧‧‧邏輯與電路
150‧‧‧轉譯條目
150-1‧‧‧轉譯條目
150-r‧‧‧轉譯條目
200‧‧‧邏輯流程
300‧‧‧邏輯流程
400‧‧‧個人通信及計算裝置
402‧‧‧系統匯流排
404‧‧‧CPU
406‧‧‧處理器或CPU
408‧‧‧快取記憶體
410‧‧‧記憶體控制器
412‧‧‧記憶體系統
414‧‧‧輸入裝置
416‧‧‧輸出裝置
418‧‧‧網路介面裝置
420‧‧‧顯示控制器
422‧‧‧網路
424‧‧‧顯示器
426‧‧‧視訊處理器
1502‧‧‧虛擬位址頁碼(VPN)欄位
1504‧‧‧實體位址頁碼欄位
1506‧‧‧本端記憶體旗標欄位
1508‧‧‧「有效」欄位
呈現附圖以輔助各態樣之描述,且根據各態樣且展示各態樣而為說明性實例單獨提供附圖,且附圖並不為其限制。
圖1為根據一或多個態樣之一個實例可切換功率/記憶體存取模式處理器的邏輯方塊示意圖。
圖2展示在根據一或多個態樣之系統及方法中的一個本端低功率模式記憶體存取程序中之實例操作的邏輯流程圖。
圖3展示在根據一或多個態樣之系統及方法中的一個正常功率模式記憶體存取程序中之實例操作的邏輯流程圖。
圖4展示根據一或多個態樣之一個實例個人通信及計算裝置的功能示意圖。
在以下描述及相關圖式中揭示態樣。在閱讀本揭示後,並未脫離所揭示態樣之範疇的各種變更可變得顯而易見。另外,在對某些實例申請案、實施及其相關操作之描述中,明確地或隱含地自所描述上下文識別個例,其中可採用已知的習知技術用於某些組件及動作。在
此等情況下,可忽略對所採用習知技術之詳細描述,以免混淆本發明之相關細節。
詞語「例示性」在本文中用以意謂「充當實例、個例或說明」。本文中描述為「例示性」之相同的任何態樣或實例組態未必應被解釋為比其他態樣或組態較佳或有利。同樣,相對於術語「本發明之態樣」之對特徵、優點或操作模式的論述並不暗示本發明之全部態樣包括所論述特徵、優點或操作模式。
本文所使用之術語僅係出於描述特定態樣之目的,且並不意欲限制本發明。如本文所使用,單數形式「一」及「該」意欲亦包括複數形式,除非上下文另有明確指示。此外,如本文所用之術語「包含」及/或「包括」指定所陳述特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組的存在或添加。
另外,就實例操作而言描述某些態樣。應瞭解,除了在以其他方式描述之處之外,可藉由特定電路(例如,特殊應用積體電路(ASIC)),藉由由一或多個處理器執行的程式指令,或藉由兩者之組合執行此類操作。此外,可將特定電路(例如,ASIC)、處理器及由其中之一或多者執行的程式指令描述為「經組態以」執行所描述操作及動作的「邏輯」。另外,可認為本文中所描述之動作序列完全體現於任何形式之電腦可讀儲存媒體內,電腦可讀儲存媒體中已儲存有相對應電腦指令的集合,電腦指令集合在被執行時將使得相關聯之處理器執行本文中所描述之功能性。因此,可以數個不同形式體現各個態樣,各個態樣皆預期為在所主張的標的物之範疇內。
圖1展示根據一或多個態樣之一個實例可切換功率/記憶體存取模式處理器100的邏輯方塊示意圖。
在一態樣中,可切換功率/記憶體存取模式處理器100可包括指令
執行電路102,指令執行電路102可為(例如)ARMTM或其他類似架構微處理器核心,或能夠執行電腦可執行指令的任何其他架構可程式化狀態機(圖1中未展示)。用於指令執行電路102之電腦可執行指令可儲存於記憶體資源中,包括(例如)緊密地耦接至指令執行電路102的本端記憶體104,及可經由(例如)匯流排108連接至指令執行電路102的遠端記憶體106。應瞭解,術語「本端」及「遠端」在「本端記憶體」104及「遠端記憶體」106之內容脈絡中未必為對實體距離之描述詞。舉例而言,本端記憶體104及遠端記憶體106可距指令執行電路102具有任何相對距離。在一態樣中,本端記憶體104可(例如)經由專用連結或匯流排(在圖1中未具體展示)緊密地耦接至指令執行電路102。
繼續參看圖1,在一態樣中,指令執行電路102可產生由轉譯後備單元110轉譯成實際實體位址的虛擬位址,用於存取(例如)本端記憶體104、遠端記憶體106及其他非本端資源。轉譯後備單元110可具有轉譯後備緩衝器(TLB)112,轉譯後備緩衝器112具有儲存諸如標記為150-1、1502……150-R(統稱為「轉譯條目150」)之可見實例的R個虛擬頁面條目(以下稱作「轉譯條目」)的內容可定址記憶體(CAM)(在圖1中未單獨地展示)。每一轉譯條目150可將虛擬頁面(亦即,根據指令執行電路102虛擬定址方案之頁面)映射至實體頁碼。頁碼可對應於本端記憶體104、遠端記憶體106或另一非本端資源。R個轉譯條目150可為較大(圖1中未展示)虛擬位址至實體位址(以下稱作「虛擬至實體」)映射(在圖1中未具體可見)的一部分。
TLB 112可經組態以使用由指令執行電路102(例如,Q位元虛擬位址之P個位元)產生的虛擬位址之至少一部分而存取其R個轉譯條目150。TLB 112可具有CAM位址解碼器(圖中未展示),且可包括寫入電路系統(圖中未展示)以更新轉譯條目150。可使用習知TLB技術實施CAM位址解碼器及寫入電路系統,習知TLB技術可補充有稍後更詳細
地描述之選擇性啟用。在一態樣中,TLB 112可經組態以當其發現匹配其自指令執行電路102接收之虛擬位址(或虛擬位址之P位元欄位)的轉譯條目150時指示「TLB命中事件」。在一類似態樣中,TLB 112可經組態以回應於未發現匹配轉譯條目150而識別「TLB遺漏事件」。在另一態樣中,TLB 112可經組態以與識別TLB遺漏事件結合而產生分頁錯誤信號(在圖1中縮寫為「PF」)。
參看圖1的代表性實例轉譯條目之放大圖,標記為「150-r」的轉譯條目150可包括虛擬位址頁碼(VPN)欄位1502及實體位址頁碼欄位1504(以下稱作「頁面欄位1504」,且在圖1中縮寫為「PGN」),且在一態樣中包括本端記憶體旗標欄位1506。在一態樣中,本端記憶體旗標欄位1506可保持具有一值的「本端旗標」(在圖1中縮寫為「LM」),該值可在指示頁面欄位1504中之實體位址為在本端記憶體104中之位置的第一值與指示該實體位址為不在本端記憶體104中之位置的第二值之間切換。出於描述之目的,邏輯「0」將被指派為本端記憶體旗標之第一值,且邏輯「1」將被指派為本端記憶體旗標之第二值。此指派係任意的,且不意欲限制任何態樣之範疇。在稍後部分中更詳細地描述與本端記憶體旗標相關的實例特徵及操作。
參看代表性轉譯條目150-r,亦可包括有效/非有效欄位,諸如實例「有效」欄位1508。可根據已知、習知TLB有效/非有效欄技術設定且使用有效欄位1508,且因此,忽略進一步詳細描述。
參看圖1,在一態樣中,可切換功率/記憶體存取模式處理器100可進一步包含暫存器,諸如經指派或經組態以儲存功率模式指示符的功率模式暫存器114(在圖1中標記為縮寫「PWR模式」。功率模式暫存器114可為(例如)轉譯後備單元110之特徵。功率模式指示符可具有一值,該值可在指示可切換功率/記憶體存取模式處理器100處於其正常功率模式中的第一值(例如,邏輯「0」)與指示可切換功率/記憶體
存取模式處理器100處於其低功率模式中的第二值(例如,邏輯「1」)之間切換。此指派係任意的,且不意欲限制任何態樣之範疇。
繼續參看圖1,在一態樣中,轉譯後備單元110可包括低功率模式超出範圍存取異常邏輯116,為簡潔起見在本說明書中縮寫為任意名稱「LP存取異常邏輯116」。LP存取異常邏輯116可經組態以(例如,自本端記憶體旗標欄位1506)接收對應於TLB命中之所擷取轉譯條目150的本端記憶體旗標,且經組態以自功率模式暫存器114接收功率模式指示符。LP存取異常邏輯116可經組態以當可切換功率/記憶體存取模式處理器100處於低功率模式中時,回應於TLB命中之指示實體位址在本端記憶體外部的本端記憶體旗標而產生低功率存取異常信號。
參看圖1,一般熟習此項技術者自閱讀本發明將瞭解,LP存取異常邏輯116之特定實施可至少部分取決於指派至本端記憶體旗標、功率模式指示符及低功率存取異常信號之所要極性的邏輯值。
作為一個說明,邏輯「1」可被指派為作用中低功率存取異常信號之值。上述至本端記憶體旗標之值的實例指派為用以分別指示TLB命中之實體位址在本端記憶體104內部及外部的邏輯「0」及邏輯「1」。上述至儲存於中功率模式暫存器114中之功率模式指示符之值的實例指派為用以分別指示可切換功率/記憶體存取模式處理器100處於其正常功率模式中及其低功率模式中的邏輯「0」及邏輯「1」。如在圖1中可見,LP存取異常邏輯116可由此實施為及閘(AND gate)。在稍後部分中進一步描述之處於其低功率模式中之可切換功率/記憶體存取模式處理器100的實例操作中,具有在本端記憶體外部之實體位址的TLB位元將引起LP存取異常邏輯116之輸入處的本端記憶體旗標之邏輯「1」值與功率模式指示符之邏輯「1」值之間的同時發生(亦即,相互並行存在之間隔)。因此,LP存取異常邏輯116之實例實施的「及運算將輸出低功率存取異常信號之作用中(意謂邏輯「1」)值。
在一態樣中,可切換功率/記憶體存取模式處理器100可包括功率模式停用硬體頁面查核器電路118。根據另一態樣,功率模式停用硬體頁面查核器電路118可經組態以接收TLB 112回應於TLB遺漏事件而產生之分頁錯誤信號,且自功率模式暫存器114接收功率模式指示符。在一態樣中,功率模式停用硬體頁面查核器電路118可經組態以當其接收到處於指示低功率模式之值的功率模式指示符時自行停用,亦即相關於執行頁面查核行程而變得不操作。參看圖1,展示LP模式停用硬體頁面查核器電路118之可見實例,該可見實例具有任意地標記為「DE」之用於接收功率模式指示符的停用輸入,且具有任意地標記為「PW」之用於接收分頁錯誤信號的輸入。邏輯「1」可被指派為功率模式指示符之指示低功率模式的值,如在本發明中先前所述。假定功率模式指示符之實例經指派值,LP模式停用硬體頁面查核器電路118可經組態以回應於在其DE輸入處接收到邏輯「1」而自行停用。
根據另一態樣,功率模式停用硬體頁面查核器電路118可經組態以回應於當啟用時(例如,當接收在邏輯「0」處之功率模式指示符時)接收到分頁錯誤信號而執行對先前所描述的較大(例如,全系統)虛擬至實體映射的硬體頁面查核行程。功率模式停用硬體頁面查核器電路118可實施為(例如)已知習知硬體頁面查核器電路系統(未具體展示)與經組態以接收功率模式指示符之所添加停用邏輯(未具體展示)的組合。一般熟習此項技術者可藉由將此等人擁有之習知工程訣竅應用至本發明而實施習知硬體頁面查核器電路系統與停用邏輯之此類組合,而無需過度實驗。因而忽略進一步詳細描述。
在一態樣中,可切換功率/記憶體存取模式處理器100或外部處理器或操作環境(圖1中未展示)可經組態以藉由調用特定異常處理常式(圖中未展示)而回應於來自LP存取異常邏輯116之低功率存取異常信
號。特定異常處理常式可任意地被稱為「超出可允許存取範圍異常處理常式」。超出可允許存取範圍異常處理常式可經組態以當可切換功率/記憶體存取模式處理器100處於低功率模式中時,提供自指令執行電路102存取非本端資源(例如,在本端記憶體104外部之位置)的嘗試而恢復由超出可允許存取範圍異常處理常式執行的特定恢復操作可至少部分地為應用特定的,但可易於由一般熟習此項技術者藉由將此等人擁有之習知工程訣竅應用至本發明而實施,而無需過度實驗。因而忽略進一步詳細描述。
現將描述處於正常功率模式中之可切換功率/記憶體存取模式處理器100的實例操作。在一個實例中,指令執行電路102可將虛擬位址發送至轉譯後備單元110。該虛擬位址可具有Q個位元,如先前所描述。使用(例如)Q個位元中之P個,TLB 112可搜尋其R個轉譯條目150。若發現匹配轉譯條目,則產生TLB命中事件。匹配轉譯條目之本端記憶體旗標欄位1506可具有本端記憶體旗標,該本端記憶體旗標可處於指示頁面欄位1504之內容是否對應於本端記憶體104的邏輯值(「0」或「1」)。然而,當可切換功率/記憶體存取模式處理器100處於正常功率模式中時,功率模式暫存器114值為邏輯「0」,且LP存取異常邏輯116之邏輯與運算因而使得本端記憶體旗標為邏輯「0」值。處於其正常功率模式中的可切換功率/記憶體存取模式處理器100因而藉由無關於本端記憶體旗標值而產生完整實體位址(例如,經由在所擷取轉譯條目150之頁面欄位1504上操作的偏移電路120),而回應TLB命中事件。
繼續對實例正常功率模式操作之描述,若TLB 112無法在R個轉譯條目150中發現轉譯條目,則產生TLB遺漏事件(在圖1中未單獨地展示)。作為回應,TLB 112將指示未發現匹配轉譯條目的分頁錯誤信號傳送至功率模式停用硬體頁面查核器電路118之PW輸入。因為在
DE輸入處接收之功率模式指示符為邏輯「0」,故啟用功率模式停用硬體頁面查核器電路118。功率模式停用硬體頁面查核器電路118因而藉由執行具有分頁表(圖1中未展示)的硬體頁面查核行程而回應於分頁錯誤信號,該等分頁表如先前所描述,具有完整的經更新虛擬至實體映射,以供指令執行電路102存取其全部記憶體及其他資源。
由功率模式停用硬體頁面查核器電路118執行之硬體頁面查核行程可產生兩個結果中之任一者。一個結果為在分頁表中發現用於引起TLB遺漏事件的虛擬位址之虛擬至實體映射。另一可能結果為未發現任何虛擬至實體映射。若發現虛擬至實體映射,則功率模式停用硬體頁面查核器電路118可將其提供至轉譯後備單元110用於更新TLB 112。TLB 112之更新可產生新轉譯條目150,新轉譯條目150除了習知TLB映射資訊之外,亦包含具有經設定以指示由硬體頁面查核行程發現之實體位址在本端記憶體104中還是不在本端記憶體104中之本端記憶體旗標的本端記憶體旗標欄位1506。因此,在一態樣中,功率模式停用硬體頁面查核器電路118、轉譯後備單元110或其他邏輯(在圖1中未單獨地標記)中之一或多者可經組態以識別由功率模式停用硬體頁面查核器電路118發現之虛擬至實體映射的實體位址欄位在還是不在本端記憶體104中。在另一態樣中,轉譯後備單元110及功率模式停用硬體頁面查核器電路118中之一或多者可經組態以根據實體位址位置在還是不在本端記憶體104中的識別而設定TLB 112中之新轉譯條目的本端記憶體旗標欄位1506中之本端記憶體旗標。
上述實例操作與處於其正常功率模式中的可切換功率/記憶體存取模式處理器100相關聯。現將描述可切換功率/記憶體存取模式處理器100之實例低功率模式操作。可切換功率/記憶體存取模式處理器100可經組態以(例如)回應於對外部所產生命令(在圖1中未明確地可見)之接收而切換至低功率模式。與將切換至低功率模式相關聯,功
率模式暫存器114中之功率模式指示符可被設定為處於邏輯「1」。
一個實例低功率模式存取操作可以指令執行電路102將虛擬位址發送至轉譯後備單元110而開始。若轉譯後備單元110發現匹配轉譯條目150,則轉譯後備單元110產生TLB命中事件(在圖1中未具體展示)。假定發現匹配轉譯條目,將首先描述實例操作。將在稍後部分中進一步描述在轉譯後備單元未發現匹配轉譯條目的情況下可執行的實例操作。當處於低功率模式中時,在存取異常邏輯116處接收來自功率模式暫存器114之功率模式指示符的邏輯「1」值,與當處於正常功率模式中時所接收之邏輯「0」形成對比。所述邏輯「1」使得LP存取異常邏輯116之輸出取決於匹配轉譯條目150之本端記憶體旗標欄位1506中之本端旗標。因此,在低功率模式中,可切換功率/記憶體存取模式處理器100回應於TLB命中事件之操作取決於匹配轉譯條目150中之本端記憶體旗標。若本端記憶體旗標指示頁面欄位1504中之實體頁碼處於本端記憶體104中,則操作可如對於正常功率模式所述而繼續,即,可產生實體位址且可存取本端記憶體104。然而,若本端記憶體旗標識別出頁面欄位1504中之實體頁碼在本端記憶體104外部,則LP存取異常邏輯116將輸出作用中(在此實例中,邏輯「1」)低功率存取異常信號。在一態樣中,作用中低功率存取異常信號可使得先前所描述之超出可允許存取範圍異常處理常式被調用。
參看圖1,在當處於低功率模式中時與TLB命中事件相關聯之上述操作期間,功率模式停用硬體頁面查核器電路118藉由其DE輸入接收功率模式指示符之邏輯「1」值而被停用。在一態樣中,可切換功率/記憶體存取模式處理器100可包括經組態以當處於低功率模式中時回應於TLB遺漏事件而產生低功率模式TLB遺漏異常信號的邏輯。此類邏輯之一個實例實施可為邏輯及電路(logical AND circuit)122,邏輯及電路122可經組態以執行自TLB 112輸出之功率模式指示符及分
頁錯誤信號的邏輯及運算。處於低功率模式中時的TLB遺漏事件可在邏輯與電路122之輸入處產生功率模式指示符與TLB 112之分頁失敗輸出之間的同時發生(意謂相互並行存在之間隔)。邏輯及電路122可產生所得作用中(在此實例中,邏輯「1」)低功率模式TLB遺漏異常信號。
切換可切換功率/記憶體存取模式處理器100可包括將功率模式暫存器114中之功率模式指示符設定為指示正常功率模式的值。當處於正常功率模式中時,操作可接著包括在TLB 112處接收另一虛擬位址、識別具有匹配該另一虛擬位址的虛擬位址的另一匹配轉譯150條目、存取記憶體(例如,本端記憶體104或遠端記憶體106),而無關於本端記憶體旗標。
圖2展示根據一或多個態樣之與切換至低功率(圖2中縮寫為「LP」)模式相關聯之記憶體存取程序中之實例操作的邏輯流程200。為方便起見,將參看圖1的可切換功率/記憶體存取模式處理器100而描述實例操作。應瞭解,此類描述不意欲限制與圖1的可切換功率/記憶體存取模式處理器100或其架構相同的任何態樣或實踐。
參看圖1及圖2,流程200中之操作可在202處開始,其中(例如)回應於外部指令(在圖1及圖2中未明確地可見),可切換功率/記憶體存取模式處理器100切換至低功率模式。在一態樣中,202處之操作可包括將模式暫存器設定為指示至低功率模式的切換。舉例而言,可將功率模式暫存器114中之功率模式指示符設定為邏輯「1」。與在202處切換至低功率模式結合,流程200可在204處停用硬體頁面查核行程。參看圖1,204處之停用操作可由功率模式停用硬體頁面查核器電路118回應於在其DE輸入處接收到邏輯「1」功率模式指示符而執行。
在206處,在轉譯後備單元110處(例如)自指令執行電路102接收到虛擬位址後,流程200可接著繼續進行至208,其中TLB 112可使用
所接收虛擬位址搜尋其R個轉譯條目150。若208處之搜尋導致TLB命中(在決策區塊206處展示為「是」),則接著,如由決策區塊210所示,流程200可繼續進行至決策區塊212,自決策區塊212,取決於匹配轉譯條目150之本端記憶體旗標欄位1506中之本端記憶體旗標而採取兩個路徑中之一者。參看圖1,決策區塊212之操作可藉由LP存取異常邏輯116對本端記憶體旗標與來自功率模式暫存器114的本端記憶體旗標及邏輯「1」功率模式指示符進行邏輯及運算(logical AND)而提供。出於此描述之目的,本端記憶體旗標之所指派值對於本端記憶體104中的匹配轉譯條目之實體位址為邏輯「1」,且對於不在本端記憶體104中之實體位址為邏輯「0」。使用該指派,若本端記憶體旗標為邏輯「1」(亦即,匹配轉譯條目150之實體位址在本端記憶體104中),則流程200可自212之「是」分支繼續進行至214,以(例如)使用匹配轉譯條目150之頁面欄位1504產生完整實體位址。流程200可接著繼續進行至216,且使用在214處產生之實體位址而存取本端記憶體104,且接著在218處結束。當在206處接收到另一虛擬位址時,流程200可重複。
在上述所描述實例操作中,在208處對TLB 112之搜尋產生命中,從而引起自決策區塊210之「是」選路。參看圖1及圖2,在另一實例中,在208處對TLB 112之搜尋可能未能產生命中,從而導致自決策區塊210之「否」選路。流程200接著可繼續進行至220,且(例如)基於邏輯及電路122對來自該TLB 112之分頁錯誤及處於邏輯「1」的功率模式指示符之操作而產生低功率模式TLB遺漏異常信號。
參看圖1及圖2,且再次查看決策區塊212,若由TLB搜尋在208處發現之匹配轉譯條目150的本端記憶體旗標展示(例如,處於邏輯「0」之本端記憶體旗標)在其頁面欄位1504中之實體位址不在本端記憶體104中,則流程200可繼續進行至222,且產生低功率存取異常信
號(在區塊項222中縮寫為「LXE」)。參看圖1,222處之操作可包含LP存取異常邏輯116之及運算。流程200可接著繼續進行至224,且(例如)調用先前所描述之超出存取範圍異常處理常式。
圖3展示根據一或多個態樣之與切換至正常功率模式相關聯之記憶體存取程序中之實例操作的邏輯流程。為方便起見,參看圖1的可切換功率/記憶體存取模式處理器100描述流程300中之實例操作。應瞭解,此類描述不意欲限制與圖1的可切換功率/記憶體存取模式處理器100架構相同之任何態樣或實踐。
參看圖1及圖3,流程300中之操作可在302處開始,其中(例如)回應於外部指令(在圖1及圖3中未明確地可見),可切換功率/記憶體存取模式處理器100切換至正常功率模式(在區塊項302中縮寫為「NP」)。在一態樣中,302處之操作可包括將功率模式暫存器114中之功率模式指示符設定為邏輯「0」。與在302處切換至正常功率模式結合,流程300可在304處啟用功率模式停用硬體頁面查核器電路118。參看圖1,304處之啟用操作可由功率模式停用硬體頁面查核器電路118回應於在其DE輸入處接收到邏輯「0」功率模式指示符而執行。流程300接著可等待直至由轉譯後備單元110在306處(例如)自指令執行電路102接收到虛擬位址。
繼續參看圖1及圖3,在轉譯後備單元110在306處接收到虛擬位址後,流程300即可繼續進行至308,其中TLB 112可使用在306處所接收之虛擬位址而搜尋其R個轉譯條目150。若308處之搜尋導致TLB命中,亦即,發現匹配轉譯條目150(在決策區塊310處展示為「是」),則流程300可繼續進行至312,且使用(例如)匹配轉譯條目150之頁面欄位1504而產生完整實體位址。流程300可接著繼續進行至314,且使用在312處所產生之實體位址來存取其記憶體資源,例如,遠端記憶體106及/或本端記憶體104。在312處之存取之後,流程300可在314處
結束,且當在306處接收到另一虛擬位址時,流程300可重複。
參看圖1的LP存取異常邏輯116及圖3,應瞭解,歸因於LP存取異常邏輯116及與正常功率模式相關聯之功率模式指示符的邏輯「0」值,匹配轉譯條目150之本端記憶體旗標欄位1506中之本端記憶體旗標與流程300不相關。應瞭解,相比於需要重複TLB遺漏及頁面查核行程以重新填入TLB(如由使TLB中之全部非本端實體位址條目失效之習知技術所需要),此特徵可在切換至正常功率模式操作後即刻為可切換功率/記憶體存取模式處理器100提供不受限記憶體存取。
參看圖3,流程300中之操作的上述實例假定TLB命中源自於308處之搜尋。在另一實例中,參看圖1及圖3,308處之搜尋可能未能發現TLB 112中之匹配轉譯條目。作為回應,如由離開決策區塊310之「否」分支所示,流程300可繼續進行至318,且執行對分頁表(在圖1中未明確地可見)之硬體頁面查核行程。在318處執行的硬體頁面查核行程可根據已知、習知硬體頁面查核行程技術,且因此忽略進一步詳細描述。流程300中之在318處之硬體頁面查核行程之後的隨後操作可取決於硬體頁面查核行程是否發現虛擬至實體映射,如由決策區塊320所示。若未發現虛擬至實體映射,則如由離開決策區塊320之「否」分支所示,流程300可繼續進行至322且調用分頁錯誤異常。322處之分頁錯誤異常可回應於不成功硬體頁面查核行程而根據已知習知分頁錯誤技術,且因此,忽略進一步詳細描述。
參看圖1及如3,若318處之硬體頁面查核行程發現虛擬至實體映射(在圖1中未明確地可見),則接著如由離開決策區塊320之「是」分支所示,流程300可繼續進行至324且判定虛擬至實體映射之實體位址欄位指向本端記憶體(例如,本端記憶體104)還是在本端記憶體外部(例如,遠端記憶體106)。流程300可接著繼續進行至326,且使用324處之該判定用於以新轉譯映射條目150更新TLB 112。可根據實例150-
r格式化新轉譯映射條目150,新轉譯映射條目150在其VPN欄位1502及頁面欄位1504中具有由318處之硬體頁面查核行程發現的虛擬至實體映射,且在其本端記憶體旗標欄位1506中,具有設定為指示實體位址在本端記憶體104中還是在本端記憶體外部(例如,在遠端記憶體106中)之值(例如,邏輯「0」或「1」)的本端記憶體旗標。流程300可接著繼續進行至314,使用由318處之硬體頁面查核行程發現的虛擬至實體映射存取記憶體,且接著在316處結束。
圖4說明可如本文所描述,經組態以支援或提供參看圖1的處理器系統100所描述的功能及特徵之個人通信及計算裝置400的一個實例。參看圖4,個人通信及計算裝置400可包括系統匯流排402及耦接至該系統匯流排402的一或多個CPU 404。CPU 404可包含(例如)一或多個處理器或CPU 406及一或多個快取記憶體408。CPU 406可由(例如)一或多個可程式化計算裝置實施,諸如(但不限於)一或多個ARM類型處理裝置(在圖4中未單獨地可見)。CPU 406可能夠作為主控裝置執行。CPU 406可(例如)經由系統匯流排402互相耦接至各種主控及從屬裝置。根據習知通信協定,CPU 404可經由系統匯流排402藉由交換位址、控制及資料資訊而與此等其他裝置通信。儘管在圖4中未說明,但可提供多個系統匯流排402。在具有多個系統匯流排402的實例中,每一系統匯流排402可構成不同網狀架構。
參看圖4,CPU 404可將匯流排異動請求傳達至記憶體系統412之記憶體控制器410(作為從屬裝置之一個實例)。參看圖1及圖4,在一個態樣中,CPU 404可對應於圖1之指令執行電路102。CPU 404可經組態以包括實施本端記憶體104、轉譯後備單元110及功率模式停用硬體頁面查核器電路118的電路系統(在圖4中非明確地可見)及/或電腦可執行碼(在圖4中非明確地可見)。記憶體系統412可實施遠端記憶體106或形成遠端記憶體106之一部分。應瞭解,各態樣可包括將可自
CPU 404實體上分離的某些記憶體資源(在圖4中未必可見)指定為「本端記憶體」。同樣,諸態樣可包括將可實體上配置於可接近或可甚至在CPU 404中之一或多者內的區域(在圖4中未必可見)內的某些記憶體資源(在圖4中未必可見)指定為「在本端記憶體外部」或「遠端記憶體」。
參看圖4,其他主控及從屬裝置之實例可包括一或多個輸入裝置414、一或多個輸出裝置416、一或多個網路介面裝置418、及一或多個顯示控制器420。若經採用,則輸入裝置414可包括任何類型之輸入裝置,包括但不限於輸入鍵、開關、語音處理器及其類似者。若被使用,則輸出裝置416可包括任何類型之輸出裝置,包括但不限於音訊、視訊、其他視覺指示器及其類似者。若被使用,則網路介面裝置418可為經組態以允許與網路422交換資料的任何類型之網路介面裝置。網路422可為任何類型之網路,包括但不限於有線或無線網路、私人或公用網路、區域網路(LAN)、廣域網路(WLAN)及網際網路。網路介面裝置418可經組態以支援任一類型之所要通信協定。
繼續參看圖4,CPU 404亦可經組態以經由系統匯流排402存取顯示控制器420,以將控制資訊發送至一或多個顯示器424。顯示控制器420可(例如)經由一或多個視訊處理器426而將待顯示之資訊發送至顯示器424。視訊處理器426可將(例如)待顯示之資訊處理成適合於顯示器424的格式。若被使用,則顯示器424可包括任何類型之顯示器,例如,主動或被動液晶顯示器(LCD)、電漿顯示器及陰極射線管(CRT)。
前述所揭示裝置及功能性可經設計且經組態成儲存於電腦可讀媒體上的電腦檔案(例如,RTL、GDSII、GERBER等)。此等檔案中之一些或全部可被提供至基於此等檔案製造裝置的製造處理常式。所得產品包括接著被切割成半導體晶粒且封裝成半導體晶片的半導體晶
圓。接著在上文所述之裝置中採用所述晶片。
熟習此項技術者將瞭解,可使用多種不同技藝及技術中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合表示貫穿以上描述可能提及之資料、指令、命令、資訊、信號、位元、符號及晶片。
此外,熟習此項技術者將瞭解,結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體按其功能性加以描述。此功能性實施為硬體還是軟體取決於特定應用及強加於整個系統上之設計約束。熟習此項技術者可針對每一特定應用以不同方式實施所描述之功能性,但不應將此等實施決策解釋為導致脫離本發明之範疇。
結合本文中所揭示之態樣描述之方法、序列及/或演算法可以硬體、以由處理器執行之軟體模組、或以兩者之組合直接體現。軟體模組可駐留於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、抽取式磁碟、CD-ROM,或此項技術中已知之任何其他形式的儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可整合至處理器。
儘管前述揭示內容展示相同的說明性態樣及實例實施,但應注意,本文中可做出各種改變及修改而無需脫離本發明之如由所附申請專利範圍定義的範疇。不必以任何特定次序執行根據方法申請專利範圍的功能、步驟及/或動作。此外,儘管可以單數形式描述或主張本發明之元件,但除非明確地陳述對單數形式之限制,否則預期複數形式。
Claims (24)
- 一種用於存取記憶體的方法,其包含:在一轉譯後備緩衝器(TLB)中儲存複數個轉譯條目(entries),每一轉譯條目包含一虛擬位址、一實體位址及一本端記憶體旗標,其中該本端記憶體旗標指示該實體位址是否在一本端記憶體外部;及當一處理器處於一低功率模式中時:接收一所產生虛擬位址,及在識別出具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目後,接著,若該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部,則產生一超出存取範圍記憶體存取異常(exception),其中當產生該超出存取範圍記憶體存取異常時,該匹配轉譯條目保持有效(valid)且不執行記憶體存取。
- 如請求項1之方法,其中亦在識別出該匹配轉譯條目後,若該匹配轉譯條目之該本端記憶體旗標指示該實體位址不在該本端記憶體外部,則基於該實體位址而存取該本端記憶體。
- 如請求項1之方法,其進一步包含在該複數個轉譯條目當中無匹配轉譯條目後,即產生一分頁錯誤信號。
- 如請求項3之方法,其中該所產生虛擬位址為一第一虛擬位址,其中該方法進一步包含:將該處理器切換至一正常功率模式;及當該處理器處於該正常功率模式中時,接收一第二虛擬位址;在識別出該複數個轉譯條目中無一者具有匹配該第二虛擬 位址之一虛擬位址後,即基於該第二虛擬位址而執行一硬體頁面查核行程;及在該硬體頁面查核行程發現匹配該第二虛擬位址的一虛擬位址至實體位址映射後,即以對應於該第二虛擬位址之一新轉譯條目更新該TLB。
- 如請求項4之方法,其中更新該TLB包括將該新轉譯條目之該本端記憶體旗標設定為指示由該虛擬位址至實體位址映射指示之該實體位址在該本端記憶體外部還是非外部的一值。
- 如請求項4之方法,其進一步包含與將該處理器切換至該正常功率模式結合而啟用一硬體頁面查核器,其中該硬體頁面查核器執行該硬體頁面查核行程。
- 如請求項4之方法,其進一步包含將該處理器切換回至該低功率模式;且與將該處理器切換至該低功率模式結合而停用一硬體頁面查核器。
- 如請求項1之方法,其進一步包含:將該處理器自一正常功率模式切換至該低功率模式;及與將該處理器切換至該低功率模式結合,將一暫存器中之一功率模式指示符設定為指示該低功率模式的一值。
- 如請求項8之方法,其中產生該超出存取範圍記憶體存取異常係基於該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部與該功率模式指示符處於指示該低功率模式之該值的同時發生。
- 如請求項9之方法,其進一步包含在該複數個轉譯條目中無一者具有匹配該所產生虛擬位址之一虛擬位址後,即產生一低功率模式TLB遺漏異常信號。
- 如請求項10之方法,其中產生該低功率模式TLB遺漏異常信號包 含:回應於識別出該複數個轉譯條目中無一者具有匹配該所產生虛擬位址之一虛擬位址,產生指示未發現匹配轉譯條目的一分頁錯誤信號;及基於該分頁錯誤信號指示未發現匹配轉譯條目與該功率模式指示符處於指示該低功率模式之該值的同時發生,產生該低功率模式TLB遺漏異常信號。
- 如請求項8之方法,其進一步包含:將該處理器自該低功率模式切換至該正常功率模式;與將該處理器切換至該正常功率模式結合,將該暫存器中之該功率模式指示符設定為指示該正常功率模式的一值;及當該處理器處於該正常功率模式中時,接收另一虛擬位址;及在識別出具有匹配該另一虛擬位址之一虛擬位址的另一匹配轉譯條目後,即無關於該本端記憶體旗標而存取一記憶體。
- 一種用於存取記憶體的設備,其包含一轉譯後備緩衝器(TLB),其經組態以:儲存複數個轉譯條目,每一轉譯條目包含一虛擬位址、一實體位址及一本端記憶體旗標,其中該本端記憶體旗標指示該實體位址是否在一本端記憶體外部,接收一所產生虛擬位址,及識別具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目;及一超出存取範圍異常電路,其經組態以回應於該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該 本端記憶體外部而產生一超出存取範圍記憶體存取異常,其中當產生該超出存取範圍記憶體存取異常時,該匹配轉譯條目保持有效且不執行記憶體存取。
- 如請求項13之設備,其進一步包含:一暫存器,其經組態以儲存處於指示一低功率模式的一值之一功率模式指示符,其中該超出存取範圍異常電路經組態以基於該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部與該功率模式指示符處於指示該低功率模式之該值的同時發生而產生該超出存取範圍記憶體存取異常。
- 如請求項14之設備,其進一步包含經組態以回應於識別出無匹配轉譯條目具有匹配該所產生虛擬位址之一虛擬位址而產生一低功率模式TLB遺漏異常信號的一電路。
- 如請求項14之設備,其中該TLB經組態以回應於識別出無匹配轉譯條目具有匹配該所產生虛擬位址之一虛擬位址而產生指示未發現匹配轉譯條目的一分頁錯誤信號,且其中該設備進一步包含經組態以基於該分頁錯誤信號指示未發現匹配轉譯條目與該功率模式指示符處於指示該低功率模式之該值的同時發生而產生一低功率模式TLB遺漏異常信號的一邏輯。
- 如請求項14之設備,其中該功率模式指示符可在指示該低功率模式的該值與指示一正常功率模式的一值之間切換,且其中該超出存取範圍異常電路經組態以基於該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部與該功率模式指示符處於指示該低功率模式之該值的同時發生而產生該超出存取範圍記憶體存取異常。
- 如請求項17之設備,其中該超出存取範圍異常電路經進一步組態以回應於該功率模式指示符處於指示該正常功率模式之該值而禁止產生該超出存取範圍記憶體存取異常。
- 如請求項18之設備,其中該TLB經組態以回應於識別出該複數個轉譯條目中無一者具有匹配該所產生虛擬位址之一虛擬位址而產生指示未發現匹配轉譯條目的一分頁錯誤信號,且其中該設備進一步包含一硬體頁面查核器電路,其經組態以接收該功率模式指示符及該分頁錯誤信號,且回應於該分頁錯誤信號指示未發現匹配轉譯條目與該功率模式指示符處於指示該正常功率模式之該值的同時發生而基於該所產生虛擬位址執行一硬體頁面查核行程。
- 如請求項19之設備,其中該硬體頁面查核器電路經組態以回應於接收到處於指示該低功率模式之該值的該功率模式指示符而被停用。
- 如請求項19之設備,其中該硬體頁面查核器(walker)電路經組態以回應於發現匹配該所產生虛擬位址之一虛擬位址至實體位址映射而為該TLB提供該虛擬位址至實體位址映射,且其中該TLB經組態而以對應於該所產生虛擬位址之一新轉譯條目更新該TLB。
- 如請求項21之設備,其中該TLB經組態以包括將該新轉譯條目之該本端記憶體旗標設定為指示由該虛擬位址至實體位址映射指示之該實體位址在該本端記憶體外部還是非外部的一值。
- 一種用於存取記憶體的設備,其包含:用於儲存複數個轉譯條目的構件,每一轉譯條目包含一虛擬 位址、一實體位址及一本端記憶體旗標,其中該本端記憶體旗標指示該實體位址是否在一本端記憶體外部;用於當一處理器處於一低功率模式中時接收一所產生虛擬位址的構件;用於識別具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目的構件;及用於在該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部的情況下產生一超出存取範圍記憶體存取異常的構件,其中當產生該超出存取範圍記憶體存取異常時,該匹配轉譯條目保持有效且不執行記憶體存取。
- 一種包含程式碼的非暫時性電腦可讀媒體,該程式碼當由一處理器執行時使得該處理器:在一轉譯後備緩衝器(TLB)中儲存複數個轉譯條目,每一轉譯條目包含一虛擬位址、一實體位址及一本端記憶體旗標,其中該本端記憶體旗標指示該實體位址是否在一本端記憶體外部;及當該處理器處於一低功率模式中時,接收一所產生虛擬位址;及在識別出具有匹配該所產生虛擬位址之一虛擬位址的一匹配轉譯條目後,即接著,若該匹配轉譯條目之該本端記憶體旗標指示該匹配轉譯條目之該實體位址在該本端記憶體外部,則產生一超出存取範圍記憶體存取異常。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/626,925 US9858201B2 (en) | 2015-02-20 | 2015-02-20 | Selective translation lookaside buffer search and page fault |
US14/626,925 | 2015-02-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201643606A TW201643606A (zh) | 2016-12-16 |
TWI634417B true TWI634417B (zh) | 2018-09-01 |
Family
ID=55346224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104989A TWI634417B (zh) | 2015-02-20 | 2016-02-19 | 選擇性轉譯後備暫存器搜尋及分頁錯誤 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9858201B2 (zh) |
EP (1) | EP3259671B1 (zh) |
KR (1) | KR101868389B1 (zh) |
CN (1) | CN107250997B (zh) |
TW (1) | TWI634417B (zh) |
WO (1) | WO2016133674A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658793B2 (en) | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
US10956332B2 (en) | 2017-11-01 | 2021-03-23 | Advanced Micro Devices, Inc. | Retaining cache entries of a processor core during a powered-down state |
CN108959125B (zh) * | 2018-07-03 | 2021-08-06 | 中国人民解放军国防科技大学 | 一种支持数据快速获取的存储访问方法和装置 |
US11243891B2 (en) * | 2018-09-25 | 2022-02-08 | Ati Technologies Ulc | External memory based translation lookaside buffer |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
US11301396B2 (en) * | 2019-03-29 | 2022-04-12 | Intel Corporation | Technologies for accelerated data access and physical data security for edge devices |
US11334496B2 (en) * | 2019-12-06 | 2022-05-17 | EMC IP Holding Company LLC | Method and system for providing processor-addressable persistent memory to guest operating systems in a storage system |
KR20230163881A (ko) * | 2022-05-24 | 2023-12-01 | 삼성전자주식회사 | 입출력 메모리 관리 유닛과 이를 포함하는 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100378650C (zh) * | 2004-01-16 | 2008-04-02 | 智权第一公司 | 微处理机与随机存取快取记忆体的快速弹出装置及其方法 |
TW201447574A (zh) * | 2013-03-14 | 2014-12-16 | Nvidia Corp | 管理統一虛擬記憶體的分頁狀態目錄 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3012227A (en) | 1956-09-26 | 1961-12-05 | Ibm | Signal storage system |
US4200915A (en) | 1978-04-05 | 1980-04-29 | Allen-Bradley Company | Program loader for programmable controller |
DE3854770T2 (de) | 1987-06-29 | 1997-02-06 | Digital Equipment Corp | Busadapter für digitales Rechensystem |
US5113511A (en) | 1989-06-02 | 1992-05-12 | Atari Corporation | System for dynamically providing predicted high/slow speed accessing memory to a processing unit based on instructions |
US5295258A (en) * | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5386563A (en) | 1992-10-13 | 1995-01-31 | Advanced Risc Machines Limited | Register substitution during exception processing |
US5809563A (en) | 1996-11-12 | 1998-09-15 | Institute For The Development Of Emerging Architectures, Llc | Method and apparatus utilizing a region based page table walk bit |
US5996051A (en) | 1997-04-14 | 1999-11-30 | Advanced Micro Devices, Inc. | Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array |
US6412056B1 (en) | 1997-10-01 | 2002-06-25 | Compac Information Technologies Group, Lp | Extended translation lookaside buffer with fine-grain state bits |
JPH11282746A (ja) | 1998-03-03 | 1999-10-15 | Internatl Business Mach Corp <Ibm> | Dramアクセス方法およびdramコントロ−ラ |
JP3922859B2 (ja) | 1999-12-28 | 2007-05-30 | 株式会社リコー | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
EP1182570A3 (en) | 2000-08-21 | 2004-08-04 | Texas Instruments Incorporated | TLB with resource ID field |
EP1182561B1 (en) | 2000-08-21 | 2011-10-05 | Texas Instruments France | Cache with block prefetch and DMA |
EP1182568A3 (en) | 2000-08-21 | 2004-07-21 | Texas Instruments Incorporated | TLB operation based on task-id |
US6766433B2 (en) | 2001-09-21 | 2004-07-20 | Freescale Semiconductor, Inc. | System having user programmable addressing modes and method therefor |
US6799257B2 (en) | 2002-02-21 | 2004-09-28 | Intel Corporation | Method and apparatus to control memory accesses |
US7143203B1 (en) | 2002-04-26 | 2006-11-28 | Advanced Micro Devices, Inc. | Storage device control responsive to operational characteristics of a system |
US20040064655A1 (en) | 2002-09-27 | 2004-04-01 | Dominic Paulraj | Memory access statistics tool |
US7146469B2 (en) | 2002-10-24 | 2006-12-05 | Sony Corporation | Method, apparatus, and system for improving memory access speed |
US20040128574A1 (en) * | 2002-12-31 | 2004-07-01 | Franco Ricci | Reducing integrated circuit power consumption |
JP4945053B2 (ja) | 2003-03-18 | 2012-06-06 | ルネサスエレクトロニクス株式会社 | 半導体装置、バスインターフェース装置、およびコンピュータシステム |
KR20060026884A (ko) | 2003-06-24 | 2006-03-24 | 로베르트 보쉬 게엠베하 | 프로세서 유닛의 적어도 2개의 작동 모드 사이의 전환 방법및 상응하는 프로세서 유닛 |
US7412581B2 (en) | 2003-10-28 | 2008-08-12 | Renesas Technology America, Inc. | Processor for virtual machines and method therefor |
EP1736887A3 (fr) | 2005-05-31 | 2009-04-22 | Stmicroelectronics Sa | Repertoire de pages memoire |
KR100663864B1 (ko) * | 2005-06-16 | 2007-01-03 | 엘지전자 주식회사 | 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법 |
US7516274B2 (en) | 2005-11-15 | 2009-04-07 | Sun Microsystems, Inc. | Power conservation via DRAM access reduction |
US7958312B2 (en) | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
US7653789B2 (en) | 2006-02-01 | 2010-01-26 | Sun Microsystems, Inc. | Multiprocessor system that supports both coherent and non-coherent memory accesses |
US7882307B1 (en) | 2006-04-14 | 2011-02-01 | Tilera Corporation | Managing cache memory in a parallel processing environment |
US20080147977A1 (en) | 2006-07-28 | 2008-06-19 | International Business Machines Corporation | Design structure for autonomic mode switching for l2 cache speculative accesses based on l1 cache hit rate |
WO2008122746A1 (en) | 2007-04-10 | 2008-10-16 | Cambridge Consultants Limited | Data processing apparatus |
US8601234B2 (en) | 2007-11-07 | 2013-12-03 | Qualcomm Incorporated | Configurable translation lookaside buffer |
US9244855B2 (en) | 2007-12-31 | 2016-01-26 | Intel Corporation | Method, system, and apparatus for page sizing extension |
US8639245B2 (en) | 2009-06-08 | 2014-01-28 | Qualcomm Incorporated | Method and apparatus for updating rules governing the switching of virtual SIM service contracts |
US8719547B2 (en) * | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
US8285936B2 (en) | 2009-10-20 | 2012-10-09 | The Regents Of The University Of Michigan | Cache memory with power saving state |
WO2011112523A2 (en) | 2010-03-08 | 2011-09-15 | Hewlett-Packard Development Company, L.P. | Data storage apparatus and methods |
US8429378B2 (en) * | 2010-07-06 | 2013-04-23 | Qualcomm Incorporated | System and method to manage a translation lookaside buffer |
US8990602B2 (en) * | 2010-12-21 | 2015-03-24 | Intel Corporation | Apparatus, method, and system for early deep sleep state exit of a processing element |
KR20130002046A (ko) | 2011-06-28 | 2013-01-07 | 삼성전자주식회사 | 멀티 코어를 포함하는 저장 장치의 전력 관리 방법 |
WO2013095559A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Power conservation by way of memory channel shutdown |
US9075719B2 (en) | 2012-02-10 | 2015-07-07 | Hitachi, Ltd. | Computer system and storage system |
US9141560B2 (en) * | 2012-06-29 | 2015-09-22 | Intel Corporation | Multi-level storage apparatus |
US9069690B2 (en) * | 2012-09-13 | 2015-06-30 | Intel Corporation | Concurrent page table walker control for TLB miss handling |
JP5734492B1 (ja) | 2014-05-08 | 2015-06-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US11656874B2 (en) | 2014-10-08 | 2023-05-23 | Nxp Usa, Inc. | Asymmetrical processor memory architecture |
US9658793B2 (en) * | 2015-02-20 | 2017-05-23 | Qualcomm Incorporated | Adaptive mode translation lookaside buffer search and access fault |
-
2015
- 2015-02-20 US US14/626,925 patent/US9858201B2/en active Active
-
2016
- 2016-01-29 KR KR1020177022982A patent/KR101868389B1/ko active IP Right Grant
- 2016-01-29 EP EP16703901.5A patent/EP3259671B1/en active Active
- 2016-01-29 CN CN201680009906.7A patent/CN107250997B/zh active Active
- 2016-01-29 WO PCT/US2016/015599 patent/WO2016133674A1/en active Application Filing
- 2016-02-19 TW TW105104989A patent/TWI634417B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100378650C (zh) * | 2004-01-16 | 2008-04-02 | 智权第一公司 | 微处理机与随机存取快取记忆体的快速弹出装置及其方法 |
TW201447574A (zh) * | 2013-03-14 | 2014-12-16 | Nvidia Corp | 管理統一虛擬記憶體的分頁狀態目錄 |
Also Published As
Publication number | Publication date |
---|---|
WO2016133674A1 (en) | 2016-08-25 |
EP3259671B1 (en) | 2018-10-31 |
EP3259671A1 (en) | 2017-12-27 |
CN107250997A (zh) | 2017-10-13 |
CN107250997B (zh) | 2021-02-12 |
US9858201B2 (en) | 2018-01-02 |
TW201643606A (zh) | 2016-12-16 |
KR101868389B1 (ko) | 2018-06-18 |
KR20170120109A (ko) | 2017-10-30 |
US20160246731A1 (en) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI634417B (zh) | 選擇性轉譯後備暫存器搜尋及分頁錯誤 | |
JP6855573B2 (ja) | ユーザ端末の位置エリアの更新方法、アクセスネットワークエンティティ、ユーザ端末およびコアネットワークエンティティ | |
EP3028162B1 (en) | Direct access to persistent memory of shared storage | |
TWI531912B (zh) | 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法 | |
CN104572313B (zh) | 一种进程间的通信方法及装置 | |
US20170177541A1 (en) | Apparatus and method for transferring data and commands in a memory management environment | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
KR101531695B1 (ko) | 변환 색인 버퍼를 관리하기 위한 시스템 및 방법 | |
US9286148B1 (en) | Hardware-assisted interthread push communication | |
US9703697B2 (en) | Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment | |
US20110145542A1 (en) | Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups | |
CN104169897B (zh) | Pci高速地址解码的方法 | |
US20230289295A1 (en) | Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses | |
US20210406195A1 (en) | Method and apparatus to enable a cache (devpic) to store process specific information inside devices that support address translation service (ats) | |
US9454201B2 (en) | Detecting access to powered down device | |
EP2656227A2 (en) | Debugging complex multi-core and multi-socket systems | |
WO2015021822A1 (zh) | 扩大mcu程序地址空间的方法及装置 | |
CN105229746A (zh) | 在进行数据存取之前将数据从存储器中的有缺陷数据项重导向到冗余数据项,及相关系统及方法 | |
WO2018036486A1 (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
US9658793B2 (en) | Adaptive mode translation lookaside buffer search and access fault | |
CN108664417B (zh) | 一种目录更新方法及装置 | |
TW201835781A (zh) | 使用元資料之異動消除 | |
JP5752331B2 (ja) | 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法 | |
US10419571B2 (en) | Packet processor forwarding database cache | |
JP2004187114A (ja) | アドレスフィルタリング装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |