CN101694639A - 一种计算机数据的缓存方法 - Google Patents
一种计算机数据的缓存方法 Download PDFInfo
- Publication number
- CN101694639A CN101694639A CN200910235723A CN200910235723A CN101694639A CN 101694639 A CN101694639 A CN 101694639A CN 200910235723 A CN200910235723 A CN 200910235723A CN 200910235723 A CN200910235723 A CN 200910235723A CN 101694639 A CN101694639 A CN 101694639A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- modified
- interval
- cache lines
- 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.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种计算机数据的缓存方法,属于计算机系统结构技术领域。本发明方法中,首先定义数据存活区间和消亡区间。通过增加指令,标识出数据存活区间和数据消亡区间的位置。当数据从缓存中被替换出时,如果处于数据消亡区间,即使数据被修改过,也不再将其写回内存,从而有效降低了写内存的次数,缓解了处理器与内存之间的速度差距。
Description
技术领域
本发明涉及一种计算机数据的缓存方法,属于计算机系统结构技术领域。
背景技术
根据摩尔定律,计算机处理器的性能每18至24个月增加一倍,然而,内存的访问速度仅以每年7%-10%的速度增长,远远落后于处理器的增长速度。相对于处理器来说,内存访问延迟以每十年5倍的速度增长,处理器与存储器的差距不断增加,造成了系统结构的失衡,形成了阻碍性能提升的“存储墙”,从而使得内存访问成为整个计算机系统的性能瓶颈。
为了缓解“存储墙”对计算机系统性能的影响,需要对内存访问进行优化。降低内存的访问次数是访存优化的一种方法。Lepak等人通过研究,观察到由于许多写指令写入内存的值都与内存中原有的值相同,因此这些写指令都没有产生实际效果。基于这一观察,Lepak等人提出了沉默存储(silent store)结构。在这种结构中,一个写操作被转换为三个操作,即读操作、比较操作和实际的写操作(如果这个写操作不是沉默的),这样系统就可能减少内存的写操作,但是这种结构同时可能会增加读操作的次数。
发明内容
本发明的目的是提出一种计算机数据的缓存方法,以克服已有数据缓存方法中可能进行无意义的内存写操作的缺点。本发明提出的数据缓存方法降低了内存的访问次数,缓解了处理器和内存之间的速度差距。
本发明提出的计算机数据的缓存方法,包括以下步骤:
(1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间;
(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中;
(1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N;
(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改。
上述缓存方法中,步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下:
(2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中;
(2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;
(2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。
上述缓存方法中,步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤:
(3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。
本发明提出的计算机数据的缓存方法,其优点是:减少了写内存的次数,缓解了处理器与内存之间的速度差距。
附图说明
图1本发明方法中定义的数据存活区间和消亡区间的定义示意图。
具体实施方式
本发明提出的计算机数据的缓存方法,包括以下步骤:
(1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间,如图1所示;
(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中;
(1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N;
(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改。
上述缓存方法中,步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下:
(2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中;
(2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;
(2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。
上述缓存方法中,步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤:
(3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-2)计算机的缓存未两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。
Claims (3)
1.一种计算机数据的缓存方法,其特征在于该方法包括以下步骤:
(1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间;
(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中;
(1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N;
(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改。
2.如权利要求1所述的方法,其特征在于其中所述的步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下:
(2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中;
(2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;
(2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。
3.如权利要求1所述的方法,其特征在于其中所述的步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤:
(3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-2)计算机的缓存未两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;
(3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910235723.9A CN101694639B (zh) | 2009-10-15 | 2009-10-15 | 一种计算机数据的缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910235723.9A CN101694639B (zh) | 2009-10-15 | 2009-10-15 | 一种计算机数据的缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101694639A true CN101694639A (zh) | 2010-04-14 |
CN101694639B CN101694639B (zh) | 2011-06-01 |
Family
ID=42093612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910235723.9A Expired - Fee Related CN101694639B (zh) | 2009-10-15 | 2009-10-15 | 一种计算机数据的缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101694639B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN101968795A (zh) * | 2010-09-03 | 2011-02-09 | 清华大学 | 一种数据块长度可变的文件系统缓存方法 |
CN104268102A (zh) * | 2014-10-10 | 2015-01-07 | 浪潮集团有限公司 | 一种存储服务器采用混合方式写缓存的方法 |
CN105335305A (zh) * | 2015-10-30 | 2016-02-17 | 深圳市申议实业有限公司 | 一种交互式可编程硬件的缓冲机制实现方法及装置 |
CN106708417A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 缓存数据的管理方法及装置 |
CN113342265A (zh) * | 2021-05-11 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
CN115878507A (zh) * | 2023-01-19 | 2023-03-31 | 北京象帝先计算技术有限公司 | 系统级芯片的内存访问方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609177B1 (en) * | 1999-11-12 | 2003-08-19 | Maxtor Corporation | Method and apparatus for extending cache history |
CN100343826C (zh) * | 2003-04-29 | 2007-10-17 | 华为技术有限公司 | 一种实现内存管理的方法 |
CN101510176B (zh) * | 2009-03-26 | 2012-05-30 | 浙江大学 | 通用操作系统对cpu二级缓存访问的控制方法 |
-
2009
- 2009-10-15 CN CN200910235723.9A patent/CN101694639B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968795A (zh) * | 2010-09-03 | 2011-02-09 | 清华大学 | 一种数据块长度可变的文件系统缓存方法 |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN101958834B (zh) * | 2010-09-27 | 2012-09-05 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN104268102A (zh) * | 2014-10-10 | 2015-01-07 | 浪潮集团有限公司 | 一种存储服务器采用混合方式写缓存的方法 |
CN105335305A (zh) * | 2015-10-30 | 2016-02-17 | 深圳市申议实业有限公司 | 一种交互式可编程硬件的缓冲机制实现方法及装置 |
CN105335305B (zh) * | 2015-10-30 | 2018-05-15 | 深圳盛思科教文化有限公司 | 一种交互式可编程硬件的缓冲机制实现方法及装置 |
CN106708417A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 缓存数据的管理方法及装置 |
CN106708417B (zh) * | 2015-11-13 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 缓存数据的管理方法及装置 |
CN113342265A (zh) * | 2021-05-11 | 2021-09-03 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
CN113342265B (zh) * | 2021-05-11 | 2023-11-24 | 中天恒星(上海)科技有限公司 | 缓存管理方法、装置、处理器及计算机装置 |
CN115878507A (zh) * | 2023-01-19 | 2023-03-31 | 北京象帝先计算技术有限公司 | 系统级芯片的内存访问方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101694639B (zh) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101694639B (zh) | 一种计算机数据的缓存方法 | |
WO2008055270A3 (en) | Writing to asymmetric memory | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN101526896B (zh) | 嵌入式处理器的加载/存储单元 | |
ATE526666T1 (de) | Speicheranordnung mit einem befehl für verzögertes schreiben | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
CN103257850B (zh) | 一种基于标志位访问踪迹的指令高速缓冲存储器 | |
CN102681792A (zh) | 一种固态盘内存分区方法 | |
CN103019624A (zh) | 一种相变内存装置 | |
CN111143313B (zh) | 一种提高混合映射算法的日志块读写性能的方法 | |
CN104750621A (zh) | 缓存方法及控制系统 | |
CN101699412B (zh) | 一种计算机事务存储方法 | |
WO2006120408A3 (en) | Memory caching in data processing | |
CN105653466A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN108182169B (zh) | 一种mtd滤波器中高效fft实现方法 | |
US20120233394A1 (en) | Memory controller and a controlling method adaptable to dram | |
CN108664409B (zh) | 坏块管理方法及系统 | |
CN104123243A (zh) | 数据缓存系统及方法 | |
CN103020535A (zh) | 一种带比较功能的数据加解密系统 | |
CN105589912A (zh) | 一种利用mram处理频写文件的方法及存储结构 | |
CN109634583A (zh) | 一种基于SystemC的GPU颜色存储Cache模块的硬件TLM模型及实现结构 | |
US20140059272A1 (en) | Data processing system and method for storage | |
CN108717395A (zh) | 一种降低动态块映射信息占用内存的方法及装置 | |
CN105843360B (zh) | 一种降低指令高速缓冲存储器功耗的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110601 Termination date: 20211015 |