一种数据预取方法和装置制造方法及图纸

技术编号:14517291 阅读:111 留言:0更新日期:2017-02-01 19:45
本发明专利技术实施例公开了一种数据预取方法和装置,该方法可包括:在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。本发明专利技术实施例可以提高数据预取的效率。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种数据预取方法和装置
技术介绍
在硬件多线程处理器中数据传输开销性能影响很大,那么,如何降低数据传输开销对性能的影响成为学术界和工业界都致力于解决的问题。现有解决方案主要是通过数据预取来降低数据传输开销。然而,现有的数据预取都是通过访存请求和预取指令而实现,即在接收到访存请求后,需要等待处理单元发送的预取指令,然后再响应该预取指令,以实现对数据的预取。然而,在实际中发现在上述数据预取技术由于需要接收处理单元发送的预取指令,从而会导致数据预取的效率较低。
技术实现思路
本专利技术实施例提供了一种数据预取方法和装置,可以提高数据预取的效率。第一方面,本专利技术实施例提供一种数据预取方法,包括:在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。在第一方面的第一种可能的实现方式中,所述判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:判断所述访存请求所访问的数据块是否有被访存请求访问的记录,若是,则更新所述数据块对应的计数器,并判断所述数据块对应的计数器当前值是否超过预设阈值,若是,则确定所述数据块满足预先设置的推送条件。结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述访存请求所访问的数据块包括至少两个数据块;所述判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:针对所述访存请求所访存的每个数据块判断是否满足预先设置的推送条件;所述若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块,包括:若所述至少两个数据块中存在满足所述推送条件的目标数据块时,从所述目标数据块所在的下一级存储中读取所述目标数据块,并将所述目标数据块推送到所述上一层模块。结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:当所述下一级存储需要向所述上一层模块进行所述数据块的数据回填时,判断所述数据块当前是否正在往上推送,若是,则禁止所述下一级存储向所述上一层模块进行所述数据块的数据回填,并向所述上一层模块发送回填确认信号。结合第一方面,在第一方面的第四种可能的实现方式中,所述在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:当存储控制器接收到所述上一层模块发送的所述访存请求时,获取所述访存请求所访问的数据块的内存地址,并判断所述内存地址是否满足预先设置的推送条件;所述若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块,包括:若所述内存地址满足所述推送条件时,向所述内存地址所在的下一级存储发送包括所述内存地址的内容分发访存请求,以根据所述内容分发访存请求将所述数据块推送到所述上一层模块。第二方面,本专利技术实施例提供一种数据预取装置,包括:判断单元和推送单元,其中:所述判断单元,用于在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;所述推送单元,用于若所述判断单元判断所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。在第二方面的第一种可能的实现方式中,所述判断单元用于判断所述访存请求所访问的数据块是否有被访存请求访问的记录,若是,则更新所述数据块对应的计数器,并判断所述数据块对应的计数器当前值是否超过预设阈值,若是,则确定所述数据块满足预先设置的推送条件。结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述访存请求所访问的数据块包括至少两个数据块;所述判断单元用于针对所述访存请求所访存的每个数据块判断是否满足预先设置的推送条件;所述推送单元用于若所述判断单元判断所述至少两个数据块中存在满足所述推送条件的目标数据块时,从所述目标数据块所在的下一级存储中读取所述目标数据块,并将所述目标数据块推送到所述上一层模块。结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:发送单元,用于当所述下一级存储需要向所述上一层模块进行所述数据块的数据回填时,判断所述数据块当前是否正在往上推送,若是,则禁止所述下一级存储向所述上一层模块进行所述数据块的数据回填,并向所述上一层模块发送回填确认信号。结合第二方面,在第二方面的第四种可能的实现方式中,所述判断单元用于当存储控制器接收到所述上一层模块发送的所述访存请求时,获取所述访存请求所访问的数据块的内存地址,并判断所述内存地址是否满足预先设置的推送条件;所述推送单元用于若所述内存地址满足所述推送条件时,向所述内存地址所在的下一级存储发送包括所述内存地址的内容分发访存请求,以根据所述内容分发访存请求将所述数据块推送到所述上一层模块。上述技术方案中,在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。这样可以实现在数据预取过程中只需要接收到访存请求就实现数据预取,而不需要像现有技术那样等待处理单元发送预取指令才可以进行数据预取,从而本专利技术实施例可以提高数据预取的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种数据预取方法的流程示意图;图2是本专利技术实施例提供的另一种数据预取方法的流程示意图;图3是本专利技术实施例提供的一种数据块的信息示意图;图4是本专利技术实施例提供的一种内容分发访存请求携带的信息示意图;图5是本专利技术实施例提供的一种处理器的结构示意图;图6是本专利技术实施例提供的一种数据预取装置的结构示意图;图7是本专利技术实施例提供的另一种数据预取装置的结构示意图;图8是本专利技术实施例的一种数据预取装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,图1是本专利技术实施例提供的一种数据预取方法的流程示意图,如图1所示,包括以下步骤:101、在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件。其中,上述上一层模块可以是寄存器,或者上述上一层模块可以是上述数据块所在的下一级存储的上一级存储,例如:上述数据块所在的下一级存储为缓存系统或者存储系统中的第2层,那么本文档来自技高网...

【技术保护点】
一种数据预取方法,其特征在于,包括:在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。

【技术特征摘要】
1.一种数据预取方法,其特征在于,包括:在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件;若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块。2.如权利要求1所述的方法,其特征在于,所述判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:判断所述访存请求所访问的数据块是否有被访存请求访问的记录,若是,则更新所述数据块对应的计数器,并判断所述数据块对应的计数器当前值是否超过预设阈值,若是,则确定所述数据块满足预先设置的推送条件。3.如权利要求1或2所述的方法,其特征在于,所述访存请求所访问的数据块包括至少两个数据块;所述判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:针对所述访存请求所访存的每个数据块判断是否满足预先设置的推送条件;所述若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块,包括:若所述至少两个数据块中存在满足所述推送条件的目标数据块时,从所述目标数据块所在的下一级存储中读取所述目标数据块,并将所述目标数据块推送到所述上一层模块。4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:当所述下一级存储需要向所述上一层模块进行所述数据块的数据回填时,判断所述数据块当前是否正在往上推送,若是,则禁止所述下一级存储向所述上一层模块进行所述数据块的数据回填,并向所述上一层模块发送回填确认信
\t号。5.如权利要求1所述的方法,其特征在于,所述在接收到上一层模块发送的访存请求时,判断所述访存请求所访问的数据块是否满足预先设置的推送条件,包括:当存储控制器接收到所述上一层模块发送的所述访存请求时,获取所述访存请求所访问的数据块的内存地址,并判断所述内存地址是否满足预先设置的推送条件;所述若所述数据块满足所述推送条件时,从所述数据块所在的下一级存储中读取所述数据块,并将所述数据块推送到所述上一层模块,包括:若所述内...

【专利技术属性】
技术研发人员:宋风龙姚骏张广飞
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1