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