CN104808967B - 一种处理器的动态数据预取系统 - Google Patents

一种处理器的动态数据预取系统 Download PDF

Info

Publication number
CN104808967B
CN104808967B CN201510230857.7A CN201510230857A CN104808967B CN 104808967 B CN104808967 B CN 104808967B CN 201510230857 A CN201510230857 A CN 201510230857A CN 104808967 B CN104808967 B CN 104808967B
Authority
CN
China
Prior art keywords
prefetcher
prefetching
algorithm
coprocessor
prefetching algorithm
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
CN201510230857.7A
Other languages
English (en)
Other versions
CN104808967A (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.)
Shenzhen Hechuangyuan Electronics Co ltd
Original Assignee
Yangcheng Institute of 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 Yangcheng Institute of Technology filed Critical Yangcheng Institute of Technology
Priority to CN201510230857.7A priority Critical patent/CN104808967B/zh
Publication of CN104808967A publication Critical patent/CN104808967A/zh
Application granted granted Critical
Publication of CN104808967B publication Critical patent/CN104808967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种处理器的动态数据预取系统,该系统包括处理器核、内存、高速缓存、数据预取单元和预取协处理器,其中数据预取单元包括两个预取器,一个是当前有效的预取器,另一个是备用的处于休眠状态的预取器,两个预取器的状态可以互相转换;预取协处理器在满足预定条件后,更换当前工作的预取算法。

Description

一种处理器的动态数据预取系统
技术领域
本发明涉及计算机处理器设计领域,提供了一种处理器中的动态数据预取系统,用于根据当前数据预取的状态,动态地变更数据预取算法和策略,从而可以根据具体情况加速数据预取速度。
背景技术
在计算机执行程序时,程序数据通常先存储于内存中,然后处理器再从内存中读取数据,从而执行相关指令。但是,现有技术中的处理器性能要明显快于内存的访存速度,并且从发展趋势看,处理器和内存的性能差距正在越拉越大,因此内存的访存速度严重制约了处理器的性能。
基于上述矛盾,目前的计算机都在处理器中构建一定容量的高速缓存,用来存放处理器最近使用的数据,与外部的内存相比,高速缓存的访存速度要快很多,在降低内存访问次数的同时降低访问内存的平均时延。随着内存和处理器的性能差距越来越大,研究人员对高速缓存进行了各种改进和优化。归根结底,提升处理器访存性能的主要方法是降低访存的平均时延和减少高速缓存缺失的次数。
数据预取是一种隐藏存储访问时延的有效方法,数据预取利用了数据之间时间和空间的相关性,在发生高速缓存缺失之前就发出访问内存的请求,把数据提前存入高速缓存,通过将访问内存的时间部分隐藏在处理器正常处理时间中,以减少处理器流水线因访存停顿的时间,从而提高计算机性能。
研究人员对于数据预取的多年研究,发展出了多种数据预取的算法,例如流预取算法、指针预取算法等等,这些算法各有利弊,都只在某些条件下具有优势。但是,对于一个具体处理器而言,其通常采用的是其中一个固定的数据预取算法,这一固定的算法也仅仅在某些条件下具有优势,在其他条件下,处理器的性能就开始下降。
发明内容
针对现有技术中的问题,本发明提出了一种处理器的动态数据预取系统,该系统根据预设的策略条件,动态地更换处理器当前的数据预取算法,从而在不同条件下,都能够提高处理器的访问速度,并提高处理器性能。
本发明的处理器的动态数据预取系统包括处理器核、内存、高速缓存、数据预取单元和预取协处理器,其中
数据预取单元包括两个预取器,其中一个是当前有效的处于工作状态的预取器,另一个是备用的处于休眠状态的预取器,两个预取器的状态可以互相转换;每个预取器都具有一个预取算法存储器,用于存储该预取器所使用的预取算法程序,当前有效的预取器通过执行其使用的预取算法程序,从内存中读取预取的数据,将该数据存入高速缓存中;
预取协处理器与处理器核和高速缓存连接,监控处理器核对高速缓存的访问情况,在满足预定条件后,预取协处理器做出判断,确定更换当前工作的预取算法,将新的预取算法存入备用的预取器的预取算法存储器,通知当前有效的预取器停止工作,进入休眠状态,通知备用的预取器进入工作状态,开始执行数据预取。
更换预取算法的时机也非常重要,因此我们在此系统中,进一步提出了更换预取算法的条件。
附图说明
图1:本发明的动态数据预取系统
图2:预取算法表
具体实施方式
程序员在编写程序时,会根据当前的应用背景或者个人的编写习惯等因素采用不同的数据结构和内存分配管理方式,从而呈现出不同的数据访问特征。这样的背景,使得处理器单一的预取机制很难适应各种情况下的数据访问特征,因此需要针对不同的数据访问特征提供不同的数据预取算法。本领域中已经提出了许多种数据预取算法,并且通过理论研究和实际应用,这些数据预取算法所适应的数据访问特征也很清楚,从而可以通过一定策略条件的判断,确定当前处理器应当使用哪种数据预取算法。
图1是本发明的动态数据预取系统,该系统包括处理器核、内存、高速缓存、数据预取单元和预取协处理器。其中数据预取单元包括两个预取器:预取器A和预取器B,这两个预取器其中一个是当前有效的处于工作状态的预取器,另一个是备用的处于休眠状态的预取器,两个预取器的状态可以互相转换,每个预取器都具有一个预取算法存储器,用于存储该预取器所使用的预取算法程序,这里的预取算法程序可以是本领域中任意一种预取算法程序,例如流预取算法、指针预取算法等等。当前有效的预取器通过执行其使用的预取算法程序,从内存中读取预取的数据,然后存入高速缓存中。
预取协处理器也具有一个非易失性存储器,其中存储了一张预取算法表,如图2所示,该算法表中具有N种预取算法,每种预取算法都具有优先级和其相应的策略条件,预取算法可以是本领域中任意一种预取算法程序。该预取协处理器在制造出厂时预置了一张默认的预取算法表,厂家可以在需要时提供该预取算法表的更新版本,通过固件更新程序,对预取协处理器中的预取算法表进行升级更新。在另一个实施例中,该算法表也可以存储在其他外部存储器(例如硬盘)上,当该预取协处理器启动时,从上述存储器中读取该算法表。
预取协处理器与处理器核和高速缓存连接,监控处理器核对高速缓存的访问情况,在满足预定条件后,预取协处理器确定更换预取算法,更换预取算法的过程如下:
假设预取器A是当前有效的预取器,正在执行数据预取功能,预取器B是备用的预取器,处于休眠状态中。
1)预取协处理器根据预取算法表中存储的N个算法的策略条件,按照优先级值由低到高的顺序(即从优先级1到优先级N的顺序),计算相应的策略条件是否得到满足,如果N个策略条件都没有得到满足,则算法结束,不更换预取算法;否则,一旦计算过程中遇到某一个策略条件得到了满足(假设是优先级为k的策略条件,其对应的预取算法是预取算法K),则停止该优先级之后的策略条件计算,执行步骤2;
2)预取协处理器唤醒预取器B,通知其准备更换预取算法;
3)预取协处理器将预取算法K发送给预取器B,预取器B将其存储在预取器B的预取算法存储器中,并删除预取算法存储器中原有的预取算法;
4)预取协处理器通知预取器A停止执行数据预取,进入休眠状态;
5)预取协处理器通知预取器B开始执行数据预取,从而预取器B成为当前有效的预取器。
通过上述步骤,预取协处理器将新的预取算法存入备用的预取器,并切换当前有效的预取器,从而完成了预取算法的变更。
更换预取算法的时机:
预取协处理器监控处理器核对高速缓存的访问情况,在满足预定条件后,预取协处理器做出判断,确定更换预取算法,这里的预定条件也很重要,直接影响到处理器的访存性能。
我们对更换时机进行了深入研究,考虑了大量可能的方案,经过大量的实践对比,从中选出了一种最佳的方案。根据该方案,本发明对更换时机的判断主要基于对高速缓存命中率的统计分析,通过监控,预取协处理器可以获得过去一段时间内的高速缓存命中率,由于各种因素的影响,高速缓存命中率可能出现大的起伏,因此并不能简单地认为命中率一下降就必须更换算法,做出这一判断需要谨慎。
本发明具体的更换条件判断方法如下:
1)预取协处理器在启动后,每隔T秒统计一次高速缓存命中率,得到过去T秒的高速缓存命中率PT,过去2T秒的高速缓存命中率P2T,过去3T秒的高速缓存命中率P3T,过去4T秒的高速缓存命中率P4T
2)判断是否PT小于阈值P,如果PT小于P,则认为命中率过低,需要更换预取算法,判断过程结束;否则,继续执行以下步骤;
3)判断以下三个式子是否都成立:
PT<0.8P2T
P2T<0.7P3T
P3T<0.6P4T
如果上述三个式子都成立,则判断需要更换预取算法;如果有一个式子不成立,则判断目前还不需要更换预取算法。
上述时间T是一个预先设置的时间值,优选的,T=5。阈值P也是一个预先设置的值,其具体数值与高速缓存的大小相关。在处理器制造出厂时,由厂家预先设置好T和P的值,并且可以通过固件更新程序进行修改。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

