指令发射控制方法、指令执行验证方法、系统及存储介质与流程

文档序号:17927561发布日期:2019-06-15 00:31阅读:372来源:国知局
指令发射控制方法、指令执行验证方法、系统及存储介质与流程

本发明涉及计算机处理器技术领域,具体涉及一种指令发射控制方法、指令执行验证方法、系统及存储介质。



背景技术:

在处理器设计中,矢量标量计算单元,即执行单元,是最体现处理器计算能力的功能单元,其功能复杂,指令集的大部分计算指令都要在其中实现,且各类指令的执行周期各不相同。作为超标量处理器的重要运算单元,矢量标量计算单元也必须实现指令乱序执行的功能,乱序执行广泛应用在超标量处理器设计中,能极大提高功能单元流水线的执行效率,提高处理器的性能。

指令在发射阶段根据可用资源的准备情况,乱序发射,在执行阶段,各个执行单元的执行流水线级数各不相同,因此指令在流水线的写回阶段也是乱序的,在现有技术中,为减少不同周期指令的写回冲突,会采取更改原指令的执行周期的方法,这样虽然改善了发射的堵塞情况,但是增加了乱序的情况,因此,现有的指令执行控制方法,依然存在由于发射过程不合理而导致的指令执行过程效率低的问题。



技术实现要素:

有鉴于此,本发明实施例提供了一种指令发射控制方法、指令执行验证方法、系统及存储介质,以解决现有技术中的指令执行控制方法,依然存在由于发射过程不合理而导致的指令执行过程效率低的问题。

根据第一方面,本发明实施例提供了一种一种指令发射控制方法,包括:获取正在执行指令的指令周期和当前执行周期;获取待发射指令的指令周期;根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令发射。

结合第一方面,在第一方面第一实施方式中,所述根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述发射指令发射,包括:根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。

结合第一方面第一实施方式,在第一方面第二实施方式中,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:当所述待发射指令会与所述正在执行指令发生写回冲突时,延迟预定时间发射所述待发射指令。

结合第一方面第一实施方式,在第一方面第三实施方式中,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:当所述待发射指令会与所述正在执行指令发生写回冲突时,将所述待发射指令的指令周期转换为预设周期后发射所述待发射指令。

结合第一方面,在第一方面第四实施方式中,所述指令发射装置控制方法还包括:根据正在执行指令的指令周期判断所述正在执行指令是否为长周期指令;当所述正在执行指令为长周期指令时,根据所述待发射指令的指令周期判断所述待发射指令是否为长周期指令;当所述待发射指令为长周期指令时,获取所述正在执行指令执行完成的指示信息;当获取到所述指示信息后,控制发射所述待发射指令。

结合第一方面,在第一方面第五实施方式中,所述指令发射控制方法还包括:判断所述待发射指令的源操作数寄存器是否与所述正在执行指令的目的寄存器冲突;当所述待发射指令的源操作数寄存器与所述正在执行指令的目的寄存器冲突时,判定所述正在执行指令与所述待发射指令相关;判断所述正在执行指令是否符合旁路控制条件,若是,则同时发射旁路控制信号和所述待发射指令;其中,所述旁路控制条件为所述正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至所述待发射指令的执行阶段,其中,所述执行结果从旁路发送至所述待发射指令。

根据第二方面,本发明实施例提供了一种指令执行验证方法,包括:执行根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令,获取执行结果;将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;根据所述判断结果验证执行所述指令的流水线是否正确。

结合第二方面,在第二方面第一实施方式中,在执行根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令,获取执行结果的步骤之前,还包括:对发射的所述指令设置指令标签。

结合第二方面第一实施方式,在第二方面第二实施方式中,所述预设结果是通过以下步骤获取的:将根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令输入至预设数据库;其中,所述指令具有所述指令标签,所述预设数据库中存储有所有所述待发射指令、所述待发射指令的预设结果及所述待发射指令与所述预设结果之间的对应关系;根据所述指令及所述对应关系获取所述预设结果。

结合第二方面第二实施方式,在第二方面第三实施方式中,所述将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果的步骤之前,还包括:根据所述执行结果中的所述指令标签,获取所述预设结果中与所述指令标签对应的所述指令的预设结果。

根据第三方面,本发明实施例提供了一种指令发射控制装置,包括:第一获取模块,用于获取正在执行指令的指令周期和当前执行周期;第二获取模块,用于获取待发射指令的指令周期;处理模块,用于根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令的发射顺序。

结合第三方面,在第三方面第一实施方式中,所述处理模块包括:判断单元,用于根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;处理单元,用于当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。

根据第四方面,本发明实施例提供了一种指令执行验证装置,包括:执行模块,用于执行根据权利要求11或12所述的指令发射控制装置发射的指令,获取执行结果;判断模块,用于将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;验证模块,用于根据所述判断结果验证执行所述指令的流水线是否正确。

根据第五方面,本发明实施例提供了一种指令发射设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面或第一方面任一实施方式所述的指令发射控制方法。

根据第六方面,本发明实施例提供了一种指令执行验证设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第二方面或第二方面任一实施方式所述的指令执行验证方法。

根据第七方面,本发明实施例提供了一种指令执行验证系统,包括:第五方面所述的指令发射设备及第六方面所述的指令执行验证设备。

根据第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一实施方式所述的指令发射控制方法或第二方面或第二方面任一实施方式所述的指令执行验证方法。

本发明实施例技术方案,具有如下优点:

本发明实施例提供了一种指令发射控制方法,包括:获取正在执行指令的指令周期和当前执行周期,获取待发射指令的指令周期,根据该正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,控制待发射指令发射。通过本发明实施例的指令发射控制方法,首先获取正在执行的指令的指令周期和当前该指令的执行周期,例如正在执行的指令的总指令周期是7周期,其当前执行周期是2周期,然后再获取待发射指令的指令周期,例如待发射指令的指令周期是2周期,则根据该正在执行指令的指令周期、其当前执行周期和待发射指令的指令周期,来控制待发射指令发射,即在所有待发射指令按符合发射条件的顺序排列的前提下,实时检测待发射指令的指令周期,若发现待发射指令会与正在执行的指令发生写回冲突,则可以先不发射该待发射指令,先发射其他不会与该正在执行的指令发生写回冲突的指令,以此来控制待发射指令发射,避免待发射指令与正在执行指令发生回写冲突,并且也可以提高指令执行的效率。

本发明实施例提供了一种指令执行验证方法,该指令执行验证方法包括:执行根据上述指令发射控制方法发射的指令,获取执行结果,将该执行结果与预设结果进行比较,判断该指令的执行结果是否正确,得到判断结果,根据该判断结果验证执行该指令的流水线是否正确。通过本发明实施例的指令执行验证方法,将指令的执行结果与预设结果进行比较,从而判断指令的执行结果是否正确,得到判断结果,然后根据该判断结果验证执行指令的流水线是否正确,从而对乱序执行流水线进行验证,为程序设计提供参考依据。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的指令发射控制方法的一个流程图;

图2是根据本发明实施例的指令发射控制方法的另一个流程图;

图3是根据本发明优选实施例的指令发射控制方法的指令执行示意图;

图4是根据本发明优选实施例的指令发射控制方法的指令周期示意图;

图5是根据本发明优选实施例的指令发射控制方法的一个流程图;

图6是根据本发明优选实施例的指令发射控制方法的另一个流程图;

图7是根据本发明实施例的指令执行验证方法的一个流程图;

图8是根据本发明实施例的指令发射控制装置的结构框图;

图9是根据本发明实施例的指令执行验证装置的结构框图;

图10是根据本发明实施例的指令发射设备或指令执行验证设备的硬件结构示意图;

图11是根据本发明实施例的指令执行验证系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本发明实施例提供了一种指令发射控制方法,主要应用于指令发射设备,如图1所示,该指令发射控制方法包括:

步骤s101:获取正在执行指令的指令周期和当前执行周期;具体地,在处理器设计中,矢量标量计算单元是指令的执行单元,在指令发射时,获取执行单元中正在执行指令的指令周期和当前周期。

步骤s102:获取待发射指令的指令周期;具体地,所有待发射指令的指令周期以及指令的类型都是已知的,例如可以是2周期、7周期、8周期、13周期、多周期指令;

步骤s103:根据正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,控制待发射指令发射。具体地,根据上述获取的正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,来控制待发射指令发射,从而达到合理地发射指令的目的。

通过上述步骤,首先获取正在执行的指令的指令周期和当前该指令的执行周期,例如正在执行的指令的总指令周期是7周期,其当前执行周期是2周期,然后再获取待发射指令的指令周期,例如待发射指令的指令周期是2周期,则根据该正在执行指令的指令周期、其当前执行周期和待发射指令的指令周期,来控制待发射指令发射,即在所有待发射指令按符合发射条件的顺序排列的前提下,实时检测待发射指令的指令周期,若发现待发射指令会与正在执行的指令发生写回冲突,则可以先不发射该待发射指令,先发射其他不会与该正在执行的指令发生写回冲突的指令,以此来控制待发射指令发射,避免待发射指令与正在执行指令发生回写冲突,并且也可以提高指令执行的效率。

上述步骤s103涉及到根据正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,控制待发射指令发射,在一个较佳实施方式中,如图2所示,该步骤包括:

步骤s1031:根据正在执行指令的指令周期、当前执行周期和待发射指令的指令周期,实时判断待发射指令是否会与正在执行指令发生写回冲突;具体地,如图3所示,例如指令x、y、z的预设发射顺序是x优选于y,y优先于z,三个指令并行执行,则指令x在执行至x1时,指令y发射,指令x在执行至x2时,指令z发射,则三个指令将会在同一个时刻写回,即发生写回冲突。再例如图4所示,正在执行的指令的总指令周期是7周期,其当前执行周期是2周期,待发射指令的指令周期是2周期,则若此刻立刻发射待发射指令,待发射指令执行完成写回执行结果时,正在执行指令此刻也要进行写回执行结果动作,则两个指令会发生写回冲突。

步骤s1032:当该待发射指令不会与正在执行指令发生写回冲突时,控制发射该待发射指令。具体地,当该待发射指令不会与正在指令指令发生写回冲突时,此刻立刻发射待发射指令。

步骤s1033:当该待发射指令会与正在执行指令发生写回冲突时,延迟预定时间发射该待发射指令。具体地,若判断出该待发射指令会与正在执行指令发生写回冲突时,延迟一定时间后再发射该待发射指令,例如延迟一个周期,只要使得两个指令不会发生执行结果写回冲突即可。

通过上述步骤,通过待发射指令的指令周期,正在执行指令的指令周期和其当前执行周期,在发射待发射指令前,预先判断该待发射指令是否会与正在执行指令发生写回冲突,若不会发生写回冲突,则立刻发射该待发射指令,若会发生写回冲突,则延迟预定时间后,再发射该待发射指令,从而避免由于指令发射不当而造成的指令执行单元拥挤且执行效率低的问题。

作为一个可替代的实施方式,当待发射指令会与正在执行的指令发生写回冲突时,此时将待发射指令的指令周期转换为预设周期后发射待发射指令。具体地,当待发射指令会与正在执行的指令发生写回冲突时,例如上述举例中的图4,正在执行的指令的总指令周期是7周期,其当前执行周期是2周期,待发射指令的指令周期是2周期,则将待发射指令的执行周期转换为7周期,然后立刻发射该待发射指令,这样待发射指令就不会与正在执行指令发生写回冲突。

在一个较佳实施方式中,如图5所示,本发明实施例的指令发射控制方法还包括:

步骤s104:根据正在执行指令的指令周期判断正在执行指令是否为长周期指令;例如浮点除法、浮点开方、浮点倒数、浮点倒方根等,这些指令的执行周期很长,矢量标量计算单元(执行单元)在执行这些指令时,需要及时反馈信号至指令发射单元,以获知该类型的长周期指令的当前执行周期,以进行上述步骤s1031-s1033的检测,即进行写回冲突检测。

步骤s105:当正在执行指令为长周期指令时,根据待发射指令的指令周期判断待发射指令是否为长周期指令;具体地,在正在执行指令为长周期指令时,也要判断待发射指令的指令周期是否为长周期指令,例如大于18周期的指令为长周期指令。

步骤s106:当待发射指令为长周期指令时,获取正在执行指令执行完成的指示信息;具体地,当待发射指令为长周期指令时,此刻需要等待执行单元发送指示信息,其中该指示信息表示正在执行指令执行完成。

步骤s107:当获取到该指示信息后,控制发射该待发射指令。具体地,当获取到正在执行指令完成的指示信息后,才控制发射该待发射指令,因为执行单元中不同类型的指令的流水线不同,长周期指令的流水线此刻被占用,必须等待正在执行指令执行完成后,才能继续发射下一个长周期指令。

通过上述步骤,在正在执行指令为长周期指令的情况下,若待发射指令为长周期指令,则需要等到正在执行指令执行完成后,才控制发射该待发射指令,以避免执行长周期指令的流水线上发生执行冲突。

在一个较佳实施方式中,如图6所示,本发明实施例的指令发射控制方法还包括:

步骤s108:判断待发射指令的源操作数寄存器是否与正在执行指令的目的寄存器冲突;具体地,该目的寄存器也是物理寄存器。

步骤s109:当待发射指令的源操作数寄存器与正在执行指令的目的寄存器冲突时,判定正在执行指令与待发射指令相关;具体地,如果待发射指令的源操作数寄存器与正在执行指令的目的寄存器冲突时,则说明两个指令相关。

步骤s110:判断正在执行指令是否符合旁路控制条件,若是,则同时发射旁路控制信号和所述待发射指令;其中,旁路控制条件为正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至待发射指令的执行阶段,其中,该执行结果从旁路发送至该待发射指令。具体地,当正在执行指令是与待发射指令相关的指令时,正在执行指令的目的寄存器为待发射指令需要使用的,若正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至待发射指令的执行阶段,即符合旁路控制条件,则此时将同时发射待发射指令和旁路控制信号,即控制发射该待发射指令并且将该执行结果从旁路发送至该待发射指令的执行阶段,即该正在执行指令的执行结果不需要先放入寄存器,从旁路发送至该待发射指令的执行阶段,这样待发射指令就不需要从寄存器中读取该执行结果,拿来应用,而是直接从旁路获取该执行结果,节省流程;如果正在执行指令的与待发射指令相关,但是不符合旁路控制条件,则两个指令就不能背靠背的连续执行,此时延迟预定时间再发射该待发射指令。

通过上述步骤,对待发射指令和正在执行指令进行相关性检测,若两个指令相关,则进行旁路控制,即将正在执行指令的执行结果从旁路发送至待发射指令,待发射指令不需要先从寄存器中读取执行结果,从而节省执行单元的执行流程,提高执行效率。

本发明实施例的指令发射控制方法,对待发射指令和正在执行指令进行写回冲突检测、长周期检测和相关性检测,三个检测过程可以相互独立也可以相互联系,本发明实施例不以此为限制,从而合理地控制指令发射流程,提高执行单元的执行效率,避免由于指令发射不合理而造成的执行错误。

实施例2

本发明实施例提供了一种指令执行验证方法,应用于指令执行验证设备,如图7所示,该指令执行验证方法包括:

步骤s201:执行根据上述具体实施方式中的指令发射控制方法发射的指令,获取执行结果;具体地,获取根据上述具体实施方式中的指令发射控制方法发射的指令,然后执行该指令,得到执行结果;

步骤s202:将该执行结果与预设结果进行比较,判断指令的执行结果是否正确,得到判断结果;具体地,将该执行结果与预设结果进行比较,这里的预设结果是各指令对应的正确结果,判断该指令的执行结果是否正确,得到判断结果。

步骤s203:根据判断结果验证执行所述指令的流水线是否正确。具体地,根据该判断结果能够验证处理器的矢量标量计算单元的各个流程是否正确,例如当判断得到该执行结果不正确时,说明该不正确的执行结果对应的指令的流水线错误,当判断得到该执行结果正确时,说明该正确的执行结果对应的指令的流水线正确。

通过上述步骤,将指令的执行结果与预设结果进行比较,从而判断指令的执行结果是否正确,得到判断结果,然后根据该判断结果验证执行指令的流水线是否正确,从而对乱序执行流水线进行验证,为程序设计提供参考依据。

为了更好地获取各个指令的执行结果,在一个较佳实施方式中,在执行指令之前,对发射的指令设置指令标签,然后将根据上述具体实施方式中的指令发射控制方法发射的指令输入至预设数据库,即将整套激励信号(包括上述写回冲突检测、长周期检测、相关性检测等对待发射指令执行的动作)通过dpi结构提供给预设数据库,这里的预设数据库可以是c参考模型,即从指令库中随机获取指令,在流水线中按照上述指令发射控制方法检测之后,每周期一个指令分别同时发射至矢量标量计算单元(执行单元)和c参考模型(预设数据库),此时会给指令设置一个唯一的、连续递增的指令标签,如第一条指令编号1,第二条指令编号2,依次类推;其中该预设数据库中存储有所有的待发射指令、待发射指令的预设结果及待发射指令与预设结果之间的对应关系,例如是一个列表,第一列对应的是待发射指令,第二列是与第一列的待发射指令对应的预设结果,然后该指令及该对应关系获取该预设结果,例如该指令编号1,根据该列表可以直接查询到其对应的预设结果。

需要说明的是,本发明实施例的预设结果是从预设数据库中对应查询的,当然也可以是预先设计好的指令执行程序,确保只要指令输入,其立刻可以输出正确的执行结构,即参考模型,本发明实施例不以此为限制。软件参考模型得到激励后,单拍输出数据结果,送入后续的结果比较装置;而矢量标量计算单元里得到指令后要经过一定指令周期才会输出结果,每周期进入一个指令,译码之后会进入对应类型的执行流水线,各类指令执行周期不同,因此后进来的执行周期短的指令可能比先进来的执行周期长的指令先完成,这就表现为在结果写回阶段是乱序的,并不是按照指令进入矢量标量计算单元的顺序。

