利用世代数的重命名的制作方法

文档序号:9489268阅读:346来源:国知局
利用世代数的重命名的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本专利申请要求于2014年4月25日提交的美国临时专利申请号61/984, 706以 及2014年10月31日提交的美国专利申请号14/530, 111的优先权。通过引用将其全部并 入本文中。
技术领域
[0003] 本公开内容总体涉及计算机处理器。
【背景技术】
[0004] 半导体制造的发展使得在集成电路上上并入大量逻辑电路成为可能。进而,这导 致数字系统架构的发展。数字系统架构中已从在单个集成电路上包括大量阵列的逻辑电路 的能力受益良多的一个具体领域是处理器设计。

【发明内容】

[0005] 根据本发明的一个方面,提供一种装置,包括:寄存器,通过寄存器地址寻址,被 配置为存储一值;重命名器,被配置为接收所述寄存器地址以及所述寄存器是取出指令的 目的地还是源的指示,并且生成与用于所述取出指令的所述寄存器相关联的飞行中(in flight,未提交状态)的世代数(generationnumber,世代号);以及保留队列,与所述寄 存器和所述重命名器通信地耦接,被配置为同时存储所述寄存器地址和所述飞行中的世代 数。
[0006] 其中,所述保留队列进一步被配置为存储所述取出指令的指令操作码。
[0007] 其中,所述寄存器和所述重命名器被配置为同时向所述保留队列提供数据。
[0008] 其中,所述重命名器进一步被配置为存储指示当前所述寄存器的哪个世代正被使 用的飞行中的数组。
[0009] 其中,所述重命名器进一步被配置为维护指示所述寄存器的最新确认返回的世代 的真值指针。
[0010] 其中,所述重命名器进一步被配置为至少部分基于使用所述飞行中的数组和所述 真值指针来生成指示与所述飞行中的世代数相关联的值是否有效的有效位。
[0011] 其中,如果所述寄存器是用于所述取出指令的源寄存器,则所述保留队列进一步 被配置为存储一值和所述有效位。
[0012] 其中,如果推测地执行所述取出指令,所述重命名器进一步被配置为维护一指向 所述飞行中的世代数的推测指数(SIN)指针。
[0013] 其中,如果所述取出指令被推测地执行并且被确认,所述重命名器进一步被配置 为更新真值指针至等于所述SIN指针并且清除所述SIN指针。
[0014] 其中,如果所述取出指令被推测地执行并且被删除,所述重命名器进一步被配置 为更新所述飞行中的数组并且清除所述SIN指针。
[0015] 其中,通过所述重命名器生成飞行中的世代数进一步包括:如果在所述取出指令 中设定标记位,选择下一个非飞行中的世代数。
[0016] 其中,如果飞行中的所述寄存器没有另外的世代,则所述重命名器进一步被配置 为从所述取出指令和目的地寄存器地址接收结果,更新飞行中的数组,并且使所述寄存器 利用所述结果来更新。
[0017] 其中,所述重命名器进一步被配置为更新飞行中的数组,并且如果没有用于所述 寄存器的后来的飞行中的世代数,所述寄存器被配置为存储所述取出指令的结果。
[0018] 进一步地,该装置包括寄存器写入控制逻辑,其中,所述重命名器进一步被配置为 告知所述寄存器写入控制逻辑是否应当存储所述结果。
[0019] 根据本发明的另一方面,提供一种方法,包括:通过寄存器重命名器接收由取出指 令指定的寄存器地址;如果所述寄存器地址是源寄存器地址,通过所述寄存器重命名器生 成飞行中的寄存器世代数,所述飞行中的寄存器世代数包括与所述寄存器地址相关联的最 新飞行中的世代数;如果所述寄存器地址是目的地寄存器地址,通过所述寄存器重命名器 生成飞行中的寄存器世代数,所述飞行中的寄存器世代数包括所述最新飞行中的世代数之 后的与所述寄存器地址相关联的飞行中的世代数;以及提供所述飞行中的寄存器世代数至 保留队列。
[0020] 进一步地,该方法包括:与寄存器堆提供一值同时提供所述飞行中的寄存器世代 数。
[0021] 进一步地,该方法包括:维护指示当前所述寄存器的哪个世代正被使用的飞行中 的数组。
[0022] 进一步地,该方法包括:维护指示所述寄存器的最新确认返回的世代的真值指针。
[0023] 进一步地,该方法包括:基于所述飞行中的数组和所述真值指针来生成指示寄存 器堆中的值有效的有效位。
[0024] 进一步地,该方法包括:如果推测地执行所述取出指令,维护一指向与所述取出指 令相关联的所述飞行中的世代数的推测指数(SIN)指针。
[0025] 进一步地,该方法包括:如果所述取出指令被推测地执行并且被确认,更新所述真 值指针并且清除所述SIN指针。
[0026] 进一步地,该方法包括:如果所述取出指令被推测地执行并且被取消,更新所述飞 行中的数组并且清除所述SIN指针。
[0027] 进一步地,该方法包括:如果在所述取出指令中设定标记位,接收所述标记位并且 选择用于所述寄存器的下一个非飞行中的寄存器世代数。
【附图说明】
[0028] 参考附图描述实施方式。在附图中,相同的附图标记表示相同的或功能相似的元 件。此外,参考标号最左边的数字表示该参考标号首次出现的附图。
[0029] 图1是示例性处理器的高层次的框图。
[0030]图2是实现寄存器重命名的示例性处理器的高层次的框图。
[0031] 图3是示出根据示例性实施方式的寄存器重命名过程的流程图。
[0032] 图1和图2示出各种组件、它们的布置及互联,但未按比例绘制。
【具体实施方式】
[0033] 以下详细说明参考附图以示出示例性实施方式。在具体描述中,对"一个示例性实 施方式"、"说明性实施方式"、"示例性实施方式"等的引用是指所描述的示例性实施方式可 包括具体的特征、结构或特性,但每个示例性实施方式可能不一定包括具体的特征、结构或 特性。而且,这些短语不一定指代相同的示例性实施方式。进一步,当结合示例性实施方式 对一个具体的特征、结构或特性进行说明时,无论是否明确指出,本领域的技术人员在其知 识范围内可结合其他示例性实施方式影响该特征,结构或特性。
[0034] 提供本文所述的示例性实施方式是用于说明的目的而不非限制。其他示例性实施 方式也是可行的,以及在本发明的精神和范围内可以对示例性实施方式做出修改。
[0035] 应当理解,本文中的措辞或术语是为了描述而非限制,使得本说明书的术语或措 辞应由本领域的技术人员根据本文中的教导进行解释。
[0036] 术语
[0037] 在电子设备领域,术语芯片、裸片、集成电路、半导体设备、及微电子设备常常可互 换地使用。
[0038] 如在此所使用的FET是指金属氧化物半导体场效应晶体管(M0SFET)。η-沟道FET 在本文中称为NFET。ρ-沟道FET在本文中称为PFET。
[0039] CMOS是指其中NFET和PFET形成在集成电路中的半导体制造工艺。
[0040] CMOS电路是指其中一起使用NFET和PFET两者的电路。
[0041] VLIW是超长指令字的缩写。
[0042] 如在本文的示例性实施方式的描述中使用的,VLIW指令是指组合在一起用于提供 至指令解码器的指令集。指令集中的各指令被分配到多个执行管道之一用于执行。
[0043] ICO是指在指令缓存的输入上的伪阶段(pseudo-stage)。
[0044] IC1是指指令缓存阶段。在该周期与确定下一次取出哪个PC的计算一起做出对指 令缓存的取出请求。在该阶段提供先前请求的VLIW指令。
[0045] DE1是指指令解码器的第一阶段。
[0046] DEl_operation是指通过指令解码器的第一阶段执行的逻辑操作。
[0047]DEl_time是指其中出现DE_loperation的周期。
[0048] DE2是指指令解码器的第二阶段。
[0049] DE2_operation是指通过指令解码器的第二阶段执行的逻辑操作。
[0050] DE2_time是指其中出现通用寄存器堆(GRF)和谓词寄存器堆(PREG)的读取和重 命名的周期。
[0051] RS是指保留站。存在几个不同的可以排队的保留站。在最好的情况下,这是单个 周期阶段,然而操作可以在这里以多个周期结束排队。
[0052]EXn是指执行管道的第η个阶段。执行管道的示例包括ALU短管道和长管道, BRANCH(分支)和加载存储单元。
[0053]SHP是指短执行管道。短执行管道被用于执行单循环操作。
[0054] L0P是指长执行管道。长执行管道被用于执行需要2至8个周期完成的指令。
[0055]LSU是指加载存储单元。
[0056] DTCM是指数据紧耦合存储器。
[0057] PBUS是指连接至外围存储器的总线。
[0058] DCACHE是指用于缓存对外围存储器的访问的数据缓存。
[0059] 排队(enqueue,入队)是指其中DE2中的VLIW指令分成其组件操作,然后向前下 方移动管道至保留站中的动作。
[0060] 发射(issue)是指将操作从保留站移动至执行单元。当操作从保留站移动至执行 单元时,将操作称为被发射。操作是VLIW指令的组件部分。
[0061] 当前PC是指当前在给定阶段中的指令的程序计数器
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1