System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体地,涉及一种双端口发射的空间回收方法、装置、设备和介质。
技术介绍
1、随着计算机技术的快速发展,计算机的处理的速度要求越来越高。
2、通常,在顺序架构中和乱序架构中,处理器均依据程序流的顺序执行指令,例如,经典五级流水线处理器架构包括if(instruction fetch,指令获取)流水线级、id(instruction decode,指令译码)流水线级、ex(execute,指令执行)流水线级、mem(memoryaccess,访存)级和wb(write back,写回)流水线级五个流水线级。其中,处理器在if流水线级、id流水线级和ex流水线级按照固定顺序执行指令;处理器在ex流水线级和mem流水线级采用乱序执行指令。指令间的先后顺序决定依赖关系的判断,依赖关系包括资源依赖和数据依赖。其中,资源依赖常见是的同一类的不同指令抢占同一个处理单元,或者访问同一地址的不同访存指令。数据依赖是在程序顺序中,包括raw(read after write,写后读)依赖和waw(write after write,写后写)依赖,其中,raw依赖指示后续指令的执行需要用到前面还未执行完的指令的结果,waw依赖的两条指令都要写回到同一个寄存器中。
3、目前采用rob(re-order buffer,重排序缓冲区)对指令进行保序和依赖关系的判断,即使用先进先出实现。指令是按照派遣顺序分配rob空间,回收也是线性回收,即按照分配空间的先后顺序进行回收。
4、然而,目前的保序和依赖关系判断
技术实现思路
1、本申请实施例中提供了一种双端口发射的空间回收方法、装置、设备和介质。
2、本申请实施例的第一个方面,提供了一种双端口发射的空间回收方法,针对执行完的第一指令,根据信息栈中存储的指令的相关信息,确定已派遣指令中目的寄存器索引与第一指令的目的寄存器索引相同的指令的第三集合;根据已派遣指令先后关系表,确定第三集合中是否存在比第一指令的逻辑执行顺序更早的指令的第四集合,已派遣指令先后关系表用于存储每个已派遣指令与其他已派遣指令的逻辑执行先后顺序,已派遣指令先后关系表在双端口派遣指令时更新;若第三集合中不存在比第一指令的逻辑执行顺序更早的指令,则不存在已派遣指令与第一指令存在waw依赖关系,立即回收第一指令占用的空间编号和第一指令占用的信息栈的空间。
3、在本申请一个可选的实施例中,若第三集合中存在逻辑执行顺序比第一指令更早的指令,则确定第一指令与其他已派遣指令存在waw依赖关系,控制第一指令继续更待释放。
4、在本申请一个可选的实施例中,从已派遣指令先后关系表获取第一指令与其他所有已派遣指令之间的第一逻辑执行先后关系;根据第三集合和第一逻辑执行先后关系,确定第三集合中是否存在比第一指令的逻辑执行顺序更早的指令的第四集合。
5、在本申请一个可选的实施例中,执行完指令包括第一指令和第四指令,第四指令为在第一指令执行完之后执行完的指令;该方法还包括:在同一周期内,确定已派遣指令中是否存在与第一指令有waw依赖关系的指令,并确定已派遣指令中是否存在与第四指令有waw依赖关系的指令;若第一指令与其他已派遣指令存在waw依赖关系,且不存在指令与第四指令有waw依赖关系,则不再为第一指令继续查询,控制第一指令继续等待释放,并立即回收第四指令占用的空间编号和第四指令占用的信息栈的空间。
6、在本申请一个可选的实施例中,执行完指令包括多个指令,第一指令为多个指令中的其中一个指令;该方法还包括:在确定第三集合中存在比第一指令的逻辑执行顺序更早的指令的第四集合之后,确定第四集合中逻辑执行顺序最晚的指令与第一指令存在waw依赖关系;若第四集合中逻辑执行顺序最晚的指令为多个指令中的其中一个指令,则确定回收第一指令占用的空间编号和第一指令占用的信息栈的空间;若第四集合中逻辑执行顺序最晚的指令不为多个指令中的其中一个指令,则控制第一指令继续等待释放。
7、在本申请一个可选的实施例中,该方法还包括:在将第一指令占用的空间回收之后,将第一指令占用的空间的索引号写到可用列表的末尾。
8、在本申请一个可选的实施例中,已派遣指令先后关系表为n阶表,可存储n个已派遣指令的逻辑执行先后关系,一行对应一条已派遣指令与其他已派遣指令的先后关系,n为正整数。
9、本申请实施例的第一个方面,提供了一种双端口发射的空间回收装置,该装置包括:确定模块和回收模块;确定模块,用于针对执行完的第一指令,根据信息栈中存储的指令的相关信息,确定已派遣指令中目的寄存器索引与第一指令的目的寄存器索引相同的指令的第三集合;根据已派遣指令先后关系表,确定第三集合中是否存在比第一指令的逻辑执行顺序更早的指令的第四集合,已派遣指令先后关系表用于存储每个已派遣指令与其他已派遣指令的逻辑执行先后顺序,已派遣指令先后关系表在双端口派遣指令时更新;回收模块,用于若第三集合中不存在比第一指令的逻辑执行顺序更早的指令,则不存在已派遣指令与第一指令存在waw依赖关系,立即回收第一指令占用的空间编号和第一指令占用的信息栈的空间。
10、在本申请一个可选的实施例中,双端口发射的空间回收装置还包括:控制模块;控制模块用于若第三集合中存在逻辑执行顺序比第一指令更早的第一个指令,则第一指令与其他已派遣指令存在waw依赖关系,不再继续查询,控制第一指令继续等待释放。
11、在本申请一个可选的实施例中,确定模块具体用于:从已派遣指令先后关系表获取第一指令与其他所有已派遣指令之间的第一逻辑执行先后关系;根据第三集合和第一逻辑执行先后关系,确定第三集合中是否存在比第一指令的逻辑执行顺序更早的指令的第四集合。
12、在本申请一个可选的实施例中,执行完指令包括第一指令和第四指令,第四指令为在第一执行完之后执行的指令,确定模块还用于:在同一周期内,确定已派遣指令中是否存在与第一指令有waw依赖关系的指令,并确定已派遣指令中是否存在与第四指令有waw依赖关系的指令;若第一指令与其他已派遣指令存在waw依赖关系,且不存在指令与第四指令有waw依赖关系,则查询模块不在为第一指令继续查询,控制模块控制第一指令继续等待,回收模块,用于立即回收第四指令占用的空间编号和第四指令占用的信息栈的空间。
13、在本申请一个可选的实施例中,执行完指令包括多个指令,第一指令为该多个指令中的其中一个指令,确定模块还用于在确定第三集合中存在比第一指令的逻辑执行顺序更早的指令的第四集合之后,确定第四集合中逻辑执行顺序最晚的指令与第一指令存在wa本文档来自技高网...
【技术保护点】
1.一种双端口发射的空间回收方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据已派遣指令先后关系表,确定所述第三集合中是否存在比所述第一指令的逻辑执行顺序更早的指令的第四集合,包括:
4.根据权利要求2所述的方法,其特征在于,执行完指令包括所述第一指令和第四指令,所述第四指令为在所述第一指令执行完之后执行完的指令;所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,执行完指令包括多个指令,所述第一指令为所述多个指令中的其中一个指令;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述已派遣指令先后关系表为N阶表,可存储N个已派遣指令的逻辑执行先后关系,每一行对应一条已派遣指令与其他已派遣指令的逻辑执行先后关系,N为正整数。
8.一种双端口发射的空间回收装置,其特征在于,所述双端口发射的空间回收装置包括:确定模块和回
9.一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种双端口发射的空间回收方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据已派遣指令先后关系表,确定所述第三集合中是否存在比所述第一指令的逻辑执行顺序更早的指令的第四集合,包括:
4.根据权利要求2所述的方法,其特征在于,执行完指令包括所述第一指令和第四指令,所述第四指令为在所述第一指令执行完之后执行完的指令;所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,执行完指令包括多个指令,所述第一指令为所述多个指令中的其中一个指令;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所...
【专利技术属性】
技术研发人员:胡振波,彭剑英,蔡骏,
申请(专利权)人:芯来智融半导体科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。