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

文档序号:9304411阅读:来源:国知局
但 是,存在具有较高复杂度并且在执行时间和处理器资源方面要求更多的某些指令。例如存 在浮点指令、加载/存储操作、数据移动等。
[0022] 随着越来越多的计算机系统用于互联网和多媒体应用,随时间引入了附加处理器 支持。例如,单指令多数据(SM))整数/浮点指令和流式(streaming)SM)扩展(SSE)是 减少执行特定程序任务所需的指令的总体数量的指令,它又可降低功耗。通过并行地对多 个数据元素进行操作,这些指令可加速软件执行。因此,可在包括视频、语音和图像/照片 处理的大量应用中实现性能增益。微处理器以及相似类型的逻辑电路中的sn?指令的实 现通常涉及多个问题。此外,sn?操作的复杂度通常导致需要附加电路,以正确地处理和 操纵数据。
[0023] 当前,SIMD点积指令不可用。在不存在SIMD点积指令的情况下,在诸如音频/视 频压缩、处理和操纵之类的应用中可能需要大量指令和数据寄存器来实现同样的结果。因 此,根据本发明的实施例的至少一个点积指令可减少代码开销和资源要求。本发明的实施 例提供一种实现作为使用sn?相关硬件的算法的点积操作的方式。当前,对sn?寄存器 中的数据执行点积操作有些困难且冗长。一些算法需要比执行那些操作的指令的实际数量 更多的指令来设置用于算术运算的数据。通过实现根据本发明的实施例的点积操作,实现 点积处理所需的指令数量可显著减少。
[0024] 本发明的实施例包括用于实现点积操作的指令。点积操作一般包括将至少两个值 相乘并将该乘积加到至少两个其它值的乘积上。可对通用点积算法进行其它变更,包括将 各个点积操作的结果相加以产生另一个点积。例如,根据一个实施例,应用于数据元素的点 积操作可一般表示为:
对于打包SMD数据操作数,该流程可应用于各个操作数的各个数据元素。
[0025] 在以上流程中,"DEST"和"SRC"是表示相应数据或操作的源和目标(destination) 的一般术语。在一些实施例中,它们可通过具有不同于所述的名称或功能的寄存器、存储 器或其它存储区来实现。例如,在一个实施例中,DEST1和DEST2可以是第一和第二暂时存 储区(例如"TEMPI和"TEMP2"寄存器),SRC1和SRC3可以是第一和第二目标存储区(例如 "DEST1"和"DEST2"寄存器)等。在其它实施例中,SRC和DEST存储区的两个或两个以上可 对应于相同存储区(例如SIMD寄存器)中的不同数据存储单元(datastorageelement)。 此外,在一个实施例中,点积操作可产生通过上述一般流程所产生的点积之和。
[0026]图1A是根据本发明的一个实施例采用处理器组成的示范性计算机系统的框图, 所述处理器包括执行点积操作的指令的执行单元。根据本发明,例如在本文所描述的实施 例中,系统100包括采用包含执行用于处理数据的算法的逻辑的执行单元的部件,例如处 理器 102。系统 100 表不基于可向IntelCorporation(SnataClara,California)购买的 卩£犯'11]]\^111、?£犯'11]]\^4、乂6〇111'1丨3111111#>45。3161¥和/或5廿〇即4冊1¥微处理器的处理 系统,但是也可采用其它系统(包括具有其它微处理器的个人计算机(PC)、工程工作站、机 顶盒等)。在一个实施例中,示例系统100可运行可向MicrosoftCorporation(Redmond, Washington)购买的一种版本的WINDOWS?操作系统,但也可采用其它操作系统(例如UNIT 和Linux)、嵌入式软件和/或图形用户接口。因此,本发明的实施例不限于硬件电路和软件 的任何特定结合。
[0027] 实施例不限于计算机系统。本发明的备选实施例可用于其它设备(如手持设备)和 嵌入式应用。手持设备的一些实例包括蜂窝电话、因特网协议装置、数字照相机、个人数字 助理(PDA)和手持PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、片上系统、网络 计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或者对操作数执行点积操作的 任何其它系统。此外,已经实现一些体系结构以使指令能够同时对若干数据进行操作,从而 提高多媒体应用的效率。随着数据的类型和容量增加,必须增强计算机及其处理器以通过 更有效的方法来操纵数据。
[0028] 图1A是根据本发明的一个实施例采用处理器102组成的计算机系统100的框图, 所述处理器包括一个或多个执行单元108来执行计算一个或多个操作数中的数据元素的 点积的算法。一个实施例可在单处理器台式或服务器系统的上下文中来描述,但是备选实 施例可包含在多处理器系统中。系统100是中心(hub)体系结构的一实例。计算机系统 100包括处理数据信号的处理器102。处理器102可以是复杂指令集计算机(CISC)微处理 器、简化指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集的组合的 处理器或者例如数字信号处理器之类的任何其它处理器设备。处理器102耦合到可在处理 器102与系统100中的其它部件之间传输数据信号的处理器总线110。系统100的元件执 行本领域的技术人员公知的常规功能。
[0029] 在一个实施例中,处理器102包括第一级(L1)内部高速缓冲存储器104。根据该 体系结构,处理器102可具有单个内部高速缓存或多级内部高速缓存。作为备选的方案,在 另一个实施例中,高速缓冲存储器可位于处理器102的外部。根据具体实现和需要,其它实 施例也可包括内部和外部两种高速缓存的组合。寄存器文件(registerfile) 106可在包 括整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器的各种寄存器中存储不同类型 的数据。
[0030] 包含执行整数和浮点运算的逻辑的执行单元108也位于处理器102中。处理器 102还包括存储某些宏指令的微码的微码(ycode)R0M。对于该实施例,执行单元108包括 处理打包指令集109的逻辑。在一个实施例中,打包指令集109包括用于计算多个操作数 的点积的打包点积指令。通过在通用处理器102的指令集中包含打包指令集109,结合执 行指令的相关电路,许多多媒体应用使用的操作可采用通用处理器102中的打包数据来执 行。因此,通过采用处理器的数据总线的全宽度(fullwidth)对打包数据执行操作,可加 速并且更有效地执行许多多媒体应用。这可消除通过处理器的数据总线来传送较小的数据 单元以一次对一个数据元素执行一个或多个操作的需要。
[0031] 执行单元108的备选实施例也可用于微控制器、嵌入式处理器、图形设备、DSP和 其它类型的逻辑电路。系统100包括存储器120。存储器120可以是动态随机存取存储器 (DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或者其它存储设备。存储器120 可存储通过可由处理器102执行的数据信号所表示的指令和/或数据。
[0032] 系统逻辑芯片116耦合到处理器总线110和存储器120。所述实施例中的系统逻 辑芯片116是存储器控制器中心(memorycontrollerhub) (MCH)。处理器102可经由处 理器总线110与MCH116通信。MCH116为指令和数据存储以及为图形命令、数据和文本的 存储提供到存储器120的高带宽存储器通路118。MCH116引导处理器102、存储器120和 系统100中的其它部件之间的数据信号,并且作为处理器总线110、存储器120和系统I/O 122之间的数据信号的桥梁。在一些实施例中,系统逻辑芯片116可提供用于耦合到图形控 制器112的图形端口。MCH116通过存储器接口 118耦合到存储器120。图形卡112通过 加速图形端口(AGP)互连114耦合到MCH116。
[0033] 系统100采用专有中心(hub)接口总线122将MCH116耦合到I/O控制器中心 (100130。ICH130通过本地I/O总线提供对一些I/O装置的直接连接。本地I/O总线是 用于将外围设备连接到存储器120、芯片组和处理器102的高速I/O总线。一些实例是音 频控制器、固件中心(闪速BIOS) 128、无线收发器126、数据存储设备124、包含用户输入和 键盘接口的传统1/0控制器、诸如通用串行总线(USB)之类的串行扩展端口和网络控制器 134。数据存储设备124可包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或者其它 海量存储设备。
[0034] 对于系统的另一个实施例,执行具有点积指令的算法的执行单元可与片上系统配 合使用。片上系统的一个实施例包括处理器和存储器。一种这样的系统的存储器是闪存。 闪存可与处理器和其它系统部件位于相同的管芯上。另外,诸如存储控制器或图形控制器 等其它逻辑块也可设置在片上系统中。
[0035] 图1B示出实现本发明的一个实施例的原理的数据处理系统140。本领域的技术人 员容易理解,本文所述的实施例可与备选处理系统配合使用,而不会背离本发明的范围。
[0036] 计算机系统140包括能够执行包括点积操作的S頂D操作的处理核心159。对于一 个实施例,处理核心159表示任何类型的体系结构的处理单元,包括但不限于CISC、RISC或 VLIW类型的体系结构。处理核心159还可适于以一种或多种加工技术制造,并且通过在机 器可读媒体上充分详细地表示,可适合于促进所述制造。
[0037] 处理核心159包括执行单元142、寄存器文件集合145和解码器144。处理核心159 还包括对本发明的理解不必要的附加电路(图中未示出)。执行单元142用于执行处理核心 159所接收的指令。除了识别典型的处理器指令之外,执行单元142还可识别用于对打包数 据格式执行操作的打包指令集143中的指令。打包指令集143包括用于支持点积操作的指 令,并且还可包括其它打包指令。执行单元142通过内部总线耦合到寄存器文件145。寄存 器文件145表示处理核心159上用于存储包括数据在内的信息的存储区。如前所述,会理 解到,用于存储打包数据的存储区不是关键的。执行单元142耦合到解码器144。解码器 144用于将处理核心159所接收的指令解码为控制信号和/或微码入口点(entrypoint)。 响应这些控制信号和/或微码入口点,执行单元142执行适当的操作。
[0038] 处理核心159与总线141耦合,用于与各种其它系统设备进行通信,它们例如可 包括但
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1