CN104123243B - 数据缓存系统及方法 - Google Patents

数据缓存系统及方法 Download PDF

Info

Publication number
CN104123243B
CN104123243B CN201310144049.XA CN201310144049A CN104123243B CN 104123243 B CN104123243 B CN 104123243B CN 201310144049 A CN201310144049 A CN 201310144049A CN 104123243 B CN104123243 B CN 104123243B
Authority
CN
China
Prior art keywords
data
weighted value
state
buffer memory
read
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
Application number
CN201310144049.XA
Other languages
English (en)
Other versions
CN104123243A (zh
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.)
Fulian Precision Electronics Tianjin Co Ltd
Original Assignee
Hongfujin Precision Electronics Tianjin Co Ltd
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 Hongfujin Precision Electronics Tianjin Co Ltd filed Critical Hongfujin Precision Electronics Tianjin Co Ltd
Priority to CN201310144049.XA priority Critical patent/CN104123243B/zh
Publication of CN104123243A publication Critical patent/CN104123243A/zh
Application granted granted Critical
Publication of CN104123243B publication Critical patent/CN104123243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种数据缓存系统及方法。该系统与一缓存存储器连接及一中央处理单元CPU连接,该缓存存储器内数据利用一权重值进行标记,用于表示该数据在缓存存储器中被读取的次数。该系统包含:一接收模块,用于接收CPU发送的读取数据请求;一读取模块,用于根据读取数据请求读取对应的数据;一权重值计算模块,用于快取命中时将缓存存储器内读取的数据的权重值加1,在缓存存储器的空间满时,处于权重值为零的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。本发明的数据缓存系统及方法,快取缓存存储器内最经常使用内容而不是最近使用的内容,从而确定缓存存储器中需替换的内容更加迅速有效。

Description