具体在将执行结果与预设结果进行比较时,根据执行结果中的指令标签,获取预设结果中与该指令标签对应的指令的预设结果,具体地,结果比较装置将从参考模型获得期望值r(即预设结果),放入期望值队列,期望值在队列中的顺序与指令发射顺序是一致的;而矢量标量计算单元的执行结果是乱序出来的,所以这里不采用期望值队列前置的方式取出期望值。矢量标量计算单元当前周期数据的执行结果用r`表示,用r`的指令标签去期望值队列里检索出相同指令标签的期望值r,然后依次比较r和r`的各个具体元素值;这样就实现了乱序结果与期望值的比较。即每个指令都有一个属于自身的编号,是指令的属性,指令的输出结果中也带有该属性,因此,根据该编号就能找到该属性的c参考模型输出的结果和矢量标量计算单元输出的结果,若c参考模型输出的结果与矢量标量计算单元输出的结果不一致,则说明矢量标量计算单元设计的流水线错误,指令执行的步骤错误,不同类型的指令在不同的流水线按照功能划分,例如定点指令、浮点指令、加减乘除运算指令等。

本发明实施例的指令执行验证方法,将发射的指令赋予唯一、连续递增的指令标签,这样即使矢量标量计算单元乱序输出各个指令的执行结果,由于执行结果中带有该指令对应的指令标签,因此,根据该指令标签可以直接从预设结果队列中直接查询该指令对应的预设结果,从而对矢量标量计算单元乱序输出的执行结果进行验证。

实施例3

本发明实施例提供了一种指令发射控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本发明实施例提供一种指令发射控制装置,如图8所示,该指令发射控制装置包括第一获取模块81、第二获取模块82及处理模块83;

该第一获取模块81,用于获取正在执行指令的指令周期和当前执行周期;具体内容详见步骤s101所述;

该第二获取模块82,用于获取待发射指令的指令周期;具体内容详见步骤s102所述;

该处理模块83,用于根据正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,控制待发射指令发射;具体内容详见步骤s103所述。

通过本发明实施例的指令发射控制装置,首先获取正在执行的指令的指令周期和当前该指令的执行周期,例如正在执行的指令的总指令周期是7周期,其当前执行周期是2周期,然后再获取待发射指令的指令周期,例如待发射指令的指令周期是2周期,则根据该正在执行指令的指令周期、其当前执行周期和待发射指令的指令周期,来控制待发射指令发射,即在所有待发射指令按符合发射条件的顺序排列的前提下,实时检测待发射指令的指令周期,若发现待发射指令会与正在执行的指令发生写回冲突,则可以先不发射该待发射指令,先发射其他不会与该正在执行的指令发生写回冲突的指令,以此来控制待发射指令发射,避免待发射指令与正在执行指令发生回写冲突,并且也可以提高指令执行的效率。

在一个较佳实施方式中,该处理模块83包括判断单元及处理单元,其中该判断单元用于根据正在执行指令的指令周期、当前执行周期和待发射指令的指令周期,实时判断待发射指令是否会与正在执行指令发生写回冲突;该处理单元用于当待发射指令不会与正在执行指令发生写回冲突时,控制发射待发射指令。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本发明实施例还提供了一种指令执行验证装置,如图9所示,该验证装置包括执行模块91、判断模块92及验证模块93;

其中,该执行模块91,用于执行根据上述具体实施方式所述的指令发射控制装置发射的指令,获取执行结果;具体内容详见步骤s201所述;

判断模块92,用于将该执行结果与预设结果进行比较,判断指令的执行结果是否正确,得到判断结果;具体内容详见步骤s202所述;

验证模块93,用于根据该判断结果验证执行该指令的流水线是否正确;具体内容详见步骤s203所述。

通过上述指令执行验证装置,将指令的执行结果与预设结果进行比较,从而判断指令的执行结果是否正确,得到判断结果,然后根据该判断结果验证执行指令的流水线是否正确,从而对乱序执行流水线进行验证,为程序设计提供参考依据。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

实施例4

本发明实施例提供了一种指令发射设备及一种指令执行验证设备,如图10所示,该指令发射设备或指令执行验证设备分别可以包括处理器101和存储器102,其中处理器101和存储器102可以通过总线或者其他方式连接,图10中以通过总线连接为例。

处理器101可以为中央处理器(centralprocessingunit,cpu)。处理器101还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器102作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的指令发射控制方法或指令执行验证方法对应的程序指令/模块(例如,图8所示的第一获取模块81、第二获取模块82及处理模块83,或者,图9所示的执行模块91、判断模块92及验证模块93)。处理器101通过运行存储在存储器102中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的指令发射控制方法或指令执行验证方法。

存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器101所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至处理器101。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器102中,当被所述处理器101执行时,执行如图1-7所示实施例中的指令发射控制方法或指令执行验证方法。

上述指令发射设备或指令执行验证设备具体细节可以对应参阅图1至图9所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。

本发明实施例还提供了一种指令执行验证系统,如图11所示,该指令执行验证系统包括上述具体实施方式中的指令发射设备111及指令执行验证设备112。

该指令执行验证系统的具体各个部分的介绍如下:

验证对象为矢量标量计算单元vsu,本发明实施例中从指令的完整流程中的指令发射切入验证、不考虑上游取指和下游的提交(指只考虑指令库里的指令),本发明实施例中重点在于合理准确的发射指令以符合实际执行单元上游行为、以及对乱序执行结果的准确核对。为简化说明,以单线程、单传递途径为例,矢量标量计算单元vsu里有多类指令功能执行流水,各功能执行流水并行工作,每周期进入一个指令,对指令译码之后会使指令进入对应类型的执行流水线,各类指令执行周期不同,因此后进来的执行周期短的指令可能比先进来的执行周期长的指令先完成,因此在结果写回阶段是乱序的,并不是按照指令进入矢量标量计算单元的顺序,具体地,写回是指将输出结果写入vsu的存储器里面。

指令发射设备111中,符合发射条件的优先发射:比如加法指令,要看两个数据是否准备好,若准备好,则加法指令发射,若没有准备好,先执行其他指令,模拟符合发射单元规则的行为,这里包括指令库中的不同执行周期、可变执行周期、多周期指令,传递途径流水线控制(确保各个指步骤发出相关信号,以符合流水线和接口协议),写回冲突检测、长周期指令检测、相关性检测。输入指令数据结构和输出结果数据结构中有多个元素,为简化说明,这里只示出两个,指令标签、目的地址标签;

指令执行验证设备112中包括:参考模型及结果比较装置,其中,参考模型采用的是c实现的矢量标量计算单元参考模型,其特点是能用真实目标指令集校准,功能行为准确;激励输入后,单拍执行结束,即参考模型返回的结果是顺序的;结果比较装置包括参考模型的期望值队列、根据实际模块返回值的指令标签属性的检索、以及期望值和实际值的各元素属性的比较。

上述各个模块的具体内容在上述方法实施例中已经有相关描述,在此不再赘述。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1