一种指令的发射和验证方法及装置与流程

文档序号:18008980发布日期:2019-06-25 23:45阅读:148来源:国知局
一种指令的发射和验证方法及装置与流程

本发明涉及指令的发射和验证技术领域,特别是指一种指令的发射和验证方法及装置。



背景技术:

目前,处理器性能的提升从频率的增高转变为对处理器微架构的重新设计和优化,基于各种指令集的特殊指令随之产生,这对处理器微架构的验证提出了新的挑战。

在处理器中,指令执行完毕会将执行结果写回存储器,每个周期执行多条指令时,由于各条指令的执行周期不同,在指令执行过程中周期较长的指令可能会与周期较短的指令同时将执行结果写回存储器,从而可能会产生写回冲突。因此,如何有效解决发送和执行多条指令时的写回冲突,是亟需解决的问题。



技术实现要素:

本发明的目的在于提供一种指令的发射和验证方法及装置,以解决在指令执行过程中周期较长的指令可能会与周期较短的指令同时将执行结果写回存储器,从而会产生写回冲突的问题。

根据第一方面,本发明的实施例提供一种指令的发射方法,包括:获取指令发射单元传输的发射指令;根据所述发射指令的执行周期判断发射指令是否存在写回冲突;当所述发射指令存在写回冲突时,判断所述发射指令是否为可变执行周期指令;当所述发射指令是可变执行周期指令时,改变所述可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至所述指令发射单元,并再次执行根据所述发射指令的执行周期判断所述发射指令是否存在写回冲突的步骤;当所述发射指令不存在写回冲突时,发送所述发射指令。

在一实施例中,当所述发射指令不是可变执行周期指令时,返回根据所述发射指令的执行周期判断所述发射指令是否存在写回冲突的步骤。

在一实施例中,所述在获取指令发射单元发送的发射指令之前,所述发射方法还包括:对所述发射指令进行分类,分类后的发射指令包括:所述可变执行周期指令和分解指令中的至少一种;当所述发射指令为分解指令时,将所述分解指令分解为优先发射的第一指令;以及以所述第一指令的执行结果作为操作数的第二指令。

在一实施例中,改变所述可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至所述指令发射单元的步骤,包括:将所述可变执行周期指令发送到寄存器转换级电路中,通过所述寄存器转换级电路对所述可变执行周期指令的周期进行改变;通过所述寄存器转换级电路将改变周期后的所述可变执行周期指令传输至所述指令发射单元。

在一实施例中,在当所述发射指令不存在写回冲突时,发送所述发射指令之后,所述发射方法还包括:获取发送所述发射指令至第一接收装置产生的第一发射结果和发送所述发射指令至第二接收装置产生的第二发射结果;对所述第一发射结果和第二发射结果进行比较;当所述第一发射结果和第二发射结果一致时,将所述发射指令写回存储器;当所述第一发射结果和第二发射结果不一致时,对所述发射指令记录为错误信息。

在一实施例中,在获取所述发送所述发射指令至第一接收装置产生的第一发射结果和发送所述发射指令至第二接收装置产生的第二发射结果之前,所述发射方法还包括:判断所述发射指令是否为所述分解指令的第一指令;当所述发射指令为所述分解指令的第一指令时,获取所述指令发射单元传输的所述分解指令的第二指令;判断所述第一指令是否存在旁路网络冲突;当所述第一指令存在旁路网络冲突时,所述第一指令的执行结果放置于寄存器中;当所述第一指令不存在旁路网络冲突时,以所述第一指令的执行结果为操作数发送所述第二指令至所述第一接收装置和第二接收装置。

根据第二方面,本发明的实施例提供一种指令的发射装置,包括:发射指令获取模块,用于获取指令发射单元传输的发射指令;写回冲突判断模块,用于根据所述发射指令的执行周期判断发射指令是否存在写回冲突;可变执行周期指令判断模块,用于当所述发射指令存在写回冲突时,判断所述发射指令是否为可变执行周期指令;周期改变模块,用于当所述发射指令是可变执行周期指令时,改变所述可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至所述指令发射单元,并触发所述写回冲突判断模块;指令发送模块,用于当所述发射指令不存在写回冲突时,发送所述发射指令。

根据第三方面,本发明的实施例提供一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如上述第一方面所述的指令的发射方法。

根据第四方面,本发明的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如上述第一方面中所述的指令的发射方法。

本发明的上述技术方案的有益效果如下:

本发明的实施例提供一种指令的发射方法,包括:获取指令发射单元传输的发射指令;根据所述发射指令的执行周期判断发射指令是否存在写回冲突;当所述发射指令存在写回冲突时,判断所述发射指令是否为可变执行周期指令;当所述发射指令是可变执行周期指令时,改变所述可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至所述指令发射单元,并再次执行根据所述发射指令的执行周期判断所述发射指令是否存在写回冲突的步骤;当所述发射指令不存在写回冲突时,发送所述发射指令。当所述发射指令不是可变执行周期指令时,返回根据所述发射指令的执行周期判断所述发射指令是否存在写回冲突的步骤。由此可知,当所述发射指令为可变执行周期指令且存在写回冲突时,通过改变所述可变执行周期指令的周期,来避免写回冲突;当所述发射指令为分解指令且存在写回冲突时,返回根据所述发射指令的执行周期判断所述发射指令是否存在写回冲突的步骤,直到所述分解指令不存在写回冲突,对其进行发送;这样在发射指令写回存储器时,不仅避免了写回冲突,还提高了发送的效率。

本发明的实施例还提供一种指令的发射装置,包括:发射指令获取模块,用于获取指令发射单元传输的发射指令;写回冲突判断模块,用于根据所述发射指令的执行周期判断发射指令是否存在写回冲突;可变执行周期指令判断模块,用于当所述发射指令存在写回冲突时,判断所述发射指令是否为可变执行周期指令;周期改变模块,用于当所述发射指令是可变执行周期指令时,改变所述可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至所述指令发射单元,并触发所述写回冲突判断模块;指令发送模块,用于当所述发射指令不存在写回冲突时,发送所述发射指令。通过发射指令获取模块、写回冲突判断模块、可变执行周期指令判断模块、周期改变模块和指令发送模块,在当发射指令获取模块获取指令之后,通过写回冲突判断模块、可变执行周期指令判断模块和周期改变模块对发射指令进行一定的判断和改变,最终将发射指定发送到指令发送模块,使得发射指令以最快的速度写回存储器。

附图说明

图1表示本发明实施例提供的指令的发射方法的一个具体示例的流程图;

图2表示本发明实施例提供的指令的发射方法的另一个具体示例的流程图。

图3表示本发明实施例提供的指令的发射装置的结构框图;

图4表示本发明实施例提供的计算机设备的连接图。

主要附图标记:

1-发射指令获取模块;2-写回冲突判断模块;3-可变执行周期指令判断模块;4-周期改变模块;5-指令发送模块;41-处理器;42-存储器。

具体实施方式

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

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

如图1所示,本发明的实施例提供一种指令的发射方法,包括:

步骤s1:获取指令发射单元传输的发射指令;发射指令是由指令发生器所产生的,指令发生器将产生的发射指令传输给指令发射单元,指令发射单元对发射指令进行传输。

指令发射单元可以为驱动器,但本发明并不以此为限,在实际应用中,该指令发射单元可以根据需要设置。

步骤s2:根据发射指令的执行周期判断发射指令是否存在写回冲突;具体的,在发射指令写回存储器的时,判断存储器中是否有位置放置新的指令,或判断是否有两条指令需要同时写回存储器,从而存在写回冲突。

步骤s3:当发射指令存在写回冲突时,判断发射指令是否为可变执行周期指令;

