TW201926060A - 省電快取記憶體使用 - Google Patents
省電快取記憶體使用 Download PDFInfo
- Publication number
- TW201926060A TW201926060A TW107119411A TW107119411A TW201926060A TW 201926060 A TW201926060 A TW 201926060A TW 107119411 A TW107119411 A TW 107119411A TW 107119411 A TW107119411 A TW 107119411A TW 201926060 A TW201926060 A TW 201926060A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- cache memory
- supplemental
- functional
- Prior art date
Links
Classifications
-
- 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
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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)
- Power Sources (AREA)
Abstract
本發明描述實現省電快取記憶體使用之技術及裝置。可使用該等所描述技術及裝置使運用例如DRAM建構之主記憶體處於諸如一自我再新模式之一低電力模式中達較長時間週期。一階層式記憶體系統包含可操作地耦合在一較高層級快取記憶體與該主記憶體之間之一補充快取記憶體。該主記憶體可回應於選擇性地啟動該補充快取記憶體而處於該自我再新模式中。可用小於該較高層級快取記憶體之一高度或完全關聯快取記憶體來實施該補充快取記憶體。因此,該補充快取記憶體可處置由於過多記憶體區塊映射至一單一快取線而出現之該較高層級快取記憶體之彼等快取未命中。以此方式,該主記憶體之一DRAM實施可保持在該自我再新模式中達較長時間週期。
Description
電子器件在製造、通信、保健、商業、社交及娛樂方面發揮不可或缺的作用中。舉例而言,電子器件供電給為商業及通信提供基於雲端、分佈式運算功能性之伺服器場。具有運算能力之器件亦嵌入許多不同類型之現代設備中,從醫療器件至電器及從車輛至工業工具。另外,一種電子器件(智慧型電話)已成為隨時在手邊之一必需品。隨著電子器件變得如此普遍,由電子器件消耗之電力已成為一問題。
因此,製造商在設計電子器件時考量預期電力消耗位準。降低電力消耗之動機包含減小使用成本及最小化環境影響。此外,可攜帶電子器件由電池供電,電池在需再充電之前具有提供能量之有限能力。因此,一可攜帶電子器件可藉由降低電力消耗而在需再充電之前使用較長週期。一較低電力消耗速率亦可實現一較小電池之使用以減小一可攜帶電子器件之大小。
在電子器件中,積體電路及印刷電路基板(諸如印刷電路板(PCB)或膜)引致大百分比之電力消耗。藉由減少電路在一段時間內使用之能量,可降低整個電子器件之電力消耗,且可延長電池壽命。減少電路之能量使用之一個方法係使電路間歇地斷電。不幸地,使電路斷電影響其等功能性且可能因此影響對應電子器件之能力或由對應電子器件提供之使用者體驗。
舉例而言,考量動態隨機存取記憶體(DRAM)。由於DRAM之大小、速度及成本之獨特組合,因此許多電子器件中使用DRAM來儲存資訊,諸如電腦程式碼及資料。然而,DRAM之一負面屬性係DRAM在用於儲存此等資訊時消耗相當大量電力。因此,使一DRAM區塊斷電可節省大量電力且延長電池壽命。不幸地,完全切斷DRAM之電力導致儲存之資訊丟失。因此,為減少能量使用且延長電池壽命,設計者尋找可使DRAM能夠斷電而不丟失所儲存資訊的技術。
提供此先前技術描述以大致呈現本發明之背景內容。除非本文中另外指示,否則此章節中描述之材料既不明確亦不暗示地承認係本發明或隨附技術方案之先前技術。
描述實現省電快取記憶體使用之技術及裝置。此等技術及裝置使運用動態隨機存取記憶體(DRAM)建構之主記憶體能夠處於一低電力模式(諸如一自我再新模式)中達在較長時間週期內或較少中斷(其導致由備用電力供電給DRAM)。為如此做,一階層式記憶體系統包含可操作地耦合在一較高層級快取記憶體與主記憶體之間之一補充快取記憶體。可選擇性地啟動補充快取記憶體,且若補充快取記憶體作用中,則主記憶體可處於自我再新模式中。可用小於較高層級快取記憶體之一高度或完全關聯快取記憶體來實施補充快取記憶體。因此,補充快取記憶體可處置由於過多記憶體區塊映射至一單一快取線(甚至在較高層級快取記憶體不滿時)出現之較高層級快取記憶體之彼等快取未命中。以此方式,主記憶體之DRAM可保持在自我再新模式中達較長時間週期。
下文中描述之態樣包含一種電子器件,其包括在一第一階層層級之一第一快取記憶體、在一第二階層層級之一補充快取記憶體、在一第三階層層級之一主記憶體及控制電路。第二階層層級低於第一階層層級,且第三階層層級低於第二階層層級。補充快取記憶體通信地耦合至第一快取記憶體且經組態以嘗試處置第一快取記憶體之快取未命中。主記憶體通信地耦合至第一快取記憶體及補充快取記憶體兩者。控制電路耦合至補充快取記憶體及主記憶體且經組態以導致兩個或兩個以上功能記憶體狀態之間之轉變。兩個或兩個以上功能記憶體狀態包含一第一功能記憶體狀態及一第二功能記憶體狀態。在第一功能記憶體狀態之情況下,補充快取記憶體處於一非作用中操作模式中且主記憶體處於一常規電力模式中。在第二功能記憶體狀態之情況下,補充快取記憶體處於一作用中操作模式中且主記憶體處於一低電力模式中。
下文中描述之態樣亦包含一種包括操作包含一第一快取記憶體、一補充快取記憶體及一主記憶體之一記憶體系統的方法,其中補充快取記憶體經組態以選擇性地處置第一快取記憶體之快取未命中。該方法亦包括判定補充快取記憶體之一操作模式,其中該操作模式包括一非作用中操作模式或一作用中操作模式。該方法額外地包括:回應於補充快取記憶體處於非作用中操作模式中,針對與第一快取記憶體之一快取未命中相關聯之一記憶體請求而繞過補充快取記憶體且將該記憶體請求投送至主記憶體。該方法進一步包括,回應於補充快取記憶體處於作用中操作模式中:判定由記憶體請求鎖定目標之資訊儲存於補充快取記憶體中;且回應於判定鎖定目標資訊儲存於補充快取記憶體中,從補充快取記憶體提供鎖定目標資訊。
下文中描述之態樣包含另一種電子器件,其包括一或多個處理器及一或多個電腦可讀儲存媒體。一或多個電腦可讀儲存媒體包含:一第一快取記憶體;一主記憶體;一補充快取記憶體,其通信地耦合在該第一快取記憶體與該主記憶體之間;及一暫存器,其經組態以保存一可設定值。一或多個電腦可讀儲存媒體亦包含儲存於其上之指令。回應於由一或多個處理器執行指令,該等指令導致執行多個操作。此多個操作包含:導致程式碼在一或多個處理器上執行;及基於程式碼調整可設定值以選擇性地使補充快取記憶體能夠作為相對於第一快取記憶體之一較低層級快取資源操作。
下文中描述之態樣包含一種系統,其包括在一第一階層層級之一第一快取記憶體、在一第二階層層級之一補充快取記憶體、及在一第三階層層級之一主記憶體。第二階層層級低於第一階層層級,且第三階層層級低於第二階層層級。系統亦包括用於導致包含一第一功能記憶體狀態及一第二功能記憶體狀態之兩個或兩個以上功能記憶體狀態之間之轉變的控制構件。為例示第一功能記憶體狀態,控制構件導致補充快取記憶體轉變至一非作用中操作模式且導致主記憶體在一常規電力模式中操作。為例示第二功能記憶體狀態,控制構件導致補充快取記憶體轉變至一作用中操作模式且導致主記憶體在一低電力模式中操作。
概述
電子器件之電路在操作期間消耗大量電力。降低此電力消耗可降低能量成本、減少負面環境影響且延長電池壽命。消耗相當大量電力之一個電路類型係動態隨機存取記憶體(DRAM)。為減少由一DRAM區塊消耗之電力量,DRAM區塊可斷電。然而,使DRAM完全斷電導致所儲存資訊丟失。為避免丟失一DRAM區塊之所儲存內容,DRAM區塊可代替地部分斷電。用於使一DRAM區塊部分斷電之一個方案被稱為一自我再新模式。若一DRAM區塊處於一自我再新模式中,則維持所儲存記憶體內容,同時電力仍減少。
不幸地,DRAM區塊在自我再新模式中操作時通常無法存取。為存取記憶體內容,喚醒DRAM區塊,此通常耗費相當大量時間。若一執行程式在記憶體內容被存取前無法繼續,則程式在喚醒時間期間暫停,且使用者被迫等待或以其他方式經受一緩慢器件及一不佳的使用者體驗。因此,若降低DRAM喚醒之頻率,則程式執行可更快且可改良使用者體驗。為降低喚醒一休眠DRAM區塊之頻率,可採用快取記憶體。
最初,主要採用快取記憶體以在一處理器存取記憶體以獲取指令或資料時提供一較快速回應時間。通常使用相較於DRAM更快速但更昂貴之一記憶體類型(諸如靜態隨機存取記憶體(SRAM))來形成快取記憶體。相應地,一系統中之快取記憶體之數量小於主記憶體之數量,且快取記憶體儲存藉由主記憶體保存之記憶體內容之一子集。因此,快取記憶體負責儲存一處理器最可能很快或重複使用之資訊(指令或資料)。
然而,亦可使用快取記憶體來節省電力。舉例而言,快取記憶體可使DRAM能夠進入一較低電力、自我再新模式。藉由使一DRAM晶片處於一自我再新模式中而使其斷電節省相當大量電力(例如,每十億位元組(GB)記憶體約60毫瓦(mW))。當快取記憶體滿足由處理器發佈之記憶體存取請求時,DRAM可繼續在自我再新模式中操作。不幸地,快取記憶體最終將無法回應於或以其他方式容納一記憶體存取請求(其被稱為針對讀取操作之一快取未命中或針對寫入操作之一快取溢出),且將喚醒DRAM。由於喚醒程序耗時且消耗電力,因此若快取未命中可延遲或使其較不頻繁,則一電子器件之能量效率及運算效能通常較好。因此,藉由減少快取未命中之發生可提高能量效率且可加快程式執行。減少快取未命中之影響之一個方法係增加可在不依賴於主記憶體之情況下使用快取記憶體來執行一程式之時間長度。此在本文中被稱為執行一快取常駐程式。
在某些情境中,一作業系統可作為一快取常駐程式運行。舉例而言,在一或多個應用程式亦運行或未運行之情況下,一電子器件(例如,一智慧型電話、智慧型手錶或平板手機)可在作業系統運行時操作達相對較長時間週期,但執行程式碼局域化為作業系統之總程式碼及相關資料之一相對較小部分。作業系統之此使用程度在本文中被稱為一維護模式。為延長電池壽命,考慮到當前效能需求,使儘可能多的晶片或其等之核心斷電係有益的。在一作業系統之維護模式期間,若DRAM可保持在自我再新模式中達較長時間週期,則可減少電力。
中央處理單元(CPU)通常具有多個快取層級,諸如一L1快取區及一L2快取區。CPU嘗試透過L1快取區首先服務記憶體請求,且接著L2快取區試圖處置L1快取未命中。一些CPU具有足夠大以保存用於作業系統之維護模式之許多指令及資料的一L2快取區。然而,若存在一L2快取未命中,則存取DRAM,此涉及喚醒記憶體。從自我再新模式喚醒DRAM相對於正常、預期速度之程式執行耗費長時間。僅半滿之一L2快取區可能經歷一些快取未命中,諸如1%之記憶體存取,其係大致每微秒(ms)一次。此等快取未命中可能在L2快取區中留下大量空間之情況下發生,此係因為過多記憶體位址在相同快取線上重疊,即使是相當高的N向集合關聯快取(例如,其中「N」係至多16)。因此,針對每個L2快取未命中喚醒DRAM在電力及時間兩方面變得不可接受。
理論上可採用數個方法來降低一作業系統在處於維護模式中時經歷快取未命中的頻率。作為一第一實例,可部署一完全關聯L2快取區,其使任何記憶體位置能夠快取至任何線。然而,歸因於儲存於快取記憶體中之每位元組資訊之一較高閘數,完全關聯快取記憶體相對較慢且更昂貴。作為一第二實例,支援維護模式之程式碼及資料資訊可經重新安排以將資訊配適至採用針對一組關聯快取記憶體之典型路數(例如,N<=16)之一L2快取區中。不幸地,改變程式碼及資料之記憶體佈局以使其更緊密地封裝一般而言過於複雜且在此背景內容中節省電力係不可行的。一第三例示性方法係使L2快取記憶體之大小翻四倍,但此就晶片面積而言係昂貴的,其與成本及電力使用成正比例。考慮到此等站不住腳的選項,現今之運算系統在作業系統運行時使DRAM處於一作用中模式,即使作業系統處於一維護模式。
相比之下,本文中描述之一些實施方案使DRAM能夠在(例如)作業系統處於一維護模式的同時進入一自我再新模式。為如此做,部署一補充快取記憶體,其負責處置使一上層級快取區溢出之彼等快取線。對於相當寬範圍之快取載入(例如,在快取區之約1/8與1/2之間),至少一個快取線中之溢出概率相對較高,即使位址衝突之總數相對於快取區之大小係小的。為利用此現象,一相對較小、高度關聯補充快取記憶體(例如,具有每組超過16路,諸如每組64或128路)或完全關聯補充快取記憶體在至少一個較高快取層級下耦合至CPU。一補充快取記憶體儲存使最大晶片上快取區溢出之相對較少線。此補充快取記憶體可顯著增加程式之大小及複雜性,該等程式可在DRAM處於一自我再新模式的情況下完全快取常駐地運行且因此在DRAM被喚醒之前無法用於作業系統。因此,部署一補充快取記憶體可使更多程式能夠在一快取常駐模式中運行,此可藉由使DRAM能夠更頻繁或在較長時間週期內斷電而降低電力消耗。
接著根據一CPU描述一例示性實施方案,其中最大晶片上快取區係一L2快取區。在此案例中,補充快取記憶體被稱為一L2.5快取區。L2快取區及L2.5快取區兩者經組態為寫回式快取區而非直寫式快取區。此處,就L2.5快取區負責處置L2快取區之快取未命中之意義而言,L2.5快取區部署在比L2快取區更低之一操作層級。然而,就具有較少閘、佔用較小晶片上面積或儲存較少位元組資訊而言,L2.5快取區可能明顯小於L2快取區。由於L2.5快取區之相對較小大小,因此L2.5快取區可建構為比L2快取區更高度關聯(其涉及建置每一快取線之更多閘)。此外,由於大多數記憶體存取由L2快取區服務,因此L2.5快取區可具有比L2快取區更緩慢之一回應時間。相較於L2快取區單獨工作,L2快取區及L2.5快取區一起使一更大且更複雜程式能夠完全快取常駐。因此,對於總快取閘數之一相對較小增加,可在一快取常駐模式中運行之一程式之大小可增加近似兩倍至四倍,在一些情境中至多增加幾乎一個數量級。
就電力管理而言,每當對應處理器被供電且作用中,L2.5快取區便可被供電且操作。替代地,L2.5快取區可適時地接合且因此部分時間作用中。通常,若處理器正運行太大以至於無法配適於L2快取區中之一程式碼庫,則L2.5快取區不節省電力,此係因為DRAM保持被供電。由於L2.5快取區消耗電力,因此L2.5快取區通常可處於一關斷狀態但在作業系統正進入一維護模式之情況下可由作業系統開啓。在開啓時,L2.5快取區可隱藏DRAM讀取及緩衝區寫入,直至DRAM存取變得相對罕見。DRAM之此罕見存取指示程式碼庫之當前作用中部分完全常駐於L2快取區及L2.5快取區之一組合中。此時,DRAM處於一低電力、自我再新模式中。在L2快取區及L2.5快取區兩者中之一快取未命中之情況下,DRAM被喚醒。喚醒之效應類似於一長匯流排暫停。在喚醒之後,DRAM可保持接通達某一週期,在此期間L2.5快取區中之已變更線可適時地寫回至DRAM。當作業系統傳訊其正從維護模式退出,或記憶體管理硬體偵測到L2.5快取未命中之一高速率時,L2.5快取區中之任何剩餘已變更線寫出至DRAM,且接著L2.5快取區可斷電。
在作業系統處於維護模式且DRAM處於低電力模式時使用直接記憶體存取(DMA)之系統中,引導DMA通過L2快取區或L2.5快取區,而非直接至DRAM。若(例如) DMA路徑涉及包含CPU及L2.5快取區之積體電路晶片(例如,在一系統單晶片(SoC)環境中),則此可實施。因此,兩個快取區之組合可在未使DRAM溢出或喚醒DRAM之情況下處置少量DMA資料。此外,可在作業系統正於維護模式中執行時繼續進行DMA操作。
下文中參考相關聯圖來論述各種詳細程度之例示性實施方案。下文中之論述首先描述一例示性操作環境,接著描述例示性方案及硬體,其後接著例示性方法,且以一例示性電子器件及相關例示性態樣結束。 例示性環境
圖1圖解說明包含一積體電路104之一例示性環境100,其中可實施省電快取記憶體使用。如展示,環境100包含一電子器件102。下文中參考圖2描述電子器件102之不同實例。電子器件102包含至少一個積體電路104。積體電路104包含多個不同部分或核心。此等包含至少一個處理器106、控制電路108、一第一快取記憶體112、一補充快取記憶體114及一主記憶體116。如下文中參考圖4及圖5描述,不同記憶體(諸如補充快取記憶體114或主記憶體116)可在一或多個功能記憶體狀態110中操作。
在例示性實施方案中,處理器106通信地耦合至第一快取記憶體112,且第一快取記憶體112通信地耦合至主記憶體116。第一快取記憶體112包括一N向集合關聯快取記憶體,其中「N」表示一正整數。補充快取記憶體114可選擇性地接合以充當用於第一快取記憶體112之一較低層級快取資源。因此,補充快取記憶體114可通信地耦合至第一快取記憶體112且同樣可耦合至主記憶體116。補充快取記憶體114包括(舉例而言)一完全關聯快取記憶體或一M向集合關聯快取記憶體,其中「M」表示大於正整數「N」的另一正整數。可使用(舉例而言)經再新以維持記憶體內容之動態隨機存取記憶體(DRAM)來實現主記憶體116。換言之,可使用經保留(例如,經再新)以便維持記憶體內容之一記憶體類型來實施主記憶體116。更一般地,可使用在以下兩個模式中操作之一記憶體類型來實施主記憶體116:其中記憶體可容易使用且消耗一電力量之一個模式;及其中記憶體無法容易使用但消耗另一較低電力量(包含未消耗電力,而不管是否涉及再新)之另一模式。例如,一主記憶體可針對後一操作模式關閉且甚至可放棄所儲存資訊,只要某一其他記憶體可在恢復前一操作模式時還原所放棄之資訊。
根據多個記憶體階層層級118來配置多個記憶體。如藉由圖1左側之垂直箭頭指示,記憶體階層層級118在積體電路104之描繪之頂部附近變得較高(H)且在積體電路104之底部附近變得較低(L)。如展示,相較於補充快取記憶體114,第一快取記憶體112在一較高記憶體階層層級118。明確言之,第一快取記憶體112經組態於一第一記憶體階層層級118 (或第一階層層級),補充快取記憶體114經組態於一第二記憶體階層層級118 (或第二階層層級),且主記憶體116經組態於一第三記憶體階層層級118 (或第三階層層級)。然而,各種記憶體可經配置於不同記憶體階層層級118,且積體電路104可具有三個以上記憶體階層層級118。
在例示性操作實施方案中,第一快取記憶體112嘗試服務來自處理器106之記憶體存取請求。若存在一快取未命中且補充快取記憶體114非作用中,則主記憶體116提供所請求資訊。然而,若補充快取記憶體114作用中,則補充快取記憶體114嘗試處置第一快取記憶體112之快取未命中。在此等情境中,主記憶體116可處於降低電力消耗之一低電力模式,諸如一自我再新模式。下文中參考圖4進一步描述例示性記憶體存取操作。
圖1中就安置於一單一晶體電路104 (諸如一系統單晶片(SoC))上而言描述處理器106及處於不同記憶體階層層級118之各種記憶體。然而,省電快取記憶體使用之原理適用於其中圖解說明之組件可跨多個積體電路晶片分佈的其他環境。舉例而言,補充快取記憶體114可係與處理器106分離之積體電路晶片之部分,或甚至係一分開封裝之部分。作為另一實例,可將主記憶體116安置於一不同積體電路晶片上。在此一案例中,相對於一SoC之一部分,包含(例如)充當主記憶體116之DRAM之晶片可進入一低電力、自我再新模式。
此外,儘管圖1中描繪單一組件,然可實施多個組件。例如,可存在多個主記憶體116。額外地或替代地,第一快取記憶體112可包含兩個快取記憶體,例如,一個用於指令資訊及一個用於資料資訊。若如此,則補充快取記憶體114同樣可劃分成兩個快取記憶體或兩個快取記憶體部分,其中各部分分別與指令資訊或資料資訊相關聯,或補充快取記憶體114仍可實施為將指令資訊及資料資訊儲存在一起之一統一快取區。作為另一實例,各圖解說明之組件可包含多個組件。例如,儘管第一快取記憶體112經描繪為一單片單元,然可使用具有不同大小、速度或架構之兩層級、三層級或三層級以上快取區來實施第一快取記憶體112。
圖2圖解說明其中可實施省電快取記憶體使用之一例示性環境200之其他態樣。電子器件102經圖解說明為具有各種非限制例示性器件:一智慧型電話102-1、一膝上型電腦102-2、一電視102-3、一桌上型電腦102-4、一平板電腦102-5及一可穿戴器件102-6。如右側展示,電子器件102包含一或多個處理器106及電腦可讀媒體204。電腦可讀媒體204包含記憶體媒體206及儲存媒體208,其等之任一者或兩者可儲存、保存或以其他方式包含指令202、資料、程式碼、其他資訊等等。儘管圖2中未展示,然電腦可讀媒體204可包含第一快取記憶體112、補充快取記憶體114及/或主記憶體116。應用程式(未展示)或體現為電腦可讀媒體204上之電腦可讀指令202之一作業系統210可由處理器106執行以提供本文中描述之一些功能性。
如圖解說明,作業系統210包含一電力管理模組212及一程式碼分析模組214,其等可儲存為電腦可讀媒體204之部分。電力管理模組212監測且調整由一或多個積體電路晶片或其等之部分使用之電力。電力管理模組212可命令積體電路斷電,諸如藉由寫入至一暫存器以導致切換一操作模式。程式碼分析模組214估計至少一個程式碼塊(諸如一應用程式或作業系統210之一部分)是否足夠小以便可能在快取常駐時可執行。程式碼分析模組214可藉由預測程式碼塊之執行行為、藉由觀察程式碼塊之執行行為、其等之某一組合等等而執行此一估計。在一些情況中,程式碼分析模組214能夠估計多個程式碼塊可在一快取常駐模式中聯合執行的可能性。
電子器件102亦包含控制電路108。控制電路108包含一電力管理器216及一記憶體管理器218。記憶體管理器218包含一快取管理器220。如藉由圖1中描繪之積體電路104指示,控制電路108可至少部分在硬體中(諸如在至少一個積體電路晶片上)實施。在一些實施方案中,電力管理器216及記憶體管理器218整合在一相同晶片上。在其他實施方案中,電力管理器216及記憶體管理器218整合在不同晶片上。舉例而言,電力管理器216可整合在一電力管理積體電路(PMIC)晶片上,而記憶體管理器218以及至少處理器及快取記憶體整合在另一晶片上。額外地或替代地,控制電路108可在軟體、韌體、硬體、固定邏輯電路、其等之某一組合等等中實施。下文中參考圖4描述電力管理器216及記憶體管理器218之態樣。
圖3圖解說明記憶體位置至兩個快取記憶體之線之一例示性映射300。圖3描繪第一快取記憶體112、補充快取記憶體114及主記憶體116。在各記憶體中,含有所儲存資訊之記憶體位置被加陰影。如展示,映射300涉及第一快取記憶體112及補充快取記憶體114。第一快取記憶體112組織成一例示性4向集合關聯配置,如藉由四行表示。
第一快取記憶體112包含多個快取集或列302。明確引用三個快取列:列302-1、列302-2、及列302-3。兩個快取區中亦展示多個快取線或區塊304。明確引用三個快取區塊:區塊304-1、區塊304-2、及區塊304-3。各快取區塊304用資訊填充(例如,加灰色陰影,如區塊304-1)或係空的(例如,描繪為白色或空白,如區塊304-2)。在來自主記憶體116之可映射至一給定列302之所有區塊當中,四向集合關聯第一快取記憶體112可在任何一個時間映射至多四個不同區塊。
考量第一快取記憶體112之一當前狀態,如藉由加陰影之所佔用快取區塊304之數目指示。假定由橢圓暗示之快取列302填充至類似於明確描繪之彼等快取列的一位準,第一快取記憶體112填充至僅稍微超過一半。然而,第一快取記憶體112仍可能歸因於填充列而經歷快取未命中。列302-2及列302-3兩者皆被填充,此係因為各者之全部四路具有被有效資訊佔用之區塊。因此,若任何進一步記憶體請求映射至此兩個列之一者,則第一快取記憶體112替換該列(諸如列302-2)中之所佔用區塊之一者。若補充快取記憶體114不存在(或當前非作用中),則記憶體系統將喚醒主記憶體116以滿足此記憶體請求,即使第一快取記憶體112僅約半滿。
相比之下,若補充快取記憶體114存在且操作上作用中,則可使用補充快取記憶體114來滿足此記憶體請求。儘管可採用其他層級之關聯性,然在圖3之圖解說明實例中補充快取記憶體114經實施為一完全關聯快取記憶體。因此,任何記憶體區塊可儲存於補充快取記憶體114之任何位置處。如藉由箭頭306指示,映射至列302-3之區塊已佔用補充快取記憶體114中之三個空間。如藉由箭頭308指示,映射至列302-2之區塊已佔用補充快取記憶體114中之兩個空間。因此,可藉由補充快取記憶體114處置對應於第一快取記憶體112中未命中之列302-2之記憶體請求。
以此方式,一相對較小補充快取記憶體114可容納(例如)在第一快取記憶體112整體上僅部分填充時溢出之第一快取記憶體112之列302。此方案增大可完全快取常駐運行之一程式碼塊之大小。因此,此方案增加可允許主記憶體116進入一低電力、自我再新模式的頻率或增加可允許主記憶體116保持在低電力、自我再新模式中的持續時間。因此,可藉由採用補充快取記憶體114而節省電力,如參考圖4及圖5進一步描述。 例示性組件及技術
圖4圖解說明具有包含第一快取記憶體112、補充快取記憶體114及主記憶體116之一多層級階層式記憶體系統之一例示性積體電路104。圖4進一步圖解說明處理器106及補充快取記憶體114或主記憶體116之功能記憶體狀態110之指示。積體電路104可包含來自圖2之電力管理器216及記憶體管理器218。電力管理器216或記憶體管理器218可係(圖1之)控制電路108之部分。圖4中之積體電路104之描繪額外地包含:一第二快取記憶體402;一互連件404;控制信號406、408、410及412;一記憶體請求414;及一暫存器416。
如展示,第二快取記憶體402耦合至處理器106,且第一快取記憶體112耦合至第二快取記憶體402。此處,第二快取記憶體402耦合在處理器106與第一快取記憶體112之間。第一快取記憶體112經由互連件404耦合至主記憶體116。補充快取記憶體114耦合至第一快取記憶體112且經由互連件404耦合至主記憶體116。記憶體管理器218負責控制主記憶體116與其他組件(諸如第一快取記憶體112)之間之互動。電力管理器216負責導致不同組件(諸如補充快取記憶體114或主記憶體116)進入不同電力狀態,諸如喚醒、休眠、自我再新等等。
一階層式記憶體系統具有多個記憶體層級,諸如一或多個快取記憶體層級及至少一個主記憶體。通常相對於一處理器建立(圖1之)一記憶體階層層級118。因此,在圖4中,第二快取記憶體402充當一第一記憶體階層層級118;第二快取記憶體402因此指定為一「L1」快取區。第一快取記憶體112充當一第二記憶體階層層級118;第一快取記憶體112因此指定為一「L2」快取區。補充快取記憶體114可充當耦合在第一快取記憶體112與主記憶體116之間之一部分時間或選擇性啟動之第三記憶體階層層級118。因此,補充快取記憶體114指定為一「L2.5」快取區。在此階層式記憶體系統實例中,主記憶體116通常充當一第三記憶體階層層級118,其可在補充快取記憶體114暫時作為第三記憶體階層層級118作用中之情況下進入一低電力模式。
然而,省電快取記憶體使用之實施方案適用於其他硬體環境。舉例而言,可能存在定位於第一快取記憶體112與處理器106之間之零個或一個以上快取記憶體。再者,可能存可操作地耦合在補充快取記憶體114與主記憶體116之間之一或多個快取記憶體。此外,主記憶體116可包括或充當相對於一或多個其他、較低層級記憶體之一快取記憶體。其他較低層級記憶體之實例包含一較慢或較大固態記憶體及一基於磁碟之記憶體。
在操作中,處理器106執行程式碼(未展示)。作為程式碼執行之部分,處理器106發佈一記憶體請求414以獲取額外資訊,諸如用以執行之指令或係指令之對象之資料。各記憶體請求414通常經由一對應記憶體位址位置來識別鎖定目標資訊。記憶體請求414經提供至階層式記憶體系統,此最終滿足來自階層式記憶體系統之至少一個層級之記憶體請求414。舉例而言,若第二快取記憶體402含有鎖定目標資訊,則第二快取記憶體402提供所要資訊,且通常比任何其他記憶體更快速地如此做,惟處理器106內之操作暫存器除外。另一方面,若第二快取記憶體402不含有鎖定目標資訊,則一快取未命中已在L1快取層級發生,且第一快取記憶體112嘗試回應於記憶體請求414。
若第一快取記憶體112含有由記憶體請求414鎖定目標之資訊,則第一快取記憶體112通常比較低層級記憶體更快速地提供所要資訊。另一方面,若第一快取記憶體112不含有鎖定目標資訊,則一快取未命中已在L2快取層級發生,且第一快取記憶體112將記憶體請求414傳遞至一較低記憶體層級。替代地,當第一快取記憶體112正在判定鎖定目標資訊是否存在於第一快取記憶體112處時,記憶體請求414可經提供至一或多個較低層級記憶體。下文中針對處置第一快取記憶體112之一快取未命中描述兩個案例。主記憶體116在第一案例中作為一主要選項進行存取,但主記憶體116在第二案例中作為一次要選項進行存取。
在第一案例中,補充快取記憶體114非作用中,因此主記憶體116係用於回應於記憶體請求414之主要選項。為了清楚起見,記憶體請求414之不同版本在圖解說明之架構之不同位置處進行描繪且用一不同擴展名(例如,一記憶體請求414-1)來指示。第一快取記憶體112經由互連件404將一記憶體請求414-1轉送至主記憶體116,此由記憶體管理器218進行控制。主記憶體116藉由經由互連件404提供所請求資訊至處理器106而回應於記憶體請求414-1。在一個方法中,所請求資訊透過第一快取記憶體112及第二快取記憶體402從主記憶體116轉送至處理器106。替代地,在所請求資訊經提供至處理器106時可繞過一或多個快取區。
在第二案例中,補充快取記憶體114作用中,因此主記憶體116係用於回應於記憶體請求414之次要選項。因此,第一快取記憶體112將一記憶體請求414-2轉送至補充快取記憶體114。若補充快取記憶體114具有所請求資訊,則補充快取記憶體114提供所請求資訊至處理器106。所請求資訊可透過第一快取記憶體112及第二快取記憶體402轉送至處理器106或直接轉送至處理器106。另一方面,若補充快取記憶體114不具有所請求資訊,則記憶體系統訴諸於存取主記憶體116。然而,在一些情境中,主記憶體116處於一低電力模式中,諸如一自我再新模式。為實現存取主記憶體116,電力管理器216喚醒主記憶體116。補充快取記憶體114經由互連件404將一記憶體請求414-3轉送至主記憶體116。替代地,記憶體管理器218或第一快取記憶體112可經由互連件404提供記憶體請求414-1至主記憶體116。在被喚醒之後,主記憶體116藉由經由互連件404提供所請求資訊至處理器106而回應於記憶體請求414-1或414-3。
通常,主記憶體116或補充快取記憶體114可根據多個功能記憶體狀態110在不同電力模式或操作模式中操作以在回應於記憶體請求414時節省電力。下文中參考圖5描述四個例示性功能記憶體狀態110。圖6至圖9描繪圖5中圖解說明之四個例示性功能記憶體狀態110之一各自者中之圖4中圖解說明之架構的實例。
圖5大體上以500圖解說明對應於補充快取記憶體114及主記憶體116之多個功能記憶體狀態110-1至110-4。對於各功能記憶體狀態110,補充快取記憶體114對應於一操作模式510或正在一操作模式510中起作用中。從圖5頂部開始且圍繞狀態圖順時針移動,例示性操作模式包含:一非作用中操作模式510-1;一監測操作模式510-3;一作用中操作模式510-2;及一擦除操作模式510-4。類似地,對於各功能記憶體狀態110,主記憶體116對應於一電力模式518或正在一電力模式518中起作用中,如下文中描述。
在一第一功能記憶體狀態110-1中,補充快取記憶體114處於非作用中操作模式510-1中,且主記憶體116處於一常規電力模式518-1中。在常規電力模式518-1中,主記憶體116喚醒且可存取進行記憶體讀取及寫入操作。第一功能記憶體狀態110-1之一實例在圖6中描繪且在下文中進行描述。從第一功能記憶體狀態110-1,記憶體系統可轉變至一第三功能記憶體狀態110-3,如藉由一箭頭502指示。在替代實施方案中,補充快取記憶體114可連續或在延長時間週期內作用中,甚至在主記憶體116處於常規電力模式518-1中時。補充快取記憶體114可在其中(舉例而言)補充快取記憶體114可比主記憶體116更快速地回應於記憶體請求的實施方案之情況下保持作用中。在此等情境中,增大處理量的能力可能超過補充快取記憶體114之額外電力消耗,尤其對於涉及隨機存取之資料之記憶體存取型樣。
在第三功能記憶體狀態110-3中,補充快取記憶體114處於監測操作模式510-3中,且主記憶體116繼續在常規電力模式518-1中操作。第三功能記憶體狀態110-3之一實例在圖7中描繪且在下文中進行描述。當補充快取記憶體114處於監測操作模式510-3中時,控制電路108藉由追蹤快取未命中或藉由監測互連件404之利用而估計主記憶體116之活動之影響。從第三功能記憶體狀態110-3,記憶體系統可基於主記憶體116之活動之所估計影響超過一臨限量(例如,記憶體存取之頻率或連續記憶體存取之間之時間)而如藉由一箭頭504指示般轉變至一第二功能記憶體狀態110-2。替代地,對於一軟體控制之實施方案,可藉由追蹤記憶體使用、藉由預測待執行程式碼之資訊區域性(locality)等等而觸發至第二功能記憶體狀態110-2之轉變。
在第二功能記憶體狀態110-2中,補充快取記憶體114處於作用中操作模式510-2中,且主記憶體116已轉變成在一低電力模式518-2中操作。在低電力模式518-2中,主記憶體116在記憶體被喚醒前無法針對記憶體請求進行存取。相較於常規電力模式518-1,主記憶體116在低電力模式518-2中使用較少電力。一低電力模式518-2之一實例係一自我再新模式。第二功能記憶體狀態110-2之一實例在圖8中描繪且在下文中進行描述。從第二功能記憶體狀態110-2,記憶體系統可(例如)歸因於一快取未命中或快取溢出而轉變至一第四功能記憶體狀態110-4,如藉由一箭頭506指示。
在第四功能記憶體狀態110-4中,補充快取記憶體114處於擦除操作模式510-4中,且主記憶體116再次在常規電力模式518-1中操作。第四功能記憶體狀態110-4之一實例在圖9中描繪且在下文中進行描述。從第四功能記憶體狀態110-4,記憶體系統可轉變至第一功能記憶體狀態110-1,如藉由一箭頭508指示。替代地,記憶體系統可如藉由一箭頭512指示般轉變回至第二功能記憶體狀態110-2或如藉由一箭頭520指示般轉變回至第三功能記憶體狀態110-3,如下文中描述。
一些硬體控制之實施方案可包含可保存一可設定值516的暫存器416。可設定值516可包括至少一個位元、一中斷指示、一字母數字變數等等。在例示性操作中,可設定值516控制其中記憶體系統待操作之一功能記憶體狀態110或確立硬體是否獲得授權以控制功能記憶體狀態110之間之切換。若存在,則作業系統210或一應用程式可調整可設定值516。作業系統210可經實施為可由一或多個處理器(諸如(例如,圖4之)處理器106)執行之指令202。
在一些實施方案中,作業系統210導致程式碼在處理器106上執行。基於程式碼(例如,處理器可執行指令202),作業系統210調整(或其他指令202調整)可設定值516以選擇性地使補充快取記憶體114能夠作為相對於第一快取記憶體112之一較低層級快取資源操作。作業系統210可藉由(舉例而言)在執行期間判定程式碼之一大小或觀察程式碼之一記憶體使用型樣而分析程式碼。記憶體使用型樣可涉及(例如)資訊區域性,例如,用於記憶體存取之程式碼區域性或資料區域性。因此,可設定值516之調整可基於分析程式碼。
在一個方法中,作業系統210確立可設定值516允許硬體選擇性地啟動補充快取記憶體114。舉例而言,可設定一值,其使電力管理器216能夠基於硬體可偵測之活動轉變至第二功能記憶體狀態110-2或從第二功能記憶體狀態110-2轉變。可由硬體偵測之活動包含(例如)互連件404上之訊務。在另一方法中,作業系統210確立可設定值516指導硬體將記憶體系統轉變至第三功能記憶體狀態110-3且使補充快取記憶體114處於監測操作模式510-3中。此部分啟動補充快取記憶體114以藉由向補充快取記憶體114載入資訊而使補充快取記憶體114準備好使主記憶體116處於低電力模式518-2中。可由作業系統210基於資訊區域性(例如,程式碼區域性或資料區域性)觸發後一方法。作業系統210可藉由清除虛擬記憶體頁上之「啟用」位元且監測在一給定時間週期中命中之頁之數量而估計資訊區域性。使用一神經網路之機器學習(例如)可用於預測資訊區域性是否足以保證啟動補充快取記憶體114且轉變至一不同功能記憶體狀態110。
圖6大體上以600圖解說明在第一功能記憶體狀態110-1中操作之積體電路之一實例。電力管理器216使用控制信號406使補充快取記憶體114處於非作用中操作模式510-1中且使用控制信號408使主記憶體116處於常規電力模式518-1中。在第一功能記憶體狀態110-1中,藉由主記憶體116處置第一快取記憶體112之快取未命中。因此,記憶體管理器218經由互連件404提供記憶體請求414-1至主記憶體116,且主記憶體116用所請求資訊回應於記憶體請求414-1。在一例示性實施方案中,補充快取記憶體114未被計時/供電,不含有已變更項目,且不含有針對第一功能記憶體狀態110-1之有效項目。
在第一功能記憶體狀態110-1期間,主記憶體116在常規電力模式518-1中操作且因此消耗電力。為藉由使主記憶體116能夠在一不同功能記憶體狀態中斷電而運用補充快取記憶體114節省電力,(例如,圖2及圖5之)作業系統210可告知積體電路硬體作業系統210正進入一維護模式或一執行應用程式諸如藉由調整可設定值516而預測一小資訊區域性。替代地,硬體可藉由監測記憶體操作或互連件訊務而作出此決定。作為回應,補充快取記憶體114可轉變至第三功能記憶體狀態110-3之監測操作模式510-3。
圖7大體上以700圖解說明在第三功能記憶體狀態110-3中操作之積體電路之一實例。電力管理器216使用控制信號406使補充快取記憶體114處於監測操作模式510-3中,且主記憶體116繼續在常規電力模式518-1中操作。在第三功能記憶體狀態110-3中,主記憶體116最初係主要負責處置第一快取記憶體112之快取未命中的儲存實體,如上文中參考圖6描述。然而,記憶體系統正嘗試準備將主記憶體116轉變至(例如,圖5及圖8之)低電力模式518-2。為如此做,補充快取記憶體114如由記憶體請求414-3表示儲存或讀取快取未命中之資訊且如由記憶體請求414-2表示寫入對已存在之資訊的更新。因此,補充快取記憶體114逐漸載入溢出第一快取記憶體112之某些列之資訊,如上文中參考圖3描述。在此準備、監測操作模式510-3期間隨著時間流逝,補充快取記憶體114最終變成主要負責處置第一快取記憶體112之快取未命中的儲存實體。在此時間期間,作為第一快取記憶體112處之快取未命中的記憶體請求414可首先被投送至補充快取記憶體114以減少互連件404上之活動。因此,記憶體管理器218可監測互連件404以偵測主記憶體116之記憶體存取活動是否足夠減慢以保證使主記憶體116休眠,或一作業系統或應用程式可基於預測執行分析來指導記憶體系統使主記憶體116休眠。
因此,在監測操作模式510-3期間,補充快取記憶體114可蔭蔽對主記憶體116之記憶體存取。隨著時間流逝,記憶體管理器218追蹤主記憶體116經存取以服務第一快取記憶體112及補充快取記憶體114兩者之一讀取未命中或一寫入溢出的頻率。更明確言之,作為第三功能記憶體狀態110-3之部分,可直寫至主記憶體116以及補充快取記憶體114。可從補充快取記憶體114或主記憶體116提供讀取(例如,基於無論哪個更快速)。讀取可經管線化至補充快取記憶體114中。由於補充快取記憶體114可見之彼等讀取未命中及寫入溢出係穿透第一快取記憶體112的彼等讀取未命中及寫入溢出,因此補充快取記憶體114可在監測操作模式510-3中充當相對於主記憶體116之一直寫式快取區以保持主記憶體116最新。
替代地,補充快取記憶體114可以一寫回方式操作,其中寫入操作在互連件404上之頻寬或訊務允許時(或在補充快取記憶體114之一寫入溢出發生的情況下)適時地寫下至主記憶體116。同時,記憶體管理器218可維持一「監測計時器」以追蹤自補充快取記憶體114之最後讀取未命中或寫入溢出以來的經過時間。若硬體偵測到(例如)已發生相對於用於從一自我再新模式喚醒主記憶體116之一時間週期較長之一時間量,則電力管理器216可將補充快取記憶體114轉變至第二功能記憶體狀態110-2之作用中操作模式510-2且可使主記憶體116休眠。在實施監測操作模式510-3之另一方法中,預期(例如,預測)使用之值可基於藉由一作業系統或一應用程式對程式碼之分析而主動載入至補充快取記憶體114中。在又另一方法中,補充快取記憶體114可使用一組合方法為第二功能記憶體狀態110-2做準備,其中基於從當前執行程式碼產生之實際記憶體請求來載入一些值而基於由(例如)回應於先前或模擬程式碼執行而分析程式碼所產生之一預期使用來載入其他值。
圖8大體上以800圖解說明在第二功能記憶體狀態110-2中操作之積體電路之一實例。電力管理器216使用控制信號406使補充快取記憶體114處於作用中操作模式510-2中且使用控制信號408使主記憶體116處於低電力模式518-2中。電力管理器216可(例如)命令DRAM進入自我再新模式。在第二功能記憶體狀態110-2中,若補充快取記憶體114中存在鎖定目標資訊或若空間可用於新寫入資料,則藉由補充快取記憶體114處置針對第一快取記憶體112之讀取操作之快取未命中及針對第一快取記憶體112之寫入操作之快取溢出。為判定是否存在鎖定目標資訊,一讀取或一寫入記憶體請求414之一期望位址經廣播(例如,在硬體中)且與補充快取記憶體114之標籤項目之各者平行地(例如,若完全關聯)比較。若針對一讀取存取記憶體請求存在所請求資訊,則記憶體管理器218基於記憶體請求414-2來存取補充快取記憶體114,且補充快取記憶體114用所請求資訊回應於記憶體請求414-2。對於一寫入存取記憶體請求,關於補充快取記憶體114中是否存在鎖定目標位址作出一判定。若存在,則將寫入引導至對應快取區塊。若不存在,則可使用任何可用(例如,空)區塊來儲存寫入資料。
在第二功能記憶體狀態110-2期間,寫入被推遲,且補充快取記憶體114中之對應項目經標記為已變更。因此,補充快取記憶體114可在此記憶體狀態中充當一寫回式快取區。回應於補充快取記憶體114之一快取未命中或一快取溢出(例如,一讀取記憶體請求414上之一未命中或一寫入記憶體請求414上之不具有匹配位址之一完全快取狀態),作為一暫停操作之部分,電力管理器216使用控制信號408來喚醒主記憶體116。記憶體管理器218導致主記憶體116提供針對一讀取操作之所請求資訊或儲存針對一寫入操作之寫入資訊。補充快取記憶體114之快取未命中或快取溢出促成至第四功能記憶體狀態110-4之轉變。因此,除快取讀取未命中以外,在補充快取記憶體114在經歷一讀取未命中之前變得充滿已變更項目(例如,若完全關聯則整體或若組關聯則在一給定組內)的不可能情況下,記憶體管理器218可喚醒主記憶體116以容納快取寫入溢出事件。
亦在第二功能記憶體狀態110-2期間,即使在主記憶體116保持在低電力模式518-2中時亦可執行直接記憶體存取(DMA)操作。換言之,可在未喚醒主記憶體116之情況下處置在作業系統210處於維護模式中時可能發生之DMA操作。在此等情況中,記憶體管理器218將DMA操作引導至第一快取記憶體112或補充快取記憶體114。為如此做,記憶體管理器218並行或循序地(至少在定位之前)檢查各快取區以發現用於一讀取存取DMA操作之鎖定目標位址。對於一寫入存取DMA操作,記憶體管理器218搜尋一適合(例如,可用)位置以儲存DMA源資料。對於DMA寫入操作,處理器106通常讀取傳入資訊,因此可將此等資訊寫入至一快取區(例如,第一快取記憶體112)中。對於對應於傳出資訊之DMA讀取操作,處理器將已事先將資訊直寫至快取區之一者。因此,在第二功能記憶體狀態110-2期間維持對資訊之存取及此資訊之一致性。
圖9大體上以900圖解說明在第四功能記憶體狀態110-4中操作之積體電路之一實例。電力管理器216使用控制信號406使補充快取記憶體114處於擦除操作模式510-4中且使用控制信號408使主記憶體116處於常規電力模式518-1中。在第四功能記憶體狀態110-4中,主記憶體116回應於促成主記憶體116之喚醒之記憶體請求414。主記憶體116保持可用於處置第一快取記憶體112或補充快取記憶體114之未來快取未命中。此外,特別地補充快取記憶體114之已變更快取區塊可適時地寫回至主記憶體116,此係因為主記憶體116現被喚醒。電力管理器216亦可判定哪一功能記憶體狀態110轉變至下一第一功能記憶體狀態110-1、第二功能記憶體狀態110-2或第三功能記憶體狀態110-3,如下文中描述。
就主記憶體116及補充快取記憶體114兩者喚醒且補充快取記憶體114可蔭蔽主記憶體116之記憶體操作的意義而言,擦除操作模式510-4可與第三功能記憶體狀態110-3之監測操作模式510-3類比地起作用中。然而,在擦除模式下,補充快取記憶體114可具有已變更項目。因此,在鎖定目標區塊在補充快取記憶體114內有效且已變更之情況下,記憶體管理器218將讀取記憶體請求投送至補充快取記憶體114。為節省時間,可在補充快取記憶體114處與主記憶體116並行地起始提取,且若補充快取記憶體114首先回應,則至主記憶體116之讀取請求可(例如)取消或摒棄。此外,像在監測操作模式510-3中,監測計時器可作用中且計數,同時適時地執行來自補充快取記憶體114之已變更項目之推遲寫入。
若監測計時器期滿(此指示轉變回至第二功能記憶體狀態110-2係可取的)而在擦除模式中存在剩餘已變更項目,則電力管理器216仍可轉變至第二功能記憶體狀態110-2而不等待直至全部已變更項目被寫回。通常,若作業系統210決定返回至超過維護模式之界限之一較重工作負載,而記憶體系統處於第二功能記憶體狀態110-2或第三功能記憶體狀態110-3中,則作業系統210可命令記憶體系統進入第四功能記憶體狀態110-4 (例如,使用可設定值516或一中斷)。當依據此一命令在第四功能記憶體狀態110-4中操作時,可關閉或省略監測計時器,且在補充快取記憶體114不含更多已變更項目之後電力管理器216可轉變至第一功能記憶體狀態110-1。
已大致描述其中可實施用於省電快取記憶體使用之技術及裝置的環境,此論述現轉向例示性方法。 例示性方法
以下論述描述用於省電快取記憶體使用之方法。可利用先前描述之實例來實施此等方法,諸如如圖1及圖2中展示之電子器件102及積體電路104,以及圖11中描繪之電子器件1100。圖10中圖解說明此等方法之態樣,其等展示為由一或多個實體執行之操作1002至1016。展示及/或描述此等方法之操作之順序不意欲解釋為限制,且任何數目或組合之所描述方法操作可以任何順序組合以實施一方法或一替代方法。
圖10圖解說明用於省電快取記憶體使用之例示性方法1000,諸如藉由採用一補充快取記憶體114。在1002,操作包含一第一快取記憶體、一補充快取記憶體及一主記憶體之一記憶體系統。補充快取記憶體經組態以選擇性地處置第一快取記憶體之快取未命中或快取溢出。舉例而言,一作業系統210或控制電路108可操作一積體電路104之一記憶體系統。記憶體系統可包含彼此通信地耦合之一第一快取記憶體112、一補充快取記憶體114及一主記憶體116。補充快取記憶體114邏輯上定位於比第一快取記憶體112更低之一記憶體階層層級118處且經組態以選擇性地處置第一快取記憶體112之快取未命中。
在1004,判定補充快取記憶體之一操作模式,其中操作模式包括一非作用中操作模式或一作用中操作模式。舉例而言,控制電路108之一電力管理器216或一記憶體管理器218可判定(例如,偵測、建立或啟動)補充快取記憶體114之一操作模式510。操作模式510可包括(例如)一非作用中操作模式510-1或一作用中操作模式510-2。額外地或替代地,作業系統210可起始兩個或兩個以上功能記憶體狀態110之間之轉變以結合硬體建立操作模式510。
在1004之操作之後,方法1000在1014或1016分支。如在1014指示,回應於補充快取記憶體114處於一第一功能記憶體狀態110-1之非作用中操作模式510-1中,執行1006及1008之操作。在1006,針對與第一快取記憶體之一快取未命中或一快取溢出相關聯之一記憶體請求繞過補充快取記憶體。舉例而言,記憶體管理器218可用與第一快取記憶體112之一快取未命中或一快取溢出相關聯之一記憶體請求414來繞過補充快取記憶體114。在1008,記憶體請求經投送至主記憶體。舉例而言,記憶體管理器218可經由一互連件404將記憶體請求414-1投送至主記憶體116。
如在1016指示,回應於補充快取記憶體114處於一第二功能記憶體狀態110-2之作用中操作模式510-2中,執行操作1010及1012。在1010,判定由記憶體請求鎖定目標之資訊儲存於補充快取記憶體中。舉例而言,補充快取記憶體114之一控制部分可比較與一記憶體請求414-2相關聯之一記憶體位址與多個標籤之各自記憶體位址以獲取補充快取記憶體114之有效資訊。一匹配指示鎖定目標資訊儲存於補充快取記憶體114中。若未偵測到一匹配(其對應於補充快取記憶體114之一快取未命中)或補充快取區不具有可用區塊(其對應於補充快取記憶體114之一快取溢出事件),則電力管理器216可喚醒主記憶體116以將記憶體系統轉變至第四功能記憶體狀態110-4。在第四功能記憶體狀態110-4中,電力管理器216使補充快取記憶體114處於擦除操作模式510-4中。主記憶體116被喚醒至少長至足以服務補充快取記憶體114無法容納之讀取或寫入記憶體存取操作。
另一方面,回應於在1010判定鎖定目標資訊儲存於補充快取記憶體中,在1012從補充快取記憶體提供鎖定目標資訊。舉例而言,補充快取記憶體114可藉由將所請求資訊轉送至第一快取記憶體112、一較高層級快取記憶體或處理器106而用所請求資訊回應於記憶體請求414-2。
前述論述描述關於省電快取記憶體使用之方法。可在硬體(例如,固定邏輯電路)、韌體、軟體或其等之任何組合中實施此等方法之態樣。可使用可進一步劃分、組合等等之圖1至圖9及圖11中展示之實體或組件(下文在圖11中描述電子器件1100)之一或多者來實現此等技術。因此,此等圖圖解說明能夠採用所描述技術之許多可能系統或裝置的一些。此等圖之實體及組件大體上表示軟體、韌體、硬體、整個器件或網路、或其等之一組合。 例示性電子器件
圖11圖解說明可根據如參考先前圖1至圖10之任一者所描述之一或多個實施方案來實施省電快取記憶體使用之一例示性電子器件的各種組件。電子器件可經實施為呈消費者、電腦、可攜帶、使用者、伺服器、通信、電話、導航、遊戲、音訊、相機、短訊、媒體播放及/或其他類型之電子器件102 (諸如圖1中描繪之智慧型電話)之任何形式的一固定或行動器件之任一者或組合。
電子器件1100可包含實現器件資料1104 (諸如所接收資料、所傳輸資料或如上文中描述之其他資訊)之有線及/或無線通信的一或多個通信收發器1102。例示性通信收發器1102包含NFC收發器、符合各種IEEE 802.15 (BluetoothTM
)標準之WPAN無線電、符合各種IEEE 802.11 (WiFiTM
)標準之任一者之WLAN無線電、用於蜂巢式電話之WWAN (3GPP順應式)無線電、符合各種IEEE 802.16 (WiMAXTM
)標準之無線都會區域網路(WMAN)無線電、符合一紅外資料關聯(IrDA)協定之紅外(IR)收發器、及有線區域網路(LAN)乙太網路收發器。
電子器件1100亦可包含一或多個資料輸入埠1106,可經由該一或多個資料輸入埠1106接收任何類型之資料、媒體內容及/或其他輸入,諸如使用者可選擇輸入、訊息、應用程式、音樂、電視內容、錄製視訊內容、及從任何內容及/或資料源接收之任何其他類型之音訊、視訊及/或影像資料。資料輸入埠1106可包含USB埠、同軸電纜埠、用於光纖互連或佈線之光纖埠、及用於快閃記憶體、DVD、CD及類似者之其他串列或並列連接器(包含內部連接器)。可使用此等資料輸入埠1106來將電子器件耦合至組件、周邊設備或配件(諸如鍵盤、麥克風或相機)。
此實例之電子器件1100包含至少一個處理器1108 (例如,應用程式處理器、微處理器、數位信號處理器(DSP)、控制器及類似者之任一或多者),其可包含處理(例如,執行)電腦可執行指令202以控制器件之操作的一組合處理器及記憶體系統(例如,實施為一SoC之部分)。處理器1108可經實施為一應用程式處理器、嵌入式控制器、微控制器及類似者。通常,一處理器或處理系統可至少部分在硬體中實施,其可包含一積體電路或系統單晶片之組件、一數位信號處理器(DSP)、一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一複雜可程式化邏輯器件(CPLD)、及矽及/或其他硬體中之其他實施方案。
替代地或額外地,可用電子電路之任一者或組合來實施電子器件1100,電子電路可包含結合大體上以1110指示(如電子電路1110)之處理及控制電路實施之軟體、硬體、韌體或固定邏輯電路。此電子電路1110可諸如透過儲存於電腦可讀媒體上之處理/電腦可執行指令202、透過邏輯電路及/或硬體(例如,諸如一FPGA)等等來實施可執行或基於硬體之模組(未展示)。
儘管未展示,然電子器件1100可包含耦合器件內之各種組件的一系統匯流排、互連件、交叉開關或資料傳送系統。一系統匯流排或互連件可包含不同匯流排結構之任一者或組合,諸如一記憶體匯流排或記憶體控制器、一周邊匯流排、一通用串列匯流排及/或利用各種匯流排架構之任一者之一處理器或區域匯流排。
電子器件1100亦包含實現資料儲存之一或多個記憶體器件1112,其等之實例包含隨機存取記憶體(RAM)、非揮發性記憶體(例如,唯讀記憶體(ROM)、快閃記憶體、EPROM及EEPROM)及一磁碟儲存器件。因此,(若干)記憶體器件1112可跨一系統之不同邏輯儲存層級分佈以及分佈於不同實體組件。(若干)記憶體器件1112提供資料儲存機構以儲存器件資料1104、其他類型之程式碼及/或資料、及各種器件應用程式1120 (例如,軟體應用程式或程式)。舉例而言,一作業系統1114可維持為記憶體器件1112內之軟體指令且由處理器1108執行。
在一些實施方案中,電子器件1100亦包含處理音訊資料及/或將音訊及視訊資料傳遞至一音訊系統1118及/或傳遞至一顯示系統1122 (例如,一智慧型電話或相機之一視訊緩衝區或一螢幕)的一音訊及/或視訊處理系統1116。音訊系統1118及/或顯示系統1122可包含處理、顯示及/或以其他方式呈現音訊、視訊、顯示及/或影像資料的任何器件。顯示資料及音訊信號可經由一RF (射頻)鏈路、S視訊鏈路、HDMI (高清晰度多媒體介面)、複合視訊鏈路、分量視訊鏈路、DVI (數位視訊介面)、類比音訊連接或其他類似通信鏈路(諸如媒體資料埠1124)傳達至一音訊組件及/或傳達至一顯示組件。在一些實施方案中,音訊系統1118及/或顯示系統1122係電子器件1100之外部或分開組件。替代地,顯示系統1122可係例示性電子器件1100之一積體組件,諸如一積體觸控介面之部分。
圖11之電子器件1100係圖1之電子器件102之一例示性實施方案。因此,處理器1108係(例如,圖1及圖4之)處理器106之一實例,且作業系統1114係(例如,圖2及圖5之)作業系統210之一實例。因此,可使用電子器件1100來實現電力管理模組212或程式碼分析模組214 (圖2之兩者)。在圖11中,第一快取記憶體112、補充快取記憶體114及主記憶體116經描繪為形成一記憶體系統之至少一部分,諸如藉由作為一或多個記憶體器件1112之部分。如上文中描述,此等記憶體組件之一或多者可係與處理器1108之積體電路相同的一積體電路之部分(例如,第一快取記憶體112及補充快取記憶體114可用處理器1108實施為一SoC之部分,如藉由虛線指示)或代替地定位於一分開晶粒上,或甚至安置於一不同印刷電路板上。儘管未明確圖解說明,然電子器件1100亦可包含控制電路108、及因此(例如,圖2及圖4之)電力管理器216或記憶體管理器218。因此,可由圖11之電子器件1100或結合圖11之電子器件1100實施如本文中描述之省電快取記憶體使用之原理。
儘管已以特定於某些特徵及/或方法之語言描述省電快取記憶體使用之實施方案,然隨附發明申請專利範圍之主體不一定限於所描述之特定特徵或方法。實情係,特定特徵及方法經揭示為用於省電快取記憶體使用之例示性實施方案。
100‧‧‧環境
102‧‧‧電子器件
102-1‧‧‧智慧型電話
102-2‧‧‧膝上型電腦
102-3‧‧‧電視
102-4‧‧‧桌上型電腦
102-5‧‧‧平板電腦
102-6‧‧‧可穿戴器件
104‧‧‧積體電路
106‧‧‧處理器
108‧‧‧控制電路
110‧‧‧功能記憶體狀態
110-1‧‧‧第一功能記憶體狀態
110-2‧‧‧第二功能記憶體狀態
110-3‧‧‧第三功能記憶體狀態
110-4‧‧‧第四功能記憶體狀態
112‧‧‧第一快取記憶體
114‧‧‧補充快取記憶體
116‧‧‧主記憶體
118‧‧‧記憶體階層層級
200‧‧‧環境
202‧‧‧電腦可讀指令
204‧‧‧電腦可讀媒體
206‧‧‧記憶體媒體
208‧‧‧儲存媒體
210‧‧‧作業系統
212‧‧‧電力管理模組
214‧‧‧程式碼分析模組
216‧‧‧電力管理器
218‧‧‧記憶體管理器
220‧‧‧快取管理器
300‧‧‧映射
302-1‧‧‧列
302-2‧‧‧列
302-3‧‧‧列
304-1‧‧‧區塊
304-2‧‧‧區塊
304-3‧‧‧區塊
306‧‧‧箭頭
308‧‧‧箭頭
402‧‧‧第二快取記憶體
404‧‧‧互連件
406‧‧‧控制信號
408‧‧‧控制信號
410‧‧‧控制信號
412‧‧‧控制信號
414‧‧‧記憶體請求
414-1‧‧‧記憶體請求
414-2‧‧‧記憶體請求
414-3‧‧‧記憶體請求
416‧‧‧暫存器
500‧‧‧多個功能記憶體狀態
502‧‧‧箭頭
504‧‧‧箭頭
506‧‧‧箭頭
508‧‧‧箭頭
510‧‧‧操作模式
510-1‧‧‧非作用中操作模式
510-2‧‧‧作用中操作模式
510-3‧‧‧監測操作模式
510-4‧‧‧擦除操作模式
512‧‧‧箭頭
516‧‧‧可設定值
518‧‧‧電力模式
518-1‧‧‧常規電力模式
518-2‧‧‧低電力模式
520‧‧‧箭頭
600‧‧‧積體電路
700‧‧‧積體電路
800‧‧‧積體電路
900‧‧‧積體電路
1000‧‧‧方法
1002‧‧‧操作
1004‧‧‧操作
1006‧‧‧操作
1008‧‧‧操作
1010‧‧‧操作
1012‧‧‧操作
1014‧‧‧操作
1016‧‧‧操作
1100‧‧‧電子器件
1102‧‧‧通信收發器
1104‧‧‧器件資料
1106‧‧‧資料輸入埠
1108‧‧‧處理器
1110‧‧‧電子電路
1112‧‧‧記憶體器件
1114‧‧‧作業系統
1116‧‧‧音訊及/或視訊處理系統
1118‧‧‧音訊系統
1120‧‧‧器件應用程式
1122‧‧‧顯示系統
1124‧‧‧媒體資料埠
參考以下圖式描述實現省電快取記憶體使用之裝置及技術。貫穿圖式使用相同元件符號以引用相同特徵及組件: 圖1圖解說明包含一積體電路之一例示性環境,其中可實施省電快取記憶體使用。 圖2圖解說明其中可實施省電快取記憶體使用之一例示性環境之其他態樣。 圖3圖解說明記憶體位置至兩個快取記憶體之不同線之一例示性映射。 圖4圖解說明包含一第一快取記憶體、一補充快取記憶體及一主記憶體之一例示性積體電路。 圖5圖解說明對應於補充快取記憶體及主記憶體之多個功能記憶體狀態之一實例,包含第一功能記憶體狀態至第四功能記憶體狀態。 圖6圖解說明一例示性第一功能記憶體狀態中之積體電路。 圖7圖解說明可充當從第一功能記憶體狀態至第二功能記憶體狀態之一過渡狀態之一例示性第三功能記憶體狀態中之積體電路。 圖8圖解說明一例示性第二功能記憶體狀態中之積體電路。 圖9圖解說明可充當從第二功能記憶體狀態至第一功能記憶體狀態之一過渡狀態之一例示性第四功能記憶體狀態中之積體電路。 圖10圖解說明用於省電快取記憶體使用之例示性方法。 圖11圖解說明可根據一或多個實施方案實施省電快取記憶體使用之一例示性電子器件之各種組件。
Claims (20)
- 一種電子器件,其包括: 一第一快取記憶體,其在一第一階層層級; 一補充快取記憶體,其在一第二階層層級,該補充快取記憶體通信地耦合至該第一快取記憶體且經組態以嘗試處置該第一快取記憶體之快取未命中,該第二階層層級低於該第一階層層級; 一主記憶體,其在一第三階層層級,該主記憶體通信地耦合至該第一快取記憶體及該補充快取記憶體,該第三階層層級低於該第二階層層級;及 控制電路,其耦合至該補充快取記憶體及該主記憶體,該控制電路經組態以導致兩個或兩個以上功能記憶體狀態之間之一轉變,該兩個或兩個以上功能記憶體狀態包含: 一第一功能記憶體狀態,其中該補充快取記憶體處於一非作用中操作模式中且該主記憶體處於一常規電力模式中;及 一第二功能記憶體狀態,其中該補充快取記憶體處於一作用中操作模式中且該主記憶體處於一低電力模式中。
- 如請求項1之電子器件,其中: 該非作用中操作模式對應於針對在該第一快取記憶體中未命中之記憶體請求而繞過該補充快取記憶體; 該作用中操作模式對應於該補充快取記憶體儲存資訊以處置在該第一快取記憶體中未命中之該等記憶體請求; 該常規電力模式對應於該主記憶體中之資訊被保留且可存取以處置在該第一快取記憶體中未命中之該等記憶體請求;且 該低電力模式對應於該主記憶體中之資訊被保留但無法存取,直至該主記憶體被喚醒。
- 如請求項1之電子器件,其中該兩個或兩個以上功能記憶體狀態進一步包含一第三功能記憶體狀態,其中該補充快取記憶體處於一監測操作模式中且該主記憶體處於該常規電力模式中,且該補充快取記憶體經組態以快取該監測操作模式中之該第一快取記憶體之資訊以準備從該第一功能記憶體狀態至該第二功能記憶體狀態之一轉變。
- 如請求項3之電子器件,其中該兩個或兩個以上功能記憶體狀態進一步包含一第四功能記憶體狀態,其中該補充快取記憶體處於一擦除操作模式中且該主記憶體處於該常規電力模式中,且該補充快取記憶體經組態以將已變更資訊寫回至該擦除操作模式中之該主記憶體以準備從該第二功能記憶體狀態經由該第四功能記憶體狀態至該第一功能記憶體狀態之一轉變。
- 如請求項1之電子器件,其中相較於該補充快取記憶體,該第一快取記憶體更大且經組態以儲存更多資訊。
- 如請求項5之電子器件,其中該第一快取記憶體包括一N向集合關聯快取記憶體,其中「N」表示一正整數,且該補充快取記憶體包括一關聯快取記憶體,該關聯快取記憶體係完全關聯或M向集合關聯之至少一者,其中「M」表示大於該正整數「N」之另一正整數。
- 如請求項5之電子器件,其中該補充快取記憶體經組態以可用於作為該第二功能記憶體狀態中之該第一快取記憶體之一較低層級快取記憶體資源操作且無法用於作為該第一功能記憶體狀態中之該第一快取記憶體之一較低層級快取記憶體資源操作。
- 如請求項1之電子器件,其進一步包括: 一暫存器,其可由軟體存取,該暫存器經組態以保存一可設定值以實現該第二功能記憶體狀態。
- 如請求項1之電子器件,其中該控制電路經組態以基於該主記憶體之活動之一影響而起始該兩個或兩個以上功能記憶體狀態之間之一轉變。
- 如請求項9之電子器件,其中該控制電路經組態以藉由追蹤快取未命中或藉由監測耦合至該主記憶體之一互連件之利用而估計該主記憶體之活動之該影響。
- 一種方法,其包括: 操作包含一第一快取記憶體、一補充快取記憶體及一主記憶體之一記憶體系統,該補充快取記憶體經組態以選擇性地處置該第一快取記憶體之快取未命中或快取溢出; 判定該補充快取記憶體之一操作模式,該操作模式包括一非作用中操作模式或一作用中操作模式; 回應於該補充快取記憶體處於該非作用中操作模式中, 針對與該第一快取記憶體之一快取未命中或一快取溢出相關聯之一記憶體請求而繞過該補充快取記憶體;且 將該記憶體請求投送至該主記憶體;及 回應於該補充快取記憶體處於該作用中操作模式中, 判定藉由該記憶體請求鎖定目標之資訊儲存於該補充快取記憶體中;且 回應於判定該鎖定目標資訊儲存於該補充快取記憶體中,從該補充快取記憶體提供該鎖定目標資訊。
- 如請求項11之方法,其進一步包括: 判定該鎖定目標資訊未儲存於該補充快取記憶體中;及 回應於判定該鎖定目標資訊未儲存於該補充快取記憶體中, 從一低電力模式喚醒該主記憶體;且 從該主記憶體提供該鎖定目標資訊。
- 如請求項11之方法,其進一步包括: 在多個功能記憶體狀態之一功能記憶體狀態中操作該記憶體系統,該多個功能記憶體狀態包含: 一第一功能記憶體狀態,其中該補充快取記憶體處於該非作用中操作模式中且該主記憶體處於一常規電力模式中;及 一第二功能記憶體狀態,其中該補充快取記憶體處於該作用中操作模式中且該主記憶體處於一低電力模式中; 估計該主記憶體之活動之一影響;及 基於該主記憶體之活動之該所估計影響而在該多個功能記憶體狀態之兩者或兩者以上之間轉變。
- 如請求項13之方法,其中該估計包括以下各者之至少一者: 追蹤該第一快取記憶體或該補充快取記憶體之快取未命中或快取溢出; 監測投送至該主記憶體之記憶體請求;或 分析程式碼之執行屬性。
- 如請求項13之方法,其中: 回應於活動之該所估計影響超過一臨限量,該轉變包括從該第二功能記憶體狀態轉變至該第一功能記憶體狀態,該轉變包含: 將已變更資訊從該補充快取記憶體寫回至該主記憶體;及 使該補充快取記憶體斷電。
- 如請求項13之方法,其中: 在一功能記憶體狀態中操作該記憶體系統包括在一第三功能記憶體狀態中操作該記憶體系統,其中該補充快取記憶體通電且該主記憶體處於一常規電力模式中,包含回應於記憶體請求而將資料載入至該補充快取記憶體中;且 回應於在該第三功能記憶體狀態中操作該記憶體系統時活動之該所估計影響低於一臨限量,該轉變包括從該第三功能記憶體狀態轉變至該第二功能記憶體狀態,該轉變包含: 使該主記憶體處於該低電力模式中。
- 如請求項13之方法,其進一步包括: 回應於該記憶體系統在該第二功能記憶體狀態中操作,將一直接記憶體存取(DMA)請求投送至該第一快取記憶體或該補充快取記憶體之至少一者。
- 一種電子器件,其包括: 一或多個處理器;及 一或多個電腦可讀儲存媒體,其或其等包含: 一第一快取記憶體; 一主記憶體; 一補充快取記憶體,其通信地耦合在該第一快取記憶體與該主記憶體之間; 一暫存器,其經組態以保存一可設定值;及 儲存於該一或多個電腦可讀儲存媒體上之指令,其等回應於由該一或多個處理器執行,導致執行包括以下各者之操作: 導致程式碼在該一或多個處理器上執行;及 基於該程式碼調整該可設定值以選擇性地使該補充快取記憶體能夠作為相對於該第一快取記憶體之一較低層級快取資源操作。
- 如請求項18之電子器件,其中該調整包括以下各者之至少一者: 確立該可設定值以允許硬體選擇性地啟動該補充快取記憶體;或 確立該可設定值以指導該硬體使該補充快取記憶體處於一監測操作模式中以啟動該補充快取記憶體且嘗試使該主記憶體處於一低電力模式中。
- 如請求項18之電子器件,其中該等指令回應於由該一或多個處理器執行而執行進一步包括以下各者之操作: 分析該程式碼,包含以下各者之至少一者: 判定該程式碼之一大小;或 在執行期間觀察該程式碼之一記憶體使用型樣, 其中該可設定值之該調整基於該程式碼之該分析。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/824,744 | 2017-11-28 | ||
US15/824,744 US10705590B2 (en) | 2017-11-28 | 2017-11-28 | Power-conserving cache memory usage |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926060A true TW201926060A (zh) | 2019-07-01 |
TWI670602B TWI670602B (zh) | 2019-09-01 |
Family
ID=63638334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107119411A TWI670602B (zh) | 2017-11-28 | 2018-06-06 | 電子器件及省電快取記憶體使用之方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10705590B2 (zh) |
EP (1) | EP3602310B1 (zh) |
CN (1) | CN110574014B (zh) |
TW (1) | TWI670602B (zh) |
WO (1) | WO2019108280A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
KR20200114481A (ko) * | 2019-03-28 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
KR20200142219A (ko) | 2019-06-12 | 2020-12-22 | 삼성전자주식회사 | 전자 장치 및 그의 저장 공간 이용 방법 |
KR20210128073A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN112433960B (zh) * | 2020-12-08 | 2022-06-21 | 四川长虹电器股份有限公司 | 一种异步基于版本控制的刷新级联缓存的方法 |
US20230195644A1 (en) * | 2021-12-20 | 2023-06-22 | Advanced Micro Devices, Inc. | Last level cache access during non-cstate self refresh |
CN116909943B (zh) * | 2023-09-08 | 2023-12-19 | 飞腾信息技术有限公司 | 一种缓存访问方法、装置、存储介质及电子设备 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6105109A (en) * | 1998-02-19 | 2000-08-15 | International Business Machines Corporation | System speed loading of a writable cache code array |
US6519682B2 (en) * | 1998-12-04 | 2003-02-11 | Stmicroelectronics, Inc. | Pipelined non-blocking level two cache system with inherent transaction collision-avoidance |
US20050071564A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Reduction of cache miss rates using shared private caches |
US7127560B2 (en) * | 2003-10-14 | 2006-10-24 | International Business Machines Corporation | Method of dynamically controlling cache size |
US20050138296A1 (en) * | 2003-12-18 | 2005-06-23 | Coulson Richard L. | Method and system to alter a cache policy |
US7228388B2 (en) * | 2004-11-19 | 2007-06-05 | International Business Machines Corporation | Enabling and disabling cache bypass using predicted cache line usage |
US7237065B2 (en) * | 2005-05-24 | 2007-06-26 | Texas Instruments Incorporated | Configurable cache system depending on instruction type |
TWI352906B (en) | 2005-11-15 | 2011-11-21 | Montalvo Systems Inc | Method, microprocessor system, medium, memory elem |
US7899990B2 (en) * | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
ATE548696T1 (de) | 2005-11-15 | 2012-03-15 | Oracle America Inc | Energieeinsparung über dram-zugang |
US20080082752A1 (en) * | 2006-09-29 | 2008-04-03 | Ram Chary | Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state |
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US7865669B2 (en) * | 2007-08-02 | 2011-01-04 | International Machines Business Corporation | System and method for dynamically selecting the fetch path of data for improving processor performance |
US20090327609A1 (en) | 2008-06-30 | 2009-12-31 | Bruce Fleming | Performance based cache management |
US8966181B2 (en) * | 2008-12-11 | 2015-02-24 | Seagate Technology Llc | Memory hierarchy with non-volatile filter and victim caches |
US8706966B1 (en) * | 2009-12-16 | 2014-04-22 | Applied Micro Circuits Corporation | System and method for adaptively configuring an L2 cache memory mesh |
US8364904B2 (en) * | 2010-06-21 | 2013-01-29 | International Business Machines Corporation | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8656106B2 (en) * | 2010-12-16 | 2014-02-18 | International Business Machines Corporation | Managing unforced injections of cache lines into a cache utilizing predetermined address ranges |
US8838897B2 (en) * | 2011-06-29 | 2014-09-16 | New Jersey Institute Of Technology | Replicating tag entries for reliability enhancement in cache tag arrays |
WO2013063484A1 (en) * | 2011-10-28 | 2013-05-02 | The Regents Of The University Of California | Multiple-core computer processor |
US9110810B2 (en) * | 2011-12-06 | 2015-08-18 | Nvidia Corporation | Multi-level instruction cache prefetching |
US9958926B2 (en) | 2011-12-13 | 2018-05-01 | Intel Corporation | Method and system for providing instant responses to sleep state transitions with non-volatile random access memory |
US9122612B2 (en) * | 2012-06-25 | 2015-09-01 | Advanced Micro Devices, Inc. | Eliminating fetch cancel for inclusive caches |
US9058269B2 (en) * | 2012-06-25 | 2015-06-16 | Advanced Micro Devices, Inc. | Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit |
US8868841B2 (en) * | 2012-09-04 | 2014-10-21 | Facebook, Inc. | Statistical cache promotion |
GB2507758A (en) * | 2012-11-08 | 2014-05-14 | Ibm | Cache hierarchy with first and second level instruction and data caches and a third level unified cache |
US20140143498A1 (en) * | 2012-11-21 | 2014-05-22 | Advanced Micro Devices, Inc. | Methods and apparatus for filtering stack data within a cache memory hierarchy |
US9342461B2 (en) * | 2012-11-28 | 2016-05-17 | Qualcomm Incorporated | Cache memory system and method using dynamically allocated dirty mask space |
US9183144B2 (en) * | 2012-12-14 | 2015-11-10 | Intel Corporation | Power gating a portion of a cache memory |
US9348752B1 (en) * | 2012-12-19 | 2016-05-24 | Amazon Technologies, Inc. | Cached data replication for cache recovery |
US9251069B2 (en) * | 2012-12-21 | 2016-02-02 | Advanced Micro Devices, Inc. | Mechanisms to bound the presence of cache blocks with specific properties in caches |
US8984230B2 (en) | 2013-01-30 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Method of using a buffer within an indexing accelerator during periods of inactivity |
JP5989574B2 (ja) * | 2013-02-28 | 2016-09-07 | 株式会社東芝 | 計算機、メモリ管理方法およびプログラム |
CN105493052B (zh) | 2013-09-27 | 2019-05-03 | 英特尔公司 | 用于存储器管理的高速缓存操作 |
WO2015136655A1 (ja) * | 2014-03-13 | 2015-09-17 | 株式会社日立製作所 | ストレージシステム及び制御方法 |
WO2016009247A1 (en) * | 2014-07-14 | 2016-01-21 | Via Alliance Semiconductor Co., Ltd. | Cache system with primary cache and overflow cache that use different indexing schemes |
US9600442B2 (en) * | 2014-07-18 | 2017-03-21 | Intel Corporation | No-locality hint vector memory access processors, methods, systems, and instructions |
US9465938B2 (en) * | 2014-09-22 | 2016-10-11 | Qualcomm Incorporated | Integrated circuit and method for detection of malicious code in a first level instruction cache |
WO2016055828A1 (en) * | 2014-10-08 | 2016-04-14 | Via Alliance Semiconductor Co., Ltd. | Cache system with primary cache and overflow fifo cache |
US10114692B2 (en) * | 2015-01-27 | 2018-10-30 | Quantum Corporation | High/low energy zone data storage |
US9836399B2 (en) * | 2015-03-27 | 2017-12-05 | Intel Corporation | Mechanism to avoid hot-L1/cold-L2 events in an inclusive L2 cache using L1 presence bits for victim selection bias |
US20170300427A1 (en) * | 2016-04-18 | 2017-10-19 | Mediatek Inc. | Multi-processor system with cache sharing and associated cache sharing method |
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
-
2017
- 2017-11-28 US US15/824,744 patent/US10705590B2/en active Active
-
2018
- 2018-06-06 TW TW107119411A patent/TWI670602B/zh active
- 2018-08-20 WO PCT/US2018/047120 patent/WO2019108280A1/en unknown
- 2018-08-20 CN CN201880028903.7A patent/CN110574014B/zh active Active
- 2018-08-20 EP EP18772980.1A patent/EP3602310B1/en active Active
-
2020
- 2020-07-06 US US16/921,197 patent/US11320890B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200348746A1 (en) | 2020-11-05 |
CN110574014B (zh) | 2023-08-11 |
EP3602310A1 (en) | 2020-02-05 |
US11320890B2 (en) | 2022-05-03 |
EP3602310B1 (en) | 2023-05-03 |
CN110574014A (zh) | 2019-12-13 |
WO2019108280A1 (en) | 2019-06-06 |
TWI670602B (zh) | 2019-09-01 |
US20190163252A1 (en) | 2019-05-30 |
US10705590B2 (en) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI670602B (zh) | 電子器件及省電快取記憶體使用之方法 | |
US9015396B2 (en) | Reducing latency in a peripheral component interconnect express link | |
US8959369B2 (en) | Hardware automatic performance state transitions in system on processor sleep and wake events | |
TWI528169B (zh) | 在閒置顯示情況中之記憶體電力節省 | |
US9400544B2 (en) | Advanced fine-grained cache power management | |
US8806232B2 (en) | Systems and method for hardware dynamic cache power management via bridge and power manager | |
US20100228922A1 (en) | Method and system to perform background evictions of cache memory lines | |
US9218040B2 (en) | System cache with coarse grain power management | |
US20140189401A1 (en) | Block-level sleep logic | |
CN107003710A (zh) | 包括多个相异的处理器核心的处理器 | |
US8484418B2 (en) | Methods and apparatuses for idle-prioritized memory ranks | |
US9396122B2 (en) | Cache allocation scheme optimized for browsing applications | |
EP2808758B1 (en) | Reduced Power Mode of a Cache Unit | |
TWI587126B (zh) | 用於通用串列匯流排(usb)操作之性能最佳化的系統及方法 | |
JP2017502325A (ja) | 動的バックライト制御能力を利用した適応性部分画面更新 | |
US9411663B2 (en) | Conditional notification mechanism | |
US20140156941A1 (en) | Tracking Non-Native Content in Caches | |
US20230086149A1 (en) | Reducing memory power usage in far memory | |
US20150362978A1 (en) | Hierarchical clock control using hysterisis and threshold management |