数据缓存系统及方法
技术领域
本发明涉及一种数据缓存系统及方法,尤其涉及一种读取缓存存储器内最经常使用内容的数据缓存系统及方法。
背景技术
当接收到数据读取请求时,缓存存储器读取速度较快,因此首先去缓存存储器中读取数据。若所需读取内容已经在缓存存储器内,则叫“缓存命中”(cache hit)。若所需读取内容不在缓存存储器内,则叫“缓存错失”(cache miss)。当发生缓存错失时,需从主存储器内读取内容,并将读取到的内容存储至缓存存储器内以提高下次读取的速度。由于缓存存储器(cache)存储器通常比它们耦合到的主存储器小,因此若缓存存储器空间满时,需要及时替换其中的部分内容,这时,需要使用替换算法用于确定应该替换缓存存储器中的哪些内容。
应用到NAND存储器(如SSD)上的常用的缓存存储器替换算法为先进先出(FIFO)算法及最近最少使用(least recently used,LRU)算法。但是,由于这些算法是快取最近使用的内容,而不是最经常使用的内容,因此这些算法存在不足之处。
发明内容
本发明提供一种快取缓存存储器内最经常使用内容的数据缓存系统及方法。
一种数据缓存系统,运行于一处理器上,与一缓存存储器连接及一中央处理单元CPU连接,该缓存存储器内数据利用一权重值进行标记,用于表示该数据在缓存存储器中被读取的次数,该系统包含:一接收模块,用于接收CPU发送的读取数据请求;一读取模块,用于根据读取数据请求读取对应的数据;一权重值计算模块,用于快取命中时将缓存存储器内读取的数据的权重值加1,在缓存存储器的空间满时,处于权重值为零的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。
一种数据缓存方法,包含步骤:接收CPU发送的读取数据请求;根据读取数据请求读取对应的数据;及在快取命中时将缓存存储器内读取的数据的权重值加1,在缓存存储器的空间满时,处于权重值为零的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。
本发明的数据缓存系统及方法,快取缓存存储器内最经常使用内容而不是最近使用的内容,从而确定缓存存储器中需替换的内容更加迅速有效。
附图说明
图1为本发明优选实施方式下的缓存存储器管理系统的系统架构图。
图2为图1中的缓存存储器管理系统执行数据缓存存储器的方法流程图。
主要元件符号说明
缓存存储器管理系统 10
CPU 20
缓存存储器 30
主存储器 40
接收模块 101
读取模块 102
空间判断模块 103
权重值计算模块 104
状态确定模块 105
记录模块 106
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
请参阅图1,为本发明优选实施方式下的缓存存储器管理系统的系统架构图。该缓存存储器管理系统10为一可编程系统,运行于一处理器上。该处理器与一缓存存储器30连接及一中央处理单元CPU20连接。缓存存储器30将缓存存储器管理系统10耦合至一主存储器40。
缓存存储器管理系统10接收CPU20的读取指令,在缓存命中时从缓存存储器30读取数据,而在缓存错失时,从主存储器40中读取数据,并将读取数据存储至缓存存储器30。
缓存存储器管理系统10内的数据均用一权重值进行标记,该权重值用于表示该数据在缓存存储器30中被读取的次数。缓存存储器30内的数据具有5种状态如下:权重值大于2的数据被认为处于热状态;权重值等于1且未写入主存储器40的数据被认为处于第一冷状态;权重值等于1且已写入硬盘的数据被认为处于第二冷状态;权重值等于零的数据被认为处于可用/可选状态;被替换出该缓存存储器30的数据被存放在主存储器40中,其寻址方式被保存在缓存存储器30中,该寻址方式的数据对应的权重值为1,被认为该寻址方式的数据处于暂时状态。系统初始化时,所有缓存存储器30内存储的数据的权重值设置为零,即均处于可用/可选状态。在缓存存储器30的空间满时,处于可用/可选状态的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。
缓存存储器管理系统10包括一接收模块101、一读取模块102、一空间判断模块103、一权重值计算模块104、一状态确定模块105、一替换模块106及一记录模块107。各模块的功能将结合图2进行说明。
图2为图1中的缓存存储器管理系统执行数据缓存存储器的方法流程图。
步骤S201中,接收模块101接收CPU20发送的读取数据请求。
步骤S202中,读取模块102确定该数据请求是否存在缓存命中。如果在步骤S202中发生了缓存命中,则控制流程至步骤203。如果在步骤S202中发生了缓存错失,则控制流程至步骤205。
步骤S203中,权重值计算模块104将缓存存储器30内读取的数据的权重值加1。
步骤S204中,状态确定模块105确定该读取的数据对应的状态。具体的,若读取的数据之前处于热状态,则权重值加1后仍然大于2,确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值加1后等于2,确定该数据处于热状态;若读取的数据之前处于第二冷状态,则权重值加1等于2后,确定该数据处于热状态;若读取的数据之前处于可用/可选状态,则权重值加1后若未写入硬盘,则确定该数据处于第一冷状态,权重值加1后若已写入硬盘,则确定该数据处于第二冷状态;在读取的数据未在缓存存储器30中,而该读取的数据对应的寻址方式保存在缓存存储器30中且处于暂时状态时,如果缓存存储器30内具有处于可用/可选状态的数据,则随机从处于可用/可选状态的数据中选择若干数据用于替换该读取的数据,并将该读取的数据的权重值设置为2,处于热状态;及在读取的数据未在缓存存储器30中,而该读取的数据对应的寻址方式保存在缓存存储器30中且处于暂时状态时,如果缓存存储器30内不具有处于可用/可选状态的数据,则启动一次权重值压缩,并根据压缩后的权重值按照上面的方式重新确定缓存存储器30内的全部数据的状态。权重值压缩指将缓存存储器30内的全部数据的权重值除以2后进行取整操作。
步骤S205中,空间判断模块103判断缓存存储器30内存储空间是否已满,若否,流程至步骤S206;若是,流程至步骤S207。
步骤S206中,读取模块102从主存储器40读取该内容至缓存存储器30,流程转至步骤S204。
步骤S207中,状态确定模块105启动一次权重值压缩,重新确定缓存存储器30内存储的全部数据对应的状态。具体的,若读取的数据之前处于热状态,权重值压缩后权重值仍大于2,则确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值压缩后为零,则确定需先将该数据保存至硬盘,且确定该数据处于可用/可选状态;若读取的数据之前处于第二冷状态,则权重值压缩后为零,确定该数据处于可用/可选状态;若读取的数据之前处于暂时状态,则权重值压缩后为0,若该数据未写入硬盘,则将该数据写入硬盘后确定该数据处于可用/可选状态,若该数据已写入硬盘,则确定该数据处于可用/可选状态。
步骤S208中,读取模块102从可用/可选状态的数据中随机选择若干替换为主存储器40读取的数据。
步骤S209中,记录模块106将被选择替换的数据的寻址方式记录在缓存存储器30内,表示该寻址方式的数据的权重值等于1,处于暂时状态。
该数据缓存系统及方法,快取缓存存储器30内最经常使用内容而不是最近使用的内容,从而确定缓存存储器30中需替换的内容更加迅速有效。

