CN102831078B - 一种cache中提前返回访存数据的方法 - Google Patents

一种cache中提前返回访存数据的方法 Download PDF

Info

Publication number
CN102831078B
CN102831078B CN201210274732.0A CN201210274732A CN102831078B CN 102831078 B CN102831078 B CN 102831078B CN 201210274732 A CN201210274732 A CN 201210274732A CN 102831078 B CN102831078 B CN 102831078B
Authority
CN
China
Prior art keywords
cache
data
return
next stage
returned
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
CN201210274732.0A
Other languages
English (en)
Other versions
CN102831078A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210274732.0A priority Critical patent/CN102831078B/zh
Publication of CN102831078A publication Critical patent/CN102831078A/zh
Application granted granted Critical
Publication of CN102831078B publication Critical patent/CN102831078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种cache中提前返回访存数据的方法,其流程为:(1)在核发出访存请求;(2)第一遍走cache流水线,发现cache不命中,则会向下一级cache或者存控发送读请求;(3)下一级cache和存控执行读操作,返回数据给cache;(4)将数据返回给核;(5)将响应返回的数据填充到cache。本发明能够大大提高访存速度、减小硬件开销。

Description

一种cache中提前返回访存数据的方法
技术领域
本发明主要涉及到多核微处理器中的cache流水线设计领域,特指一种cache中提前返回访存数据的方法。
背景技术
在现代微处理器设计中,它的存储系统往往采用cache来减小访存延迟。在cache处理的访存指令中,主要包括load和store两类指令,其中处理器的执行对load类指令的延迟更加敏感。cache中如果load命中,则很快就能返回数据,如果不命中,则会有较长的延时。在高效微处理器设计中,为了使命中的访存指令早点返回,往往采用较短流水线,不命中的指令需要多次通过流水线才能完成,而多遍执行将导致不命中访存指令的执行时间过长。
如图1所示,为现有技术中cache不命中时的操作流程:1.核发出访存请求;2.第一遍走cache流水线,如发现cache不命中,就向下一级cache或者存控发送读请求;3.下一级cache和存控执行读操作,返回数据给cache;4.将响应返回的数据填充到cache;5.完成填充后,访存指令再走一遍流水线,直到命中,读取cache中的数据;6.将数据返回给核。
即,当第一遍发生不命中,就向存控(存储控制器)或者下一级cache发送读请求,随后如果没有空闲的Cache行,则发生替换;选择Cache中已经存在的一个Cache行写回内存,然后等存控或者下一级cache返回数据后,对cache进行填充,填充完以后重走流水线读出/写入数据,然后将数据或者Ack返回给核。在短流水线的cache中,不命中的访存请求至少走了三遍流水线,导致Cache不命中的访存延迟很大。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够大大提高访存速度、减小硬件开销的cache中提前返回访存数据的方法。
为解决上述技术问题,本发明采用以下技术方案:
一种cache中提前返回访存数据的方法,其流程为:
(1)在核发出访存请求;
(2)第一遍走cache流水线,发现cache不命中,则会向下一级cache或者存控发送读请求;
(3)下一级cache和存控执行读操作,返回数据给cache;
(4)将数据返回给核;
(5)将响应返回的数据填充到cache。
作为本发明的进一步改进:
首先在Cache中设置缓冲区MB,该缓冲区MB是一个CAM结构,它包含一个ID号和控制信息两个域;当核向cache发出访存请求时,会将没有命中的指令存放在缓冲区MB中,同时被存储的还有指令流经流水线所记录的需要返回的控制信息,它的ID域是cache向下一级cache发出的请求的ID号;
所述步骤(3)中,下一级cache的响应报文返回时,会根据响应报文的ID号查找缓冲区MB,从中读出缓冲区MB中的对应ID的控制信息,将响应报文的数据和读出的控制信息拼合成返回报文,返回给核。
与现有技术相比,本发明的优点在于:本发明的cache中提前返回访存数据的方法,原理简单、操作简便,能够解决不命中指令的执行时间过长的问题,从而大大提高了访存速度、减小了硬件开销。
附图说明
图1是现有技术中cache不命中时的操作流程示意图。
图2是本发明的流程示意图。
图3是本发明中cache返回报文的组装示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图2所示,当cache不命中时,本发明cache中提前返回访存数据的方法的流程为:
1.在核发出访存请求;
2.第一遍走cache流水线,发现cache不命中,则会向下一级cache或者存控发送读请求;
3.下一级cache和存控执行读操作,返回数据给cache;
4.将数据返回给核;
5.将响应返回的数据填充到cache。
即,当访存指令流经第一遍流水线时,记录响应的地址及控制信息,当数据从存控(MCU)或者下一级Cache返回时,会将数据立即返回给发出访问请求的核,而后将数据填充到cache。这样,就在数据/Ack返回过程中避免了后面的两遍流水线,从而大大提高了访存速度。在该数据返回,一直到数据填充到Cache中的时间段内,后续的指令需要修正其控制信息。
在具体应用实例中,本发明的具体流程为:
1、在Cache中设置缓冲区MB,该缓冲区MB是一个CAM结构,它包含一个ID号和控制信息两个域。核向cache发出访存请求时,会将没有命中的指令存放在缓冲区MB中,同时被存储的还有该指令流经流水线所记录的需要返回的控制信息,其ID域是cache向下一级cache发出的请求的ID号。
2、当下一级cache的响应报文返回时,会根据响应报文的ID号查找缓冲区MB,从中读出缓冲区MB中的对应ID的控制信息,将响应报文的数据和读出的控制信息拼合成返回报文,返回给核。
3、等待合适的时机将响应报文的数据填充到Cache。
如图3所示,为本发明具体应用实例中cache返回报文的组装示意图。在缓冲区MB中设置了CAM,在CAM中存放发出请求的ID号和cache返回报文所需要的控制信息。当下一级cache返回ID为2的响应报文时,会根据ID号读出控制信息control2,再与响应报文中的数据data2拼装成cache返回报文,将该报文返回给核。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (2)

1.一种cache中提前返回访存数据的方法,其特征在于,流程为:
(1)核发出访存请求;
(2)第一遍经过cache流水线,发现cache不命中,则会向下一级cache或者存储控制器发送读请求;当访存指令流经第一遍流水线时,记录响应的地址及控制信息;
(3)下一级cache和存控执行读操作,返回数据给cache;
(4)将数据返回给核;
(5)将响应返回的数据填充到cache。
2.根据权利要求1所述的cache中提前返回访存数据的方法,其特征在于:
首先在cache中设置缓冲区MB,该缓冲区MB是一个CAM结构,它包含一个ID号和控制信息两个域;当核向cache发出访存请求时,会将没有命中的指令存放在缓冲区MB中,同时被存储的还有指令流经流水线所记录的需要返回的控制信息,它的ID域是cache向下一级cache发出的请求的ID号;
所述步骤(3)中,下一级cache的响应报文返回时,会根据响应报文的ID号查找缓冲区MB,从中读出缓冲区MB中的对应ID的控制信息,将响应报文的数据和读出的控制信息拼合成返回报文,返回给核。
CN201210274732.0A 2012-08-03 2012-08-03 一种cache中提前返回访存数据的方法 Active CN102831078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210274732.0A CN102831078B (zh) 2012-08-03 2012-08-03 一种cache中提前返回访存数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210274732.0A CN102831078B (zh) 2012-08-03 2012-08-03 一种cache中提前返回访存数据的方法

Publications (2)

Publication Number Publication Date
CN102831078A CN102831078A (zh) 2012-12-19
CN102831078B true CN102831078B (zh) 2015-08-26

Family

ID=47334224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210274732.0A Active CN102831078B (zh) 2012-08-03 2012-08-03 一种cache中提前返回访存数据的方法

Country Status (1)

Country Link
CN (1) CN102831078B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302374B (zh) 2015-06-26 2019-08-16 深圳市中兴微电子技术有限公司 一种用于提高表项访问带宽和原子性操作的装置及方法
CN110889147B (zh) * 2019-11-14 2022-02-08 中国人民解放军国防科技大学 一种利用填充缓存抵御Cache边信道攻击的方法
CN113778526B (zh) * 2021-11-12 2022-02-22 北京微核芯科技有限公司 一种基于Cache的流水线的执行方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
CN1252143A (zh) * 1997-12-22 2000-05-03 皇家菲利浦电子有限公司 附加寄存器减少超高速缓存再充填期间的cpu空闲周期
US6526485B1 (en) * 1999-08-03 2003-02-25 Sun Microsystems, Inc. Apparatus and method for bad address handling
CN101013401A (zh) * 2006-02-03 2007-08-08 国际商业机器公司 用于预取数据线的方法和处理器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080189487A1 (en) * 2007-02-06 2008-08-07 Arm Limited Control of cache transactions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
CN1252143A (zh) * 1997-12-22 2000-05-03 皇家菲利浦电子有限公司 附加寄存器减少超高速缓存再充填期间的cpu空闲周期
US6526485B1 (en) * 1999-08-03 2003-02-25 Sun Microsystems, Inc. Apparatus and method for bad address handling
CN101013401A (zh) * 2006-02-03 2007-08-08 国际商业机器公司 用于预取数据线的方法和处理器

Also Published As

Publication number Publication date
CN102831078A (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN103856567B (zh) 基于Hadoop分布式文件系统的小文件存储方法
CN103136121B (zh) 一种固态盘的缓存管理方法
CN101996250B (zh) 一种基于Hadoop的海量流数据存储和查询方法及系统
CN103678169B (zh) 一种高效利用固态盘缓存的方法和系统
US11210229B2 (en) Method, device and computer program product for data writing
CN102831088A (zh) 基于混合存储器的数据迁移方法和装置
CN103885728A (zh) 一种基于固态盘的磁盘缓存系统
WO2012174888A1 (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
CN102207916A (zh) 一种基于指令预取的多核共享存储器控制设备
CN104765575A (zh) 信息存储处理方法
CN102521419A (zh) 分级存储的实现方法和系统
CN102158349A (zh) 一种日志管理装置及方法
CN101344812B (zh) 一种基于嵌入式系统的磁盘动态电源管理方法
CN102831078B (zh) 一种cache中提前返回访存数据的方法
CN103916459A (zh) 一种大数据归档存储系统
CN104391653A (zh) 一种基于数据块的高速缓存设计方法
CN109117386A (zh) 一种网络远程读写二级存储的系统及方法
CN102779098B (zh) 混合缓存的协同式自适应预取方法、装置和系统
CN102841894A (zh) 一种文件分配表的数据存储方法
CN103150268A (zh) 一种cdp中的块级数据捕获方法
CN105260139A (zh) 一种磁盘管理方法以及系统
CN102929935A (zh) 一种基于事务的大容量数据读写方法
CN101221465A (zh) 用于降低硬盘功耗的数据缓冲区实现方法
CN102521161B (zh) 一种数据的缓存方法、装置和服务器
CN102567248A (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