紧缩数据元素断定处理器、方法、系统和指令的制作方法_4

文档序号:9493646阅读:来源:国知局
线和示例性寄存器重命名 无序发布/执行流水线的方框图。图13B是示出根据本发明的实施例的被包括在处理器中 的有序架构核心和示例性寄存器重命名无序发布/执行架构核心的示例性实施例的方框 图。在图13A-B中的实线框示出有序流水线和有序核心,而虚线框的可选添加示出寄存器 重命名无序发布/执行流水线和核心。假定有序方面是无序方面的子集,将描述无序方面。
[0086] 在图13A中,处理器流水线1300包括取出级1302、长度解码级1304、解码级1306、 分配级1308、重命名级1310、调度(也被称为分派或发布)级1312、寄存器读取/存储器读 取级1314、执行级1316、写回/存储器写入级1318、异常处理级1322和提交级1324。
[0087] 图13B示出包括耦合到执行引擎单元1350的前端单元1330的处理器核心1390, 且两者都耦合到存储器单元1370。核心1390可以是精简指令集计算(RISC)核心、复杂指 令集计算(CISC)核心、超长指令字(VLIW)核心、或混合或可选的核心类型。作为又一选择, 核心1390可以是专用核心,例如网络或通信核心、压缩引擎、协处理器核心、通用计算图形 处理单元(GPGPU)核心、图形核心等。
[0088] 前端单元1330包括耦合到指令高速缓存单元1334的分支预测单元1332,指令高 速缓存单元1334耦合到指令翻译旁视缓冲器(TLB) 1336,指令翻译旁视缓冲器(TLB) 1336 耦合到指令取出单元1338,指令取出单元1338耦合到解码单元1340。解码单元1340 (或 解码器)可对指令解码,并产生一个或多个微操作、微代码输入点、微指令、其它指令或从 原始指令被解码或反映原始指令或从原始指令得到的其它控制信号作为输出。可使用各种 不同的机制来实现解码单元1340。适当机制的示例包括但不限于查找表、硬件实现、可编 程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核心1390包括微代码 ROM或存储某些宏指令的微代码(例如在解码单元1340中或在前端单元1330内)的其它 介质。解码单元1340耦合到在执行引擎单元1350中的重命名/分配器单元1352。
[0089] 执行引擎单元1350包括耦合到引退单元1354的重命名/分配器单元1352和一组 一个或多个调度器单元1356。调度器单元1356代表任何数量的不同调度器,包括预留站、 中央指令窗口等。调度器单元1356耦合到物理寄存器文件单元1358。每一个物理寄存器 文件单元1358代表一个或多个物理寄存器文件,其中不同的物理寄存器文件存储一个或 多个不同的数据类型,例如标量整数、标量浮点、紧缩整数、紧缩浮点、矢量整数、矢量浮点、 状态(例如指令指针,其为待执行的下一指令的地址)等。在一个实施例中,物理寄存器文 件单元1358包括矢量寄存器单元、写入掩码寄存器单元和标量寄存器单元。这些寄存器单 元可提供架构矢量寄存器、矢量掩码寄存器和通用寄存器。物理寄存器文件单元1358由引 退单元1354重叠以示出寄存器重命名和无序执行可被实现(例如使用记录器缓冲器和引 退寄存器文件;使用未来的文件、历史缓冲器和引退寄存器文件;使用寄存器地图和一池 寄存器;等等)的各种方式。引退单元1354和物理寄存器文件单元1358耦合到执行群集 1360。执行群集1360包括一组一个或多个执行单元1362和一组一个或多个存储器访问单 元1364。执行单元1062可对各种类型的数据(例如标量浮点、紧缩整数、紧缩浮点、矢量整 数、矢量浮点)执行各种操作(例如移位、加法、减法、乘法)。虽然一些实施例可包括专用 于特定的功能或功能组的多个执行单元,其它实施例可包括仅仅一个执行单元或都执行所 有功能的多个执行单元。调度器单元1356、物理寄存器文件单元1358和执行群集1360被 示为可能多个,因为某些实施例为某些类型的数据/操作创建单独的流水线(例如标量整 数流水线、标量浮点/紧缩整数/紧缩浮点/矢量整数/矢量浮点流水线和/或存储器访 问流水线,每一个流水线具有它们自己的调度器单元、物理寄存器文件单元和/或执行群 集,且在单独的存储器访问流水线的情况下,实现某些实施例,其中只有这个流水线的执行 群集具有存储器访问单元1364)。也应理解,在单独的流水线被使用的场合,这些流水线中 的一个或多个可以是无序发布/执行,而其余是有序的。
[0090] 这组存储器访问单元1364耦合到存储器单元1370,其包括耦合到数据高速缓存 单元1374的数据TLB单元1372,数据高速缓存单元1374耦合到2级(L2)高速缓存单元 1376。在一个示例性实施例中,存储器访问单元1364可包括装入单元、存储地址单元和存 储数据单元,其中每一个耦合到在存储器单元1370中的数据TLB单元1372。指令高速缓存 单元1334进一步耦合到在存储器单元1370中的2级(L2)高速缓存单元1376。L2高速缓 存单元1376耦合到高速缓存的一个或多个其它级并最终耦合到主存储器。
[0091] 作为示例,示例性寄存器重命名无序发布/执行核心架构可如下实现流水线 1300 :1)指令取出1338执行取出和长度解码级1302和1304 ;2)解码单元1340执行解码 级1306 ;3)重命名/分配器单元1352执行分配级1308和重命名级1310 ;4)调度器单元 1356执行调度器级1312 ;5)物理寄存器文件单元1358和存储器单元1370执行寄存器读 取/存储器读取级1314 ;执行群集1360执行执行级1316 ;6)存储器单元1370和物理寄存 器文件单元1358执行写回/存储器写入级1318 ;7)在异常处理级1322中涉及各种单元; 以及8)引退单元1354和物理寄存器文件单元1358执行提交级1324。
[0092] 核心1390可支持一个或多个指令集(例如x86指令集(具有添加了较新版本 的一些扩展);MIPSTechnologiesofSunnyvale,CA的MIPS指令集;ARMHoldingsof Sunnyvale,CA的ARM指令集(具有可选的额外扩展例如NEON)),包括本文所述的指令。在 一个实施例中,核心1390包括支持紧缩数据指令集扩展(例如AVXUAVX2)的逻辑,从而允 许使用紧缩数据执行由很多多媒体应用使用的操作。
[0093] 应理解,核心可支持多线程(执行两个或多个并行组的操作或线程),并可以 用各种方式来这么做,包括时间分片多线程、同时多线程(其中单个物理核心为每一 个线程提供逻辑核心,物理核心是同时多线程的)或其组合(例如其后例如在Intel? Hyperthreading技术中的时间分片取出和解码和同时多线程)。
[0094] 虽然在无序执行的上下文中描述了寄存器重命名,应理解,可在有序架构中使 用寄存器重命名。虽然处理器的所示实施例也包括单独的指令和数据高速缓存单元 1334/1374和共享L2高速缓存单元1376,可选的实施例可具有指令和数据的单个内部高速 缓存,例如1级(L1)内部高速缓存或内部高速缓存的多个级。在一些实施例中,系统可包 括内部高速缓存和在核心和/或处理器外部的外部高速缓存的组合。可选地,所有高速缓 存可以在核心和/或处理器外部。
[0095] 特定的示例性有序核心架构
[0096]图14A-B示出更具体的示例性有序核心架构的方框图,该核心将是在芯片中的几 个逻辑块之一(包括相同类型和/或不同类型的其它核心)。逻辑块通过高带宽互联网络 (例如环形网络)与某个固定功能逻辑、存储器1/0接口和其它必要的1/0逻辑通信,取决 于应用。
[0097] 图14A是根据本发明的实施例的单处理器核心连同它到管芯上互连网络1402的 连接及它的2级(L2)高速缓存1404的本地子集的方框图。在一个实施例中,指令解码器 1400支持具有紧缩数据指令集扩展的x86指令集。L1高速缓存1406允许对在标量和矢量 单元内的高速缓存存储器的低时延访问。虽然在一个实施例中(为了简化设计)标量单元 1408和矢量单元1410使用单独的寄存器组(分别为标量寄存器1412和矢量寄存器1414) 且在它们之间传输的数据被写到存储器并接着从1级(L1)高速缓存1406被读回,本发明 的可选实施例可使用不同的方法(例如使用单个寄存器组或包括允许数据在这两个寄存 器文件之间传输而没有被写入和读回的通信路径)。
[0098] L2高速缓存1404的本地子集是被分成单独的本地子集的全局L2高速缓存的部 分,每处理器核心一个本地子集。每一个处理器核心具有到L2高速缓存1404的它自己的 本地子集的直接访问路径。由处理器核心读取的数据存储在它的L2高速缓存子集1404中 并可与访问它们自己的本地L2高速缓存子集的其它处理器一起并行地被快速访问。由处 理器核心写入的数据存储在它自己的L2高速缓存子集1404中并从其它子集清除,如果必 要。环形网络确保共享数据的一致性。环形网络是双向的以允许代理例如处理器核心、L2 高速缓存和其它逻辑块在芯片内与彼此通信。每一个环形数据路径是每方向1012位宽。
[0099] 图14B是根据本发明的实施例的在图14A中的处理器核心的部分的展开图。图 14B包括L1高速缓存1404的L1数据高速缓存1406A部分以及关于矢量单元1410和矢量 寄存器1414的更多细节。具体地,矢量单元1410是16宽矢量处理单元(VPU)(见16宽 ALU1428),其执行整数、单精度浮点和双精度浮点指令中的一个或多个。VPU支持使用拌合 (swizzle)单元1420拌合寄存器输入,使用数字转换单元1422A-B进行的数字转换以及使 用复制单元1424对存储器输入的复制。写入掩码寄存器1426允许断定因而产生的矢量写 入。
[0100] 具有集成存储器控制器和图形的处理器
[0101] 图15是根据本发明的实施例的可具有多于一个核心、可具有集成存储器控制器、 并可具有集成图形的处理器1500的方框图。在图15中的实线框示出具有单个核心1502A、 系统代理1510、一组一个或多个总线控制器单元1516的处理器1500,而虚线框的可选添加 示出具有多个核心1502A-N、在系统代理单元1510中的一组一个或多个集成存储器控制器 单元1514和专用逻辑1508的可选处理器1500。
[0102] 因此,处理器1500的不同实现可包括:1)CPU,其具有作为集成图形和/或科学 (吞吐量)逻辑的专用逻辑1508 (其可包括一个或多个核心)和作为一个或多个通用核心 (例如通用有序核心、通用无序核心、这两者的组合)的核心1502A-N;2)协处理器,其具有 主要为图形和/或科学(吞吐量)设计的作为大量专用核心的核心1502A-N;以及3)协处 理器,其具有作为大量通用有序核心的核心1502A-N。因此,处理器1500可以是通用处理 器、协处理器或专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图 形处理单元)、高吞吐量多集成核心(MIC)协处理器(包括30或更多核心)、嵌入式处理器 等。处理器可以在一个或多个芯片上实现。处理器1500可以是一个或多个衬底的一部分 和/或可使用多种处理器技术中的任一个(例如BiCM0S、CM0S或NM0S)在一个或多个衬底 上实现。
[0103] 存储器等级结构包括在核心内的高速缓存的一个或多个级、一组或一个或多个共 享高速缓存单元1506和耦合到这组集成存储器控制器单元1514的外部存储器(未示出)。 这组共享高速缓存单元1506可包括一个或多个中级高速缓存,例如第2级(L2)、第3级 (L3)、第4级(L4)或高速缓存的其它级、最后一级高速缓存(LLC)和/或其组合。虽然在 一个实施例中基于环的互连单元1512将集成图形逻辑1508、这组共享高速缓存单元1506 和系统代理单元1510/集成存储器控制器单元1514互连,可选的实施例可使用用于将这样 的单元互连的任何数量的公知技术。在一个实施例中,在一个或多个高速缓存单元1506和 核心1502-A-N之间维持一致性。
[0104] 在一些实施例中,一个或多个核心1502A-N有多线程的能力。系统代理1510包括 协调和操作核心1502A-N的那些部件。系统代理单元1510可包括例如功率控制单元(P⑶) 和显示单元。P⑶可以是或包括调节核心1502A-N和集成图形逻辑1508的功率状态所需的 逻辑和部件。显示单元用于驱动一个或多个外部连接的显示器。
[0105] 核心1502A-N从架构指令集方面来说可以是同构的或异构的;也就是说,两个或 更多个核心1502A-N可能能够执行相同的指令集,而其它核心可能能够只执行那个指令集 的子集或不同的指令集。
[0106] 示例性计算机架构
[0107] 图16-19是示例性计算机架构的方框图。膝上型计算机、台式计算机、手持PC、个 人数字助理、工程设计工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字 信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放 器、手持设备和各种其它电子设备的在本领域中已知的其它系统设计和配置也是合适的。 通常,能够合并处理器和/或如本文公开的其它执行逻辑的多种系统或电子设备通常是合 适的。
[0108] 现在参考图16,其示出根据本发明的一个实施例的系统1600的方框图。系统1600 可包括耦合到控制器中心1620的一个或多个处理器1610、1615。在一个实施例中,控制器 中心1620包括图形存储器控制器中心(GMCH) 1690和输入/输出中心(Ι0Η) 1650 (其可以 在单独的芯片上);GMCH1690包括存储器1640和协处理器1645耦合到的存储器和图形控 制器;Ι0Η1650将输入/输出(I/O)设备1660耦合到GMCH1690。可选地,存储器和图形 控制器中的一个或两个集成在处理器(如在本文所述的)内,存储器1640和协处理器1645 在单个芯片中与Ι0Η1650 -起直接耦合到处理器1610和控制器中心1620。
[0109] 在图16中用虚线表不额外的处理器1615的可选性质。每一个处理器1610、1615 可包括在本文所述的一个或多个处理核心,且可以是处理器1500的某个版本。
[0110] 存储器1640可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者 的组合。对于至少一个实施例,控制器中心1620经由多点总线例如前端总线(FSB)、点对点 接口例如QuickPath互连(QPI)或类似的连接1695与处理器1610U615通信。
[0111] 在一个实施例中,协处理器1645是专用处理器,例如高吞吐量MIC处理器、网络或 通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。在一个实施例中,控制器中心 1620可包括集成图形加速器。
[0112] 从包括架构、微架构、热、功率消耗特性等的一系列优点的度量方面,在物理资源 1610、1615之间可以有各种差异。
[0113] 在一个实施例中,处理器1610执行控制一般类型的数据处理操作的指令。嵌入指 令内的可以是协处理器指令。处理器1610将这些协处理器指令识别为具有应由附加的协 处理器1645执行的类型。对应地,处理器1610向协处理器1645发出在协处理器总线或其 它互连上的这些协处理器指令(或表示协
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1