System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 重排序缓存的实现方法、装置、设备、介质及程序产品制造方法及图纸_技高网

重排序缓存的实现方法、装置、设备、介质及程序产品制造方法及图纸

技术编号:43847599 阅读:4 留言:0更新日期:2024-12-31 18:41
本公开提供一种重排序缓存的实现方法、装置、设备、介质及程序产品。该方法包括:获取N个解码指令;依次将每个第一分组中的一个空闲表项分配给每个解码指令;其中,第一分组为ROB中包含空闲表项的组,所述第一分组的个数为K,N≤K且N和K为大于1的整数。如此,在将ROB的表项进行分组的基础上,通过为多个解码指令分别分配属于不同组的空闲表项,能够提高ROB的容量和处理器的性能。

【技术实现步骤摘要】

本公开涉及计算机,尤其涉及一种重排序缓存的实现方法、装置、设备、介质及程序产品


技术介绍

1、对于超标量处理器来说,其是乱序(out-of-order,ooo)的方式执行指令,而为了确保乱序执行的指令能够正确地完成和提交,引入了重排序缓存(reorder buffer,rob)。

2、相关技术中,rob采用一维的队列结构实现,其本质上是一个先入先出(firstinput first output,fifo)的表,在它当中存储了指令的相关信息,在指令的提交(commit)阶段,因为指令是乱序执行的,所以提交的指令的rob的指令标识号(instructionidentity document,iid)不一定是顺序的提交,所以,指令需要与rob中的全部的表项(entry)进行比较,采用一维的队列结构实现rob很难在提高rob的容量的同时不影响中央处理器(central processing unit,cpu)的性能,使得cpu的性能受到了限制。


技术实现思路

1、为克服相关技术中存在的问题,本公开提供一种重排序缓存的实现方法、装置、设备、介质及程序产品,以提高rob的容量和处理器的性能。

2、根据本公开实施例的第一方面,提供一种重排序缓存的实现方法,包括:获取n个解码指令;依次将每个第一分组中的一个空闲表项分配给每个解码指令;其中,第一分组为rob中包含空闲表项的组,第一分组的个数为k,n≤k且n和k为大于1的整数。

3、在一些实施例中,依次将每个第一分组中的一个空闲表项分配给每个解码指令,包括:确定rob中的尾指针指示的第一位置;将第一位置指示的空闲表项分配给n个解码指令中的首个解码指令;对于非首个解码指令,将第一位置之后的第i个位置指示的空闲表项分配给n个解码指令中的第i+1个解码指令;其中,1≤i≤n-1且i为整数,第一位置以及第一位置之后的第i个位置所指示的空闲表项处于不同的第一分组。

4、在一些实施例中,在对于非首个解码指令,将第一位置之后的第i个位置指示的空闲表项分配给n个解码指令中的第i+1个解码指令之后,上述方法还包括:确定尾指针自增n后指示的第二位置;将第一位置更新为第二位置。

5、在一些实施例中,在获取n个解码指令之前,上述方法还包括:确定第一分组中包含的空闲表项总数量与rob中包含的组数g的大小关系,其中,g为大于1的整数且g≥k;在空闲表项总数量小于g的情况下,发送暂停信号至指令解码队列,以供指令解码队列暂停输出解码指令;其中,指令解码队列用于输出解码指令。

6、在一些实施例中,上述方法还包括:从l个待提交指令中确定本次释放过程中满足释放条件的m个待释放指令,其中,l个待提交指令为t个解码指令中执行完成的指令,t为在本次释放过程中所确定的未释放的指令的总个数,m≤l≤t,t≥n且m、l、t均为大于1的整数;根据m个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表项。

7、在一些实施例中,从l个待提交指令中确定本次释放过程中满足释放条件的m个待释放指令,包括:获取l个待提交指令;根据每个待提交指令对应的表项标识信息,将每个待提交指令对应的表项的提交标识标记为第一数值;将提交标识为第一数值的多个连续表项所对应的待提交指令确定为m个待释放指令。

8、在一些实施例中,根据m个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表项,包括:确定rob中的头指针指示的第三位置;根据m个待释放指令对应的表项标识信息,确定m个待释放指令对应的表项的释放顺序;根据第三位置和释放顺序,将m个待释放指令中首个待释放指令对应的表项释放;对于非首个待释放指令,将第三位置之后的第j个位置指示的第j+1个待释放指令的表项释放;其中,1≤j≤m-1且j为整数。

9、在一些实施例中,在对于非首个待释放指令,将第三位置之后的第j个位置指示的第j+1个待释放指令的表项释放之后,上述方法还包括:确定头指针自增m后指示的第四位置;将第三位置更新为第四位置。

10、在一些实施例中,在从l个待提交指令中确定本次释放过程中满足释放条件的m个待释放指令之前,上述方法还包括:确定l与rob中包含的组数g的大小关系,其中,g为大于1的整数且g≥k;在l超过g的情况下,发送退休暂停信号至执行队列,以供执行队列暂停输出待提交指令;其中,执行队列用于输出待提交指令。

11、根据本公开实施例的第二方面,提供一种重排序缓存的实现装置,包括:获取模块,配置为获取n个解码指令;分配模块,配置为依次将每个第一分组中的一个空闲表项分配给每个解码指令;其中,第一分组为重排序缓存rob中包含空闲表项的组,第一分组的个数为k,n≤k且n和k为大于1的整数。

12、在一些实施例中,分配模块,配置为执行以下步骤:确定rob中的尾指针指示的第一位置;将第一位置指示的空闲表项分配给n个解码指令中的首个解码指令;对于非首个解码指令,将第一位置之后的第i个位置指示的空闲表项分配给n个解码指令中的第i+1个解码指令;其中,1≤i≤n-1且i为整数,第一位置以及第一位置之后的第i个位置所指示的空闲表项处于不同的第一分组。

13、在一些实施例中,上述装置还包括:第一确定模块,配置为在对于非首个解码指令,将第一位置之后的第i个位置指示的空闲表项分配给n个解码指令中的第i+1个解码指令之后,确定尾指针自增n后指示的第二位置;第一更新模块,配置为将第一位置更新为第二位置。

14、在一些实施例中,上述装置还包括:第二确定模块,配置为在获取n个解码指令之前,确定第一分组中包含的空闲表项总数量与rob中包含的组数g的大小关系,其中,g为大于1的整数且g≥k;第一发送模块,配置为在空闲表项总数量小于g的情况下,发送暂停信号至指令解码队列,以供指令解码队列暂停输出解码指令;其中,指令解码队列用于输出解码指令。

15、在一些实施例中,上述装置还包括:第三确定模块,配置为从l个待提交指令中确定本次释放过程中满足释放条件的m个待释放指令,其中,l个待提交指令为t个解码指令中执行完成的指令,t为在本次释放过程中所确定的未释放的指令的总个数,m≤l≤t,t≥n且m、l、t均为大于1的整数;释放模块,配置为根据m个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表项。

16、在一些实施例中,第三确定模块,配置为执行以下步骤:获取l个待提交指令;根据每个待提交指令对应的表项标识信息,将每个待提交指令对应的表项的提交标识标记为第一数值;将提交标识为第一数值的多个连续表项所对应的待提交指令确定为m个待释放指令。

17、在一些实施例中,释放模块,配置为执行以下步骤:确定rob中的头指针指示的第三位置;根据m个待释放指令对应的表项标识信息,确定m个待释放指令对应的表项的释放顺序;根据第三位置和释放顺序,将m个待释放指令中首个待释放指令对应的表项释放;对于非首个待释放指令,将第三位置之后的第j个本文档来自技高网...

【技术保护点】

1.一种重排序缓存的实现方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述依次将每个第一分组中的一个空闲表项分配给每个解码指令,包括:

3.根据权利要求2所述的方法,其特征在于,在所述对于非首个解码指令,将所述第一位置之后的第i个位置指示的空闲表项分配给所述N个解码指令中的第i+1个解码指令之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,在所述获取N个解码指令之前,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述从L个待提交指令中确定本次释放过程中满足释放条件的M个待释放指令,包括:

7.根据权利要求5所述的方法,其特征在于,所述根据所述M个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表项,包括:

8.根据权利要求7所述的方法,其特征在于,在所述对于非首个待释放指令,将所述第三位置之后的第j个位置指示的第j+1个待释放指令的表项释放之后,所述方法还包括:

9.根据权利要求5所述的方法,其特征在于,在所述从L个待提交指令中确定本次释放过程中满足释放条件的M个待释放指令之前,所述方法还包括:

10.一种重排序缓存的实现装置,其特征在于,包括:

11.一种电子设备,其特征在于,包括:

12.一种非临时性计算机可读存储介质,所述存储介质存储有计算机程序或指令,其特征在于,当所述存储介质中的计算机程序或指令由处理器执行时,实现权利要求1至9中任一项所述的方法的步骤。

13.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至9中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种重排序缓存的实现方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述依次将每个第一分组中的一个空闲表项分配给每个解码指令,包括:

3.根据权利要求2所述的方法,其特征在于,在所述对于非首个解码指令,将所述第一位置之后的第i个位置指示的空闲表项分配给所述n个解码指令中的第i+1个解码指令之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,在所述获取n个解码指令之前,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述从l个待提交指令中确定本次释放过程中满足释放条件的m个待释放指令,包括:

7.根据权利要求5所述的方法,其特征在于,所述根据所述m个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表...

【专利技术属性】
技术研发人员:马永会杨柳西袁铭谦
申请(专利权)人:北京算能科技有限公司
类型:发明
国别省市:

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

1