当前位置: 首页 > 专利查询>英特尔公司专利>正文

具有独立进位链的加法指令制造技术

技术编号:10372997 阅读:144 留言:0更新日期:2014-08-28 14:57
提供了彼此之间没有数据依赖性的多个加法指令。第一加法指令将它的进位输出存储在标志寄存器的第一标志内,并且不修改标志寄存器内的第二标志。第二加法指令将它的进位输出存储在标志寄存器的第二标志内,并且不修改标志寄存器内的第一标志。

【技术实现步骤摘要】
【国外来华专利技术】具有独立进位链的加法指令
本专利技术的实施例一般涉及计算机处理器架构,更具体而言,涉及当被执行时导致特定结果的指令。相关技术的描述加法指令通常被包括在指令集架构(ISA)内。大量加法指令通常出现在乘法中。例如,公钥加密一般涉及需要多精度乘法的长整数运算。诸如模取幂之类的这些操作是高度计算密集的且涉及大量加法。负责设立企业的安全套接字层(SSL)事务的服务器可在短时间跨度内从企业客户机接收大量连接请求。每一个事务涉及包括大量整数乘法和加法的加密操作。低效的加法操作可减缓整体性能。【附图说明】在各个附图的图形中,本专利技术的各实施例是作为示例而不是显示说明的,在附图中,类似的参考编号表示类似的元件。应注意,在本公开中对“一”或“一个”实施例的不同引用不一定指相同实施例,且这种引用表示至少一个。此外,当参考一个实施例描述特定特征、结构或特性时,认为在本领域技术人员学识范围内,可以与其他实施例一起实施这样的特征、结构或特性,不论是否有明确描述。图1是具有含一个或多个加法指令的指令集的处理器的示例实施例的框图。图2示出包括加法操作的乘法操作的示例。图3示出包括加法指令的样本代码的示例。图4示出加法指令的并行执行的实施例。图5是具有执行单元的指令处理装置的示例实施例的框图,该执行单元可操作用于执行包含加法指令的示例实施例的指令。图6示出标志寄存器的实施例。图7是示出用于处理加法指令的方法的示例实施例的流程图。图8是根据本专利技术一个实施例的系统的框图。图9是根据本专利技术的实施例的第二系统的框图。图10是根据本专利技术的实施例的第三系统的框图。图11是根据本专利技术的实施例的芯片上系统(SoC)的框图。图12是根据本专利技术的实施例的具有集成的存储器控制器和图形器件的单核处理器和多核处理器的框图。图13是根据本专利技术的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令的框图。【具体实施方式】在下面的描述中,阐述了很多具体细节。然而,应当理解,本专利技术的各实施例可以在不具有这些具体细节的情况下得到实施。在其他实例中,公知的电路、结构和技术未被详细示出以免混淆对本描述的理解。在下面的描述中,阐述了很多具体细节。然而,应当理解,本专利技术的各实施例可以在不具有这些具体细节的情况下得到实施。在其他实例中,公知的电路、结构和技术未被详细示出以免混淆对本描述的理解。本专利技术的实施例提供了有效地加长整数的机制。特定地,本专利技术的实施例提供了与加法操作并行地有效地乘大量长整数的机制。图1是处理器100的示例实施例的框图。该处理器100可以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC)处理器、各种超长指令字(VLIW)处理器、其各种混合、或完全其他类型的处理器中的任何处理器。在一个或多个实施例中,处理器100可以是通用处理器(例如由美国加利福尼亚州圣克拉拉市的英特尔公司制造的类型的通用微处理器),尽管这不是必需的。替换地,指令处理处理装置可以是专用处理器。合适的专用处理器的示例包括但不限于,网络处理器、通信处理器、加密处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器(DSP)以及控制器(例如,微控制器),仅列举数例。处理器100具有指令集架构(ISA) 101。指令集架构101表示与编程相关的处理器100的架构的一部分指令集架构101通常包括本地指令、架构寄存器、数据类型、寻址模式、存储器架构、中断和异常处理以及处理器100的外部输入和输出(I/O)。指令集架构101与微架构不同,微架构通常表示选择用于实现指令集架构的特定处理器设计技术。带有不同的微架构的处理器可以共享共同的指令集架构。例如,加利福尼亚州圣克拉拉的英特尔公司的某些微处理器和加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(Advanced Micro Devices, Inc.)的某些微处理器使用本质上不同的内部微架构来实现x86指令集的类似部分。指令集架构101包括架构寄存器(例如,架构寄存器组)106。在一个实施例中,架构寄存器106包括通用(GP)寄存器、标志寄存器、向量寄存器、写掩码寄存器、标量浮点寄存器、以及其他寄存器。架构寄存器106表示板上处理器存储位置。架构寄存器106此处也可以被简称为寄存器。短语架构寄存器、寄存器组、以及寄存器在本文中用于表示对软件和/或编程器(例如,软件可见的)和/或由宏指令指定来标志操作数(operand)的寄存器,除非另外予以指定或清楚明显可知。这些寄存器106与给定微架构(例如,临时寄存器、重排序缓冲器、引退(retirement)寄存器等)中的其他非架构寄存器形成对比。所示的指令集架构101还包括由处理器100支持的指令集102。指令集102包括若干不同类型的指令。指令集102的这些指令表示宏指令(例如,提供给处理器100以供执行的指令),与微指令或微操作(例如,从处理器100的解码器129解码宏指令得到的)不同。在一个实施例中,指令集102包括一个或多个加法指令103 (如,ADCX指令104和ADOX指令105),这些指令可操作来造成或使得处理器100将两个操作数(如,两个四字(Qwords)、两个双字(Dwords)或具有其他数据宽度的两个操作数)加起来。ADCX104和AD0X105指令使用两个独立的进位链且因此一旦它们各自数据输入可用就可并行地指令。处理器100还包括执行逻辑109。执行逻辑109可操作用于执行或处理指令集102的指令。执行逻辑109可包括执行单元、功能单元、算术逻辑单元、逻辑单元、算术单元等。处理器100还包括解码器,用以将宏指令解码成微指令或微操作以供执行逻辑109执行。为了进一步说明加法指令103的实施例,考虑其中需要加法的示例性场景可能是有帮助的。图2是示出计算表达式(S[7:0] = AixB[7:0]+S[7:0])的示例性场景的图,其中Ai是四字(Qword),且每一AB1^PSn(η = O, I,…7)也是四字。每一个四字有64位宽。在图2中,位于顶部的S[7:0](表示为230)是初始的部分和,且位于底部的S[7:0](表示为240)是作为结果的部分和。对于每一个乘法操作210 (AiXBn, η = O, I,…7),生成(64x64)=128位的乘积。每一个乘积被表示为(Hin=Lon),如图的对角线中的条目所示,其中叫是高阶部分(即,最高有效的一半)且Lon是低阶部分(即,最低有效的一半)。以最少数量的微操作(μ ops)和延时,可将这个乘积加到部分和sn。将这个乘积加到部分和的一个方式花费两个加法操作,每一个加法操作使用一个独立的进位链:Sn = Sn+Lon (式 I),Sn = Sn+Hin_i (式 2)。假设S[7:0] —开始全都为零。在由图2中的垂直虚线所示的示例性加法操作220之后,加法操作等效于:S0 = S0+Lo0, S1 = Si+LOi+Hig, S2 = SjLofHi1, S3 = S3+Lo3+Hi2 等。在图2的示例中,Ai与Bn相乘,η = O, I,…7,其中Ai可以是第一长整数A的一部分,且每一个Bn可以是第二长整数B的一部分。该乘法使用Sn,n = O, I,本文档来自技高网...
具有独立进位链的加法指令