当发射指令是可变执行周期指令时,执行步骤s4,改变可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至指令发射单元,并再次执行步骤s2;

当发射指令不存在写回冲突时,执行步骤s5,发送发射指令。

在一可选实施例中,当发射指令不是可变执行周期指令时,返回上述步骤s2。

由此可知,本发明实施例的指令的发射方法所实现的处理过程,当发射指令为可变执行周期指令且存在写回冲突时,通过改变可变执行周期指令的周期,来避免写回冲突;当发射指令为分解指令且存在写回冲突时,返回根据发射指令的执行周期判断发射指令是否存在写回冲突的步骤,直到分解指令不存在写回冲突,对其进行发送;这样在发射指令写回存储器时,不仅避免了写回冲突,还提高了发送的效率。

在一可选实施例中,上述步骤s4,改变可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至指令发射单元的步骤,包括:将可变执行周期指令发送到寄存器转换级电路中,通过寄存器转换级电路对可变执行周期指令的周期进行改变;通过寄存器转换级电路将改变周期后的可变执行周期指令传输至指令发射单元,指令发射单元对改变周期后的可变执行周期指令进行发送。

在一可选实施例中,在获取指令发射单元发送的发射指令之前,发射方法还包括:对发射指令进行分类,分类后的发射指令包括:可变执行周期指令和分解指令中的至少一种;

当发射指令为可变执行周期指令,且存在写回冲突时,根据如上所述的步骤s4对可变执行周期指令进行周期的改变,再进行发送;

当发射指令为分解指令时,将分解指令分解为优先发射的第一指令;以及以第一指令的执行结果作为操作数的第二指令。具体的,指令发射单元优先发射第一指令,判断第一指令是否存在写回冲突,当第一指令存在写回冲突时,返回指令发射单元继续等待,直到不存在写回冲突时,对第一指令进行发送;发送完第一指令之后,获取指令发射单元传输的第二指令;判断第一指令是否存在旁路网络冲突;当第一指令存在旁路网络冲突时,第一指令的执行结果放置于寄存器中,第二指令在发射单元中等待,直到不存在旁路网络冲突时,发射单元发送以第一指令的执行结果为操作数的第二指令;当第一指令不存在旁路网络冲突时,第一指令的执行结果放置于旁路网络中,第二指令在下一周期以第一指令的执行结果为操作数发送第二指令。

需要说明的是,指令发射单元发送的可变执行周期指令和分解指令均发送至第一接收装置和第二接收装置。

在一可选实施例中,在当发射指令不存在写回冲突时,发送发射指令之后,指令的发射方法还包括:获取发送发射指令至第一接收装置产生的第一发射结果和发送发射指令至第二接收装置产生的第二发射结果;对第一发射结果和第二发射结果进行比较;当第一发射结果和第二发射结果一致时,将发射指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。

本发明的实施例提供一种指令的发射装置,如图3所示,该指令的发射装置包括:发射指令获取模块1,用于获取指令发射单元传输的发射指令;详细内容对应于上述方法实施例的步骤s1所述;写回冲突判断模块2,用于根据发射指令的执行周期判断发射指令是否存在写回冲突;详细内容对应于上述方法实施例的步骤s2所述;可变执行周期指令判断模块3,用于当发射指令存在写回冲突时,判断发射指令是否为可变执行周期指令;周期改变模块4,用于当发射指令是可变执行周期指令时,改变可变执行周期指令的周期,将改变周期后的可变执行周期指令传输至指令发射单元,并触发写回冲突判断模块;详细内容对应于上述方法实施例的步骤s4所述,具体方法此处不再赘述;指令发送模块5,用于当发射指令不存在写回冲突时,发送发射指令;所述发射指令发送至第一接收装置和第二接收装置,详细内容如上所述,此处不再赘述。

通过发射指令获取模块、写回冲突判断模块、可变执行周期指令判断模块、周期改变模块和指令发送模块,在当发射指令获取模块获取指令之后,通过写回冲突判断模块、可变执行周期指令判断模块和周期改变模块对发射指令进行一定的判断和改变,最终将发射指定发送到指令发送模块,使得发射指令以最快的速度写回存储器。

综上所述,如图2所示,在一具体实施例中,发射指令从开始获取到写回存储器的具体过程为:

将发射指令分组,分为可变执行周期指令和分解指令;如果为分解指令,将分解指令分为优先发射的第一指令;以及以第一指令的执行结果作为操作数的第二指令;将分组后的发射指令传输到指令发射单元,通过发射指令获取模块获取指令发射单元传输的发射指令;根据发射指令的执行周期判断发射指令是否存在写回冲突;

当发射指令存在写回冲突时,判断发射指令是否为可变执行周期指令;当发射指令是可变执行周期指令时,将可变执行周期指令发送到寄存器转换级电路中,通过寄存器转换级电路对可变执行周期指令的周期进行改变;通过寄存器转换级电路将改变周期后的可变执行周期指令传输至指令发射单元,指令发射单元对改变周期后的可变执行周期指令发送至第一接收装置和第二接收装置;再对发送至第一接收装置中的第一发射结果与发送至第二接收装置中的第二发射结果进行比较,当第一发射结果和第二发射结果一致时,将可变执行周期指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。

当发射指令不存在写回冲突时,对发射指令直接进行发送,再判断发射指令是否为分解指令的第一指令;当发射指令不是第一指令时,将发射指令发送至第一接收装置和第二接收装置,再对发送至第一接收装置中的第一发射结果与发送至第二接收装置中的第二发射结果进行比较,当第一发射结果和第二发射结果一致时,将可变执行周期指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。当发射指令是第一指令时,发送完第一指令之后,获取指令发射单元传输的第二指令;判断第一指令是否存在旁路网络冲突;当第一指令存在旁路网络冲突时,第一指令的执行结果放置于寄存器中,第二指令在发射单元中等待,直到不存在旁路网络冲突时,发射单元发送以第一指令的执行结果为操作数的第二指令至第一接收装置和第二接收装置;再对发送至第一接收装置中的第一发射结果与发送至第二接收装置中的第二发射结果进行比较,当第一发射结果和第二发射结果一致时,将分解指令的第二指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。当第一指令不存在旁路网络冲突时,第一指令的执行结果放置于旁路网络中,等到下一周期指令发射单元发送以第一指令的执行结果为操作数的第二指令至第一接收装置和第二接收装置;再对发送至第一接收装置中的第一发射结果与发送至第二接收装置中的第二发射结果进行比较,当第一发射结果和第二发射结果一致时,将分解指令的第二指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。

当发射指令存在写回冲突时,判断发射指令是否为可变执行周期指令;当发射指令不是可变执行周期指令,即为分解指令的第一指令时,返回指令发射单元继续等待,直到不存在写回冲突时,对第一指令发送至第一接收装置和第二接收装置;再对发送至第一接收装置中的第一发射结果与发送至第二接收装置中的第二发射结果进行比较,当第一发射结果和第二发射结果一致时,将分解指令的第二指令写回存储器;当第一发射结果和第二发射结果不一致时,对发射指令记录为错误信息。

需要是说明的,在本发明实施例中,上述的第一接收装置可以为寄存器转换级电路,第二接收装置为参考模型,但本发明并不以此为限,在实际应用中,该第一接收装置和第二接收装置可以根据需要设置。

本发明实施例还提供了一种计算机设备,如图4所示,该计算机设备可以包括处理器41和存储器42,其中处理器41和存储器42可以通过总线或者其他方式连接,图4中以通过总线连接为例。

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

存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的服务器的控制方法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的指令的发射方法。

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

上述计算机设备具体细节可以对应参阅图1至图3所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。

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

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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