Claims (6)

1.一种处理器的动态数据预取系统,其特征在于:该系统包括处理器核、内存、高速缓存、数据预取单元和预取协处理器,其中
数据预取单元包括两个预取器,其中一个是当前有效的处于工作状态的预取器,另一个是备用的处于休眠状态的预取器,两个预取器的状态可以互相转换;每个预取器都具有一个预取算法存储器,用于存储该预取器所使用的预取算法程序,当前有效的预取器通过执行其使用的预取算法程序,从内存中读取预取的数据,将该数据存入高速缓存中;
预取协处理器与处理器核和高速缓存连接,监控处理器核对高速缓存的访问情况,在满足预定条件后,预取协处理器做出判断,确定更换当前工作的预取算法,将新的预取算法存入备用的预取器的预取算法存储器,通知当前有效的预取器停止工作,进入休眠状态,通知备用的预取器进入工作状态,开始执行数据预取;
其中预取协处理器包括一个非易失性存储器,该非易失性存储器中存储了预取算法表;
其中所述预取算法表中具有N种预取算法,每种预取算法都具有优先级,以及其适用的策略条件;所述预取算法可以是任意一种预取算法程序;
其中所述预取协处理器基于对高速缓存命中率的统计分析判断是否更换预取算法,具体判断步骤如下:
1)预取协处理器每隔T秒,统计一次高速缓存命中率,得到过去T秒的高速缓存命中率PT,过去2T秒的高速缓存命中率P2T,过去3T秒的高速缓存命中率P3T,过去4T秒的高速缓存命中率P4T
2)判断是否PT小于阈值P,如果PT小于P,则认为命中率过低,需要更换预取算法,判断过程结束;否则,继续执行以下步骤;
3)判断以下三个式子是否都成立:
PT<0.8P2T
P2T<0.7P3T
P3T<0.6P4T
如果上述三个式子都成立,则判断需要更换预取算法;如果有一个式子不成立,则判断目前还不需要更换预取算法;
其中,T是一个预先设置的时间值,阈值P也是一个预先设置的值,P的具体数值与高速缓存的大小相关。
2.如权利要求1所述的系统,其中该预取协处理器在制造出厂时已经预置了默认的预取算法表,并且可以通过固件更新程序,对所述预取算法表进行升级更新。
3.如权利要求1-2任意一项所述的系统,其中所述预取算法表存储在外部存储器上,当预取协处理器启动时,从所述外部存储器中读取该算法表到所述非易失性存储器中。
4.如权利要求3所述的系统,其中所述预取协处理器更换预取算法的具体步骤如下,假设预取器A是当前有效的预取器,预取器B是备用的预取器:
1)预取协处理器根据预取算法表中存储的N个算法的策略条件,按照优先级值由低到高的顺序,计算相应的策略条件是否得到满足,如果N个策略条件都没有得到满足,则算法结束,不更换预取算法;否则,一旦计算过程中遇到某一个策略条件得到了满足,假设是优先级为k的策略条件,其对应的预取算法是预取算法K,则停止该优先级之后的策略条件计算,继续执行步骤2;
2)预取协处理器唤醒预取器B,通知其准备更换预取算法;
3)预取协处理器将预取算法K发送给预取器B,预取器B将其存储在预取器B的预取算法存储器中,并删除预取算法存储器中原有的预取算法;
4)预取协处理器通知预取器A停止执行数据预取,进入休眠状态;
5)预取协处理器通知预取器B开始执行数据预取,从而预取器B成为当前有效的预取器。
5.如权利要求1所述的系统,其中在处理器制造出厂时,由厂家预先设置好T和P的值,并且可以通过固件更新程序修改T和P的值。
6.如权利要求5所述的系统,其中T=5。
CN201510230857.7A 2015-05-07 2015-05-07 一种处理器的动态数据预取系统 Active CN104808967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510230857.7A CN104808967B (zh) 2015-05-07 2015-05-07 一种处理器的动态数据预取系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510230857.7A CN104808967B (zh) 2015-05-07 2015-05-07 一种处理器的动态数据预取系统

Publications (2)

Publication Number Publication Date
CN104808967A CN104808967A (zh) 2015-07-29
CN104808967B true CN104808967B (zh) 2017-07-04

Family

ID=53693824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510230857.7A Active CN104808967B (zh) 2015-05-07 2015-05-07 一种处理器的动态数据预取系统

Country Status (1)

Country Link
CN (1) CN104808967B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017031637A1 (zh) * 2015-08-21 2017-03-02 华为技术有限公司 一种内存访问方法、装置和系统
CN107544937A (zh) * 2016-06-27 2018-01-05 深圳市中兴微电子技术有限公司 一种协处理器、数据写入方法和处理器
CN110765034B (zh) 2018-07-27 2022-06-14 华为技术有限公司 一种数据预取方法及终端设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483406B2 (en) * 2013-03-11 2016-11-01 Via Technologies, Inc. Communicating prefetchers that throttle one another
US9251083B2 (en) * 2013-03-11 2016-02-02 Via Technologies, Inc. Communicating prefetchers in a microprocessor
CN103226521B (zh) * 2013-04-18 2016-03-02 浙江大学 多模式数据预取装置及其管理方法

Also Published As

Publication number Publication date
CN104808967A (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
US6983356B2 (en) High performance memory device-state aware chipset prefetcher
US7958316B2 (en) Dynamic adjustment of prefetch stream priority
US8140768B2 (en) Jump starting prefetch streams across page boundaries
US10073787B2 (en) Dynamic powering of cache memory by ways within multiple set groups based on utilization trends
US8473680B1 (en) Hotspot detection and caching for storage devices
EP2612248B1 (en) Method and apparatus for fuzzy stride prefetch
CN101689147B (zh) 数据预取调节
US7401188B2 (en) Method, device, and system to avoid flushing the contents of a cache by not inserting data from large requests
US7856533B2 (en) Probabilistic method for performing memory prefetching
US8156287B2 (en) Adaptive data prefetch
US6820173B1 (en) Data prefetcher with predictor capabilities
US20070005934A1 (en) High performance chipset prefetcher for interleaved channels
CN102163144A (zh) 嵌入式处理器的硬件数据预取方法
TW201931130A (zh) 使用動態預取深度之多行資料預取
CN104808967B (zh) 一种处理器的动态数据预取系统
Lewis et al. An automatic prefetching and caching system
US8856453B2 (en) Persistent prefetch data stream settings
TW201621671A (zh) 在多記憶體存取代理器動態更新硬體預取特性為互斥或共享的裝置與方法
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US11204878B1 (en) Writebacks of prefetched data
CN109196487A (zh) 向上/向下预取器
US20090019260A1 (en) Mass prefetching method for disk array
WO2021059198A1 (en) Circuitry and method
Peng et al. Cross-layer dynamic prefetching allocation strategies for high-performance multicores
US20240028517A1 (en) Arithmetic processing apparatus and arithmetic processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180723

Address after: 224051 B9 intelligent terminal Industrial Park, Yancheng hi tech Development Zone, Jiangsu

Patentee after: JIANGSU JUNHOU TECHNOLOGY Co.,Ltd.

Address before: 224051 middle road of hope Avenue, Yancheng City, Jiangsu Province, No. 1

Patentee before: YANCHENG INSTITUTE OF TECHNOLOGY

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230619

Address after: 518100, 3rd Floor, Building C5, Hengfeng Industrial City, Hezhou Community, Xixiang Street, Bao'an District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Hechuangyuan Electronics Co.,Ltd.

Address before: 224051 B9 intelligent terminal Industrial Park, Yancheng hi tech Development Zone, Jiangsu

Patentee before: JIANGSU JUNHOU TECHNOLOGY Co.,Ltd.