指令发射系统及方法、处理器及其设计方法

文档序号:6584703阅读:132来源:国知局
专利名称:指令发射系统及方法、处理器及其设计方法
技术领域
本发明属于计算机技术领域,涉及一种指令发射系统,尤其涉及一种动态调度和 静态调度相结合的指令发射系统及方法;此外,本发明还涉及包含上述指令发射系统的处 理器及该处理器的设计方法。
背景技术
现代的微处理器通常采用流水线技术来提高微处理器的处理速度。流水线技术将 指令执行的过程分成几个阶段,通过在各个不同阶段执行不同的指令,来实现指令的并行 执行,从而提高处理器的性能。 如图1所示,根据处理器的具体结构可以将整条指令的执行分为几个阶段,通常 将流水线分为5个阶段,分别为(1)取指令阶段,从内存取到要执行的指令;(2)译码阶 段,识别指令的操作码、源寄存器、目的寄存器等指令相关信息;(3)发射阶段,译码后的指 令保存在操作队列中,从操作队列中选择不存在数据相关或者数据相关已经解决的指令发 射到功能部件中;(4)执行、写回阶段,功能部件执行从操作队列发射到该部件的指令,并 将执行结果送回到操作队列中;(5)提交阶段,指令进入操作队列的顺序和程序中的指令 顺序是一致的,按照先进先出的原则,顺序提交操作队列中的指令。 流水线的每个阶段都是独立执行,指令按照流水线从A到E的顺序依次执行。如 果指令之间不存在相关,不会堵塞流水线,且流水线的每个阶段只需要一个时钟周期就能 够完成,那么在第5个时钟周期后第一条指令执行完。如果指令间不存在数据相关,当前指 令执行所需要的源操作数不依赖于前面还没有执行完的指令,那么该指令就可以发射。理 想情况下,在cycle6 (第6个时钟周期)第二条指令执行完,在cycle7第三条指令执行完, 每一个时钟周期即可执行完一条指令,如图3-1。如果指令间存数据在相关,如图3-2所示, 指令2的源操作数依赖于指令1的运算结果,指令2必须等到指令1执行结束后才能够发 射。指令2不能发射,则指令3等译码完的指令也都不能发射,这种情况就会造成流水线的 某些阶段闲置,从而降低流水线效率,处理器的性能也会随之下降。针对这种情况就出现了 流水线动态调度的方法,在指令发射阶段,后续不存在数据相关的指令可以先发射执行,如 图3-3所示。指令3译码结束后,其源操作数与前面的指令1、指令2不存在数据相关,那 么指令3可以先于指令2发射、执行,从而减少了流水线的空闲时间,提高了效率。在现代 的通用处理器中,一般采用动态调度指令的方法来解决指令间相关造成的流水线堵塞的情 况。 在流水线结构中,使用动态调度指令的方法,可以解决指令间的数据相关带来的 流水线堵塞、流水线性能降低,从而处理器性能也降低的问题。但是在设计微处理器的结 构,采用动态调度指令的流水线方法时,还有很多问题需要考虑,因为还存在很多数据相关 性在指令发射阶段不能判断的情况,或者判断比较麻烦的指令。
本发明所要解决的技术问题是提供一种动态调度和静态调度相结合的指令发射
系统,可降低微处理器设计的复杂度、提高处理器性能。 同时,本发明提供上述指令发射系统的发射方法。 另外,本发明还提供一种包含上述指令发射系统的处理器。 此外,本发明还提供上述处理器的设计方法。 为解决上述技术问题,本发明采用如下技术方案 —种指令发射系统,指令在写入操作队列中时做出指令间相关性的判断,且指令 间相关性的信息保存在操作队列中;该系统包括指令分类模块、指令发射模块。指令分类模 块用以将操作队列中相关性已经判断好的指令进行分类;将操作队列中只能静态调度、顺 序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动态 调度类指令;指令发射模块用以将操作数准备好的静态调度类指令、动态调度类指令分别 按照静态调度、动态调度的方法从操作队列中发射。 作为本发明的一种优选方案,所述指令分类模块包括第一判断逻辑电路、第二判 断逻辑电路;第一判断逻辑电路用以根据操作队列中指令的相关信息判断操作队列中的指 令是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程序中的先后顺序发 射;第二判断逻辑电路用以根据操作队列中指令的相关信息判断操作队列中的指令是否是 动态调度类指令,所述动态调度类指令无需按照指令在程序中的先后顺序执行,可动态调 度、乱序执行。 作为本发明的一种优选方案,采用顺序执行的方式执行访存类指令、读写特殊寄 存器的指令;所述访存类指令包括读写内存的指令。 所述指令分类模块的分类方法为将操作队列中相关性难判断的指令归为静态调 度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行的指令; 指令发射模块用以将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调 度、动态调度的方法从操作队列中发射。 作为本发明的一种实施方式,指令分类模块通过一判断逻辑电路判断操作队列中 各指令的相关性是否容易判断得出;若容易判断得出,则将该指令归为动态调度类指令,否 则将该指令归为静态调度类指令。 —种指令发射方法,指令在写入操作队列中时做出指令间相关性的判断,且指令 间相关性的信息保存在操作队列中;该方法还包括如下步骤 指令分类步骤,将操作队列中相关性已经判断好的指令进行分类;将操作队列中 只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行 的指令归为动态调度类指令; 指令发射步骤,将操作数准备好的静态调度类指令、动态调度类指令分别按照静 态调度、动态调度的方法从操作队列中发射。 作为本发明的一种优选方案,所述指令分类步骤包括 通过第一判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令 是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程序中的先后顺序发 射;
5
通过第二判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令 是否是动态调度类指令,所述动态调度类指令无需按照指令在程序中的先后顺序执行,可 动态调度、乱序执行。 作为本发明的一种优选方案,在指令分类步骤中,将操作队列中相关性难判断的 指令归为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱 序执行的指令。 —种处理器,该处理器包括指令发射系统,所述指令发射系统包括
指令分类模块,指令在写入操作队列中时做出指令间相关性的判断,且指令间相 关性的信息保存在操作队列中;该指令分类模块用以将操作队列中相关性已经判断好的指 令进行分类;将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队 列中可动态调度、乱序执行的指令归为动态调度类指令; 指令发射模块,用以将操作数准备好的静态调度类指令、动态调度类指令分别按 照静态调度、动态调度的方法从操作队列中发射。 —种处理器设计方法,在设计处理器结构时,将操作队列中相关性难判断的指令 归为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执 行的指令。 本发明的有益效果在于本发明提出的动态调度和静态调度相结合的指令发射系 统及方法,指明了数据相关性不易判断或者说不易识别的指令,针对这类指令,本发明提出 了静态调度该类指令的思想,这种执行方法能够严格保证了程序执行的正确性,大大降低 了微处理器设计的复杂度。而对于数据相关性好判断的指令,继续采用动态调度指令的方 法来充分利用流水线,提高处理器性能。


图1为采用流水线技术执行指令的流程图。 图2为本发明指令发射方法的流程图。 图3-1为指令间不存在相关时采用流水线技术执行指令的流程图。 图3-2为指令2依赖于指令1时采用流水线技术执行指令的流程图。 图3-3为指令2依赖于指令1时采用流水线技术执行指令的流程图。 图4-1为针对读、写内存等访存类指令的动态调度示意图。 图4-2为针对于要读写HI-L0寄存器组指令的动态调度示意图。 图5-0至图5-10为本发明一实施例指令发射方法的过程示意图。 图6为本发明指令发射系统的组成示意图。
具体实施例方式
下面结合附图详细说明本发明的优选实施例。
实施例一 本发明提出了一种动态调度和静态调度相结合的发射策略,不同处理器结构可以 按照各自的要求将指令分为不同的类型。将相关性不容易判断或者无法判断的指令归为一 类,该类型中的指令只能够静态调度,完全按照指令在源程序中的先后顺序发射,但是该类型指令又不影响其他允许动态调度的指令的发射。 请参阅图6,本发明揭示了一种指令发射系统,该系统包括指令分类模块10、指令
发射模块20。指令分类模块
指令在写入操作队列中时做出指令间相关性的判断,且指令间相关性的信息保存 在操作队列中。指令分类模块10用以将操作队列中相关性已经判断好的指令进行分类; 将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态 调度、乱序执行的指令归为动态调度类指令。静态调度类指令是指相关性不容易判断的指 令,也就是说指令写入到操作队列时,被判断的是与其他指令不存在相关,但实际上是存在
相关的。指令分类模块io可以在指令写入到操作队列中时就判断该指令是静态调度类指
令还是动态调度类指令,也可以在指令写入到操作队列中后判断。 本实施例中,具体地,所述指令分类模块包括第一判断逻辑电路11、第二判断逻辑 电路12 ;第一判断逻辑电路ll用以根据操作队列中指令的相关信息(如指令的操作码)判 断操作队列中的指令是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程 序中的先后顺序发射。第二判断逻辑电路12用以根据操作队列中指令的相关信息判断操 作队列中的指令是否是动态调度类指令,所述动态调度类指令无需按照指令在程序中的先 后顺序执行,可动态调度、乱序执行。 指令分类模块10判断指令为静态调度类指令或动态调度类指令的方法可以通过 判断操作队列中各指令的相关性是否容易判断。 指令相关性能否判断,依赖于处理器结构的设计。通常所说的指令间存在相关是 指,后面指令的源操作数寄存器是其前面指令的目的寄存器,也就是写后读相关,即后面指 令的源操作数是前面指令执行的结果。前面指令没执行完,后面指令的源操作数就没准备 好,所以后面指令就不能执行。这种相关一般就是通过比较后面指令的源寄存器于前面指 令的寄存器是否相等来判断的,具体的实现方式是公知的技术,这里不做赘述,仅举一个简 单的例子;比如:destsrclsrc2指令lAdd rl,r2,r3 ^旨令2Add r2,rl,r3指令3Add r3,r4,r5 指令2的源寄存器rl是指令1的指令结果,指令2与指令1间存在相关。指令3 与指令1、指令2都不存在相关。 对于相关性不好判断的指令,绝对不能判断的相关不多,只是在设计处理器时,因
为复杂度开销大等原因,不去实现相关性的判断,而是选择静态调度,顺序执行。
指令发射模块
指令发射模块20用以将操作数准备好的静态调度类指令、动态调度类指令分别 按照静态调度、动态调度的方法从操作队列中发射。 以上介绍了本发明的指令发射系统,本发明在揭示上述指令发射系统的同时还揭 示一种指令发射方法。请参阅图2,本发明指令发射方法包括如下步骤
指令分类步骤
7
将操作队列中相关性已经判断好的指令进行分类;将操作队列中只能静态调度、 顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动 态调度类指令。 所述指令分类步骤包括 通过第一判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令 是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程序中的先后顺序发 射; 通过第二判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令 是否是动态调度类指令,所述动态调度类指令无需按照指令在程序中的先后顺序执行,可 动态调度、乱序执行。指令发射步骤
将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调度、动态调 度的方法从操作队列中发射。 综上所述,本发明提出的动态调度和静态调度相结合的指令发射系统及方法,指
明了数据相关性不易判断或者说不易识别的指令,针对这类指令,本发明提出了静态调度
该类指令的思想,这种执行方法能够严格保证了程序执行的正确性,大大降低了微处理器
设计的复杂度。而对于数据相关性好判断的指令,继续采用动态调度指令的方法来充分利
用流水线,提高处理器性能。 实施例二 本实施例与实施例一的区别在于,本实施例中,指令分类模块通过一判断逻辑电 路判断操作队列中各指令的相关性是否容易判断得出(或者能否通过该逻辑判断电路得 出);若容易判断得出(或者能够判断得出),则将该指令归为动态调度类指令,否则将该指 令归为静态调度类指令。由此可知,静态调度类指令是指相关性不容易判断的指令,也就是 说指令写入到操作队列时,被判断的是与其他指令不存在相关,但实际上是存在相关的。
具体地,所述判断逻辑电路可判断操作队列中各指令的相关性是否容易(或者能 够)通过该判断逻辑电路判断得出;若容易(或者能够)判断得出,则认为该指令为动态调 度类指令,否则认为该指令为静态调度类指令。 当然,所述判断逻辑电路也可以判断指令的相关性是否能够通过其他模块判断得 出;若判断得出,则认为该指令为动态调度类指令,否则认为该指令为静态调度类指令。
实施例三 本实施例中,指令发射系统包括指令分类模块、指令发射模块。指令分类模块用以 将操作队列中相关性已经判断好的指令进行分类;将操作队列中相关性难判断的指令归为 静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行的 指令;指令发射模块用以将操作数准备好的静态调度类指令、动态调度类指令分别按照静 态调度、动态调度的方法从操作队列中发射。 与上述指令发射系统对应的指令发射方法,将操作队列中相关性难判断的指令归 为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行 的指令。 实施例四
本实施例揭示一种处理器设计方法,在设计处理器结构时,将操作队列中相关性
难判断的指令归为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动
态调度、乱序执行的指令。判断方法同实施例一至实施例三中所述的方法。 本实施例同时揭示一种处理器,该处理器包括本发明的指令发射系统,指令发射
系统可以为实施例一至实施例三中的系统。 实施例五 本实施例揭示一种动态调度和静态调度相结合的指令发射系统,该系统包括两个判断逻辑电路,分别用来判断操作队列中的指令是否需要静态调度、操作队列中的指令是否可以动态调度。将操作队列中的指令进行分类,一类是只能静态调度、顺序执行的指令,一类是可以动态调度、乱序执行的指令。 静态调度类指令必须严格按照指令在程序中的先后顺序发射。静态调度类指令在操作队列中判断指令间的相关;相关性解决的指令,也就是操作数准备好的指令从操作队列中发射。静态调度类指令不影响动态调度类指令的动态调度、乱序执行。在设计处理器结构时,可以将操作队列中相关性易判断的指令归为动态调度、乱序执行的指令,减少流水线空闲周期。 动态调度的指令不需要按照指令在程序中的先后顺序执行,可以动态调度、乱序执行。动态调度的指令不受静态调度类指令的影响,可以动态调度、乱序执行。动态调度类指令在操作队列中判断指令间的相关,相关性解决的指令,也就是操作数准备好的指令从操作队列中发射。在设计处理器结构时,可以将操作队列中相关性难判断的指令归为静态调度、顺序执行的指令,减少处理器设计的复杂度。
实施例六 下面将具体指明数据相关性不好判断的指令,以及对该类指令的处理。本发明中所举的实例基于MIPS 32指令集,对于基于其它类型指令集结构的微处理器,在碰到同类问题时,也可以通过这种动态调度和静态调度相结合的方法来提高流水线的利用率,降低处理器设计的复杂度。 在实现指令的动态调度时,数据相关性不好判断的情况包括以下两种情况,如图4-l、图4-2所示。 第一种情况是针对读、写内存等访存类指令,如图4-1所示。SW指令与MUL指令存在数据相关,SW指令要等到MUL指令执行完得到运算结果才能够从操作队列中发射。当SW指令因数据相关于MUL指令而不能够从操作队列中发射时,LW指令看似与SW指令不存在写后读相关,看似LW指令可以先于SW发射。如果SW指令写入的地址R3+4与LW指令读取的地址R4+4相等,则LW指令与SW指令存在写后读相关,而这种相关是在执行访存指令进行地址运算后才能够识别到,在发射阶段很难识别。如果不考虑这种发射时很难识别的数据相关而将指令动态发射出去,则在流水线的后续阶段需要更复杂的逻辑来保证访存操作的正确执行。在本发明中,为减少访存操作的复杂度,保证访存操作的正确执行,采用顺序执行读、写内存等访存类指令非方法,在从操作队列发射指令时,访存指令是顺序发射的。在设计处理器结构时,对于那些需要复杂逻辑来判断数据相关性的指令,都可以择静态调度的方法,保证指令能够正确执行。 第二种情况如图4-2所示,针对于要读、写特殊寄存器的指令,比如要读写HI-L0寄存器组的指令。在某些使用32位宽寄存器的处理器中,会将HI, LOW寄存器组看做是两个寄存器。对于MULT等指令,要将两个整数相乘的结果的高32位和低32位分别存放在HI-LOW寄存器中,但在操作队列中的dest域只能记录一个寄存器号。对于MFHI,MFLO等指令,其源寄存器使用HI、LOW等寄存器。如果MULT等指令存入到操作队列中时其dest域是HI寄存器号,那么MFLO等使用LOW寄存器做为源操作数的指令,与MULT等指令存在的数据相关,在操作队列判断指令间的数据相关性时,是无法识别的。针对这种情况,本发明将所有读写HI、 LOW寄存器的指令作为同一类指令,在该类中的指令只能够静态调度,顺序发射,这样能够严格保证HI、LOW寄存器的读写顺序与源程序中读、写HI、LOW寄存器的顺序一致。该类中的指令只能静态调度顺序发射,但是该类中的指令不影响其他类型指令的动态调度、乱序发射。对于读、写HI、LOW寄存器的指令要特别注意的是,该类中的指令必须等到其前面的指令都已经提交了才能够被发射,这样能够严格保证HI、 LOW寄存器的读写顺序,才能够严格保证程序执行的正确性。 本发明提出了一种动态调度和静态调度相结合的发射策略,不同处理器结构可以按照各自的要求将指令分为不同的类型。将些相关性不容易判断或者无法判断的指令归为一类,该类型中的指令只能够静态调度,完全按照指令在源程序中的先后顺序发射,但是该类型指令又不影响其他允许动态调度的指令的发射。 相关性不好判断的情况可能有很多,这与处理器结构的设计是相关。比如在本处
理器设计时,所有相关性不好判断的指令都被归为只允许静态调度、顺序发射的指令。在本
发明中列的两种情况不是本处理器设计时所有的静态调度的指令。在设计处理器时,可以
根据不同的处理器结构设计需求,将那些如果使用动态调度、乱序发射需要很大开销的指
令归为静态调度类指令,这些指令在本发明中并没有完全罗列,但本领域的技术人员可以
根据本发明的介绍联想到,在此不多做赘述。 实施例七 下面通过实例说明该方法的具体操作,如图5-0至图5-10所示。要执行的指令序列为SW4(R1), R0R3, 4(R4)MULTRl, R0MFL0跳 R2ADDR3, Rl, R0 其中访存指令发射后,需要两个时钟周期才返回结果;加、减指令发射后,需要一个时钟周期才返回结果;乘法指令发射后,需要两个时钟周期才返回结果。下面通过详细描述每一拍所执行的操作来实例化本发明提出的动态调度和静态调度结合的方法。
操作队列的各个域包括 Opcode :指令的操作码,表示该条指令所要执行的操作。 State :指令在操作队列中的状态。"00"表示操作队列空,允许接收新的指令;"01"表示该操作队列项有有效指令,但该指令还没有被发射到保留站中;"10"表示该该操作队列中有效指令已经发射到保留站中。
Srcl :指令的源寄存器1。
Src2 :指令的源寄存器2。
Dest:指令的目的寄存器。 Rdyl :指令的操作数1准备好,即操作数的值来自于读寄存器。
Rdy2 :指令的操作数2准备好,即操作数的值来自于读寄存器。
Qidl :与指令操作数1相关的指令,所在操作队列项的号。
Qid2 :与指令操作数2相关的指令,所在操作队列项的号。
Wbl :与指令操作数1相关的指令,结果已经写回。
Wb2 :与指令操作数2相关的指令,结果已经写回。
Wb :指令执行完,结果已经写回。 在本实例中,使用的发射策略是从操作队列中选取操作数准备好的指令发射到保留站中。操作数准备好包含三个方面一、该指令与前面的指令不存在数据相关,其操作数来自于读寄存器所得;二、该指令与前面的指令存在数据相关,但是相关的指令已经执行完且结果已经写回到操作队列,这样操作数的值来自于保存在操作队列中的指令结果;三、该指令与前面的指令存在数据相关,相关的指令的结果还没写回到操作队列中,但是已经执行完结果总线正在送回结果,这样操作数的值来自于侦听结果总线所得的有效值。
如图5-1所示,在Cyclel, SW指令写入到操作队列中,第0项的state置为"01"。
如图5-2所示,在Cycle2,LW指令写入到操作队列中,第l项的state置为"01"。SW指令的操作数准备好,从操作队列中发射,其state置为"10"。 如图5-3所示,在Cycle3,MULT指令写入到操作队列中,第2项的state置为"01"。LW指令的操作数准备好,且LW指令之前的访存指令已经发射,在此拍LW指令从操作队列中发射,其state置为"01"。 如图5-4所示,在Cycle4,MFL0指令写入到操作队列中,第3项的state置为"01"。SW指令的执行完,其Wb域置为"1 "。 如图5-5所示,在Cycle5, ADD指令写入到操作队列中,第4项的MFLO指令必须等到MULT指令提交后才能够发射,所以其state —直置为"01 "。 SW指令提交,其Wb域置为"O",其state域置为"OO"。 LW指令结果写回到操作队列中,其Wb域置为"l"。
如图5-6所示,在Cycle6, LW指令提交,其Wb域置为"0",其state域置为"00"。MULT指令结果写回到操作队列中,其Wb域置为"1"。 MFLO指令必须等到MULT指令提交之后才能够发射,所以其状态一直是"01"。 ADD指令和操作队列中之前的指令不存在数据相关,而ADD指令不属于静态调度类指令且其操作数准备好,那么ADD指令在此拍发射。
如图5-7所示,在Cycle7, MULT指令提交,MFLO指令发射,ADD指令结果。
如图5-8所示,在Cycle8, MFLO指令结果写回。
如图5-9所示,在Cycle9, MFLO指令提交。
如图5-10所示,在CyclelO, ADD指令提交。 综上所述,本发明提出的动态调度和静态调度相结合的指令发射系统及方法,指明了数据相关性不易判断或者说不易识别的指令,针对这类指令,本发明提出了静态调度该类指令的思想,这种执行方法能够严格保证了程序执行的正确性,大大降低了微处理器设计的复杂度。而对于数据相关性好判断的指令,继续采用动态调度指令的方法来充分利用流水线,提高处理器性能。 这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实 施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明 的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、 材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进 行其它变形和改变。
权利要求
一种指令发射系统,其特征在于,指令在写入操作队列中时做出指令间相关性的判断,且指令间相关性的信息保存在操作队列中;该系统包括指令分类模块,用以将操作队列中相关性已经判断好的指令进行分类;将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动态调度类指令;指令发射模块,用以将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调度、动态调度的方法从操作队列中发射。
2. 根据权利要求1所述的指令发射系统,其特征在于所述指令分类模块包括第一判断逻辑电路,用以根据操作队列中指令的相关信息判断操作队列中的指令是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程序中的先后顺序发射;第二判断逻辑电路,用以根据操作队列中指令的相关信息判断操作队列中的指令是否是动态调度类指令,所述动态调度类指令无需按照指令在程序中的先后顺序执行,可动态调度、乱序执行。
3. 根据权利要求1所述的指令发射系统,其特征在于采用顺序执行的方式执行访存类指令、读写特殊寄存器的指令;所述访存类指令包括读写内存的指令。
4. 根据权利要求1所述的指令发射系统,其特征在于所述指令分类模块的分类方法为将操作队列中相关性难判断的指令归为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行的指令。
5. 根据权利要求1至4之一所述的指令发射系统,其特征在于所述指令分类模块通过一判断逻辑电路判断操作队列中各指令的相关性是否容易判断得出;若容易判断得出,则将该指令归为动态调度类指令,否则将该指令归为静态调度类指令。
6. —种指令发射方法,其特征在于,指令在写入操作队列中时做出指令间相关性的判断,且指令间相关性的信息保存在操作队列中;该方法包括如下步骤指令分类步骤,将操作队列中相关性已经判断好的指令进行分类;将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动态调度类指令;指令发射步骤,将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调度、动态调度的方法从操作队列中发射。
7. 根据权利要求6所述的指令发射方法,其特征在于所述指令分类步骤包括通过第一判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令是否是静态调度类指令,所述静态调度类指令必须严格按照指令在程序中的先后顺序发射;通过第二判断逻辑电路根据操作队列中指令的相关信息判断操作队列中的指令是否是动态调度类指令,所述动态调度类指令无需按照指令在程序中的先后顺序执行,可动态调度、乱序执行。
8. 根据权利要求6所述的指令发射方法,其特征在于在指令分类步骤中,将操作队列中相关性难判断的指令归为静态调度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行的指令。
9. 一种处理器,其特征在于,该处理器包括指令发射系统,所述指令发射系统包括指令分类模块,指令在写入操作队列中时做出指令间相关性的判断,且指令间相关性的信息保存在操作队列中;该指令分类模块用以将操作队列中相关性已经判断好的指令进行分类;将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动态调度类指令;指令发射模块,用以将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调度、动态调度的方法从操作队列中发射。
10. —种处理器设计方法,其特征在于在设计处理器结构时,将操作队列中相关性难判断的指令归为静态调 度、顺序执行的指令;将操作队列中相关性易判断的指令归为动态调度、乱序执行的指令。
全文摘要
本发明揭示了一种指令发射系统及方法,该系统包括指令分类模块、指令发射模块。指令分类模块将操作队列中的指令进行分类;将操作队列中只能静态调度、顺序执行的指令归为静态调度类指令,将操作队列中可动态调度、乱序执行的指令归为动态调度类指令;指令发射模块将操作数准备好的静态调度类指令、动态调度类指令分别按照静态调度、动态调度的方法从操作队列中发射。本发明指明了数据相关性不易判断的指令,针对这类指令,本发明通过静态调度该类指令,这种执行方法能够严格保证了程序执行的正确性,大大降低了微处理器设计的复杂度。而对于数据相关性好判断的指令,继续采用动态调度指令的方法来充分利用流水线,提高处理器性能。
文档编号G06F9/38GK101706714SQ20091023804
公开日2010年5月12日 申请日期2009年11月23日 优先权日2009年11月23日
发明者徐翠萍, 李祖松, 汪文祥, 郝守青 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1