TWI733316B - 緩存管理方法及微控制器 - Google Patents

緩存管理方法及微控制器 Download PDF

Info

Publication number
TWI733316B
TWI733316B TW109102234A TW109102234A TWI733316B TW I733316 B TWI733316 B TW I733316B TW 109102234 A TW109102234 A TW 109102234A TW 109102234 A TW109102234 A TW 109102234A TW I733316 B TWI733316 B TW I733316B
Authority
TW
Taiwan
Prior art keywords
memory
cache
patent application
scope
item
Prior art date
Application number
TW109102234A
Other languages
English (en)
Other versions
TW202042071A (zh
Inventor
蕭志祥
林季萱
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 TW202042071A publication Critical patent/TW202042071A/zh
Application granted granted Critical
Publication of TWI733316B publication Critical patent/TWI733316B/zh

Links

Images

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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/468The specific object being partially cached
    • 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
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種微控制器,包括:處理器;第一記憶體,耦合到所述處理器,其中所述第一記憶體至少包括工作空間;高速緩存控制器,耦合到所述第一記憶體,用於管理所述第一記憶體的工作空間,並以面向對象的方式將至少一個對象從第二記憶體動態地加載到所述第一記憶體的所述工作空間。

Description

緩存管理方法及微控制器
本公開一般涉及記憶體,並且更具體地,涉及緩存管理方法及微控制器。
對於嵌入式微控制器(Embedded Microcontroller,MCU)系統,由於高速緩存(cache)記憶體(例如,靜態隨機存取記憶體(SRAM))昂貴,因此通常將諸如動態隨機存取記憶體(DRAM)之類的大/慢/高功率記憶體與高速緩存記憶體一起使用以提供較大的儲存空間;然而,這種佈置消耗了很多功率。在某些超低功耗(ultra-low-power)應用(例如傳感器集線器(hub)或計步器)中,DRAM功耗對於這些超低功耗應用而言過高,因此必須在某些時段內將DRAM掉電以節省功率。但是,由於當前的高速緩存線太小,容易隨機訪問DRAM,導致DRAM無法睡眠足夠長的時間以節省功率,並且由於頻繁的開/關電源而增加了DRAM的開銷。
以下概述僅是說明性的,並不旨在以任何方式進行限制。也就是說,提供以下概述以介紹本文描述的新穎和非顯而易見的技術的概念,要點,益處 和優點。下面在詳細描述中進一步描述選擇的實現。因此,以下發明內容並非旨在標識所要求保護的主題的必要特徵,也不旨在用於確定所要求保護的主題的範圍。
本發明提供的一種微控制器,包括:處理器;第一記憶體,耦合到所述處理器,其中所述第一記憶體至少包括工作空間;高速緩存控制器,耦合到所述第一記憶體,用於管理所述第一記憶體的工作空間,並以面向對象的方式將至少一個對象從第二記憶體動態地加載到所述第一記憶體的所述工作空間。
本發明提供的一種緩存管理方法包括:提供具有工作空間的第一記憶體;和使用高速緩存控制器以面向對象的方式將至少一個對象從第二記憶體動態加載到所述第一記憶體的所述工作空間。
本發明所提供的技術方案能通過面向對象的方式對象,可用於超低功耗應用中。
100,700:微控制器
110,710:中央處理單元
120,720:靜態隨機存取記憶體
122,722:工作空間
130,730:高速緩存控制器
132,732:面向對象的策略管理器
134,734:對象分配器
136,736:動態加載器
140,740:硬件高速緩存
150,750:動態隨機存取記憶體
152,752:電源單元
154,754:對象池
602-1,602-2,604,608,606,610,612,614,616,618:步驟
715:記憶體管理單元
第1圖是示出根據本發明的一個實施例的微控制器(MCU)100的圖。
第2圖示出了根據本發明的第一實施例的當應用組策略時對工作空間122和對象池154的管理。
第3圖示出了根據本發明的第二實施例的當應用組策略時對工作空間122和對象池154的管理。
第4圖示出了根據本發明的第一實施例的當應用排他策略時對工作空間122和對象池154的管理。
第5圖示出了根據本發明第二實施例的當應用排他策略時對工作空間122和對象池154的管理。
第6圖是根據本發明一個實施例的緩存管理方法的流程圖。
第7圖是示出根據本發明的另一實施例的微控制器700的圖。
在說明書及申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及申請專利範圍當中所提及的“包含”及“包括”為一開放式的用語,故應解釋成“包含但不限定於”。“大體上”是指在可接受的誤差範圍內,所屬領域具有通常知識者能夠在一定誤差範圍內解決該技術問題,基本達到該技術效果。此外,“耦接”一詞在此包含任何直接及間接的電性連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電性連接於該第二裝置,或通過其它裝置或連接手段間接地電性連接至該第二裝置。以下該為實施本發明的較佳方式,目的在於說明本發明的精神而非用以限定本發明的保護範圍,本發明的保護範圍當視後附的申請專利範圍所界定者為准。
接下面的描述為本發明預期的最優實施例。這些描述用於闡述本發明的大致原則而不應用於限制本發明。本發明的保護範圍應在參考本發明的申請專利範圍的基礎上進行認定。
第1圖是示出根據本發明的一個實施例的微控制器(MCU)100的圖。如第1圖所示,微控制器100包括中央處理單元(CPU)110,諸如靜態隨機存取記憶體(SRAM)的記憶體120,高速緩存控制器130和硬件高速緩存140。其中,SRAM 120至少包括工作空間122。高速緩存控制器130包括面向對象的策略管理器132,對象分配器134和動態加載器136。在本實施例中,高速緩存控制器130用於管理工作空間122,作為舉例而不旨在限製本發明,高速緩存控制器130由純軟件實現(即,通過執行程序代碼來執行高速緩存控制器130的操作)。
微控制器100耦合到具有電源(power)單元152和對象池154的DRAM 150,並且微控制器100從對象池154加載對象以執行相應的功能,其中術語“對象”是用於特定功能的代碼或資料的集合,並且能夠被鏈接並加載到SRAM 120中被執行。詳細地,高速緩存控制器130的動態加載器136將對象從對象池154加載到SRAM 120的工作空間122,並且CPU 110讀取並執行在工作空間122中的被加載的對象。
在該實施例中,硬件高速緩存140作為高速緩存控制器130的操作的優化工具。詳細地,當微控制器100具有低功耗特徵時,硬件高速緩存140可以用於對任務進行分組以增加高速緩存的位置和調度對DRAM 150沒有超低功耗要求的任務以節省高速緩存控制器130的使用。當微控制器100具有超低功耗特徵時,硬件高速緩存140可能無法實施儲存與超低功率要求相對應的對象的工作來防止更頻繁地訪問DRAM 150。
為了節省包括微控制器100和DRAM 150的系統的功率,高速緩存控 制器130可以以面向對象的方式管理SRAM 120和DRAM 150中的對象,以使DRAM 150不被更頻繁地打開/關閉電源。詳細地,面向對象的策略管理器132被佈置為提供指示複數個對象的關係的至少一個高速緩存策略。對象分配器134被佈置為參考由面向對象的策略管理器132提供的高速緩存策略來確定至少一個對象,並且動態加載器136從DRAM150中加載由對象分配器134確定的至少一個對象至SRAM120。通過使用高速緩存控制器130以面向對象的方式加載對象,對象分配器134可以更有效地控制DRAM 150的電源單元152以節省功率以使系統適用於超低功耗應用,例如傳感器集線器或計步器。
具體地,緩存策略可由用戶或由處理器分析的用戶場景編程,例如,緩存策略可以是組策略和/或排他策略。組策略可以指示總是一起使用的複數個特定對象,並且如果要將特定對象之一從對象池154加載到工作空間122,則將其他特定對象同時加載到工作空間122。排他策略可以指示從未一起使用的複數個特定對象,並且如果要將特定對象之一從對象池154加載到工作空間122,則動態加載器136將其他特定對象(如果有的話)從工作空間122移動到對象池154。
第2圖示出了根據本發明的第一實施例的當應用組策略時對工作空間122和對象池154的管理。如第2圖所示,假定對象OB1,OB4和OB5由面向對象的策略管理器132分組,並且開始時工作空間122儲存對象OB1,OB2和OB3,對象池154儲存對象OB4和OB5。根據面向對象策略管理器132的組策略,在工作空間122內跟隨對象OB1的對象OB2和OB3被移動到DRAM 150的對象池154以釋放空間,然後對象OB4和OB5被從對象池154預取(pre-fetch)到工作空間122,其中對象OB4和對象OB5位於對象OB1之後(即,在組(OB1,OB4和OB5)中 沒有碎片(fragmentation))。另外,如果需要將對象OB2加載到工作空間122,則可以將對象OB1移動到對象池154,而無需在工作空間中移動對象OB4和OB5,然後對象OB2被移動到工作空間。在第2圖所示的實施例中,因為對象OB4和OB5是預取的,並且同一組的對象一起儲存在工作空間內,所以可以提高系統的操作效率並且可以防止頻繁地切換(即,在SRAM 120和DRAM 150之間切換對象)。
第3圖示出了根據本發明的第二實施例的當應用組策略時對工作空間122和對象池154的管理。在第3圖所示的情況下,假設對象OB1-OB6被CPU 110順序地使用,即對象OB1-OB6被從對象池154順序地加載到工作空間122。在先前技術中,最初,對象OB1-OB3順序地儲存在工作空間122中,然後將對象OB1從工作空間122移開以釋放空間用於儲存對象OB4,將對象OB2從工作空間122移出以釋放空間用於儲存對象OB5,將對象OB3從工作空間122移出以釋放空間用於儲存對象OB6。如第3圖所示,先前技術的方法將在對象OB4-OB6之間引起一些碎片空間,並且這些碎片空間通常太小而無法使用。相反,在該實施例的組策略中,可以將對象OB1-OB3設置為第一組,並且可以將對象OB4-OB6設置為第二組,並且將對象OB1-OB3一起移動以便可以將對象OB4-OB6同時加載到工作空間122中。通過使用本實施例的組策略,由於在對象OB4-OB6之間不存在碎片空間,因此工作空間122可以具有足夠的空間來加載另一個對象。
第4圖示出了根據本發明的第一實施例的當應用排他策略時對工作空間122和對象池154的管理。如第4圖所示,假定對象OB1和OB3由面向對象的策略管理器132分組,並且在開始時工作空間122儲存對象OB1,OB2和OB3,並且對象池154儲存對象OB4和OB5。根據面向對象策略管理器132的排他策略,將 對象OB3移動到DRAM 150的對象池154以釋放空間。然後,如果需要將對象OB3裝載到工作空間122,則可以首先將對象OB1移動到對象池154,然後將對象OB3移動到工作空間122。如第4圖所示,由於組內的對象不是同時加載的,因此可以防止頻繁切換,並且可以減少平均加載開銷。
第5圖示出了根據本發明第二實施例的當應用排他策略時對工作空間122和對象池154的管理。在第5圖所示的情況下,假定對象OB3,OB1和OB2被CPU 110順序且重複地使用,也就是說,對象OB3,OB1和OB2被從對象池154順序地重複加載到工作空間122。在先前技術中,首先將對象OB1和OB3儲存在工作空間122中,然後嘗試將對象OB2加載到工作空間122中。由於工作空間122沒有足夠的空間來儲存對象OB2,通過使用最近最少使用(Least Recently Used,LRU)機制將對象OB3從工作空間122中移出,並將對象OB2儲存在工作空間122中。然後,嘗試將對象OB3加載到工作空間122中。由於對象OB3具有較大的尺寸,則需要將對象OB1和OB2都移至DRAM 150以釋放空間用於儲存對象OB3,從而導致較大的切換開銷。相反,在本實施例的排他性策略中,可以將對象OB1和OB2設置為排他性,即,當嘗試將對象OB2加載到工作空間122時,將對象OB1從工作空間122中移出以釋放空間用於儲存對象OB2,並且即使對象OB3是最近最少使用的對象,也無需移動對象OB3。因此,不需要在下一周期中加載對象OB3,並且可以極大地改善切換開銷。
第6圖是根據本發明一個實施例的緩存管理方法的流程圖。參照第1圖-第5圖和相關描述,流程圖描述如下。
步驟602:高速緩存控制器130嘗試從DRAM 150加載對象A(步驟602-1),或者高速緩存控制器130嘗試從DRAM 150加載包括複數個對象的組G (步驟602-2)。
步驟604:高速緩存控制器130確定是否應用了排他策略,並且對象A具有排他對。如果是,則流程進入步驟608;否則,流程進入步驟606。
步驟606:高速緩存控制器130在工作空間122內分配用於儲存對象A或組G的塊。
步驟608:高速緩存控制器130確定是否已將互斥對之一加載到工作空間122中。如果是,則流程進入步驟610;如果否,則流程進入步驟606。
步驟610:高速緩存控制器130卸載互斥對之一以釋放塊。
步驟612:高速緩存控制器130將塊分配給對象A。
步驟614:高速緩存控制器130確定塊分配是否成功。如果是,則流程進入步驟618;如果否,則流程進入步驟616。
步驟616:高速緩存控制器130使用LRU機制釋放/空出工作空間122的塊,並且流程返回到步驟606。
步驟618:緩存控制器130將對象A或組G從DRAM 150加載到工作空間122。
第7圖是示出根據本發明的另一實施例的微控制器700的圖。如第7圖所示,微控制器700包括CPU 710,諸如SRAM 720的記憶體,基於對象的記憶體管理單元(Memory Management Unit,MMU)715,高速緩存控制器730和硬件高速緩存740。其中SRAM 720至少包括工作空間722。並且高速緩存控制器730包括面向對象的策略管理器732,對象分配器734和動態加載器736。在該實施例中,高速緩存控制器730用於管理工作空間722,並且高速緩存控制器730通過純軟件實現。另外,微控制器700耦合到具有電源單元752和對象池754的DRAM750。微控制器700類似於第1圖所示的微控制器100,唯一的區別在於微 控制器700還包括基於對象的MMU715。基於對象的MMU 715可以為CPU 710,記憶體720和740提供虛擬地址和物理地址映射,以及高速緩存控制器730可以發送控制信號來修改基於對象的MMU 715在硬件高速緩存740和軟件高速緩存(即,SRAM 720)之間改變對象。因為所屬領域具有通常知識者在閱讀第1圖-第6圖的實施例之後應該理解微控制器700的操作,這裡省略了進一步的描述。
簡要地概述,在本發明的高速緩存管理方法和微控制器中,具有面向對象策略的高速緩存控制器用於管理SRAM和DRAM的對象。本發明的實施例的高速緩存管理方法可以有效地訪問DRAM並降低SRAM的開銷,以使微控制器用於超低功耗應用中。
在一些實施例中,術語“大約”,“大約”和“基本上”可以用於表示目標值的±10%以內。術語“大約”,“大約”和“基本上”可以包括目標值。應當理解,術語“大約”,“大約”和“基本上”可以用於指代小於目標值的±10%的範圍,例如:目標值的±5%,±2.5%目標值的±1%,目標值的±1%。
在申請專利範圍中使用諸如“第一”,“第二”,“第三”等的序數術語來修改申請專利範圍要素本身並不意味著一個申請專利範圍要素優先於另一個或者時間的任何優先權,優先權或順序。執行方法的行為的順序,但僅用作標籤以將具有特定名稱的一個申請專利範圍元素與具有相同名稱的另一個元素(但是用於使用序數術語)區分,以區分申請專利範圍元素。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬領域具有通常知識者,在不脫離本發明的精神和範圍內,當可做 些許的更動與潤飾,因此本發明的保護範圍當視申請專利範圍所界定者為准。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:微控制器
110:中央處理單元
120:靜態隨機存取記憶體
122:工作空間
130:高速緩存控制器
132:面向對象的策略管理器
134:對象分配器
136:動態加載器
140:硬件高速緩存
150:動態隨機存取記憶體
152:電源單元
154:對象池

Claims (20)

  1. 一種微控制器,包括:處理器;第一記憶體,耦合到所述處理器,其中所述第一記憶體至少包括工作空間;高速緩存控制器,耦合到所述第一記憶體,用於管理所述第一記憶體的工作空間,並以面向對象的方式將至少一個對象從第二記憶體動態地加載到所述第一記憶體的所述工作空間;其中,所述微控制器還硬件高速緩存,並且所述硬件高速緩存被佈置為儲存從所述第二記憶體讀取的資料。
  2. 根據申請專利範圍第1項所述的微控制器,其中所述第二記憶體是動態隨機存取記憶體,並且所述高速緩存控制器還被佈置為控制所述第二記憶體的電源。
  3. 根據申請專利範圍第1項所述的微控制器,其中所述高速緩存控制器由軟件實現。
  4. 根據申請專利範圍第3項所述的微控制器,其中所述微控制器還包括:記憶體管理單元,耦合在所述處理器,所述第一記憶體和所述硬件高速緩存之間,用於提供虛擬地址和物理地址映射操作。
  5. 根據申請專利範圍第4項所述的微控制器,其中所述記憶體管理單元還參考所述高速緩存控制器的控制信號以管理所述第一記憶體和所述硬件 高速緩存的對象。
  6. 根據申請專利範圍第1項所述的微控制器,其中所述高速緩存控制器包括:面向對象的策略管理器,用於提供指示複數個對象之間的關係的至少一個高速緩存策略;對象分配器,耦合到所述面向對象的策略管理器,用於參考所述至少一個高速緩存策略以確定至少一個對象;和動態加載器,耦合到所述對象分配器,用於將由所述對象分配器確定的至少一個對象從所述第二記憶體加載到所述第一記憶體的所述工作空間。
  7. 根據申請專利範圍第6項所述的微控制器,其中所述至少一個高速緩存策略是可編程的。
  8. 根據申請專利範圍第6項所述的微控制器,其中所述至少一個高速緩存策略包括組策略,所述組策略指示總是一起使用的複數個特定對象。
  9. 根據申請專利範圍第6項所述的微控制器,其中所述至少一個高速緩存策略包括指示複數個特定對象的組策略,並且當要加載所述特定對象之一時,所述動態加載器從所述第二記憶體同時加載所有特定對象至所述第一記憶體的所述工作空間。
  10. 根據申請專利範圍第6項所述的微控制器,其中所述至少一個高速緩存策略包括排他策略,所述排他策略指示從不同時使用的複數個特定對象。
  11. 根據申請專利範圍第6項所述的微控制器,其中所述至少一個高速緩存策略包括指示複數個特定對象的組策略,以及當要將所述特定對象中的一個從所述第二記憶體加載到所述第一記憶體的所述工作空間時,如果有其他的特定對象,所述動態加載器會將其他有的一個特定對象從所述第一記憶體的所述工作空間移動到所述第二記憶體。
  12. 一種高速緩存管理方法,包括:提供具有工作空間的第一記憶體;和使用高速緩存控制器以面向對象的方式將至少一個對象從第二記憶體動態加載到所述第一記憶體的所述工作空間;提供硬件高速緩存,以儲存從所述第二記憶體讀取的資料。
  13. 根據申請專利範圍第12項所述的高速緩存管理方法,其中所述第二記憶體是動態隨機存取記憶體,並且所述高速緩存管理方法還包括:使用所述高速緩存控制器來控制所述第二記憶體的電源。
  14. 如申請專利範圍第12項所述的緩存管理方法,其中所述高速緩存控制器由軟件實現。
  15. 如申請專利範圍第14項所述的高速緩存管理方法,還包括:提供記憶體管理單元耦合在處理器,所述第一記憶體和所述硬件高速緩存之間,以提供虛擬地址和物理地址映射操作。
  16. 根據申請專利範圍第15項所述的高速緩存管理方法,其中所述記憶體管理單元還參考所述高速緩存控制器的控制信號以管理所述第一記憶體和所述硬件高速緩存的對象。
  17. 根據申請專利範圍第12項所述的高速緩存管理方法,其中使用所述高速緩存控制器以所述面向對象的方式將所述至少一個對象從所述第二記憶體動態加載到所述第一記憶體的工作空間的步驟包括:提供指示複數個對象之間的關係的至少一個高速緩存策略;參照所述至少一個高速緩存策略來確定所述至少一個對象;和將所述至少一個對象從所述第二記憶體加載到所述第一記憶體的所述工作空間。
  18. 根據申請專利範圍第17項所述的高速緩存管理方法,其中所述至少一個高速緩存策略是可編程的。
  19. 根據申請專利範圍第17項所述的高速緩存管理方法,其中所述至少一個高速緩存策略包括指示複數個特定對象的組策略,並且當加載所述特定對象之一時,所有特定對象同時從所述第二記憶體加載至所述第一記憶體的所述工作空間。
  20. 根據申請專利範圍第17項所述的高速緩存管理方法,其中所述至少一個高速緩存策略包括:指示複數個特定對象的組策略,以及當將所述特定對象中的一個從第二記憶體加載到所述第一記憶體的所述工作空間中時,如果有其他的特定對象,將其他有的一個特定對象從所述第一記憶體的所述工作空 間移動到所述第二記憶體。
TW109102234A 2019-05-03 2020-01-21 緩存管理方法及微控制器 TWI733316B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/402,242 US10860491B2 (en) 2019-05-03 2019-05-03 Cache management method using object-oriented manner and associated microcontroller
US16/402,242 2019-05-03

Publications (2)

Publication Number Publication Date
TW202042071A TW202042071A (zh) 2020-11-16
TWI733316B true TWI733316B (zh) 2021-07-11

Family

ID=73015912

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109102234A TWI733316B (zh) 2019-05-03 2020-01-21 緩存管理方法及微控制器

Country Status (3)

Country Link
US (2) US10860491B2 (zh)
CN (1) CN111880722A (zh)
TW (1) TWI733316B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8270196B2 (en) * 2007-10-17 2012-09-18 Unity Semiconductor Corporation Integrated circuits using non volatile resistivity sensitive memory for emulation of embedded flash memory
US20130077382A1 (en) * 2011-09-26 2013-03-28 Samsung Electronics Co., Ltd. Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device
US8467244B2 (en) * 2007-04-27 2013-06-18 Samsung Electronics Co., Ltd. Multi-chip semiconductor devices having non-volatile memory devices therein
US20130215069A1 (en) * 2010-10-26 2013-08-22 Tsu-Chang Lee Apparatus for network based modular electronic systems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3516963B2 (ja) * 1993-03-12 2004-04-05 株式会社東芝 メモリアクセス制御装置
US5784548A (en) * 1996-03-08 1998-07-21 Mylex Corporation Modular mirrored cache memory battery backup system
DE10151733A1 (de) * 2001-10-19 2003-04-30 Infineon Technologies Ag Prozessor-Speicher-System
ITMI20012790A1 (it) * 2001-12-21 2003-06-21 Claber Spa Sistema centralizzato per il controllo remoto di impianti di irrigazione
WO2004031943A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. データプロセッサ
US7133970B2 (en) * 2003-05-05 2006-11-07 Intel Corporation Least mean square dynamic cache-locking
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US20070083783A1 (en) * 2005-08-05 2007-04-12 Toru Ishihara Reducing power consumption at a cache
CN100442768C (zh) * 2005-08-05 2008-12-10 华为技术有限公司 一种在网络处理器中加载指令代码的方法和路由设备
US7451225B1 (en) * 2006-09-12 2008-11-11 Emc Corporation Configuring a cache prefetch policy in a computer system employing object addressable storage
US7640400B2 (en) * 2007-04-10 2009-12-29 International Business Machines Corporation Programmable data prefetching
EP2141590A1 (en) * 2008-06-26 2010-01-06 Axalto S.A. Method of managing data in a portable electronic device having a plurality of controllers
US8156287B2 (en) * 2009-01-15 2012-04-10 International Business Machines Corporation Adaptive data prefetch
US8843435B1 (en) * 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US20110296095A1 (en) * 2010-05-25 2011-12-01 Mediatek Inc. Data movement engine and memory control methods thereof
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US8533422B2 (en) * 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
CN103946811B (zh) * 2011-09-30 2017-08-11 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
KR101915073B1 (ko) * 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
JP5989574B2 (ja) * 2013-02-28 2016-09-07 株式会社東芝 計算機、メモリ管理方法およびプログラム
US9696922B2 (en) * 2013-12-24 2017-07-04 Hitachi, Ltd. Storage system
US9436606B2 (en) * 2014-01-02 2016-09-06 Qualcomm Incorporated System and method to defragment a memory
KR101944378B1 (ko) * 2014-03-29 2019-04-17 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메모리 장치에서의 동적 캐시 사이징 방법 및 이를 포함하는 프로세서
US9645935B2 (en) * 2015-01-13 2017-05-09 International Business Machines Corporation Intelligent bandwidth shifting mechanism
US9904623B2 (en) * 2015-05-01 2018-02-27 Advanced Micro Devices, Inc. Early cache prefetching in preparation for exit from idle mode
US10067872B2 (en) * 2015-06-22 2018-09-04 Advanced Micro Devices, Inc. Memory speculation for multiple memories
US20170068304A1 (en) * 2015-09-09 2017-03-09 Mediatek Inc. Low-power memory-access method and associated apparatus
US9928168B2 (en) * 2016-01-11 2018-03-27 Qualcomm Incorporated Non-volatile random access system memory with DRAM program caching
US9971510B2 (en) * 2016-10-16 2018-05-15 Mediatek Inc. Method for managing memory and associated microcontroller
KR20190043411A (ko) * 2017-10-18 2019-04-26 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 컴퓨팅 시스템, 그리고 스토리지 장치의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467244B2 (en) * 2007-04-27 2013-06-18 Samsung Electronics Co., Ltd. Multi-chip semiconductor devices having non-volatile memory devices therein
US8270196B2 (en) * 2007-10-17 2012-09-18 Unity Semiconductor Corporation Integrated circuits using non volatile resistivity sensitive memory for emulation of embedded flash memory
US20130215069A1 (en) * 2010-10-26 2013-08-22 Tsu-Chang Lee Apparatus for network based modular electronic systems
US20130077382A1 (en) * 2011-09-26 2013-03-28 Samsung Electronics Co., Ltd. Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device

Also Published As

Publication number Publication date
US20200349083A1 (en) 2020-11-05
US20210056032A1 (en) 2021-02-25
TW202042071A (zh) 2020-11-16
US10860491B2 (en) 2020-12-08
CN111880722A (zh) 2020-11-03
US11693782B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US8949544B2 (en) Bypassing a cache when handling memory requests
US8935484B2 (en) Write-absorbing buffer for non-volatile memory
US20070204107A1 (en) Cache memory background preprocessing
US6782453B2 (en) Storing data in memory
JP2017138852A (ja) 情報処理装置、記憶装置およびプログラム
US8984230B2 (en) Method of using a buffer within an indexing accelerator during periods of inactivity
KR20150057798A (ko) 캐시 제어 장치 및 방법
WO2004049169A2 (en) Using a cache miss pattern to address a stride prediction table
US10157148B2 (en) Semiconductor device configured to control a wear leveling operation and operating method thereof
EP1599803B1 (en) Reducing cache trashing of certain pieces
US8266379B2 (en) Multithreaded processor with multiple caches
US10509744B2 (en) Semiconductor system including heterogeneous memory module
TWI733316B (zh) 緩存管理方法及微控制器
JP5007868B2 (ja) プロセッサメモリシステム
CN105612505A (zh) Cpu调度的方法和装置
JP2005011353A (ja) プロセッサにおけるスタックをベースとするメモリの利用の管理
US20220147265A1 (en) Metadata management for extent-based storage system
KR102559784B1 (ko) 이종 메모리 간의 메모리 스왑을 관리하는 전자 장치 및 이의 메모리 관리 방법
JP2009026310A (ja) データ記憶方法
JPH0511335B2 (zh)
JPH0363741A (ja) ディスク・キャッシュ装置
JPH04220740A (ja) ファイル制御装置のライトヒット制御方法
KR20170017355A (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치