System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种提前传递数据的方法及其装置制造方法及图纸_技高网

一种提前传递数据的方法及其装置制造方法及图纸

技术编号:41239533 阅读:4 留言:0更新日期:2024-05-09 23:52
本申请提出了一种提前传递数据的方法及其装置,涉及处理器技术领域。包括:获取已发射的取数指令中待读取数据对应的虚拟读取地址,并基于虚拟读取地址访问一级数据高速缓存、存数队列和存数指令缓冲区;响应于存数队列和/或存数指令缓冲区对虚拟读取地址进行比较并判断地址匹配时,获取存数队列和/或存数指令缓冲区中根据虚拟读取地址得到的传递数据,并获取一级数据高速缓存的命中结果;根据虚拟读取地址确定对应的物理读取地址,基于物理读取地址访问存数队列和/或存数指令缓冲区得到地址匹配结果;根据命中结果、地址匹配结果和传递数据确定取数指令的取数结果,并将取数结果写回。本申请降低了数据传递延迟,提高了处理器的主频和性能。

【技术实现步骤摘要】

本申请涉及处理器,尤其涉及一种提前传递数据的方法及其装置


技术介绍

1、当处理器的一条取数指令(load)被发射在流水线中执行时,需要查找所有的存数指令(store),如果有程序执行序在取数指令之前的存数指令并且它们之间存在地址相关,则该取数指令所需要的值全部或者部分在执行序在其前面的存数指令中,此时需要将地址相关的存数指令对应的值传递给其后面的取数指令。

2、其中,存数指令传递数据给取数指令的相关是指物理地址相关,即存数指令和取数指令对同一物理地址做数据存取,才会发生数据传递。现有技术中,访存指令执行的过程中取数指令(load)和存数指令(store)地址相关的判断都是使用物理地址做判断,需要等待tlb(translation lookaside buffer,转译后备缓冲器)访问结束,才能通过指令虚拟地址查询tlb获得指令的物理地址,再进行取数指令与存数指令的地址相关判断和数据传递,该过程进行地址比较和数据传递对流水线的延时影响很大,会成为处理器时序的关键路径,从而影响处理器的主频提升。


技术实现思路

1、本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

2、为此,本申请提出一种提前传递数据的方法,以解决存数指令传递数据给取数指令的延时问题。

3、本申请的第二个目的在于提出一种提前传递数据的装置。

4、本申请的第三个目的在于提出一种电子设备。

5、本申请的第四个目的在于提出一种非瞬时计算机可读存储介质。>

6、本申请的第五个目的在于提出一种计算机程序产品。

7、为达上述目的,本申请第一方面实施例提出了一种提前传递数据的方法,包括:获取已发射的取数指令中待读取数据对应的虚拟读取地址,并基于所述虚拟读取地址访问一级数据高速缓存、存数队列和存数指令缓冲区,所述存数队列中包括存数指令提交之前暂存的需要存储的数据,所述存数指令缓冲区中包括已提交存数指令但未写入数据高速缓存(data cache,dcache,也称“一级数据高速缓存”)的需要存储的数据;响应于所述存数队列和/或存数指令缓冲区对所述虚拟读取地址进行比较并判断地址匹配时,获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,并获取所述一级数据高速缓存的命中结果;根据所述虚拟读取地址确定对应的物理读取地址,并基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区得到地址匹配结果;根据所述命中结果、所述地址匹配结果和所述传递数据确定所述取数指令的取数结果,并将所述取数结果写回。

8、根据本申请的一个实施例,所述获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,包括:获取所述存数队列和/或所述存数指令缓冲区使用所述虚拟读取地址查询得到所述虚拟读取地址的匹配命中向量,通过所述命中向量从所述存数队列和/或所述存数指令缓冲区中生成的各个字节的传递数据。

9、根据本申请的一个实施例,所述获取所述一级数据高速缓存的命中结果,包括:获取所述一级数据高速缓存通过一级数据高速缓存的标签进行多路标签比较,得到的命中路结果。

10、根据本申请的一个实施例,所述基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区得到地址匹配结果,包括:基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区后,所述存数队列和/或存数指令缓冲区将虚拟读取地址的匹配结果和物理读取地址的匹配结果进行比较;若所述虚拟读取地址的匹配结果和所述物理读取地址的匹配结果不一致,则得到地址匹配结果为不一致;若所述虚拟读取地址的匹配结果和所述物理读取地址匹配的结果一致,则得到地址匹配结果为一致。

11、根据本申请的一个实施例,所述根据所述命中结果、所述地址匹配结果和所述传递数据确定所述取数指令的取数结果,包括:若所述地址匹配结果为不一致,刷新所述存数队列和/或存数指令缓冲区,并将所述取数指令添加需要从取指重发的标签,在所述取数指令到达重定序队列的队尾时触发,从取指令阶段重新执行;若所述地址匹配结果为一致,所述命中结果为dcache访问命中,将所述传递数据和所述dcache访问命中的数据进行合并,生成所述取数指令的取数结果;若所述地址匹配结果为一致,所述命中结果为dcache访问失效,确定所述传递数据是否包括所述取数指令需要的数据的所有字节;若所述传递数据不包括所述取数指令需要的数据的所有字节,在取数队列中保存传递数据,并在dcache重填访问的数据时,所述取数队列将重填的数据和传递数据合并,生成所述取数指令的取数结果;若所述传递数据包括所述取数指令需要的数据的所有字节,利用所述传递数据生成所述取数指令的取数结果。

12、根据本申请的一个实施例,所述将所述取数结果写回包括:根据时序情况,将所述取数指令的取数结果写回。

13、根据本申请的一个实施例,所述根据时序情况,将所述取数指令的取数结果写回,包括:若时序能够实现将所述取数指令标记成命中状态,则从dcache将所述取数指令的取数结果写回;若时序不能实现将所述取数指令标记成命中状态,则将所述取数指令的取数结果写到取数队列,并从所述取数队列写回。

14、根据本申请的一个实施例,所述响应于所述存数队列和/或存数指令缓冲区对所述虚拟读取地址进行比较并判断地址匹配时,获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,并获取所述一级数据高速缓存的命中结果之前,所述方法还包括:获取所述存数队列发送的指示数据,将从取数指令保留站中重发所述取数指令并重新执行,其中,所述指示数据用于指示所述存数队列中所述虚拟读取地址对应的存数指令的地址有效且存储数据无效。

15、为达上述目的,本申请第二方面实施例提出了一种提前传递数据的装置,包括:第一访问模块,用于获取已发射的取数指令中待读取数据对应的虚拟读取地址,并基于所述虚拟读取地址访问一级数据高速缓存、存数队列和存数指令缓冲区,所述存数队列中包括存数指令提交之前暂存需要存储的数据,所述存数指令缓冲区中包括已提交存数指令但未写入dcache的需要存储的数据;获取模块,用于响应于所述存数队列和/或存数指令缓冲区对所述虚拟读取地址进行比较并判断地址匹配时,获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,并获取所述一级数据高速缓存的命中结果;第二访问模块,用于根据所述虚拟读取地址确定对应的物理读取地址,并基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区得到地址匹配结果;确定模块,用于根据所述命中结果、所述地址匹配结果和所述传递数据确定所述取数指令的取数结果,并将所述取数结果写回。

16、为达上述目的,本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现如本申请第一方面实施例所述的提前传递数据的方法。

本文档来自技高网...

【技术保护点】

1.一种提前传递数据的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,包括:

3.根据权利要求1所述的方法,其特征在于,所述获取所述一级数据高速缓存的命中结果,包括:获取所述一级数据高速缓存通过一级数据高速缓存的标签进行多路标签比较,得到的命中路结果。

4.根据权利要求1所述的方法,其特征在于,所述基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区得到地址匹配结果,包括:

5.根据权利要求1所述的方法,其特征在于,所述根据所述命中结果、所述地址匹配结果和所述传递数据确定所述取数指令的取数结果,包括:

6.根据权利要求1所述的方法,其特征在于,所述将所述取数结果写回包括:根据时序情况,将所述取数指令的取数结果写回。

7.根据权利要求6所述的方法,其特征在于,所述根据时序情况,将所述取数指令的取数结果写回,包括:

8.根据权利要求1所述的方法,其特征在于,所述响应于所述存数队列和/或存数指令缓冲区对所述虚拟读取地址进行比较并判断地址匹配时,获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,并获取所述一级数据高速缓存的命中结果之前,所述方法还包括:

9.一种提前传递数据的装置,其特征在于,包括:

10.一种电子设备,包括:

11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种提前传递数据的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述存数队列和/或存数指令缓冲区中根据所述虚拟读取地址得到的传递数据,包括:

3.根据权利要求1所述的方法,其特征在于,所述获取所述一级数据高速缓存的命中结果,包括:获取所述一级数据高速缓存通过一级数据高速缓存的标签进行多路标签比较,得到的命中路结果。

4.根据权利要求1所述的方法,其特征在于,所述基于所述物理读取地址访问所述存数队列和/或存数指令缓冲区得到地址匹配结果,包括:

5.根据权利要求1所述的方法,其特征在于,所述根据所述命中结果、所述地址匹配结果和所述传递数据确定所述取数指令的取数结果,包括:

6.根据权利要求1所述的方法,其特征在...

【专利技术属性】
技术研发人员:李祖松郇丹丹杨烨
申请(专利权)人:北京微核芯科技有限公司
类型:发明
国别省市:

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

1