TWI526831B - 針對瀏覽應用程式最佳化之快取分配方法 - Google Patents

針對瀏覽應用程式最佳化之快取分配方法 Download PDF

Info

Publication number
TWI526831B
TWI526831B TW103113581A TW103113581A TWI526831B TW I526831 B TWI526831 B TW I526831B TW 103113581 A TW103113581 A TW 103113581A TW 103113581 A TW103113581 A TW 103113581A TW I526831 B TWI526831 B TW I526831B
Authority
TW
Taiwan
Prior art keywords
cache memory
path
data
memory
cache
Prior art date
Application number
TW103113581A
Other languages
English (en)
Other versions
TW201504809A (zh
Inventor
思科帕 比斯瓦思
沃夫剛H 克林葛夫
榮章 胡
信耶 修
Original Assignee
蘋果公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 蘋果公司 filed Critical 蘋果公司
Publication of TW201504809A publication Critical patent/TW201504809A/zh
Application granted granted Critical
Publication of TWI526831B publication Critical patent/TWI526831B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3218Monitoring of peripheral devices of display devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • G09G2330/022Power management, e.g. power saving in absence of operation, e.g. no data being entered during a predetermined time
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

針對瀏覽應用程式最佳化之快取分配方法
本發明大體上係關於資料快取記憶體,且詳言之,係關於用於利用用於瀏覽行動電子裝置中之應用程式的位於記憶體控制器中之快取記憶體的方法及機制。
現代行動電子裝置常常包括共用對一或多個記憶體裝置之存取的多個組件或代理。此等多個代理可向記憶體進行較大數目之請求,且隨著此等請求之數目增加,裝置之電力消耗增加,此情況限制裝置的電池壽命。用於減少電力消耗之一種方法為嘗試藉由快取處理器中或靠近處理器之資料來減少存取晶片外記憶體的次數。
對於通常重複之任務,行動電子裝置之顯示器可處於靜態歷時相當大之持續時間。舉例而言,裝置可用於網際網路瀏覽應用程式中,其中使用者查看各種網頁。在已下載給定網頁並將該給定網頁顯示於螢幕上之後,使用者在裝置螢幕不改變情況下可保持於此給定網頁歷時相當大之持續時間。對於行動電子裝置之許多使用者而言,此類型之瀏覽活動可係相當普遍的。
對於典型之行動電子裝置,可自儲存於記憶體中之圖框緩衝器驅動顯示器。圖框緩衝器可包括具有至顯示器之尺寸之一對一映射的像素,且可將圖框緩衝器以每秒固定次數寫入顯示器。舉例而言,在 一項實施例中,可將圖框緩衝器以每秒60次寫入至顯示器。各種圖形處理器及/或邏輯可用以產生儲存於圖框緩衝器中的個別圖框。然而,當顯示器內容並不改變時,每秒60次自記憶體擷取圖框緩衝器以驅動顯示器係一種電力密集型活動。
揭示用於使用一快取記憶體最佳化瀏覽應用程式的系統、記憶體控制器、快取記憶體系統(cache)及方法。
在一系統單晶片(SoC)中,多個代理可耦接至一記憶體控制器,該記憶體控制器又可耦接至一或多個記憶體裝置。該等多個代理可經由該記憶體控制器存取該(等)記憶體裝置。出於減少存取晶片外記憶體之請求之數目的目的,該記憶體控制器可包括經組態以儲存資料的一快取記憶體。可由包括一或多個處理器之多個代理共用該快取記憶體。該一或多個處理器可執行用於控制該SoC之總操作的一作業系統(OS)。
該SoC可耦接至一顯示器,且該SoC可產生展示於該顯示器上之影像及視訊。該SoC可將構成該視訊及影像之像素資料儲存於一圖框緩衝器中,且該圖框緩衝器可儲存於該記憶體裝置中。儲存於該圖框緩衝器中之該像素資料可用以以一固定圖框速率驅動該顯示器。當該OS偵測到該圖框緩衝器未改變歷時一預定時間段時,該OS可起始用於將該圖框緩衝器儲存於該快取記憶體中的一循序分配模式。取決於該圖框緩衝器之大小及該快取記憶體之大小,可將該圖框緩衝器之一部分或整個圖框緩衝器儲存於該快取記憶體中。因此,只要展示於該顯示器上之內容未正改變,該圖框緩衝器(或其一部分)就可駐留於該快取記憶體中,且可自該快取記憶體加載該圖框緩衝器(或其一部分)以展示於該顯示器上。在一項實施例中,可在將該圖框緩衝器之一部分或該整個圖框緩衝器儲存於該快取記憶體中之後,使該記憶體控制 器之部分或該整個記憶體控制器斷電歷時延長之時間段。
在一項實施例中,該循序分配模式可涉及在該快取記憶體中基於一循序地分配該圖框緩衝器。像素資料可儲存於一個別通路內之循序索引中,直至該通路已全部填充有像素資料為止。當以此方式儲存像素資料時,可將所有其他通路置於保留模式,以減少由該快取記憶體所損失的洩漏電力。當該當前通路已填充有像素資料時,可將下一通路置於存取模式,且可藉由依序移動通過該等索引而在該下一通路中分配像素資料。一旦在該下一通路中分配像素資料,便可將該先前通路置於保留模式。
鑒於對本文中所呈現之方法的以下詳細描述,此等及其他特徵及優勢對於一般熟習此項技術者將為顯而易見。
10‧‧‧電子裝置
12‧‧‧記憶體
14‧‧‧記憶體控制器
16‧‧‧快取記憶體
18‧‧‧相干點
20‧‧‧處理器複合體
22‧‧‧圖形引擎
24‧‧‧非即時(NRT)周邊裝置
26‧‧‧即時(RT)周邊裝置
30‧‧‧積體電路(IC)
32A‧‧‧請求代理
32B‧‧‧請求代理
32C‧‧‧請求代理
34‧‧‧切換器介面
36‧‧‧相干點
38‧‧‧相干點
40‧‧‧記憶體控制器
42‧‧‧記憶體控制器快取記憶體
44‧‧‧記憶體控制器快取記憶體
46‧‧‧記憶體通道切換器/記憶體控制器切換器
48‧‧‧記憶體通道單元
50‧‧‧記憶體通道單元
60‧‧‧快取記憶體
62‧‧‧標記記憶體
64‧‧‧資料記憶體
66‧‧‧快取記憶體控制單元
68‧‧‧組態暫存器
70‧‧‧快取記憶體控制單元
72‧‧‧資料記憶體
74A‧‧‧通路
74B‧‧‧通路
74C‧‧‧通路
74D‧‧‧通路
76A‧‧‧開關
76B‧‧‧開關
76C‧‧‧開關
76D‧‧‧開關
80‧‧‧智慧型電話
82‧‧‧顯示器
90‧‧‧圖框緩衝器
92A‧‧‧通路
92B‧‧‧通路
92C‧‧‧通路
92D‧‧‧通路
100‧‧‧用於處置閒置螢幕使用狀況之方法
120‧‧‧用於在快取記憶體中實施循序分配模式之方法
140‧‧‧系統
142‧‧‧外部記憶體
144‧‧‧周邊裝置
146‧‧‧電源供應器
150‧‧‧桌上型電腦
160‧‧‧膝上型電腦
170‧‧‧平板電腦
180‧‧‧蜂巢式電話
190‧‧‧電視
VDD1‧‧‧電力供應/供電電壓
VDD2‧‧‧電力供應/供電電壓/保留電壓
藉由結合隨附圖式參看以下描述,可更好地理解方法及機制的以上及其他優勢,其中:圖1說明電子裝置之一部分的一項實施例。
圖2說明積體電路之一部分的一項實施例。
圖3為說明快取記憶體之一項實施例的方塊圖。
圖4為說明資料記憶體之個別供電通路的一項實施例的方塊圖。
圖5為說明處於閒置螢幕模式之智慧型電話的一項實施例的方塊圖。
圖6為說明以循序方式將圖框緩衝器分配至快取記憶體的一實施例之方塊圖。
圖7為說明以循序方式將圖框緩衝器分配至快取記憶體之另一實施例的方塊圖。
圖8為說明用於偵測閒置螢幕模式之方法的一項實施例之一般化流程圖。
圖9為說明用於實施循序分配模式之方法的一項實施例的一般化流程圖。
圖10為系統之一項實施例的方塊圖。
在以下描述中,闡述眾多特定細節以提供對本文中所呈現之方法及機制的透徹理解。然而,一般熟習此項技術者應認識到,可在無此等特定細節情況下實踐各種實施例。在一些情況下,未詳細展示熟知的結構、組件、信號、電腦程式指令及技術以避免混淆本文中所描述的方法。應瞭解,為說明之簡單及清楚起見,該等諸圖中所展示之元件未必按比例繪製。舉例而言,一些元件的尺寸相對於其他元件可能經誇示。
本說明書包括對「一項實施例」之參考。片語「在一項實施例中」在不同上下文中的出現不必指同一實施例。可以與本發明一致之任何合適方式來組合特定特徵、結構或特性。此外,如貫穿本申請案所使用,詞「可」係在容許意義(亦即,意謂有可能)而非強制意義(亦即,意謂必須)上使用。類似地,詞「包括」意謂包括但不限於。
術語。以下段落為本發明中(包括附加申請專利範圍)所見之術語提供定義及/或上下文。
「包含」。此術語為開放式術語。如在附加申請專利範圍中所使用,此術語並不排除額外結構或步驟。考慮敍述以下內容的一請求項:「一種記憶體控制器,其包含一快取記憶體……」。此請求項並不排除該記憶體控制器包括額外組件(例如,記憶體通道單元、切換器)。
「經組態以」。可將各種單元、電路或其他組件描述或主張為「經組態以」執行(若干)任務。在此等上下文中,「經組態以」用以藉由指示單元/電路/組件包括在操作期間執行該(等)任務之結構(例如, 電路系統)而暗示結構。因而,即使當單元/電路/組件並非同時可操作(例如,並未同時在作用中)時,仍可稱所指定之單元/電路/組件為經組態以執行任務。與「經組態以……」語言一起使用的單元/電路/組件包括硬體,例如,電路、儲存可執行以實施操作之程式指令的記憶體等。敍述單元/電路/組件「經組態以」執行一或多個任務對於彼單元/電路/組件而言並不明確地意欲援引35 U.S.C.§ 112第六段。另外,「經組態以」可包括由軟體及/或韌體(例如,FPGA或執行軟體之通用處理器)操縱以便以能夠執行相關任務之方式操作的一般結構(例如,一般電路系統)。「經組態以」亦可包括調適製造程序(例如,半導體製造設施)以製造適於實施或執行一或多個任務的裝置(例如,積體電路)。
「第一」、「第二」等。如本文中所使用,此等術語用作名詞之標籤,該等標記居先且並不暗示任何類型之排序(例如,空間上、時間上、邏輯上等)。舉例而言,在具有複數個快取行之快取記憶體中,術語「第一」快取行及「第二」快取行可用以指該複數個快取行中之任兩者。
「基於」。如本文中所使用,此術語用以描述影響判定之一或多個因素。此術語並不排除可影響判定的額外因素。即,一判定可僅僅基於彼等因素或至少部分地基於彼等因素。考慮片語「基於B來判定A」。雖然B可為影響A之判定的一因素,但此片語並不排除A之判定亦基於C。在其他情況下,可僅僅基於B來判定A。
現參看圖1,展示說明電子裝置之一部分的一項實施例之方塊圖。在所說明之實施例中,電子裝置10包括記憶體12、記憶體控制器14、相干點18、處理器複合體20、圖形引擎22、非即時(NRT)周邊裝置24及即時(RT)周邊裝置26。應注意,電子裝置10亦可包括圖1中未展示的其他組件。此外,在另一實施例中,可自電子裝置10省略圖1 中所展示之組件中的一或多者。在各種實施例中,電子裝置10亦可被稱作設備、行動裝置或計算裝置。
記憶體12表示任何數目及類型之記憶體裝置,諸如,動態隨機存取記憶體(DRAM)、同步DRAM(SDRAM)、雙資料速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的諸如mDDR3等之行動版本及/或SDRAM的諸如LPDDR2等之低電力版本)、RAMBUS DRAM(RDRAM)、靜態RAM(SRAM)等。一或多個記憶體裝置可耦接至電路板上以形成記憶體模組,諸如,單內嵌記憶體模組(single inline memory module,SIMM)、雙內嵌記憶體模組(dual inline memory module,DIMM)等。
記憶體控制器14可包括經組態以介接至記憶體12的電路系統,且各種組件可經由相干點18耦接至記憶體控制器14。在其他實施例中,圖1中所展示之其他裝置中的一或多者可直接地而非經由相干點18耦接至記憶體控制器14。在各種實施例中,記憶體控制器14可包括用於耦接至各種周邊裝置、組件及/或請求代理的任何數目個埠。
記憶體控制器14可包括快取記憶體16,以用於儲存自記憶體12所擷取或意欲用於該記憶體之資料。快取記憶體16可經組態以處理來自多個請求代理的記憶體請求。一或多個請求代理可包括於展示為連接至相干點18之裝置中的任一者內。由於在快取記憶體16中分配資料,因此可減少對記憶體12進行之存取的數目,此情況減少記憶體請求之潛時及電子裝置10的電力消耗。
相干點18可經組態以將相干訊務及非相干訊務路由至記憶體控制器14,及自該記憶體控制器路由相干訊務及非相干訊務。相干點18亦可被稱作相干切換器。儘管圖1中未展示,但相干點18可耦接至其他裝置,諸如,快閃控制器、攝影機、顯示器及其他裝置。
處理器複合體20可包括任何數目個中央處理單元(CPU)(圖中未 示)及各種其他組件(例如,快取記憶體、匯流排介面單元)。處理器複合體20之CPU可包括執行作業系統(OS)的電路系統。在各種實施例中,OS可為任何類型之OS(例如,iOS)。該等CPU中之每一者可包括一層級1(L1)快取記憶體(圖中未示),且每一L1快取記憶體可耦接至一層級2(L2)快取記憶體。其他實施例可包括額外快取記憶體層級(例如,層級3(L3)快取記憶體)。
圖形引擎22可包括任何類型之圖形處理電路系統。大體而言,圖形引擎22可經組態以致使物件顯示至圖框緩衝器(圖中未示)中。圖框緩衝器可通常駐留於記憶體12中。然而,當顯示器不改變歷時預定時間段時,則可將圖框緩衝器或圖框緩衝器之一部分分配至快取記憶體16中。在一些實施例中,預定時間段之長度的數量級可為微秒。取決於實施例,OS或顯示器驅動程式可使用多種技術中之任一者來偵測顯示器未改變。該等技術可包括偵測缺乏使用者輸入、偵測並未由圖形引擎22將新資料寫入圖框緩衝器、比較當前圖框緩衝器與先前圖框緩衝器,或相較於顯示器控制器,偵測缺乏來自其他代理的相關量的記憶體存取。
圖形引擎22可包括執行圖形軟體以執行圖形操作之部分或全部,及/或某些圖形操作之硬體加速的圖形處理器。硬體加速及軟體實施的量可隨不同實施例而發生變化。NRT周邊裝置24可包括任何非即時周邊裝置。NRT周邊裝置24之各種實施例可包括視訊編碼器及解碼器、定標器/旋轉器電路系統、影像壓縮/解壓縮電路系統等。RT周邊裝置26可包括任何數目及類型的即時周邊裝置。
應注意,其他實施例可包括組件之其他組合,包括圖1中所展示之組件及/或其他組件的子集或超集。雖然圖1中可展示給定組件之一個例項,但其他實施例可包括給定組件之兩個或兩個以上例項。類似地,貫穿此詳細描述,即使展示僅一個例項,亦仍可包括給定組件之 一或多個例項,及/或即使展示多個例項,亦仍可使用僅包括一例項的實施例。
現轉向圖2,展示積體電路之一部分的一項實施例。積體電路(IC)30可包括請求代理32A至32C、切換器介面34、相干點36及38,及記憶體控制器40。記憶體控制器40可包括記憶體控制器快取記憶體42及44、記憶體通道切換器46,及記憶體通道單元48及50。記憶體控制器40可耦接至一或多個記憶體裝置(圖中未示)。在各種實施例中,IC 30可包括於各種類型之電子裝置中的任一者內,該等電子裝置包括行動電池供電裝置。IC 30亦可被稱作系統單晶片(SoC)。應注意,IC 30可包括圖2中未展示之其他組件及介面。
請求代理32A至32C可經組態以在系統中執行各種操作,且作為執行此等操作之部分可存取記憶體。舉例而言,請求代理32可為處理器(通用處理器,抑或諸如圖形處理器之專用處理器)。處理器可經組態以存取記憶體以提取指令以供執行,且亦可經組態以回應於執行指令而在記憶體中存取指令之各種資料運算元。其他請求代理可包括固定功能之電路系統(例如,DMA控制器、周邊裝置介面控制器)。請求代理32可為實體分離之電路系統,諸如,處理器之分離例項。替代地,請求代理可為諸如執行於處理器上的程序或執行緒的邏輯實體,使得單一實體處理器可包括多個邏輯請求者。包括於給定實施例中之請求代理32A至32C的數目可自1個請求代理至任何數目個請求代理而發生變化。
可藉由請求代理識別符(ID)識別給定請求代理(實體或邏輯)。在各種實施例中,請求代理可添加異動識別符(TID)以分離地追蹤每一個別請求。由請求代理32A至32C所產生的每一請求可伴隨有群組ID。群組ID亦可被稱作資料集ID。群組ID可為與請求代理ID及TID分離的識別符,且用以表示群組ID值之位元的數目可取決於實施例而發 生變化。舉例而言,在一項實施例中,可使用四個位元來表示群組ID值,且可存在16個分離之群組ID。可基於請求屬於之資料流程將群組ID指派至請求。取決於實施例,OS或裝置驅動程式可指派群組ID。對於一些類型之資料流程,可由多個請求代理ID共用同一群組ID。在一項實施例中,可將對字碼頁轉譯資料表(page translation table)之請求視作同一資料流程之部分,且不管請求代理ID,可將此等請求中之任一者指派至共同群組ID。對於其他類型之資料流程,可由僅單一請求代理利用群組ID。
相干點36及38可經組態以管理自請求代理32A至32C輸送至記憶體控制器40之請求的相干性。在一項實施例中,取決於正由特定記憶體請求作為目標之位址,來自請求代理32A至32C的訊務可在切換器介面34中分裂,且周遊特定相干點。其他實施例可包括其他數目個相干點。
記憶體控制器快取記憶體42及44可為分離之實體快取記憶體,但可被視作單一邏輯記憶體控制器快取記憶體。更特定而言,記憶體控制器快取記憶體42及44可共用單一位址空間,且可由切換器介面34將參考快取記憶體42之位址空間的記憶體請求經由相干點36而路由至快取記憶體42,且可由切換器介面34將參考快取記憶體44之位址空間的記憶體請求經由相干點38而路由至快取記憶體44。切換器介面34可為任何類型之通信媒體(例如,匯流排、點對點互連件等),且可實施任何協定。介面可指介面之信號定義及電性質,且協定可為關於介面之通信的邏輯定義(例如,包括命令、排序規則、相干支援)。應注意,記憶體控制器快取記憶體42及44亦可被稱作系統快取記憶體系統(system memory cache)或快取記憶體。在其他實施例中,記憶體控制器40可包括其他數目個記憶體控制器快取記憶體。舉例而言,在另一實施例中,記憶體控制器40可包括四個分離之記憶體控制器快取記憶 體。
記憶體控制器切換器46可在記憶體控制器快取記憶體42及44與記憶體通道單元48及50之間路由訊務。對於包括於給定實施例中之每一記憶體通道,可存在一個記憶體通道單元48及50,且其他實施例可包括一個通道或兩個以上通道。記憶體通道單元48及50可經組態以排程待於記憶體通道上傳輸之記憶體操作。記憶體通道單元48及50可經組態以將讀取記憶體操作(或讀取)及寫入記憶體操作(或寫入)分離地排入佇列,且可經組態以使用(例如)基於信用之系統而在讀取與寫入之間進行仲裁。在基於信用之系統中,讀取及寫入可被分配某數目個信用。
在一實施例中,記憶體通道單元48及50可在操作叢發中排程記憶體操作。為產生記憶體操作叢發以供排程,記憶體通道單元48及50可將記憶體操作分組成親和性群組(affinity group)。若一記憶體操作及另一記憶體操作在時間上極近接地執行時可於記憶體介面上高效地執行,則該記憶體操作可被稱為展現與該另一記憶體操作之親和性。
應理解,圖2中所說明之功能性的分佈並非可用於積體電路之唯一可能架構。其他積體電路可包括其他組件,省略所展示組件中之一或多者,及/或在該等組件中包括功能性之不同配置。
現參看圖3,展示快取記憶體之一項實施例的方塊圖。在一項實施例中,快取記憶體60可包括標記記憶體62、資料記憶體64、快取記憶體控制單元66及組態暫存器68。應注意,快取記憶體60亦可包括圖3中未展示之其他組件及邏輯。舉例而言,在其他實施例中,快取記憶體60可包括仲裁電路系統以在請求中進行仲裁。應理解,圖3中所展示的快取記憶體架構僅僅為可被實施的一個可能架構。在其他實施例中,其他快取記憶體架構可與本文中所揭示之方法及機制一起利用。
在一項實施例中,標記記憶體62可經耦接以接收用於來自請求代理之記憶體請求的位址。應注意,術語「記憶體請求」及「異動」可貫穿本發明被互換地使用。資料記憶體64可經耦接以接收資料或提供資料以供異動。在各種實施例中,標記記憶體62及資料記憶體64可包括多個通路,且可藉由索引定址每一通路。舉例而言,在一項實施例中,標記記憶體62及資料記憶體64可各自包括16個通路。在其他實施例中,標記記憶體62及資料記憶體64可包括其他數目個通路。快取記憶體控制單元66耦接至標記記憶體62及資料記憶體64,且快取記憶體控制單元66可經組態以接收與所接收之異動相關的各種控制資料,且對所接收之控制資料作出回應。應注意,儘管圖3中將快取記憶體控制單元66展示為單一單元,但在其他實施例中,快取記憶體控制單元66可在快取記憶體60內分裂成多個單元。組態暫存器68可包括用於與儲存於快取記憶體60中之資料相關聯的各種群組ID的組態資訊。可藉由自OS及/或各種請求代理發送至快取記憶體控制單元66之軟體命令來程式化組態暫存器68。
組態暫存器68表示可用作快取記憶體60之部分的任何數目個組態暫存器。舉例而言,在一項實施例中,對於由OS所指派以使用快取記憶體60之每一群組識別符(ID),可存在分離之組態暫存器68。在此實施例中,每一組態暫存器可定義用於各別群組ID之狀態、配額及替換策略。可藉由發送至快取記憶體60之軟體命令將狀態設定為作用中抑或非作用中。當將狀態設定為非作用中時,此情況可觸發快取記憶體控制單元66以使針對此特定群組ID分配之所有行無效。可設定配額以限制快取記憶體60中可針對各別群組ID分配之行的量。在一項實施例中,對於快取記憶體控制單元66中之每一群組ID可存在配額計數器(圖中未示)。配額計數器可追蹤快取記憶體60中針對對應群組ID之快取行的數目。
資料記憶體64可包含資料項目之集合,該等資料項目各自具有儲存資料之快取行的能力。快取行可為資料記憶體64中分配及解除分配的單位。快取行可為任何所要之大小,諸如,32位元組或64位元組,但在其他實施例中可支援較大及較小之快取行大小。在另一實施例中,資料記憶體64之快取行可被稱作「快取區塊」。
在各種實施例中,資料記憶體64可利用任何類型之記憶體裝置。在一項實施例中,資料記憶體64可包含(例如)由項目編號加索引之RAM。回應於輸入位址之索引部分(例如,可經解碼以在數個經實施之集合間唯一地選擇一集合的位址之位元的數目),資料記憶體64可經配置,使得可選擇快取行儲存位置之集合以用於讀取/寫入操作。可藉由快取記憶體控制單元66識別待存取之快取行儲存位置(例如,回應於偵測到針對請求之快取命中、回應於分配快取行儲存位置以儲存遺漏之快取行)。可自經存取快取行儲存位置讀取資料以針對讀取快取命中而傳回至請求者,或針對自快取記憶體60收回之快取行而傳輸至記憶體。可針對寫入快取命中而將資料自請求者寫入至經存取快取行儲存位置,或完成遺漏快取行至經分配快取行儲存位置中之快取填充。在一些實施例中,資料記憶體64可為成記憶體庫實施(banked implementation),且亦可自快取記憶體控制單元66提供記憶體庫選擇控制(bank selection control)。
標記記憶體62可利用任何類型之記憶體裝置,諸如,RAM。替代地,標記記憶體62可出於窺探之目的而包含內容可定址記憶體(CAM),或包含RAM/CAM組合。標記記憶體62可包含複數個標記項目,每一項目係由上文所提及之索引的不同值選擇。所選擇之標記項目可儲存對應於快取記憶體60中由索引選擇之快取行儲存位置之集合的標記。每一標記對應於各別快取行儲存位置中之快取行,且可包括對應快取行之位址的標記部分(亦即,減去定義快取行內之偏移的最 低有效位元及用於索引之位元的位址),及各種其他狀態資訊。回應於請求,標記記憶體62可經組態以解碼索引,且將標記輸出至快取記憶體控制單元66以供處理。在一實施例中,標記記憶體62亦可包括經組態以比較標記與請求位址之標記部分的標記比較電路系統,且可將比較結果提供至快取記憶體控制單元66。在另一實施例中,快取記憶體控制單元66可比較標記。快取記憶體控制單元66亦可經組態以藉由寫入標記項目而執行各種標記更新。
快取記憶體60可具有任何組態。在一些實施例中,可實施直接映射或集合關聯組態。在典型之直接映射及集合關聯快取記憶體中,在標記項目與資料項目之間存在經預組態之一對一對應。在直接映射組態中,每一位址映射至快取記憶體60中之一個可能項目(標記記憶體62及資料記憶體64),此處將儲存對應快取行。在一項實施例中,快取記憶體60可係關聯的,其中給定之位址映射至資料記憶體64中可有資格儲存快取行之兩個或兩個以上快取行儲存位置。快取記憶體60可為集合關聯的,其中每一位址映射至兩個或兩個以上可能項目(取決於快取記憶體之關聯性)。在一項實施例中,將N個快取行儲存位置映射至被稱作索引之位址位元之子集中具有相同值的位址,其中N為大於1且小於資料記憶體64中之快取行儲存位置之總數的整數。形成對應於給定索引之集合的N個快取行儲存位置常常被稱作「通路」。其他實施例可係完全關相聯的,其中任何快取行儲存位置可被映射至任何位址。
快取記憶體控制單元66可在資料記憶體64中動態地分配資料項目,以儲存由快取記憶體60接收之異動的資料。舉例而言,異動可為至記憶體之寫入。異動亦可為回應於先前自請求代理接收之讀取且將記憶體(圖中未示)作為目標而自記憶體提供的讀取完成(用資料)。
在一項實施例中,由快取記憶體60自請求代理所接收之每一異 動可包括群組ID編號、快取分配提示及一或多個其他屬性。若異動在快取記憶體60中遺漏,則可由快取記憶體60及快取記憶體控制單元66利用快取分配提示以判定如何針對異動而分配快取行。若針對異動分配新的快取行,則可將群組ID編號儲存於標記記憶體62中的對應項目中。
標記記憶體62可經組態以儲存用於快取記憶體60中所快取之快取行的各種標記。舉例而言,在一項實施例中,標記可包括相干狀態、相黏(sticky)狀態、已變更(dirty)指示符、最近最少使用(LRU)資料、群組識別(ID)及其他資料。取決於實施例,此等標記中之一些或全部可包括於標記記憶體62之每一項目中。
現轉向圖4,展示快取記憶體之通路的一項實施例的方塊圖。資料記憶體72包括通路74A至74D,其表示資料記憶體72之任何數目個通路。每一通路74A至74D可經由獨立可控制開關而耦接至兩個獨立電源供應器(VDD1)及(VDD2)。在一項實施例中,資料記憶體72可為靜態隨機存取記憶體(SRAM)。在其他實施例中,資料記憶體72可為其他類型之記憶體。
開關76A至76D可受控於快取記憶體控制單元70。可由快取記憶體控制單元70基於是否正存取特定通路而判定提供至每一通路的電壓。若正存取通路,則供應至該通路之電壓可為允許對該通路中之資料進行讀取或寫入的較高供電電壓(VDD1)。若並未正存取通路,則供應至該通路之電壓可為允許保留該通路中之資料但並不允許自該通路讀取資料或將資料寫入該通路的較低供電電壓(VDD2)。在一項實施例中,對於特定類型之快取記憶體架構,(VDD1)可為1.8伏特,而(VDD2)可為1.3伏特。在其他實施例中,兩個供電電壓(VDD1)及(VDD2)之實際電壓可發生變化。
藉由獨立地控制供應至每一通路之電力,可顯著減少由總快取 記憶體損失的洩漏電力。當正存取給定通路時,供電電壓(VDD1)可較高,且因此洩漏電力在此時間期間可較大。然而,當不再存取給定通路時,供電電壓可減少為保留電壓(VDD2),以減少洩漏電力損失。快取記憶體控制單元70可允許經過寬限期,使得給定通路有機會上升至較高供電電壓(VDD1)。
應注意,在一些實施例中,可將通路劃分成區段,且每一區段可具備其自身之供電電壓。在此等實施例中,快取記憶體控制單元可僅將正存取之區段保持為存取模式,而其他區段可保持為保留模式。
現參看圖5,展示處於閒置螢幕模式之智慧型電話的一項實施例。智慧型電話80表示具有顯示器的任何類型之電子裝置,諸如,電話、平板電腦、電子閱讀器或其他裝置。雖然顯示器82展示為具有天氣預報,但此情況僅僅為智慧型電話80之用途的一項實例。其他類型之活動可導致螢幕閒置歷時相當長之時間段。智慧型電話80上引起閒置螢幕使用狀況的此等其他類型之使用者活動包括各種類型之瀏覽活動(例如,閱讀網頁、觀看影像)。
在各種實施例中,智慧型電話80可包括圖1及圖2中所展示之電路系統。智慧型電話80亦可包括圖1及圖2中未展示之額外電路系統及組件。當使用者正活躍地使用智慧型電話80時,顯示於顯示器82上之影像及/或視訊可以每秒固定量之圖框進行更新。舉例而言,在一項實施例中,可每秒60次地更新顯示器82。在標準操作期間,當螢幕內容正改變時,可藉由儲存於智慧型電話80之記憶體中的圖框緩衝器中之像素資料來驅動顯示器82。
當圖框緩衝器儲存於記憶體中時,可由許多不同請求代理(包括智慧型電話80之處理器)使用位於記憶體控制器中的快取記憶體,以儲存多種資料。快取記憶體可經組織為二維陣列,其中索引作為一個維度且通路作為另一維度。為了充分利用快取記憶體之容量,OS及 快取記憶體控制單元可試圖將訊務圖案保持為均勻地分佈於所有索引間。快取記憶體控制單元亦可確保分配均勻地分佈於快取記憶體之所有通路間。
當使用者將智慧型電話80不定期地用於各種活動(包括瀏覽活動)時,顯示器表面將處於靜態。當智慧型電話80之OS偵測到顯示於顯示器82上之影像未改變歷時預定時間長度時,則OS可起始循序分配模式,以便將圖框緩衝器或圖框緩衝器之至少一部分儲存於快取記憶體中。
現轉向圖6,展示將圖框緩衝器分配至快取記憶體中之一項實施例的方塊圖。圖框緩衝器90表示具有任何數目個像素的任何大小之圖框緩衝器。圖框緩衝器90可用以驅動電子裝置之顯示器,且圖框緩衝器90可通常駐留於記憶體中。當偵測到閒置螢幕使用狀況時,可使用循序分配模式將圖框緩衝器90分配至快取記憶體中。通路92A、92B及92C表示快取記憶體之任何數目個通路,且取決於實施例,此等通路可具有任何數目個索引。
對於圖6中所展示之實例,出於此論述之目的,可假定每像素存在4位元組之資料,且快取行為64個位元組。因此,16個像素可儲存於通路92A至92C之每一快取行中。應注意,每像素之位元量及快取行之大小可取決於實施例而發生變化。針對通路92A之前三個索引,展示將像素以循序方式儲存於通路92A之循序索引中的型樣。對於通路92A之剩餘索引,此型樣可繼續。當將來自圖框緩衝器90之像素分配至通路92A時,通路92A可保存處於存取模式,而所有其他通路可保持處於保留模式,以減少快取記憶體之電力洩漏。
由於OS偵測到閒置螢幕使用狀況,為了以圖6中所展示之循序方式分配圖框緩衝器90之像素,快取記憶體控制單元(圖中未示)可停用用於通路分配之LRU演算法,當在快取記憶體中接收並分配請求時通 常使用該演算法。快取記憶體控制單元亦可停用用以產生均勻地分佈於所有索引間之訊務型樣的任何雜湊功能。實情為,快取記憶體控制單元可將像素分配至同一通路,直至通路已完全填充有像素資料為止。接著,快取記憶體控制單元可移動至下一鄰近通路。如圖6中所展示,亦可被稱作通路0之通路92A為待用於分配像素資料之第一通路。意欲在通路0填充有像素資料之後,將使用通路1(通路92B),接著使用通路2(通路92C)等等。替代地,在另一實施例中,可首先填充最後通路,且接著可自最高通路至最低通路地分配通路。舉例而言,若快取記憶體具有編號為0至15之16個通路,則可首先使用通路15,接著使用通路14,接著使用通路13等等。
應注意,當將圖框緩衝器90讀取出快取記憶體時,亦可使用用於將圖框緩衝器90分配至快取記憶體中之型樣。一旦偵測到閒置螢幕使用狀況,便可在下次自記憶體提取圖框緩衝器90以顯示於螢幕上時,將圖框緩衝器90分配至快取記憶體中。接著,在提取圖框緩衝器90以供顯示之以後時間處,可以循序方式自快取記憶體提取圖框緩衝器90。應注意,在一些實施例中,整個圖框緩衝器90可並不適配於快取記憶體。在此等實施例中,可以循序方式自快取記憶體提取儲存於快取記憶體中之所有像素,且接著可自記憶體提取剩餘像素。
圖6意欲說明將圖框緩衝器90分配至快取記憶體之通路92A至92C的循序方式。應理解,所展示之實例僅為一個可能實施例,且其他實施例可不同於圖6中所展示的實例。舉例而言,儘管像素經展示為自圖框緩衝器90之左上像素開始並移動至右方進行分配,但應注意在其他實施例中,可利用圖框緩衝器90之其他開始點。
現參看圖7,展示將圖框緩衝器分配至快取記憶體之另一實施例。圖7為圖6中所展示之實例的延續部分。可將圖框緩衝器90之像素分配至快取記憶體之每一通路的循序索引中。如圖7中所展示,像素 之循序分配已向下移動若干列至圖框緩衝器90中,且如圖中所展示,現在通路92C填充有像素。可假定,通路92A至92B已完全填充有來自圖框緩衝器90之先前列像素的像素。
如圖7中所展示,供應將通路92C置於存取模式所必要的較高電壓(VDD1)給通路92C。供應較低保留電壓(VDD2)給其他通路92A至92B及92D,以便將此等通路保持於保留模式。快取記憶體之所有其他通路亦可保持於保留模式,以減少洩漏電力損失。可繼續圖6及圖7中所說明之程序,直至已將所有圖框緩衝器90寫入通路92A至92D(其表示任何數目個通路)中為止,抑或直至完全填充通路92A至92D為止。
現轉向圖8,展示用於處置閒置螢幕使用狀況之方法100的一項實施例。出於論述之目的,以循序次序展示此實施例中之步驟。應注意,在下文所描述方法之各種實施例中,所描述元素中的一或多者可同時執行、以不同於所展示之次序執行,或可被完全省略。如需要,亦可執行其他額外元素。
在一項實施例中,電子裝置之作業系統(OS)可偵測到顯示器之螢幕內容未改變已歷時預定時間段(區塊102)。預定時間段之長度可取決於實施例而發生變化。接著,OS可向快取記憶體通知已偵測到閒置螢幕使用狀況(區塊104)。快取記憶體可藉由鍵入循序分配模式來作出回應,以在閒置螢幕使用狀況之持續時間期間最小化電力消耗。
接著,OS可產生對映射至快取記憶體中之循序索引的圖框緩衝器之像素的請求(區塊106)。作為回應,快取記憶體可將像素分配至同一通路之循序索引,直至該通路已完全填充有來自圖框緩衝器的像素為止。快取記憶體可移動至下一通路,並將像素分配至此通路之循序索引,且接著對於剩餘通路,快取記憶體可繼續此型樣。對於在已將圖框緩衝器分配至快取記憶體之後的對圖框緩衝器後續請求,快取記憶體可使用同一循序存取將圖框緩衝器讀取出通路。
在一項實施例中,OS可將靜態圖框緩衝器「按原樣」(亦即,無修改或壓縮)儲存於快取記憶體中。在另一實施例中,OS可使用適當壓縮技術以使較多像素適配於快取記憶體中,且因此增加電力節省。可使用各種壓縮技術,諸如將多個源圖框緩衝器混合成單一目標圖框緩衝器(例如,混合經解碼JPEG影像與圖形使用者介面)、減少每像素所使用的位元組數目(例如,自8減少至4)、省略閒置螢幕條件並不要求之阿爾法通道資訊,以及其他技術。
接著,OS可判定是否已偵測到閒置螢幕使用狀況的結束(條件性區塊108)。顯示於電子裝置上之內容的改變可引起閒置螢幕使用狀況的結束。若已偵測到閒置螢幕使用狀況的結束(條件性區塊108,「是」支路),則OS可通知快取記憶體(區塊110)。由於接收到此通知,快取記憶體可停用循序分配模式。快取記憶體可將其他資料分配至將收回來自圖框緩衝器之像素的快取記憶體。在區塊110之後,方法100可結束。
若未偵測到閒置螢幕使用狀況之結束(條件性區塊108,「否」支路),則方法100可返回至區塊106,以產生對映射至快取記憶體之循序索引的圖框緩衝器之像素的請求。應注意,可自快取記憶體以每秒某次數讀取圖框緩衝器(例如,每秒60個圖框)。因此,只要顯示器內容並未改變,方法100就可以每秒固定次數自條件性區塊108移動至區塊106。
現參看圖9,展示用於在快取記憶體中實施循序分配模式之方法120的一項實施例。出於論述之目的,以循序次序展示此實施例中之步驟。應注意,在下文所描述方法之各種實施例中,所描述元素中之一或多者可同時執行、以不同於所展示之次序執行,或可被完全省略。如需要,亦可執行其他額外元素。
快取記憶體可接收由OS偵測到之閒置螢幕使用狀況的通知(區塊 122)。通知亦可包括與閒置螢幕使用狀況相關聯的顯示器表面之資料集ID之指示。接著,快取記憶體可接收對圖框緩衝器之一或多個像素的請求(區塊124)。快取記憶體控制單元可判定將請求分配至的通路,且接著將所選擇通路置於存取模式(區塊126)。快取記憶體控制單元亦可將所有其他通路置於保留模式(若此等通路已並非為保留模式)(區塊128)。接著,快取記憶體控制單元可處理請求(區塊130)。
接著,快取記憶體可接收對圖框緩衝器之一或多個其他像素的另一請求(區塊132)。快取記憶體控制單元可判定當前通路是否已充分分配有來自圖框緩衝器之像素(條件性區塊134)。若當前通路未滿(條件性區塊134,「否」支路),則方法120可返回至區塊130,以處理當前通路中之請求。
若當前通路已滿(條件性區塊134,「是」支路),則快取記憶體控制單元可判定是否存在將當前請求分配於其中的任何其他可用通路(條件性區塊136)。若並不存在用於儲存當前請求之可用通路(條件性區塊136,「否」支路),則方法120可結束。若存在用於儲存當前請求之至少又一可用通路(條件性區塊136,「是」支路),則方法120可返回至區塊126,以判定在哪個通路中分配請求。應注意,在一些實施例中,可在接收到將於下一通路中分配之請求之前執行區塊126。快取記憶體之快取記憶體控制單元可基於先前請求之位置而預期到新請求。舉例而言,若通路之最後索引將給定請求作為目標,則快取記憶體控制單元可預期到下一請求之目標,並在接收到下一請求之前將下一通路置於存取模式。以此方式,通路自保留模式進行至存取模式所要求的上升時間可實際上並不引起下一請求的延遲,此係由於此上升週期將在接收到將於下一通路中分配之請求之前經過。
接下來轉向圖10,展示系統140之一項實施例的方塊圖。如圖展示,系統140可表示桌上型電腦150、膝上型電腦160、平板電腦170、 蜂巢式電話180、電視190(或經組態以耦接至電視之機上盒)或其他者的晶片、電路系統、組件等。其他裝置係可能的且被涵蓋。在所說明之實施例中,系統140包括耦接至外部記憶體142的(圖2之)IC 30之至少一例項。
IC 30耦接至一或多個周邊裝置144及外部記憶體142。亦提供電源供應器146,其將供電電壓供應至IC 30以及將一或多個供電電壓供應至記憶體142及/或周邊裝置144。在各種實施例中,電源供應器146可表示電池(例如,智慧型電話、膝上型電腦或平板電腦中之可再充電電池)。在一些實施例中,可包括IC 30之一個以上例項(且亦可包括一個以上之外部記憶體142)。
記憶體142可為任何類型之記憶體,諸如,動態隨機存取記憶體(DRAM)、同步DRAM(SDRAM)、雙資料速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM之諸如mDDR3等的行動版本及/或SDRAM之諸如LPDDR2等的低電力版本)、RAMBUS DRAM(RDRAM)、靜態RAM(SRAM)等。一或多個記憶體裝置可耦接至電路板上以形成記憶體模組,諸如,單內嵌記憶體模組(SIMM)、雙內嵌記憶體模組(DIMM)等。替代地,裝置可經安裝有呈疊層晶片組態、疊層封裝組態或多晶片模組組態的IC 30。
取決於系統140之類型,周邊裝置144可包括任何所要電路系統。舉例而言,在一項實施例中,周邊裝置144可包括用於各種類型之無線通信(諸如,wifi、藍芽、蜂巢式、全球定位系統等)的裝置。周邊裝置144亦可包括額外儲存器,其包括RAM儲存器、固態儲存器,或磁碟儲存器。周邊裝置144可包括使用者介面裝置(諸如,顯示螢幕,其包括觸控顯示螢幕或多點觸控顯示螢幕)、鍵盤或其他輸入裝置、麥克風、揚聲器等。
應強調的是,上文所描述的實施例僅為實施之非限制性實例。 對於熟習此項技術者而言,一旦已完全地瞭解以上揭示內容,眾多變化及修改便將變得顯而易見。意欲將以下申請專利範圍解譯為涵蓋所有此等變化及修改。
120‧‧‧用於在快取記憶體中實施循序分配模式之方法

Claims (20)

  1. 一種快取記憶體系統,其包含:一快取記憶體,其包含複數個通路,其中該複數個通路中之每一通路具有一可分離控制之電源供應器;及一快取記憶體控制單元,其中該快取記憶體控制單元經組態以:接收一顯示器並未改變歷時一預定時間段的一指示,其中該顯示器與一第一資料集識別符(ID)相關聯;回應於接收到具有該第一資料集ID之一第一請求,將一第一通路置於存取模式,其中該第一請求將一第一索引作為目標;將該第一請求分配至該第一通路;將該快取記憶體之所有其他通路置於保留模式;及將一第一複數個請求分配至該第一通路,其中該第一複數個請求包含將該快取記憶體之後續索引作為目標的請求;一組態暫存器,其經組態以儲存複數個資料集ID之每一者之一狀態、針對該複數個資料集ID之每一者之一配額、及用於該複數個資料集ID之每一者之一替換策略;其中該快取記憶體控制單元進一步經組態以:設定針對該第一資料集ID之一配額,該配額識別針對該第一資料集ID之可分配於該快取記憶體中之一資料量之一限制;將該狀態設定為作用中或非作用中;及回應於設定該資料集ID之一狀態為非作用中,使對應於一已知資料集ID之該快取記憶體內所儲存之所有資料無效。
  2. 如請求項1之快取記憶體系統,其中該快取記憶體控制單元經進一步組態以回應於接收到該顯示器未改變歷時一預定時間段之該指示,停用用於通路分配的一最近最少使用(LRU)演算法。
  3. 如請求項2之快取記憶體系統,其中該快取記憶體控制單元經進一步組態以回應於接收到具有將該第一索引作為目標之該第一資料集ID的一第二請求,將一第二通路置於存取模式並將該第一通路置於保留模式。
  4. 如請求項3之快取記憶體系統,其中該快取記憶體控制單元經進一步組態以將該第二請求分配至該第二通路的該第一索引。
  5. 如請求項4之快取記憶體系統,其中該快取記憶體控制單元經進一步組態以回應於接收到具有將該第一索引作為目標之該第一資料集ID的一第三請求,將一第三通路置於存取模式並將該第二通路置於保留模式。
  6. 如請求項1之快取記憶體系統,其中藉由一軟體命令將該狀態設定為作用中或非作用中。
  7. 如請求項1之快取記憶體系統,其中該快取記憶體控制單元經進一步組態以回應於閒置螢幕偵測而進入一循序分配模式。
  8. 一種方法,其包含:偵測到一電子裝置之一顯示器未改變歷時一預定時間段;將一圖框緩衝器之一第一部分儲存於快取記憶體之一第一通路中,其中該第一部份與一資料集ID相關聯,且其中該快取記憶體為一多通路集合關聯式快取記憶體系統,且其中該圖框緩衝器包含用以驅動該顯示器之像素資料;當將該圖框緩衝器之該第一部分儲存於該第一通路中時,將該快取記憶體之所有其他通路置於保留模式;回應於將該圖框緩衝器之該第一部分儲存於該第一通路中, 將第二通路置於存取模式並將該第一通路置於保留模式;將該圖框緩衝器之一第二部分儲存於該快取記憶體之該第二通路中;儲存複數個資料集ID之每一者之一狀態、針對該複數個資料集ID之每一者之一配額、及用於該複數個資料集ID之每一者之一替換策略;設定針對該第一資料集ID之一配額,該配額識別針對該第一資料集ID之可分配於該快取記憶體中之一資料量之一限制;將該狀態設定為作用中或非作用中;及回應於設定該資料集ID之一狀態為非作用中,使對應於一已知資料集ID之該快取記憶體內所儲存之所有資料無效。
  9. 如請求項8之方法,其中該第一通路及該第二通路為該快取記憶體之鄰近通路。
  10. 如請求項8之方法,其中藉由依序存取該第一通路之索引而將該圖框緩衝器之該第一部分儲存於該快取記憶體之該第一通路中。
  11. 如請求項8之方法,其進一步包含繼續將該圖框緩衝器之部分儲存於該快取記憶體之其他通路中,直至已將該圖框緩衝器之所有部分儲存於該快取記憶體中為止,抑或所有通路已用於儲存該圖框緩衝器之部分為止。
  12. 如請求項11之方法,其進一步包含當該顯示器未改變時,自該快取記憶體以每秒一固定次數讀取該圖框緩衝器,其中以一循序方式自該快取記憶體讀取該圖框緩衝器。
  13. 如請求項8之方法,其進一步包含將該第一資料集識別符(ID)指派至該圖框緩衝器。
  14. 如請求項8之方法,其中藉由一命令將該狀態設定為作用中或非 作用中。
  15. 一種系統,其包含:一顯示器;一或多個處理器;一快取記憶體系統,其中該快取記憶體系統經組態以設定針對一第一資料集ID之一配額,該配額識別針對該第一資料集ID之可分配於該快取記憶體系統中之一資料量之一限制;及一組態暫存器,其經組態以儲存複數個資料集ID之每一者之一狀態、針對該複數個資料集ID之每一者之一配額、及用於該複數個資料集ID之每一者之一替換策略;一快取記憶體控制單元,其經組態以:設定針對該第一資料集ID之一配額,該配額識別針對該第一資料集ID之可分配於該快取記憶體中之一資料量之一限制;及回應於設定該資料集ID之一狀態為非作用中,使對應於一已知資料集ID之該快取記憶體內所儲存之所有資料無效;及一記憶體:其中回應於偵測到一圖框緩衝器未改變歷時一預定時間段,將該圖框緩衝器之至少一部分儲存於該快取記憶體系統中。
  16. 如請求項15之系統,其中該快取記憶體系統包含複數個通路,且其中該快取記憶體系統經組態以按一循序方式分配該圖框緩衝器之至少一部分,該分配以一第一通路之一第一索引開始且行進通過該第一通路之後續索引,並經由該快取記憶體系統之所有其他通路繼續。
  17. 如請求項15之系統,其中該快取記憶體系統包含:一資料記憶體,其經組態以儲存複數個快取行,其中該資料 記憶體包含複數個通路;一標記記憶體,其經組態以儲存對應於該資料記憶體中之該複數個快取行的複數個標記;及一控制單元,其經組態以:使得供應一第一電壓給未被存取之每一通路,其中該第一電壓足以用於資料保留;及回應於判定正存取一給定通路,使得針對該給定通路將該第一電壓增加至一第二電壓。
  18. 如請求項15之系統,其進一步包含與該第一資料集ID相關聯之一配額計數器,該配額計數器指示對應於該第一資料集ID之該資料記憶體中所儲存之一資料量。
  19. 如請求項15之系統,其中該圖框緩衝器之所有像素資料皆儲存於該快取記憶體系統中。
  20. 如請求項17之系統,其中該資料記憶體為一靜態隨機存取記憶體(SRAM)。
TW103113581A 2013-04-19 2014-04-14 針對瀏覽應用程式最佳化之快取分配方法 TWI526831B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/866,282 US9396122B2 (en) 2013-04-19 2013-04-19 Cache allocation scheme optimized for browsing applications

Publications (2)

Publication Number Publication Date
TW201504809A TW201504809A (zh) 2015-02-01
TWI526831B true TWI526831B (zh) 2016-03-21

Family

ID=50687682

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103113581A TWI526831B (zh) 2013-04-19 2014-04-14 針對瀏覽應用程式最佳化之快取分配方法

Country Status (3)

Country Link
US (1) US9396122B2 (zh)
TW (1) TWI526831B (zh)
WO (1) WO2014172078A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9261939B2 (en) 2013-05-09 2016-02-16 Apple Inc. Memory power savings in idle display case
US9514061B1 (en) * 2015-05-20 2016-12-06 Qualcomm Incorporated Method and apparatus for cache tag compression
TWI753908B (zh) * 2016-05-20 2022-02-01 日商半導體能源硏究所股份有限公司 半導體裝置、顯示裝置及電子裝置
US10896138B2 (en) 2016-05-27 2021-01-19 Apple Inc. Dynamically controlling random access memory retention in a wireless device
US10866892B2 (en) * 2018-08-13 2020-12-15 Apple Inc. Establishing dependency in a resource retry queue
CN115277924B (zh) * 2022-07-26 2024-05-17 努比亚技术有限公司 一种动态锁屏显示控制方法、设备及计算机可读存储介质

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328656A (ja) 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5512921A (en) 1994-06-22 1996-04-30 Microsoft Corporation Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same
JPH0950401A (ja) 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5961617A (en) 1997-08-18 1999-10-05 Vadem System and technique for reducing power consumed by a data transfer operations during periods of update inactivity
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6983388B2 (en) 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
JP2002318723A (ja) 2001-04-19 2002-10-31 Nec Microsystems Ltd キャッシュ制御装置
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6731290B2 (en) 2001-09-28 2004-05-04 Intel Corporation Window idle frame memory compression
US7043647B2 (en) 2001-09-28 2006-05-09 Hewlett-Packard Development Company, L.P. Intelligent power management for a rack of servers
JP2003242029A (ja) 2002-02-15 2003-08-29 Hitachi Ltd 半導体集積回路
US6944714B2 (en) 2002-07-30 2005-09-13 Hewlett-Packard Development Company, L.P. Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache
US20050086435A1 (en) 2003-09-09 2005-04-21 Seiko Epson Corporation Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
US7127560B2 (en) 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
EP1684180A4 (en) 2003-11-12 2008-10-29 Matsushita Electric Ind Co Ltd CACHE MEMORY AND CONTROL PROCEDURE THEREFOR
US7152187B2 (en) 2003-11-26 2006-12-19 Texas Instruments Incorporated Low-power SRAM E-fuse repair methodology
JP3834323B2 (ja) 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7457917B2 (en) * 2004-12-29 2008-11-25 Intel Corporation Reducing power consumption in a sequential cache
CN101107599B (zh) 2005-03-22 2011-09-21 松下电器产业株式会社 高速缓冲存储器控制方法和高速缓冲存储器控制装置
US7430642B2 (en) 2005-06-10 2008-09-30 Freescale Semiconductor, Inc. System and method for unified cache access using sequential instruction information
US20070043965A1 (en) 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power 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
US7904658B2 (en) 2005-11-30 2011-03-08 International Business Machines Corporation Structure for power-efficient cache memory
US20070124538A1 (en) 2005-11-30 2007-05-31 International Business Machines Corporation Power-efficient cache memory system and method therefor
TW200746161A (en) 2005-12-21 2007-12-16 Nxp Bv Power partitioning memory banks
US20070288776A1 (en) 2006-06-09 2007-12-13 Dement Jonathan James Method and apparatus for power management in a data processing system
TWI323842B (en) 2006-07-17 2010-04-21 Acer Inc Method for power management
US20080100636A1 (en) 2006-10-31 2008-05-01 Jiin Lai Systems and Methods for Low-Power Computer Operation
US20080143695A1 (en) 2006-12-19 2008-06-19 Dale Juenemann Low power static image display self-refresh
US20080244181A1 (en) 2007-03-30 2008-10-02 Michael Walz Dynamic run-time cache size management
JP5159258B2 (ja) 2007-11-06 2013-03-06 株式会社東芝 演算処理装置
US8335122B2 (en) 2007-11-21 2012-12-18 The Regents Of The University Of Michigan Cache memory system for a data processing apparatus
JP5226010B2 (ja) 2007-12-10 2013-07-03 パナソニック株式会社 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
US8689027B2 (en) 2008-11-13 2014-04-01 International Business Machines Corporation Tiled memory power management
US8274501B2 (en) 2008-11-18 2012-09-25 Intel Corporation Techniques to control self refresh display functionality
US8156357B2 (en) 2009-01-27 2012-04-10 Freescale Semiconductor, Inc. Voltage-based memory size scaling in a data processing system
US7853817B2 (en) 2009-02-26 2010-12-14 Apple Inc. Power management independent of CPU hardware support
US20100228637A1 (en) 2009-03-05 2010-09-09 Bhaskar Ghosh Architecture for an Online Advertisement Bidding System
US8103894B2 (en) 2009-04-24 2012-01-24 International Business Machines Corporation Power conservation in vertically-striped NUCA caches
US8285936B2 (en) 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
US8402232B2 (en) 2009-12-23 2013-03-19 Oracle America, Inc. Memory utilization tracking
US8677071B2 (en) * 2010-03-26 2014-03-18 Virtualmetrix, Inc. Control of processor cache memory occupancy
US8271812B2 (en) 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
US8412971B2 (en) 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8872836B2 (en) 2011-01-25 2014-10-28 Qualcomm Incorporated Detecting static images and reducing resource usage on an electronic device
US20120303897A1 (en) 2011-05-28 2012-11-29 Sakthivel Komarasamy Pullagoundapatti Configurable set associative cache way architecture
TWI489466B (zh) 2011-06-15 2015-06-21 Phison Electronics Corp 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
US20130036270A1 (en) 2011-08-04 2013-02-07 The Regents Of The University Of Michigan Data processing apparatus and method for powering down a cache
JP5674613B2 (ja) 2011-09-22 2015-02-25 株式会社東芝 制御システム、制御方法およびプログラム
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8713256B2 (en) 2011-12-23 2014-04-29 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance
JP5458132B2 (ja) 2012-03-13 2014-04-02 株式会社東芝 キャッシュ装置
US9448942B2 (en) 2012-08-20 2016-09-20 Freescale Semiconductor, Inc. Random access of a cache portion using an access module
US9218040B2 (en) 2012-09-27 2015-12-22 Apple Inc. System cache with coarse grain power management
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9021207B2 (en) 2012-12-20 2015-04-28 Advanced Micro Devices, Inc. Management of cache size
US9256544B2 (en) 2012-12-26 2016-02-09 Advanced Micro Devices, Inc. Way preparation for accessing a cache

