CN115394332B - Cache模拟实现系统、方法、电子设备及计算机存储介质 - Google Patents
Cache模拟实现系统、方法、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN115394332B CN115394332B CN202211105336.5A CN202211105336A CN115394332B CN 115394332 B CN115394332 B CN 115394332B CN 202211105336 A CN202211105336 A CN 202211105336A CN 115394332 B CN115394332 B CN 115394332B
- Authority
- CN
- China
- Prior art keywords
- data
- bitmap
- cache
- cold
- bit
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/24—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using capacitors
-
- 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)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种Cache模拟实现系统、方法、电子设备及计算机存储介质,应用于计算机缓存技术领域,包括,在内存中的每一个数据比特对应的数据电容上添加模拟电容,对于所有的模拟电容维持一个标记位图、一个热项位图和一个冷项位图,并根据标记位图、热项位图和冷项位图模拟Cache对数据进行管理。将Cache的数据统计从芯片内移至芯片外统计,统计空间大,可以节省片上SRAM的空间,同时提高数据的冷热判断精度;通过电容充放电过程实现Cache数据的冷热判定,首次用模拟方法判定模拟数据冷热,准确性更高,因此缓存效率更高,Cache命中率更高;简化了Cache处理流程,降低了Cache实现复杂度,应用范围广。
Description
技术领域
本申请涉及计算机缓存技术领域,具体涉及一种Cache模拟实现系统、方法、电子设备及计算机存储介质。
背景技术
电子计算机架构采用的是冯诺依曼架构,该架构将运算器和存储器分开,将指令和数据保存在存储器中,运算器负责数据和指令的拉取并根据指令进行计算,从而为计算机的普及奠定了基础。冯诺依曼架构为计算机的大提速铺平了道路,该架构也存在性能瓶颈:在内存容量和CPU性能指数级提升的同时,CPU和内存之间的数据带宽成为了瓶颈。缓存(Cache)的提出正是为了解决该问题,它是介于CPU与内存之间的一种小容量但是速度很高的存储器。CPU的速度远高于内存,CPU从内存中拉取数据和指令需要等待一定时间,而Cache可以基于数据访问局部性特性在CPU端保存热项数据,CPU访问时如果访问热项数据则可以快速返回,避免了从内存中重复存取数据,大大减少了CPU等待时间,因此大大提高了系统效率。
在CPU中使用Cache技术外,Cache还用于交换机、路由器、图形处理器(GraphicProcessing Unit)、处理器分散处理单元(Data Processing Unit,DPU)或网络处理器(Neural-network Processing Unit,NPU)中,既能够利用动态随机存取存储器(DynamicRandom Access Memory,DRAM)提供的大空间,又能利用Cache进行低时延访问。但是,现有Cache机制除匹配功能和片上数据缓存外,还需要实现复杂的缓存管理功能,如数据一致性处理、数据冷热检测功能、Cache替换机制等等,这导致缓存占据了芯片上的大量面积,其根本原因在于所有这些功能都是基于数字电路设计的,片上数据的冷热判定以及基于此方式的计数统计和逻辑处理都将消耗大量晶体管。因此本发明提出一种Cache模拟实现方法、装置和系统,该发明专利能够直接应用于现有DRAM中,通过bitmap实现冷热判断,进行Cache添加和Cache踢出判断
因此,需要一种实现Cache的新的技术方案。
发明内容
有鉴于此,本说明书实施例提供一种Cache模拟实现系统、方法、电子设备及计算机存储介质,解决了Cache通过数字电路的方式实现缓存管理功能时,需要占据芯片上的大量面积,以及对于数据的冷热判断的准确度低的技术问题。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种Cache模拟实现系统,包括:
在内存中的每一个数据比特对应的数据电容上添加模拟电容,模拟电容在CPU对数据电容中的数据进行读取时,对数据电容的电荷损失情况进行模拟;
对于所有的模拟电容维持一个标记位图、一个热项位图和一个冷项位图,并根据标记位图、热项位图和冷项位图模拟Cache对数据进行管理,热项位图和冷项位图记录模拟电容对数据电容的电荷损失情况的模拟结果,标记位图记录数据的位置。
优选地,每一个数据电容在每一次CPU读取对应的数据后进行充电;
每一个数据电容对应的模拟电容在每一次CPU读取对应数据后不进行充电,且对所有的模拟电容进行周期性充电。
优选地,模拟电容在CPU对数据电容中的数据进行读取时产生电荷损失,模拟电容的电压发生变化。
优选地,内存中的每一个数据对应热项位图和冷项位图中的一个比特位;
热项位图和冷项位图中的每一个比特位,在对应的模拟电容的电压小于电压阈值时标记为低位,在对应的模拟电容的电压大于或者等于电压阈值时,标记为高位;
热项位图中的每一个比特位标记为高位时,对应的数据存储在内存中,热项位图中的每一个比特位标记为低位时,将对应的数据存储到CPU中的缓存中;
冷项位图中的每一个比特位标记为高位时,将对应的数据踢出CPU中的缓存,热项位图中的每一个比特位标记为低位时,对应的数据存储在CPU中的缓存中。
优选地,内存中的每一个数据对应标记位图中的一个比特位;
标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位,在对应的数据存储在内存中时标记为低位。
优选地,在CPU访问内存中的数据时,若数据对应的热项位图中的比特位标记为低位,则将数据存储到CPU的缓存中,若数据对应的热项位图中的比特位标记为高位,则将数据返回到CPU上使用,不在CPU的缓存中进行存储。
优选地,将数据存储到CPU的缓存中时,若缓存中的数据数量等于数据容量,则将冷项位图中标记为高位,且标记位图中标记为高位的比特位对应的数据从缓存中踢出后,将需要存储的数据存储到缓存中,若缓存中的数据数量小于数据容量,则将数据直接存储在缓存中。
本说明书实施例还提供一种Cache模拟实现方法,应用于上述的Cache模拟实现系统,包括:在内存中的每一个数据比特对应的数据电容上添加模拟电容,对于所有的模拟电容在内存中维持一个标记位图、一个热项位图和一个冷项位图;
步骤1:根据每一个模拟电容的电压值,对标记位图、热项位图和冷项位图中对应的比特位进行标记,得到第一标记值;
步骤2:根据第一标记值,对内存中的数据进行管理。
优选地,步骤1,包括:
步骤101:对所有的模拟电容进行初始化充电,则热项位图和冷项位图中所有的比特位,标记为高位值;
步骤102:对数据进行数据读取,并在数据读取后不对模拟电容进行充电,获取每一个模拟电容的电压值;
步骤103:若电压值大于或者等于电压阈值,则将热项位图和冷项位图中对应的比特位标记为高位值;
步骤104:若电压值小于电压阈值,则将热项位图和冷项位图中对应的比特位标记为低位值;
步骤105:周期性遍历热项位图和冷项位图中的比特位,得到热项位图和冷项位图对应的第一标记值。
优选地,在步骤105后,还包括:
步骤106:对所有的模拟电容进行周期性充电,则热项位图和冷项位图中所有的比特位周期性的标记为高位值。
优选地,热项位图中的每一个比特位标记为高位值时,对应的数据存储在内存中,热项位图中的每一个比特位标记为低位值时,将对应的数据存储到CPU中的缓存中;
冷项位图中的每一个比特位标记为高位值时,将对应的数据踢出CPU中的缓存,热项位图中的每一个比特位标记为低位值时,对应的数据存储在CPU中的缓存中。
优选地,标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位值,在对应的数据存储在内存中时标记为低位值,周期性遍历标记位图中的比特位,得到标记位图对应的第一标记值。
优选地,在周期性遍历热项位图中的每一个比特位时,记录热项位图中标记为低位值的比特位的第一数量;
若第一数量大于热项数量阈值,则增加周期性充电的充电频率;
若第一数量小于热项数量阈值,则降低周期性充电的充电频率。
优选地,在周期性遍历冷项位图和标记位图中的每一个比特位时,记录冷项位图中标记为高位值,且标记位图中标记为高位值的比特位的第二数量;
若第二数量大于冷项数量阈值,则降低周期性充电的充电频率;
若第二数量小于冷项数量阈值,则增加周期性充电的充电频率。
优选地,步骤2,包括:
步骤201:当CPU访问内存中的数据时,若热项位图中数据对应的比特位的第一标记值为低位值,则将数据返回CPU中使用,并将数据添加到缓存中;
步骤202:若热项位图中数据对应的比特位的第一标记值为高位值,则将数据返回CPU中使用,且不将数据添加到缓存中。
优选地,步骤201中,在将数据添加到缓存中时,若缓存中的数据数量等于数据容量,将冷项位图中标记为高位值,且标记位图中标记为高位值的比特位对应的数据从缓存中踢出,将需要存储的数据存储到缓存中,若缓存中的数据数量小于数据容量,则将数据直接存储在缓存中。
本说明书实施例还提供一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的Cache模拟实现方法。
本说明书实施例还提供一种计算机存储介质,计算机存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行时执行上述的Cache模拟实现方法。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:将Cache的数据统计从芯片内移至芯片外统计,统计空间大,可以节省片上静态随机存取存储器(Static Random-Access Memory,SRAM)的空间,同时提高数据的冷热判断精度;通过Cache的模拟实现,可以进一步减少存储空间;通过电容充放电过程实现Cache数据的冷热判定,首次用模拟方法判定模拟数据冷热,准确性更高,因此缓存效率更高,Cache命中率更高;简化了Cache处理流程,降低了Cache实现复杂度,与内存计算(Process-In-Memory,PIM)相互兼容,在内存侧进行缓存管理可以使得片上缓存面积极简;应用范围广,所有Cache场景或冷热判定场景都可以使用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请提供的一种DRAM中存储单元的电路结构示意图;
图2是本申请提供的一种DRAM的漏电示意图;
图3是本申请提供的一种DRAM读充电过程示意图;
图4是本申请提供的一种读漏电过程示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践。
缓存(Cache)是介于CPU与内存之间的一种小容量但是速度很高的存储器。CPU的速度远高于内存,CPU从内存中拉取数据和指令需要等待一定时间,而Cache可以基于数据访问局部性特性在CPU端保存热项数据,CPU访问时如果访问热项数据则可以快速返回,避免了从内存中重复存取数据,大大减少了CPU等待时间,因此大大提高了系统效率。
在CPU中使用Cache技术外,Cache还用于交换机、路由器、图形处理器(GraphicProcessing Unit)、处理器分散处理单元(Data Processing Unit,DPU)或网络处理器(Neural-network Processing Unit,NPU)中,既能够利用动态随机存取存储器(DynamicRandom Access Memory,DRAM)提供的大空间,又能利用Cache进行低时延访问。
有鉴于此,发明人通过对各类网站、网页结构及其页面信息,以及对各种提取方案进行深入研究及改进探索,发现:Cache机制除匹配功能和片上数据缓存外,还需要实现复杂的缓存管理功能,如数据一致性处理、数据冷热检测功能、Cache替换机制等等,这导致缓存占据了芯片上的大量面积,其根本原因在于所有这些功能都是基于数字电路设计的,片上数据的冷热判定以及基于此方式的计数统计和逻辑处理都将消耗大量晶体管。
基于此,本说明书实施例提出了一种处理方案:将Cache的数据管理功能从芯片内移到芯片外的动态随机存取存储器(Dynamic Random Access Memory,DRAM)中,在不对DRAM产生影响的基础上,通过最小量的数字电路模拟实现Cache的数据管理功能,减少了芯片上SRAM的空间,提高书的冷热判定的精度。
以下结合附图,说明本申请各实施例提供的技术方案。
本申请利用DRAM上电容的充放电过程模拟实现Cache冷热检测,由于采用模拟实现方法,所以比特使用极少、逻辑简化,相比于传统数字电路实现方案,片上缓存面积更小、功耗更低、性能更好。
如图1所示,DRAM中的一个存储单元电路,包括:字线、位线、电容(Capacitor)和晶体管(Transistor),其中晶体管可以为金属-氧化物半导体场效应晶体管(Metal-Oxide-Semiconductor Field-Effect Transistor,MOSFET),存储数据在电容之中,电容中有电荷则为1,没电荷则为0。当字线为高时,MOSFET导通,若电容中有电荷,则会在位线上产生电流,否则无电流。因为采用电容存储信息,电容存在漏电流现象,当长时间放置电容,电容上的电荷随着时间会逐渐丢失,存储的数据会从1变为0。如图2所示,横轴为时间(Time),纵轴为电容两端的电压,DRAM的一个存储单元中的数据是否为0或者为1,是根据存储单元中电容的电荷量来决定的,当存在电荷时,示例性的,若电容的电压大于时,则电容的数据为1,其中Vd为存储单元电路充满电后电容两端的电压,若电容的电压小于或者等于/>时,则电容的数据为0。为实现数据的准确读取,所以必须配合周期性地刷新存储单元的电路来维持电容的电荷,同时,如图3所示,横轴为时间(Time),纵轴为电容两端的电压,在读取(read)数据时造成对应的电容中的电荷损失后,为避免下次读取出错,需要对存储单元进行充电(charge),如图3所示,在每次读取数据后,对存储单元进行充电,使电容的数据恢复为1。
本说明书实施例提供一种Cache模拟实现系统,包括:在内存中的每一个数据比特对应的数据电容上添加模拟电容,模拟电容在CPU对数据电容中的数据进行读取时,对数据电容的电荷损失情况进行模拟。
具体地,本申请在物理上不改变现有内存设计,在逻辑上在数据电容上添加模拟电容。
本申请中对于内存的类型不做限制,示例性的,可以为DRAM。
具体地,如图1所示,在DRAM中数据的存储方式为对于一个数据比特相应的有一个数据电容进行数据存储,本申请在DRAM的技术基础上,在每个数据电容上添加一个模拟电容,模拟电容不存储数据,存储数据电容的读取情况。与图1中电容相同,在CPU对数据电容进行读取时,也会对模拟电容进行读取,每次读取会造成模拟电容的电荷损失,每一个数据电容在每一次CPU读取对应的数据后进行充电,但是,每一个数据电容对应的模拟电容在每一次CPU读取对应数据后不进行充电,进而可以获取模拟电容的电荷损失情况,根据电荷损失情况确定对应的数据是否被CPU频繁访问。
可知的是,模拟电容在CPU对数据电容中的数据进行读取时产生电荷损失,模拟电容的电压发生变化。如图4所示,横轴为时间(Time),纵轴为电容两端的电压,当某一个数据电容被CPU访问时,对应的模拟电容也被读取,且每次读取后不对模拟电容进行充电,进而随着数据电容被访问的次数增多,模拟电容的电压逐渐降低,当电压低于时,则模拟电容的数据由1变为0,则可以表述对应的数据电容被CPU频繁访问。
在DRAM中由于长时间放置数据电容时,数据电容上的电荷随着时间会逐渐丢失,存储的数据会从1变为0,会出现数据错误的情况,为了避免数据出错,DRAM会对所有的存储单元进行周期性充电,以使数据电容的数据恢复为1,相应的,对所有的模拟电容也进行周期性充电,以避免模拟电容的模拟结果出错。
在本申请中数据电容和模拟电容周期性充电的充电频率可以相同也可以不同,根据具体的情况进行选择。
进一步地,对于所有的模拟电容维持一个标记位图、一个热项位图和一个冷项位图,并根据标记位图、热项位图和冷项位图模拟Cache对数据进行管理。
其中,热项位图和冷项位图记录模拟电容对数据电容的电荷损失情况的模拟结果,标记位图记录数据的位置。
具体地,本申请中包括3个位图(Bitmap),分别为标记位图(Flag Bitmap)、热项位图(Hot Bitmap)和冷项位图(Cold Bitmap),内存中的每一个数据对应标记位图、热项位图和冷项位图中的一个比特位,热项位图和冷项位图中的每一个比特位,在对应的模拟电容的电压小于电压阈值时标记为低位,在对应的模拟电容的电压大于或者等于电压阈值时,标记为高位;标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位,在对应的数据存储在内存中时标记为低位。
其中,高位可以为1,低位可以为0,不做限制。
在一种可选的实施方式中,标记位图中的每一个比特位,可以在对应的数据存储在CPU中的缓存中时,标记为低位,在对应的数据存储在内存中时标记为高位,本申请中对于具体的标记方式不做限制,本申请实施中以标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位,在对应的数据存储在内存中时标记为低位为例进行说明。
进一步地,热项位图中的每一个比特位标记为高位时,对应的数据存储在内存中,热项位图中的每一个比特位标记为低位时,将对应的数据存储到CPU中的缓存中;冷项位图中的每一个比特位标记为高位时,将对应的数据踢出CPU中的缓存,热项位图中的每一个比特位标记为低位时,对应的数据存储在CPU中的缓存中。
在实际应用中,Flag Bitmap是Cache缓存数据标记位,Hot Bitmap是数据热项标记位,Cold Bitmap是数据冷项标记位,热项数据表示对应的数据被CPU频繁访问,冷项数据表示对应的数据并未被CPU进行频繁访问。对于频繁访问的数据需要添加到缓存中,以使数据被CPU再次访问时可以快速的返回,对于非频繁访问的数据,因为缓存的存储空间有限,则不需要添加到缓存中。Flag Bitmap:当数据存储在缓存中时,则对应的比特位标记为1;否则标记为0。Hot Bitmap:当比特位标记为0时,表示对应的数据为热项数据,被认定需添加到芯片上的缓存中;当标记为1时,表示对应的数据为非热项数据,对应的数据在DRAM中保持不变。Cold Bitmap:当比特位标记为0时,表示该数据在芯片上被频繁访问,数据在芯片上的缓存中保持不变;当该数据为1时,表示该数据在片上非频繁访问,数据可以从片上缓存中踢出。
其中,片上缓存可以为SRAM。
本申请通过DRAM逻辑芯片(DRAM Logic)来控制Hot Bitmap和Cold Bitmap的充放电过程,访问次数导致模拟电容的漏电,并基于漏电后的电容电荷判定数据冷热。本申请中对于Hot Bitmap和Cold Bitmap只采用周期性充电,不采用读充电处理,采用模拟实现方法。对于数据和Flag Bitmap则按照传统DRAM方法进行数据存储。
下面对于Hot Bitmap、ColdBitmap和Flag Bitmap的情况进行说明。
对于Hot Bitmap。
所有DRAM数据共同维持一个Hot Bitmap,数据初始化为1,即该Bitmap所有模拟电容进行初始化充电。所有数据读取,无论片上SRAM还是片外DRAM,都将对Hot Bitmap对应的比特位进行读取;数据读取完成后不执行充电过程;背景线程,即PIM或CPU线程,对所有HotBitmap进行周期性遍历,数据读取为0认为该数据为热项数据,否则认为该数据为非热项数据。并且记录数据为0的总个数(A)。周期性对Hot Bitmap进行初始化置1,然后重复执行上述操作。维持一个寄存器,设置热度数据个数(M1)。当A<M1时,降低周期性初始化频率;当A>M1时,增加周期性初始化频率;目的是让A=M1。
对于Flag Bitmap。
当数据在片上SRAM的缓存空间时,Flag Bitmap对应的比特位为1;当数据不在片上SRAM的缓存空间时,Flag Bitmap对应的比特位为0。
对于Cold Bitmap。
所有DRAM数据都维持Cold Bitmap,数据初始化为1,即所有Bitmap中电容进行初始化充电。所有数据读取,无论片上SRAM还是片外DRAM,都将对Cold Bitmap对应的比特位进行读取;数据读取完成后不执行充电过程;背景线程,即PIM或CPU线程,对所有ColdBitmap进行周期性遍历,数据读取为1认为该数据为冷项数据,否则认为该数据为非冷项数据。Cold Bitmap对应比特位为1且Flag Bitmap对应比特位为1的个数为B;周期性进行对Cold Bitmap初始化置1,重复执行以上操作。维持一个寄存器,代表冷项数据个数(M2)。当B<M2时,增加周期性初始化频率;当B>M2时,降低周期性初始化频率;目的是让B=M2。
下面对于根据标记位图、热项位图和冷项位图模拟Cache对数据进行管理的情况进行说明。
具体地,在CPU访问内存中的数据时,若数据对应的热项位图中的比特位标记为低位,则将数据存储到CPU的缓存中,若数据对应的热项位图中的比特位标记为高位,则将数据返回到CPU上使用,不在CPU的缓存中进行存储。
在本申请中将数据存储到CPU的缓存中时,若缓存中的数据数量等于数据容量,则将冷项位图中标记为高位,且标记位图中标记为高位的比特位对应的数据从缓存中踢出后,将需要存储的数据存储到缓存中,若缓存中的数据数量小于数据容量,则将数据直接存储在缓存中。
在实际应用中,当访问片外DRAM时,当Hot Bitmap上的某一个比特位为0时,对应的数据返回片上CPU进行使用,并且被添加至片上SRAM缓存空间;当Hot Bitmap上的某一个比特位为1时,将对应的数据仅返回片上CPU进行使用,但是不添加至片上SRAM缓存空间。当访问片外DRAM并判定需添加到片内SRAM时,缓存被踢出项从Cold Bitmap为1的数据且FlagBitmap为1的数据中选择,该数据存在多个,选择方法是采用轮询或随机选择一个踢出。当缓存数据不满时,只进行数据添加,不进行踢出。
下面提供两个具体的实施例。
实施例1
本实施例通过3个Bitmap,Flag Bitmap、Hot Bitmap和Cold Bitmap进行冷热判定,可以用于任何采用冷热判断的场景中。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
具体地,Flag Bitmap表明数据是否存在片上缓存空间,1为在Cache中;0为不在Cache中。Hot Bitmap表明该数据为热项数据,0为应该添加到Cache中,1为不应该添加到Cache中。Cold Bitmap表明该数据为冷项数据,1为应该从Cache中踢出,0应该保留在Cache中。对所有读数据,都将读取Hot Bitmap和Cold Bitmap,并对相应比特位的模拟电容进行放电操作。对于Flag Bitmap为0且Hot Bitmap为0的读请求,执行Cache添加操作,操作完成后Flag Bitmap和Cold Bitmap对应比特位设为1;对于Flag Bitmap为1且Cold Bitmap为1的数据,则可以进行从Cache中踢出,当踢出完成后Flag Bitmap置0。
实施例2
本实施例为实现极小面积进行冷热判定,通过2个Bitmap,Flag Bitmap和Hot&Cold Bitmap,即可进行冷热判定,可以用任何采用冷热判断的场景中。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
具体地,Flag Bitmap表明是否存在片上缓存空间,1为在Cache中;0为不在Cache中;Hot&Cold Bitmap表明该数据访问频率,0表示该数据被频繁访问,模拟电容漏电严重,代表为热项数据;1表项该数据对应的模拟电容放电较少,数据访问比较少,代表为冷项数据;对所有读数据,都将读取Hot&Cold Bitmap,并对相应比特位的模拟电容进行放电操作;对于Flag Bitmap为0且Hot&Cold Bitmap为0的读请求,执行Cache添加操作,操作完成后Flag Bitmap和Cold&Cold Bitmap对应比特位设为1;对于Flag Bitmap为1且Hot&ColdBitmap为1的数据,则可以进行踢出,当踢出完成后Flag Bitmap置0。
本申请利用DRAM上电容充放电过程模拟实现Cache冷热检测,由于采用模拟实现方法,所以比特使用极少、逻辑简化,相比于传统数字电路实现方案,片上缓存面积更小、功耗更低、性能更好。
本说明书实施例还提供一种Cache模拟实现方法,应用于上述的Cache模拟实现系统,包括:在内存中的每一个数据比特对应的数据电容上添加模拟电容,对于所有的模拟电容在内存中维持一个标记位图、一个热项位图和一个冷项位图。
步骤1:根据每一个模拟电容的电压值,对标记位图、热项位图和冷项位图中对应的比特位进行标记,得到第一标记值。
在一种可选的实施方式中,步骤1,包括:步骤101:对所有的模拟电容进行初始化充电,则热项位图和冷项位图中所有的比特位,标记为高位值;步骤102:对数据进行数据读取,并在数据读取后不对模拟电容进行充电,获取每一个模拟电容的电压值;步骤103:若电压值大于或者等于电压阈值,则将热项位图和冷项位图中对应的比特位标记为高位值;步骤104:若电压值小于电压阈值,则将热项位图和冷项位图中对应的比特位标记为低位值;步骤105:周期性遍历热项位图和冷项位图中的比特位,得到热项位图和冷项位图对应的第一标记值。
其中,高位值可以为1,低位值可以为0,不做限制。
进一步地,在步骤105后,还包括:步骤106:对所有的模拟电容进行周期性充电,则热项位图和冷项位图中所有的比特位周期性的标记为高位值。
其中,热项位图中的每一个比特位标记为高位值时,对应的数据存储在内存中,热项位图中的每一个比特位标记为低位值时,将对应的数据存储到CPU中的缓存中;冷项位图中的每一个比特位标记为高位值时,将对应的数据踢出CPU中的缓存,热项位图中的每一个比特位标记为低位值时,对应的数据存储在CPU中的缓存中。
并且,标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位值,在对应的数据存储在内存中时标记为低位值,周期性遍历标记位图中的比特位,得到标记位图对应的第一标记值。
在一种可选的实施方式中,标记位图中的每一个比特位,可以在对应的数据存储在CPU中的缓存中时,标记为低位值,在对应的数据存储在内存中时标记为高位值等,本申请中对于具体的标记方式不做限制,本申请实施中以标记位图中的每一个比特位,在对应的数据存储在CPU中的缓存中时,标记为高位值,在对应的数据存储在内存中时标记为低位值为例进行说明。
进一步地,在周期性遍历热项位图中的每一个比特位时,记录热项位图中标记为低位值的比特位的第一数量;若第一数量大于热项数量阈值,则增加周期性充电的充电频率;若第一数量小于热项数量阈值,则降低周期性充电的充电频率。
更进一步地,在周期性遍历冷项位图和标记位图中的每一个比特位时,记录冷项位图中标记为高位值,且标记位图中标记为高位值的比特位的第二数量;若第二数量大于冷项数量阈值,则降低周期性充电的充电频率;若第二数量小于冷项数量阈值,则增加周期性充电的充电频率。
步骤2:根据第一标记值,对内存中的数据进行管理。
在一种可选的实施方式中,步骤2,包括:步骤201:当CPU访问内存中的数据时,若热项位图中数据对应的比特位的第一标记值为低位值,则将数据返回CPU中使用,并将数据添加到缓存中;步骤202:若热项位图中数据对应的比特位的第一标记值为高位值,则将数据返回CPU中使用,且不将数据添加到缓存中。
具体地,步骤201中,在将数据添加到缓存中时,若缓存中的数据数量等于数据容量,将冷项位图中标记为高位值,且标记位图中标记为高位值的比特位对应的数据从缓存中踢出,将需要存储的数据存储到缓存中,若缓存中的数据数量小于数据容量,则将数据直接存储在缓存中。
本说明书实施例中还提供一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的Cache模拟实现方法。
本说明书实施例还提供一种计算机存储介质,计算机存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行时执行上述的Cache模拟实现方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的产品实施例而言,由于其与方法是对应的,描述比较简单,相关之处参见系统实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种Cache模拟实现系统,其特征在于,包括:
在内存中的每一个数据对应的数据电容上添加模拟电容,所述数据电容用于对所述数据进行存储,所述模拟电容在CPU对所述数据电容中的数据进行读取时产生电荷损失,所述模拟电容的电压发生变化,对所述数据电容的电荷损失情况进行模拟;
对于所有的所述模拟电容维持一个标记位图、一个热项位图和一个冷项位图,并根据所述标记位图、所述热项位图和所述冷项位图模拟Cache对所述数据进行管理,其中,所述热项位图和所述冷项位图记录所述模拟电容对所述数据电容的电荷损失情况的模拟结果,所述标记位图记录所述数据的位置;
所述内存中的每一个所述数据对应所述标记位图、热项位图和所述冷项位图中的一个比特位;所述标记位图中的每一个比特位,在对应的所述数据存储在所述CPU中的缓存中时,标记为高位值,在对应的所述数据存储在所述内存中时标记为低位值;所述热项位图和所述冷项位图中的每一个所述比特位,在对应的所述模拟电容的电压小于电压阈值时标记为低位值,在对应的所述模拟电容的电压大于或者等于所述电压阈值时,标记为高位值;
所述管理包括:
在所述CPU访问所述内存中的数据时,若所述数据对应的所述热项位图中的所述比特位标记为低位值,则将所述数据存储到所述CPU的缓存中,若所述数据对应的所述热项位图中的所述比特位标记为高位值,则将所述数据返回到所述CPU上使用,不在所述CPU的缓存中进行存储;
所述冷项位图中的每一个所述比特位标记为高位值时,将对应的所述数据踢出所述CPU中的缓存,所述冷项位图中的每一个所述比特位标记为低位值时,对应的所述数据存储在所述CPU中的缓存中;
将所述数据存储到所述CPU的缓存中时,若所述缓存中的数据数量等于数据容量,则将所述冷项位图中标记为高位值,且所述标记位图中标记为高位值的所述比特位对应的数据从所述缓存中踢出后,将需要存储的所述数据存储到所述缓存中,若所述缓存中的数据数量小于数据容量,则将所述数据直接存储在所述缓存中。
2.根据权利要求1所述的Cache模拟实现系统,其特征在于,
每一个所述数据电容在每一次所述CPU读取对应的所述数据后进行充电;
每一个所述数据电容对应的所述模拟电容在每一次所述CPU读取对应所述数据后不进行充电,且对所有的所述模拟电容进行周期性充电。
3.一种Cache模拟实现方法,应用于权利要求1-2任一项所述的Cache模拟实现系统,其特征在于,包括:在内存中的每一个数据对应的数据电容上添加模拟电容,所述数据电容用于对所述数据进行存储,对于所有的所述模拟电容在所述内存中维持一个标记位图、一个热项位图和一个冷项位图;
步骤1:根据每一个所述模拟电容的电压值,对所述标记位图、所述热项位图和所述冷项位图中对应的比特位进行标记,得到第一标记值;
步骤2:根据所述第一标记值,对所述内存中的数据进行管理;
所述步骤1,包括:
步骤101:对所有的所述模拟电容进行初始化充电,则所述热项位图和所述冷项位图中所有的所述比特位,标记为高位值;
步骤102:对所述数据进行数据读取,并在所述数据读取后不对所述模拟电容进行充电,获取每一个所述模拟电容的电压值;
步骤103:若所述电压值大于或者等于电压阈值,则将所述热项位图和所述冷项位图中对应的所述比特位标记为高位值;
步骤104:若所述电压值小于电压阈值,则将所述热项位图和所述冷项位图中对应的比特位标记为低位值;
步骤105:周期性遍历所述热项位图和所述冷项位图中的所述比特位,得到热项位图和所述冷项位图对应的所述第一标记值;
所述标记位图中的每一个比特位,在对应的所述数据存储在所述CPU中的缓存中时,标记为高位值,在对应的所述数据存储在所述内存中时标记为低位值,周期性遍历所述标记位图中的所述比特位,得到所述标记位图对应的所述第一标记值;
所述步骤2,包括:
步骤201:当CPU访问所述内存中的所述数据时,若所述热项位图中所述数据对应的所述比特位的所述第一标记值为低位值,则将所述数据返回CPU中使用,并将所述数据添加到所述缓存中;
步骤202:若所述热项位图中所述数据对应的所述比特位的所述第一标记值为高位值,则将所述数据返回CPU中使用,且不将所述数据添加到所述缓存中;
步骤203:所述冷项位图中的每一个所述比特位标记为高位值时,将对应的所述数据踢出所述CPU中的缓存,所述冷项位图中的每一个所述比特位标记为低位值时,对应的所述数据存储在所述CPU中的缓存中;
所述步骤201中,在将所述数据添加到所述缓存中时,若所述缓存中的数据数量等于数据容量,将所述冷项位图中标记为高位值,且所述标记位图中标记为高位值的所述比特位对应的所述数据从所述缓存中踢出,将需要存储的所述数据存储到所述缓存中,若所述缓存中的数据数量小于数据容量,则将所述数据直接存储在所述缓存中。
4.根据权利要求3所述的Cache模拟实现方法,其特征在于,在所述步骤105后,还包括:
步骤106:对所有的所述模拟电容进行周期性充电,则所述热项位图和所述冷项位图中所有的所述比特位周期性的标记为高位值。
5.根据权利要求3-4任一项所述的Cache模拟实现方法,其特征在于,在周期性遍历所述热项位图中的每一个所述比特位时,记录所述热项位图中标记为低位值的比特位的第一数量;
若所述第一数量大于热项数量阈值,则增加周期性充电的充电频率;
若所述第一数量小于所述热项数量阈值,则降低周期性充电的充电频率。
6.根据权利要求5所述的Cache模拟实现方法,其特征在于,在周期性遍历所述冷项位图和所述标记位图中的每一个所述比特位时,记录所述冷项位图中标记为高位值,且所述标记位图中标记为高位值的比特位的第二数量;
若所述第二数量大于冷项数量阈值,则降低周期性充电的充电频率;
若所述第二数量小于所述冷项数量阈值,则增加周期性充电的充电频率。
7.一种电子设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求3-6中任一项所述Cache模拟实现方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时执行权利要求3-6中任一项所述的Cache模拟实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105336.5A CN115394332B (zh) | 2022-09-09 | 2022-09-09 | Cache模拟实现系统、方法、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105336.5A CN115394332B (zh) | 2022-09-09 | 2022-09-09 | Cache模拟实现系统、方法、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115394332A CN115394332A (zh) | 2022-11-25 |
CN115394332B true CN115394332B (zh) | 2023-09-12 |
Family
ID=84127031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211105336.5A Active CN115394332B (zh) | 2022-09-09 | 2022-09-09 | Cache模拟实现系统、方法、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115394332B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207844A (zh) * | 2013-04-18 | 2013-07-17 | 上海云间半导体科技有限公司 | 缓存系统及缓存访问方法 |
CN106528454A (zh) * | 2016-11-04 | 2017-03-22 | 中国人民解放军国防科学技术大学 | 一种基于闪存的内存系统缓存机制 |
CN106897231A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于高性能存储介质的数据缓存方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786717B (zh) * | 2016-03-22 | 2018-11-16 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN116303138B (zh) * | 2023-05-08 | 2023-08-29 | 北京云脉芯联科技有限公司 | 一种缓存架构及缓存方法、电子设备 |
-
2022
- 2022-09-09 CN CN202211105336.5A patent/CN115394332B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207844A (zh) * | 2013-04-18 | 2013-07-17 | 上海云间半导体科技有限公司 | 缓存系统及缓存访问方法 |
CN106528454A (zh) * | 2016-11-04 | 2017-03-22 | 中国人民解放军国防科学技术大学 | 一种基于闪存的内存系统缓存机制 |
CN106897231A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于高性能存储介质的数据缓存方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115394332A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Imani et al. | Acam: Approximate computing based on adaptive associative memory with online learning | |
JP5379358B2 (ja) | データの優先順位付けを用いるマルチレベルのメモリ・アーキテクチャ | |
CN102331974B (zh) | 用于处理器主存储器的持久存储器 | |
US6393525B1 (en) | Least recently used replacement method with protection | |
US11693775B2 (en) | Adaptive cache | |
WO2013163956A1 (zh) | 用于处理器的动态组相联高速缓存装置及其访问方法 | |
CN110018971B (zh) | 缓存替换技术 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN110532200B (zh) | 一种基于混合内存架构的内存系统 | |
US20180150393A1 (en) | Cache memory device and electronic system including the same | |
CN113168378A (zh) | 用于存储数据的区域的缓存 | |
Quan et al. | Prediction table based management policy for STT-RAM and SRAM hybrid cache | |
CN110297787A (zh) | I/o设备访问内存的方法、装置及设备 | |
CN115033185A (zh) | 访存处理方法和装置、存储装置、芯片、板卡、电子设备 | |
Kargar et al. | Challenges and future directions for energy, latency, and lifetime improvements in NVMs | |
CN115394332B (zh) | Cache模拟实现系统、方法、电子设备及计算机存储介质 | |
US20220044744A1 (en) | Balanced three-level read disturb management in a memory device | |
Deng et al. | Herniated hash tables: Exploiting multi-level phase change memory for in-place data expansion | |
US11775431B2 (en) | Cache memory with randomized eviction | |
CN109299021B (zh) | 页迁移方法、装置和中央处理器 | |
TW202331536A (zh) | 微處理器中的控制器及其進行的方法 | |
US11663136B2 (en) | Storage capacity recovery source selection | |
Koltsidas et al. | Spatial data management over flash memory | |
Wang et al. | CLOCK-RWRF: a read-write-relative-frequency page replacement algorithm for PCM and DRAM of hybrid memory | |
Lee et al. | Research issues in next generation DBMS for mobile platforms |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |