[发明专利]数据预取方法和内存控制器有效
申请号: | 201710343796.4 | 申请日: | 2017-05-16 |
公开(公告)号: | CN108874691B | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 刘天义;章隆兵;肖俊华;沈海华 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
主分类号: | G06F12/0862 | 分类号: | G06F12/0862 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 宋扬;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 方法 内存 控制器 | ||
本发明提供一种数据预取方法和内存控制器,其中,数据预取方法包括:接收高速缓冲存储器发送的第一访存请求,第一访存请求包括加载地址;判断第一访存请求是否还包括链式数据预取标识,链式数据预取标识指示了加载地址中存储的数据为指针,指针指向链式数据;若第一访存请求包括链式数据预取标识,则根据加载地址获取指针;将指针返回至高速缓冲存储器;根据指针预取链式数据,并将链式数据存储在预取结果缓冲器中。本发明提供的数据预取方法,提高了链式数据预取的效率和准确率,缩短了链式数据预取访问时延。
技术领域
本发明涉及计算机技术领域的处理器设计,尤其涉及一种数据预取方法和内存控制器。
背景技术
现代处理器普遍采用多级高速缓存结构,以弥补处理器与主储存器之间的速度差距。为了进一步提高处理器的执行效率和数据吞吐率,通常采用数据预取技术。该技术将处理器随后要处理的数据提前放置在高速缓存中,以减少临时访问数据时,需要的较长延迟。
目前市场上大多数的处理器中,数据预取通常采用顺序预取和跨步预取技术。顺序预取是指一个接一个地连续读取数据的预取方法,例如读取:地址1的数据、地址2的数据、地址3的数据....。跨步预取是指按照一定的规律读取数据的预取方法,例如读取:地址1的数据、地址3的数据、地址5的数据…。顺序预取和跨步预取多应用于提升数据局部性较好或者访存模式比较规律的应用程序的访存性能。数据的空间局部性较好,则数据在存储器中的存放方式是连续的或者是有规律的。因此,对于这些数据集,采用顺序预取和跨步预取的方式可以达到很好的预取效率和预取精度。
但是,对于基于链式数据结构(Linked Data Structure,简称LDS)(例如指针,链表,栈,图)等的不规则数据集,物理存储上表现为不连续或者根本没有规律性。这种情况下,顺序预取和跨步预取就无法应对这种非规则的访存模式,因此导致传统的预取方法对链式数据结构的预取效率和准确率较低、预取效果往往很差。
发明内容
本发明提供一种数据预取方法和内存控制器,缩短了链式数据预取访问时延,提高了链式数据预取的效率和准确率。
本发明提供的数据预取方法,包括:
接收高速缓冲存储器发送的第一访存请求,所述第一访存请求包括加载地址;所述第一访存请求指示向所述高速缓冲存储器返回所述加载地址中存储的数据;
判断所述第一访存请求是否还包括链式数据预取标识,所述链式数据预取标识指示了所述加载地址中存储的数据为指针,所述指针指向链式数据;
若所述第一访存请求包括所述链式数据预取标识,则根据所述加载地址获取所述指针,并将所述指针返回至所述高速缓冲存储器;
根据所述指针预取所述链式数据,并将所述链式数据存储在预取结果缓冲器中。
本发明提供的内存控制器,包括:
接收模块,用于接收高速缓冲存储器发送的第一访存请求,所述第一访存请求包括加载地址;所述第一访存请求指示向所述高速缓冲存储器返回所述加载地址中存储的数据;
处理模块,用于判断所述第一访存请求是否还包括链式数据预取标识,所述链式数据预取标识指示了所述加载地址中存储的数据为指针,所述指针指向链式数据;若所述第一访存请求包括所述链式数据预取标识,则根据所述加载地址获取所述指针;
发送模块,用于将所述指针返回至所述高速缓冲存储器;
预取模块,用于根据所述指针预取所述链式数据,并将所述链式数据存储在预取结果缓冲器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710343796.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据预取的实现方法和处理器
- 下一篇:空间存储器流传输置信机制
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置