CN117008977B - 一种可变执行周期的指令执行方法、***和计算机设备 - Google Patents
一种可变执行周期的指令执行方法、***和计算机设备 Download PDFInfo
- Publication number
- CN117008977B CN117008977B CN202310994496.8A CN202310994496A CN117008977B CN 117008977 B CN117008977 B CN 117008977B CN 202310994496 A CN202310994496 A CN 202310994496A CN 117008977 B CN117008977 B CN 117008977B
- Authority
- CN
- China
- Prior art keywords
- instruction
- output
- execution
- calculation
- advance
- 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 49
- 238000004364 calculation method Methods 0.000 claims abstract description 195
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims 6
- 230000005540 biological transmission Effects 0.000 description 13
- 230000003111 delayed effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 1
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本发明公开了一种可变执行周期的指令执行方法、***和计算机设备,包括将关键指令和指令输出周期从发射单元提前发射至执行单元;执行关键指令,得到执行结果并寄存在执行单元中;当执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将第一计算标志位提前输出;响应于判断第一计算标志位提前输出,在预设周期,将第一计算标志位输出至状态结果寄存器,并在指令输出周期,将计算数据结果输出至重命名物理寄存器。本发明利用常规指令输出计算标志位的空闲周期将关键指令的计算标志位提前输出,在保证指令正常发射的同时,有效提高了指令的发射效率,从而提高了分支预测的准确率,有效提升了***性能。
Description
技术领域
本发明涉及数字处理技术领域,特别是涉及一种可变执行周期的指令执行方法、***和计算机设备。
背景技术
目前,市场上常见的处理器流水都在12级以上,而每一级都并行执行最多6条甚至8条指令,比如AMD Zen2包括四条整数计算流水线和四条浮点计算流水线,可以并行执行8条指令,每条计算流水线又由若干个不同的计算模块组成,不同的计算指令在不同的计算模块中执行的周期是不同的,而这么多的执行单元输出时共用一个端口输出到重命名物理寄存器或者经过旁路以供其他指令使用。
当包含流水线技术的处理器处理分支指令时就会遇到一个问题,即根据判定条件的真/假的不同,有可能会产生跳转,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令,为了解决这一问题产生了分支预测技术,而在硬件执行时进行的动态分支预测也需要基于指令的输出结果来预测,一些能够表征分支跳转的关键指令输出的越早对于指令的预测会更准确,而目前的指令执行是固定周期,并不能提高分支预测的效率和效果。
发明内容
为了解决上述技术问题,本发明提供了一种可变执行周期的指令执行方法、***和计算机设备,以能够更早的计算出分支条件,让分支跳转指令更早发现预测是否正确,以达到提高处理器执行效率的技术效果。
第一方面,本发明提供了一种可变执行周期的指令执行方法,所述方法包括:
将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;
执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;
当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;
响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
进一步地,在所述判断是否将所述第一计算标志位提前输出之后,还包括:
响应于判断所述第一计算标志位不能提前输出,在所述指令输出周期,将所述执行结果分别输出至相应的寄存器中。
进一步地,所述根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出的步骤包括:
在所述预设周期内,判断常规指令的执行结果中是否存在第二计算标志位;
若存在第二计算标志位,则所述第一计算标志位不能提前输出,否则,所述第一计算标志位能提前输出。
进一步地,在所述将所述第一计算标志位输出至状态结果寄存器之后,还包括:
在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
进一步地,所述并将所述执行结果寄存在所述执行单元中之后,还包括:
当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
第二方面,本发明提供了一种可变执行周期的指令执行***,所述***应用于如上所述的可变执行周期的指令执行方法,所述***包括:
提前发射模块,用于将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;
提前执行模块,用于执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;
提前输出模块,用于当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;
响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
进一步地,所述提前输出模块还用于响应于判断所述第一计算标志位不能提前输出,在所述指令输出周期,将所述执行结果分别输出至相应的寄存器中。
进一步地,所述提前输出模块用于在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
进一步地,所述提前输出模块还用于当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明提供了一种可变执行周期的指令执行方法、***和计算机设备。通过所述方法,本发明可以将关键指令的标志位提前若干个周期进行输出,从而提高了分支预测的准确率,减小了分支预测的错误代价,从而提高了处理器的执行效率。
附图说明
图1是本发明实施例中的可变执行周期的指令执行方法的流程示意图;
图2是现有技术中计算流水线中并行执行指令的流程示意图;
图3是ARM架构的CPU中浮点执行单元的结构示意图;
图4是定长执行周期的指令发射流程示意图;
图5是图1中步骤S30的流程示意图;
图6是本发明实施例中可变执行周期的指令发射流程示意图;
图7是本发明实施例中可变执行周期的指令发射电路原理图;
图8是本发明实施例中可变执行周期的指令执行***的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明的技术方案进行说明之前,先对本发明涉及到的技术关键词进行解释:ALU:算术逻辑单元;FADD:浮点加法;FMUL:浮点乘法;FDIV:浮点除法;FMA:浮点加法乘法混合运算;ISS Cycle(Issue Cycle):发射周期,每个发射端口每个时钟周期只能发射一条指令,从发射开始周期依次为ISS、RF、EX1、EX2等;RF Cycle:读寄存器操作周期;Pipeline:计算流水线,CPU规格不同计算流水线的个数不同,每个计算流水线有一个发射端口和一个输出端口,各类不同类型的指令在计算流水线上耗费的时间不同;EX*Cycle:计算流水线周期,其中EX1代表计算流水线第一周期,EX2、EX3…依次类推,从发射到计算输出,从前往后依次命名;WB-*Cycle:写回周期,表示计算出结果并从计算流水线中输出,WB-1代表输出前一个周期,WB-2代表写回前2两个周期,每个发射端口对应一个指令执行流水线,每个指令执行流水线只有一个写回端口,写回是从后面向前面数的;PRF:重命名物理寄存器。
请参阅图1,本发明第一实施例提出的一种可变执行周期的指令执行方法,包括步骤S10~S60:
步骤S10,将关键指令和相应的指令输出周期从发射单元提前发射至执行单元。
目前常见的处理器流水都在12级以上,每一级都可以并行执行最多6条甚至8条指令,图2所示的并行执行示意图为例,可以看到在发射之后在该流水线上有6条指令在并行执行,实际上每条流水线由若干个不同的执行单元组成,比如简单的加法在加法计算模块中只用一个时钟周期就完成计算,而浮点乘法在浮点乘法模块中至少需要3个时钟周期,浮点乘加需要6个周期,而除法或开平方根则需要几十周期才能完成。这么多的执行单元输出时共用一个端口输出到重命名物理寄存器或经过旁路供其它指令使用。为了更直观的说明现有指令的发射计算过程,请参阅图3,在ARM架构的CPU中,译码后的微指令(μOP)会被派发(Dispach)到不同运算单元的发射队列(Issue Queue)中,在解决了数据依赖性之后,这些指令通过不同的端口(Port)会被发射(Issue)到对应的执行单元中,ARM的CPU中浮点执行单元中有4条计算流水线,每一条流水线由不同的执行单元组成,比如第一条流水线中包括算术逻辑单元、浮点加法、浮点乘法、浮点除法和乘积累加,而第四条流水线中包括算术逻辑单元、浮点加法和浮点乘法,而每条流水线中的不同执行单元比如第一条流水线中的浮点加法、浮点乘法和浮点除法都是通过一个共同的输出端口输出到外面。也就是说处理器使用发射序列存放已经具备执行条件的多个指令,指令的发射效率与处理器的性能是密切相关的。
现有技术中常规处理器都是什么地址需要多少周期都是固定的,发射前都在发射序列等待,即指令执行周期是固定的,比如加法计算需要1个周期,在发射队列等待执行时,虽然已经具备了执行条件,但是因为前面还有指令在等待执行,为了避免输出冲突,需要等待若干个时钟周期才发射给执行单元,请参阅图4,以常规定长5周期指令为例,在达到执行周期后,指令计算的输出结果会从执行单元中输出,指令计算输出一般包含结果输出和计算标志输出,比如A–B=C,C就是计算数据结果,有些指令还会输出计算时这个结果C是否大于0或是进位或借位,也就是计算标志位,在执行过程中,计算流水线周期和写回周期实际上是相对的,因此计算数据结果会在WB周期写入重命名物理寄存器(PRF)中,而计算标志位则在WB周期写入到状态结果寄存器中,而在常规的指令发射时,为了避免写重命名物理寄存器冲突,指令会在发射队列中延迟等待输出,比如图4中,为了避免写回冲突,延迟了三个周期才将该1周期指令发射执行,在EX1周期进行计算之后,在WB周期将计算数据结果和计算标志位输出到相应的寄存器中。也就是说,指令的计算数据结果和计算标志位都只能在写回周期一同输出,本发明为了能提前输出指令的执行结果,提供了一种能够提前发射、提前计算和提前输出的指令执行方法。
在本发明中首先是对关键指令进行了提前发射,关键指令指的是影响***的执行效率且执行周期较短的指令,比如执行周期在3个周期以内的指令,当这些指令的执行周期小于固定周期时,往往需要在发射队列中进行等待写回冲突解决之后才能进行发射,而这些关键指令的执行结果中如果存在计算标志位,该计算标志位很有可能与分支指令相关,因为一般分支指令前面的指令才需要输出标志位(Flag),因此,如果能尽早的输出关键指令的计算标志位,就能够提高分支预测的准确率。
步骤S20,执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中。
在常规的指令逻辑流水线中,指令会在发射队列中延迟等待输出,在发射之后再进行计算,而本发明则是将关键指令从发射队列中提前发射到执行单元进行计算,一同发射的还有该指令对应的指令输出周期,该指令输出周期主要用于指示该指令的执行结果需要等待多少周期才能输出,在执行单元中会提前对该关键指令进行计算得到执行结果,该指令的执行结果会寄存在执行单元中等待输出。也就是说,本发明通过提前发射和提前计算来提高发射的效率,并且在得到执行结果之后,还可以通过提前输出来进一步提高执行效率。
步骤S30,当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出
一般情况下,指令的执行结果会包含计算数据结果和计算标志位,当然也会存在一些特殊指令,这些指令的执行结果只包含计算数据结果或者计算标志位,本实施例针对执行结果包含计算数据结果和计算标志位的情况,由于执行结果中存在计算标志位,因此认为该关键指令可以提前输出,此时,需要根据在预设周期内常规指令的执行结果来判断是否有机会将关键指令的计算标志位进行提前输出。其中,预设周期为指令执行完成周期至指令输出周期之间的多个周期,需要说明的是,本实施例是针对关键指令的计算标志位进行提前输出,这是因为大部分指令的执行结果中都会存在计算数据结果,该结果需要写入重命名物理寄存器中,也就是说,如果将计算数据结果提前输出还需要解决写入PRF时产生的写回冲突,而对于分支预测来说,其预测结果与计算标志位的关系更加密切,因此,本实施例针对关键指令的计算标志位进行提前输出,在不增加处理器的计算量的基础上,提高分支预测的准确率,从而提高处理器的执行性能。
在一个优选的实施例中,判断执行结果中是否存在计算标志位的步骤包括:
获取所述关键指令的标志位标识,并根据所述关键指令的标志位标识,判断所述关键指令的执行结果中是否存在第一计算标志位。
在本实施例中,每个指令都存在一个标志位标识,该标志位标识用于表示该指令的执行结果中是否存在计算标志位,比如对于关键指令,其标志位标识可以表示为Early_Flag_Ptag_v,通过指令解码就可以得到该指令的执行结果的标志位标识对应的数值,当Early_Flag_Ptag_v为1时表示该关键指令有计算标志位要提前输出,当Early_Flag_Ptag_v为0时表示该关键指令没有计算标志位,这种判断方式不仅简单,没有增加计算复杂度,并且判断结果准确高效。同理,对于执行结果中是否存在计算数据结果,也可以基于数据结果标识来进行判定,在此不再重复说明。
如果该关键指令存在计算标志位需要提前输出,那么下一步就需要判断在该流水线中是否存在将计算标志位提前输出的条件,请参阅图5,本发明提供了一个优选的实施例,在该实施例中,根据预设周期内的常规指令的执行结果,判断是否将计算标志位提前输出的步骤包括:
步骤S301,在所述预设周期内,判断常规指令的执行结果中是否存在第二计算标志位;
步骤S302,若存在第二计算标志位,则所述第一计算标志位不能提前输出,否则,所述第一计算标志位能提前输出。
在一条计算流水线中并行执行着多个指令,为了能够将关键指令的计算标志位提前输出,本发明利用了一些常规指令没有标志位输出的空闲周期,将关键指令的计算标志位进行提前输出,这里的常规指令指的是与关键指令并行执行的非关键指令。因为每一个计算流水线只有一个输出端口,因此提前输出必须解决提前输出的弊端,即输出冲突问题,为此,本实施例提供了冲突检测机制来解决输出冲突的问题。
在关键指令的指令输出周期之前可能会包含多个周期,比如在定长5周期的计算流水线中,该指令为1周期指令,在提前发射和提前计算后,只有等待到第五个周期才为写回周期即指令输出周期,才可以将该指令的执行结果进行输出,为了减少延迟等待的周期,在本实施例中,会在预设周期内判断是否有常规指令的计算标志位需要输出,也就是说,从指令执行完成的周期到指令输出的周期之间包含的每个周期,都去判断一次在并行执行的常规指令的执行结果中是否存在计算标志位需要输出,从而确定是否有机会将寄存的计算标志位进行提前输出。
与上述判断关键指令的执行结果中是否存在计算标志位的判断方式一致,本实施例中同样采用标志位标识的方式来判断,假定常规指令对应的标志位标识为Typical_Flag_Ptag_v,通过指令解码就可以得到该标志位标识对应的数值,当Typical_Flag_Ptag_v为1时表示常规指令的执行结果中存在计算标志位,即在该周期内存在需要输出的计算标志位时,就延迟等待至下一个周期继续对该标志位标识进行判断,直至判断完预设周期对应的全部周期是否均存在常规指令的计算标志位等待输出,而当Typical_Flag_Ptag_v为0时表示常规指令的执行结果中不存在计算标志位,也即在该周期内没有等待输出的计算标志位,此时就可以停止判断,确认该周期为空闲周期,可以提前输出关键指令的计算标志位。通过标志位标识的方式可以简单高效的判断出是否有常规指令的计算标志位等待输出,从而提高了关键指令的计算标志位提前输出的执行效率。
步骤S40,响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
通过上述步骤确定在预设周期内的某个周期为空闲周期,不存在需要输出的计算标志位时,就可以利用该空闲周期将已经寄存在执行单元中的关键指令的执行结果中的计算标志位提前输出。并在延迟等待若干个周期后在指令输出周期,再将计算数据结果从执行单元输出至重命名物理寄存器PRF中,本申请通过标志位冲突检测的机制,利用常规指令的计算标志位输出的空闲周期将关键指令的计算标志位提前输出,提高了处理器的发射效率高,进一步提高了处理器分支预测的准确率。
对于计算标志位被判定为无法提前输出的情况,即在预设周期内都没有空闲周期可以利用,那么按照该关键指令的正常执行顺序,在令输出周期将其执行结果分别输出到对应的寄存器即可。本申请在常规的指令执行的基础上,利用非提前输出指令的计算标志位输出的空闲周期,将关键指令的计算标志位进行提前输出,在不增加计算复杂度的同时,实现了处理器的高效发射,提高了处理器的分支预测准确度,从而提高了处理器的执行效率。
进一步地,本发明提供的一个优选的实施例中,如果一条计算流水线对应的发射队列中存在多个关键指令,可以按照先后顺序依次将关键指令进行发射,以两个关键指令为例,先将第一关键指令提前发射和提前计算,并将执行结果寄存在执行单元中,当第一关键指令的计算标志位提前输出之后,再将第二关键指令提前发射,当然如果按照正常执行顺序第二关键指令已经延迟到可以发射时,则不按照该顺序执行,而是将第二关键指令按照正常执行顺序进行发射;在另一个优选的实施例中,还可以将第一关键指令和第二关键指令同时提前发射计算,寄存在各自的执行单元中,在进行标志位冲突检测时,除了检测该周期内是否有常规指令的计算标志位需要输出之外,还要检测是否有关键指令的标志位需要输出,此时,对于同时发射的关键指令可以随机或者按照某种方式设置标记,然后按照标记,比如按照标记数值的大小,来确定关键指令的计算标志位的输出顺序,当然还可以通过其他的设计来实现多个关键指令的同时提前发射,在此不再一一赘述,通过本实施例提供的多种方式,可以实现同一条计算流水线中多个关键指令的提前发射,进一步提高了处理器的发射效率,从而提高了处理器的性能。
进一步地,在本发明提供的优选实施例中,在所述将所述第一计算标志位输出至状态结果寄存器之后,还包括:
在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
在该实施例中,除了可以将关键指令的计算标志位提前输出之外,还可以对计算数据结果进行提前输出,其提前输出的原理与计算标志位提前输出的原理一致,即在计算标志位被提前输出的周期到指令输出周期之间可能在还存在若干个周期,在这若干个周期内,去判断常规指令的执行结果中是否有计算数据结果需要输出,如果没有,则认为该周期为空闲周期,从而可以将计算数据结果在该空闲周期提前输出至PRF中,当然如果不存在空闲周期,那么计算数据结果同样可以在指令输出周期进行输出。需要说明的是,本实施例中提供的计算数据结果提前输出的方法可以根据实际情况单独使用,也可以和上述计算标志位提前输出的方法相结合,来实现关键指令的执行结果的提前输出,即通过本发明提供的指令执行方法,不仅是计算标志位可以提前输出,计算数据结果也可以提前输出,进一步提高了处理器的发射效率,从而提高了分支预测的准确性,极大提升了处理器的执行效率。
进一步地,对于执行结果只存在计算数据结果或者计算标志位的情况,本发明还包括:
当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
在本实施例中,对于指令的执行结果只存在计算数据结果或者计算标志位的情况,同样可以基于上述原理,通过常规指令的执行结果,来判断该执行结果是否有提前输出的机会,如果有,则将该执行结果提前输出,否则,就按照正常执行顺序,在指令输出周期,将该执行结果进行输出。以提前输出计算数据结果为例,在处理器指令集中,会存在一些指令不输出计算数据结果到重命名物理寄存器,比如比较指令,A和B比较大小,其执行结果只输出计算标志位到状态结果寄存器,而不会产生result(计算数据结果),在这种情况下,这种指令执行时,在计算流水线输出计算数据结果时也会出现空闲周期,即由于该指令不产生result,因此对应的周期内并不会输出执行结果,此时,与上述计算标志位提前发射的原理相同,通过标志位标识判断是否有result在该周期内需要输出,并通过没有result要输出的空闲周期,将关键指令的result即计算结果数据进行提前输出,从而实现了对关键指令的计算数据结果的提前输出功能,即通过常规指令的执行结果在预设周期没有输出计算数据结果从而产生的空闲周期,从而实现关键指令的计算数据结果的提前输出。
在大部分的***架构下,比如ARM架构,将计算标志位提前输出能够有效提升***进行分支预测的效率,但实际上,对于其他架构下的***,比如MIPS架构下的***,其分支预测准确率与执行结果中的计算数据结果密切相关,因此,本实施例提供的提前输出方法,能够应用于多种架构的***中,有效提高了***分支预测的效率和效果,具有极高的可扩展性。
为了更好的说明本发明提供的指令执行方法,以执行结果包含计算数据结构和第一计算标志位为例,并结合图6和图7,对方法的执行步骤进行详细描述:
请参阅图6,仍以定长5周期指令为例,本发明将关键指令从发射队列中提前发射,该关键指令为1周期指令,在读取寄存器之后进行计算,常规发射需要延迟3周期才能发射的指令,通过本发明提供的方法进行提前发射,随同发射的还有该指令输出周期,该关键指令在第一个计算流水线周期内就计算完成,并寄存在执行单元中,由于为该条流水线为定长5周期,因此该关键指令的执行结果按照正常流程需要等待4个周期之后才能输出,本发明在指令执行完成周期即EX1周期、以及指令输出周期之前的周期即四个空拍Delay(延迟)周期的每个周期内,都会去判断执行结果中的计算标志位是否可以提前输出,即图6中的Flag提前输出选择处理部分,如果判断出该计算标志位Flag可以提前输出,那么就会在该周期内将计算标志位输出至状态结果寄存器中,等到空拍Delay结束之后的WB周期也即指令输出周期,将执行结果中的计算数据结果输出至重命名物理寄存器中,如果EX1周期和四个空拍Delay中都没有提前输出的条件,那么计算标志位会在WB周期输出至状态结果寄存器。
请参阅图7,在指令发射并读寄存器之后进行的处理包括根据指令的type信号(类型信号)进行指令解码,以及在执行单元中进行指令执行,其中,指令解码之后会产生标志位标识,该标志位标识是用于表示该指令的执行结果是否会产生计算标志位。对于并行执行的常规指令和关键指令都会进行指令解码,分别产生标志位标识Typical_Flag_Ptag_v和Early_Flag_Ptag_v,关键指令在EX1周期内执行完成后,其执行结果会寄存在执行单元中。
此时先判断Early_Flag_Ptag_v是否为1,在该标志位标识为1即有该关键指令有计算标志位需要提前输出的情况下,去判断Typical_Flag_Ptag_v是否1,即判断在EX1周期内是否有常规指令的计算标志位需要输出,如果没有常规指令的计算标志位需要输出,就在EX1周期通过输出1直接将关键指令的计算标志位result_flag[n:0]输出至状态结果寄存器flag_out[n:0];如果有常规指令的计算标志位需要输出,那么延迟到下一个周期继续判断,即在Delay1周期(WB-4周期)再根据标志位标识判断是否有常规指令的计算标志位需要输出,如果没有,则在Delay1周期通过输出2将计算标志位进行输出,如果有,则延迟至下一个周期继续判断,直至判断完WB周期之前的所有计算流水线周期。由于WB周期是正常执行顺序中的指令输出周期,在WB周期就不需要进行其他判断,而是直接将执行结果进行输出即可。通过上述说明,可以很明显的看到,如果在输出1时就有机会输出,那么可以最多提前4个周期进行输出,如果有机会则在输出2输出,则提前3个周期输出,极端情况下不能提前输出,只能在输出6口输出,此时也只是正常顺序应该输出的周期。
通过本发明提供的可变执行周期的指令执行方法,利用常规指令输出计算标志位的空闲周期将关键指令的计算标志位提前输出,在保证指令正常发射的同时,能够有效的提高指令的发射效率,从而提高分支预测的准确率,有效提高了处理器的性能。
请参阅图8,基于同一发明构思,本发明第二实施例提出的一种可变执行周期的指令执行***,包括:
提前发射模块10,用于将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;
提前执行模块20,用于执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;
提前输出模块30,用于当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;
响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
本发明利用常规指令的计算标志位输出的空闲周期将关键指令的计算标志位提前输出,提高了处理器的发射效率,从而提高了处理器分支预测的准确率。
在本发明提供的一个优选的实施例中,提前输出模块30还包括第一判断模块301;
所述第一判断模块301,用于获取所述关键指令的标志位标识,并根据所述关键指令的标志位标识,判断所述关键指令的执行结果中是否存在第一计算标志位。
本实施例通过对指令解码产生的标志位标识进行判断,能够快速的判断出关键指令的执行结果中是否存在计算标志位需要提前输出,这种判断方法不仅简单,没有增加计算复杂度,并且判断结果准确高效。
在本发明提供的另一个优选的实施例中,提前输出模块30还包括第二判断模块302;
所述第二判断模块302,用于在所述预设周期内,判断常规指令的执行结果中是否存在第二计算标志位;
若存在第二计算标志位,则所述第一计算标志位不能提前输出,否则,所述第一计算标志位能提前输出。
本实施例提供了标志位冲突检测的机制,通过冲突检测机制解决了提前输出产生的输出冲突问题,从而能够实现关键指令的计算标志位的提前输出。
此外,本发明还提供了另一个优选的实施例,在该实施例中,所述提前输出模块30还用于响应于判断所述第一计算标志位不能提前输出,在所述指令输出周期,将所述执行结果分别输出至相应的寄存器中。
对于计算标志位被判定为无法提前输出的情况,即在预设周期内都没有空闲周期可以利用,那么按照该关键指令的正常执行顺序,在令输出周期将其执行结果分别输出到对应的寄存器即可。本申请在常规的指令执行的基础上,利用非提前输出指令的计算标志位输出的空闲周期,将关键指令的计算标志位进行提前输出,在不增加计算复杂度的同时,实现了处理器的高效发射,提高了处理器的分支预测准确度,从而提高了处理器的执行效率。
进一步地,在本发明提供的另一个优选实施例中,还包括:
在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
通过本发明提供的指令执行方法,不仅是计算标志位可以提前输出,计算数据结果也可以提前输出,进一步提高了处理器的发射效率,从而提高了分支预测的准确性,极大提升了处理器的执行效率。
进一步地,在本发明提供的另一个优选实施例中,还包括:
当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
在大部分的***架构下,比如ARM架构,将计算标志位提前输出能够有效提升***进行分支预测的效率,但实际上,对于其他架构下的***,比如MIPS架构下的***,其分支预测准确率与执行结果中的计算数据结果密切相关,因此,本实施例提供的提前输出方法,能够应用于多种架构的***中,有效提高了***分支预测的效率和效果,具有极高的可扩展性。
本发明实施例提出的可变执行周期的指令执行***的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。上述一种可变执行周期的指令执行***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
此外,本发明实施例还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
综上,本发明实施例提出的一种可变执行周期的指令执行方法、***和计算机设备,所述方法通过将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。本发明利用常规指令输出计算标志位的空闲周期将关键指令的计算标志位提前输出,在保证指令正常发射的同时,能够有效的提高指令的发射效率,从而提高分支预测的准确率,有效提高了处理器的性能。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种可变执行周期的指令执行方法,其特征在于,包括:
将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;所述关键指令指的是影响***的执行效率且执行周期较短的指令;
执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;
当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;具体为:
在所述预设周期内,判断常规指令的执行结果中是否存在第二计算标志位,所述常规指令指的是与关键指令并行执行的非关键指令;
若存在第二计算标志位,则所述第一计算标志位不能提前输出,否则,所述第一计算标志位能提前输出;
响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
2.根据权利要求1所述的可变执行周期的指令执行方法,其特征在于,在所述判断是否将所述第一计算标志位提前输出之后,还包括:
响应于判断所述第一计算标志位不能提前输出,在所述指令输出周期,将所述执行结果分别输出至相应的寄存器中。
3.根据权利要求1所述的可变执行周期的指令执行方法,其特征在于,在所述将所述第一计算标志位输出至状态结果寄存器之后,还包括:
在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
4.根据权利要求1所述的可变执行周期的指令执行方法,其特征在于,所述并将所述执行结果寄存在所述执行单元中之后,还包括:
当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
5.一种可变执行周期的指令执行***,其特征在于,包括:
提前发射模块,用于将关键指令和相应的指令输出周期从发射单元提前发射至执行单元;所述关键指令指的是影响***的执行效率且执行周期较短的指令;
提前执行模块,用于执行所述关键指令,得到相应的执行结果,并将所述执行结果寄存在所述执行单元中;
提前输出模块,用于当所述执行结果包括计算数据结果和第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述第一计算标志位提前输出;具体为:
在所述预设周期内,判断常规指令的执行结果中是否存在第二计算标志位,所述常规指令指的是与关键指令并行执行的非关键指令;
若存在第二计算标志位,则所述第一计算标志位不能提前输出,否则,所述第一计算标志位能提前输出;
响应于判断所述第一计算标志位提前输出,在所述预设周期,将所述第一计算标志位输出至状态结果寄存器,并在所述指令输出周期,将所述计算数据结果输出至重命名物理寄存器。
6.根据权利要求5所述的可变执行周期的指令执行***,其特征在于,所述提前输出模块还用于响应于判断所述第一计算标志位不能提前输出,在所述指令输出周期,将所述执行结果分别输出至相应的寄存器中。
7.根据权利要求5所述的可变执行周期的指令执行***,其特征在于,所述提前输出模块还用于在所述指令输出周期之前的周期,根据所述常规指令的执行结果,判断是否将所述计算数据结果提前输出;
响应于判断将所述计算数据结果提前输出,在所述指令输出周期之前的周期,将所述计算数据结果输出至重命名物理寄存器。
8.根据权利要求5所述的可变执行周期的指令执行***,其特征在于,所述提前输出模块还用于当所述执行结果中只存在计算数据结果或第一计算标志位时,根据预设周期内的常规指令的执行结果,判断是否将所述关键指令的执行结果提前输出;
响应于判断所述关键指令的执行结果提前输出,在所述预设周期,将所述关键指令的执行结果输出至相应的寄存器中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310994496.8A CN117008977B (zh) | 2023-08-08 | 2023-08-08 | 一种可变执行周期的指令执行方法、***和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310994496.8A CN117008977B (zh) | 2023-08-08 | 2023-08-08 | 一种可变执行周期的指令执行方法、***和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117008977A CN117008977A (zh) | 2023-11-07 |
CN117008977B true CN117008977B (zh) | 2024-03-19 |
Family
ID=88572447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310994496.8A Active CN117008977B (zh) | 2023-08-08 | 2023-08-08 | 一种可变执行周期的指令执行方法、***和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117008977B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216690A (ja) * | 1991-09-23 | 1993-08-27 | Intel Corp | コンピュータ装置およびコンピュータ装置を動作させる方法 |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US6003127A (en) * | 1995-10-04 | 1999-12-14 | Nippondenso Co., Ltd. | Pipeline processing apparatus for reducing delays in the performance of processing operations |
US6021488A (en) * | 1997-09-23 | 2000-02-01 | International Business Machines Corp. | Data processing system having an apparatus for tracking a status of an out-of-order operation and method thereof |
US6055624A (en) * | 1998-04-07 | 2000-04-25 | International Business Machines Corporation | Millicode flags with specialized update and branch instructions |
CN1906499A (zh) * | 2004-10-14 | 2007-01-31 | 安立股份有限公司 | 利用高时间分辨率任意改变发射和接收之间的延迟时间的小尺寸低功耗短程雷达及其控制方法 |
WO2014085975A1 (zh) * | 2012-12-04 | 2014-06-12 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理*** |
CN106406814A (zh) * | 2016-09-30 | 2017-02-15 | 上海兆芯集成电路有限公司 | 处理器和将架构指令转译成微指令的方法 |
CN109885857A (zh) * | 2018-12-26 | 2019-06-14 | 苏州中晟宏芯信息科技有限公司 | 指令发射控制方法、指令执行验证方法、***及存储介质 |
CN109933368A (zh) * | 2019-03-12 | 2019-06-25 | 苏州中晟宏芯信息科技有限公司 | 一种指令的发射和验证方法及装置 |
CN111221573A (zh) * | 2018-11-26 | 2020-06-02 | 深圳云天励飞技术有限公司 | 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质 |
CN111857830A (zh) * | 2020-06-05 | 2020-10-30 | 上海赛昉科技有限公司 | 一种提前转发指令数据的通路设计方法、***及存储介质 |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
CN115847395A (zh) * | 2022-11-02 | 2023-03-28 | 中日龙(襄阳)机电技术开发有限公司 | 取出机判断移动到位的方法、***、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107438B2 (en) * | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US7725694B2 (en) * | 2004-12-21 | 2010-05-25 | Denso Corporation | Processor, microcomputer and method for controlling program of microcomputer |
US8762444B2 (en) * | 2011-09-28 | 2014-06-24 | Nvidia Corporation | Fast condition code generation for arithmetic logic unit |
US20150327198A1 (en) * | 2014-05-12 | 2015-11-12 | Telefonaktiebolaget L M Ericsson (Publ) | Handling of Cells Associated with Timing Advance Groups in a Wireless Communications System |
CN111459549B (zh) * | 2020-04-07 | 2022-11-01 | 上海兆芯集成电路有限公司 | 具有高度领先分支预测器的微处理器 |
-
2023
- 2023-08-08 CN CN202310994496.8A patent/CN117008977B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216690A (ja) * | 1991-09-23 | 1993-08-27 | Intel Corp | コンピュータ装置およびコンピュータ装置を動作させる方法 |
US6003127A (en) * | 1995-10-04 | 1999-12-14 | Nippondenso Co., Ltd. | Pipeline processing apparatus for reducing delays in the performance of processing operations |
US5826070A (en) * | 1996-08-30 | 1998-10-20 | International Business Machines Corporation | Apparatus and method for maintaining status flags and condition codes using a renaming technique in an out of order floating point execution unit |
US6021488A (en) * | 1997-09-23 | 2000-02-01 | International Business Machines Corp. | Data processing system having an apparatus for tracking a status of an out-of-order operation and method thereof |
US6055624A (en) * | 1998-04-07 | 2000-04-25 | International Business Machines Corporation | Millicode flags with specialized update and branch instructions |
CN1906499A (zh) * | 2004-10-14 | 2007-01-31 | 安立股份有限公司 | 利用高时间分辨率任意改变发射和接收之间的延迟时间的小尺寸低功耗短程雷达及其控制方法 |
WO2014085975A1 (zh) * | 2012-12-04 | 2014-06-12 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理*** |
CN106406814A (zh) * | 2016-09-30 | 2017-02-15 | 上海兆芯集成电路有限公司 | 处理器和将架构指令转译成微指令的方法 |
CN111221573A (zh) * | 2018-11-26 | 2020-06-02 | 深圳云天励飞技术有限公司 | 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质 |
CN109885857A (zh) * | 2018-12-26 | 2019-06-14 | 苏州中晟宏芯信息科技有限公司 | 指令发射控制方法、指令执行验证方法、***及存储介质 |
CN109933368A (zh) * | 2019-03-12 | 2019-06-25 | 苏州中晟宏芯信息科技有限公司 | 一种指令的发射和验证方法及装置 |
CN111857830A (zh) * | 2020-06-05 | 2020-10-30 | 上海赛昉科技有限公司 | 一种提前转发指令数据的通路设计方法、***及存储介质 |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
CN115847395A (zh) * | 2022-11-02 | 2023-03-28 | 中日龙(襄阳)机电技术开发有限公司 | 取出机判断移动到位的方法、***、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
A Probabilistic Monte Carlo Framework for Branch Prediction;Bhargava Kalla ET AL;《2017 IEEE International Conference on Cluster Computing》;第第2017年卷卷;全文 * |
一种精确的分支预测微处理器模型;陈跃跃, 周兴铭;计算机研究与发展(05);全文 * |
一种面向嵌入式处理器的昏睡子块唤醒方法;李伟;沈绪榜;;计算机测量与控制(02);全文 * |
高性能混合计算协处理器计算内核的研究与实现;董冕;《中国知网硕士电子期刊出版信息》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117008977A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5699554B2 (ja) | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム | |
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US5923579A (en) | Optimized binary adder and comparator having an implicit constant for an input | |
US5418736A (en) | Optimized binary adders and comparators for inputs having different widths | |
US20130346729A1 (en) | Pipelining out-of-order instructions | |
KR100616722B1 (ko) | 수퍼스칼라프로세서내의파이프라인명령디스패치유닛 | |
US5619664A (en) | Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms | |
US5604878A (en) | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path | |
US11204770B2 (en) | Microprocessor having self-resetting register scoreboard | |
US8838665B2 (en) | Fast condition code generation for arithmetic logic unit | |
US20030005261A1 (en) | Method and apparatus for attaching accelerator hardware containing internal state to a processing core | |
US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
JP2925818B2 (ja) | 並列処理制御装置 | |
CN116662255A (zh) | 结合超越函数硬件加速器的risc-v处理器实现方法及*** | |
CN115934168A (zh) | 处理器和内存访问方法 | |
US7681022B2 (en) | Efficient interrupt return address save mechanism | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
CN100590592C (zh) | 处理器及其指令发布方法 | |
US7010676B2 (en) | Last iteration loop branch prediction upon counter threshold and resolution upon counter one | |
JP7495030B2 (ja) | プロセッサ、処理方法、および関連デバイス | |
US7539847B2 (en) | Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages | |
CN117008977B (zh) | 一种可变执行周期的指令执行方法、***和计算机设备 | |
KR100237989B1 (ko) | 슈퍼스칼라 프로세서에서 리네임 버퍼를 효율적으로 사용하기 위한 방법 및 시스템 | |
CN101706715B (zh) | 指令调度装置和方法 | |
RU2816094C1 (ru) | Vliw-процессор с дополнительным подготовительным конвейером и предсказателем перехода |
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 |