System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,尤其涉及一种重排序缓存的实现方法、装置、设备、介质及程序产品。
技术介绍
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、在一些实施例中,依次将每个第
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
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个待释放指令对应的表项标识信息,依次释放每个待释放指令对应的表...
【专利技术属性】
技术研发人员:马永会,杨柳西,袁铭谦,
申请(专利权)人:北京算能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。