利用生成重命名的计算机信息处理器的制造方法

文档序号:9326648阅读:319来源:国知局
利用生成重命名的计算机信息处理器的制造方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请要求于2014年4月25日提交的题为"Branch Prediction"的美国临 时申请号61/984, 711、和于2014年10月31日提交的题为"Computer Processor With Generation Renaming"的美国非临时申请号14/530, 038的权益,通过引用将其全部内容结 合于此。
技术领域
[0003] 本公开整体涉及计算机处理器。
【背景技术】
[0004] 半导体制造的发展使得可以将大量逻辑电路结合到集成电路上。反过来,这导致 数字系统架构的进步。大大得益于该性能而在单个集成电路上包括各种逻辑电路阵列的数 字系统架构的一个特定领域是处理器设计。

【发明内容】

[0005] 根据本公开的实施方式,提供了一种处理器,包括:预约队列(reservation queue);重命名器(renamer),耦接至所述预约队列并被配置为产生生成数并将所述生成 数(generation number)传递至所述预约队列;寄存器,親接至所述预约队列并被配置为 存储值;执行流水线(execution pipe),親接至所述预约队列;以及缓冲器,親接至所述执 行流水线并被配置为接收所述执行流水线的输出,并且所述缓冲器进一步耦接至所述预约 队列并被配置为将所述执行流水线的输出传递至所述预约队列。
[0006] 进一步地,所述处理器包括:小重置DHL Gshare分支预测单元。
[0007] 进一步地,所述处理器包括:加载/存储单元,被配置成为多个排队的加载指令和 存储指令的每一个调度对内存的访问;其中,所述加载/存储单元包括资源锁定电路,所述 资源锁定电路被配置为防止同时调度冲突的内存操作。
[0008] 根据本公开的另一实施方式,提供了一种处理器,包括:指令高速缓存;指令解码 器,耦接至所述指令高速缓存;预约队列,耦接至所述指令解码器;寄存器,耦接至所述预 约队列并被配置为存储值;小重置DHL Gshare分支预测单元,耦接至所述指令高速缓存并 被配置为生成地址并将所述地址传递给所述指令高速缓存;执行流水线,耦接至所述预约 队列;缓冲器,耦接至所述执行流水线并被配置为接收所述执行流水线的输出,并且所述缓 冲器进一步耦接至所述预约队列并被配置为将所述执行流水线的输出传递至所述预约队 列。
[0009] 根据本公开的又一实施方式,提供了一种处理器,包括:指令高速缓存;指令解码 器,耦接至所述指令高速缓存;分支预测单元,耦接至所述指令高速缓存并被配置为生成指 令地址并将所述指令地址提供至所述指令高速缓存;寄存器文件,被耦接以接收寄存器地 址;重命名器单元,耦接至所述指令高速缓存和所述指令解码器;多个预约队列,所述多个 预约队列的每个预约队列耦接至所述寄存器文件、所述指令解码器、和所述重命名器单元; 多个执行流水线,所述多个执行流水线的每个执行流水线耦接至所述多个预约队列的相应 一个预约队列,并且所述多个执行流水线的每个执行流水线被配置为从所述多个预约队列 的相应一个预约队列接收指令和数据并且执行所述指令;解读机构(stunt box),親接至所 述多个执行流水线的每个执行流水线,并被配置为接收所述多个执行流水线的每个执行流 水线的输出;其中,响应于所述指令解码器的输出,所述寄存器文件被配置为提供指令中指 定为源的寄存器的内容;并且响应于所述指令解码器的输出,所述重命名被配置为同时提 供生成数。
[0010] 其中,所述分支预测单元包括小重置DHL Gshare分支预测器。
[0011] 其中,所述指令高速缓存被配置为接收和存储VLIW指令。
[0012] 其中,所述解读机构的输出耦接至所述多个执行流水线的每个执行流水线的输 入,并且所述解读机构的输出进一步耦接至所述多个预约队列的每个预约队列的输入。
[0013] 进一步地,所述处理器包括:加载/存储单元,耦接至所述解读机构和所述寄存器 文件;以及存储器(memory,内存),親接至所述加载/存储单元;其中,所述加载/存储单元 被配置为从所述解读机构接收输入并从所述寄存器文件接收输入。
[0014] 其中,所述多个预约队列的每个预约队列被配置为存储指令操作码、目的地寄存 器地址、和目的地寄存器生成数。
[0015] 其中,所述多个预约队列的每个预约队列进一步被配置为存储第一源寄存器地 址、第一寄存器生成数、第一寄存器值、第一有效位、第二源寄存器地址、第二寄存器生成 数、第二寄存器值、和第二有效位。
[0016] 其中,所述指令解码器识别指定配对寄存器操作的指令。
[0017] 其中,所述寄存器文件包括多个寄存器;并且所述重命名器单元包括用于所述多 个寄存器的每一个的寄存器重命名模块。
[0018] 其中,所述解读机构被配置为同时将配对的宽输出(pair-wide output)和单个宽 输出(single-wide output)放置到所述操作数复制网络。
[0019] 进一步地,所述处理器包括指令获取单元。
[0020] 其中,所述指令获取单元包括:循环计数寄存器,被配置为存储循环计数值或投机 性循环计数值(speculative loop count value,推测的循环计数值);循环开始寄存器,被 配置为存储循环开始地址;以及循环匹配寄存器,被配置为存储循环匹配地址。
[0021] 其中,所述指令获取单元耦接至所述所述指令解码器和SIN分配器,并且所述所 述指令获取单元被配置成为所述SIN分配器提供指示循环计数值的信号,所述循环计数值 表示投机循环执行。
[0022] 其中,所述指令解码器耦接至所述循环计数寄存器、所述循环开始寄存器和所述 循环匹配寄存器。
[0023] 其中,所述指令获取单元被配置为生成循环匹配信号。
[0024] 其中,所述指令解码器被配置为从所述指令获取单元接收所述循环匹配信号。
【附图说明】
[0025] 参考附图已描述示例性实施方式。在附图中,相同的附图标记表示相同的或功能 相似的元件。此外,参考标号最左边的数字表示该参考标号首次出现的附图。
[0026] 图1是示例性处理器的高级框图。
[0027] 图2是实施寄存器重命名的示例性处理器的高级框图。
[0028] 图3是示出根据实例实施方式的寄存器重命名过程的流程图。
[0029] 图4是具有资源锁定(resource locking)的示例性处理器的高级框图。
[0030] 图5是示出根据实例实施方式的状态确定过程的流程图。
[0031] 图6是示出根据实例实施方式的指令状态更新过程的流程图。
[0032] 图7是实施解读机构(stunt box)的示例性处理器的高级框图。
[0033] 图8是实施解读机构的另一示例性处理器的高级框图。
[0034] 图9是示出根据实例实施方式的结果选择过程的流程图。
[0035] 图10示出了根据本公开的实施方式的实例分支预测单元(branch prediction unit)〇
[0036] 图11更详细地示出了根据本公开实施方式的分支预测单元。
[0037] 图12示出了根据本公开实施方式的全局分支历史记录寄存器的实例更新。
[0038] 图13示出了根据本公开实施方式的全局分支历史记录寄存器的预设置。
[0039] 图14示出了根据本公开实施方式的用于提供索引以访问大分支历史记录表中的 条目的实例系统。
[0040] 图15示出了根据本公开实施方式的用于提供索引以访问小分支历史记录表、混 合选择器、和更新计数器的每个中的条目的系统。
[0041] 图16示出了根据本公开实施方式的用于更新存储于大分支历史记录表和小分支 历史记录表中的分支预测条目的实例状态机。
[0042] 图17示出了根据本公开实施方式的实施零开销循环(zero overhead loop)的架 构的一部分。
[0043] 图18示出了根据本公开实施方式的用于实施零开销循环的架构的一部分。
[0044] 图1至图18示出了各个组件、它们的布置、以及相互连接,并且如同在本领域中大 家所熟知的那样,附图不一定是按比例绘制。
【具体实施方式】
[0045] 以下【具体实施方式】参考附图以说明示例性实施方式。在【具体实施方式】中,对"一个 示例性实施方式"、"示意性实施方式"、"示例性实施方式"等的引用是指所描述的示例性实 施方式可包括特定的特征、结构或特性,但每个示例性实施方式可不一定包括特定的特征、 结构或特性。而且,这些短语不一定指相同的示例性实施方式。此外,当结合示例性实施方 式描述具体的特征、结构或特性时,结合其他示例性实施方式来影响这些特征、结构或特性 在相关领域的技术人员的知识范围内,而不管是否明确说明。
[0046] 提供本文所述的示例性实施方式是用于说明的目的而非用于限制。其他示例性实 施方式也是可行的,并且可在本发明的精神和范围内对示例性实施方式进行修改。
[0047] 应当理解,本文中的措辞或术语是为了描述而非限制,因此,本说明书的术语或措 辞应由相关领域的技术人员根据本文中的教导进行解释。
[0048] 术语
[0049] 在电子领域,术语芯片、管芯、集成电路、半导体器件、及微电子器件通常可互换使 用。
[0050] 如在本文中使用的,FET是指金属氧化物半导体场效应晶体管(MOSFET)。在本文 中η-沟道FET是指NFET。在本文中P-沟道FET是指PFET。
[0051] CMOS是代表互补金属氧化物半导体的缩略词,并且是指NFET和PFET形成在相同 的芯片中的半导体制造工艺。
[0052] CMOS电路是指其中NFET和PFET两者一起使用的电路。
[0053] SoC是代表片上系统的缩略词,并且是指包括两个或更多个通常由总线相互连 接的电路模块的芯片,其中,那些电路模块提供这种高级功能,先前这些块被看作系统级 别组件。举例来说,迄今为止具有所需级别的功能的电路模块包括标量(scalar)、超标量 (superscalar)、以及超长指令字处理器;DRAM控制器(例如,DDR3、DDR4和DDR5);闪存控 制器;通用串行总线(USB)控制器等。该列举是示例性而非限制性的。描述SoC的另一常 见方法例如是包括实施电子系统所需的所有组件的芯片,诸如,计算机系统或基于计算机 的系统。
[0054] VLIW是超长指令字的缩写。
[0055] 如在本文的示例性实施方式的描述中使用的,VLIW指令是指组合在一起以呈 现给指令解码器的指令集。指令集中的各个指令被分配为用以执行的多个执行流水线 (execution pipe,执行管线)之一。
[0056] ICO是指在指令高速缓存的输入上的伪阶段(pseudo-stage)。
[0057] ICl是指指令高速缓存阶段。在该周期做出对指令高速缓存的获取(fetch)请求, 并伴随有计算以确定下一次存取哪个PC。在该阶段上供应先前请求的VLIW指令。
[0058] DEl是指指令解码器的第一阶段。
[0059] DE l_operation是指由指令解码器的第一阶段执行的逻辑操作。
[0060] DE 是指其中出现 DEl_operation 的周期。
[0061] DE2是指指令解码器的第二阶段。
[0062] DE 2_operati〇n是指由指令解码器的第二阶段执行的逻辑操作。
[0063] DE 2_time是指其中出现通用寄存器文件(GRF)和预测寄存器文件(predicate register file) (PREG)的读取和重命名的周期。
[0064] RS是指预约站。存在能够排队的几个不同的预约站。在最好的情况下,这是单个 循环阶段,然而操作可结束在此的很多周期的排队。
[0065] EXn是指执行流水线的第η阶段。执行流水线的实例包括ALU短流水线和长流水 线,分支和负载存储单元。
[0066] SHP是指短执行流水线。短执行流水线用以执行单循环运算。
[0067] LOP是指长执行流水线。长执行流水线用于执行需要完成2-8个循环的指令。
[0068] LSU是指加载存储单元。
[0069] DTCM 是指数据紧密親合内存(data tightly coupled memory)。
[0070] PBUS是指连接至外围存储器的总线。
[0071] DCACHE是指用于缓存对外围存储器的访问的数据缓存。
[0072] 排队(enqueue)是指DE2中的VLIW指令被分成其分量操作(component operat ion)后沿流水线向前移至预约站的动作。
[0073] 发布(issue,下发)是指将操作从预约站移动到执行单元。操作是指当从预约站 移动至执行单元时被发布。操作是VLIW指令的构成部分。
[0074] 当前PC是指当前在给定阶段中的指令的程序计数器(PC)的值。流水线的每个阶 段会具有其自身版本的当前PC。
[0075] 下一 PC是指从Icache取出的下一 PC。对于直线式代码(straight line code), 这将是当前PC+当前指令宽度,对于重定向代码(redirected code),它将是新目标PC。
[0076] 循环开始地址是指循环体中第一指令的地址,即,开始新循环迭代的分支的地址。
[0077] 循环结束地址是指在循环体之后第一指令的地址,即,自然退出循环的分支的地 址。
[0078] 循环体是指始于循环开始地址并终于循环匹配地址(loop match address)的指 令。
[0079] 循环匹配地址是指循环体中最后一个指令的地址。
[0080] 循环计数是指应当执行的循环的迭代数量。这来自用于LOOP操作的立即字段 (immediate field)或者用于ZL00P和ZL00PS操作的通用寄存器。
[0081] SIN是指投机(Speculation)索引号,其被用于识别在分支的附近投机性地排队 的指令。
[0082] SIN解析(resolution)是指确定分支是否正确投机。在EXl中进行SIN解析。
[0083] SIN验证是指正确投机的EXl中的分支,其反过来将验证与在正确投机的分支附 近的操作相关的SIN。验证操作是将更新架构状态的操作。
[0084] SIN取消是指错误投机的EXl中的分支,其反过来将取消所有突出的SIN,并进行 EXl重定向,有效地从执行流水线中清除分支附近的所有操作。在一个实施方式中,清除错 误投机的分支附近中的操作包括改变与执行流水线中的那些指令中的每个指令相关的位 的状态。
[0085] 状态相干执行(State coherency enforcement) (SCE)是指由内部机构执行的以 防止将来的操作看见不连贯的机器状态的动作。
[0086] 陷讲事件(Trap event)是指同步、异步及故障事件的设置。
[0087]同步陷阱事件涉及具体指令并及时检测以防止引起事件的指令排队。监管程序调 用(SVC)指令适合这种类型。这些如它们在指令流中总体定义的地方中发生的一样精确。
[0088] 从当前指令序列中独立出现异步陷阱事件(中断)。异步异常适合这种情况。
[0089] 故障陷阱事件防止程序流恢复。故障陷阱事件的实例是错位的PC和数据中止。具 有寄存器目的的故障操作必须完成寄存器值。
[0090] 处理器概述
[0091] 公开了一种处理器架构,包括具有多个寄存器的寄存器文件,并被配置为乱序指 令执行,该处理器架构进一步包括重命名器单元,其产生与寄存器文件地址相关的生成数 以提供暂时偏离现有版本的寄存器的重命名版本的寄存器而不是分配非编程可见物理寄 存器作为重命名的寄存器。处理器架构包括小重置双历史记录长度(DHL)Gshare分支预测 单元,其耦接至指令高速缓存并被配置为为指令高速缓存提供投机地址。处理器架构适于 在集成电路中实施。这种集成电路通常但不一定利用CMOS电路实现。
[0092] 在一个示例性实施方式中,在集成电路中实现根据本公开的处理器作为嵌入式处 理器。
[0093] 图1是示出根据本公开的示例性处理器的主要模块的高级框图。示例性处理器包 括指令高速缓存102,该指令高速缓存耦接为从分支预测单元104接收VLIW指令地址并进 一步耦接成为分支预测单元104、指令解码器106、寄存器文件108、以及生成重命名110提 供输出。生成重命名110耦接至分支执行单元118以接收SIN控制信号,耦接至SIN分配 器以接收SIN数,耦接至解读机构124以从操作数复制网络接收输出,并耦接至分支预约队 列112、执行流水线预约队列114A、114B、114C、114D,以及加载/存储预约队列116。寄存器 文件108耦接至解读机构124以从操作数复制网络接收输入,并进一步耦接至分支预约队 列112、执行流水线预约队列114A、114B、114C、114D,以及加载/存储预约队列116。分支预 约队列112耦接至分支执行单元118。执行流水线预约队列114A、114B、114C、114D各自分 别耦接至相应的执行流水线12(^、12(?、120(:、以及1200。执行流水线12(^、12(?、120(:、和 120D各自耦接为向解读机构124提供输出。每个执行流水线120A、120B、120C、以及120D 分别耦接以将它们的输出提供回到它们的输入,并且各自被进一步耦接以输出分支执行单 元118的输出以接收SIN控制信号。内存122耦接至加载/存储单元116。加载/存储单 元116进一步耦接至系统总线126。
[0094] 指令高速缓存102保持先前由指令获取单元(未示出)取出的VLIW指令。通常 从布置在处理器本身以外的内存取出VLIW指令。分支
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1