用于提供推入缓冲器复制和存储功能的指令和逻辑的制作方法_4

文档序号:9221606阅读:来源:国知局
2位SMD寄存器或存储器操作数。对于一个实施例,由操作码格式398 提供的功能可与操作码格式370或397形成冗余,而在其他实施例中它们不同。操作码格式 398允许由MOD字段373以及由可选的(SIB)标识符393、可选的位移标识符394以及可选 的立即数字节395部分地指定的、利用掩码的寄存器到寄存器寻址、存储器到寄存器寻址、 由存储器对寄存器寻址、由寄存器对寄存器寻址、由立即数对寄存器寻址、寄存器到存储器 寻址。至少一个指令集的通用格式(其通常对应于格式360和/或格式370)被一般地示 出如下:
[0095] evexlRXRmmmmmWvvvLppevex4opcodemodrm[sib][disp][imm]
[0096] 对于一个实施例,根据EVEX格式398来编码的指令可具有附加的"有效负荷"位, 该附加的"有效负荷"位可用于提供推入缓冲器复制和存储功能,并具有附加的新特征,诸 如例如,用户可配置掩码寄存器、或附加的操作数、或从128位、256位或512位向量寄存器 或待选择的更多的寄存器中进行选择,等等。
[0097] 例如,在可将VEX格式397用于提供对带有隐式掩码的推入缓冲器复制和存储功 能的情况下,可将EVEX格式398用于提供带有显式用户可配置掩码的推入缓冲器复制和存 储功能。此外,在可将VEX格式397用于提供对128位或256位向量寄存器的推入缓冲器 复制和存储功能的情况下,可将EVEX格式398用于提供对128位、256位、512位或更大的 (或更小的)向量寄存器的推入缓冲器复制和存储功能。
[0098] 通过以下示例说明用于提供推入缓冲器复制和存储功能的示例指令:
[0099]
[0100] 将会理解,如上述示例所述,可将SMD推入缓冲器复制和存储指令用于在多个应 用中(例如,在多核流水线并行软件应用中)提供推入缓冲器复制和存储功能,进而减少共 享存储器高速缓存层次结构中的一致性业务量,增加性能和指令吞吐量,并且减少用电和 能耗。一些实施例(例如,在上述示例中)可提供目的地高速缓存的存储器地址的拥有者 核以包括诸如自身的、全部共享的或物理核ID(例如,逻辑处理器的x2APICID)之类的多 个规格。一些实施例(例如,在上述示例中)也可提供目的地高速缓存的存储器地址的高 速缓存层级以包括诸如L1$、L2$、…、末级$或主存储器之类的多个规格。在一些实施例 中,可将存储器地址Meml和/或Mem2指定为用于提供推入缓冲器复制和存储功能的指令 的显式操作数。在一些替代实施例中,可隐式地将存储器地址Meml和/或Mem2指定为例如 分别位于寄存器ES:[(E)DI]和DS:[(E)SI]中,或分别位于寄存器[RDI]和[RSI]中。在 一些其他的替代实施例中,仅一个共享存储器地址可被显式地指定为源和目的地操作数两 者,并且/或者仅一致的高速缓存行内容状态和所有权可能受影响。在一些实施例中,可将 缓冲器的尺寸指定为向量寄存器的尺寸、或目的地高速缓存中高速缓存行的尺寸、或在寄 存器中(例如,寄存器(E)CX中或寄存器RCX中)被隐式地指定的尺寸。
[0101] 图4A是示出根据本发明的至少一个实施例的有序流水线以及寄存器重命名级、 无序发布/执行流水线的框图。图4B是示出根据本发明的至少一个实施例的、要被包括在 处理器中的有序架构核以及寄存器重命名逻辑、无序发布/执行逻辑的框图。图4A中的实 线框示出了有序流水线,而虚线框示出了寄存器重命名的、无序发布/执行流水线。类似 地,图4B中的实线框示出了有序架构逻辑,而虚线框示出了寄存器重命名逻辑以及无序发 布/执行逻辑。
[0102] 在图4A中,处理器流水线400包括取出级402、长度解码级404、解码级406、分配 级408、重命名级410、调度(也被称为分派或发布)级412、寄存器读取/存储器读取级 414、执行级416、写回/存储器写入级418、异常处理级422和提交级424。
[0103] 在图4B中,箭头指示两个或更多个单元之间的耦合,并且箭头的方向指示那些单 元之间的数据流的方向。图4B示出处理器核490,其包括耦合至执行引擎单元450的前端 单元430,该前端单元和执行引擎单元两者均耦合至存储器单元470。
[0104] 核490可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字 (VLIW)核或混合或替代的核类型。作为又一选项,核490可以是专用核,例如,网络或通信 核、压缩引擎、图形核等。
[0105] 前端单元430包括親合至指令高速缓存单元434的分支预测单元432,该指令高 速缓存单元耦合至指令转换后备缓冲器(TLB) 436,该指令转换后备缓冲器(TLB)耦合至指 令取出单元438,该指令取出单元耦合至解码单元440。解码单元或解码器可解码指令,并 生成从原始指令中解码出的、或以其他方式反映原始指令的、或从原始指令中推导出的一 个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。可使用各种 不同的机制来实现解码器。合适机构的示例包括但不限于,查找表、硬件实现、可编程逻辑 阵列(PLA)、微代码只读存储器(ROM)等。指令高速缓存单元434还耦合到存储器单元470 中的第二级(L2)高速缓存单元476。解码单元440耦合至执行引擎单元450中的重命名/ 分配器单元452。
[0106] 执行引擎单元450包括耦合到引退单元454和一个或多个调度器单元456的集合 的重命名/分配器单元452。调度器单元456表示任意数量的不同调度器,包括预留站、中 央指令窗等。调度器单元456耦合到物理寄存器组单元458。每个物理寄存器组单元458 表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一个或多个不同的数据类型 (诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点,等等)、状态(诸如, 作为要被执行的下一条指令的地址的指令指针)等等。物理寄存器组单元458被引退单元 454覆盖,以示出可实现寄存器重命名和无序执行的各种方式(例如,使用重排序缓冲器和 引退寄存器组;使用未来文件(futurefile)、历史缓冲器和引退寄存器组;使用寄存器映 射和寄存器池等)。通常,架构寄存器从处理器外部或从编程者的视角来看是可见的。这 些寄存器不限于任何已知的特定电路类型。各种不同类型的寄存器是合适的,只要它们能 够存储并提供本文所述的数据。合适寄存器的示例包括但不限于,专用物理寄存器、使用 寄存器重命名的动态分配的物理寄存器、以及专用物理寄存器和动态分配物理寄存器的组 合,等等。引退单元454和物理寄存器组单元458耦合至执行群集460。执行群集460包 括一个或多个执行单元462的集合以及一个或多个存储器访问单元464的集合。执行单元 462可执行各种操作(例如,移位、加法、减法、乘法)并可对各种数据类型(例如,标量浮 点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。尽管一些实施例可以包括专用于特定 功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单 元或多个执行单元。调度器单元456、物理寄存器组单元458和执行群集460被示出为可能 是复数个,因为某些实施例为某些数据/操作类型创建了多个单独流水线(例如,均具有各 自调度器单元、物理寄存器组单元和/或执行群集的标量整数流水线、标量浮点/紧缩整数 /紧缩浮点/向量整数/向量浮点流水线和/或存储器访问流水线;以及在单独的存储器 访问流水线的情况下,某些实施例被实现为仅仅该流水线的执行群集具有存储器访问单元 464)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以是无序 发布/执行,并且其余流水线可以是有序发布/执行。
[0107] 存储器访问单元464的集合耦合至存储器单元470,该存储器单元包括数据TLB单 元472,该数据TLB单元親合至高速缓存单元474,该高速缓存单元親合至第二级(L2)高速 缓存单元476。在一个示例性实施例中,存储器访问单元464可包括加载单元、存储地址单 元和存储数据单元,其中的每一个均親合至存储器单元470中的数据TLB单元472。L2高 速缓存单元476耦合至一个或多个其他层级的高速缓存,并最终耦合至主存储器。
[0108] 作为示例,示例性的寄存器重命名无序发布/执行核架构可按下列方式实现流水 线400 :1)指令取出器438执行取出和长度解码级402和404 ;2)解码单元440执行解码级 406 ;3)重命名/分配器单元452执行分配级408和重命名级410 ;4)调度器单元456执行 调度级412 ;5)物理寄存器组单元458和存储器单元470执行寄存器读取/存储器读取级 414 ;执行群集460实现执行级416 ;6)存储器单元470和物理寄存器组单元458执行写回 /存储器写入级418 ;7)各种单元可被牵涉在异常处理级422中;以及8)引退单元454和 物理寄存器组单元458执行提交级424。
[0109] 核490可支持一个或多个指令集(例如,x86指令集(具有增加了更新版本的一 些扩展)、加利福尼亚州桑尼威尔的MIPS技术公司的MIPS指令集、加利福尼亚州桑尼威尔 的ARM控股公司的ARM指令集(具有可选的附加扩展,诸如NEON))。
[0110] 应当理解,核可支持多线程操作(执行两个或更多个并行的操作或线程的集合), 并且可以按各种方式来完成该多线程化,各种方式包括时分多线程化、同步多线程化(其 中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其组 合(例如,时分取出和解码以及之后的同步多线程操作(例如,用Intel?超线程化技术))。
[0111] 尽管在无序执行的情境中描述了寄存器重命名,但应当理解,可以在有序架构中 使用寄存器重命名。虽然处理器的所示出的实施例也包括单独的指令和数据高速缓存单元 434/474以及共享的L2高速缓存单元476,但替代的实施例可具有用于指令和数据两者的 单个内部高速缓存,诸如例如第一级(L1)内部高速缓存、或多个层级的内部高速缓存。在 一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组 合。或者,所有高速缓存都可以在核和/或处理器的外部。
[0112] 图5是根据本发明的多个实施例的具有集成的存储器控制器和图形器件的单核 处理器和多核处理器500的框图。图5的实线框示出了处理器500,其具有单个核502A、系 统代理510、一组一个或多个总线控制器单元516,而可选附加的虚线框示出了替代的处理 器500,其具有多个核502A-N、位于系统代理单元510中的一组一个或多个集成存储器控制 器单元514的以及集成图形逻辑508。
[0113] 存储器层次结构包括核内的一个或多个高速缓存层级、一组一个或多个共享高速 缓存单元506、以及耦合至该组集成存储器控制器单元514的外部存储器(未示出)。该组 共享高速缓存单元506可包括一个或多个中级高速缓存,诸如,第二级(L2)、第三级(L3)、 第四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或以上的组合。虽然在一 个实施例中,基于环形的互连单元512将集成图形逻辑508、该组共享高速缓存单元506和 系统代理单元510进行互连,但替代的实施例也可使用任意数量的公知技术来互连这些单 J1_1〇
[0114] 在一些实施例中,一个或多个核502A-N能够进行多线程操作。系统代理510包括 协调和操作核502A-N的那些组件。系统代理单元510可包括例如功率控制单元(P⑶)和 显示单元。PCU可以是或可包括对核502A-N以及集成图形逻辑508的功率状态进行调节所 需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0115] 在架构和/或指令集方面,核502A-N可以是同构的或异构的。例如,核502A-N中 的一些可以是有序的,而另一些是无序的。作为另一个示例,核502A-N中的两个或更多能 够执行相同的指令集,而其他核能够执行该指令集中的仅子集或执行不同的指令集。
[0116] 处理器可以是通用处理器,诸如酷睿(CoreTM)i3、i5、i7、2Duo和Quad、至强 (Xeon?)、安腾(Itanium?)、XScale?或StrongARM?处理器,这些均可以从加利福尼亚圣 克拉拉市的英特尔公司获得。或者,处理器可以来自另一个公司,诸如来自ARM控股公司、 MIPS等。处理器可以是专用处理器,例如,网络或通信处理器、压缩引擎、图形处理器、协处 理器、嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器500可以是一 个或多个基板的一部分,和/或使用多种工艺技术(诸如,BiCM0S、CM0S、或NM0S)中的任意 技术被实现在一个或多个基板上。
[0117] 图6-8是适于包括处理器500的示例性系统,而图9是可包括502中的一个或多 个的示例性芯片上系统(SoC)。本领域已知的对膝上型计算机、台式机、手持PC、个人数字 助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器 (DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设 备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所 公开的处理器和/或其他执行逻辑的多种系统或电子设备一般都是合适的。
[0118] 现在参考图6,所示出的是根据本发明一个实施例的系统600的框图。系统600可 包括耦合至图形存储器控制器中枢(GMCH) 620的一个或多个处理器610和615。附加的处 理器615的可选性质在图6中通过虚线来表示。
[0119] 每个处理器610、615可以是处理器500的某个版本。然而,应当注意,集成图形逻 辑和集成存储器控制单元不太可能出现在处理器610和615中。图6示出GMCH620可耦 合至存储器640,该存储器640可以是例如动态随机存取存储器(DRAM)。对于至少一个实 施例,DRAM可以与非易失性高速缓存相关联。
[0120] GMCH620可以是芯片组或芯片组的部分。GMCH620可以与处理器610和615进 行通信,并控制处理器610、615与存储器640之间的交互。GMCH620还可担当处理器610、 615和系统600中的其他元件之间的加速总线接口。对于至少一个实施例,GMCH620经由 诸如前端总线(FSB)695之类的多点总线与处理器610和615进行通信。
[0121] 此外,GMCH620耦合至显示器645 (诸如平板显示器)。GMCH620可包括集成图 形加速器。GMCH620还耦合至输入/输出(I/O)控制器中枢(ICH) 650,该输入/输出(1/ 0)控制器中枢(ICH)650可用于将各种外围设备耦合至系统600。在图6的实施例中作为 示例示出了外部图形设备660以及另一外围设备670,该外部图形设备660可以是耦合至 ICH650的分立图形设备。
[0122] 替代地,系统600中还可存在附加的或不同的处理器。例如,附加处理器615可包 括与处理器610相同的附加处理器、与处理器610异类或不对称的附加处理器、加速器(例 如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理器。在物 理资源610和615之间会存在包括架构、微架构、热和功耗特征等的一系列品质度量方面的 各种差异。这些差异会有效显示为处理器610和615之间的不对称性和异类性。对于至少 一个实施例,各种处理器610和615可驻留在同一管芯封装中。
[0123] 现在参照图7,所示出的是根据本发明实施例的第二系统700的框图。如图7所 示,多处理器系统700是点对点互连系统,并且包括经由点对点互连750而被耦合的第一处 理器770和第二处理器780。处理器770和780中的每一个可以是处理器500的某个版本 (如处理器610、615中的一个或多个)。
[0124] 虽然仅以两个处理器770和780示出,但是应当理解,本发明的范围不限于此。在 其他实施例中,在给定处理器中可存在一个或多个附加处理器。
[0125] 处理器770和780被示出为分别包括集成存储器控制器单元772和782。处理器 770还包括作为其总线控制器单元的部分的点对点(P-P)接口 776和778 ;类似地,第二处 理器780包括P-P接口 786和788。处理器770和780可经由使用点对点(P-P)接口电路 778和788的P-P接口 750来交换信息。如图7所示,MC772和782将处理器耦合到各自 的存储器,即存储器732和存储器734,这些存储器可以是本地附连到各自处理器的主存储 器的部分。
[0126] 处理器770、780可各自经由使用点对点接口电路776、794、786和798的各个P-P 接口 752和754与芯片组790交换信息。芯片组790还可经由高性能图形
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1