CN111880722A - 缓存管理方法及微控制器 - Google Patents

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

Info

Publication number
CN111880722A
CN111880722A CN202010080814.6A CN202010080814A CN111880722A CN 111880722 A CN111880722 A CN 111880722A CN 202010080814 A CN202010080814 A CN 202010080814A CN 111880722 A CN111880722 A CN 111880722A
Authority
CN
China
Prior art keywords
memory
cache
workspace
microcontroller
objects
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202010080814.6A
Other languages
English (en)
Inventor
萧志祥
林季萱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN111880722A publication Critical patent/CN111880722A/zh
Pending legal-status Critical Current

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/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/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
    • 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的开销。
发明内容
本发明提供缓存管理方法及微控制器,可用于超低功耗应用中。
本发明提供的一种微控制器,包括:处理器;第一存储器,耦合到所述处理器,其中所述第一存储器至少包括工作空间;高速缓存控制器,耦合到所述第一存储器,用于管理所述第一存储器的工作空间,并以面向对象的方式将至少一个对象从第二存储器动态地加载到所述第一存储器的所述工作空间。
本发明提供的一种缓存管理方法包括:提供具有工作空间的第一存储器;和使用高速缓存控制器以面向对象的方式将至少一个对象从第二存储器动态加载到所述第一存储器的所述工作空间。
本发明所提供的技术方案能通过面向对象的方式对象,可用于超低功耗应用中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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可以用于对任务进行分组以增加高速缓存的位置和调度对DRAM150没有超低功耗要求的任务以节省高速缓存控制器130的使用。当微控制器100具有超低功耗特征时,硬件高速缓存140可能无法实施存储与超低功率要求相对应的对象的工作来防止更频繁地访问DRAM 150。为了节省包括微控制器100和DRAM 150的系统的功率,高速缓存控制器130可以以面向对象的方式管理SRAM 120和DRAM 150中的对象,以使DRAM 150不被更频繁地打开/关闭电源。详细地,面向对象的策略管理器132被布置为提供指示多个对象的关系的至少一个高速缓存策略。对象分配器134被布置为参考由面向对象的策略管理器132提供的高速缓存策略来确定至少一个对象,并且动态加载器136从DRAM150中加载由对象分配器134确定的至少一个对象至SRAM120。通过使用高速缓存控制器130以面向对象的方式加载对象,对象分配器134可以更有效地控制DRAM150的电源单元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 RecentlyUsed,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的存储器,基于对象的存储器管理单元(MemoryManagement 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可以为CPU710,存储器720和740提供虚拟地址和物理地址映像,以及高速缓存控制器730可以发送控制信号来修改基于对象的MMU 715在硬件高速缓存740和软件高速缓存(即,SRAM 720)之间改变对象。因为本领域技术人员在阅读图1-图6的实施例之后应该理解微控制器700的操作,这里省略了进一步的描述。
简要地概述,在本发明的高速缓存管理方法和微控制器中,具有面向对象策略的高速缓存控制器用于管理SRAM和DRAM的对象。本发明的实施例的高速缓存管理方法可以有效地访问DRAM并降低SRAM的开销,以使微控制器用于超低功耗应用中。
本文描述的装置和技术的各个方面可以单独地使用,组合地使用,或者以未在前面的描述中描述的实施例中具体讨论的各种安排中使用,因此不限于将它们的应用限定为前述的组件和布置的细节或在附图中示出的细节。例如,在一个实施例中描述的方面可以以任何方式与其他实施例描述的方面组合。
在一些实施例中,术语“大约”,“大致”和“大致上”可以用于表示小于目标值的±10%的范围且可以包括目标值。例如:小于目标值±5%,小于目标值的±1%。
在权利要求中使用例如“第一”,“第二”,“第三”等的序数术语来修饰权利要求要素,并不意味任何优先权或顺序,但仅用作标签以将具有特定名称的一个权利要求元素与具有相同名称的另一个元素权利要求区分。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。

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所述的高速缓存管理方法,其特征在于,所述至少一个高速缓存策略包括:指示多个特定对象的组策略,以及当将所述特定对象中的一个从第二存储器加载到所述第一存储器的所述工作空间中时,如果有其他的特定对象,将其他有的一个特定对象从所述第一存储器的所述工作空间移动到所述第二存储器。
CN202010080814.6A 2019-05-03 2020-02-05 缓存管理方法及微控制器 Pending CN111880722A (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 (1)

Publication Number Publication Date
CN111880722A true CN111880722A (zh) 2020-11-03

Family

ID=73015912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010080814.6A Pending CN111880722A (zh) 2019-05-03 2020-02-05 缓存管理方法及微控制器

Country Status (3)

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

Family Cites Families (26)

* 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
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
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
KR100909902B1 (ko) * 2007-04-27 2009-07-30 삼성전자주식회사 플래쉬 메모리 장치 및 플래쉬 메모리 시스템
US7593284B2 (en) * 2007-10-17 2009-09-22 Unity Semiconductor Corporation Memory emulation using resistivity-sensitive memory
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
US8533422B2 (en) * 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
WO2012058295A1 (en) * 2010-10-26 2012-05-03 Tsu-Chang Lee Apparatus for network based modular electronic systems
KR20130033230A (ko) * 2011-09-26 2013-04-03 삼성전자주식회사 하이브리드 메모리 장치, 이를 포함하는 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법
GB2510760B (en) * 2011-12-20 2020-05-20 Intel Corp Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
JP5989574B2 (ja) * 2013-02-28 2016-09-07 株式会社東芝 計算機、メモリ管理方法およびプログラム
US9696922B2 (en) * 2013-12-24 2017-07-04 Hitachi, Ltd. Storage system
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
US9971510B2 (en) * 2016-10-16 2018-05-15 Mediatek Inc. Method for managing memory and associated microcontroller

Also Published As

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

Similar Documents

Publication Publication Date Title
US20190213132A1 (en) Methods of cache preloading on a partition or a context switch
US5530941A (en) System and method for prefetching data from a main computer memory into a cache memory
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US5537573A (en) Cache system and method for prefetching of data
JP6009589B2 (ja) マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法
US7676632B2 (en) Partial cache way locking
US6912628B2 (en) N-way set-associative external cache with standard DDR memory devices
US6782453B2 (en) Storing data in memory
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
US9594681B2 (en) Dynamically configurable memory
US20100318742A1 (en) Partitioned Replacement For Cache Memory
US6832294B2 (en) Interleaved n-way set-associative external cache
US20030217246A1 (en) Memory control apparatus, method and program
US7039763B2 (en) Apparatus and method to share a cache memory
US20070294550A1 (en) Memory Management With Defragmentation In A Computing Device
US20160048451A1 (en) Energy-efficient dynamic dram cache sizing
KR20130101926A (ko) 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
US8266379B2 (en) Multithreaded processor with multiple caches
CN111880722A (zh) 缓存管理方法及微控制器
CN107957927B (zh) 微控制器和相关的存储器管理方法
US20200242032A1 (en) Cache and method for managing cache
CN112988074B (zh) 一种存储系统管理软件适配方法及装置
US11157319B2 (en) Processor with processor memory pairs for improved process switching and methods thereof
JP4713077B2 (ja) 半導体装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination