CN111930427B - 指令发射方法、装置、电子设备以及存储介质 - Google Patents
指令发射方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN111930427B CN111930427B CN202010827436.3A CN202010827436A CN111930427B CN 111930427 B CN111930427 B CN 111930427B CN 202010827436 A CN202010827436 A CN 202010827436A CN 111930427 B CN111930427 B CN 111930427B
- Authority
- CN
- China
- Prior art keywords
- instruction
- transmission
- transmitting
- channels
- unit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000005540 biological transmission Effects 0.000 claims abstract description 263
- 230000015654 memory Effects 0.000 claims description 25
- 208000032369 Primary transmission Diseases 0.000 claims description 17
- 208000032370 Secondary transmission Diseases 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 13
- 239000000725 suspension Substances 0.000 claims description 6
- 230000000712 assembly Effects 0.000 claims 1
- 238000000429 assembly Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 11
- 238000011161 development Methods 0.000 abstract description 4
- 238000013507 mapping Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Communication Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请公开了指令发射方法、装置、电子设备以及存储介质,涉及处理器(数字芯片)、数据处理、语音处理技术领域。具体实现方案为:译码单元获取发射周期内两个发射通道的发射状态;所述译码单元根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号;所述译码单元控制所述两个发射通道按照所述发射控制信号向执行单元发射指令。本申请的发射方法,能够根据两个发射通道的发射状态组合确定针对两个发射通道的发射控制信号,且可控制两个发射通道按照发射控制信号发射指令,可实现乱序发射,相较于一些乱序发射架构采用在硬件中设置保留站的方式,该方法具有硬件结构简单、处理器占用面积和功耗小、开发成本低等优点。
Description
技术领域
本申请涉及计算机技术领域中的处理器、数据处理、语音处理技术领域,尤其涉及一种指令发射方法、装置、电子设备以及存储介质。
背景技术
目前,处理器的架构对处理器的执行效率影响很大,有些处理器采用顺序发射架构,具有硬件结构简单、易于实现的优点,然而若前面的指令不能发射,则会导致后面的指令也不能发射,处理器的执行效率不高。在一些对实时性要求较高的场景下,需要处理器具有较高的执行效率,比如语音处理中含有大量数字信号处理,需要处理器尽快下发指令并执行,则顺序发射架构无法满足要求。还有些处理器采用乱序发射架构,处理器的执行效率较高,然而相关技术中的乱序发射架构大多采用在硬件中设置保留站的方式,对硬件资源要求较高,不易实现。
发明内容
提供了一种指令发射方法、装置、电子设备、存储介质和计算机程序产品。
根据第一方面,提供了一种指令发射方法,包括:译码单元获取发射周期内两个发射通道的发射状态;所述译码单元根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号;以及所述译码单元控制所述两个发射通道按照所述发射控制信号向执行单元发射指令。
根据第二方面,提供了一种指令发射装置,包括:译码单元和执行单元,所述译码单元与所述执行单元连接,所述译码单元包括两个发射通道;
所述译码单元,用于获取发射周期内两个发射通道的发射状态,根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号,并控制所述两个发射通道按照所述发射控制信号向执行单元发射指令;以及所述执行单元,用于执行接收到的所述指令。
根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面所述的指令发射方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面所述的指令发射方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本申请第一方面所述的指令发射方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的指令发射方法的流程示意图;
图2是根据本申请第二实施例的指令发射方法中生成指令取出信号之后的流程示意图;
图3是根据本申请第三实施例的指令发射方法中按照发射控制信号向执行单元发射指令的流程示意图;
图4是根据本申请第四实施例的指令发射方法中向目标指令执行组件发射指令的流程示意图;
图5是根据本申请第五实施例的指令发射方法中写回指令的执行结果的流程示意图;
图6是根据本申请第六实施例的指令发射方法中根据指令编号按序将执行结果写入通用寄存器中的流程示意图;
图7是根据本申请第七实施例的指令发射方法中指令编号与存储位置的编号一一对应的示意图;
图8是根据本申请第八实施例的指令发射方法中处理器的示意图;
图9是根据本申请第一实施例的指令发射装置的框图;
图10是根据本申请第二实施例的指令发射装置的框图;
图11是用来实现本申请实施例的指令发射方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请第一实施例的指令发射方法的流程示意图。
如图1所示,本申请第一实施例的指令发射方法包括:
S101,译码单元获取发射周期内两个发射通道的发射状态。
需要说明的是,本申请实施例的指令发射方法的执行主体可为具有数据信息处理能力的硬件设备和/或驱动该硬件设备工作所需必要的软件。可选的,执行主体可包括工作站、服务器、计算机、用户终端及其他网络设备。可选的,指令发射方法的执行主体可为中央处理器(Central Processing Unit,CPU)。
本公开的实施例中,译码单元(Instruction Decode Unit,IDU)包括两个发射通道,均可对指令进行译码,并可将译码后的指令发射出去。
本公开的实施例中,发射周期可根据实际情况进行标定,并预先设置在译码单元的存储空间中。可选的,每个发射周期内,译码单元的每个发射通道最多可发射一条指令,则译码单元最多可发射两条指令。
在具体实施中,发射通道的发射状态可包括可发射和不可发射两种状态。
S102,译码单元根据两个发射通道的发射状态组合,生成针对两个发射通道的发射控制信号。
在具体实施中,发射状态组合包括但不限于两个发射通道均可发射、两个发射通道均不可发射、其中一个发射通道可发射且另一个发射通道不可发射这三种状态组合。发射控制信号包括但不限于指示发射通道发射指令的信号、指示发射通道暂停发射指令的信号等。
可选的,可预先建立发射状态组合和发射控制信号之间的映射关系或者映射表,在获取到发射状态组合之后,通过查询映射关系或者映射表,可确定此时的发射控制信号,用于控制两个发射通道中指令的发射。应说明的是,上述映射关系或者映射表均可根据实际情况进行标定,并预先设置在译码单元的存储空间中。
S103,译码单元控制两个发射通道按照发射控制信号向执行单元发射指令。
本公开的实施例中,执行单元(Execution Unit)可执行译码后的指令。
可以理解的是,执行单元可包括多个指令执行组件,每个指令执行组件可用于执行不同类型的指令。例如,执行单元包括但不限于加法指令执行组件,减法指令执行组件等。
在具体实施中,假设译码单元包括发射通道A和发射通道B,且一个发射周期内,设置发射通道A中的指令永远比发射通道B中的指令的取出时间早。若此时发射通道A不可发射,发射通道B可发射,则译码单元可生成指示发射通道A暂停发射指令,且指示发射通道B发射指令的信号,进而译码单元可控制发射通道A暂停发射指令,且控制发射通道B发射指令,可知此时发射通道B中的指令比发射通道A中的指令的发射时间早,即该方法可实现乱序发射,处理器的执行效率较高。
综上,根据本申请实施例的指令发射方法,能够根据两个发射通道的发射状态组合确定针对两个发射通道的发射控制信号,且可控制两个发射通道按照发射控制信号发射指令,可实现乱序发射,执行效率高,相较于相关技术中乱序发射架构采用在硬件中设置保留站的方式,该方法具有硬件结构简单、处理器占用面积和功耗小、开发成本低等优点。
通过本申请的指令发射方法进行语音处理等对实时性要求较高的场景时,由于本申请的指令发射方法可实现乱序发射,处理器的执行效率较高,可尽快下发指令并执行计算,能够满足语音处理等场景对实时性的要求。
在上述任一实施例的基础上,步骤S101中译码单元获取发射周期内两个发射通道的发射状态,可包括译码单元根据发射通道内指令对应的寄存器的状态、指令对应的指令执行组件的状态、发射通道的状态、两个发射通道内的指令是否冲突,确定发射通道的发射状态。
可选的,若发射通道内指令对应的寄存器、指令执行组件均可用,发射通道也可用,且两个发射通道内的指令不存在冲突,则可确定发射通道为可发射。
在具体实施中,有的指令需要从寄存器中获取操作数,若寄存器不可用,则指令无法获取操作数,该指令不可发射,进而可确定指令所在的发射通道不可发射。
在具体实施中,有的指令对应的指令执行组件有可能正在执行之前已发射的指令,此时指令对应的指令执行组件不可用,该指令不可发射,进而可确定指令所在的发射通道不可发射。
在具体实施中,两个发射通道内的指令可能存在冲突,例如,两个发射通道内的指令对应的指令执行组件可能为同一个指令执行组件,此时可确定其中一个发射通道可发射且另一个发射通道不可发射。可选的,若两个发射通道可包括主发射通道和次发射通道,主发射通道的发射优先级高于次发射通道的优先级,假设主发射通道和次发射通道内的指令存在冲突,则可确定主发射通道可发射,且次发射通道不可发射,以确保主发射通道优先发射。
由此,该方法可综合考虑发射通道内指令对应的寄存器的状态、指令对应的指令执行组件的状态、发射通道的状态、两个发射通道内的指令是否冲突,来判定发射通道的发射状态。
在上述任一实施例的基础上,步骤S102中译码单元根据两个发射通道的发射状态组合,生成针对两个发射通道的发射控制信号,可包括以下三种可能的实施方式:
方式1、译码单元确定发射状态组合表征两个发射通道均可发射,则生成指示两个发射通道的发射的第一发射控制信号。
在具体实施中,若两个发射通道均可发射,则可生成指示两个发射通道的发射的第一发射控制信号,以控制两个发射通道均可发射指令。
方式2、译码单元确定发射状态组合表征两个发射通道均不可发射,则生成指示两个发射通道的暂停发射的第二发射控制信号。
在具体实施中,若两个发射通道均不可发射,则可生成指示两个发射通道的暂停发射的第二发射控制信号,以控制两个发射通道均暂停发射指令。
方式3、译码单元确定发射状态组合表征两个发射通道中其中一个发射通道可发射,另一个发射通道不可发射,则生成指示其中一个发射通道的发射且另一个发射通道暂停发射的第三发射控制信号。
在具体实施中,假设两个发射通道分别为发射通道A和发射通道B,且发射通道A可发射,发射通道B不可发射,则可生成指示发射通道A的发射且发射通道B暂停发射的第三发射控制信号,以控制发射通道A发射指令,以及控制发射通道B暂停发射指令。
由此,该方法可根据两个发射通道的三种发射状态组合,分别生成针对两个发射通道的三种发射控制信号。
在上述任一实施例的基础上,两个发射通道可包括主发射通道和次发射通道,主发射通道的发射优先级高于次发射通道的优先级。
需要说明的是,在一个发射周期内,主发射通道内的指令永远比次发射通道内的指令的取出时间早。
进一步地,步骤S102中译码单元根据两个发射通道的发射状态组合,生成针对两个发射通道的发射控制信号,还可包括以下三种可能的实施方式:
方式1、主发射通道和次发射通道均可发射,则译码单元生成指示主发射通道先发射,主发射通道发射完成后,次发射通道再发射的发射控制信号。
方式2、主发射通道可发射,次发射通道不可发射,则译码单元生成将次发射通道中待发射的指令转移到主发射通道进行发射的转移指示信号,然后译码单元按照转移指示信号将待发射的指令转移至主发射通道内。
在具体实施中,若主发射通道可发射,次发射通道不可发射,则可先控制主发射通道发射指令,且同时可控制次发射通道暂停发射指令,之后译码单元还可生成将次发射通道中待发射的指令转移到主发射通道进行发射的转移指示信号,以将次发射通道中待发射的指令通过主发射通道进行发射。应说明的是,由于每个发射通道在一个发射周期内最多发射一条指令,则次发射通道中待发射的指令在下一个发射周期内通过主发射通道进行发射。
进一步地,将次发射通道中待发射的指令转移到主发射通道之后,主发射通道处于占用状态,次发射通道处于空闲状态,可将读取出的新指令发送至次发射通道。
方式3、主发射通道不可发射,次发射通道可发射,则译码单元生成指示次发射通道的发射且主发射通道暂停发射的发射控制信号。
在具体实施中,若主发射通道不可发射,次发射通道可发射,则可先控制次发射通道发射指令,且同时可控制主发射通道暂停发射指令。
进一步地,将次发射通道中待发射的指令发射出去之后,次发射通道处于空闲状态,主发射通道处于占用状态,可将读取出的新指令发送至次发射通道。
由此,该方法可综合考虑发射通道的优先级和发射状态组合,控制发射通道的发射。
在上述实施例的基础上,步骤S101中译码单元获取发射周期内两个发射通道的发射状态之后,译码单元还可根据两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号。
本公开的实施例中,指令取出单元(Instruction Fetch Unit,IFU)可读取指令,并将指令发送给译码单元。可选的,可预先将编译后的指令存储在处理器的指令存储空间中,则指令取出单元可从指令存储空间中按照指令的先后顺序读取指令。可选的,每个发射周期内,指令取出单元最多可读取两条新指令。
本公开的实施例中,指令取出信号包括但不限于指示指令取出单元读取两条新指令的信号、指示指令取出单元读取一条新指令的信号、指示指令取出单元暂停读取新指令的信号等。
可选的,可预先建立发射状态组合和指令取出信号之间的映射关系或者映射表,在获取到发射状态组合之后,通过查询映射关系或者映射表,可确定此时的指令取出信号,用于控制指令取出单元读取指令。应说明的是,上述映射关系或者映射表均可根据实际情况进行标定,并预先设置在译码单元的存储空间中。
由此,该方法能够根据两个发射通道的发射状态组合确定针对指令取出单元的指令取出信号。
在上述任一实施例的基础上,译码单元根据两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号,可包括以下三种可能的实施方式:
方式1、译码单元确定发射状态组合表征两个发射通道的发射状态均为可发射,生成指示指令取出单元读取两条新指令的第一指令取出信号。
在具体实施中,若两个发射通道均可发射,表明两个发射通道内的指令均可发射出去,之后两个发射通道均有可能处于空闲状态,则可生成指示指令取出单元读取两条新指令的第一指令取出信号,以控制指令取出单元读取两条新指令。
方式2、译码单元确定发射状态组合表征两个发射通道的发射状态均为不可发射,则生成指示指令取出单元暂停读取新指令的第二指令取出信号。
在具体实施中,若两个发射通道均不可发射,表明两个发射通道内的指令均不可发射出去,之后两个发射通道均处于占用状态,则可生成指示指令取出单元暂停读取新指令的第二指令取出信号,以控制指令取出单元暂停读取新指令。
方式3、译码单元确定发射状态组合表征两个发射通道中其中一个发射通道的发射状态为可发射,另一个发射通道为不可发射,则生成指示指令取出单元读取一个新指令的第三指令取出信号。
在具体实施中,假设两个发射通道分别为发射通道A和发射通道B,且发射通道A可发射,发射通道B不可发射,表明发射通道A内的指令可发射出去,发射通道B内的指令不可发射出去,之后发射通道A有可能处于空闲状态,发射通道B处于占用状态,则可生成指示指令取出单元读取一个新指令的第三指令取出信号,以控制指令取出单元读取一个新指令。
由此,该方法可根据两个发射通道的三种发射状态组合,分别生成针对指令取出单元的三种指令取出信号。
在上述任一实施例的基础上,如图2所示,译码单元根据两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号之后,可包括:
S201,译码单元将指令取出信号发送给指令取出单元。
S202,指令取出单元继续按照指令取出信号对新指令进行读取。
S203,指令取出单元将读取出的新指令发送至两个发射通道中未被占用的发射通道内。
本公开的实施例中,若发射通道中还存在待发射的指令,则可识别该发射通道处于占用状态,此时不能向该发射通道发送新指令;反之,若发射通道中不存在待发射的指令,则可识别该发射通道处于未被占用状态或者空闲状态,此时可向该发射通道发送新指令。
在具体实施中,译码单元可监控两条发射通道是否处于占用状态,并将监控结果反馈给指令取出单元。
可选的,若两个发射通道均处于未被占用的状态,且两个发射通道包括主发射通道和次发射通道,则可将取出时间较早的指令发送至主发射通道,将取出时间较晚的指令发送至次发射通道。
可选的,若两个发射通道均处于占用状态,则可控制指令取出单元暂停将读取的新指令发送至发射通道,直至至少一个发射通道处于未被占用状态,则继续控制指令取出单元将读取的新指令发送至两个发射通道中未被占用的发射通道内。
由此,该方法能够控制指令取出单元按照指令取出信号读取指令,且可将读取出的新指令发送至未被占用的发射通道内。
在上述任一实施例的基础上,步骤S103中的执行单元中可包括多个指令执行组件,如图3所示,步骤S103中译码单元控制两个发射通道按照发射控制信号向执行单元发射指令,可包括:
S301,译码单元获取多个指令执行组件的状态。
本公开的实施例中,指令执行组件的状态包括但不限于占用状态和闲置状态。若指令执行组件正在执行之前已发射的指令,则可识别指令执行组件处于占用状态;反之,若指令执行组件当前没有执行指令,则可识别指令执行组件处于闲置状态。
在具体实施中,执行单元可监控其所包括的多个指令执行组件的状态,并将监控结果反馈给译码单元。
S302,译码单元从多个指令执行组件中获取处于闲置状态的目标指令执行组件。
在具体实施中,译码单元可根据指令的类型,从多个指令执行组件中选取与指令的类型相匹配的候选指令执行组件,然后再从候选指令执行组件中选取处于闲置状态的目标指令执行组件。
例如,若指令为加法运算指令,执行单元中包括3个加法指令执行组件A、B、C,则可先将加法指令执行组件A、B、C作为与指令的类型相匹配的候选指令执行组件,若加法指令执行组件A、B均处于占用状态,加法指令执行组件C处于闲置状态,则可最终选取加法指令执行组件C为目标指令执行组件。
S303,译码单元向目标指令执行组件发射指令。
由此,该方法能够从多个指令执行组件中筛选出处于闲置状态的目标指令执行组件,并向目标指令执行组件发射指令。
在上述任一实施例的基础上,如图4所示,步骤S303中向目标指令执行组件发射指令,可包括:
S401,译码单元根据两个发射通道与多个指令执行组件的对应关系,获取每个发射通道对应的目标指令执行组件。
本公开的实施例中,可预先建立两个发射通道与多个指令执行组件的对应关系,并预先设置在译码单元的存储空间中。可选的,有的指令执行组件仅和两个发射通道中的其中一个发射通道存在对应关系,有的指令执行组件与两个发射通道均存在对应关系。
本公开的实施例中,若发射通道与某个指令执行组件存在对应关系,表明该发射通道可将指令发射到该指令执行组件去执行;反之,若发射通道与某个指令执行组件不存在对应关系,表明该发射通道不可将指令发射到该指令执行组件去执行。
在具体实施中,译码单元可根据每个发射通道与多个指令执行组件的对应关系,从多个处于闲置状态的目标指令执行组件中获取与每个发射通道存在对应关系的目标指令执行组件,将其作为每个发射通道对应的目标指令执行组件。
S402,译码单元将每个发射通道上待发送的指令发射到对应的目标指令执行组件去执行。
例如,若发射通道1内的指令为加法运算指令,执行单元中包括3个加法指令执行组件A、B、C,若加法指令执行组件A处于占用状态,加法指令执行组件B、C处于闲置状态,则可先确定加法指令执行组件B、C为目标指令执行组件。若发射通道1与加法指令执行组件B存在对应关系,发射通道1与加法指令执行组件C不存在对应关系,则可进一步确定加法指令执行组件C为发射通道1对应的目标指令执行组件,可将发射通道1上待发送的指令发射到加法指令执行组件C去执行。
由此,该方法可考虑到发射通道与指令执行组件的对应关系,来确定发射通道内指令的目标指令执行组件。
在上述任一实施例的基础上,有的指令执行完成后还可将指令的执行结果写回,如图5所示,可包括:
S501,译码单元对指令取出单元发送的指令进行识别,若指令需要返回执行结果,则顺序为指令生成指令编号。
本公开的实施例中,有的指令需要返回执行结果,有的指令不需要返回执行结果。可选的,可为需要返回执行结果的指令预先设置标签,从而译码单元可根据指令是否存在预设标签,识别指令是否需要返回执行结果。
在具体实施中,顺序为指令生成指令编号,可包括按照指令取出时间的先后顺序生成指令编号。可选的,指令可参照0、1、2至N进行编号,N为自然数。
例如,若当前已存在指令编号0~20,所允许的最大指令编号为49,指令取出单元从指令存储空间中连续依次取出指令A、B、C、D,且译码单元识别出指令A、D需要返回执行结果,指令B、C不需要返回执行结果,则可为指令A生成指令编号21,以及为指令D生成指令编号22。
S502,译码单元将指令编号和指令同步发送给执行单元。
S503,执行单元在指令执行完成后,将指令的执行结果和指令编号回传至写回单元。
S504,写回单元根据指令编号按序将执行结果写入通用寄存器中。
本公开的实施例中,写回单元(Write Back Unit,WBU)可将指令的执行结果写回至通用寄存器(General Purpose Register,GPR)中。
本公开的实施例中,写回单元根据指令编号按序将执行结果写入通用寄存器中,表明执行结果的写回顺序是参照指令编号来进行的,指令编号靠前的指令的执行结果比指令编号靠后的指令的执行结果的写回时间早,即该方法可实现指令的顺序写回。
例如,假设指令参照0、1、2至50进行编号,指令A的指令编号为10,指令A当前已执行完成,且指令A的执行结果和指令编号也已回传至写回单元。若此时指令编号为0~9的指令的执行结果都已写回,则可将指令A的执行结果写回;若此时指令编号为0~9的指令的执行结果中的至少一个未写回,则可暂停写回指令A的执行结果,直至指令编号为0~9的指令的执行结果都已写回。
由此,该方法能够对需要返回执行结果的指令进行编号,并可根据指令编号写回执行结果,可实现指令的顺序写回。
在上述实施例的基础上,如图6所示,步骤S504中写回单元根据指令编号按序将执行结果写入通用寄存器中,可包括:
S601,写回单元根据指令编号,按序将执行结果写入循环缓存器中的存储位置上,其中,指令编号与存储位置的编号一一对应。
本公开的实施例中,写回单元可包括循环缓存器(buffer),循环缓存器可包括多个存储位置,且可按照存储位置的前后顺序生成存储位置的编号。例如,如图7所示,该循环缓存器具有N个存储位置,每个存储位置的编号依次为0、1、2至N。
本公开的实施例中,指令编号和存储位置的编号一一对应,则可根据执行结果对应的指令编号,获取存储位置的编号与指令编号一致的存储位置,将执行结果写入上述存储位置。例如,如图7所示,若指令、存储位置均参照0、1、2至N进行编号,则可将指令编号为m的执行结果写入存储位置的编号为m的存储位置上。其中,N为自然数,m为小于或者等于N的自然数。
S602,写回单元按序将循环缓存器中每个存储位置上存储的执行结果写入通用寄存器。
本公开的实施例中,写回单元按序将缓存器中每个存储位置上存储的执行结果写入通用寄存器,表明执行结果的写回顺序是参照存储位置的编号来进行的,存储位置的编号靠前的所存储的执行结果比存储位置的编号靠后的所存储的执行结果的写回时间早,由于存储位置的编号与指令编号一一对应,该方法也可实现指令的顺序写回。
由此,该方法能够根据指令编号按序将执行结果写入循环存储器的存储位置上,然后再根据存储位置的编号写回执行结果,可实现指令的顺序写回。
在上述实施例的基础上,循环缓存器中每个存储位置上可包括vld、idx、data三个域。
其中,vld的值用于表征该存储位置是否有效。应说明的是,当存储位置上存储执行结果时,存储位置有效,可以被写回。反之,当存储位置上未存储执行结果时,存储位置无效,不可被写回。可选的,vld的取值可为0或1,vld的值为0时,表征该存储位置无效,vld的值为1时,表征该存储位置有效。
其中,idx的值用于表征该存储位置上存储的执行结果写入通用寄存器中的某个寄存器。
其中,data的值用于表征该存储位置上存储的执行结果。
进一步地,步骤S602中按序将循环缓存器中每个存储位置上存储的执行结果写入通用寄存器,可包括每次从读指针(Read Pointer)开始查询该存储位置的vld,若vld的值为1,则将该存储位置上的data写回至idx指示的通用寄存器中的某个寄存器,之后可将该存储位置上的vld值赋值为0,以及更新当前指针,使得指针指向后一个存储位置,以继续对后一个存储位置进行查询、写回等操作。
可选的,若当前指针所指向的存储位置的vld值为0,则可暂停写回,直至该存储位置的vld值为1。
由此,该方法可通过指针按序查询的方法实现顺序写回。
在上述实施例的基础上,步骤S501中顺序为指令生成指令编号,还可包括当指令编号的数量达到循环缓存器的存储位置的数量时,将指令编号归零,重新按照指令取出时间的先后顺序生成指令编号。
例如,若当前已存在指令编号0~19,且循环存储器的存储位置的数量为20,表明此时指令编号的数量达到循环存储器的存储位置的数量,此时可将指令编号归零,若之后指令取出单元从指令存储空间中连续依次取出指令A、B、C、D,且译码单元识别出指令A、D需要返回执行结果,指令B、C不需要返回执行结果,则可为指令A生成指令编号0,以及为指令D生成指令编号1。
由此,该方法可实现指令的循环编号,降低了指令编号的维护难度。
如图8所示,处理器包括指令取出单元、译码单元、执行单元、写回单元。其中,指令取出单元可根据译码单元发送的指令取出信号,从指令存储空间(图中未示出)中读取指令,并将读取的指令发送给译码单元;译码单元包括两个发射通道,分别为发射通道A和发射通道B,两个发射通道均可对指令进行译码,还可为需要返回执行结果的指令进行编号,并可将指令和指令编号同步发送给执行单元;执行单元可包括多个指令执行组件,分别为指令执行组件1、指令执行组件2至指令执行组件N,执行单元在指令执行完成后,可将指令的执行结果和指令编号回传至写回单元;写回单元可根据指令编号按序将执行结果写入通用寄存器中。
图9是根据本申请第一实施例的指令发射装置的框图。
如图9所示,本申请实施例的指令发射装置700,包括:译码单元701和执行单元702。
译码单元701与执行单元702连接,译码单元701包括两个发射通道。
译码单元701用于获取发射周期内两个发射通道的发射状态,根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号,并控制所述两个发射通道按照所述发射控制信号向执行单元发射指令。
执行单元702用于执行接收到的所述指令。
在本申请的一个实施例中,所述译码单元701进一步用于确定所述发射状态组合表征所述两个发射通道均可发射,则生成指示所述两个发射通道的发射的第一发射控制信号;确定所述发射状态组合表征所述两个发射通道均不可发射,则生成指示所述两个发射通道的暂停发射的第二发射控制信号;以及确定所述发射状态组合表征所述两个发射通道中其中一个发射通道可发射,另一个发射通道不可发射,则生成指示所述其中一个发射通道的发射且所述另一个发射通道暂停发射的第三发射控制信号。
在本申请的一个实施例中,所述两个发射通道包括主发射通道和次发射通道,所述主发射通道的发射优先级高于所述次发射通道的优先级。
在本申请的一个实施例中,所述主发射通道可发射,所述次发送通道不可发射,所述译码单元701生成将所述次发射通道中待发射的指令转移到所述主发射通道进行发射的转移指示信号;以及所述译码单元701按照所述转移指示信号将所述待发射的指令转移至所述主发射通道内。
在本申请的一个实施例中,如图10所示,所述指令发射装置700还包括:指令取出单元703,所述指令取出单元703与所述译码单元701连接;所述译码单元701进一步用于根据所述两个发射通道的发射状态组合,生成针对所述指令取出单元的指令取出信号。
在本申请的一个实施例中,所述译码单元701进一步用于确定所述发射状态组合表征所述两个发射通道的发射状态均为可发射,生成指示所述指令取出单元读取两条新指令的第一指令取出信号;确定所述发射状态组合表征所述两个发射通道的发射状态均为不可发射,则生成指示所述指令取出单元暂停读取新指令的第二指令取出信号;以及确定所述发射状态组合表征所述两个发射通道中其中一个发射通道的发射状态为可发射,另一个发射通道为不可发射,则生成指示所述指令取出单元读取一个新指令的第三指令取出信号。
在本申请的一个实施例中,所述译码单元701进一步用于在生成所述指令取出信号之后,将所述指令取出信号发送给所述指令取出单元;以及所述指令取出单元,用于接收所述指令取出信号,并继续按照所述指令取出信号对新指令进行读取。
在本申请的一个实施例中,所述指令取出单元703进一步用于在按照所述指令取出信号对新指令进行读取之后,将读取出的所述新指令发送至所述两个发射通道中未被占用的发射通道内。
在本申请的一个实施例中,所述执行单元702中包括多个指令执行组件;所述译码单元701进一步用于获取所述多个指令执行组件的状态;从所述多个指令执行组件中获取处于闲置状态的目标指令执行组件;以及向所述目标指令执行组件发射所述指令。
在本申请的一个实施例中,所述译码单元701进一步用于根据所述两个发射通道与所述多个指令执行组件的对应关系,获取每个发射通道对应的所述目标指令执行组件;以及将每个发射通道上待发送的所述指令发射到对应的所述目标指令执行组件去执行。
在本申请的一个实施例中,如图10所示,所述指令发射装置700还包括:写回单元704,所述写回单元704分别与所述执行单元702和通用寄存器(图中未示出)连接;所述译码单元701进一步用于对所述指令取出单元发送的所述指令进行识别,若所述指令需要返回执行结果,则顺序为所述指令生成指令编号;将所述指令编号和所述指令同步发送给所述执行单元702;所述执行单元702进一步用于在所述指令执行完成后,将所述指令的所述执行结果和所述指令编号回传至写回单元704;以及所述写回单元704,用于根据所述指令编号按序将所述执行结果写入所述通用寄存器中。
在本申请的一个实施例中,所述写回单元704进一步用于根据所述指令编号,按序将所述执行结果写入循环缓存器中的存储位置上,其中,所述指令编号与所述存储位置的编号一一对应;以及按序将所述缓存器中每个所述存储位置上存储的所述执行结果写入所述通用寄存器。
根据本申请实施例的指令发射装置,能够根据两个发射通道的发射状态组合确定针对两个发射通道的发射控制信号,且可控制两个发射通道按照发射控制信号发射指令,可实现乱序发射,执行效率高,相较于相关技术中乱序发射架构采用在硬件中设置保留站的方式,该方法具有硬件结构简单、处理器占用面积和功耗小、开发成本低等优点。在语音处理等中含有大量数字信号处理,对实时性要求很高时能尽量快地下发指令并执行计算。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图11所示,是根据本申请实施例的指令发射方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图11所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器801可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的指令发射方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的指令发射方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的指令发射方法对应的程序指令/模块(例如,附图9所示的译码单元和执行单元)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的指令发射方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据指令发射方法的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至指令发射方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
指令发射方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与指令发射方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
本申请提供了一种计算机程序产品,包括计算机程序,其中,计算机程序被处理器执行时实现上述实施例所述的指令发射方法。
根据本申请实施例的技术方案,能够根据两个发射通道的发射状态组合确定针对两个发射通道的发射控制信号,且可控制两个发射通道按照发射控制信号发射指令,可实现乱序发射,执行效率高,相较于相关技术中乱序发射架构采用在硬件中设置保留站的方式,该方法具有硬件结构简单、处理器占用面积和功耗小、开发成本低等优点。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (21)
1.一种指令发射方法,包括:
译码单元获取发射周期内两个发射通道的发射状态,其中,所述译码单元根据发射通道内指令对应的寄存器的状态、指令对应的指令执行组件的状态、发射通道的状态、两个发射通道内的指令是否冲突,确定发射通道的发射状态;
所述译码单元根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号;以及
所述译码单元控制所述两个发射通道按照所述发射控制信号向执行单元发射指令;
其中,所述方法还包括:
所述译码单元根据所述两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号;
所述译码单元根据所述两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号,包括:
所述译码单元确定所述发射状态组合表征所述两个发射通道的发射状态均为可发射,生成指示所述指令取出单元读取两条新指令的第一指令取出信号;
所述译码单元确定所述发射状态组合表征所述两个发射通道的发射状态均为不可发射,则生成指示所述指令取出单元暂停读取新指令的第二指令取出信号;以及
所述译码单元确定所述发射状态组合表征所述两个发射通道中其中一个发射通道的发射状态为可发射,另一个发射通道为不可发射,则生成指示所述指令取出单元读取一个新指令的第三指令取出信号;
所述译码单元对所述指令取出单元发送的所述指令进行识别,若所述指令需要返回执行结果,则顺序为所述指令生成指令编号;
所述译码单元将所述指令编号和所述指令同步发送给所述执行单元;
所述执行单元在所述指令执行完成后,将所述指令的所述执行结果和所述指令编号回传至写回单元;以及
所述写回单元根据所述指令编号按序将所述执行结果写入通用寄存器中。
2.根据权利要求1所述的方法,其中,所述译码单元根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号,包括:
所述译码单元确定所述发射状态组合表征所述两个发射通道均可发射,则生成指示所述两个发射通道的发射的第一发射控制信号;
所述译码单元确定所述发射状态组合表征所述两个发射通道均不可发射,则生成指示所述两个发射通道的暂停发射的第二发射控制信号;以及
所述译码单元确定所述发射状态组合表征所述两个发射通道中其中一个发射通道可发射,另一个发射通道不可发射,则生成指示所述其中一个发射通道的发射且所述另一个发射通道暂停发射的第三发射控制信号。
3.根据权利要求2所述的方法,其中,所述两个发射通道包括主发射通道和次发射通道,所述主发射通道的发射优先级高于所述次发射通道的优先级。
4.根据权利要求3所述的方法,其中,所述主发射通道可发射,所述次发送通道不可发射,所述译码单元生成将所述次发射通道中待发射的指令转移到所述主发射通道进行发射的转移指示信号;以及
所述译码单元按照所述转移指示信号将所述待发射的指令转移至所述主发射通道内。
5.根据权利要求1所述的方法,其中,所述译码单元根据所述两个发射通道的发射状态组合,生成针对指令取出单元的指令取出信号之后,还包括:
所述译码单元将所述指令取出信号发送给所述指令取出单元;以及
所述指令取出单元继续按照所述指令取出信号对新指令进行读取。
6.根据权利要求5所述的方法,其中,所述指令取出单元继续按照所述指令取出信号对新指令进行读取之后,还包括:
所述指令取出单元将读取出的所述新指令发送至所述两个发射通道中未被占用的发射通道内。
7.根据权利要求1-6任一项所述的方法,其中,所述执行单元中包括多个指令执行组件,所述译码单元控制所述两个发射通道按照所述发射控制信号向执行单元发射指令,包括:
所述译码单元获取所述多个指令执行组件的状态;
所述译码单元从所述多个指令执行组件中获取处于闲置状态的目标指令执行组件;以及
所述译码单元向所述目标指令执行组件发射所述指令。
8.根据权利要求7所述的方法,其中,所述向所述目标指令执行组件发射所述指令,包括:
所述译码单元根据所述两个发射通道与所述多个指令执行组件的对应关系,获取每个发射通道对应的所述目标指令执行组件;以及
所述译码单元将每个发射通道上待发送的所述指令发射到对应的所述目标指令执行组件去执行。
9.根据权利要求1-6任一项 所述的方法,其中,所述写回单元根据所述指令编号按序将所述执行结果写入通用寄存器中,包括:
所述写回单元根据所述指令编号,按序将所述执行结果写入循环缓存器中的存储位置上,其中,所述指令编号与所述存储位置的编号一一对应;以及
所述写回单元按序将所述缓存器中每个所述存储位置上存储的所述执行结果写入所述通用寄存器。
10.一种指令发射装置,包括:
译码单元和执行单元,所述译码单元与所述执行单元连接,所述译码单元包括两个发射通道;
所述译码单元,用于获取发射周期内两个发射通道的发射状态,根据所述两个发射通道的发射状态组合,生成针对所述两个发射通道的发射控制信号,并控制所述两个发射通道按照所述发射控制信号向执行单元发射指令,其中,所述译码单元根据发射通道内指令对应的寄存器的状态、指令对应的指令执行组件的状态、发射通道的状态、两个发射通道内的指令是否冲突,确定发射通道的发射状态;以及
所述执行单元,用于执行接收到的所述指令;
指令取出单元,所述指令取出单元与所述译码单元连接;
所述译码单元,进一步用于:
根据所述两个发射通道的发射状态组合,生成针对所述指令取出单元的指令取出信号;
所述译码单元,进一步用于:
确定所述发射状态组合表征所述两个发射通道的发射状态均为可发射,生成指示所述指令取出单元读取两条新指令的第一指令取出信号;
确定所述发射状态组合表征所述两个发射通道的发射状态均为不可发射,则生成指示所述指令取出单元暂停读取新指令的第二指令取出信号;以及
确定所述发射状态组合表征所述两个发射通道中其中一个发射通道的发射状态为可发射,另一个发射通道为不可发射,则生成指示所述指令取出单元读取一个新指令的第三指令取出信号;
所述装置还包括写回单元,所述写回单元分别与所述执行单元和通用寄存器连接;
所述译码单元,进一步用于:
对所述指令取出单元发送的所述指令进行识别,若所述指令需要返回执行结果,则顺序为所述指令生成指令编号;
将所述指令编号和所述指令同步发送给所述执行单元;
所述执行单元,进一步用于:
在所述指令执行完成后,将所述指令的所述执行结果和所述指令编号回传至写回单元;以及
所述写回单元,用于根据所述指令编号按序将所述执行结果写入所述通用寄存器中。
11.根据权利要求10所述的装置,其中,所述译码单元,进一步用于:
确定所述发射状态组合表征所述两个发射通道均可发射,则生成指示所述两个发射通道的发射的第一发射控制信号;
确定所述发射状态组合表征所述两个发射通道均不可发射,则生成指示所述两个发射通道的暂停发射的第二发射控制信号;以及
确定所述发射状态组合表征所述两个发射通道中其中一个发射通道可发射,另一个发射通道不可发射,则生成指示所述其中一个发射通道的发射且所述另一个发射通道暂停发射的第三发射控制信号。
12.根据权利要求11所述的装置,其中,所述两个发射通道包括主发射通道和次发射通道,所述主发射通道的发射优先级高于所述次发射通道的优先级。
13.根据权利要求12所述的装置,其中,所述主发射通道可发射,所述次发送通道不可发射,所述译码单元生成将所述次发射通道中待发射的指令转移到所述主发射通道进行发射的转移指示信号;以及
所述译码单元按照所述转移指示信号将所述待发射的指令转移至所述主发射通道内。
14.根据权利要求10所述的装置,其中,所述译码单元,进一步用于:
在生成所述指令取出信号之后,将所述指令取出信号发送给所述指令取出单元;以及
所述指令取出单元,用于接收所述指令取出信号,并继续按照所述指令取出信号对新指令进行读取。
15.根据权利要求14所述的装置,其中,所述指令取出单元,进一步用于:
在按照所述指令取出信号对新指令进行读取之后,将读取出的所述新指令发送至所述两个发射通道中未被占用的发射通道内。
16.根据权利要求10-15任一项所述的装置,其中,所述执行单元中包括多个指令执行组件;
所述译码单元,进一步用于:
获取所述多个指令执行组件的状态;
从所述多个指令执行组件中获取处于闲置状态的目标指令执行组件;以及
向所述目标指令执行组件发射所述指令。
17.根据权利要求16所述的装置,其中,所述译码单元,进一步用于:
根据所述两个发射通道与所述多个指令执行组件的对应关系,获取每个发射通道对应的所述目标指令执行组件;以及
将每个发射通道上待发送的所述指令发射到对应的所述目标指令执行组件去执行。
18.根据权利要求10-15任一项 所述的装置,其中,所述写回单元,进一步用于:
根据所述指令编号,按序将所述执行结果写入循环缓存器中的存储位置上,其中,所述指令编号与所述存储位置的编号一一对应;以及
按序将所述缓存器中每个所述存储位置上存储的所述执行结果写入所述通用寄存器。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的指令发射方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的指令发射方法。
21.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-9中任一项所述的指令发射方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010827436.3A CN111930427B (zh) | 2020-08-17 | 2020-08-17 | 指令发射方法、装置、电子设备以及存储介质 |
US18/008,640 US20230244487A1 (en) | 2020-08-17 | 2021-08-05 | Instruction transmission method and apparatus |
EP21857516.5A EP4148562A1 (en) | 2020-08-17 | 2021-08-05 | Instruction transmission method and apparatus, electronic device, and storage medium |
JP2022576498A JP2023529947A (ja) | 2020-08-17 | 2021-08-05 | 命令送信方法、命令送信装置、電子機器、記憶媒体およびコンピュータプログラム |
KR1020227042594A KR20220168187A (ko) | 2020-08-17 | 2021-08-05 | 명령 송신 방법, 장치, 전자 기기 및 저장 매체 |
PCT/CN2021/110915 WO2022037421A1 (zh) | 2020-08-17 | 2021-08-05 | 指令发射方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010827436.3A CN111930427B (zh) | 2020-08-17 | 2020-08-17 | 指令发射方法、装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930427A CN111930427A (zh) | 2020-11-13 |
CN111930427B true CN111930427B (zh) | 2022-06-21 |
Family
ID=73310624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010827436.3A Active CN111930427B (zh) | 2020-08-17 | 2020-08-17 | 指令发射方法、装置、电子设备以及存储介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230244487A1 (zh) |
EP (1) | EP4148562A1 (zh) |
JP (1) | JP2023529947A (zh) |
KR (1) | KR20220168187A (zh) |
CN (1) | CN111930427B (zh) |
WO (1) | WO2022037421A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930427B (zh) * | 2020-08-17 | 2022-06-21 | 北京百度网讯科技有限公司 | 指令发射方法、装置、电子设备以及存储介质 |
CN113778528B (zh) * | 2021-09-13 | 2023-03-24 | 北京奕斯伟计算技术股份有限公司 | 指令发送方法、装置、电子设备及存储介质 |
CN114579191A (zh) * | 2022-04-28 | 2022-06-03 | 飞腾信息技术有限公司 | 一种指令发射方法、装置、电子设备及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
JP3146077B2 (ja) * | 1991-11-15 | 2001-03-12 | 松下電器産業株式会社 | プロセッサ |
US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
JP2000285082A (ja) * | 1999-03-31 | 2000-10-13 | Toshiba Corp | 中央演算装置及びコンパイル方法 |
US20070198812A1 (en) * | 2005-09-27 | 2007-08-23 | Ibm Corporation | Method and apparatus for issuing instructions from an issue queue including a main issue queue array and an auxiliary issue queue array in an information handling system |
US7350056B2 (en) * | 2005-09-27 | 2008-03-25 | International Business Machines Corporation | Method and apparatus for issuing instructions from an issue queue in an information handling system |
CN101526895B (zh) * | 2009-01-22 | 2011-01-05 | 杭州中天微系统有限公司 | 基于指令双发射的高性能低功耗嵌入式处理器 |
JP5548037B2 (ja) * | 2010-06-11 | 2014-07-16 | パナソニック株式会社 | 命令発行制御装置及び方法 |
GB2503438A (en) * | 2012-06-26 | 2014-01-01 | Ibm | Method and system for pipelining out of order instructions by combining short latency instructions to match long latency instructions |
CN103207776B (zh) * | 2013-03-11 | 2015-07-15 | 浙江大学 | 一种gene乱序发射处理器内核 |
US10095518B2 (en) * | 2015-11-16 | 2018-10-09 | Arm Limited | Allowing deletion of a dispatched instruction from an instruction queue when sufficient processor resources are predicted for that instruction |
US10191748B2 (en) * | 2015-11-30 | 2019-01-29 | Intel IP Corporation | Instruction and logic for in-order handling in an out-of-order processor |
US11467838B2 (en) * | 2018-05-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Fastpath microcode sequencer |
US10817300B2 (en) * | 2018-10-26 | 2020-10-27 | Marvell Asia Pte, Ltd. | Managing commit order for an external instruction relative to two unissued queued instructions |
CN109885857B (zh) * | 2018-12-26 | 2023-09-01 | 上海合芯数字科技有限公司 | 指令发射控制方法、指令执行验证方法、系统及存储介质 |
CN111399912B (zh) * | 2020-03-26 | 2022-11-22 | 超睿科技(长沙)有限公司 | 一种面向多周期指令的指令调度方法、系统及介质 |
US20210389979A1 (en) * | 2020-06-15 | 2021-12-16 | Andes Technology Corporation | Microprocessor with functional unit having an execution queue with priority scheduling |
CN111930427B (zh) * | 2020-08-17 | 2022-06-21 | 北京百度网讯科技有限公司 | 指令发射方法、装置、电子设备以及存储介质 |
-
2020
- 2020-08-17 CN CN202010827436.3A patent/CN111930427B/zh active Active
-
2021
- 2021-08-05 JP JP2022576498A patent/JP2023529947A/ja active Pending
- 2021-08-05 US US18/008,640 patent/US20230244487A1/en not_active Abandoned
- 2021-08-05 KR KR1020227042594A patent/KR20220168187A/ko not_active Application Discontinuation
- 2021-08-05 WO PCT/CN2021/110915 patent/WO2022037421A1/zh unknown
- 2021-08-05 EP EP21857516.5A patent/EP4148562A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN111930427A (zh) | 2020-11-13 |
JP2023529947A (ja) | 2023-07-12 |
WO2022037421A1 (zh) | 2022-02-24 |
KR20220168187A (ko) | 2022-12-22 |
EP4148562A1 (en) | 2023-03-15 |
US20230244487A1 (en) | 2023-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930427B (zh) | 指令发射方法、装置、电子设备以及存储介质 | |
US10564978B2 (en) | Operation of a multi-slice processor with an expanded merge fetching queue | |
CN111782365B (zh) | 定时任务处理方法、装置、设备及存储介质 | |
US8799564B2 (en) | Efficiently implementing a plurality of finite state machines | |
CN102541630B (zh) | 计算机处理器中线程间数据通信的方法和系统 | |
CN111259205A (zh) | 一种图数据库遍历方法、装置、设备及存储介质 | |
KR20210039358A (ko) | 순환 명령의 처리 방법, 장치, 기기와 저장매체 | |
CN115759252A (zh) | 深度学习推理引擎的调度方法、装置、设备和介质 | |
JP6921277B2 (ja) | 目標検出追跡方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN109697035B (zh) | 级联设备的地址数据的写入方法、写入设备及存储介质 | |
WO2021073125A1 (zh) | 面向深度学习训练任务的处理器内存优化方法及装置 | |
CN112306413A (zh) | 用于访问内存的方法、装置、设备以及存储介质 | |
CN111857825A (zh) | 指令执行方法、装置、电子设备和计算机可读存储介质 | |
CN111290744A (zh) | 流式计算作业处理方法、流式计算系统及电子设备 | |
CN111639116A (zh) | 数据访问连接会话保护方法以及装置 | |
CN112559040B (zh) | 指令执行方法、装置、电子设备和存储介质 | |
US20200274829A1 (en) | General purpose ring buffer handling in a network controller | |
EP3832458A1 (en) | Instruction prefetching method and apparatus and medium | |
CN112131011B (zh) | 用于管理资源的方法、计算设备和计算机可读存储介质 | |
CN111833024B (zh) | 用于输出信息的方法、装置、设备以及存储介质 | |
CN117687701A (zh) | 一种基于多对多控制的kvm切换器及其控制方法 | |
CN115269497A (zh) | 用于配置网络文件系统的方法和装置 | |
CN115145730A (zh) | 运行监测方法、装置、电子设备和存储介质 | |
CN110543490A (zh) | 数据处理方法和装置 | |
WO2017019008A1 (en) | Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |