用于处理器的功率效率的向量掩码驱动时钟门控的制作方法

文档序号:8491687阅读:349来源:国知局
用于处理器的功率效率的向量掩码驱动时钟门控的制作方法
【技术领域】
[0001] 本发明的多个实施例总体涉及微处理器。更具体地说,本发明的多个实施例涉及 微处理器的功率管理。
【背景技术】
[0002] 功耗是现代电子器件和基于处理器的设备中的主要顾虑。近几年中,将膝上型计 算机和笔记本计算机用于移动计算已变得常见。同样,移动设备正变成忙碌的专业人员的 标准配件。此外,如今的移动设备中的许多设备包括作为标准特征的功能,从而使得用户可 在移动时访问email、玩电脑游戏或访问互联网。在所有这些示例中,电子设备依赖于诸如 电池之类的有限的电源。因此,减少功耗并进而增加电池寿命是投放对市场有吸引力的产 品并因此有经济利益可图的重要因素。
[0003] 减少基于处理器的设备中的功耗的一种方法是减少该处理器的功耗。通常的技术 是基于在给定时刻正在被执行的操作或操作集,禁用该处理器内不被使用的功能块。此外, 启用和禁用功能块的过程固有地是动态的,因为这些块应当被启用以便不引进任何处理等 待时间,但是应当被迅速地禁用以便使过度的当前使用最小化。
[0004] 诸如英特尔的高级向量扩展(AVX)之类的更先进的处理器能以向量方式处理单 指令多数据(SMD)指令。这些指令中的一些基于掩码操作数,对多个数据元素执行多个操 作。图1是示出向量执行规则的框图。例如,指令VADDPS 2匪1作1},2匪2,2匪3对512位寄 存器中的32位数据元素执行多至16个单精度(SP)加法操作,这些操作全部并行地执行。 掩码kl是16位寄存器,该16位寄存器的每一位与将以该向量指令被处理的每一个数据元 素有关。如果掩码位是一,则数据元素被处理,并且被写入到目的地中。如果掩码位是零, 则处理器写入零或保持目的地不变(取决于写掩码操作模式)。在硬件中,全部16个元素 总是在作为单个实体的向量算术逻辑单元(ALU)内被操作。遗憾的是,由于在向量ALU内 被执行的一定百分比的操作将由于其相关的掩码位被设置为零而被丢弃,因此存在功率效 率损失。图2是示出掩码驱动AVX操作的示例的伪代码。
【附图说明】
[0005] 在所附附图的多个图中,以示例方式而非限制方式说明本发明的多个实施例,在 附图中,同样的参考标号指示类似的元件。
[0006] 图1是示出向量执行规则的框图。
[0007] 图2是示出掩码驱动AVX操作的示例的伪代码。
[0008] 图3是根据本发明的一个实施例的处理器或处理器核的执行流水线的框图。
[0009] 图4是示出根据本发明的一个实施例的掩码驱动SIMD指令的操作的框图。
[0010] 图5是根据本发明的另一实施例的处理器或处理器核的框图。
[0011] 图6是示出根据本发明的一个实施例的、由处理器执行的方法的流程图。
[0012] 图7A示出根据本发明的一个实施例的示例性高级向量扩展(AVX)指令格式。
[0013] 图7B示出根据本发明的另一实施例的示例性高级向量扩展(AVX)指令格式。
[0014] 图7C示出根据本发明的又一实施例的示例性高级向量扩展(AVX)指令格式。
[0015] 图8A是示出根据本发明的多个实施例的通用向量友好指令格式及其A类指令模 板的框图。
[0016] 图8B是示出根据本发明的多个实施例的通用向量友好指令格式及其B类指令模 板的框图。
[0017] 图9A是示出根据本发明的一个实施例的示例性专用向量友好指令格式的框图。
[0018] 图9B是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0019] 图9C是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0020] 图9D是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0021] 图10是根据本发明的一个实施例的寄存器架构的框图。
[0022] 图11A是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器 重命名的无序发布/执行流水线的框图。
[0023] 图11B是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示 例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0024] 图12A是根据本发明的一个实施例的处理器核的框图。
[0025] 图12B是根据本发明的另一实施例的处理器核的框图。
[0026] 图13是根据本发明的多个实施例的处理器的框图。
[0027] 图14是根据本发明的一个实施例的系统的框图;
[0028] 图15是根据本发明的实施例的更具体的示例性系统的框图。
[0029] 图16是根据本发明的另一实施例的更具体的示例性系统的框图。
[0030] 图17是根据本发明的实施例的SoC的框图。
[0031] 图18是根据本发明的多个实施例的、对照使用软件指令转换器将源指令集中的 二进制指令转换成目标指令集中的二进制指令的框图。
【具体实施方式】
[0032] 将参考以下所讨论的细节来描述本发明的各实施例和方面,并且所附附图将说明 各实施例。下列描述和附图是说明本发明的,并且不应当被解释为限制本发明。描述许多 具体的细节以提供对本发明的各实施例的透彻理解。然而,在某些实例中,不描述公知的或 常规的细节,以便提供本发明实施例的简洁讨论。
[0033] 在本说明书中提到"一个实施例"或"实施例",意思是指结合该实施例所描述的特 定特征、结构或特性可以被包括在本发明的至少一个实施例中。在本说明书中的不同位置 出现短语"在一个实施例中"不一定都是指同一个实施例。
[0034] 根据一些实施例,SMD指令的掩码值可用于确定特定的数据元素是否将由将向目 的地写入值的对应的ALU处理。如果确定了数据元素将不被处理,则对应的向量通道(例 如,处理该数据元素的处理元件(包括ALU)、寄存器组、数据总线分派路径、引退单元中的 写回路径等)的功耗可减少或被关闭。
[0035] 在一个实施例中,可在向量指令的分派开始时读取掩码值,使得可在向量ALU流 水线中,在数据元素层级上执行时钟门控,从而避免因对将不会在目的地上被更新的数据 元素的值进行的不必要的位切换而造成的动态功耗浪费。时钟门控可应用于多个流水线 级,包括向量寄存器读取、数据总线分派、混洗和数据变换、ALU执行和写回等。
[0036] 图3是根据本发明的一个实施例的处理器或处理器核的框图。参考图3,处理器 100可表示任何种类的指令处理装置或处理元件。处理元件是指线程、进程、上下文、逻辑处 理器、硬件线程、核和/或共享对处理器的其他共享资源(例如,预留单元、执行单元、流水 线和更高层级的高速缓存/存储器)的访问的任何处理元件。物理处理器通常是指潜在地 包括诸如核或硬件线程之类的任意数量的其他处理元件的集成电路。核通常是指位于集成 电路上的、能够维持独立架构状态的逻辑,其中,每一个被独立地维持的架构状态与至少一 些专用执行资源相关联。在一个实施例中,处理器100可以是通用处理器。处理器100可 以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指 令字(VLIW)处理器中的任何处理器,可以是上述处理器的各种混合,或者可以完全是其他 类型的处理器。处理器100也可表示一个或多个处理器核。
[0037] 可在不同的处理器中,出于不同的目的,以不同的方式来实现处理器核。例如,此 类核的实现可包括:1)旨在用于通用计算的通用有序核;2)旨在用于通用计算的高性能通 用无序核;3)旨在主要用于图形和/或科学(吞吐量)计算的专用核。不同处理器的实现 可包括:1)中央处理单元(CPU),其包括旨在用于通用计算的一个或多个通用有序核和/或 旨在用于通用计算的一个或多个通用无序核;以及2)协处理器,其包括旨在主要用于图形 和/或科学(吞吐量)的一个或多个专用核。此类不同处理器导致不同的计算机系统架构, 其可包括:1)在与CPU分开的芯片上的协处理器;2)在与CPU相同的封装中但分开的管芯 上的协处理器;3)与CPU在相同管芯上的协处理器(在该情况下,此类协处理器有时被称 为诸如集成图形和/或科学(吞吐量)逻辑之类的专用逻辑,或被称为专用核);以及4)可 以将所描述的CPU (有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包 括在同一管芯上的芯片上系统。接着描述示例性核架构,随后描述示例性处理器和计算机 架构。
[0038] 在一个实施例中,处理器100包括但不限于形成处理器流水线的指令取出单元 101、指令解码器102、重命名/分配器103、调度器/分派器104、一个或多个执行单元105 和引退单元106。可由多个线程共享流水线或流水线的部分(例如,流水线的前端或指令 解码部分102)。复制架构状态寄存器(没有示出),因此能够存储单独的架构状态/上下 文以用于不同的逻辑处理器。也可复制其他更小的资源(例如,重命名分配器逻辑103中 的指令指针和重命名逻辑)以用于多个线程。可通过分区操作来共享诸如重排序/引退单 元106中的重排序缓冲器、加载/存储缓冲器和队列之类的一些资源。而可以潜在地完全 共享诸如通用内部寄存器(例如,寄存器108)、页表基寄存器、低层级数据高速缓存(例如, 高速缓存107)和数据转换缓冲器(TLB)、执行单元104和无序单元(没有示出)之类的资 源。
[0039] 在一个实施例中,指令解码器102用于对从指令取出单元101接收到的指令进行 解码。这些指令可以是从集成在处理器100之内或与处理器100紧密关联的高速缓存存储 器107中取出的宏指令,或者可以经由系统总线从外部存储器中检索到。指令解码器102 可对这些宏指令进行解码,并且生成或输出反映这些指令或从这些指令导出的一个或多个 微操作、微代码、进入点、微指令、其他指令或其他控制信号。指令解码器102可使用各种不 同的机制来实现。合适的机制的示例包括但不仅限于,微代码只读存储器(ROM)、查找表、硬 件实现、可编程逻辑阵列(PLA)等。
[0040] 在一个实施例中,分配器和重命名单元103包括用于预留资源的分配器,诸如用 于存储指令处理结果的寄存器组。然而,线程可能能够无序执行,其中,分配器和重命名单 元103也预留其他资源(例如,用于追踪指令结果的重排序缓冲器)。单元130也可包括寄 存器重命名器,其用于将程序/指令引用寄存器重命名为处理器内部的其他寄存器。在此 类重命名级期间,将对外部或逻辑寄存器的引用转换为内部的或物理寄存器引用以消除由 寄存器重新使用而导致的依赖关系。
[0041] 调度器和分派单元104用于向执行单元105调度和分派指令,以供执行。事实上, 根据指令/操作的类型可用性,在执行单元105上潜在地调度这些指令/操作。例如,在具 有可用的浮点执行单元的执行单元的端口上调度浮点指令。执行单元的示例包括浮点执行 单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知的执行单 J1_1〇
[0042] 执行单元105可包括算术逻辑单元或能够基于指令执行操作的另一类型的逻辑 单元。作为指令解码器102对指令进行解
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1