用于执行多个乘法操作的方法和装置的制造方法

文档序号:9235256阅读:264来源:国知局
用于执行多个乘法操作的方法和装置的制造方法
【专利说明】用于执行多个乘法操作的方法和装置
[0001] 背景 发明领域
[0002] 本发明一般设及计算机处理器领域。更具体地说,本发明设及用于执行多个乘法 操作的方法和装置。
[0003] 相关巧术描巧
[0004] 指令集,或指令集架构(ISA)是设及编程的计算机架构的一部分,并包括原生数 据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、W及外部输入和输出 (I/O)。应该注意,术语"指令"在本文中一般是指宏指令一-即,提供给处理器供执行的指 令一-而不是作为由处理器的解码器解码宏指令产生的结果的微指令或微操作。
[0005] ISA与微架构不同,微架构是用于实现指令集的处理器设计技术的集合。具有不 同的微架构的处理器可共享共同的指令集。例如,INTEL;底奔腾四(Pentium 4)处理器、 Intel饭酷眷(Core?)处理器、W及来自加利福巧亚州桑巧威尔(Sunnyvale)的超微半导体 有限公司(Advanced Micro Devices, Inc.)的诸多处理器执行几乎相同版本的x86指令集 (在更新的版本中加入了一些扩展),但具有不同的内部设计。例如,ISA的相同寄存器架构 在不同的微架构中可使用已知的技术W不同方法来实现,包括专用物理寄存器、使用寄存 器重命名机制(诸如,使用寄存器别名表(RAT)、重排序缓冲器(R0B)、W及引退寄存器组) 的一个或多个动态分配物理寄存器。除非另作说明,短语寄存器架构、寄存器组W及寄存器 在本文中用于指代对软件/编程者W及对指令指定寄存器的方式可见的寄存器。在需要区 分的情况下,形容词"逻辑的"、"架构的",或"软件可见的"将用于指示寄存器架构中的寄存 器/寄存器组,而不同的形容词将用于指定给定微型架构中的寄存器(例如,物理寄存器、 重新排序缓冲器、引退寄存器、寄存器池)。
[0006] 指令集包括一个或多个指令格式。给定的指令格式定义多个字段(位的数目、位 的位置)W指定将要被执行的操作W及将要被执行的操作的操作数等等。通过指令模板 (或子格式)的定义来进一步分解一些指令格式。例如,给定指令格式的指令模板可被定义 为具有指令格式的字段(所包括的字段通常按照相同顺序,但是至少一些字段具有不同的 位位置,因为包括更少的字段)的不同子集,W及/或者被定义为具有通过不同方式来解释 的给定字段。使用给定的指令格式(并且如果经定义,则W该指令格式的一个给定的指令 模板)来表达给定的指令,并且该给定的指令指定操作和操作数。指令流是具体的指令序 列,其中,序列中的每条指令是按照指令格式(并且如果经定义,按照该指令格式的指令模 板中的一个给定的指令模板)的指令的发生。
[0007] 科学应用、金融应用、自动向量化通用应用、RMS(识别、挖掘和合成)应用W及视 觉和多媒体应用(诸如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频 处理)经常需要对大量数据项执行相同的操作(被称为"数据并行性")。单指令多数据 (SIMD)指的是使得处理器在多个数据项上执行一操作的一种类型的指令。SIMD技术尤其 适用于处理器中,该些处理器将寄存器中的诸个位化it)逻辑地划分成多个固定尺寸的数 据元素,每个数据元素表示单独的值。例如,64位寄存器中的诸个位可被指定为要作为四个 单独的16位数据元素而被操作的源操作数,每个数据元素表示单独的16位值。该数据类 型被称为紧缩数据类型或向量数据类型,并且该数据类型的操作数被称为紧缩数据操作数 或向量操作数。换句话说,紧缩数据项或向量指的是紧缩数据元素的序列,并且紧缩数据操 作数或向量操作数是SIMD指令(也称为"紧缩数据指令"或"向量指令")的源操作数或目 的地操作数。
[000引通过示例的方式,一种类型的SIMD指令指定了将要W纵向方式对两个源向量操 作数执行的单个向量操作,W生成具有相同尺寸的、具有相同数量的数据元素的、具有相同 数据元素顺序的目的地向量操作数(也被称为结果向量操作数)。源向量操作数中的数 据元素被称为源数据元素,而目的地向量操作数中的数据元素被称为目的地或结果数据元 素。该些源向量操作数具有相同的尺寸,并包含相同宽度的数据元素,因此它们包含相同数 量的数据元素。两个源向量操作数中的相同的位位置中的源数据元素形成数据元素的对 (也被称为对应的数据元素)。分别对该些源数据元素对中的每一对执行由该SIMD指令所 指定的操作,W生成匹配数量的结果数据元素,由此,每一对源数据元素都具有对应的结果 数据元素。由于操作是纵向的,并且由于结果向量操作数尺寸相同、具有相同数量的数据元 素、且结果数据元素W与源向量操作数相同的数据元素顺序来存储,因此,结果数据元素处 于与其对应的源数据元素对在源向量操作数中的位置相同的结果向量操作数的位位置处。 除此示例性类型的SIMD指令之外,还有各种其他类型的SIMD指令(例如,仅有一个或具有 多于两个的源向量操作数的SIMD指令;W水平方式操作的SIMD指令;生成不同尺寸的、具 有不同尺寸的数据元素的、和/或具有不同的数据元素顺序的结果向量操作数的SIMD指 令)。应该理解,术语目的地向量操作数(或目的地操作数)被定义为执行指令所指定的操 作的直接结果,包括将该目的地操作数存储在某位置(其是寄存器或在由该指令所指定的 存储器地址处),W便使该目的地向量操作数可作为源操作数由另一指令访问(通过由另 一指令指定该同一个位置)。
[0009]诸如由具有包括 x86、MMX?、流式 SIMD 扩展(SSE)、SSE2、SSE3、SSE4. 1 W及 SSE4. 2 指令的指令集的Intel液Core?处理器使用的技术之类的SIMD技术,在应用性能方面实现 了显著的改善(Core?和MMX?是位于加利福巧亚州Santa Clara的英特尔公司(Intel Corporation)的注册商标或商标。)。也已经设计并公布了被称为高级向量扩展(AVX) W 及使用VEX编码方案的附加SIMD扩展集。
[0010] 与本申请尤其相关的一条指令是乘法指令。高性能计算平台中的若干算法将若干 计算值相乘。通常,每个乘法操作需要执行一条指令。
【附图说明】
[0011] 结合W下附图,从W下【具体实施方式】中可获得对本发明更好的理解,其中:
[0012] 图1A是示出根据本发明的实施例的示例性有序取出、解码、引退流水线W及示例 性寄存器重命名的无序发布/执行流水线两者的框图;
[0013] 图1B是示出根据本发明的各实施例的要包括在处理器中的有序取出、解码、引退 核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
[0014] 图2是根据本发明的实施例的具有集成的存储器控制器和图形器件的单核处理 器和多核处理器的框图;
[0015] 图3示出根据本发明的一个实施例的系统的框图;
[0016] 图4示出根据本发明的实施例的第二系统的框图;
[0017] 图5示出根据本发明的实施例的第S系统的框图;
[001引图6示出了根据本发明的实施例的巧片上系统(SoC)的框图;
[0019] 图7示出根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图;
[0020] 图8示出可在其上使用本发明的实施例的处理器架构的一个实施例;
[0021] 图9A示出用于执行多个乘法操作的架构的一个实施例;
[0022] 图9B示出用于执行多个乘法操作的架构的另一实施例;
[0023] 图10示出用于执行多个乘法操作的方法的一个实施例;
[0024]图lla-b是示出根据本发明的实施例的通用向量友好指令格式及其指令模板的 框图;
[0025] 图12a-d是根据本发明的实施例的示例性专用向量友好指令格式的框图拟及
[0026] 图13是根据本发明的一个实施例的寄存器架构的框图。
【具体实施方式】
[0027] 在下面的描述中,出于说明目的,阐述了众多具体细节W便提供对W下描述的本 发明的实施例的全面理解。然而,对本领域的技术人员显而易见的是,可W在没有该些具体 细节中的一些细节的情况下实施本发明的实施例。在其他实例中,公知的结构和设备W框 图形式示出,W避免使本发明实施例的基本原理不清楚。
[002引 示例忡化理器架构巧撒据类巧
[0029] 图1A是示出根据本发明的各实施例的示例性有序取出、解码、引退流水线和示例 性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本发明的各实施例 的要包括在处理器中的有序取出、解码、引退核的示例性实施例和示例性的寄存器重命名 的无序发布/执行架构核的框图。图1A-B中的实线框示出了流水线和核的有序部分,而可 选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。
[0030] 在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配 级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、 执行级116、写回/存储器写入级118、异常处理级122和提交级124。
[0031] 图1B示出了包括禪合到执行引擎单元150的前端单元130的处理器核190,且 执行引擎单元和前端单元两者都禪合到存储器单元170。核190可W是精简指令集计算 巧ISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又 一选项,核190可W是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图 形处理器单元(GPGPU)核、或图形核等等。
[0032] 前端单元130包括禪合到指令高速缓存单元132的分支预测单元134,该指令高速 缓存单元禪合到指令转换后备缓冲器(TLB) 136,该指令转换后备缓冲器禪合到指令取出单 元138,指令取出单元禪合到解码单元140。解码单元140 (或解码器)可解码指令,并生成 从原始指令解码出的、或W其他方式反映原始指令的、或从原始指令导出的一个或多个微 操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各 种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列 (PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括(例如,在解码单元140 中或否则在前端单元130内的)微代码ROM或存储某些宏指令的微代码的其他介质。解码 单元140禪合至执行引擎单元150中的重命名/分配器单元152。
[0033] 执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元禪合至引 退单元154和一个或多个调度器单元156的集合。调度器单元156表示任何数目的不同调 度器,包括预留站、中央指令窗等。调度器单元156禪合到物理寄存器组单元158。每个物 理寄存器组单元158表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或 多种不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、 状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器 组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。该些寄存器单元 可W提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元158与引退 单元154重叠W示出可W用来实现寄存器重命名和无序执行的各种方式(例如,使用重新 排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器 映射和寄存器池等等)。引退单元154和物理寄存器组单元158禪合到执行群集160。执行 群集160包括一个或多个执行单元162的集合和一个或多个存储器访问单元164的集合。 执行单元162可W对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整型、向 量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可W包括专用于 特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执 行单元或多个执行单元。调度器单元156、物理寄存器组单元158和执行群集160被示为可 能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整型流 水线、标量浮点/紧缩整型/紧缩浮点/向量整型/向量浮点流水线,和/或各自具有其自 己的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线一一W及在分开 的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元164 的某些实施例)。还应当理解,在使用分开的流水线的情况下,该些流水线中的一个或多个 可W为无序发布/执行,并且其余流水线可W为有序发布/执行。
[0034] 存储器访问单元164的集合禪合到存储器单元170,该存储器单元包括禪合到数 据高速缓存单元174的数据TLB单元172,其中数据高速缓存单元禪合到二级(L2)高速缓 存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单元 和存储数据单元,其中的每一个均禪合至存储器单元170中的数据TLB单元172。指令高速 缓存单元134还禪合到存储器单元170中的第二级(L2)高速缓存单元176。L2高速缓存 单元176禪合到一个或多个其他级的高速缓存,并最终禪合到主存储器。
[0035] 作为示例,示例性寄存器重命名的、无序发布/执行核架构可W如下实现流水线 100 ;1)指令取出138执行取出和长度解码级102和104曲解码单元140
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1