版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
US2003037080A1,2003.02.20US2005027772A1,2005.02.03US5996066A,1999.11.30本申请公开了用于处理平方根倒数操作的装置和方法。用于执行平方根倒数的装置和方于对平方根倒数指令解码以生成经解码的平方于使用紧缩输入数据元素的第一部分作为包含多个系数集合的数据结构的索引以从多个集合中标识第一系数集合,平方根倒数执行电路用分的组合来生成紧缩输入数据元素的平方根倒2执行电路,用于执行所述经解码的指令,所述执行电路用于使素的第一部分作为包含多个系数集合的数据结构的索引以从所述多个系数集合中标识第所述执行电路用于:通过使用所述系数与所述紧缩输入数据元素的对误差值来估计所述平方根倒数,其中使用所述相对误差值来估计所述平方根倒数包括:2.如权利要求1所述的处理器,其特征在于,所述紧缩输入数据元素包括双字数据元4.如权利要求3所述的处理器,其特征在于,所述多项式函数包括c3*R3+c2*R2+c1*R+所述第一系数集合中的一个或多个与所述紧缩输入数据元素的所述第二部分或从所述紧于将所述临时乘积相加以生成作为紧缩数据元素存储在所述目的地执行经解码的指令,其中执行的步骤包括使用源寄存器的紧缩通过使用所述系数与所述紧缩输入数据元素的第二部分的组合来生成所述紧缩输入3数包括:确定值c0+c1*R+(c0+c1*R)*eps*(pc1+pc2*12.如权利要求11所述的方法,其特征在于,所述多项式函数包括c3*R3+c2*R2+c1*R+集合中的一个或多个与所述紧缩输入数据元素的所述第二部分或从所述紧缩输入数据元将一个或多个附加值加到所述临时乘积以生成执行所述经解码的指令,其中执行的步骤包括使用所述紧缩输入数作为包含多个系数集合的数据结构的索引以从所述多个系数集合中标识通过使用所述系数与所述紧缩输入数据元素的第二部分的组合来生成所述紧缩输入数据元素的平方根倒数,并且将所述平方根倒数存储在目的地寄存器中作为结果数据元根倒数,其中使用所述相对误差值来估计所述平方根倒数包括:确定值c0+c1*R+(c0+c1*R)*eps*(pc1+pc2*eps+pc3*e的所述第二部分作为多项式函数的输入来求4而不是微指令或微操作——即,该微指令或微操作是处理器的解码器解码宏指令的结果。微指令或微操作可以被配置成用于指示处理器上的执行单元执行操作以实现与宏指令相微架构的处理器可以共享公共指令集。例如,英特尔9奔腾4(Pentium4)处理器、酷睿TM(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的多个处理器实现几乎相同版本的x86指存器架构在不同的微架构中可使用公知的技术以不同方法来实现,包括专用物理寄存器、[0004]乘法-累加是常见的计算两个数的乘积并将该乘积加到累加值的数字信号处理操[0006]图1A和1B是图示根据本发明的实施例的通用向量友好指令格式及其指令模板的5[0013]图6是根据本发明的实施例的具有集成存储器控制器和图形器件的单核处理器和为具有该指令格式的字段(所包括的字段通常按照相同顺序,但是至少一些字段具有不同定该操作码的操作码字段和用于选择操作数(源1/目的地以及源2)的操作数字段;并且该ADD指令在指令流中出现将使得在操作数字段中具有选择特定操作数的特6[0032]图1A-图1B是图示根据本发明的实施例的通用向量友好指令格式及其指令模板的而图1B是图示根据本发明的实施例的通用向量友好指令格式及其B类指令模板的框图。具操作数长度(或尺寸)与32位(4字节)或64量操作数长度(或尺寸)与16位(2字节)或8位(1字节)数据元素宽度(或尺寸);32字节向量向量操作数尺寸(例如,256字节向量操作数)与更大、更小或不同的数据元素宽度(例如,以及无存储器访问的写掩码控制的vsize型操作117的指令模板;以及2)在存储器访问120[0035]通用向量友好指令格式100包括以下列出的按照在图1A-1B中图示的顺序的如下[0036]格式字段140——该字段中的特定值(指令格式标识符值)唯一地标识向量友好指[0038]寄存器索引字段144——其内容直接或者通过地址生成来指定源或目的地操作数在寄存器中或者在存储器中的位置。这些字段包括足够数量的位以从PxQ(例如,32x512、源寄存器和一个目的地寄存器,但是替代实施例可支持更多或更少的源和目的地寄存器[0039]修饰符(modifier)字段146——其内容将指定存储器访问的以通用向量指令格式7访问105的指令模板与存储器访问120的指令模板之间进行区分。存储器访问操作读取和/[0040]扩充操作字段150——其内容区分除基础操作以外还要执行各种不同操作中的哪[0043]位移因数字段162B(注意,位移字段162A直接在位移因数字段162B上的并置指示使用一个或另一个)——其内容用作地址生成的一部分;它指定将按比例缩放存储器访问器硬件在运行时基于完整操作码字段174(稍后在本文中描述)和数据操纵字段154C确定。位移字段162A和位移因数字段162B不用于无存储器访问105的指令模板和/或不同的实施[0044]数据元素宽度字段164——其内容区分将使用多个数据元素宽度中的哪一个(在[0045]写掩码字段170——其内容逐数据元素位置地控制目的地向量操作数中的数据元辑等。尽管描述了其中写掩码字段170的内容选择了多个写掩码寄存器中的包含要使用的写掩码的一个写掩码寄存器(并且由此,写掩码字段170的内容间接地标识要执行的掩蔽)的本发明的实施例,但是替代实施例替代地或附加地允许掩码写字段170的内容直接指定8[0046]立即数字段172——其内容允许对立即数的指定。该字段在实现不支持立即数的问的数据变换型操作115的指令模板分别指定舍入152A.1和数据变换152A.2)的RS字段[0051]在无存储器访问的完全舍入控制型操作110的指令模板中,β字段154被解释为其段154A包括抑制所有浮点异常(SAE)字段156和舍入操作控制字段158,但是替代实施例可变舍入模式。在其中处理器包括用于指定舍入模式的控制寄存器的本发明的一个实施例[0055]在无存储器访问的数据变换型操作115的指令模板中,β字段154被解释为数据变[0056]在A类存储器访问120的指令模板的情况下,α字段152被解释为驱逐提示字段令模板和存储器访问非时效性130的指令模板分别指定时效性的152B.1和非时效性的152B.2),而β字段154被解释为数据操纵字段154C,其内容区分要执行多个数据[0057]向量存储器指令使用转换支持来执行来自存储器的向量加载以及向存储器的向量存储。如同寻常的向量指令,向量存储器指令以数据元素式的方式从/向存储器传输数9[0059]时效性的数据是可能足够快地被重新使用以从高速缓存[0061]非时效性的数据是不太可能足够快地被重新使用以从第一级高速缓存中的高速控制部分舍入控制类型操作112的指令模板和无存储器访问的写掩码控制VSIZE型操作117[0065]在无存储器访问的写掩码控制部分舍入控制型操作110的指令模板中,β字段154的其余部分被解释为舍入操作字段159A,并且禁用异常事件报告(给定的指令不报告任何[0066]舍入操作控制字段159A——正如舍入操作控制字段158,其内容区分要执行一组分被解释为向量长度字段159B,其内容区分要执行多个数据向量长度中的哪一个(例如,操作字段142和数据元素宽度字段164。尽管示出了其中完整操作码字段174包括所有这些[0070]扩充操作字段150、数据元素宽度字段164和写掩码字段170允许逐指令地以通用吐量)计算的核可仅支持A类,并且旨在用于通用计算和图形和/或科学(吞吐量)计算两者类,而通用核中的一个或多个可以是具有旨在用于通用计算的仅支持B类的乱序执行和寄[0074]VEX编码允许指令具有多于两个的操作数,并且允许SIMD向量寄存器比28位长。位[7-5])由VEX.R位字段(VEX字节1,位[7]–R)、VEX.X位字段(VEX字节1,位[6]–X)以及有两个或两个以上源操作数的指令有效;2)VEX.vvvv对针对某些向量位移以1补码的形式[0077]实操作码字段230(字节3)还被称为操作码字节。操作码的部分在该字段中被指操作数(Rrrr中的rrr)进行编码;或者被视为操作码扩展且不用于对任何指令操作数进行SS252(位[7-6])。先前已经针对寄存器索引Xxxx和Bbbb参考了SIB.xxx254(位[5-3])和[0082]图3是根据本发明的一个实施例的寄存器架构300的框图器的较低阶256个位覆盖在寄存器ymm0-15上。较低的6个zmm寄存器的较低阶128个位(ymm寄存器的较低阶128个位)覆盖在寄存器xm器与现有的x86寻址模式一起使用来寻址存储器操作数。这些寄存器通过名称RAX、RBX、[0084]标量浮点栈寄存器堆(x87栈)345,在其上面重叠了MMX紧缩整数平坦寄存器堆350——在所图示的实施例中,x87栈是用于使用x87指令集扩展来对32/64/80位浮点数据MMX和XMM寄存器之间执行的一些操作保[0089]图4A是图示根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线的框图。图4B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核的框[0092]前端单元430包括分支预测单元432,该分支预测单元432耦合到指令高速缓存单冲器436耦合到指令取出单元438,该指令取出单元438耦合到解码单元440。解码单元440490包括存储用于某些宏指令的微代码的微代码ROM或其他介质(例如,在解码单元440中,或以其他方式在前端单元430内)。解码单元440耦合到执行引擎单元450中的重命名/分配[0093]执行引擎单元450包括重命名/分配器单元452,该重命名/分配器单元452耦合到引退单元454和一个或多个调度器单元的集合456。(多个)调度器单元456表示任何数量的集群460包括一个或多个执行单元的集合462以及一个或多个存储器访问单元的集合464。或各自具有其自身的调度器单元、(多个)物理寄存器堆单元和/或执行集群的存储器访问元472。指令高速缓存单元434还耦合到存储器单元470中的第二级(L2)高速缓存单元476。[0095]作为示例,示例性寄存器重命名的乱序发布/执行核架构可如下所述地实现流水重命名/分配器单元452执行分配级408和重命名级级412;5)(多个)物理寄存器堆单元458和存储器单元470执行寄存器读取/存储器读取级尔市的ARM控股公司的ARM指令集(具有诸如NEON的任选的附加扩展)),其中包括本文中描个物理核为物理核正在同时多线程化的线程中的每一个线程提供逻辑核)、或其组合(例一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组[0101]图5A是根据本发明的实施例的单个处理器核以及它至管芯上互连网络502的连接向量单元510使用分开的寄存器集合(分别为标量寄存器512和向量寄存器514),并且在这发明的替代实施例可以使用不同的方法(例如,使用单个寄存器集合或包括允许数据在这[0102]L2高速缓存的本地子集504是全局L2高速缓存的一部分,该全局L2高速缓存被划高速缓存的本地子集504的直接访问路径。由处理器核读取的数据被存储在其L2高速缓存子集504中,并且可以与其他处理器核访问其自身的本地L2高速缓存子集并行地被快速访高速缓存504的L1数据高速缓存506A部分,以及关于向量单元510和向量寄存器514的更多或NMOS)中的任何技术被实现在一个或多个速缓存单元的集合606、以及耦合到集成存储器控制器单元的集合614的外部存储器(未示和操作核602A-N的那些部件。系统代理单元610可包括例如功率控制单元(PCU)和显示单元。PCU可以是对核602A-N以及集成图形逻辑608的功率状态进行调节所需的逻辑和部件,含如本文中所公开的处理器和/或其他执行逻辑的各种各样的系统或电子设备一般都是合器中枢720包括图形存储器控制器中枢(GMCH)790和输入/输出中枢(IOH)750(其可以在分控制器中的一个或这两者被集成在(如本文中所描述的)处理器内,存储器740和协处理器些指令内的可以是协处理器指令。处理器710将这些协处理器指令识别为具有应当由附连合的第一处理器870和第二处理器880。处理器870和880中的每一个都可以是处理器600的[0119]处理器870和880示出为分别包括集成存储器控制器(IMC)单元872和882。处理器理器880包括P-P接口886和888。处理器870、880可以经由使用点对点(P-P)接口电路878、可以是外围部件互连(PCI)总线或诸如PCI快速总线或另一I/O互连总线之类的总线,但是列或任何其他处理器的一个或多个附加处理器815耦合到第一总线816。在一个实施例中,第二总线820可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线[0130]至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令[0131]此类机器可读存储介质可以包括但不限于通过机器或设备制造或形成的制品的(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的随机存取存储器[0135]图11是根据本发明的实施例的对照使用软件指令转换器将源指令集中的二进制有至少一个第一指令集核的处理器1116表示通过兼容地执行或以其他方式执行以下各项来执行与具有至少一个x86指令集核英特尔处理器基本相同的功能的任何处理器:1)英特理器上运行以便取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果的应用或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替任何其他过程来表示允许不具有第一指令集处理器或核的处理器或其他电子设备执行第体而言,一个实施例包括具有八个16x16位乘法器和两个64位累加器的乘法-累加(MAC)架后处理的SSE/SSE2/AVX指令中的一些与DSPISA一起使用。具有存储器操作数的VEX编码的[0140]1)具有多于16位的Q31数据类型,用于要求模数转换(ADC)和数模转换(DAC)的信器1255包括用于同时执行多个指令线程的多个核0-N。所图示的实施例包括解码器1230内了单个核(核0)的细节,但是将会理解,处理器1255的其他核中的每一个可包括类似的组明的基本原理不限于任何特定的掩码寄存器尺[0148]每个核0-N可包括根据所指定的高速缓存管理策略用于高速缓存指令和数据的专的高速缓存行的粒度被管理。该示例性实施例的每个核具有用于从主存储器1200和/或共度的指令转换后备缓冲器(ITLB)1204;用于推测地预测指令分支地址的分支预测单元[0149]如所提到,解码单元1230包括用于将本文中所描述的DSP指令解码为微操作或[0151]图13图示用于示例性源寄存器和/或目的地寄存器(SRCx/DESTx)的示例性数据元[0152]图14图示用于执行各种不同的DSP指令的示例性架构,包括分数倒数和平方根倒和/或SRC1402中。乘法器的集合1405将SRC1401中的所选择的所选择的紧缩数据元素相乘。可以基于被执行的特定DSP指令为乘法选择不同数据元素尺寸以及紧缩数据元素的不同组合。加法器网络1410-1411然后可以根据指令将不同组合中[0153]取决于指令,累加器1420-1421可以将所选择的由乘法器1405和/或加法器网络[0160]本发明的一个实施例包括用于确定无符号字的倒数的第一指令和用于确定无符[0164]图15图示根据以上规范的用于执行分数倒数指令y=1/x的示例性执行电路124图15中的执行电路可以包括来自图14的DSP架构的组件并且/或者可以使用不同的执行电乘以R3[0166]在一个实施例中,牛顿-拉普森逻辑/电路1510应用牛顿-拉普森近似技术以大约计算也是y=1/x,其中输入x以无符号Q0.16格式,并且因此缩放216。x范围在[0.5,1]或缩数据目的地操作数的字段。在1602处,对该倒数指令解码以生成经解码的倒数指令(例使用输入数据的第一部分作为索引值(如下文详细描述的)来执行置换指令以执行查找操[0174]一旦标识系数,对输入数据的第二部分(R)和/或系数执行乘法以确定临时值c3*2和RMASK和NEG_MASK(即,初始化为0xffffffff),也置位变量1(初始化为xmm2/m128将输入值X从xmm2寄存器(或128位存储器位置)移动到临时[0288]指令向量AND(与)指令vandps然后根据倒数计算的要求来执行存储在fmtp0中的的地均设置为ftmp6的情况下执行向量AND指令vpanddd以调[0289]然后执行右移紧缩数据指令vpsrld以将分数值的两个前导位与ftmp0隔离。具体[0293]vpermilps置换指令然后使用ftmp1中的索引值(包括b29和b30或输入值)以从ftmp5和ftmp3分别选择特定的c3和c1紧[0300]在一个实施例中,混合指令然后可以用于将来自这两个乘法的结果组合到一个[0309]通过使用上文所讨论的双乘法指令、使用ftmp6中的源数据的不同分量来确定值[0315]在一个实施例中,下列指令序列将系数数据从c2和c0分别移动到ftmp4和ftmp2指令vpsubdftmp2,ftmp2,ftmp3来确定值(c[0321]在一个实施例中,然后经由双乘法操作vpmuludqftmp7,ftmp6,ftmp4和vpmuludhhqftmp6,ftmp6,ftmp4来确定值(c2-c3*R)*R2*263,并且由右移和混合操作vpsrlqftmp7,ftmp7,32和vpblendwftmp6,ftmp6,ftmp7,0x33确定值(c2-c3*R)*R2*231。利用加法指令vpadddftmp6,ftmp6,ftmp2来确定值(c0-c1*R)*231+(c2-c[0325]通过双乘法指令vpmuludqftmp1,ftmp0,ftmp6和vpmuludhhqftmp5,ftmp0,[0333]混合指令vpblendw然后将来自ftmp4和ftmp2的所选择的数据元素混合并且将它[0335]vpsrad指令然后使用[0338]具体而言,通过使用来自ftmp6和ftmp3的值来使用ANDNOT(与非)指令并且将结[0345]然后通过将来自ftmp3的元素与ftmp6相加并且将结果存储在ftmp6中来确定最终=1/x,其中输入x以无符号Q0.16格式,并且因此缩放216。x范围在[0.5,1]或[0x8000,nn[0361]本发明的一个实施例包括用于对无符号双字执行平方根倒数的第一指令和用于[0362]第一指令的一个实施例表示为VPRSQRTUFDxmm1,xmm2/m128,其对存储在xmm2/m128中的双字值取平方根倒数并且将倒数存储在xmm1中。第二指令的一个实施例表示为乘法器的集合1405将SRC1401中的所选择的紧缩数据元素与SRC2中的所选择的紧缩数据元素相乘。可以基于被执行的特定DSP指令为乘法选择不同数据元素尺寸以及紧缩数据元素的不同组合。加法器网络1410-1411然后可以根据指令将不同组合中的乘法的所得的乘[0364]取决于指令,累加器1420-1421可以将所选择的由乘法器1405和/或加法器网络[0365]可以根据被执行的指令执行各种其他操作,诸如对紧缩数据元素左移/右移、提储在未示出的临时寄存器或存储器位置中。这些临时存储位置中的一些在下文中使用[0369]图17图示根据以上规范的用于执行平方根倒数指令y=1/sqrt(x)的示例性执行+pc2*eps+pc3*eps2。乘法器1405使用该值来执行操作RS*eps*(pc1+pc2*eps+pc3*eps2)并16的字值0xFFFF]的范围中,并且结果y是无符号Q1.15值、缩放215。y值在范围[1,2]或[0x8000,3+c2*R2+c1*R+可以对在解码级期间生成的微操作排队并且调度以供在执行电路的多(对于双字)和输入数据的第二部分(R)来执行乘法和加法以为双字确定RS*eps*(pc1+pc2*eps+pc3*eps2)或者为字确定c3*R3+c2*R2+c表示eps*(pc1+pc2*eps+pc3*eps2)。初始地将最终结果RS+RS*eps*(pc1+pc2*eps+pc3*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年市场营销战略实战模拟练习题
- 2026年林业局林业有害生物防治岗面试题
- 2026年社会心理现象分析与引导策略题
- 2026年海上风电运维工程师面试题
- 2026年消防控制室设备识别与日常巡检要点测试题
- 天津中考:生物重点基础知识点总结
- 北京市怀柔区政务服务和数据管理局招聘行政辅助人员13人笔试备考题库及答案解析
- 湖南轨道交通控股集团有限公司2026年春季校园招聘28人笔试模拟试题及答案解析
- 2026重庆市铜梁区市场监督管理局招聘食品药品监管公益性岗位人员1人考试备考题库及答案解析
- 2026年甘肃省金昌市金川区招聘托幼机构聘任制工作人员130人笔试参考题库及答案解析
- 2026“才聚齐鲁成就未来”山东省征信有限公司社会招聘18人备考题库【含答案详解】
- 2025-2030中国全断面隧道掘进机(TBM)发展现状调研及前景趋势洞察报告
- 2026年中国民航信息集团工作人员招聘考试笔试试题(含答案)
- 四川省成都市高2026年中考模拟物理试题八套附答案
- GB/T 47258-2026气瓶阀门防护帽和防护罩设计、制造与试验
- 2025年杭州市西湖区辅警考试公安基础知识考试真题库及答案
- 2026平安银行石家庄分行橙光实习生招聘考试参考试题及答案解析
- 2026年商丘职业技术学院单招职业适应性测试题库含答案详解(能力提升)
- 品质管理人员考核制度
- 2026年学校教职工安全责任与应急能力提升培训
- DB37T5134-2025海绵城市建设工程施工与验收标准
评论
0/150
提交评论