Also Published As

Publication number Publication date
US20140317355A1 (en) 2014-10-23
TW201504809A (zh) 2015-02-01
US9396122B2 (en) 2016-07-19
WO2014172078A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
US11132298B2 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9218286B2 (en) System cache with partial write valid states
US9201796B2 (en) System cache with speculative read engine
US9158685B2 (en) System cache with cache hint control
US9400544B2 (en) Advanced fine-grained cache power management
US9286205B2 (en) Apparatus and method for phase change memory drift management
TWI492055B (zh) 具資料擱置狀態之系統快取記憶體及最佳化系統快取記憶體之方法
TWI526831B (zh) 針對瀏覽應用程式最佳化之快取分配方法
US9218040B2 (en) System cache with coarse grain power management
US9135177B2 (en) Scheme to escalate requests with address conflicts
US20130275682A1 (en) Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
US20140297919A1 (en) Apparatus and method for implementing a multi-level memory hierarchy
US9043570B2 (en) System cache with quota-based control
US8977817B2 (en) System cache with fine grain power management
US9311251B2 (en) System cache with sticky allocation
US8984227B2 (en) Advanced coarse-grained cache power management
TWI499910B (zh) 具有相黏移除引擎之系統快取記憶體
EP3506112A1 (en) Multi-level system memory configurations to operate higher priority users out of a faster memory level
US11526448B2 (en) Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning