CN101710272B - 指令调度装置和方法 - Google Patents
指令调度装置和方法 Download PDFInfo
- Publication number
- CN101710272B CN101710272B CN200910236694A CN200910236694A CN101710272B CN 101710272 B CN101710272 B CN 101710272B CN 200910236694 A CN200910236694 A CN 200910236694A CN 200910236694 A CN200910236694 A CN 200910236694A CN 101710272 B CN101710272 B CN 101710272B
- Authority
- CN
- China
- Prior art keywords
- instruction
- operand
- operation queue
- register
- execution 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
Links
Images
Abstract
对微处理器中从操作队列向保留站发射指令进行动态调度的装置和方法,包括:指令写入步骤,基于要写入操作队列的译码后指令与操作队列中的有效指令之间的数据相关性、已经写回和正在写回的指令执行结果,设置译码后指令的各操作数的状态后将其写入;操作数状态更新步骤,基于操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各未发射指令的操作数的状态;待发射判断步骤,基于各未发射指令的各操作数的状态,判断是否存在所有操作数均已准备好的待发射指令;以及指令发射步骤,在保留站有空闲时,将所判定的待发射指令发射至保留站。通过基于指令之间的数据相关性来实现操作数已准备好的指令发射到保留站,能够有效提高流水线效率。
Description
技术领域
本发明涉及微处理器的体系结构,特别涉及对微处理器中从操作队列向保留站发射指令进行动态调度的装置和方法。
背景技术
现代的微处理器通常采用流水线技术来提高微处理器的处理速度。通过流水线技术,在各个不同阶段并行执行不同的指令以提高处理器的性能。然而,指令之间的数据相关会严重影响指令的并行性,从而降低流水线的利用率以及处理器的性能。
为了解决指令之间的数据相关对指令并行性的影响,很多微处理器选择使用对指令进行动态调度的流水线结构,比如Tomasulo算法。译码后的指令保存到操作队列中,而操作队列中的指令顺序发射到保留站。其中,所谓的顺序发射是指,指令从操作队列中发射的顺序与指令写入到操作队列中的顺序是一致的,即按照先进先出(FIFO)的方式进行发射。只要保留站中有空闲项时,不管操作队列中的第一条指令的操作数是否已准备好均将其发射到对应的保留站中。然后,由保留站侦听结果总线,判断指令的操作数是否准备好,并将操作数准备好的指令发射到功能部件中以开始执行指令。每个功能部件对应于一个保留站,每个功能部件执行与其相对应的保留站中操作数已准备好的指令。
对于上述对指令进行动态调度的技术,所有指令译码后写入同一个操作队列,不同类型的指令从操作队列中顺序发射到不同类型的保留站,由于操作队列的项数比保留站的项数要多(因硬件开销方面的考虑,保留站的项数一般不多),由此使得,操作队列中操作数准备好的指令理论上比保留站中操作数准备好的指令要多,并因此存在以下问题:当与操作队列中的第一条指令相对应的保留站长时间处于饱和状态(即保留站没有空闲项)时,则第一条指令将一直保存在操作队列中而不被发射到保留站中,从而使得,即使与操作队列中的其它指令相对应的保留站有空闲项,所述其它指令也不能被发射。
参照图1具体而言:如果访存保留站已满,即访存保留站中的所有项都处于“BUSY(忙)”状态,也即没有空闲的项可用来接收操作队列发射过来的新指令;其中,保留站项的“忙”状态表示该保留站项已经存放了指令,并且该指令尚未被执行或者正在被执行但结果尚未写回。此时,在操作队列的第一条指令是LW指令(存数访存指令)的情况下,由于访存保留站已满将使得访存指令LW不能被发射,因此,即使此时定点保留站有空闲项,操作队列中的定点指令MUL、ADD因被访存指令LW堵塞而不能被发射。进一步,如果此时访存指令发生了例外且需要很多周期处理该例外,则此时与定点指令相对应的功能部件将处于空闲状态,这显然会降低流水线的利用率和处理器的性能。
另外,上述对指令进行动态调度的技术还存在的问题是:当保留站没有空闲项,且保留站中的指令操作数尚未准备好时,即使操作队列中存在操作数已准备好的指令,也不能执行该指令。
参照图2具体而言:如果操作队列中的LW、MUL、ADD指令均已发射到保留站中。由于MUL、ADD指令与LW指令存在数据相关(均涉及操作数R1),只要LW指令的结果尚未写回,就不能执行MUL,ADD指令。此时,MUL、ADD指令将因操作数R1尚未准备好而一直占用保留站项,使得没有空闲的保留站项可用来接收SUB指令,因此不能发射SUB、FADD指令,即使它们的操作数已准备好且它们与LW指令及保留站中的其它指令均不存在数据相关。换言之,即使SUB指令的操作数已准备好也不能被执行,这显然也将导致流水线效率降低。
发明内容
有鉴于此,本发明目的在于提供一种用于对微处理器中从操作队列向保留站发射指令进行动态调度的装置和方法,以基于微处理器指令之间的数据相关性来实现将操作数已准备好的指令发射到保留站,从而能够提高微处理器的流水线效率以及整体性能。
为了实现上述目的,本发明提供了一种指令调度装置,用于对微处理器中从操作队列向保留站发射指令进行动态调度,其包括:指令写入器,用于基于要写入所述操作队列的译码后指令与所述操作队列中的有效指令之间的数据相关性、已经写回和正在写回至所述操作队列的指令执行结果,来设置所述译码后指令的各操作数的状态,并将设置后的所述译码后指令作为待写入指令写入所述操作队列;操作数状态更新器,用于基于所述操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各所述未发射指令的操作数的状态;待发射判断器,用于基于各所述未发射指令的各操作数的状态,判断所述操作队列中是否存在所有操作数均已准备好的待发射指令;以及指令发射器,用于在所述保留站有空闲时,将经由所述待发射判断器所判定的待发射指令发射至所述保留站。
另外,本发明还提供了一种指令调度方法,用于对微处理器中从操作队列向保留站发射指令进行动态调度,其包括:指令写入步骤,用于基于要写入所述操作队列的译码后指令与所述操作队列中的有效指令之间的数据相关性、已经写回和正在写回至所述操作队列的指令执行结果,来设置所述译码后指令的各操作数的状态,并将设置后的所述译码后指令作为待写入指令写入所述操作队列;操作数状态更新步骤,用于基于所述操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各所述未发射指令的操作数的状态;待发射判断步骤,用于基于各所述未发射指令的各操作数的状态,判断所述操作队列中是否存在所有操作数均已准备好的待发射指令;以及指令发射步骤,用于在所述保留站有空闲时,将经由所述待发射判断步骤所判定的待发射指令发射至所述保留站。
通过上述指令调度装置和方法,本发明能够获得以下有益技术效果:由于进入保留站的指令都是操作数准备好的指令,所以保留站不需要侦听结果总线,不需要判断指令的操作数是否准备好,而可将指令直接发射到功能部件中。这能够有效解决因某个保留站无空闲而使得顺序发射操作队列中的指令时,即使操作队列中的指令的操作数已准备好也不能被执行的问题。因此,本发明能够有效减少指令发射中因保留站无空闲而堵塞流水线的次数,从而提高流水线的效率和微处理器的整体性能。
对于上述指令调度装置和方法,优选地,通过侦听结果总线来确定指令执行结果以及指令执行结果正在写回的指令的操作队列项号,并根据所述操作队列项号将所述指令执行结果写回到所述操作队列中所述指令所在的操作队列项内。由此使得,可将上述指令调度装置实现为通过从操作队列读取操作队列项内所保存的信息以及向操作队列中的操作队列项写入信息来实施上述指令调度方法。
附图说明
图1示出了现有指令调度技术的一个示例;
图2示出了现有指令调度技术的另一个示例;
图3示出了根据本发明实施例的指令调度装置的框图;
图4示出了本发明指令调度装置中指令写入器的优选实施例的框图;
图5示出了本发明指令调度装置中操作数状态更新器的优选实施例的框图;
图6示出了可应用于本发明指令调度装置的,操作队列中用于保存指令的相关信息的操作队列项域构成的示意图;
图7示出了本发明指令调度装置中指令写入器的处理流程的示意图;
图8示出了本发明指令调度装置中操作数状态更新器的处理流程的示意图;
图9示出了本发明指令调度装置中待发射判断器的处理流程的示意图;
图10示出了本发明指令调度装置中指令发射器的处理流程的示意图;以及
图11A~图11I根据本发明指令调度方法示出了指令从译码到发射过程的一个应用示例。
具体实施方式
如上所述,本发明旨在解决由保留站侦听结果总线、并根据侦听结果对指令进行动态调度的现有技术中指令发射效率低的问题,并提供了一种指令调度技术,以提高指令发射流水线的效率及微处理器的整体性能。该指令调度技术的主要思路是,基于指令之间的数据相关性,在保留站有空闲项时选择所有操作数均已准备好的指令发射到保留站,由此能够有效提高指令发射的流水线效率。
本发明的上述及其他技术特征和有益效果,将通过参照附图进行的优选实施例介绍得到更充分的阐述。
图3给出了根据本发明实施例的指令调度装置的框图。
如图3所示,本发明的指令调度装置300用于对微处理器中从操作队列100向保留站200发射指令进行动态调度,包括指令写入器310、操作数状态更新器320、待发射判断器330和指令发射器。其中:
指令写入器310用于基于要写入操作队列100的译码后指令411与已存在于操作队列100中的有效指令420之间的数据相关性以及已经写回和正在写回至操作队列100的指令执行结果,来设置译码后指令411的各操作数的状态,并将设置后的译码后指令411作为待写入指令412写入操作队列100;
操作数状态更新器320用于基于操作队列100中各未发射指令421与指令执行结果正在写回的指令之间的数据相关性,更新各未发射指令421的操作数的状态;
待发射判断器330用于基于操作队列100中各未发射指令421的各操作数的状态,判断操作队列100中是否存在所有操作数均已准备好的待发射指令422;以及
指令发射器340用于在保留站200中存在空闲项时,将经由待发射判断器330判定的待发射指令422发射至保留站200。
其中,操作队列100中有效指令420包括尚未发射的未发射指令421和已发射但尚未提交的已发射指令423,已经写回至操作队列100的指令执行结果通过查看有效指令420获知,而正在写回至操作队列100的指令执行结果通过侦听用以写回指令执行结果的结果总线500而获知。
图3所示的指令调度装置通过由指令写入器310和操作数状态更新器320基于指令之间的数据相关性实时更新操作队列中未发射指令的操作数状态,能够有效确保进入保留站的指令都是各操作数均已准备好的指令,进而能够有效提高指令发射的流水线效率。
下面将分别参考图4、图5详细描述本发明指令调度装置300中指令写入器310和操作数状态更新器320的优选实施例。
如图4所示,指令写入器310可优选为包括第一判断器311、第一设置器312、相关指令确定器313、第二判断器314以及第二设置器315。其中:
第一判断器311用于将译码后指令411的操作数的源寄存器与操作队列100中各有效指令420的指令执行结果的目的寄存器进行比较,以判断操作队列100中是否存在目的寄存器与译码后指令的操作数的源寄存器为同一寄存器的有效指令,也即判断操作队列100中是否存在与译码后指令411的操作数相关的有效指令;
第一设置器312用于在经由第一判断器311判定操作队列100中不存在与译码后指令411的操作数相关的有效指令时,将译码后指令411的操作数的状态设置为已准备好;
相关指令确定器313用于在经由第一判断器311判定操作队列100中存在与译码后指令411的操作数相关的有效指令时,将与该操作数相关的全部有效指令中距离译码后指令411最近的有效指令确定为译码后指令411的该操作数的相关指令430;
第二判断器314用于判断相关指令430的指令执行结果是否已经写回或正在写回;以及
第二设置器315,用于在经由第二判断器314判定相关指令430的指令执行结果已经写回或正在写回时,将译码后指令411中相应的操作数的状态设置为已准备好。
如图5所示,操作数状态更新器320可优选为包括第三判断器321和第三设置器322。其中:
第三判断器321,用于判断指令执行结果正在写回的指令是否为所述未发射指令的操作数的相关指令;以及
第三设置器,用于在经由所述第三判断器判定指令执行结果正在写回的指令是所述未发射指令的所述操作数的相关指令时,将所述未发射指令的所述操作数的状态设置为已准备好。
下面将具体到对操作队列中用于保存指令的相关信息的操作队列项的各个域进行的操作,对上述指令调度装置300进行更详细的说明。
图6示出了可应用于本发明指令调度装置的,操作队列中用于保存指令相关信息的操作队列项域构成的示意图。
如图6所示,构成操作队列项的域至少包括有:
Opcode:操作码域,表示指令的具体操作类型,比如加法ADD、减法SUB、乘法MUL、除法DIV等操作。
State:指令在操作队列中的状态位,可以如下设置该状态位:
“00”表示操作队列项处于空闲状态,可以接收新的指令;
“01”表示操作队列项中存放指令,该指令尚未发射到保留站;
“10”表示该操作队列项中指令已经发射到保留站中。
其中,只要state域不等于“00”,即表示该指令为有效指令。
Src1:操作数1所在的源寄存器号。
Src2:操作数2所在的源寄存器号。
Dest:存放指令执行结果的目的寄存器号。
Qid1:表示操作数1的相关指令所在的操作队列项号。
操作队列中存在某条指令,其目的寄存器号与操作数1的寄存器号相等,则认为该条指令与操作数1相关;并且,将与操作数1相关的所有指令中距离当前指令最近的指令确定为操作数1的相关指令。例如:
指令a“ADD R1,R2,R3”、指令b“ADD R1,R2,R4”、指令c“ADD R3,R2,R1”是操作队列中的有效指令,指令a是操作队列的第一条指令。尽管指令c的操作数2所在的源寄存器R1是指令b的目的寄存器,也是指令a的目的寄存器,由于指令b距离指令c最近,使得指令c的操作数2(R1)的值来自于指令b的指令执行结果,因此指令c的操作数2(R1)的相关指令为指令b。
Qid2:表示操作数2的相关指令所在的操作队列项号。
Rdy1:如果在操作队列中位于该指令之前的有效指令中,不存在操作数1的相关指令,则操作数1的值来自于读寄存器的值。
Rdy2:如果在操作队列中位于该指令之前的有效指令中,不存在操作数2的相关指令,则操作数2的值来自于读寄存器的值。
Wb1:表示操作数1的相关指令的指令执行结果已经写回至操作队列。
Wb2:表示操作数2的相关指令的指令执行结果已经写回至操作队列。
Wb:表示指令已经执行完,并且指令执行结果已经写回至操作队列。该指令等待成为操作队列中的第一条指令后提交。
基于上述用于保存指令信息的操作队列项的域构成,在将译码后指令411写入操作队列100时,指令写入器310中的第一判断器311将该指令的操作数1、操作数2的源寄存器分别与操作队列100中各有效指令420的目的寄存器进行比较(操作队列100中的有效指令420是指state域不为“00”的指令),比较是否是同一个寄存器,以使得第一设置器312和/或相关指令确定器313、第二判断器314、第二设置器315能够相应根据比较结果给Rdy1、Rdy2、Qid1、Qid2、Wb1、Wb2等域赋值。
其中,第一设置器312和相关指令确定器313通过设置译码后指令411中与操作数1相对应的Qid1域和Rdy1域来设置操作数1的状态。具体为:在经由第一判断器311判定操作队列100中不存在目的寄存器与操作数1的源寄存器为同一寄存器的有效指令420时,第一设置器312将Rdy1域设置为1,以表示操作数1来自于寄存器且已准备好;以及在经由第一判断器311判定操作队列100中存在目的寄存器与操作数1的源寄存器为同一寄存器的有效指令420时,相关指令确定器313将与Rdy1域设置为0,并将与Qid1域设置为相关指令430的操作队列项号qid,以表示操作数1来自于相关指令430的指令执行结果,且操作数1的状态决定于相关指令430的指令执行结果是否已经写回或正在写回。
此外,第二设置器315通过设置译码后指令411中与操作数1相对应的Wb1域来设置操作数1的状态。具体为:在经由第二判断器314判定相关指令430的指令执行结果已经写回或正在写回时,第二设置器315将与Wb1域设置为1,以表示操作数1已准备好。
将参考图7所示指令写入器310的处理流程的优选示例进行更详细的说明如下:
步骤S1,经由第一判断器311判断操作队列100中是否存在目的寄存器与操作数1的源寄存器为同一寄存器的有效指令,并基于判断结果选择性执行下述步骤S1N或S1Y。
步骤S1N,在经由第一判断器311判定操作队列100中不存在操作数1的相关指令时,第一设置器312将与操作数1相对应的Rdy1域设置为1,以表示操作数1的值来自于寄存器且已准备好。
步骤S1Y,在经由第一判断器311判定操作队列100中存在目的寄存器与操作数1的源寄存器为同一寄存器的有效指令时,相关指令确定器313将与操作数1相关的有效指令中距离当前指令最近者确定为相关指令430,并将与操作数1相对应的Rdy1域设置为0,同时将与操作数1相对应的Qid1域设置为相关指令430的操作队列项号qid,以表示操作数1的值来自于相关指令430的指令执行结果,也即操作数1的状态决定于相关指令430的指令执行结果是否已经写回或正在写回,就此执行以下步骤S2(包括步骤S2-1和S2-2)。
步骤S2-1,经由第二判断器314判断相关指令430的指令执行结果是否已经写回;步骤S2-2,经由第二判断器314判断结果总线500的Qid域值是否等于相关指令430的qid号,也即判断相关指令430的指令执行结果是否正在写回。并且,基于步骤S2-1和S2-2的判断结果选择性执行下述步骤S2N或S2Y。
需要说明的是,尽管图7将步骤S2-1绘制为在步骤S2-2之前执行,当本领域技术人员在掌握本发明的技术原理之后应能明白,步骤S2-1和S2-2均旨在于判断操作数1是否准备好,两者之间没有必然的时序先后联系,在具体实施中完全可根据个人喜好任意选择步骤S2-1和S2-2的执行时序。
步骤S2Y,在经由第二判断器314判定相关指令430的指令执行结果已经写回或正在写回时,第二设置器315将与操作数1相对应的Wb1域设置为1,以表示操作数1已准备好。
步骤S2N,在经由第二判断器314判定相关指令430的指令执行结果不仅尚未写回且也没有被正在写回时,第二设置器315保持与操作数1相对应的Wb1域值不变,以继续表示操作数1的值来自于相关指令430的指令执行结果且尚未准备好。
对于图7,应能理解的是,虽然以操作数1为例进行了解释,针对该译码后指令411的其它操作数也需进行类似的判断和域值设置。
另一方面,基于上述用于保存指令信息的操作队列项的域构成,对于已存在于操作队列100中的未发射指令421,操作数状态更新器320中的第三判断器321将该指令中分别与操作数1、操作数2相对应的Qid1、Qid2与结果总线500的Qid域值进行比较,以判断其相关指令的指令执行结果是否正在返回,并使得第三设置器322能够根据比较结果给Rdy1、Rdy2、Wb1、Wb2等域赋值。
其中,第三设置器322通过更新未发射指令421中与操作数1相对应的Wb1域值来更新操作数1的状态,具体为:基于未发射指令421中与操作数1相对应的Qid1域值,在经由第三判断器321判定指令执行结果正在写回的指令是该Qid1域值所指向的相关指令430时,第三设置器322将与操作数1相对应的Wb1域更新为1,以表示操作数1已准备好。
此外,基于未发射指令421中与操作数1相对应的Qid1域值,在Qid1域值所指向的相关指令430已提交的情况下,第三设置器322将与操作数1相对应的Rdy1域更新为1。
将参考图8所示操作数状态更新器320的处理流程的优选示例进行更详细的说明如下:
步骤S3,经由第三判断器321判断结果总线500的Qid域值是否等于操作数1的相关指令430的qid号,也即判断相关指令430的指令执行结果是否正在写回,并基于步骤S3的判断结果选择性执行下述步骤S3N或S3Y。
步骤S3N,在经由第三判断器321判定相关指令430的指令执行结果尚未正在写回时,第三设置器322保持与操作数1相对应的Wb1域值不变,以继续表示操作数1的值来自于相关指令430的指令执行结果且尚未准备好。
步骤S3Y,在经由第三判断器321判定相关指令430的指令执行结果正在写回时,第三设置器322将与操作数1相对应的Wb1域值更新为1,以表示操作数1的值已准备好。
此外,当操作队列中的指令被提交时,与被提交指令存在数据相关性的未发射指令中相应Rdy域需要相应地更新为1。这是因为,操作队列中提交了的指令的指令执行结果将写回到寄存器中,从而与被提交指令存在数据相关的指令可直接从寄存器中读值,所以Rdy域需要相应地置为1。继续参照图8具体而言:
步骤S4,第三判断器321还基于未发射指令421中与操作数1相对应的Qid1域值,判断Qid1域值所指向的相关指令430是否已经提交,并基于判断结果选择性执行以下步骤S4N和S4Y。
步骤S4N,在经由第三判断器321判定相关指令430尚未提交时,第三设置器322保持与操作数1相对应的Rdy1域值不变,以继续表示操作数1的值来自于相关指令430的指令执行结果。
步骤S4Y,在经由第三判断器321判定相关指令430已提交时,第三设置器322将与操作数1相对应的Rdy1域值更新为1,以表示操作数1的值来自于读寄存器。
对于图8,类似地,应能理解的是,虽然以操作数1为例进行了解释,针对该未发射指令421的其它操作数也需进行类似的判断和域值更新。
通过如上所述经由指令写入器310和操作数状态更新器320设置和实时更新操作队列100中各未发射指令421的各操作数的状态,本发明指令调度装置300中的待发射判断器330通过基于各未发射指令421的各操作数的状态,判断操作队列中是否存在所有操作数均已准备好的待发射指令422。参照图9具体而言:
指令准备好是指指令的所有操作数都已经准备好。而指令的操作数1准备好是指:指令所在的操作队列项的Rdy1域等于1(参见图9步骤S5),或者Wb1域为1(参见图9步骤S6),或者有效结果总线的qid号与Qid1号相等(参见图9步骤S7)。其中,如果Rdy1为1,则操作数1的值来自于读寄存器而获得的值;如果Wb1为1,则操作数1的值来自于操作队列中相关指令430的指令执行结果;如果有效结果总线的qid号与qid1号相等,则操作数1的值来自于结果总线上的指令结果。当Rdy1域不为1时再判断Wb1域。指令的其它操作数准备好的概念和上述操作数1准备好的概念一致。
在判断完未发射指令421的操作数是否均已准备好之后,也即在确定待发射指令422之后,上述指令调度装置300中的指令发射器340根据处理器的发射宽度以及处理器的结构选择发射策略。如果不存在待发射指令422,则在当前拍不发射指令;如果只有一条待发射指令422,则只发射一条指令。所述发射策略即可以实现单发射也可以实现双发射,也可以扩展到实现更宽的发射宽度;以及既可以实现单发射,也可以实现双发射或者多发射。
优选地,可以将操作队列100中操作数均已准备好的待发射指令422,根据指令操作类型进行分类,分为:非乘、除操作的整型操作,乘、除操作的整型操作,浮点操作以及访存操作。可按照指令进入操作队列的顺序,找到操作队列中每类指令的第一条操作数准备好的指令;然后根据访存优先级最高,非乘、除操作的整型操作优先级第二,乘、除操作的整型操作优先级第三,浮点操作优先级最低的顺序,选择出两条待发射指令422进行发射。具体流程可参见附图11所示。
需要说明的是,上述指令操作类型及优先级顺序仅旨在进行示例性说明。本领域技术人员应能理解,指令的分类以及优先级的确定,在具体实施中,不同的处理器完全可根据实际需要不同而各自设定
此外,在选择待发射指令发射422时还需要考虑相应的保留站200是否存在空闲项可用来存放从操作队列中发射来的指令。如果保留站中存在空闲项,则将操作队列100中各操作数均已准备好的待发射指令422发射到保留站200中。
另外,本发明还提供了与上述指令调度装置相对应的指令调度方法。该指令调度方法包括:指令写入步骤,用于基于要写入操作队列的译码后指令与操作队列中的有效指令之间的数据相关性、已经写回和正在写回至操作队列的指令执行结果,来设置译码后指令的各操作数的状态,并将设置后的译码后指令作为待写入指令写入操作队列;操作数状态更新步骤,用于基于操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各未发射指令的操作数的状态;待发射判断步骤,用于基于各未发射指令的各操作数的状态,判断操作队列中是否存在所有操作数均已准备好的待发射指令;以及指令发射步骤,用于在保留站有空闲时,将经由待发射判断步骤所判定的待发射指令发射至保留站。
对于上述指令调度方法,前述针对指令调度装置的描述均同样适用。并且,本领域技术人员还应能理解:实现上述方法实施例的全部或部分步骤可通过程序指令相关的硬件来完成;所述程序可以存储于计算机可读取存储介质中,该程序在执行时包括上述方法实施例中的全部或部分步骤;所述的存储介质包括ROM/RAM(Read Only Memory/Random-Access Memory,只读存储器/随机访问内存)、磁碟或光盘等。
下面将参考图11A~图11I描述根据本发明指令调度方法的指令从译码到发射过程的一个应用示例,以具体解释本发明的技术原理。
如图11A所示:译码后的指令写入操作队列,操作队列具有空闲项。在本例中,译码后的指令写入操作队列需要1个时钟周期(1个cycle);操作队列中的指令发射到保留站中需要1个时钟周期;访存部件执行LW指令需要4个时钟周期;定点功能部件执行非乘、除整型指令需要1个时钟周期,执行乘、除整型指令需要2个时钟周期,浮点功能部件执行浮点指令需要2个时钟周期;提交指令需要1个时钟周期。
1、如图11B所示,在第1时钟周期的时钟上升沿,LW指令写到操作队列的第一项中,其qid号为“000“(表示操作队列的第1项)。LW的操作数是准备好的,其Rdy1、Rdy2域为1。
2、如图11C所示,在第2时钟周期的时钟上升沿,LW指令从操作队列中发射到保留站,操作数的值来自于读寄存器的值,LW指令所在的操作队列项的状态由“01”变为“10”。LW访存需要4个时钟周期,所以经过第2时钟周期、第3时钟周期、第4时钟周期、在第5时钟周期的尾端结果总线送回访存结果。同时在第2时钟周期,MUL指令写入到操作队列中。MUL指令的操作数R1与LW相关且LW未写回,所以Rdy1为0,Qid1域为“000”(LW指令所在的操作队列项号),Wb1域为0;没有与操作数R2相关的指令,Rdy2为1。在此拍,操作队列中只有一条未发射且操作数准备好的指令,没有定点、浮点指令,此时双发射装置只能发射一条有效指令。
3、如图11D所示,在第3时钟周期的时钟上升沿,ADD指令写入到操作队列中。ADD的操作数R1与LW指令相关且LW指令未写回,所以Rdy1为0,Qid1域为“000“(LW指令所在的操作队列项号),Wb1域为0;ADD的操作数R3与MUL指令相关且MUL指令未写回,所以Rdy2为0,Qid2域为“001“(ADD1指令所在的操作队列项号),Wb2域为0。在第3时钟周期,没有操作数准备好的指令,在第3时钟周期没有指令发射到保留站中。
4、如图11E所示,在第4时钟周期的时钟上升沿,SUB指令写入到操作队列中。在操作队列中没有与SUB指令的操作数R4、R5相关的指令,所以SUB指令所在的操作队列项的Rdy1,Rdy2域为1,该指令是操作数准备好的。在第4时钟周期,没有操作数准备好的指令,在第4时钟周期没有指令发射到保留站中。
5、如图11F所示,在第5时钟周期的时钟上升沿,FADD指令写入到操作队列中。在操作队列中没有与FADD指令的操作数Fr7、Fr8相关的指令,所以FADD指令所在的操作队列项的Rdy1,Rdy2域为1,该指令是操作数准备好的。在第5时钟周期,操作数准备好的SUB指令发射到保留站中,SUB指令所在操作队列项的状态由“01”变为“10”。在第5时钟周期,结果总线送回LW访存指令的结果。将有效结果总线的qid值“000”与操作队列中的有效指令的Qid1、Qid2域进行比较,得到qid号与MUL指令所在项的Qid1相等,与ADD指令所在项的Qid1相等。MUL指令的Rdy2为1,操作数2是准备好的,其值来自于读寄存器的值Rdy1域和Wb1域为0,但是结果总线送回了MUL指令的操作数1,所以MUL指令是准备好的,在下个时钟周期可以发射。MUL指令也是操作数准备好的,在下个时钟周期也是可以发射的。在本拍没有未发射且操作数准备好的访存指令、浮点指令,只有一条未发射且操作数准备好的整型指令,所以此拍只有一条指令被发射。
6、如图11G所示,在第6时钟周期的时钟上升沿,LW指令结果写回,LW指令所在队列项的Wb域置为“1”。MUL,ADD指令的Wb1域相应的置为1。MUL指令从操作队列中发射到保留站中,MUL指令所在的操作队列项的状态由“01”变为“10”。SUB指令结果写回,SUB指令所在的队列项的Wb域置为“1”。
7、如图11H所示,在第7时钟周期的时钟上升沿,LW指令提交,LW指令所在队列项的状态由“10”变为“00”。MUL,ADD指令的Rdy1域相应的置为1。执行MUL指令需要两拍,第7时钟周期的尾端,MUL、FADD指令执行结束,整型结果总线送回MUL指令的结果,浮点结果总线送回FADD指令的结果。与MUL指令相关的ADD的操作数R2准备好,其值来自于结果总线返回的结果。在下个时钟周期的上升沿ADD指令可以被发射。
8、如图11I所示,在第8时钟周期的时钟上升沿,ADD指令发射到保留站中,其状态由“01”变为“10”,整型结果总线和浮点结果总线的值分别写回到MUL指令、FADD指令所在的操作队列项,MUL、FADD指令所在的操作队列项的Wb域置分别为1。ADD指令发射到保留站中,ADD指令所在操作队列项的状态域由“01”变为“10”。在第8时钟周期的尾端,结果总线送回ADD指令的结果。
9、在第9时钟周期的时钟上升沿,MUL指令提交,MUL指令所在队列项的状态由“10”变为“00”。结果总线送回的ADD指令的结果写入操作队列中,ADD指令所在的操作队列项的Wb域置为1。在后续的时钟周期里,ADD,SUB、FADD指令也将相继提交。
需要声明的是,上述发明内容及具体实施方式仅旨在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。
Claims (14)
1.一种指令调度装置,用于对微处理器中从操作队列向保留站发射指令进行动态调度,其特征在于,包括:
指令写入器,用于基于要写入所述操作队列的译码后指令与所述操作队列中的有效指令之间的数据相关性、已经写回和正在写回至所述操作队列的指令执行结果,来设置所述译码后指令的各操作数的状态,并将设置后的所述译码后指令作为待写入指令写入所述操作队列;
操作数状态更新器,用于基于所述操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各所述未发射指令的操作数的状态;
待发射判断器,用于基于各所述未发射指令的各操作数的状态,判断所述操作队列中是否存在所有操作数均已准备好的待发射指令;以及
指令发射器,用于在所述保留站有空闲时,将经由所述待发射判断器所判定的待发射指令发射至所述保留站。
2.根据权利要求1所述的指令调度装置,其特征在于,所述指令写入器和所述操作数状态更新器通过侦听结果总线来确定指令执行结果以及指令执行结果正在写回的指令的操作队列项号,并根据所述操作队列项号将所述指令执行结果写回到所述操作队列中所述指令所在的操作队列项内。
3.根据权利要求2所述的指令调度装置,其特征在于,所述指令写入器包括:
第一判断器,用于将所述译码后指令的操作数的源寄存器与所述操作队列中各有效指令的指令执行结果的目的寄存器进行比较,以判断所述操作队列中是否存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令;
第一设置器,用于在经由所述第一判断器判定所述操作队列中不存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令时,将所述译码后指令的所述操作数的状态设置为已准备好;
相关指令确定器,用于在经由所述第一判断器判定所述操作队列中存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令时,将目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的全部有效指令中距离所述译码后指令最近的有效指令确定为所述译码后指令的所述操作数的相关指令;
第二判断器,用于判断所述相关指令的指令执行结果是否已经写回或正在写回;以及
第二设置器,用于在经由所述第二判断器判定所述相关指令的指令执行结果已经写回或正在写回时,将所述译码后指令的所述操作数的状态设置为已准备好。
4.根据权利要求3所述的指令调度装置,其特征在于,所述操作数状态更新器包括:
第三判断器,用于判断指令执行结果正在写回的指令是否为所述未发射指令的操作数的相关指令;以及
第三设置器,用于在经由所述第三判断器判定指令执行结果正在写回的指令是所述未发射指令的所述操作数的相关指令时,将所述未发射指令的所述操作数的状态设置为已准备好。
5.根据权利要求1~4中任一项所述的指令调度装置,其特征在于,所述指令发射器根据所述微处理器的宽度选择单发射策略或多发射策略来进行所述待发射指令的发射。
6.根据权利要求5所述的指令调度装置,其特征在于,当选择所述单发射策略时,所述指令发射器按照时间顺序或者优先级来进行所述待发射指令的发射。
7.根据权利要求5所述的指令调度装置,其特征在于:还包括用于根据操作类型对所述操作队列中的指令进行分类的指令分类器;并且
所述保留站包括分别与各所述操作类型相对应的子保留站;
其中,当选择所述多发射策略时,所述指令发射器基于所述指令分类器的分类结果,在与所述待发射指令的操作类型相对应的子保留站有空闲时,将所述待发射指令发射至与所属操作类型相对应的子保留站。
8.一种指令调度方法,用于对微处理器中从操作队列向保留站发射指令进行动态调度,其特征在于,包括:
指令写入步骤,用于基于要写入所述操作队列的译码后指令与所述操作队列中的有效指令之间的数据相关性、已经写回和正在写回至所述操作队列的指令执行结果,来设置所述译码后指令的各操作数的状态,并将设置后的所述译码后指令作为待写入指令写入所述操作队列;
操作数状态更新步骤,用于基于所述操作队列中各未发射指令与指令执行结果正在写回的指令之间的数据相关性,更新各所述未发射指令的操作数的状态;
待发射判断步骤,用于基于各所述未发射指令的各操作数的状态,判断所述操作队列中是否存在所有操作数均已准备好的待发射指令;以及
指令发射步骤,用于在所述保留站有空闲时,将经由所述待发射判断步骤所判定的待发射指令发射至所述保留站。
9.根据权利要求8所述的指令调度方法,其特征在于,在所述指令写入步骤和所述操作数状态更新步骤中,通过侦听结果总线来确定指令执行结果以及指令执行结果正在写回的指令的操作队列项号,并根据所述操作队列项号将所述指令执行结果写回到所述操作队列中所述指令所在的操作队列项内。
10.根据权利要求9所述的指令调度方法,其特征在于,所述指令写入步骤包括:
第一判断步骤,用于将所述译码后指令的操作数的源寄存器与所述操作队列中各有效指令的指令执行结果的目的寄存器进行比较,以判断所述操作队列中是否存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令;
第一设置步骤,用于在经由所述第一判断步骤判定所述操作队列中不存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令时,将所述译码后指令的所述操作数的状态设置为已准备好;
相关指令确定步骤,用于在经由所述第一判断步骤判定所述操作队列中存在目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的有效指令时,将目的寄存器与所述译码后指令的所述操作数的源寄存器为同一寄存器的全部有效指令中距离所述译码后指令最近的有效指令确定为所述译码后指令的所述操作数的相关指令;
第二判断步骤,用于判断所述相关指令的指令执行结果是否已经写回或正在写回;以及
第二设置步骤,用于在经由所述第二判断步骤判定所述相关指令的指令执行结果已经写回或正在写回时,将所述译码后指令的所述操作数的状态设置为已准备好。
11.根据权利要求10所述的指令调度方法,其特征在于,所述操作数状态更新步骤包括:
第三判断步骤,用于判断指令执行结果正在写回的指令是否为所述未发射指令的操作数的相关指令;以及
第三设置步骤,用于在经由所述第三判断步骤判定指令执行结果正在写回的指令是所述未发射指令的所述操作数的相关指令时,将所述未发射指令的所述操作数的状态设置为已准备好。
12.根据权利要求8~11中任一项所述的指令调度方法,其特征在于,在所述指令发射步骤中,根据所述微处理器的宽度选择单发射策略或多发射策略来进行所述待发射指令的发射。
13.根据权利要求12所述的指令调度方法,其特征在于,当选择所述单发射策略时,在所述指令发射步骤中按照时间顺序或者优先级来进行所述待发射指令的发射。
14.根据权利要求12所述的指令调度方法,其特征在于:
还包括用于根据操作类型对所述操作队列中的指令进行分类的指令分类步骤;并且
所述保留站包括分别与各所述操作类型相对应的子保留站;
其中,当选择所述多发射策略时,在所述指令发射步骤中基于所述指令分类步骤的分类结果,在与所述待发射指令的操作类型相对应的子保留站有空闲时,将所述待发射指令发射至与所属操作类型相对应的子保留站。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236694A CN101710272B (zh) | 2009-10-28 | 2009-10-28 | 指令调度装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910236694A CN101710272B (zh) | 2009-10-28 | 2009-10-28 | 指令调度装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101710272A CN101710272A (zh) | 2010-05-19 |
CN101710272B true CN101710272B (zh) | 2012-09-05 |
Family
ID=42403064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910236694A Active CN101710272B (zh) | 2009-10-28 | 2009-10-28 | 指令调度装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101710272B (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722341B (zh) * | 2012-05-17 | 2014-12-24 | 杭州中天微系统有限公司 | 存储载入单元投机执行控制装置 |
CN103984523B (zh) * | 2013-02-08 | 2017-06-09 | 上海芯豪微电子有限公司 | 多发射指令处理系统及方法 |
CN104714780A (zh) * | 2013-12-16 | 2015-06-17 | 深圳市国微电子有限公司 | 一种超标量流水线保留站处理指令的方法及装置 |
CN103902252B (zh) * | 2014-03-28 | 2016-08-31 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种用于流水线指令相关性的分析方法 |
CN104978282B (zh) | 2014-04-04 | 2019-10-01 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
US9665372B2 (en) * | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US10228944B2 (en) | 2014-12-14 | 2019-03-12 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
US10089112B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor |
US10146539B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd. | Load replay precluding mechanism |
US10146546B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd | Load replay precluding mechanism |
WO2016097802A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude load replays dependent on long load cycles in an out-order processor |
US9740271B2 (en) | 2014-12-14 | 2017-08-22 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor |
US10083038B2 (en) | 2014-12-14 | 2018-09-25 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on page walks in an out-of-order processor |
WO2016097790A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude non-core cache-dependent load replays in out-of-order processor |
US10209996B2 (en) | 2014-12-14 | 2019-02-19 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for programmable load replay preclusion |
US9804845B2 (en) | 2014-12-14 | 2017-10-31 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor |
US10146540B2 (en) | 2014-12-14 | 2018-12-04 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor |
US10133580B2 (en) | 2014-12-14 | 2018-11-20 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor |
WO2016097814A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude shared ram-dependent load replays in out-of-order processor |
US10108420B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor |
WO2016097800A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Power saving mechanism to reduce load replays in out-of-order processor |
US10127046B2 (en) | 2014-12-14 | 2018-11-13 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
US10120689B2 (en) | 2014-12-14 | 2018-11-06 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor |
US10175984B2 (en) | 2014-12-14 | 2019-01-08 | Via Alliance Semiconductor Co., Ltd | Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor |
US10108430B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor |
WO2016097796A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Mechanism to preclude i/o-dependent load replays in out-of-order processor |
US10108427B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor |
US10114646B2 (en) | 2014-12-14 | 2018-10-30 | Via Alliance Semiconductor Co., Ltd | Programmable load replay precluding mechanism |
US10088881B2 (en) | 2014-12-14 | 2018-10-02 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude I/O-dependent load replays in an out-of-order processor |
US10108421B2 (en) | 2014-12-14 | 2018-10-23 | Via Alliance Semiconductor Co., Ltd | Mechanism to preclude shared ram-dependent load replays in an out-of-order processor |
WO2016097804A1 (en) | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Programmable load replay precluding mechanism |
EP3055769B1 (en) | 2014-12-14 | 2018-10-31 | VIA Alliance Semiconductor Co., Ltd. | Mechanism to preclude load replays dependent on page walks in out-of-order processor |
EP3055768B1 (en) * | 2014-12-14 | 2018-10-31 | VIA Alliance Semiconductor Co., Ltd. | Mechanism to preclude uncacheable-dependent load replays in out-of-order processor |
US10133576B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
CN104699466B (zh) * | 2015-03-26 | 2017-07-18 | 中国人民解放军国防科学技术大学 | 一种面向vliw体系结构的多元启发式指令选择方法 |
CN105117202B (zh) * | 2015-09-25 | 2018-11-27 | 上海兆芯集成电路有限公司 | 具有融合保留站结构的微处理器 |
CN105426160B (zh) * | 2015-11-10 | 2018-02-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
CN105550152B (zh) * | 2015-12-11 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于时间的gjb289数据总线命令调度电路及方法 |
CN106227507B (zh) * | 2016-07-11 | 2019-10-18 | 北京深鉴智能科技有限公司 | 计算系统及其控制器 |
CN107844832A (zh) * | 2017-10-30 | 2018-03-27 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
CN108182082A (zh) * | 2017-12-06 | 2018-06-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种流水处理双发射处理器记分板电路 |
CN108228242B (zh) * | 2018-02-06 | 2020-02-07 | 江苏华存电子科技有限公司 | 一种可配置且具弹性的指令调度器 |
CN108334326A (zh) * | 2018-02-06 | 2018-07-27 | 江苏华存电子科技有限公司 | 一种低延迟指令调度器的自动管理方法 |
CN111290786B (zh) * | 2018-12-12 | 2022-05-06 | 展讯通信(上海)有限公司 | 一种信息处理方法、设备及存储介质 |
CN112559040B (zh) * | 2020-12-02 | 2021-12-28 | 北京百度网讯科技有限公司 | 指令执行方法、装置、电子设备和存储介质 |
CN114579191A (zh) * | 2022-04-28 | 2022-06-03 | 飞腾信息技术有限公司 | 一种指令发射方法、装置、电子设备及存储介质 |
CN114968373A (zh) * | 2022-07-12 | 2022-08-30 | 飞腾信息技术有限公司 | 指令分派方法、装置、电子设备及计算机可读存储介质 |
CN117478089B (zh) * | 2023-12-28 | 2024-03-29 | 北京微核芯科技有限公司 | 存数指令执行方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1410885A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 基于操作队列复用的指令流水线系统和方法 |
CN101030134A (zh) * | 2007-03-29 | 2007-09-05 | 复旦大学 | 一种处理单发射流水线数据相关的动态调度控制器和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051186B2 (en) * | 2002-08-29 | 2006-05-23 | International Business Machines Corporation | Selective bypassing of a multi-port register file |
-
2009
- 2009-10-28 CN CN200910236694A patent/CN101710272B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1410885A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 基于操作队列复用的指令流水线系统和方法 |
CN101030134A (zh) * | 2007-03-29 | 2007-09-05 | 复旦大学 | 一种处理单发射流水线数据相关的动态调度控制器和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101710272A (zh) | 2010-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101710272B (zh) | 指令调度装置和方法 | |
US5790822A (en) | Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor | |
US8645955B2 (en) | Multitasking method and apparatus for reconfigurable array | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
US5546597A (en) | Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution | |
US7802074B2 (en) | Superscalar RISC instruction scheduling | |
US6334182B2 (en) | Scheduling operations using a dependency matrix | |
US20140189328A1 (en) | Power reduction by using on-demand reservation station size | |
CN101770358B (zh) | 微处理器跳转指令分支预测处理系统和方法 | |
US8943299B2 (en) | Operating a stack of information in an information handling system | |
CN101477454A (zh) | 嵌入式处理器的乱序执行控制装置 | |
CN103119562A (zh) | 提交时执行的状态更新指令、装置、方法和系统 | |
US9652246B1 (en) | Banked physical register data flow architecture in out-of-order processors | |
US9152418B2 (en) | Apparatus and method of exception handling for reconfigurable architecture | |
CN101706714B (zh) | 指令发射系统及方法、处理器及其设计方法 | |
CN101763251A (zh) | 多线程微处理器的指令译码缓冲装置 | |
GB2322718A (en) | Dynamic classification and dispatch of instructions out of order | |
KR20150132242A (ko) | 컨텍스트―종속 명령들을 위한 성능의 최적화 | |
US20080229065A1 (en) | Configurable Microprocessor | |
KR100483463B1 (ko) | 사전-스케쥴링 명령어 캐시를 구성하기 위한 방법 및 장치 | |
US8516223B2 (en) | Dispatching instruction from reservation station to vacant instruction queue of alternate arithmetic unit | |
KR100523706B1 (ko) | 단일 사이클 파이프라인 스톨을 발생하기 위한 파이프라인 프로세서 시스템 및 방법 | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
CN110515656B (zh) | 一种casp指令的执行方法、微处理器及计算机设备 | |
US7562206B2 (en) | Multilevel scheme for dynamically and statically predicting instruction resource utilization to generate execution cluster partitions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100080 No. 10 South Road, Haidian District Academy of Sciences, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |