[发明专利]内存数据预取方法和装置有效
申请号: | 201410157970.2 | 申请日: | 2014-04-18 |
公开(公告)号: | CN103914394B | 公开(公告)日: | 2017-06-23 |
发明(设计)人: | 黄帅;王焕东;陈新科;陈厦 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/0862 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 数据 方法 装置 | ||
技术领域
本发明涉及计算机存储技术,尤其涉及一种内存数据预取方法和装置。
背景技术
预取技术是利用处理器访存行为的时间和空间局部性,在处理器发生高速缓冲存储器缺失前预测需要的数据,并提前取回至离高速缓冲存储器较近的位置,在发生高速缓冲存储器缺失时,先查看预取的地址,如果命中则直接返回数据,可以极大的缩小访存延迟,减少存储器缓存缺失引起的流水线停顿,从而提高系统的性能。
为了减小对处理器硬件设计的影响,目前通常在内存控制器中增加流预取模块(stream buffer),其主要组成部分为一个先入先出队列(FIFO,First Input First Output),FIFO一般包含N项,每一项包含一个地址存储单元,一个有效位和一个高速缓冲存储器行的数据,如图1所示的FIFO包含4项,每一项包含一个地址存储单元,一个有效位和一个高速缓存行数据,每当检测到高速缓冲存储器缺失时,stream buffer向内存发出预取命令,以将下一高速缓冲存储器行的数据预取至stream buffer,该预取过程将持续到FIFO填满。
对于多组stream buffer结构,针对数据流的访存请求之间存在访存冲突时,多个访存冲突的访存请求交叉访问内存将导致大量的页打开和页关闭操作,增加内存数据返回时延,同时增加内存功率消耗。
发明内容
本发明提供一种内存数据预取方法和装置,以缩短内存数据返回时延,减少内存功率的消耗。
第一方面,本发明提供一种内存数据预取方法,包括:
向内存发送预取命令;
将N个预取地址分别写入一个N项先入先出队列FIFO的每一项中,其中,N≥1;
从所述内存一次获取存储在所述N个预取地址的N个数据项;
将所述N个数据项存储于所述N项FIFO的每一项中。
在第一方面的第一种可能的实现方式中,所述将N个预取地址分别写入一个N项FIFO的每一项中,包括:
将所述N个预取地址分别写入所述N项FIFO的N个地址存储单元中,所述N个地址存储单元中设有与所述N个预取地址对应的N个地址有效位;并将与所述N个预取地址对应的所述N个地址有效位均置为有效;
相应的,所述将所述N个数据项存储于所述N项FIFO的每一项中,包括:
将所述N个数据项分别存储于所述N项FIFO的N个数据存储单元中,所述N个数据存储单元中设有与所述N个数据项对应的N个数据有效位;并将与所述N个数据项对应的所述N个数据有效位置为有效。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
接收高速缓存缺失命令,所述高速缓存缺失命令中包含缺失地址;
若判断出所述缺失地址与所述N个地址存储单元中的首个预取地址相同,且所述首个预取地址对应的地址有效位为有效,则判定为命中预取数据;
将所述首个预取地址所对应的地址有效位置为无效。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所述首个预取地址所对应的地址有效位置为无效之后,还包括:
若与所述缺失地址相同的所述首个预取地址的地址有效位为无效,且与所述首个预取地址对应的数据项的数据有效位为有效,则将所述数据项返回高速缓冲存储器;
在将所述数据项返回所述高速缓冲存储器后,将所述数据项对应的数据有效位置为无效。
根据第一方面的第二种可能的实现方式,在第四种可能的实现方式中,还包括:
若判断出所述缺失地址与所述N个地址存储单元中的首个预取地址不相同,则判定为没有命中预取数据。
结合第一方面的第二种至第四种可能的实现方式,在第五种可能的实现方式中,所述向内存发送预取命令包括:
判断出所述N个预取地址对应的地址有效位均为无效,且所述N个数据项的对应的数据有效位均为无效时,向所述内存发送所述预取命令。
第二方面,本发明提供一种内存数据预取装置,包括:
发送模块,用于向内存发送预取命令;
写入模块,用于将N个预取地址分别写入一个N项先入先出队列FIFO的每一项中,其中,N≥1;
获取模块,用于从所述内存一次获取存储在所述N个预取地址的N个数据项;
存储模块;用于将所述N个数据项存储于所述N项FIFO的每一项中。
在第二方面的第一种可能的实现方式中,还包括:置位模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410157970.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:控制乙醇生产中的细菌生物膜
- 下一篇:通过超级电子供体的砜转化方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置