CN101694639A - 一种计算机数据的缓存方法 - Google Patents

一种计算机数据的缓存方法 Download PDF

Info

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
Application number
CN200910235723A
Other languages
English (en)
Other versions
CN101694639B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN200910235723.9A priority Critical patent/CN101694639B/zh
Publication of CN101694639A publication Critical patent/CN101694639A/zh
Application granted granted Critical
Publication of CN101694639B publication Critical patent/CN101694639B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。
CN200910235723.9A 2009-10-15 2009-10-15 一种计算机数据的缓存方法 Expired - Fee Related CN101694639B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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二级缓存访问的控制方法

Cited By (11)

* Cited by examiner, † Cited by third party
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