具有融合保留站结构的微处理器的制造方法

文档序号:9396668阅读:492来源:国知局
具有融合保留站结构的微处理器的制造方法【
技术领域
】[0001]本发明概括而言涉及在微处理器中发射和分派指令的过程,更具体而言涉及更高效地分派指令来供微处理器执行的融合保留站(fusedreservat1nstat1ns)模块,并且改善了性能。【
背景技术
】[0002]许多现代微处理器是超标量的,其中它们包括多个执行单元并且在单个时钟周期中能够分派多个指令到这些执行单元。许多现代微处理器也运行乱序(out-of-order,0-0-0)执行。也就是说,微处理器可不按软件程序的指令指定的顺序执行指令。超标量乱序执行微处理器通常尝试维持未完成指令的相对大的池以便它们可利用更大量的指令并行度。[0003]微处理器执行相应指令集架构的指令,例如x86指令集架构等等。在许多这种微处理器中,经常被称为宏指令的指令集架构的指令首先被翻译成被发射到保留站模块的微指令(或者微操作或“μop”),保留站模块进而将指令分派到执行单元。微指令在这里被更概括地简称为指令。指令也被发射到重排序缓冲器(reorderbuffer,ROB),其确保指令的按序引退(retirement)ο[0004]保留站(reservat1nstat1n,RS)包括一个或多个有序队列。当有多个指令准备好从RS队列分派时,意味着指令满足了被分派到执行单元的条件,则准备就绪的指令中的一个或多个被分派到相应的执行单元。当执行单元可用,并且指令执行所必要的任何操作数也可用时,则意味着该指令准备好被分派。随着微处理器设计变得越来越复杂,RS的效率和性能都需要改善。希望通过使RS更小并且更高效来改善RS的时序和吞吐量。RS也应当提供更大的进入效率以及增大的执行单元支持。传统的RS配置并不满足所有这些设计改善目标。【
发明内容】[0005]根据一个实施例的具有融合保留站(RS)结构的微处理器包括主RS、次RS和绕过系统。主RS具有用于接收发射的指令的输入,具有用于将发射的指令推送到次RS的推送输出,并且具有用于分派发射的指令中的准备好分派的至少一个指令的至少一个绕过输出。次RS具有耦合到主RS的推送输出的输入并且具有至少一个分派输出。绕过系统在主RS的绕过输出和次RS的至少一个分派输出之间进行选择来分派所选择的发射指令。[0006]主RS可实现有统一RS结构。次RS可实现有任何类型的RS结构,并且通常包括多个RS队列。主RS可作为溢出缓冲器操作,用于在次RS满时接收和存储额外的发射指令。另外,绕过系统可允许主RS在某些条件下直接分派指令,例如当次RS在给定周期中没有分派某种类型的指令时。主RS可包括移位缓冲器来移动其内存储的指令以维持接收的指令顺序。[0007]根据一个实施例的具有多级保留站(RS)结构的微处理器包括主RS、次RS和绕过控制系统。主RS包括用于存储接收到的发射指令的至少一个主RS队列,用于将其内存储的发射指令推送到次RS的推送输出,以及至少一个绕过输出,该绕过输出可分派主RS队列中存储的发射指令中的准备好被分派的至少一个指令。次RS包括用于存储从主RS接收的发射指令的至少一个次RS队列,以及用于分派次RS中存储的发射指令中的准备好被分派的至少一个指令的至少一个分派输出。绕过控制系统在次RS的分派输出和主RS的绕过输出之间进行选择来分派发射指令。【附图说明】[0008]参考随后的描述和附图将更好地理解本发明的益处、特征和优点,附图中:[0009]图1是包括根据本发明的一个实施例实现的融合保留站(RS)模块的超标量流水线微处理器的简化框图;[0010]图2是根据一个实施例的图1的融合RS模块的更详细框图;[0011]图3是根据一个实施例的图1的融合RS模块的框图,其具有实现主RS的统一RSQ和实现次RS的多重分派RS;[0012]图4是根据另一实施例的图1的融合RS模块的简化框图,其中次RS是利用分割RS实现的;[0013]图5是根据另外一个实施例的图1的融合RS模块的简化框图,其中次RS是利用集群RS实现的;[0014]图6是包括传统RS结构的流水线的简化框图;[0015]图7是包括根据本发明的一个实施例的融合RS结构的流水线的简化框图;[0016]图8是图示出根据一个实施例被配置为具有移位特征的RSQ的图2的主RS的操作的一对简化图;并且[0017]图9是图示出根据一个实施例的具有总共12个条目并且假定每次推送出4个指令的图8的RSQ的移位特征的简化图。【具体实施方式】[0018]发明人认识到了传统的保留站结构的效率低下和更低的性能。他们因此开发出了一种具有改善的效率和性能的融合保留站结构。融合保留站(RS)结构包括一种多级或堆叠式保留站结构,其中包括主RS和次RS。主RS提供前端溢出缓冲器功能,用于缓冲发射的指令以减少转变到造成微处理器的流水线延迟的重发射模式的发生。融合结构因为改善的缓冲功能可减少前端时序气泡。主RS和次RS结构都可以更小,从而整体时序可得到改善。另外,当次RS不能分派给定类型的至少一个指令时,那么当主RS内的任何一个或多个指令准备好被直接分派到处理器的执行单元时,次RS可被绕过。[0019]图1是包括根据本发明的一个实施例实现的融合保留站(RS)模块108的超标量流水线微处理器100的简化框图。微处理器100包括指令高速缓存102,其缓存某个指令集架构的宏指令130,例如x86指令集架构等等。其它的或替换的指令集架构也是可以预期的。微处理器100包括指令翻译器104,其接收宏指令130并将宏指令130翻译成微指令132。微指令132随后被提供到寄存器别名表(registeraliastable,RAT)106(亦称为“重命名”表),RAT106生成微指令132的微指令的相关性(cbpendency)并且将微指令132按程序顺序发射到融合RS模块108和重排序缓冲器(ROB)110。ROB110对于从RAT106发射的每个微指令存储一条目。融合RS模块108将微指令分派到多个执行单元112中的适当的一个。[0020]从RAT106发射的微指令(ISSUE)通常可被称为微指令,但在这里被更概括地简称为“指令”。融合RS模块108在其已满或者因其他原因不能够从RAT106接收额外的指令时声明一个满指示信号,示为RS_FULL。ROB110通常具有更大的结构,在融合RS模块108已满之后可继续接收指令。最终,融合RS模块108能够将指令分派到执行单元112以使得其能够接收更多的指令。在融合RS模块108指示出其不再满之后(例如当信号RS_FULL被取消声明时),指令从ROB110临时性地被重发射(REISSUE)到融合RS模块108。当ROB110跟上了RAT106时,再次从RAT106发射指令。[0021]如本文进一步描述的,融合RS模块108具有更多数量的乱序(0-0-0)窗口,从而不会那么经常地变满。融合RS模块108更小并且具有更高效的设计,从而具有改善的时序。融合RS模块108表现出增大的吞吐量并从而表现出更高的性能。融合RS模块108可减少重播并且可减少其确实变满时的惩罚。融合RS模块108可减少会插入流水线延迟的前端空间或“气泡”。[0022]图2是根据一个实施例的融合RS模块108的更详细框图,该融合RS模块108耦合在RAT106和ROB110与执行单元112之间。RAT106具有被提供到ROB110的输入的输出。复用器(MUX)202具有与RAT106的输出耦合的第一输入,具有与ROB110的输出耦合的第二输入,并且具有与融合RS模块108内的主RS204的输入耦合的输出。主RS204具有与次RS208的输入耦合的推送输出206。次RS208具有被提供到绕过系统212的输入的分派输出210,绕过系统212具有与寄存器模块216的输入親合的分派输出214。如本文进一步描述的,主RS204还包括被提供到绕过系统212的输入的绕过输出230,并且次RS208向绕过系统提供信号S_N0NDIS。[0023]寄存器模块216被示为介于融合RS模块108与执行单元112之间,用于提供相应的指令操作数和指令操作码。寄存器模块216可包括微处理器100的任何寄存器,例如物理寄存器文件(physicalregisterfile,PRF)、R0B110的寄存器文件、通用寄存器(generalpurposeregister,GPR)等等,并且还包括用于收集指令的信息来提交给执行单元112的电路和逻辑。在一个实施例中,融合RS模块108只处理或操作个体指令的“标签”而不是指令本身。这使得能够减小实现融合RS模块108的电路的大小,因为其存储并处理减少量的信息。寄存器模块216使用每个指令的标签来收集指令信息,包括指令操作数和指令操作码等等,并且将收集的指令信息提供给执行单元112。由于每个标签代表相应的指令,所以该信息在这里被简称为“指令”。[0024]在操作中,主RS204把从RAT106或ROB110接收的发射指令推送到次RS208。当次RS208已满并且不能接收从主RS204推送的更多指令时,其向主RS204声明S_RSFULL信号。S_RSFULL信号是融合RS模块108内部的并且是与RS_FULL信号(图1)不同的信号。当S_RSFULL信号被声明时,主RS204作为溢出缓冲器操作来接收并存储额外的发射指令。当次RS208从满变成当前第1页1 2 3 4 5 
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1