CN109885857B - 指令发射控制方法、指令执行验证方法、系统及存储介质 - Google Patents

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

Info

Publication number
CN109885857B
CN109885857B CN201811605223.5A CN201811605223A CN109885857B CN 109885857 B CN109885857 B CN 109885857B CN 201811605223 A CN201811605223 A CN 201811605223A CN 109885857 B CN109885857 B CN 109885857B
Authority
CN
China
Prior art keywords
instruction
transmitted
execution
period
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811605223.5A
Other languages
English (en)
Other versions
CN109885857A (zh
Inventor
彭琅
冯春阳
刘刚
黄晶
王俊杰
张兴革
张帅
马擎堃
雷水燕
袁良晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Hexin Digital Technology Co ltd
Original Assignee
Shanghai Hexin Digital Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Hexin Digital Technology Co ltd filed Critical Shanghai Hexin Digital Technology Co ltd
Priority to CN201811605223.5A priority Critical patent/CN109885857B/zh
Publication of CN109885857A publication Critical patent/CN109885857A/zh
Application granted granted Critical
Publication of CN109885857B publication Critical patent/CN109885857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

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

Description

指令发射控制方法、指令执行验证方法、系统及存储介质
技术领域
本发明涉及计算机处理器技术领域,具体涉及一种指令发射控制方法、指令执行验证方法、系统及存储介质。
背景技术
在处理器设计中,矢量标量计算单元,即执行单元,是最体现处理器计算能力的功能单元,其功能复杂,指令集的大部分计算指令都要在其中实现,且各类指令的执行周期各不相同。作为超标量处理器的重要运算单元,矢量标量计算单元也必须实现指令乱序执行的功能,乱序执行广泛应用在超标量处理器设计中,能极大提高功能单元流水线的执行效率,提高处理器的性能。
指令在发射阶段根据可用资源的准备情况,乱序发射,在执行阶段,各个执行单元的执行流水线级数各不相同,因此指令在流水线的写回阶段也是乱序的,在现有技术中,为减少不同周期指令的写回冲突,会采取更改原指令的执行周期的方法,这样虽然改善了发射的堵塞情况,但是增加了乱序的情况,因此,现有的指令执行控制方法,依然存在由于发射过程不合理而导致的指令执行过程效率低的问题。
发明内容
有鉴于此,本发明实施例提供了一种指令发射控制方法、指令执行验证方法、系统及存储介质,以解决现有技术中的指令执行控制方法,依然存在由于发射过程不合理而导致的指令执行过程效率低的问题。
根据第一方面,本发明实施例提供了一种指令发射控制方法,包括:获取正在执行指令的指令周期和当前执行周期;获取待发射指令的指令周期;根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令发射。
结合第一方面,在第一方面第一实施方式中,所述根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述发射指令发射,包括:根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:当所述待发射指令会与所述正在执行指令发生写回冲突时,延迟预定时间发射所述待发射指令。
结合第一方面第一实施方式,在第一方面第三实施方式中,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:当所述待发射指令会与所述正在执行指令发生写回冲突时,将所述待发射指令的指令周期转换为预设周期后发射所述待发射指令。
结合第一方面,在第一方面第四实施方式中,所述指令发射装置控制方法还包括:根据正在执行指令的指令周期判断所述正在执行指令是否为长周期指令;当所述正在执行指令为长周期指令时,根据所述待发射指令的指令周期判断所述待发射指令是否为长周期指令;当所述待发射指令为长周期指令时,获取所述正在执行指令执行完成的指示信息;当获取到所述指示信息后,控制发射所述待发射指令。
结合第一方面,在第一方面第五实施方式中,所述指令发射控制方法还包括:判断所述待发射指令的源操作数寄存器是否与所述正在执行指令的目的寄存器冲突;当所述待发射指令的源操作数寄存器与所述正在执行指令的目的寄存器冲突时,判定所述正在执行指令与所述待发射指令相关;判断所述正在执行指令是否符合旁路控制条件,若是,则同时发射旁路控制信号和所述待发射指令;其中,所述旁路控制条件为所述正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至所述待发射指令的执行阶段,其中,所述执行结果从旁路发送至所述待发射指令。
根据第二方面,本发明实施例提供了一种指令执行验证方法,包括:执行根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令,获取执行结果;将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;根据所述判断结果验证执行所述指令的流水线是否正确。
结合第二方面,在第二方面第一实施方式中,在执行根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令,获取执行结果的步骤之前,还包括:对发射的所述指令设置指令标签。
结合第二方面第一实施方式,在第二方面第二实施方式中,所述预设结果是通过以下步骤获取的:将根据第一方面或第一方面任一实施方式所述的指令发射控制方法发射的指令输入至预设数据库;其中,所述指令具有所述指令标签,所述预设数据库中存储有所有所述待发射指令、所述待发射指令的预设结果及所述待发射指令与所述预设结果之间的对应关系;根据所述指令及所述对应关系获取所述预设结果。
结合第二方面第二实施方式,在第二方面第三实施方式中,所述将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果的步骤之前,还包括:根据所述执行结果中的所述指令标签,获取所述预设结果中与所述指令标签对应的所述指令的预设结果。
根据第三方面,本发明实施例提供了一种指令发射控制装置,包括:第一获取模块,用于获取正在执行指令的指令周期和当前执行周期;第二获取模块,用于获取待发射指令的指令周期;处理模块,用于根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令的发射顺序。
结合第三方面,在第三方面第一实施方式中,所述处理模块包括:判断单元,用于根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;处理单元,用于当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。
根据第四方面,本发明实施例提供了一种指令执行验证装置,包括:执行模块,用于执行根据如上所述的指令发射控制装置发射的指令,获取执行结果;判断模块,用于将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;验证模块,用于根据所述判断结果验证执行所述指令的流水线是否正确。
根据第五方面,本发明实施例提供了一种指令发射设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面或第一方面任一实施方式所述的指令发射控制方法。
根据第六方面,本发明实施例提供了一种指令执行验证设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第二方面或第二方面任一实施方式所述的指令执行验证方法。
根据第七方面,本发明实施例提供了一种指令执行验证系统,包括:第五方面所述的指令发射设备及第六方面所述的指令执行验证设备。
根据第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一实施方式所述的指令发射控制方法或第二方面或第二方面任一实施方式所述的指令执行验证方法。
本发明实施例技术方案,具有如下优点:
本发明实施例提供了一种指令发射控制方法,包括:获取正在执行指令的指令周期和当前执行周期,获取待发射指令的指令周期,根据该正在执行指令的指令周期、当前执行周期,和待发射指令的指令周期,控制待发射指令发射。通过本发明实施例的指令发射控制方法,首先获取正在执行的指令的指令周期和当前该指令的执行周期,例如正在执行的指令的总指令周期是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可以为中央处理器(Central Processing Unit,CPU)。处理器101还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,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-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (16)

1.一种指令发射控制方法,其特征在于,包括:
获取正在执行指令的指令周期和当前执行周期;
获取待发射指令的指令周期;
根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令发射;
判断所述待发射指令的源操作数寄存器是否与所述正在执行指令的目的寄存器冲突;
当所述待发射指令的源操作数寄存器与所述正在执行指令的目的寄存器冲突时,判定所述正在执行指令与所述待发射指令相关;
判断所述正在执行指令是否符合旁路控制条件,若是,则同时发射旁路控制信号和所述待发射指令;其中,所述旁路控制条件为所述正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至所述待发射指令的执行阶段,其中,所述执行结果从旁路发送至所述待发射指令的执行阶段;
若不符合旁路控制条件,则延迟预定时间再发射所述待发射指令。
2.根据权利要求1所述的指令发射控制方法,其特征在于,所述根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述发射指令发射,包括:
根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;
当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。
3.根据权利要求2所述的指令发射控制方法,其特征在于,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:
当所述待发射指令会与所述正在执行指令发生写回冲突时,延迟预定时间发射所述待发射指令。
4.根据权利要求2所述的指令发射控制方法,其特征在于,所述实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突的步骤之后,还包括:
当所述待发射指令会与所述正在执行指令发生写回冲突时,将所述待发射指令的指令周期转换为预设周期后发射所述待发射指令。
5.根据权利要求1所述的指令发射控制方法,其特征在于,还包括:
根据正在执行指令的指令周期判断所述正在执行指令是否为长周期指令;
当所述正在执行指令为长周期指令时,根据所述待发射指令的指令周期判断所述待发射指令是否为长周期指令;
当所述待发射指令为长周期指令时,获取所述正在执行指令执行完成的指示信息;
当获取到所述指示信息后,控制发射所述待发射指令。
6.一种指令执行验证方法,其特征在于,包括:
执行根据权利要求1-5任一项所述的指令发射控制方法发射的指令,获取执行结果;
将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;
根据所述判断结果验证执行所述指令的流水线是否正确。
7.根据权利要求6所述的指令执行验证方法,其特征在于,在执行根据权利要求1-5任一项所述的指令发射控制方法发射的指令,获取执行结果的步骤之前,还包括:对发射的所述指令设置指令标签。
8.根据权利要求7所述的指令执行验证方法,其特征在于,所述预设结果是通过以下步骤获取的:
将根据所述权利要求1-5任一项所述的指令发射控制方法发射的指令输入至预设数据库;其中,所述指令具有所述指令标签,所述预设数据库中存储有所有所述待发射指令、所述待发射指令的预设结果及所述待发射指令与所述预设结果之间的对应关系;
根据所述指令及所述对应关系获取所述预设结果。
9.根据权利要求8所述的指令执行验证方法,其特征在于,所述将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果的步骤之前,还包括:
根据所述执行结果中的所述指令标签,获取所述预设结果中与所述指令标签对应的所述指令的预设结果。
10.一种指令发射控制装置,其特征在于,包括:
第一获取模块,用于获取正在执行指令的指令周期和当前执行周期;
第二获取模块,用于获取待发射指令的指令周期;
处理模块,用于根据所述正在执行指令的指令周期、当前执行周期,和所述待发射指令的指令周期,控制所述待发射指令发射;
所述处理模块,还用于:
判断所述待发射指令的源操作数寄存器是否与所述正在执行指令的目的寄存器冲突;
当所述待发射指令的源操作数寄存器与所述正在执行指令的目的寄存器冲突时,判定所述正在执行指令与所述待发射指令相关;
判断所述正在执行指令是否符合旁路控制条件,若是,则同时发射旁路控制信号和所述待发射指令;其中,所述旁路控制条件为所述正在执行指令的执行结果输出后且在写回目的寄存器前,能够发送至所述待发射指令的执行阶段,其中,所述执行结果从旁路发送至所述待发射指令的执行阶段;
若不符合旁路控制条件,则延迟预定时间再发射所述待发射指令。
11.根据权利要求10所述的指令发射控制装置,其特征在于,所述处理模块包括:
判断单元,用于根据所述正在执行指令的指令周期、当前执行周期和所述待发射指令的指令周期,实时判断所述待发射指令是否会与所述正在执行指令发生写回冲突;
处理单元,用于当所述待发射指令不会与所述正在执行指令发生写回冲突时,控制发射所述待发射指令。
12.一种指令执行验证装置,其特征在于,包括:
执行模块,用于执行根据权利要求10或11所述的指令发射控制装置发射的指令,获取执行结果;
判断模块,用于将所述执行结果与预设结果进行比较,判断所述指令的执行结果是否正确,得到判断结果;
验证模块,用于根据所述判断结果验证执行所述指令的流水线是否正确。
13.一种指令发射设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-5任一项所述的指令发射控制方法。
14.一种指令执行验证设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求6-9任一项所述的指令执行验证方法。
15.一种指令执行验证系统,其特征在于,包括:权利要求13所述的指令发射设备及权利要求14所述的指令执行验证设备。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的指令发射控制方法或权利要求6-9任一项所述的指令执行验证方法。
CN201811605223.5A 2018-12-26 2018-12-26 指令发射控制方法、指令执行验证方法、系统及存储介质 Active CN109885857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811605223.5A CN109885857B (zh) 2018-12-26 2018-12-26 指令发射控制方法、指令执行验证方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811605223.5A CN109885857B (zh) 2018-12-26 2018-12-26 指令发射控制方法、指令执行验证方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN109885857A CN109885857A (zh) 2019-06-14
CN109885857B true CN109885857B (zh) 2023-09-01

Family

ID=66925267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811605223.5A Active CN109885857B (zh) 2018-12-26 2018-12-26 指令发射控制方法、指令执行验证方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN109885857B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538534B (zh) * 2020-04-07 2023-08-08 江南大学 一种基于指令凋零的多指令乱序发射方法及处理器
CN111523283B (zh) * 2020-04-16 2023-05-26 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
CN111930427B (zh) * 2020-08-17 2022-06-21 北京百度网讯科技有限公司 指令发射方法、装置、电子设备以及存储介质
CN115840593A (zh) * 2023-02-13 2023-03-24 飞腾信息技术有限公司 处理器中的执行部件的验证方法及装置、设备、存储介质
CN117008977B (zh) * 2023-08-08 2024-03-19 上海合芯数字科技有限公司 一种可变执行周期的指令执行方法、系统和计算机设备
CN116991482B (zh) * 2023-09-05 2023-12-01 飞腾信息技术有限公司 一种指令发射方法、处理器和相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357121A (zh) * 1998-11-16 2002-07-03 因芬尼昂技术股份公司 对不同时间执行的存储器访问,检测在数据总线上的数据冲突的装置和方法
CN101477454A (zh) * 2009-01-22 2009-07-08 浙江大学 嵌入式处理器的乱序执行控制装置
CN102799419A (zh) * 2012-09-05 2012-11-28 无锡江南计算技术研究所 寄存器写冲突检测方法及装置、以及处理器
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1357121A (zh) * 1998-11-16 2002-07-03 因芬尼昂技术股份公司 对不同时间执行的存储器访问,检测在数据总线上的数据冲突的装置和方法
CN101477454A (zh) * 2009-01-22 2009-07-08 浙江大学 嵌入式处理器的乱序执行控制装置
CN102799419A (zh) * 2012-09-05 2012-11-28 无锡江南计算技术研究所 寄存器写冲突检测方法及装置、以及处理器
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法

Also Published As

Publication number Publication date
CN109885857A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN109885857B (zh) 指令发射控制方法、指令执行验证方法、系统及存储介质
CN104881494B (zh) 与Redis服务器进行数据同步的方法、装置和系统
CN107688854B (zh) 一种能支持不同位宽运算数据的运算单元、方法及装置
US9292291B2 (en) Instruction merging optimization
US8612944B2 (en) Code evaluation for in-order processing
US20100180263A1 (en) Apparatus and method for detecting software error
US11513804B2 (en) Pipeline flattener with conditional triggers
WO2015031547A1 (en) Computation hardware with high-bandwidth memory interface
CN104978284A (zh) 处理器子程序高速缓冲存储器
KR102013657B1 (ko) 연관된 다중 파일 정적 분석 장치
CN107589960B (zh) 一种基于寄存器访问冲突检测的dsp指令模拟方法
CN116362168A (zh) 一种gpgpu离线时钟的建模方法、装置和存储介质
WO2017088456A1 (zh) 多输入多输出处理器流水线数据同步装置及方法
JP2018060525A (ja) イベント駆動型ソフトウェアテストシーケンス決定
CN102799419B (zh) 寄存器写冲突检测方法及装置、以及处理器
US20230119126A1 (en) Processing sequential inputs using neural network accelerators
US8627273B2 (en) Model checking of liveness property in a phase abstracted model
CN108469987B (zh) 一种基于中断控制流图的中断验证系统
US9547484B1 (en) Automated compiler operation verification
US11099958B2 (en) Instruction generation for validation of processor functionality
US11163564B1 (en) Vector compare and store instruction that stores index values to memory
US8589735B2 (en) Creating randomly ordered fields while maintaining the temporal ordering based on the value of the fields
US7130988B2 (en) Status register update logic optimization
CN104050034A (zh) 用于静态调度处理器的无阻塞执行的设备和方法
US10776139B2 (en) Simulation apparatus, simulation method, and computer readable medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 215163 No. 9 Xuesen Road, Science and Technology City, Suzhou High-tech Zone, Jiangsu Province

Applicant after: Hexin Technology (Suzhou) Co.,Ltd.

Address before: 215163 building 3, No.9 Xuesen Road, science and Technology City, high tech Zone, Suzhou City, Jiangsu Province

Applicant before: SUZHOU POWERCORE TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20230727

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Shanghai Hexin Digital Technology Co.,Ltd.

Address before: 215163 No. 9 Xuesen Road, Science and Technology City, Suzhou High-tech Zone, Jiangsu Province

Applicant before: Hexin Technology (Suzhou) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant