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

用于执行点积运算的指令和逻辑制造技术

技术编号:17363443 阅读:50 留言:0更新日期:2018-02-28 13:20
本发明专利技术涉及一种用于执行点积运算的指令和逻辑。本发明专利技术提供了用于执行点积操作的方法、装置和程序部件。在一个实施例中,装置包括执行第一指令的执行资源。响应第一指令,所述执行资源将等于至少两个操作数的点积的结果值存储到某个存储单元中。

Instructions and logic used to perform point product operations

The invention relates to an instruction and logic used to perform point product operations. The invention provides a method, a device, and a program component for executing point product operations. In one embodiment, the device includes an execution resource that executes the first instruction. In response to the first instruction, the execution resource will store the result value of the point product of at least two operands into a storage unit.

【技术实现步骤摘要】
用于执行点积运算的指令和逻辑本申请是分案申请,其母案申请的专利技术名称是“用于执行点积运算的指令和逻辑”,其母案申请的申请日是2007年9月20日,其母案申请的申请号是:200710180647.7。
本专利技术涉及执行数学运算的处理装置及相关软件和软件序列的领域。
技术介绍
计算机系统已经越来越深入我们的社会。计算机的处理能力已经提高了各种职业的工人的效率和生产力。由于购买和拥有计算机的费用持续下降,所以越来越多的消费者能够利用更新、更快的机器。此外,许多人由于使用自由而乐于使用笔记本电脑。移动计算机使用户可在离开办公室或旅行时轻松地传输他们的数据以及利用所述移动计算机进行工作。这种情况在营销人员、公司管理人员甚至学生中是常见的。随着处理器技术的进步,还产生了更新的软件代码来在具有这些处理器的机器上运行。用户一般预期并要求来自他们的计算机的更高性能,而不管所使用的软件类型。从处理器内实际执行的指令和操作的种类中可能产生一个这样的问题。根据操作的复杂度和/或所需电路的类型,某些类型的操作需要更多时间来完成。这提供了优化在处理器内部执行某些复杂操作的方式的机会。十多年来,媒体应用推动了微处理器的发展。实际上,媒体应用推动了近年来的大多数计算升级。这些升级主要在消费者方面发生,但是,为了娱乐性增强的教育和通信目的,在企业方面也看到显著的进步。然而,未来的媒体应用需要更高的计算要求。因此,将来的个人计算体验在视听效果方面将更为丰富,并且更容易使用,更重要的是,计算将与通信融合。因此,图像的显示以及统称为内容的音频和视频数据的回放已经逐渐成为当前计算设备的流行应用。滤波和卷积操作是对内容数据、如图像音频和视频数据执行的最常见操作的一部分。这类操作是计算密集的,但是提供可通过采用各种数据存储设备(如单指令多数据(SIMD)寄存器)的有效实现来利用的高级数据并行性。多个当前的体系结构还需要多个操作、指令或子指令(通常称作“微操作”或“μop”)来对多个操作数执行各种数学运算,由此减小吞吐量并增加执行数学运算所需的时钟周期数量。例如,可能需要由多个指令组成的指令序列来执行产生点积所必需的一个或多个运算,包括将由处理装置、系统或计算机程序内的各种数据类型所表示的两个或两个以上数值之积相加。但是,这类现有技术可能需要许多处理周期,并且可能使处理器或系统消耗不必要的功率以产生点积。此外,一些现有技术可能在可进行操作的操作数的数据类型方面受到限制。
技术实现思路
根据本专利技术的一个方面,提供了一种已在其中存储了指令的机器可读介质,所述指令在由机器执行时,使所述机器执行包括以下步骤的方法:确定各具有第一数据类型的多个打包值的至少两个操作数的点积结果;存储所述点积结果。根据本专利技术的另一方面,提供了一种装置,包括:第一逻辑,对第一数据类型的至少两个打包操作数执行单指令多数据点积指令。根据本专利技术的又一方面,提供了一种系统,包括:第一存储器,存储单指令多数据点积指令;处理器,耦合到所述第一存储器以执行所述单指令多数据点积指令。根据本专利技术的再一方面,提供了一种方法,包括:将第一打包操作数的第一数据元素与第二打包操作数的第一数据元素相乘,以产生第一乘积;将所述第一打包操作数的第二数据元素与所述第二打包操作数的第二数据元素相乘,以产生第二乘积;将所述第一乘积与所述第二乘积相加,以产生点积结果。此外,本专利技术还提供了一种处理器,包括:源寄存器,存储包括第一数据值和第二数据值的第一打包操作数;目标寄存器,存储包括第三数据值和第四数据值的第二打包操作数;根据所述点积指令所指示的控制值来执行单指令多数据点积指令的逻辑,所述逻辑包括将所述第一数据值和第三数据值相乘以产生第一乘积的第一乘法器、将所述第二数据值和第四数据值相乘以产生第二乘积的第二乘法器,所述逻辑还包括将所述第一乘积和第二乘积相加以产生至少一个和数的至少一个加法器。附图说明通过附图、作为实例而非限制地来说明本专利技术:图1A是根据本专利技术的一个实施例采用处理器组成的计算机系统的框图,所述处理器包括执行点积操作的指令的执行单元;图1B是根据本专利技术的一个备选实施例的另一个示范性计算机系统的框图;图1C是根据本专利技术的另一个备选实施例的再一个示范性计算机系统的框图;图2是根据本专利技术的一个实施例的处理器的微体系结构的框图,所述处理器包括执行点积操作的逻辑电路;图3A示出根据本专利技术的一个实施例的多媒体寄存器中的各种打包(packed)数据类型表示;图3B示出根据一备选实施例的打包数据类型;图3C示出根据本专利技术的一个实施例的多媒体寄存器中的各种有符号和无符号打包数据类型表示;图3D示出一种操作编码(操作码)格式的一个实施例;图3E示出一种备选操作编码(操作码)格式;图3F示出又一种备选操作编码格式;图4是根据本专利技术对打包数据操作数执行点积操作的逻辑(logic)的一个实施例的框图;图5A是根据本专利技术的一个实施例对单精度打包数据操作数执行点积操作的逻辑的框图;图5B是根据本专利技术的一个实施例对双精度打包数据操作数执行点积操作的逻辑的框图;图6A是根据本专利技术的一个实施例用于执行点积操作的电路的框图;图6B是根据本专利技术的另一个实施例用于执行点积操作的电路的框图;图7是根据一个实施例对数据进行打包符号操作的示意图。图7A是根据一个实施例可通过执行DPPS指令来执行的操作的伪码表示;图7B是根据一个实施例可通过执行DPPD指令来执行的操作的伪码表示。具体实施方式以下说明描述了在处理装置、计算机系统或软件程序中执行点积操作的一种技术的实施例。在以下描述中,阐述诸如处理器类型、微体系结构条件、事件、启用机制等的大量具体细节,以提供对本专利技术的充分理解。然而,本领域的技术人员会理解,没有这类具体细节,也可实施本专利技术。另外,没有详细说明一些公知的结构、电路等,以免不必要地影响对本专利技术的理解。虽然参照处理器来描述以下实施例,但是,其它实施例适用于其它类型的集成电路和逻辑设备。本专利技术的相同技术和理论可容易地应用到可获益于较高流水线吞吐量和改进的性能的其它类型的电路或半导体器件。本专利技术的理论适用于执行数据操作的任何处理器或机器。但是,本专利技术不限于执行256位、128位、64位、32位或16位数据操作的处理器或机器,而是可适用于其中需要操纵打包数据的任何处理器和机器。为便于说明,以下描述中阐述了大量具体细节,以便提供对本专利技术的充分理解。但是,本领域的技术人员会理解,这些具体细节不是实施本专利技术所必需的。在其它情况下,没有对公知的电气结构和电路进行特别详细的阐述,以免不必要地影响对本专利技术的理解。另外,为了说明的目的,以下描述提供实例,以及附图示出各种实例。但是,这些实例不应当以限制的意义来理解,因为它们仅旨在提供本专利技术的实例,而不是提供本专利技术的所有可能实现的穷尽列表。虽然以下实例在执行单元和逻辑电路的上下文中来描述指令处理和分配,但是,本专利技术的其它实施例可通过软件来实现。在一个实施例中,本专利技术的方法以机器可执行指令来体现。这些指令可用于使采用指令编程的通用或专用处理器执行本专利技术的步骤。本专利技术可作为计算机程序产品或软件来提供,它可包括其中已存储指令的机器或计算机可读介质,这些指令可用于对计算机(或其它电子设备)编程以执行根据本专利技术的过程。作为备本文档来自技高网
...
用于执行点积运算的指令和逻辑

【技术保护点】
一种处理器,包括:第一源向量寄存器,用来存储第一多个打包单精度浮点值;第二源向量寄存器,用来存储第二多个打包单精度浮点值;指令解码电路,用来解码指令;以及执行电路,用来执行所述指令,其中响应于所述指令,解码电路解码点积指令,所述执行电路将要:把所述第一多个中选择的打包单精度浮点值与所述第二多个中选择的打包单精度浮点值相乘以生成多个临时乘积,把所述临时乘积存储进第一临时存储位置,把第一对临时乘积加起来以生成第一和数,把所述第一和数存储进第二临时存储位置,把第二对临时乘积加起来以生成第二和数,把所述第二和数存储进第三临时存储位置,以及把所述第一和数和所述第二和数加起来以生成累加和数,目的地寄存器,所述执行单元将要选择性地把所述累加和数写入所述目的地寄存器中。

【技术特征摘要】
2006.09.20 US 11/5248521.一种处理器,包括:第一源向量寄存器,用来存储第一多个打包单精度浮点值;第二源向量寄存器,用来存储第二多个打包单精度浮点值;指令解码电路,用来解码指令;以及执行电路,用来执行所述指令,其中响应于所述指令,解码电路解码点积指令,所述执行电路将要:把所述第一多个中选择的打包单精度浮点值与所述第二多个中选择的打包单精度浮点值相乘以生成多个临时乘积,把所述临时乘积存储进第一临时存储位置,把第一对临时乘积加起来以生成第一和数,把所述第一和数存储进第二临时存储位置,把第二对临时乘积加起来以生成第二和数,把所述第二和数存储进第三临时存储位置,以及把所述第一和数和所述第二和数加起来以生成累加和数,目的地寄存器,所述执行单元将要选择性地把所述累加和数写入所述目的地寄存器中。2.如权利要求1所述的处理器,其中所述点积指令包括具有位的第一集合的立即,所...

【专利技术属性】
技术研发人员:R佐哈M塞科尼R帕塔萨拉蒂S钦努帕蒂M布克斯顿C德西尔瓦M阿卜杜拉
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1