单元和/或逻辑。在另一个实施例中, 核1101包括无序处理器核,而核1102包括有序处理器核。然而,核1101和1102可从任何 类型的核中单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集架构(ISA)的 核、适于执行转换ISA的核、协同设计的核或其它已知核。不过,为进一步讨论,以下将进一 步详细描述在核1101中示出的功能单元,因为核1102中的单元以类似方式操作。
[0050] 如所描绘,核1101包括两个硬件线程1101a和1101b,它们可被称为硬件线程槽 1101a和1101b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器 1100视为四个独立的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理 元件。如上所述,第一线程与架构状态寄存器1101a相关联,第二线程与架构状态寄存器 ll〇lb相关联,第三线程可与架构状态寄存器1102a相关联,并且第四线程可与架构状态寄 存器1102b相关联。在此,架构状态寄存器(1101a、1101b、1102a和1102b)中的每一个可 被称为处理元件、线程槽或线程单元,如上所述。如上所述,架构状态寄存器ll〇la被复制 在架构状态寄存器1101b中,因此能够为逻辑处理器1101a和逻辑处理器1101b存储各个 架构状态/上下文。在核1101中,也可复制用于线程ll〇la和1101b的其它较小资源,诸 如指令指针以及分配器和重命名块1130中的重命名逻辑。诸如重排序器/隐退单元1135 中的重排序缓冲器、ILTB 1120、载入/存储缓冲器、以及队列之类的一些资源可通过分区 来共享。诸如通用内部寄存器、页表基本寄存器、低级数据缓存和数据TLB 1115、执行单元 1140、以及无序单元1135的部分之类的其它资源潜在地被完全共享。
[0051] 处理器1100通常包括其它资源,这些其它资源可被完全共享、通过分区共享、或 由处理元件专用/专用于处理元件。在图5中,示出了具有处理器的说明性的逻辑单元/ 资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任一个,并 包括未描绘出的任何其它已知的功能单元、逻辑或固件。如图所示,核1101包括简化的、代 表性的无序(〇〇〇)处理器核。但是,在不同实施例中可利用有序处理器。〇〇〇核包括用于预 测要被执行/进行的分支的分支目标缓冲器1120以及用于存储指令的地址转换条目的指 令转换缓冲器(I-TLB) 1120。
[0052] 核1101进一步包括耦合至获取单元1120以用于解码所获取的元素的解码模块 1125。在一个实施例中,获取逻辑包括分别与线程槽1101a、1101b相关联的各个序列发生 器。通常,核1101与第一 ISA相关联,该第一 ISA定义/指定能在处理器1100上执行的指 令。是第一 ISA的一部分的机器代码指令常常包括引用/指定要被执行的指令或操作的指 令的一部分(被称为操作码)。解码逻辑1125包括由这些指令的操作码来识别这些指令并 在流水线上传递所解码的指令以进行如第一 ISA所定义的处理的电路。例如,在一个实施 例中,解码器1125包括被设计成或适于识别诸如事务性指令之类的特定指令的逻辑。作为 解码器1125识别的结果,架构或核1101采取特定的、预定的动作以执行与适当指令相关联 的任务。重要的是应注意,本申请中描述的任务、块、操作和方法中的任一个可响应于单个 或多个指令来执行;它们中的一些可以是新的或旧的指令。
[0053] 在一个示例中,分配器和重命名器块1130包括用于预留资源的分配器,诸如用于 存储指令处理结果的寄存器组。然而,线程1101a和1101b潜在地能够进行无序执行,其中 分配器和重命名器块1130还保留其它资源(诸如用于跟踪指令结果的重排序缓冲器)。单 元1130还可包括寄存器重命名器,用于将程序/指令引用寄存器重命名为处理器1100内 部的其它寄存器。重排序/隐退单元1135包括诸如上述的重排序缓冲器、加载缓冲器和存 储缓冲器之类的组件,以支持无序执行的指令的无序执行和稍后的有序隐退。
[0054] 在一个实施例中,调度器和执行单元块1140包括调度器单元,用于在执行单元上 调度指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还 包括与执行单元相关联的寄存器组,用于存储信息指令处理结果。示例性的执行单元包括 浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其它已知 的执行单元。
[0055] 较低级的数据缓存和数据转换缓冲器(D-TLB) 1150耦合至执行单元1140。数据缓 存用于存储最近使用/操作的元素(诸如数据操作数),这些元素在存储器一致性状态下潜 在地被保持。D-TLB用于存储最近的虚拟/线性至物理地址转换。作为特定示例,处理器可 包括页表结构,用于将物理存储器分解成多个虚拟页。
[0056] 在此,核1101和1102共享对较高级或进一步远离的缓存1110的访问,较高级或 进一步远离的缓存用于缓存最近获取的元素。注意,较高级或进一步指的是缓存级增加 或进一步远尚执行单兀。在一个实施例中,较尚级缓存1110是最后级数据缓存 处理 器1100上的存储器层次中的最后级缓存,诸如第二或第三级数据缓存。然而,较高级缓存 1110不限于此,因为它可与指令缓存相关联或包括指令缓存。替代地,跟踪缓存一一一种类 型的指令缓存一一可耦合在解码器1125之后,用于存储最近解码的跟踪。
[0057] 在所描绘的配置中,根据本发明的一个实施例,处理器1100还包括总线接口模块 1105和可以执行功率共享控制的功率控制器1160。历史上,控制器1170被包括在处理器 1100外部的计算系统中。在该场景中,总线接口 1105与处理器1100外部的设备通信,处 理器100外部的设备诸如系统存储器1175、芯片组(通常包括存储器控制器中枢以连接到 存储器1175以及I/O控制器中枢以连接到外围设备)、存储器控制器中枢、北桥、或其它集 成电路。并且在该场景中,总线1105可包括任何已知的互连,诸如多点总线、点对点互连、 串行互连、并行总线、一致性(例如缓存一致性)总线、分层协议架构、差分总线以及GTL总 线。
[0058] 存储器1175可专属于处理器1100或与系统中的其它器件共享。存储器1175的 类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。 注意,器件1180可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控 制器中枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。
[0059] 然而,注意,在所描绘的实施例中,控制器1170被示为处理器1100的一部分。最 近,随着更多的逻辑和器件被集成在单个管芯上(如SOC),这些器件中的每一个可被合并 在处理器1100上。例如,在一个实施例中,存储器控制器中枢1170与处理器1100处于同 一封装和/或管芯上。在此,核的一部分(核上部分,on-core portion)包括与诸如存储器 1175和/或图形器件1180之类的其它器件进行接口的一个或多个控制器1170。包括用于 与此类器件进行接口的控制器和互连的该配置通常被称为核上(或非核(un-core)配置)。 作为示例,总线接口 1105包括环形互连,环形互连具有用于与存储器1175进行接口的存储 器控制器以及用于与图形处理器1180进行接口的图形控制器。然而,在S0C环境中,诸如 网络接口、协同处理器、存储器1175、图形处理器1180以及任何其它已知计算机器件/接口 之类的甚至更多的器件可被集成到单个管芯或集成电路上,以提供具有高功能性和低功耗 的小外形规格。
[0060] 实施例可在许多不同的系统类型中实现。现在参照图6,其中示出了根据本发明 一实施例的系统的框图。如图6所示,多处理器系统500是点对点互连系统,并包括通过点 对点互连550而耦合的第一处理器570和第二处理器580。如图6所示,处理器570和580 中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核574a和574b以 及处理器核584a和584b),虽然潜在地更多核可以存在于处理器中。处理器中的每一个都 可包括PCU或其他逻辑,以如此处所描述的,至少部分地基于功率偏置值,在处理器的多个 域之间执行封装