Sm4加速处理器、方法、系统和指令的制作方法_4

文档序号:9551037阅读:来源:国知局
派或发布)级912、寄存器读取/存储器读取级 914、执行级916、写回/存储器写入级918、异常处理级922和提交级924。
[0107] 图9B示出处理器核990,其包括耦合至执行引擎单元950的前端单元930,该前端 单元和执行引擎单元两者均耦合至存储器单元970。核990可以是精简指令集计算(RISC) 核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或其他核类型。作为又一选项, 核990可以是专用核,例如,网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元 (GPGPU)核、图形核等。
[0108] 前端单元930包括親合到指令高速缓存单元934的分支预测单元932,该指令高速 缓存单元耦合到指令转换后备缓冲器(TLB)936,该指令转换后备缓冲器耦合到指令取出单 元938,指令取出单元耦合到解码单元940。解码单元940(或解码器)可解码指令,并生成 从原始指令解码出的、或以其他方式反映原始指令的或从原始指令导出的一个或多个微操 作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元940可使用各种 不同的机制来实现。合适的机制的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列 (PLA)、微代码只读存储器(ROM)等。在一个实施例中,核990包括(例如,在解码单元940 中或以其他方式在前端单元930内的)用于存储某些宏指令的微代码的微代码ROM或其他 介质。解码单元940耦合至执行引擎单元950中的重命名/分配器单元952。
[0109] 执行引擎单元950包括耦合到引退单元954和一个或多个调度器单元的集合956 的重命名/分配器单元952。调度器单元956表示任意数量的不同调度器,包括预留站、中 央指令窗等。调度器单元956耦合到物理寄存器组单元958。每个物理寄存器组单元958 表示一个或多个物理寄存器组,其中不同的物理寄存器组保存一个或多个不同的数据类型 (诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)、状态(诸如,作为 将要执行的下一个指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元958包 括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构 向量寄存器、向量掩码寄存器和通用寄存器。物理寄存器组单元958被引退单元954覆盖, 以示出可以此实现寄存器重命名和无序执行的多种方式(例如,使用重排序缓冲器和引退 寄存器组;使用未来文件(futurefile)、历史缓冲器、引退寄存器组;使用寄存器映射和 寄存器池等等)。引退单元954和物理寄存器组单元958耦合至执行群集960。执行群集 960包括一个或多个执行单元的集合962以及一个或多个存储器访问单元的集合964。执 行单元962可执行各种操作(例如,移位、加法、减法、乘法)并可对多种数据类型(例如, 标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。尽管一些实施例可以包括专用 于特定功能或功能集的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执 行单元或多个执行单元。调度器单元956、物理寄存器组单元958和执行群集960被示为可 能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整数流 水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线和/或各自具有其自 身的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线一一以及在分开 的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元964 的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个 可以为无序发布/执行的,并且其余流水线可以是有序的。
[0110] 存储器访问单元的集合964耦合到存储器单元970,该存储器单元包括耦合到数 据高速缓存单元974的数据TLB单元972,其中数据高速缓存单元耦合到第二级(L2)高速 缓存单元976。在一个示例性实施例中,存储器访问单元964可包括加载单元、存储地址单 元和存储数据单元,其中的每一个均親合至存储器单元970中的数据TLB单元972。指令高 速缓存单元934还耦合到存储器单元970中的第二级(L2)高速缓存单元976。L2高速缓 存单元976耦合至一个或多个其他层级的高速缓存,并最终耦合至主存储器。
[0111] 作为示例,示例性的寄存器重命名无序发布/执行核架构可以如下所述地实现流 水线900 :1)指令取出938执行取出和长度解码级902和904 ;2)解码单元940执行解码级 906 ;3)重命名/分配器单元952执行分配级908和重命名级910 ;4)调度器单元956执行 调度级912 ;5)物理寄存器组单元958和存储器单元970执行寄存器读取/存储器读取级 914 ;执行群集960执行执行级916 ;6)存储器单元970和物理寄存器组单元958执行写回 /存储器写入级918 ;7)各单元可牵涉到异常处理级922 ;以及8)引退单元954和物理寄存 器组单元958执行提交级924。
[0112] 核990可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加 的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼 维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述 的各指令。在一个实施例中,核990包括用于支持紧缩数据指令集扩展(例如SSE、AVX1、 AVX2等等)的逻辑,由此允许许多多媒体应用所使用的操作利用紧缩数据来执行。
[0113] 应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并 且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其 中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)或其组 合(例如,时分取出和解码以及此后诸如用Inte:l?超线程化技术来同步多线程化)。
[0114] 尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构 中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单 元934/974以及共享的L2高速缓存单元976,但替代实施例可具有用于指令和数据两者的 单个内部高速缓存,例如,第一级(L1)内部高速缓存或多个层级的内部高速缓存。在一些 实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。 或者,所有高速缓存都可以在核和/或处理器的外部。
[0115] 具体的示例性有序核架构
[0116]图10A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑 块之一(包括相同类型和/或不同类型的其他核)。取决于应用,这些逻辑块通过高带宽的 互连网络(例如,环形网络)与一些固定功能逻辑、存储器I/O接口和其他必要的I/O逻辑 通信。
[0117] 图10A是根据本发明的多个实施例的单个处理器核以及它与管芯上互连网络 1002的连接及其第二级(L2)高速缓存的本地子集1004的框图。在一个实施例中,指令解 码器1000支持具有紧缩数据指令集扩展的x86指令集。L1高速缓存1006允许对进入标 量和向量单元中的高速缓存存储器的低等待时间访问。尽管在一个实施例中(为了简化设 计),标量单元1008和向量单元1010使用分开的寄存器集合(分别为标量寄存器1012和向 量寄存器1014),并且在这些寄存器之间转移的数据被写入到存储器并随后从第一级(L1) 高速缓存1006读回,但是本发明的替代实施例可以使用不同的方法(例如,使用单个寄存 器集合或包括允许数据在这两个寄存器组之间传输而无需被写入和读回的通信路径)。
[0118] L2高速缓存的本地子集1004是全局L2高速缓存的部分,该全局L2高速缓存被 划分成多个分开的本地子集,每个处理器核对应一个本地子集。每个处理器核具有去往其 自身的L2高速缓存的本地子集1004的直接访问路径。将由处理器核读取的数据存储在其 L2高速缓存子集1004中,并且可以与并行于其他处理器核访问它们自身的本地L2高速缓 存子集来迅速地访问它。将由处理器核写入的数据存储在其自身的L2高速缓存子集1004 中,并在必要的情况下从其他子集转储清除。环形网络确保共享数据的一致性。环形网络 是双向的,以允许诸如处理器核、L2高速缓存和其他逻辑块之类的代理能够在芯片内彼此 通信。每个环形数据路径为每个方向1012位宽。
[0119] 图10B是根据本发明的多个实施例的图10A中的处理器核的部分的展开图。图 10B包括L1高速缓存1004的L1数据高速缓存1006A部分,以及关于向量单元1010和向量 寄存器1014的更多细节。具体地说,向量单元1010是16宽向量处理单元(VPU)(见16宽 ALU1028),该单元执行整数、单精度浮点以及双精度浮点指令中的一个或多个。该VPU通 过混合单元1020支持对寄存器输入的混合,通过数值转换单元1022A-B支持数值转换,并 通过复制单元1024支持对存储器输入的复制。写掩码寄存器1026允许预测所得的向量写 入。
[0120] 具有集成存储器控制器和图形器件的处理器
[0121] 图11是根据本发明的多个实施例可能具有多于一个的核、可能具有集成存储器 控制器以及可能具有集成图形器件的处理器1100的框图。图11中的实线框示出具有单个 核1102A、系统代理1100、一个或多个总线控制器单元的集合1110的处理器1100,而虚线框 的可选附加示出具有多个核1102A-N、系统代理单元1110中的一个或多个集成存储器控制 器单元的集合1114以及专用逻辑1108的替代处理器1100。
[0122] 因此,处理器1100的不同实现可包括:1)CPU,其中专用逻辑1108是集成图形和/ 或科学(吞吐量)逻辑(其可包括一个或多个核),并且核1102A-N是一个或多个通用核 (例如,通用有序核、通用无序核、这两者的组合);2)协处理器,其中核1102A-N是旨在主 要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核1102A-N是大 量通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,例如,网络 或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核 (MIC)协处理器(包括30个或更多核)、嵌入式处理器等。该处理器可以被实现在一个或 多个芯片上。处理器1100可以是一个或多个基板的部分,并且/或者可使用多种工艺技术 (例如,BiCMOS、CMOS或NM0S)中的任意技术被实现在一个或多个基板上。
[0123] 存储器层次结构包括核内的一个或多个层级的高速缓存、一个或多个共享高速缓 存单元的集合1106以及耦合至集成存储器控制器单元集合1114的外部存储器(未示出)。 共享高速缓存单元的集合1106可包括一个或多个中级高速缓存,诸如,第二级(L2)、第三 级(L3)、第四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或它们的组合。尽 管在一个实施例中,基于环的互连单元1112将集成图形逻辑1108、共享高速缓存单元的集 合1106以及系统代理单元1110/集成存储器控制器单元1114互连,但替代实施例可使用 任何数量的公知技术来互连此类单元。在一个实施例中,可维持一个或多个高速缓存单元 1106 和核 1102A-N之间的一致性(coherency)。
[0124] 在一些实施例中,一个或多个核1102A-N能够进行多线程操作。系统代理1110包 括协调和操作核1102A-N的那些组件。系统代理单元1110可包括例如功率控制单元(POT) 和显示单元。P⑶可以是或可包括调节核1102A-N以及集成图形逻辑1108的功率状态所需 的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0125] 核1102A-N在架构指令集方面可以是同构的或异构的;也就是说,这些核1102A-N 中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅 子集或不同的指令集。
[0126] 示例性计算机架构
[0127] 图12-15是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持 PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数 字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播 放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般而言,能够 涵盖本文中所公开的处理器和/或其他执行逻辑的各种系统和电子设备一般都是合适的。
[0128] 现在参考图12,所示出的是根据本发明一个实施例的系统1200的框图。系统 1200可包括一个或多个处理器1210、1215,这些处理器耦合到控制器中枢1220。在一个 实施例中,控制器中枢1220包括图形存储器控制器中枢(GMCH) 1290和输入/输出中枢 (Ι0Η) 1250(其可以在分开的芯片上);GMCH1290包括存储器和图形控制器,存储器1240 和协处理器1245耦合到该存储器和图形控制器;Ι0Η1250将输入/输出(I/O)设备1260 耦合到GMCH1290。或者,存储器和图形控制器中的一个或两者可以被集成在处理器内(如 本文中所描述的),存储器1240和协处理器1245直接耦合到处理器1210以及控制器中枢 1220,控制器中枢1220与Ι0Η1250处于单个芯片中。
[0129] 附加的处理器1215的可选性质在图12中通过虚线来表示。每一处理器1210、1215 可包括本文中描述的处理核中的一个或多个,并且可以是处理器1100的某一版本。
[0130] 存储器1240可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者 的组合。对于至少一个实施例,控制器中枢1220经由诸如前端总线(FSB)之类的多分支总 线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接1295与处理器1210U215 进行通{目。
[0131] 在一个实施例中,协处理器1245是专用处理器,例如,高吞吐量MIC处理器、网络 或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等。在一个实施例中,控制器 中枢1220可以包括集成图形加速器。
[0132] 在物理资源1210、1215之间可以存在包括架构、微架构、热、和功耗特性等的一系 列品质度量方面的各种差异。
[0133] 在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指令。协处理 器指令可嵌入在这些指令中。处理器1210将这些协处理器指令识别为应当由附连的协处 理器1245执行的类型。因此,处理器1210在协处理器总线或者其他互连上将这些协处理 器指令(或者表示协处理器指令的控制信号)发布到协处理器1245。协处理器1245接受 并执行所接收的协处理器指令。
[0134] 现在参考图13,所示为根据本发明的实施例的更具体的第一示例性系统1300的 框图。如图13所示,多处理器系统1300是点对点互连系统,且包括经由点对点互连1350 耦合的第一处理器1370和第二处理器1380。处理器1370和1380中的每一个都可以是处 理器1100的某一版本。在本发明的一个实施例中,处理器1370和1380分别是处理器1210 和1215,而协处理器1338是协处理器1245。在另一实施例中,处理器1370和1380分别是 处理器1210和协处理器1245。
[0135] 处理器1370和1380示出为分别包括集成存储器控制器(頂〇单元1372和1382。 处理器1370还包括作为其总线控制器单元的部分的点对点(P-P)接口 1376和1378 ;类似 地,第二处理器1380包括P-P接口 1386和1388。处理器1370U380可以经由使用点对点 (P-P)接口电路1378、1388的P-P接口 1350来交换信息。如图13所示,頂C1372和1382 将处理器耦合到相应的存储器,即存储器1332和存储器1334,它们可以是本地附连到各自 的处理器的主存储器的多个部分。
[0136] 处理器1370U380可各自经由使用点对点接口电路1376、1394、1386、1398的各 个P-P接口 1352、1354与芯片组1390交换信息。芯片组1390可以可选地经由高性能接口 1339与协处理器1338交换信息。在一个实施例中,协处理器1338是专用处理器,例如,高 吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等。
[0137] 共享高速缓存(未示出
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1