Claims (10)

1.一种数据缓存系统,运行于一处理器上,与一缓存存储器连接及一中央处理单元CPU连接,其特征在于,该缓存存储器内数据利用一权重值进行标记,用于表示该数据在缓存存储器中被读取的次数,该系统包含:
一接收模块,用于接收CPU发送的读取数据请求;
一读取模块,用于根据读取数据请求读取对应的数据;
一权重值计算模块,用于快取命中时将缓存存储器内读取的数据的权重值加1;
一状态确定模块,用于确定该读取的数据对应的状态,权重值等于零的数据被认为处于可用/可选状态;权重值等于1的寻址方式数据被认为处于暂时状态;在读取的数据未在缓存存储器中,而该读取的数据对应的寻址方式保存在缓存存储器中且处于暂时状态时,如果缓存存储器内不具有处于可用/可选状态的数据,则启动一次权重值压缩,并根据压缩后的权重值按照上面的方式重新确定缓存存储器内的全部数据的状态,权重值压缩指将缓存存储器内的全部数据的权重值除以2后进行取整操作;
所述读取模块在缓存存储器的空间满时,处于权重值为零的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。
2.如权利要求1所述的数据缓存系统,其特征在于,所述状态确定模块确定的数据状态还包括:权重值大于2的数据被认为处于热状态;权重值等于1且未写入主存储器的数据被认为处于第一冷状态;权重值等于1且已写入硬盘的数据被认为处于第二冷状态;系统初始化时,所有缓存存储器内存储的数据的权重值设置为零。
3.如权利要求2所述的数据缓存系统,其特征在于,所述权重值计算模块将缓存存储器内读取的数据的权重值加1后,状态确定模块确定该读取的数据对应的状态的具体方法为:若读取的数据之前处于热状态,则权重值加1后仍然大于2,确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值加1后等于2,确定该数据处于热状态;若读取的数据之前处于第二冷状态,则权重值加1等于2后,确定该数据处于热状态;若读取的数据之前处于可用/可选状态,则权重值加1后若未写入硬盘,则确定该数据处于第一冷状态,权重值加1后若已写入硬盘,则确定该数据处于第二冷状态;在读取的数据未在缓存存储器中,而该读取的数据对应的寻址方式保存在缓存存储器中且处于暂时状态时,如果缓存存储器内具有处于可用/可选状态的数据,则随机从处于可用/可选状态的数据中选择若干数据用于替换该读取的数据,并将该读取的数据的权重值设置为2,处于热状态。
4.如权利要求3所述的数据缓存系统,其特征在于,所述状态确定模块在启动权重值压缩后重新确定状态的具体方法为:若读取的数据之前处于热状态,权重值压缩后权重值仍大于2,则确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值压缩后为零,则确定需先将该数据保存至硬盘,且确定该数据处于可用/可选状态;若读取的数据之前处于第二冷状态,则权重值压缩后为零,确定该数据处于可用/可选状态;若读取的数据之前处于暂时状态,则权重值压缩后为0,若该数据未写入硬盘,则将该数据写入硬盘后确定该数据处于可用/可选状态,若该数据已写入硬盘,则确定该数据处于可用/可选状态。
5.如权利要求1所述的数据缓存系统,其特征在于,在快取错失时且缓存存储器空间足够时,所述读取模块还用于从主存储器读取该对应的数据至缓存存储器,在快取错失时且缓存存储器空间不足时,所述读取模块还用于从可用/可选状态的数据中随机选择若干替换为主存储器读取的数据。
6.如权利要求4所述的数据缓存系统,其特征在于,所述系统还包括一记录模块,用以将被选择替换的数据的寻址方式记录在缓存存储器内,表示该寻址方式的数据的权重值等于1,处于暂时状态。
7.一种数据缓存方法,包含步骤:
接收CPU发送的读取数据请求;
根据读取数据请求读取对应的数据;在快取命中时将缓存存储器内读取的数据的权重值加1;
根据一状态确定规则确定该读取的数据对应的状态,所述状态确定规则包括:权重值等于零的数据被认为处于可用/可选状态;权重值等于1的寻址方式数据被认为处于暂时状态;在读取的数据未在缓存存储器中,而该读取的数据对应的寻址方式保存在缓存存储器中且处于暂时状态时,如果缓存存储器内不具有处于可用/可选状态的数据,则启动一次权重值压缩,并根据压缩后的权重值按照上面的方式重新确定缓存存储器内的全部数据的状态,权重值压缩指将缓存存储器内的全部数据的权重值除以2后进行取整操作;及
在缓存存储器的空间满时,处于权重值为零的数据在下次需进行缓存存储器替换时被随机选择若干进行替换。
8.如权利要求7所述的数据缓存方法,其特征在于,所述状态确定规则还包括:权重值大于2的数据被认为处于热状态;权重值等于1且未写入主存储器的数据被认为处于第一冷状态;权重值等于1且已写入硬盘的数据被认为处于第二冷状态;系统初始化时,所有缓存存储器内存储的数据的权重值设置为零。
9.如权利要求8所述的数据缓存方法,其特征在于,所述将缓存存储器内读取的数据的权重值加1后,确定该读取的数据对应的状态的具体方法为:若读取的数据之前处于热状态,则权重值加1后仍然大于2,确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值加1后等于2,确定该数据处于热状态;若读取的数据之前处于第二冷状态,则权重值加1等于2后,确定该数据处于热状态;若读取的数据之前处于可用/可选状态,则权重值加1后若未写入硬盘,则确定该数据处于第一冷状态,权重值加1后若已写入硬盘,则确定该数据处于第二冷状态;在读取的数据未在缓存存储器中,而该读取的数据对应的寻址方式保存在缓存存储器中且处于暂时状态时,如果缓存存储器内具有处于可用/可选状态的数据,则随机从处于可用/可选状态的数据中选择若干数据用于替换该读取的数据,并将该读取的数据的权重值设置为2,处于热状态。
10.如权利要求9所述的数据缓存方法,其特征在于,根据所述压缩后的权重值重新确定缓存存储器内的全部数据的状态的具体方法为:若读取的数据之前处于热状态,权重值压缩后权重值仍大于2,则确定该数据仍处于热状态;若读取的数据之前处于第一冷状态,则权重值压缩后为零,则确定需先将该数据保存至硬盘,且确定该数据处于可用/可选状态;若读取的数据之前处于第二冷状态,则权重值压缩后为零,确定该数据处于可用/可选状态;若读取的数据之前处于暂时状态,则权重值压缩后为0,若该数据未写入硬盘,则将该数据写入硬盘后确定该数据处于可用/可选状态,若该数据已写入硬盘,则确定该数据处于可用/可选状态。
CN201310144049.XA 2013-04-24 2013-04-24 数据缓存系统及方法 Active CN104123243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310144049.XA CN104123243B (zh) 2013-04-24 2013-04-24 数据缓存系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310144049.XA CN104123243B (zh) 2013-04-24 2013-04-24 数据缓存系统及方法