【技术保护点】
一种方法,包括:接收第一加法指令;接收第二加法指令;执行所述第一加法指令和所述第二加法指令,所述第一加法指令和所述第二加法指令之间没有数据依赖性;将所述第一加法指令的第一进位输出存储在标志寄存器的第一标志中,并且不修改标志寄存器中的第二标志;以及将所述第二加法指令的第二进位输出存储在所述标志寄存器的所述第二标志中,并且不修改所述第一标志。

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括: 接收第一加法指令; 接收第二加法指令; 执行所述第一加法指令和所述第二加法指令,所述第一加法指令和所述第二加法指令之间没有数据依赖性; 将所述第一加法指令的第一进位输出存储在标志寄存器的第一标志中,并且不修改标志寄存器中的第二标志;以及 将所述第二加法指令的第二进位输出存储在所述标志寄存器的所述第二标志中,并且不修改所述第一标志。2.如权利要求1所述的方法,其特征在于,还包括: 接收乘法指令来将第一因数和第二因数相乘;且 将所述第一因数和所述第二因数相乘来产生乘积,所述乘积包括最低有效的一半和最高有效的一半,且所述最低有效的一半是所述第一加法指令的源操作数,所述最高有效的一半是所述第二加法指令的源操作数。3.如权利要求2所述的方法,其特征在于,还包括: 接收所述乘法指令、所述第一加法指令、和所述第二加法指令作为三个连续指令。4.如权利要求1所述的方法,其特征在于,所述第一加法指令读取所述第一标志以获得进位输入,且所述第二加法指令读取所述第二标志以获得进位输入。5.如权利要求4所述的方法,其特征在于,所述第一标志是进位标志与溢出标志中的一个,且所述第二标志是所述进位标志与溢出标志中的另一个。6.如权利要求1所述的方法,其特征在于,还包括: 接收第三加法指令,所述第三加法指令读取所述标志寄存器的第三标志作为进位输入;且 将第三进位输出存储到所述第三标志中,并且不修改所述标志寄存器中的所述第一标志、所述第二标志、和其他标志。7.如权利要求1所述的方法,其特征在于,还包括: 接收减法指令,所述减法指令读取所述标志寄存器的第三标志作为借位输入;且 将借位输出存储到所述第三标志中,并且不修改所述标志寄存器中的所述第一标志、所述第二标志、和其他标志。8.一种装置,包括: 包括至少第一标志和第二标志的标志寄存器; 耦合至所述标志寄存器的执行逻辑,用于执行所述第一加法指令和所述第二加法指令、将所述第一加法指令的第一进位输出存储在所述第一标志中并且不修改所述第二标志、以及将所述第二加法指令的第二进位输出存储在所述第二标志中并且不修改所述第一标志,第一加法指令和第二加法指令之间没有数据依赖性。9.如权利要求8所述的装置,其特征在于,所述执行逻辑将第一因数和第二因数相乘且从而藉此产生乘积,所述乘积包括最低有效的一半和最高有效的一半,且所述最低有效的一半是所述第一加法指令的源操作数,且所述最高有效的一半是所述第二加法指令的源操作数。10.如权利要求9所述的装置,其特征在于,所述执行逻辑用于接收所述乘法指令、所述第一加法指令、和所述第二加法指令作为三个连续指令。11.如权利要求8所述的装置,其特征在于,所述第一加法指令读取所述第一标志以获得...

【专利技术属性】
技术研发人员:V·戈帕尔J·D·吉尔福德G·M·沃尔里齐W·K·费格哈利E·奥兹图科M·G·迪克森S·P·米莱克斯M·C·梅尔腾李瞳B·L·托尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1