一种数据预取方法及终端设备与流程

文档序号:19879088发布日期:2020-02-08 06:46阅读:来源:国知局

技术特征:

1.一种终端设备,其特征在于,所述终端设备包括cpu核组、至少一级缓存、预取器和存储器,其中,

所述cpu核组,用于向所述至少一级缓存的第一缓存下发数据访问请求,所述数据访问请求中携带有第一地址,所述第一地址为所述cpu核组当前需要访问的数据在所述存储器中的地址;

所述预取器,用于根据第一预取算法、所述第一地址和历史数据访问请求,生成第一预取地址;根据所述第一预取地址从所述存储器中与所述第一预取地址对应的数据加载到所述第一缓存中。

2.如权利要求1所述的终端设备,其特征在于,所述预取器,用于根据第一预取算法、所述第一地址和历史访问请求生成第一预取地址,包括:

所述预取器,用于根据所述第一预取算法和历史数据访问请求中携带的地址,生成第一地址偏移量;

所述预取器,用于根据所述第一地址偏移量和所述第一地址生成所述第一预取地址。

3.如权利要求1或2所述的终端设备,其特征在于,所述第一缓存为所述至少一级缓存中的最后一级缓存。

4.如权利要求1-3任一所述的终端设备,其特征在于,所述至少一级缓存包括两级缓存,所述第一缓存为所述两级缓存中的二级缓存;

所述cpu核组,用于向所述至少一级缓存的第一缓存下发数据访问请求,包括:

所述cpu核组,用于向所述两级缓存中的一级缓存下发数据访问请求;其中,所述一级缓存的缓存控制器,用于确定一级缓存中没有与第一地址相对应的数据时,将所述数据访问请求发送给所述二级缓存;

或者

所述cpu核组,用于向所述至少一级缓存的第一缓存下发数据访问请求,包括:

所述cpu核组,用于向所述两级缓存中的一级缓存下发数据访问请求;其中,所述一级缓存的缓存控制器,用于确定一级缓存中没有与第一地址相对应的数据时,向所述cpu核组反馈响应信息;

所述cpu核组,在接收到所述响应信息之后,向所述两级缓存中的二级缓存下发所述数据访问请求。

5.如权利要求1-4任一所述的终端设备,其特征在于,所述预取器存储有多种预取算法,所述预取器根据所述终端设备当前运行的应用程序从所述多种预取算法中确定所述第一预取算法。

6.如权利要求1-4任一所述的终端设备,其特征在于,所述预取器根据数据预取时的命中率或未命中率确定所述第一预取算法;其中,所述命中率为预取数据中被所述cpu核组访问的数据占所述预取数据的比例,所述未命中率为所述预取数据中被未被所述cpu核组访问的数据占所述预取数据的比例。

7.如权利要求1-6任一所述的终端设备,其特征在于,所述预取器中有n个预取算法,其中每个预取算法在一个周期内生效,所述预取器还用于:

在n个周期中的每一个周期内,根据在所述每一个周期内生效的预取算法进行数据预取;

确定所述n个周期中每一个周期内生效的预取算法进行数据预取的n个第一命中率;

确定所述n第一命中率中最大的第一命中率,确定所述最大的第一命中率对应的预取算法为所述第一预取算法;

其中,所述第一命中率为所述预取器根据一个周期内生效的预取算法将预取数据存储到所述第一缓存后,所述预取数据中被所述cpu核组访问的数据占所述预取数据的比例。

8.如权利要求1-7任一所述的终端设备,其特征在于,所述存储器为ddrsdram。

9.一种数据预取的方法,其特征在于,所述方法包括:

向所述至少一级缓存的第一缓存下发数据访问请求,所述数据访问请求中携带有第一地址,所述第一地址为所述cpu核组当前需要访问的数据在所述存储器中的地址;

根据第一预取算法、所述第一地址和历史数据访问请求,生成第一预取地址;

根据所述第一预取地址从所述存储器中将与所述第一预取地址对应的数据加载到所述第一缓存中。

10.如权利要求9所述的方法,其特征在于,所述根据第一预取算法、所述第一地址和历史访问请求生成第一预取地址,包括:

根据所述第一预取算法和所述历史数据访问请求中携带的地址,生成第一地址偏移量;

根据所述第一地址偏移量和所述第一地址生成所述第一预取地址。

11.如权利要求9或10所述的方法,其特征在于,所述第一缓存为所述至少一级缓存中的最后一级缓存。

12.如权利要求9-11任一所述的方法,其特征在于,若所述至少一级缓存包括两级缓存,所述第一缓存为所述两级缓存中的二级缓存;

向所述至少一级缓存的第一缓存下发数据访问请求,包括:

向所述两级缓存中的一级缓存下发数据访问请求;其中,所述一级缓存的缓存控制器,用于确定一级缓存中没有与第一地址相对应的数据时,将所述数据访问请求发送给所述二级缓存;

或者

向所述至少一级缓存的第一缓存下发数据访问请求,包括:

向所述两级缓存中的一级缓存下发数据访问请求;其中,所述一级缓存的缓存控制器,用于确定一级缓存中没有与第一地址相对应的数据时,生成响应信息;

基于所述响应信息,向所述两级缓存中的二级缓存下发所述数据访问请求。

13.如权利要求9-12任一所述的方法,其特征在于,在根据第一预取算法、所述第一地址和历史数据访问请求,生成第一预取地址之前,所述方法还包括:

根据终端设备当前运行的应用程序从所述多种预取算法中确定所述第一预取算法。

14.如权利要求9-13任一所述的方法,其特征在于,所述终端根据数据预取时的命中率或未命中率确定所述第一预取算法,其中,所述命中率为预取数据中被所述cpu核组访问的数据占所述预取数据的比例,所述未命中率为预取数据中被未被所述cpu核组访问的数据占所述预取数据的比例。

15.如权利要求9-14任一所述的方法,其特征在于,终端中有n个预取算法,其中每个预取算法在一个周期内生效,所述方法还包括:

在n个周期中的每一个周期内,根据在所述每一个周期内生效的预取算法进行数据预取;

确定所述n个周期中每一个周期内生效的预取算法进行数据预取的n个第一命中率;

确定所述n第一命中率中最大的第一命中率,确定所述最大的第一命中率对应的预取算法为所述第一预取算法;

其中,所述第一命中率为所述预取器根据一个周期内生效的预取算法将预取数据存储到所述第一缓存后,所述预取数据中被所述cpu核组访问的数据占所述预取数据的比例。

16.如权利要求9-15任一所述的方法,其特征在于,所述存储器为ddrsdram。

17.一种终端设备,其特征在于,包括至少一个处理器和存储器;

所述存储器用于存储一个或多个计算机程序;

当所述存储器存储的一个或多个计算机程序被所述至少一个处理器执行时,使得所述终端设备执行如权利要求9至16任一所述的方法。

18.一种计算机存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当计算机程序在终端设备上运行时,使得所述终端设备执行如权利要求9至16任一所述的方法。

19.一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行如权利要求9-16任一项所述的方法。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1