Publications (2)

Publication Number Publication Date
CN104123243A CN104123243A (zh) 2014-10-29
CN104123243B true CN104123243B (zh) 2018-08-03

Family

ID=51768660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310144049.XA Active CN104123243B (zh) 2013-04-24 2013-04-24 数据缓存系统及方法

Country Status (1)

Country Link
CN (1) CN104123243B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017117734A1 (zh) * 2016-01-06 2017-07-13 华为技术有限公司 一种缓存管理方法、缓存控制器以及计算机系统
CN106372156A (zh) * 2016-08-30 2017-02-01 福建天晴数码有限公司 数据缓存方法及系统
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232464A (zh) * 2008-02-28 2008-07-30 清华大学 基于时间权参数的p2p实时流媒体缓存替换方法
US8990506B2 (en) * 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
US8527707B2 (en) * 2009-12-25 2013-09-03 Shanghai Xin Hao Micro Electronics Co. Ltd. High-performance cache system and method
CN102207909B (zh) * 2011-05-31 2014-03-26 孟小峰 一种基于代价的闪存数据库缓冲区置换方法
WO2013075341A1 (zh) * 2011-11-26 2013-05-30 华为技术有限公司 缓存文件替换方法、装置及系统

Also Published As

Publication number Publication date
CN104123243A (zh) 2014-10-29

Similar Documents

Publication Publication Date Title
CN104115134B (zh) 用于管理对复合数据存储设备进行访问的方法和系统
CN105117180B (zh) 一种数据存储方法和装置以及固态硬盘
US10558395B2 (en) Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system
CN105339910B (zh) 在混合驱动器中的虚拟nand容量扩展
CN102792284B (zh) 存储器设备耗损均衡技术
CN103959258B (zh) 背景重排序——具有有限开销的预防性的磨损控制机制
CN105917318A (zh) 用于实现基于ssd的i/o高速缓存的系统和方法
KR20170129701A (ko) 캐시 삽입을 위한 기준으로서 데이터의 압축률을 사용하는 것에 의한 스토리지 캐시 성능 향상
CN108710583A (zh) Ssd写缓存区的管理方法、装置、计算机设备及介质
US20100064095A1 (en) Flash memory system and operation method
JP7030942B2 (ja) メモリ装置及びその制御方法
CN104714903A (zh) 存储系统
CN108701070A (zh) 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理
CN104123243B (zh) 数据缓存系统及方法
CN114860785A (zh) 缓存数据处理系统、方法、计算机设备和存储介质
US20140189244A1 (en) Suppression of redundant cache status updates
CN103714010B (zh) 存储设备写入方法及存储设备
CN105630413B (zh) 一种磁盘数据的同步回写方法
US20130173855A1 (en) Method of operating storage device including volatile memory and nonvolatile memory
CN109726147A (zh) 使用数据保护访问带内存储器的设备和方法
CN103019963A (zh) 一种高速缓存的映射方法及存储设备
CN106502584B (zh) 一种提高固态硬盘写缓存的利用率的方法
CN108268391A (zh) 半导体系统及其控制方法
CN106951190A (zh) 数据存储及访问方法、节点和服务器集群
JP6689325B2 (ja) メモリ装置の制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180205

Address after: Haiyun street, Tianjin economic and Technological Development Zone No. 80

Applicant after: Hongfujin Precision Electronics (Tianjin) Co., Ltd.

Address before: 518109 Guangdong city of Shenzhen province Baoan District Longhua Town Industrial Zone tabulaeformis tenth East Ring Road No. 2 two

Applicant before: Hongfujin Precise Industry (Shenzhen) Co., Ltd.

Applicant before: Hon Hai Precision Industry Co., Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: No. 36, North Street, West District, economic and Technological Development Zone, Binhai New Area, Tianjin

Patentee after: Fulian precision electronics (Tianjin) Co.,Ltd.

Address before: No. 80 Haiyun Street, Tianjin Economic and Technological Development Zone, 300457

Patentee before: HONGFUJIN PRECISION ELECTRONICS (TIANJIN) Co.,Ltd.