CN111399912B - 一种面向多周期指令的指令调度方法、系统及介质 - Google Patents
一种面向多周期指令的指令调度方法、系统及介质 Download PDFInfo
- Publication number
- CN111399912B CN111399912B CN202010223500.7A CN202010223500A CN111399912B CN 111399912 B CN111399912 B CN 111399912B CN 202010223500 A CN202010223500 A CN 202010223500A CN 111399912 B CN111399912 B CN 111399912B
- Authority
- CN
- China
- Prior art keywords
- instruction
- cycle
- current
- scheduling
- instructions
- 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 38
- 230000001419 dependent effect Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, 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)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种面向多周期指令的指令调度方法、系统及介质,本发明方法包括在指令译码后识别多周期指令及其依赖指令;读取优先调度指令缓冲,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;在指令重命名时,将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;在指令发射时优先发射标记为优先发射指令的指令。本发明充分发掘高性能乱序微处理器中指令并行特性,面向多周期指令通过指令调度使得多周期指令尽早执行,提高处理器性能,并且实现代价小,可方便地集成到现有处理器设计中。
Description
技术领域
本发明涉及处理器微体系结构设计领域,具体涉及一种面向多周期指令的指令调度方法、系统及介质。
背景技术
在高性能微处理器的设计中,为了提高程序性能,通常需要充分发掘程序指令级的并行性。当多个指令不存在相关时,它们在流水线中是可以并行执行的,通过在不同的部件并行执行缩短整个程序的执行时间,从而提高程序性能。当程序中存在数据依赖时,即当某指令的输入依赖于另一个指令的输出时,这两个指令是不能并行的,必须要等数据产生指令执行完成之后,数据消费指令才能够执行。当程序中多个同类指令需要在同一个执行部件中执行时,由于资源冲突,它们也是不能并行的,只能串行执行。对于同一个部件中的指令来说,通常采用的调度算法是选取操作数准备好的最老的指令,这里最老指在程序顺序上处于较前的指令,这样的指令调度算法也存在效率不高的问题。
如图1所示,指令I1、I2、I3、I4是在算数运算部件ALU执行的同类指令。指令I5是是在多周期运算部件MXU执行的指令。程序中指令的顺序为I1、I2、I3、I4、I5,指令I1、I2、I3、I4执行需要1个周期,而指令I5需要4个周期,指令I5数据依赖于指令I4,也就是I5的源操作数是指令I4的目的操作数。虽然处理器中设置了多个部件可以允许ALU和MXU部件并行执行指令,但是由于指令I5的源操作数没有准备好,所以指令I5不能和其他指令并行指令。I1、I2、I3、I4由于都要在ALU执行,根据选取操作数准备好的最老的指令的执行的ALU指令调度算法,这四条指令在ALU执行的顺序为I1、I2、I3、I4。总共执行时间为4个周期,加上I5执行为8个周期。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向多周期指令的指令调度方法、系统及介质,本发明充分发掘高性能乱序微处理器中指令并行特性,面向多周期指令通过指令调度使得多周期指令尽早执行,提高处理器性能,并且实现代价小,可方便地集成到现有处理器设计中。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向多周期指令的指令调度方法,实施步骤包括:
1)取当前指令;
2)在指令译码时,将当前指令的操作数和操作码进行译码;
3)通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;
4)在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
5)进行指令分派;
6)在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令。
可选地,步骤3)中识别当前指令是否为多周期指令具体是指判断当前指令的执行周期大于设定时钟周期数是否成立,如果成立则判定当前指令多周期指令。
可选地,步骤3)中识别当前指令是否为多周期指令具体是指根据执行部件中动态执行的状态进行识别,如果指令在指定的执行部件中出现指定的执行状态则判定当前指令多周期指令。
可选地,步骤3)中标记当前指令为多周期指令具体是指在当前指令的指令信息内增加一个比特位进行标记。
可选地,步骤3)中识别出当前指令的依赖指令具体是指识别出多周期指令存在数据依赖的指令作为多周期指令的依赖指令,所述依赖指令的数据输出为多周期指令的源数据。
可选地,步骤4)中读取该指令的源寄存器的产生者的指令地址信息具体是指从寄存器重命名映射表中读取该指令的源寄存器的产生者的指令地址信息,且所述寄存器重命名映射表被预先增加写入了各个指令的目的寄存器的指令地址信息。
此外,本发明还提供一种面向多周期指令的指令调度系统,包括:
指令取指单元,用于取当前指令;
指令译码单元,用于在指令译码时,将当前指令的操作数和操作码进行译码;
指令识别单元,用于通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;
指令重命名单元,用于在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
指令分派单元,用于进行指令分派;
指令发射单元,用于在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令。
此外,本发明还提供一种面向多周期指令的指令调度系统,包括指令调度部件,该指令调度部件被编程或配置以执行所述面向多周期指令的指令调度方法的步骤。
此外,本发明还提供一种面向多周期指令的指令调度系统,包括微处理器,该微处理器中包含指令调度部件,所述指令调度部件被编程或配置以执行所述面向多周期指令的指令调度方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述面向多周期指令的指令调度方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1.性能高。本发明中将多周期指令依赖指令尽早调度,使得多周期指令能够及时执行,降低了整个程序的执行时间,从而提高了整个处理器的性能。
2.开销小,易于实现。本发明中的多周期指令的识别可通过现有部件进行简单识别,多周期指令依赖指令可以通过较小的修改在重命名表中进行识别,多周期指令依赖指令的优先调度可以在现有调度策略中增加优先逻辑即可。总体来讲,本发明不破坏现有流水线结构,可方便集成到当前设计中,具有实现开销小,易于实现的特点。
附图说明
图1为现有技术普通指令调度下指令执行示意图。
图2为本发明实施例调度方法的流程图。
图3为本发明实施例调度方法的指令执行需求示例。
图4为本发明实施例调度方法的原理示意图。
图5为本发明实施例调度方法的指令执行过程示例。
具体实施方式
如图2所示,本实施例面向多周期指令的指令调度方法的实施步骤包括:
1)取当前指令;从指令缓冲或者是下一级存储中获取指令,该步骤为普通处理器的取指令过程,无需对现有方法进行修改;
2)在指令译码时,将当前指令的操作数和操作码进行译码;指令译码阶段将指令操作数和操作码进行译码,该步骤和普通处理器的译码过程一致,无需对现有方法进行修改;
3)通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;
4)在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
5)进行指令分派;
6)在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令。当有多个指令被标记为优先发射时,则在这些标记为优先发射指令的指令中择一进行优先发射。
本发明要解决的问题就是多周期指令执行时机的问题,为了使得多周期指令的源操作数尽早准备好,首先要识别需要优先调度的多周期指令。作为一种可选的简单的实施方式,步骤3)中识别当前指令是否为多周期指令具体是指判断当前指令的执行周期大于设定时钟周期数是否成立,如果成立则判定当前指令多周期指令,例如执行周期大于3个的指令都认定为多周期指令。作为另一种可选的实施方式,步骤3)中识别当前指令是否为多周期指令具体是指根据执行部件中动态执行的状态进行识别,如果指令在指定的执行部件中出现指定的执行状态则判定当前指令多周期指令,例如只有访存只有在一级Cache中没有命中的指令会被识别为多周期指令,此时的多周期指令使用相应的操作码和指令地址进行标记。
本实施例中,步骤3)中标记当前指令为多周期指令具体是指在当前指令的指令信息内增加一个比特位进行标记,此外也可以根据需要采用其他方式来进行标记,只要能够识别当前指令为多周期指令即可。
本实施例中,步骤3)中识别出当前指令的依赖指令具体是指识别出多周期指令存在数据依赖的指令作为多周期指令的依赖指令,所述依赖指令的数据输出为多周期指令的源数据。
本实施例中,标记优先调度指令时只需要在该指令的指令信息中增加1个比特位进行标识,并随指令信息在流水线中流动。在指令队列中调度时可读取该信息。此后可用于读取优先调度指令缓冲。优先调度指令缓冲中存储了那些地址的指令需要进行被优先调度,该缓冲通常只需要保存相关的指令地址即可。使用译码后指令的指令地址或者是指令地址经过运算后的值,在优先调度指令缓冲里面查找是否有对应的记录。如果优先调度指令缓冲中有相应的记录,那么说明该指令是和某个多周期指令之间有数据依赖关系,需要在后面指令调度时进行特殊处理,即标记多周期指令。如果不是需要优先调度的指令,则不进行任何操作。本实施例中的优先调度指令缓冲有多项,每项可存储一个指令的地址信息,为了节省存储空间,通常只需要保存指令地址信息中的一部分,或者经过哈希等运算后的信息。该步骤完成需要被优先调度指令信息的存储。
本实施例中,步骤4)中读取该指令的源寄存器的产生者的指令地址信息具体是指从寄存器重命名映射表中读取该指令的源寄存器的产生者的指令地址信息,且所述寄存器重命名映射表被预先增加写入了各个指令的目的寄存器的指令地址信息。
指令重命名时,按普通处理器的设计,进行指令目的寄存器的重命名,同时读取指令源寄存器重命名的相关信息。为了实现本发明,需要寄存器重命名映射表中增加写该目的寄存器的指令地址信息。同时,如果目前重命名的指令为被标记的多周期指令,那么需要读取该指令的源寄存器的产生者的指令地址信息,并执行判断是否需要优先调度的指令。
步骤5)进行指令分派时,按普通处理器的过程进行指令分派,通常涉及将不同的指令类型分配到不同的执行部件,在指令部件的队列中等待。
步骤6)在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度。当队列中有多个指令可被发射时,优先发射标记的优先发射指令,当有多有指令被标记为优先发射时,按指令队列原有的算法在这些被标记的指令中进行选择。至此,本实施例完成,指令的在功能部件的执行和指令提交等步骤和原有处理器完全一致,无需修改。
如图3所示,如果能够尽早调度指令I4,那么指令I5就可以尽早执行,指令I5可以和指令I1、I2、I3并行执行,那么最终执行完这些指令的时间为指令I4的1个周期加上指令I5的4个周期,共5个周期。也就是说本实施例面向多周期指令的指令调度方法的目标就是经过适当的调度,将8个周期的执行时间降到5个周期,从而提高处理器性能。
如图4所示,本实施例面向多周期指令的指令调度方法的原理为识别多周期指令及其依赖指令Ix,在依赖指令Ix再次发射时标记依赖指令Ix;然后在指令队列中优先调度依赖指令Ix以使得多周期指令尽快满足数据依赖以提升处理器性能。本实施例中将识别出的多周期指令依赖的指令,记为Ix。这里的依赖是指数据依赖,即多周期指令的源数据为指令Ix的输出,只有当指令Ix执行,生成数据后,多周期指令才能执行。多周期指令依赖的指令Ix的识别通过数据依赖的来源进行识别,即通过多周期指令的源寄存器进行识别。多周期指令源寄存器的产生者即可以标记为指令Ix。在乱序微处理器中,重命名表格正好记录了这样的关系,多周期指令在重命名时,即可知道源寄存器是被重命名的情况。只需在重名表格中记录目的寄存器改写的指令信息,即可识别出指令Ix。例如,可以在指令重命名时,在每个目的寄存器被重命名时,在该寄存器重命名表中记录该指令的指令地址。这里可以只记录部分指令地址,也可以记录指令地址的哈希值,以减少实现开销。当多周期指令重命名时,查询重命名表格,获得源操作数的重命名信息,同时获得依赖指令的指令地址。对于识别出的指令Ix,将指令Ix的信息写入一个小的缓冲中,称为优先调度指令缓冲。该缓冲不必保存所有的Ix,根据实现的开销和策略,可只先实现少量的项目,存储少量的指令Ix。然后,指令Ix再次发射时,标记该指令为优先调度指令。当指令发射时,查询优先调度指令缓冲,如果指令在优先调度缓冲中,那么标记该指令为优先调度指令。最终,在指令队列中对指令Ix优先发射。当指令调度时,如果操作数准备好的指令中有标记为优先调度的指令,那么这些指令将优先发射到执行部件执行。这些优先调度指令将较早执行,从而依赖这些指令的多周期指令能够及时执行。上述原理的实例如图5所示,其原理如下:(1)识别出指令I5后,根据指令I5找出依赖的指令I4;(2)将指令I4优先调度,将其优先于指令I1、I2、I3被调度;(3)指令I4被执行后,即可满足指令I5的数据依赖关系;(4)满足依赖关系的指令I5被执行,从而实现了将8个周期的执行时间降到5个周期,提高了处理器的性能。本实施例面向多周期指令的指令调度方法可以灵活集成到现有的处理器结构中。
此外,本实施例还提供一种面向多周期指令的指令调度系统,包括:
指令取指单元,用于取当前指令;
指令译码单元,用于在指令译码时,将当前指令的操作数和操作码进行译码;
指令识别单元,用于通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;
指令重命名单元,用于在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
指令分派单元,用于进行指令分派;
指令发射单元,用于在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令。
此外,本实施例还提供一种面向多周期指令的指令调度系统,包括指令调度部件,该指令调度部件被编程或配置以执行前述面向多周期指令的指令调度方法的步骤。
此外,本实施例还提供一种面向多周期指令的指令调度系统,包括微处理器,该微处理器中包含指令调度部件,所述指令调度部件被编程或配置以执行前述面向多周期指令的指令调度方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述面向多周期指令的指令调度方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种面向多周期指令的指令调度方法,其特征在于实施步骤包括:
1)取当前指令;
2)在指令译码时,将当前指令的操作数和操作码进行译码;
3)通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;
4)在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
5)进行指令分派;
6)在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令;
步骤3)中识别当前指令是否为多周期指令具体是指判断当前指令的执行周期大于设定时钟周期数是否成立,如果成立则判定当前指令多周期指令;或者,步骤3)中识别当前指令是否为多周期指令具体是指根据执行部件中动态执行的状态进行识别,如果指令在指定的执行部件中出现指定的执行状态则判定当前指令多周期指令。
2.根据权利要求1所述的面向多周期指令的指令调度方法,其特征在于,步骤3)中标记当前指令为多周期指令具体是指在当前指令的指令信息内增加一个比特位进行标记。
3.根据权利要求1所述的面向多周期指令的指令调度方法,其特征在于,步骤3)中识别出当前指令的依赖指令具体是指识别出多周期指令存在数据依赖的指令作为多周期指令的依赖指令,所述依赖指令的数据输出为多周期指令的源数据。
4.根据权利要求2所述的面向多周期指令的指令调度方法,其特征在于,步骤4)中读取该指令的源寄存器的产生者的指令地址信息具体是指从寄存器重命名映射表中读取该指令的源寄存器的产生者的指令地址信息,且所述寄存器重命名映射表被预先增加写入了各个指令的目的寄存器的指令地址信息。
5.一种面向多周期指令的指令调度系统,其特征在于包括:
指令取指单元,用于取当前指令;
指令译码单元,用于在指令译码时,将当前指令的操作数和操作码进行译码;
指令识别单元,用于通过操作码识别当前指令是否为多周期指令,如果是多周期指令则标记当前指令为多周期指令,识别出当前指令的依赖指令;同时,读取优先调度指令缓冲,使用译码后指令的指令地址或者是指令地址经过运算后的值在优先调度指令缓冲里面查找是否有对应的记录,如果优先调度指令缓冲中有相应的记录,则判定当前指令和某个多周期指令之间有数据依赖关系,标记当前指令为优先调度指令;所述识别当前指令是否为多周期指令具体是指判断当前指令的执行周期大于设定时钟周期数是否成立,如果成立则判定当前指令多周期指令;或者,所述识别当前指令是否为多周期指令具体是指根据执行部件中动态执行的状态进行识别,如果指令在指定的执行部件中出现指定的执行状态则判定当前指令多周期指令;
指令重命名单元,用于在指令重命名时,如果目前重命名的指令被标记为多周期指令,则读取该指令的源寄存器的产生者的指令地址信息得到该多周期指令依赖的指令的地址信息,并将多周期指令依赖的指令的地址信息写入到优先调度缓冲中;
指令分派单元,用于进行指令分派;
指令发射单元,用于在指令发射时,指令在部件的队列中等待源操作数准备好,然后等待被调度;当队列中有多个指令可被发射时,优先发射标记为优先发射指令的指令。
6.一种面向多周期指令的指令调度系统,包括指令调度部件,其特征在于,该指令调度部件被编程或配置以执行权利要求1~4中任意一项所述面向多周期指令的指令调度方法的步骤。
7.一种面向多周期指令的指令调度系统,包括微处理器,其特征在于,该微处理器中包含指令调度部件,所述指令调度部件被编程或配置以执行权利要求1~4中任意一项所述面向多周期指令的指令调度方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~4中任意一项所述面向多周期指令的指令调度方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010223500.7A CN111399912B (zh) | 2020-03-26 | 2020-03-26 | 一种面向多周期指令的指令调度方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010223500.7A CN111399912B (zh) | 2020-03-26 | 2020-03-26 | 一种面向多周期指令的指令调度方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399912A CN111399912A (zh) | 2020-07-10 |
CN111399912B true CN111399912B (zh) | 2022-11-22 |
Family
ID=71436681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010223500.7A Active CN111399912B (zh) | 2020-03-26 | 2020-03-26 | 一种面向多周期指令的指令调度方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399912B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930427B (zh) * | 2020-08-17 | 2022-06-21 | 北京百度网讯科技有限公司 | 指令发射方法、装置、电子设备以及存储介质 |
CN112579172B (zh) * | 2020-12-05 | 2022-09-23 | 西安翔腾微电子科技有限公司 | 一种非流水单元多周期同指令执行的处理电路及方法 |
CN112947999B (zh) * | 2021-03-10 | 2022-06-28 | 超睿科技(上海)有限公司 | 一种精简指令集计算机指令功能扩展的方法及装置 |
CN116049032B (zh) * | 2023-03-30 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | 基于光线追踪的数据调度方法、装置及设备、存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5958044A (en) * | 1997-01-24 | 1999-09-28 | Texas Instruments Incorporated | Multicycle NOP |
CN1355900A (zh) * | 1999-05-13 | 2002-06-26 | Arc国际美国控股公司 | 用于处理器流水线分段法及再装配的方法以及装置 |
CN101114218A (zh) * | 2006-07-27 | 2008-01-30 | 中国科学院计算技术研究所 | 复杂指令集体系结构中的深度优先异常处理方法 |
CN101133391A (zh) * | 2005-02-04 | 2008-02-27 | 美普思科技有限公司 | 多线程微处理器中的二分化线程调度器 |
CN101866281A (zh) * | 2010-06-13 | 2010-10-20 | 清华大学 | 一种多周期指令执行方法和装置 |
CN104049952A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 直接和嵌套依赖指令的调度器中重置推测源就绪的方法 |
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
JP2002268895A (ja) * | 2001-03-09 | 2002-09-20 | Nec Corp | 命令スケジューリング装置及び命令スケジューリング方法 |
US7945763B2 (en) * | 2006-12-13 | 2011-05-17 | International Business Machines Corporation | Single shared instruction predecoder for supporting multiple processors |
US8412856B2 (en) * | 2009-10-26 | 2013-04-02 | Sony Computer Entertainment America Llc. | File input/output scheduler using immediate data chunking |
US20120023314A1 (en) * | 2010-07-21 | 2012-01-26 | Crum Matthew M | Paired execution scheduling of dependent micro-operations |
CN104699464B (zh) * | 2015-03-26 | 2017-12-26 | 中国人民解放军国防科学技术大学 | 一种基于依赖网格的指令级并行调度方法 |
-
2020
- 2020-03-26 CN CN202010223500.7A patent/CN111399912B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5958044A (en) * | 1997-01-24 | 1999-09-28 | Texas Instruments Incorporated | Multicycle NOP |
CN1355900A (zh) * | 1999-05-13 | 2002-06-26 | Arc国际美国控股公司 | 用于处理器流水线分段法及再装配的方法以及装置 |
CN101133391A (zh) * | 2005-02-04 | 2008-02-27 | 美普思科技有限公司 | 多线程微处理器中的二分化线程调度器 |
CN101114218A (zh) * | 2006-07-27 | 2008-01-30 | 中国科学院计算技术研究所 | 复杂指令集体系结构中的深度优先异常处理方法 |
CN101866281A (zh) * | 2010-06-13 | 2010-10-20 | 清华大学 | 一种多周期指令执行方法和装置 |
CN104049952A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 直接和嵌套依赖指令的调度器中重置推测源就绪的方法 |
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
Non-Patent Citations (2)
Title |
---|
Select-free instruction scheduling logic;M.D. Brown等;《IEEE》;20020806;204-213 * |
基于寄存器压力差异化的VLIWDSP编译器超块调度算法;鲍丽丹 等;《微电子学与计算机》;20150905;18-22 * |
Also Published As
Publication number | Publication date |
---|---|
CN111399912A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399912B (zh) | 一种面向多周期指令的指令调度方法、系统及介质 | |
US7793079B2 (en) | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
TWI507980B (zh) | 最佳化暫存器初始化操作 | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
US10146545B2 (en) | Translation address cache for a microprocessor | |
US5694565A (en) | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions | |
US20200278867A1 (en) | Device, processor, and method for splitting instructions and register renaming | |
KR101154628B1 (ko) | 확장형 명령의 구성 명령들 사이에 중간 결과들을 포워딩하는 레지스터 리네이밍 시스템의 사용 | |
US7130990B2 (en) | Efficient instruction scheduling with lossy tracking of scheduling information | |
US20140095814A1 (en) | Memory Renaming Mechanism in Microarchitecture | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
US20080244224A1 (en) | Scheduling a direct dependent instruction | |
CN108027736B (zh) | 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化 | |
US8782378B2 (en) | Dynamic instruction splitting | |
US10558462B2 (en) | Apparatus and method for storing source operands for operations | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
CN115640047A (zh) | 指令操作方法及装置、电子装置及存储介质 | |
US8250346B2 (en) | Register renaming of a partially updated data granule | |
CN114116002A (zh) | 一种存储重命名的实现方法、处理器及计算机设备 | |
CN109683959B (zh) | 处理器的指令执行方法及其处理器 | |
US7996655B2 (en) | Multiport execution target delay queue FIFO array | |
US7769987B2 (en) | Single hot forward interconnect scheme for delayed execution pipelines | |
US6954848B2 (en) | Marking in history table instructions slowable/delayable for subsequent executions when result is not used immediately | |
CN116880908B (zh) | 一种指令处理方法、装置、电子设备及可读存储介质 | |
CN117492844B (zh) | 寄存器重命名方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 410028 floor 17, building T3, Fuxing world financial center, No. 303, Section 1, Furong Middle Road, Kaifu District, Changsha City, Hunan Province Applicant after: Chaorui Technology (Changsha) Co.,Ltd. Address before: Room 2106, Great Wall wanfuhui gold block, No.9 Shuangyong Road, Kaifu District, Changsha City, Hunan Province, 410003 Applicant before: Transcendence information technology (Changsha) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |