用于执行点积运算的指令和逻辑的制作方法

文档序号:9304411阅读:339来源:国知局
用于执行点积运算的指令和逻辑的制作方法
【专利说明】
[0001] 本申请是分案申请,其母案申请的发明名称是"用于执行点积运算的指令和逻 辑",其母案申请的申请日是2007年9月20日,其母案申请的申请号是=200710180647. 7。
技术领域
[0002] 本发明涉及执行数学运算的处理装置及相关软件和软件序列的领域。
【背景技术】
[0003] 计算机系统已经越来越深入我们的社会。计算机的处理能力已经提高了各种职业 的工人的效率和生产力。由于购买和拥有计算机的费用持续下降,所以越来越多的消费者 能够利用更新、更快的机器。此外,许多人由于使用自由而乐于使用笔记本电脑。移动计算 机使用户可在离开办公室或旅行时轻松地传输他们的数据以及利用所述移动计算机进行 工作。这种情况在营销人员、公司管理人员甚至学生中是常见的。
[0004] 随着处理器技术的进步,还产生了更新的软件代码来在具有这些处理器的机器上 运行。用户一般预期并要求来自他们的计算机的更高性能,而不管所使用的软件类型。从 处理器内实际执行的指令和操作的种类中可能产生一个这样的问题。根据操作的复杂度和 /或所需电路的类型,某些类型的操作需要更多时间来完成。这提供了优化在处理器内部执 行某些复杂操作的方式的机会。
[0005]十多年来,媒体应用推动了微处理器的发展。实际上,媒体应用推动了近年来的大 多数计算升级。这些升级主要在消费者方面发生,但是,为了娱乐性增强的教育和通信目 的,在企业方面也看到显著的进步。然而,未来的媒体应用需要更高的计算要求。因此,将 来的个人计算体验在视听效果方面将更为丰富,并且更容易使用,更重要的是,计算将与通 信融合。
[0006] 因此,图像的显示以及统称为内容的音频和视频数据的回放已经逐渐成为当前计 算设备的流行应用。滤波和卷积操作是对内容数据、如图像音频和视频数据执行的最常见 操作的一部分。这类操作是计算密集的,但是提供可通过采用各种数据存储设备(如单指令 多数据(snffi)寄存器)的有效实现来利用的高级数据并行性。多个当前的体系结构还需要 多个操作、指令或子指令(通常称作"微操作"或"y〇p")来对多个操作数执行各种数学运 算,由此减小吞吐量并增加执行数学运算所需的时钟周期数量。
[0007]例如,可能需要由多个指令组成的指令序列来执行产生点积所必需的一个或多个 运算,包括将由处理装置、系统或计算机程序内的各种数据类型所表示的两个或两个以上 数值之积相加。但是,这类现有技术可能需要许多处理周期,并且可能使处理器或系统消耗 不必要的功率以产生点积。此外,一些现有技术可能在可进行操作的操作数的数据类型方 面受到限制。

【发明内容】

[0008] 根据本发明的一个方面,提供了一种已在其中存储了指令的机器可读介质,所述 指令在由机器执行时,使所述机器执行包括以下步骤的方法:确定各具有第一数据类型的 多个打包值的至少两个操作数的点积结果;存储所述点积结果。
[0009]根据本发明的另一方面,提供了一种装置,包括:第一逻辑,对第一数据类型的至 少两个打包操作数执行单指令多数据点积指令。
[0010] 根据本发明的又一方面,提供了一种系统,包括:第一存储器,存储单指令多数据 点积指令;处理器,耦合到所述第一存储器以执行所述单指令多数据点积指令。
[0011] 根据本发明的再一方面,提供了一种方法,包括:将第一打包操作数的第一数据元 素与第二打包操作数的第一数据元素相乘,以产生第一乘积;将所述第一打包操作数的第 二数据元素与所述第二打包操作数的第二数据元素相乘,以产生第二乘积;将所述第一乘 积与所述第二乘积相加,以产生点积结果。
[0012] 此外,本发明还提供了一种处理器,包括:源寄存器,存储包括第一数据值和第二 数据值的第一打包操作数;目标寄存器,存储包括第三数据值和第四数据值的第二打包操 作数;根据所述点积指令所指示的控制值来执行单指令多数据点积指令的逻辑,所述逻辑 包括将所述第一数据值和第三数据值相乘以产生第一乘积的第一乘法器、将所述第二数据 值和第四数据值相乘以产生第二乘积的第二乘法器,所述逻辑还包括将所述第一乘积和第 二乘积相加以产生至少一个和数的至少一个加法器。
【附图说明】
[0013]通过附图、作为实例而非限制地来说明本发明: 图1A是根据本发明的一个实施例采用处理器组成的计算机系统的框图,所述处理器 包括执行点积操作的指令的执行单元; 图1B是根据本发明的一个备选实施例的另一个示范性计算机系统的框图; 图1C是根据本发明的另一个备选实施例的再一个示范性计算机系统的框图; 图2是根据本发明的一个实施例的处理器的微体系结构的框图,所述处理器包括执行 点积操作的逻辑电路; 图3A示出根据本发明的一个实施例的多媒体寄存器中的各种打包(packed)数据类型表不; 图3B示出根据一备选实施例的打包数据类型; 图3C示出根据本发明的一个实施例的多媒体寄存器中的各种有符号和无符号打包数 据类型表示; 图3D示出一种操作编码(操作码)格式的一个实施例; 图3E示出一种备选操作编码(操作码)格式; 图3F示出又一种备选操作编码格式; 图4是根据本发明对打包数据操作数执行点积操作的逻辑(logic)的一个实施例的框 图; 图5A是根据本发明的一个实施例对单精度打包数据操作数执行点积操作的逻辑的框 图; 图5B是根据本发明的一个实施例对双精度打包数据操作数执行点积操作的逻辑的框 图; 图6A是根据本发明的一个实施例用于执行点积操作的电路的框图; 图6B是根据本发明的另一个实施例用于执行点积操作的电路的框图; 图7是根据一个实施例对数据进行打包符号操作的示意图。
[0014] 图7A是根据一个实施例可通过执行DPPS指令来执行的操作的伪码表示; 图7B是根据一个实施例可通过执行DPH)指令来执行的操作的伪码表示。
【具体实施方式】
[0015] 以下说明描述了在处理装置、计算机系统或软件程序中执行点积操作的一种技术 的实施例。在以下描述中,阐述诸如处理器类型、微体系结构条件、事件、启用机制等的大量 具体细节,以提供对本发明的充分理解。然而,本领域的技术人员会理解,没有这类具体细 节,也可实施本发明。另外,没有详细说明一些公知的结构、电路等,以免不必要地影响对本 发明的理解。
[0016]虽然参照处理器来描述以下实施例,但是,其它实施例适用于其它类型的集成电 路和逻辑设备。本发明的相同技术和理论可容易地应用到可获益于较高流水线吞吐量和改 进的性能的其它类型的电路或半导体器件。本发明的理论适用于执行数据操作的任何处理 器或机器。但是,本发明不限于执行256位、128位、64位、32位或16位数据操作的处理器 或机器,而是可适用于其中需要操纵打包数据的任何处理器和机器。
[0017]为便于说明,以下描述中阐述了大量具体细节,以便提供对本发明的充分理解。但 是,本领域的技术人员会理解,这些具体细节不是实施本发明所必需的。在其它情况下,没 有对公知的电气结构和电路进行特别详细的阐述,以免不必要地影响对本发明的理解。另 外,为了说明的目的,以下描述提供实例,以及附图示出各种实例。但是,这些实例不应当以 限制的意义来理解,因为它们仅旨在提供本发明的实例,而不是提供本发明的所有可能实 现的穷尽列表。
[0018]虽然以下实例在执行单元和逻辑电路的上下文中来描述指令处理和分配,但是, 本发明的其它实施例可通过软件来实现。在一个实施例中,本发明的方法以机器可执行指 令来体现。这些指令可用于使采用指令编程的通用或专用处理器执行本发明的步骤。本发 明可作为计算机程序产品或软件来提供,它可包括其中已存储指令的机器或计算机可读介 质,这些指令可用于对计算机(或其它电子设备)编程以执行根据本发明的过程。作为备选 的方案,本发明的步骤可由包含用于执行所述步骤的硬连线逻辑的特定硬件部件来执行, 或者由已编程计算机部件和定制硬件部件的任何组合来执行。这种软件可存储在系统中的 存储器内。类似地,代码可经由网络或者通过其它计算机可读媒体来分配。
[0019] 因此,机器可读介质可包括用于存储或传输机器(例如计算机)可读形式的信息 的任何机构,包括但不限于软盘、光盘、光盘只读存储器(CD-ROM)以及磁光盘、只读存储器 (R0M)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPR0M)、电可擦除可编程只读存 储器(EEPR0M)、磁或光卡、闪存(flashmemory)、通过因特网的传输、电、光、声或其它形式 的传播信号(例如载波、红外信号、数字信号等)等。相应地,计算机可读介质包括适于存储 或传输机器(如计算机)可读形式的电子指令或信息的任何类型的媒体/机器可读介质。此 外,本发明还可作为计算机程序产品来下载。因此,程序可从远程计算机(例如服务器)传送 到请求计算机(例如客户机)。程序的传送可通过电、光、声或者在载波或其它传播介质中包 含的其它形式的数据信号经由通信链路(例如调制解调器、网络连接等)来进行。
[0020] 设计可能经过从创建到仿真(simulation)直到制造的各种阶段。表示设计的数 据可通过多种方式来表示设计。首先,如在仿真中有用的那样,硬件可采用硬件描述语言或 者另一种功能描述语言来表示。另外,采用逻辑和/或晶体管门电路的电路级模型可在设 计过程的某些阶段产生。此外,在某个阶段,大部分设计达到表示硬件模型中的各种设备的 物理设置的数据级。在采用常规半导体制造技术的情况下,表示硬件模型的数据可以是指 定用于生产集成电路的掩模的不同掩模层上的各种特征是否存在的数据。在该设计的任何 表示中,数据可存储在任何形式的机器可读介质中。经调制或者以其它方式产生来传输这 种信息的光或电波、存储器或者磁或光存储装置(storage)(如磁盘)可以是机器可读介质。 这些介质的任一种可"携带"或"指示"设计或软件信息。在传输指示或携带代码或设计的 电载波达到执行电信号的复制、缓冲或重传的程度时,就制作了新的副本。因此,通信提供 商或网络提供商可能制作体现本发明的技术的产品(载波)的复制品。
[0021] 在现代处理器中,多个不同的执行单元用来处理和执行各种代码及指令。并非所 有指令都同等地创建,因为一些指令会较快地完成,而其它指令则耗用大量时钟周期。指令 的吞吐量越大,处理器的整体性能就越好。因此,让许多指令尽可能快地执行是有利的。
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1