用于提供向量横向多数表决功能的指令和逻辑.pdf

上传人:zhu****_FC 文档编号:4429604 上传时间:2018-10-01 格式:PDF 页数:56 大小:7.22MB
返回 下载 相关 举报
用于提供向量横向多数表决功能的指令和逻辑.pdf_第1页
第1页 / 共56页
用于提供向量横向多数表决功能的指令和逻辑.pdf_第2页
第2页 / 共56页
用于提供向量横向多数表决功能的指令和逻辑.pdf_第3页
第3页 / 共56页
点击查看更多>>
资源描述

《用于提供向量横向多数表决功能的指令和逻辑.pdf》由会员分享,可在线阅读,更多相关《用于提供向量横向多数表决功能的指令和逻辑.pdf(56页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103959236 A (43)申请公布日 2014.07.30 C N 1 0 3 9 5 9 2 3 6 A (21)申请号 201180075148.6 (22)申请日 2011.11.30 G06F 9/30(2006.01) G06F 9/305(2006.01) G06F 9/06(2006.01) (71)申请人英特尔公司 地址美国加利福尼亚州 (72)发明人 E乌尔德-阿迈德-瓦尔 DA科什蒂杰 S赛尔 CR扬特 (74)专利代理机构上海专利商标事务所有限公 司 31100 代理人何焜 (54) 发明名称 用于提供向量横向多数表决功能的指令和逻 辑 (。

2、57) 摘要 指令和逻辑提供向量横向多数表决功能。响 应于指定目的地操作数、向量元素的大小、源操作 数、以及与源操作数中的向量元素数据字段的部 分相对应的掩码的指令,一些实施例从源操作数 中的与由该指令指定的掩码相对应的指定大小的 数据字段读取多个值,并且将结果值存储至目的 地操作数中的相同数量的相应数据字段,该结果 值根据从源操作数的多个数据字段读取的值的多 数计算得出。 (85)PCT国际申请进入国家阶段日 2014.05.29 (86)PCT国际申请的申请数据 PCT/US2011/062487 2011.11.30 (87)PCT国际申请的公布数据 WO2013/081587 EN 2。

3、013.06.06 (51)Int.Cl. 权利要求书3页 说明书26页 附图26页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书26页 附图26页 (10)申请公布号 CN 103959236 A CN 103959236 A 1/3页 2 1.一种处理器,包括: 向量寄存器,包括用于存储向量元素的值的第一多个数据字段; 解码级,用于解码第一指令,所述第一指令指定目的地操作数、向量元素大小、所述第 一多个数据字段的部分、以及源操作数;以及 执行单元,用于响应于经解码的第一指令: 从所述源操作数中的具有所述向量元素大小的数据字段读取多个值;以及 将结果值存。

4、储在由所述第一指令指定的目的地操作数中,所述结果值是根据从所述源 操作数的多个数据字段读取的最常见值而计算得出的。 2.如权利要求1所述的处理器,其特征在于,所述执行单元用于,响应于经解码的第 一指令,将所述结果值存储至由所述第一指令指定的目的地操作数中的多个相应数据字段 中。 3.如权利要求1所述的处理器,其特征在于,所述第一指令指定掩码,所述掩码标识所 述第一多个数据字段的所述部分,其中从所述源操作数中的数据字段读取的所述多个值对 应于所述源操作数中未被由所述第一指令指定的掩码掩蔽的向量元素。 4.如权利要求3所述的处理器,其特征在于,所述结果值被计算为从所述源操作数的 数据字段读取的值的。

5、未被掩蔽的向量元素的逐位多数值。 5.如权利要求3所述的处理器,其特征在于,所述结果值被计算为从所述源操作数的 数据字段读取的值的至少k个未被掩蔽的向量元素的逐位多数值,k由所述第一指令指定。 6.如权利要求1所述的处理器,其特征在于,所述结果值被计算为从所述源操作数的 向量元素的数据字段读取的匹配值的多数值。 7.如权利要求6所述的处理器,其特征在于,所述结果值被计算为从所述源操作数的 未被掩蔽的向量元素读取的至少k个匹配值的多数值,k由所述第一指令指定。 8.如权利要求1所述的处理器,其特征在于,所述结果值被计算为从所述源操作数的 数据字段读取的值的逐位多数值。 9.如权利要求8所述的处理。

6、器,其特征在于,所述逐位多数值可配置成在平局的情况 下具有1的偏移。 10.一种机器可读介质,用于记录包括第一可执行指令的功能性描述素材,所述第一可 执行指令如果由机器执行则使所述机器: 从由所述第一可执行指令指定的源操作数中的第一多个数据字段的部分中读取多个 值,所述第一多个数据字段用于存储被掩蔽的向量元素的值和未被掩蔽的向量元素的值, 所述多个值的数量对应于根据由所述第一可执行指令指定的掩码的相同数量的未被掩蔽 的向量元素; 计算结果值,所述结果值表示所读取的多个值中的多数;以及 将所述结果值存储在由所述第一可执行指令指定的目的地操作数中。 11.如权利要求10所述的机器可读介质,其特征在。

7、于,将所述结果值存储在所述目的 地操作数中包括:将所述结果值存储至由所述第一可执行指令指定的目的地操作数中的相 应数据字段。 12.如权利要求10所述的机器可读介质,其特征在于,所述结果值被计算为从所述源 操作数的数据字段读取的值的未被掩蔽的向量元素的逐位多数值。 权 利 要 求 书CN 103959236 A 2/3页 3 13.如权利要求10所述的机器可读介质,其特征在于,所述结果值被计算为从所述源 操作数的数据字段读取的值的至少k个未被掩蔽的向量元素的逐位多数值,k由所述第一 指令指定。 14.如权利要求10所述的机器可读介质,其特征在于,所述结果值被计算为从所述源 操作数的未被掩蔽的向。

8、量元素的数据字段读取的匹配值的多数值。 15.一种处理系统,包括: 存储器;以及 第一多个处理器,所述第一多个处理器中的每一个包括: 向量寄存器,包括用于存储向量元素的值的第一多个数据字段; 解码级,用于解码第一指令,所述第一指令指定目的地操作数、向量元素的大小、所述 第一多个数据字段的部分、以及源操作数;以及 执行单元,用于响应于经解码的第一指令: 从所述源操作数中的具有所述向量元素大小的数据字段读取多个值;以及 将结果值存储在由所述第一指令指定的目的地操作数中,所述结果值根据从所述源操 作数的多个数据字段读取的最常见值计算得出。 16.如权利要求15所述的处理系统,其特征在于,所述执行单元。

9、用于,响应于经解码的 第一指令,将所述结果值存储至由所述第一指令指定的目的地操作数中的多个相应数据字 段中。 17.如权利要求15所述的处理系统,其特征在于,所述第一指令指定掩码,所述掩码标 识所述第一多个数据字段的所述部分,其中从所述源操作数中的数据字段读取的所述多个 值对应于所述源操作数中未被由所述第一指令指定的掩码掩蔽的向量元素。 18.如权利要求15所述的处理系统,其特征在于,所述结果值被计算为从所述源操作 数的数据字段读取的值的向量元素的逐位多数值。 19.如权利要求18所述的处理系统,其特征在于,所述逐位多数值可配置成在平局的 情况下具有1的偏移。 20.如权利要求18所述的处理系。

10、统,其特征在于,所述结果值被计算为从所述源操作 数的数据字段读取的值的至少k个未被掩蔽的向量元素的逐位多数值,k由所述第一指令 指定。 21.如权利要求15所述的处理系统,其特征在于,所述结果值被计算为从所述源操作 数的向量元素的数据字段读取的匹配值的多数值。 22.如权利要求21所述的处理系统,其特征在于,所述结果值被计算为从所述源操作 数的未被掩蔽的向量元素读取的至少k个匹配值的多数值,k由所述第一指令指定。 23.一种计算机实现的方法,包括: 从由所述第一可执行指令指定的源操作数中的第一多个数据字段的部分中读取多个 值,所述第一多个数据字段用于存储被掩蔽的向量元素的值和未被掩蔽的向量元素。

11、的值, 所述多个值的数量对应于根据由所述第一可执行指令指定的掩码的相同数量的未被掩蔽 的向量元素; 计算结果值,所述结果值表示所读取的多个值中的多数;以及 将所述结果值存储在由所述第一可执行指令指定的目的地操作数中。 权 利 要 求 书CN 103959236 A 3/3页 4 24.如权利要求23所述的计算机实现的方法,其特征在于,将所述结果值存储在所述 目的地操作数中包括:将所述结果值存储至由所述第一可执行指令指定的目的地操作数中 的相应数据字段。 25.如权利要求23所述的计算机实现的方法,其特征在于,所述结果值被计算为从所 述源操作数的数据字段读取的值的未被掩蔽的向量元素的逐位多数值。。

12、 26.如权利要求25所述的计算机实现的方法,其特征在于,所述结果值被计算为从所 述源操作数的数据字段读取的值的至少k个未被掩蔽的向量元素的逐位多数值,k由所述 第一指令指定。 27.如权利要求25所述的计算机实现的方法,其特征在于,所述逐位多数值可配置成 在平局的情况下具有1的偏移。 28.如权利要求23所述的计算机实现的方法,其特征在于,所述结果值被计算为从所 述源操作数的未被掩蔽的向量元素的数据字段读取的匹配值的多数值。 29.如权利要求28所述的计算机实现的方法,其特征在于,所述结果值被计算为从所 述源操作数的未被掩蔽的向量元素读取的至少k个匹配值的多数值,k由所述第一指令指 定。 权。

13、 利 要 求 书CN 103959236 A 1/26页 5 用于提供向量横向多数表决功能的指令和逻辑 技术领域 0001 本公开涉及处理逻辑、微处理器以及相关联的指令集体系结构的领域,该指令集 体系结构在被处理器或其他处理逻辑所执行时运行逻辑、数学或其他功能性操作。具体而 言,本公开涉及用于提供向量横向多数表决功能的指令和逻辑。 背景技术 0002 目前的诸多处理器通常包括用于提供计算密集型操作但提供高度数据并行性的 指令,这些指令可通过使用多种数据存储设备的高效实现来使用,这些数据存储设备诸如: 单指令多数据(SIMD)向量寄存器。 0003 对于一些算法,无法利用这样的高度数据并行性,并。

14、且因此未能充分利用向量资 源。 0004 另一方面,在高产处理器中通常不将容错和故障检测特征应用于诸如算术逻辑单 元(ALU)之类的数据变换单元,因为该实现方式的成本超过了利润。然而,减小封装中的晶 体管的尺寸并增加其数量、同时使器件更快和更高效会提高源于粒子和其他偶然因素 的故障概率。 0005 此外,存在一些极端环境,其中容错是计算机系统的高度期望具有的特征。例 如,海军研究生院(Naval Postgraduate School)的空间系统学术组(Space Systems Academic Group)曾使用现场可编程门阵列(FPGA)开发了可配置的容错处理器(CFTP)。 然后它作为。

15、实验负载被部署在美国海军学院(USNA)MidSTAR-1卫星上。第二个CFTP系统 CFTP-2则被部署为完全的陆基系统,并利用加州大学戴维斯分校的回旋加速器在质子束中 被测试。 0006 这样的FPGA实现方式可能限制原本可从例如超大规模集成(VLSI)之类所获得的 性能优势,并且它们的实现方式还会更大和/或更重,且需要更高的供电电压。 0007 到目前为止,尚未充分探索针对这样的性能和效率受限问题的潜在解决方案。 附图说明 0008 在附图的各图中通过示例而非限制地示出本发明。 0009 图1A是执行用于提供向量横向多数表决功能的指令的系统的一个实施例的框 图。 0010 图1B是执行用。

16、于提供向量横向多数表决功能的指令的系统的另一实施例的框 图。 0011 图1C是执行用于提供向量横向多数表决功能的指令的系统的另一实施例的框 图。 0012 图2是执行用于提供向量横向多数表决功能的指令的处理器的一个实施例的框 图。 0013 图3A示出根据一个实施例的打包数据类型。 说 明 书CN 103959236 A 2/26页 6 0014 图3B示出根据一个实施例的打包数据类型。 0015 图3C示出根据一个实施例的打包数据类型。 0016 图3D示出根据一个实施例的用于提供向量横向多数表决功能的指令编码。 0017 图3E示出根据另一实施例的用于提供向量横向多数表决功能的指令编码。。

17、 0018 图3F示出根据另一实施例的用于提供向量横向多数表决功能的指令编码。 0019 图3G示出根据另一实施例的用于提供向量横向多数表决功能的指令编码。 0020 图3H示出根据另一实施例的用于提供向量横向多数表决功能的指令编码。 0021 图4A示出用于执行提供向量横向多数表决功能的指令的处理器微体系结构的一 个实施例的要素。 0022 图4B示出用于执行提供向量横向多数表决功能的指令的处理器微体系结构的另 一实施例的要素。 0023 图5是用于执行提供向量横向多数表决功能的指令的处理器的一个实施例的框 图。 0024 图6是用于执行提供向量横向多数表决功能的指令的计算机系统的一个实施例。

18、 的框图。 0025 图7是用于执行提供向量横向多数表决功能的指令的计算机系统的另一实施例 的框图。 0026 图8是用于执行提供向量横向多数表决功能的指令的计算机系统的另一实施例 的框图。 0027 图9是用于执行提供向量横向多数表决功能的指令的芯片上系统的一个实施例 的框图。 0028 图10是用于执行提供向量横向多数表决功能的指令的处理器的实施例的框图。 0029 图11是提供向量横向多数表决功能的IP核开发系统的一个实施例的框图。 0030 图12示出提供向量横向多数表决功能的体系结构仿真系统的一个实施例。 0031 图13示出用于转换提供向量横向多数表决功能的指令的系统的一个实施例。。

19、 0032 图14A示出用于提供向量横向多数表决功能的装置的一个实施例。 0033 图14B示出用于提供向量横向多数表决功能的装置的替代实施例。 0034 图15示出用于提供向量横向多数表决功能的过程的一个实施例的流程图。 0035 图16示出用于提供向量横向多数表决功能的过程的替代实施例的流程图。 0036 图17示出用于提供向量横向多数表决功能的过程的另一替代实施例的流程图。 具体实施方式 0037 以下描述公开了用于提供处理器、计算机系统或其他处理装置之内或与处理器、 计算机系统或其他处理装置相关联的向量横向多数表决功能的指令和处理逻辑。 0038 本申请中公开了用于提供向量横向多数表决。

20、功能的指令和逻辑。在一些实施例 中,响应于一指令,该指令指定了目的地操作数、向量元素的大小、源操作数、以及与源操作 数中的向量元素数据字段的部分相对应的掩码,从源操作数中的与由该指令指定的掩码相 对应的指定大小的数据字段读取多个值,并且将结果值存储至目的地操作数中的相同数量 的相应数据字段,该结果值是根据从源操作数的多个数据字段读取的值中的多数而计算得 说 明 书CN 103959236 A 3/26页 7 出的。在一些实施例中,结果值表示从源操作数的多个数据字段读取的值的逐位多数。在 一些实施例中,结果值表示从源操作数的多个数据字段读取的匹配值的多数的值。 0039 向量横向多数表决功能可提。

21、供容错和故障检测特征,这些容错和故障检测特征在 没有高昂的实现成本的情况下在高产处理器中通常不可用。由于减少封装中的晶体管的尺 寸并且增加晶体管的数量会提高由于粒子和其他偶然因素引起的故障的概率,所以这 些容错和故障检测特征越来越合乎需要。 0040 在容错是计算机系统的高度期望具有的特征的一些极端环境下,具有向量横向多 数表决功能的商用处理器可提供容错和故障检测以及可从高度集成获得的优势,同时更小 且更轻,并且具有比诸如FPGA技术之类的其他替代技术更好的功率效率。 0041 在以下描述中,陈述了诸如处理逻辑、处理器类型、微体系结构状况、事件、启用机 制等多种特定细节,以提供对本发明实施例的。

22、更透彻理解。然而,本领域技术人员应当领 会,没有这些具体细节也可实践本发明。此外,没有详细示出一些公知的结构、电路等等,以 避免不必要地模糊本发明的实施例。 0042 虽然下述的诸个实施例参照处理器来描述,但其他实施例也适用于其他类型的集 成电路和逻辑设备。本发明的实施例的类似技术和教导可应用于其它类型的电路或半导体 器件,这些其它类型的电路或半导体器件也可受益于更高的流水线吞吐量和提高的性能。 本发明的诸个实施例的教导适用于执行数据操纵的任何处理器或机器。然而,本发明不限 于执行512位、256位、128位、64位、32位、或16位数据运算的处理器或机器,并可适用于 执行数据操纵或管理的任何。

23、处理器和机器。此外,下述描述提供了示例,并且附图出于示意 性目的示出了多个示例。然而,这些示例不应该被理解为具有限制性目的,因为它们仅仅旨 在提供本发明的诸个实施例的示例,而并非对本发明的实施例的所有可能实现方式进行穷 举。 0043 虽然下述的示例描述了在执行单元和逻辑电路情况下的指令处理和分配,但本发 明的其他实施例也可通过存储在机器可读有形介质上的数据或指令来完成,这些数据或指 令在被机器执行时使得机器执行与本发明至少一个实施例相一致的功能。在一个实施例 中,与本发明的实施例相关联的功能被具体化在机器可执行指令中。这些指令可用来使通 过这些指令编程的通用处理器或专用处理器执行本发明的步骤。

24、。本发明的诸个实施例也可 以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的 机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行 根据本发明的实施例的一个或多个操作。另选地,本发明的诸个实施例的这些步骤可由包 含用于执行这些步骤的固定功能逻辑的专用硬件组件来执行,或由经编程的计算机组件以 及固定功能硬件组件的任何组合来执行。 0044 被用于对逻辑进行编程以执行本发明的诸个实施例的指令可被存储在系统中的 存储器(诸如,DRAM、高速缓存、闪存、或其他存储器)内。进一步的,指令可经由网络或其 他计算机可读介质来分发。因此,计算机可读介质可包。

25、括用于以机器(诸如,计算机)可读 的格式存储或发送信息的任何机制,但不限于:软盘、光盘、致密盘只读存储器(CD-ROM)、 磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电 可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由互联网通过电、光、声、或 其他形式的传播信号(诸如,载波、红外信号、数字信号等)发送信息中所用的有形机器可 说 明 书CN 103959236 A 4/26页 8 读存储器。因此,计算机可读介质包括用于存储或发送机器(例如,计算机)可读形式的电 子指令或信息的任何类型的有形机器可读介质。 0045 设计会经历多。

26、个阶段,从创新到模拟到制造。表示设计的数据可用多种方式来表 示该设计。首先,如模拟中将有用的,可使用硬件描述语言或其他功能性描述语言来表示硬 件。此外,具有逻辑和/或晶体管门电路的电路级模型可在设计流程的其他阶段产生。此 外,大多数设计在某些阶段都到达表示硬件模型中多种设备的物理配置的数据水平。在使 用常规半导体制造技术的情况下,表示硬件模型的数据可以是在不同掩模层上对用于生成 集成电路的掩模指示不同特征的存在与否的数据。在任何的设计表示中,数据可被存储在 任何形式的机器可读介质中。存储器或磁/光存储器(诸如,盘)可以是存储信息的机器 可读介质,这些信息是经由光学或电学波来发送的,这些光学或电。

27、学波被调制或以其他方 式生成以传送这些信息。当发送指示或承载代码或设计的电学载波时,执行电信号的复制、 缓冲或重传情况时,制作一个新的副本。因此,通信提供商或网络提供商会在有形机器可读 介质上至少临时地存储具体化本发明的诸个实施例的技术的物品(诸如,编码在载波中的 信息)。 0046 在现代处理器中,多个不同执行单元被用于处理和执行多种代码和指令。并不是 所有指令都被同等地创建,因为其中有一些更快地被完成而另一些需要多个时钟周期来完 成。指令的吞吐量越快,则处理器的总体性能越好。因此,使大量指令尽可能快地执行将会 是有利的。然而,某些指令具有更大的复杂度,并需要更多的执行时间和处理器资源。例如。

28、, 存在浮点指令、加载/存储操作、数据移动等等。 0047 因为更多的计算机系统被用于互联网、文本以及多媒体应用,所以逐渐地引进更 多的处理器支持。在一个实施例中,指令集可与一个或多个计算机体系结构相关联,一个或 多个计算机体系结构包括数据类型、指令、寄存器体系结构、寻址模式、存储器体系结构、中 断和异常处理以及外部输入输出(I/O)。 0048 在一个实施例中,指令集体系结构(ISA)可由一个或更多微体系结构来实现,微 体系结构包括用于实现一个或多个指令集的处理器逻辑和电路。因此,具有不同微体系结 构的诸个处理器可共享公共指令集的至少一部分。例如,奔腾四(Pentium4)处 理器、酷睿(C。

29、ore TM )处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微 半导体有限公司(Advanced Micro Devices,Inc.)的诸多处理器执行几乎相同版本的x86 指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。类似地,由其他处理 器开发公司(诸如,ARM控股有限公司、MIPS或它们的授权方或兼容方)所设计的诸多处理 器可共享至少一部分公共指令集,但可包括不同的处理器设计。例如,ISA的相同寄存器体 系结构在不同的微体系结构中可使用新的或已知的技术以不同方法来实现,包括专用物理 寄存器、使用寄存器重命名机制(诸如,使用寄存器别名表RAT、重排序缓冲器R。

30、OB、以及引 退寄存器组)的一个或多个动态分配物理寄存器。在一个实施例中,寄存器可包括:可由软 件编程者寻址或不可寻址的一个或多个寄存器、寄存器体系结构、寄存器组、或其他寄存器 集合。 0049 在一个实施例中,指令可包括一个或多个指令格式。在一个实施例中,指令格式可 指示多个字段(位的数目、位的位置等)以特别指定将要被执行的操作以及将要被执行的 操作的操作数。一些指令格式可进一步被指令模板(或子格式)所细分定义。例如,给定 说 明 书CN 103959236 A 5/26页 9 指令格式的指令模板可被定义为具有指令格式字段的不同的子集,和/或被定义为具有不 同解释的给定字段。在一个实施例中,。

31、使用指令格式(并且,如果定义过,则以该指令格式 的一个给定指令模板)来表示指令,并且该指令指定或指示操作以及该操作将操作的操作 数。 0050 科学应用、金融应用、自动向量化通用应用、RMS(识别、挖掘和合成)应用以及视 觉和多媒体应用(诸如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频处 理)可能需要对大量数据项执行相同的操作。在一个实施例中,单指令多数据(SIMD)指的 是使得处理器在多个数据元素上执行一操作的一种类型的指令。SIMD技术可被用于处理器 中,这些处理器将寄存器中的诸个位(bit)逻辑地划分入多个固定大小或可变大小的数据 元素,每个数据元素表示单独的值。例如。

32、,在一个实施例中,64位寄存器中的诸个位可被组 织为包含四个单独的16位数据元素的源操作数,每个数据元素表示单独的16位值。该数 据类型可被称为“打包”数据类型或“向量”数据类型,并且该数据类型的操作数被称为打 包数据操作数或向量操作数。在一个实施例中,打包数据项或向量可以是存储在单个寄存 器中的打包数据元素的序列,并且打包数据操作数或向量操作数可以是SIMD指令(或“打 包数据指令”或“向量指令”)的源操作数或目的地操作数。在一个实施例中,SIMD指令指 定了将要对两个源向量操作数执行的单个向量操作,以生成具有相同或不同大小的、具有 相同或不同数量的数据元素的、具有相同或不同数据元素次序的目。

33、的地向量操作数(也被 称为结果向量操作数)。 0051 诸如由酷睿(Core TM )处理器(具有包括x86、MMX TM 、流SIMD扩展(SSE)、 SSE2、SSE3、SSE4.1、SSE4.2指令的指令集)、ARM处理器(诸如,ARM处理器族,具 有包括向量浮点(VFP)和/或NEON指令的指令集)、MIPS处理器(诸如,中国科学院计算 机技术研究所(ICT)开发的龙芯处理器族)所使用的SIMD技术之类的SIMD技术在应用性 能上带来了极大的提高(Core TM 和MMX TM 是加利福尼亚州圣克拉拉市的英特尔公司的注册商 标或商标)。 0052 在一个实施例中,目的地寄存器/数据和源。

34、寄存器/数据是表示对应数据或操作 的源和目的地的通用术语。在一些实施例中,它们可由寄存器、存储器或具有与所示出的那 些名称或功能不同的名称或功能的其他存储区域所实现。例如,在一个实施例中,“DEST1” 可以是临时存储寄存器或其他存储区域,而“SRC1”和“SRC2”是第一和第二源存储寄存器 或其他存储区域,等等。在其他实施例中,SRC和DEST存储区域中的两个或更多区域可对 应于相同存储区域中的不同数据存储元素(例如,SIMD寄存器)。在一个实施例中,例如通 过将对第一和第二源数据执行的操作的结果写回至两个源寄存器中作为目的地寄存器的 那个寄存器,源寄存器中的一个也可以作为目的地寄存器。 0。

35、053 图1A是根据本发明的一个实施例的示例性计算机系统的框图,具有包括执行 单元以执行指令的处理器。根据本发明,诸如根据在此所描述的实施例,系统100包括 诸如处理器102之类的组件,以采用包括逻辑的执行单元来执行算法以处理数据。系统 100代表基于可从美国加利福尼亚州圣克拉拉市的英特尔公司获得的III、 4、Xeon tm 、XScale tm 和/或StrongARM tm 微处理器的处理系统,不 过也可使用其它系统(包括具有其它微处理器的PC、工程工作站、机顶盒等)。在一个实施 说 明 书CN 103959236 A 6/26页 10 例中,样本系统100可执行可从美国华盛顿州雷蒙德市。

36、的微软公司买到的WINDOWS tm 操作系 统的一个版本,不过也可使用其它操作系统(例如UNIX和Linux)、嵌入式软件、和/或图形 用户界面。因此,本发明的各实施例不限于硬件和软件的任何具体组合。 0054 实施例不限于计算机系统。本发明的替换实施例可被用于其他设备,诸如手持式 设备和嵌入式应用。手持式设备的一些示例包括:蜂窝电话、互联网协议设备、数码相机、个 人数字助理(PDA)、手持式PC。嵌入式应用可包括:微控制器、数字信号处理器(DSP)、芯片 上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或可执行参照至少 一个实施例的一个或多个指令的任何其他系统。。

37、 0055 图1A是计算机系统100的框图,计算机系统100被形成为具有处理器102,处理器 102包括一个或多个执行单元108以执行算法,以执行根据本发明的一个实施例的至少一 个指令。参照单处理器桌面或服务器系统来描述了一个实施例,但替代实施例可被包括在 多处理器系统中。系统100是“中枢”系统体系结构的示例。计算机系统100包括处理器 102以处理数据信号。处理器102可以是复杂指令集计算机(CISC)微处理器、精简指令集 计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集组合的处理器或任意其它 处理器设备(诸如数字信号处理器)。处理器102耦合至处理器总线110,处理器。

38、总线110 可在处理器102和系统100内的其他组件之间传输数据信号。系统100的诸个元素执行本 领域所熟知的常规功能。 0056 在一个实施例中,处理器102包括第一级(L1)内部高速缓存存储器104。取决于 体系结构,处理器102可具有单个内部高速缓存或多级内部高速缓存。或者,在另一个实施 例中,高速缓存存储器可位于处理器102的外部。其他实施例也可包括内部高速缓存和外 部高速缓存的组合,这取决于特定实现和需求。寄存器组106可在多个寄存器(包括整数 寄存器、浮点寄存器、状态寄存器、指令指针寄存器)中存储不同类型的数据。 0057 执行单元108(包括执行整数和浮点操作的逻辑)也位于处理器。

39、102中。处理器 102还包括微代码(ucode)ROM,其存储用于特定宏指令的微代码。对于一个实施例,执行单 元108包括处理打包指令集109的逻辑。通过将打包指令集109包括在通用处理器102的 指令集内并包括相关的电路以执行这些指令,可使用通用处理器102中的打包数据来执行 许多多媒体应用所使用的操作。因此,通过将处理器数据总线的全带宽用于对打包数据进 行操作,许多多媒体应用可获得加速,并更为有效率地执行。这能减少在处理器数据总线上 传输更小数据单元以在一个时间对一个数据元素执行一个或多个操作的需要。 0058 执行单元108的替换实施例也可被用于微控制器、嵌入式处理器、图形设备、DSP。

40、 以及其他类型的逻辑电路。系统100包括存储器120。存储器设备120可以是动态随机存 取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。存 储器120可存储可由处理器102执行的指令和/或数据,数据由数据信号表示。 0059 系统逻辑芯片116耦合至处理器总线110和存储器120。在所示出的实施例中的系 统逻辑芯片116是存储器控制器中枢(MCH)。处理器102可经由处理器总线110与MCH116 通信。MCH116提供至存储器120的高带宽存储器路径118,用于指令和数据存储,以及用于 存储图形命令、数据和纹理。MCH116用于引导处理器102、存储器。

41、120以及系统100内的 其他组件之间的数据信号,并在处理器总线110、存储器120和系统I/O总线122之间桥接 数据信号。在一些实施例中,系统逻辑芯片116可提供耦合至图形控制器112的图形端口。 说 明 书CN 103959236 A 10 7/26页 11 MCH116经由存储器接口118耦合至存储器120。图形卡112通过加速图形端口(AGP)互连 114耦合至MCH116。 0060 系统100使用外围设备中枢接口总线122以将MCH116耦合至I/O控制器中枢 (ICH)130。ICH130经由局部I/O总线提供至一些I/O设备的直接连接。局部I/O总线是高 速I/O总线,用于将。

42、外围设备连接至存储器120、芯片组以及处理器102。一些示例是音频 控制器、固件中枢(闪存BIOS)128、无线收发机126、数据存储器124、包括用户输入和键盘 接口的传统I/O控制器、串行扩展端口(诸如通用串行总线USB)以及网络控制器134。数 据存储设备124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备、或其他大容量 存储设备。 0061 对于系统的另一个实施例,根据一个实施例的指令可被用于芯片上系统。芯片上 系统的一个实施例包括处理器和存储器。用于这样一个系统的存储器是闪存存储器。闪存 存储器可位于与处理器和其他系统组件相同的管芯上。此外,诸如存储器控制器或图形控 制器。

43、之类的其他逻辑块也可位于芯片上系统上。 0062 图1B示出数据处理系统140,数据处理系统140实现本发明的一个实施例的原理。 本领域的技术人员将容易理解,在此描述的诸个实施例可用于替代处理系统,而不背离本 发明的实施例的范围。 0063 计算机系统140包括处理核159,处理核159能执行根据一个实施例的至少一个 指令。对于一个实施例,处理核159表示任何类型的体系结构的处理单元,包括但不限于: CISC、RISC或VLIW类型体系结构。处理核159也可适于以一种或多种处理技术来制造,并 且通过充分详细地表示在机器可读介质上可以便于其制造。 0064 处理核159包括执行单元142、一组寄。

44、存器组145以及解码器144。处理核159也 包括对于理解本发明的实施例不是必需的额外电路(没有示出)。执行单元142用于执行 处理核159所接收到的指令。除了执行典型的处理器指令外,执行单元142也能执行打包 指令集143中的指令,用于对打包数据格式执行操作。打包指令集143包括用于执行本发 明的诸个实施例的指令以及其他打包指令。执行单元142通过内部总线而耦合至寄存器组 145。寄存器组145表示处理核159上的存储区域,用于存储包括数据的信息。如前所述的, 可以理解,该存储区域被用于存储打包数据不是关键。执行单元142耦合至解码器144。解 码器144用于将处理核159所接收到的指令解码。

45、为控制信号和/或微代码进入点。响应于 这些控制信号和/或微代码进入点,执行单元142执行合适的操作。在一个实施例中,解码 器用于解释指令的操作码,操作码指示应当对该指令内所指示的对应数据执行何种操作。 0065 处理核159耦合至总线141,用于与多个其他系统设备进行通信,这些系统设备 包括但不限于:例如,同步动态随机存取存储器(SDRAM)控制器146、静态随机存取存储器 (SRAM)控制器147、猝发闪存接口148、个人计算机存储卡国际协会(PCMCIA)/致密闪存 (CF)卡控制器149、液晶显示器(LCD)控制器150、直接存储器存取(DMA)控制器151、以及 替代的总线主接口152。

46、。在一个实施例中,数据处理系统140也包括I/O桥154,用于经由 I/O总线153与多个I/O设备进行通信。这样的I/O设备可包括但不限于:例如,通用异步 接收机/发射机(UART)155、通用串行总线(USB)156、蓝牙无线UART157、以及I/O扩展接口 158。 0066 数据处理系统140的一个实施例提供了移动通信、网络通信和/或无线通信,并提 说 明 书CN 103959236 A 11 8/26页 12 供了能够执行SIMD操作的处理核159,SIMD操作包括向量横向多数表决功能。处理核159 可编程有多种音频、视频、图像和通信算法,包括离散变换(诸如Walsh-Hadama。

47、rd变换、快 速傅立叶变换(FFT)、离散余弦变换(DCT)、以及它们相应的逆变换)、压缩/解压缩技术 (诸如色彩空间变换)、视频编码运动估计或视频解码运动补偿、以及调制/解调(MODEM) 功能(诸如脉冲编码调制PCM)。 0067 图1C示出了能够执行用于提供向量横向多数表决功能的指令的数据处理系统的 其他替代实施例。根据一个替代实施例,数据处理系统160可包括主处理器166、SIMD协处 理器161、高速缓存处理器167以及输入/输出系统168。输入/输出系统168可选地耦合 至无线接口169。SIMD协处理器161能够执行包括根据一个实施例的指令的操作。处理核 170可适于以一种或多种。

48、处理技术来制造,并且通过充分详细地表示在机器可读介质上可 以便于包括处理核170的数据处理系统160的全部或一部分的制造。 0068 对于一个实施例,SIMD协处理器161包括执行单元162以及一组寄存器组164。主 处理器166的一个实施例包括解码器165,用于识别指令集163的指令,指令集163包括根 据一个实施例的用于由执行单元162所执行的指令。对于替换实施例,SIMD协处理器161 也包括解码器165B的至少一部分以解码指令集163的指令。处理核170也包括对于理解 本发明的实施例不是必需的额外电路(没有示出)。 0069 在操作中,主处理器166执行数据处理指令流,数据处理指令流控。

49、制通用类型的 数据处理操作,包括与高速缓存存储器167以及输入/输入系统168的交互。SIMD协处理 器指令嵌入数据处理指令流中。主处理器166的解码器165将这些SIMD协处理器指令识 别为应当由附连的SIMD协处理器161来执行的类型。因此,主处理器166在协处理器总线 171上发出这些SIMD协处理器指令(或表示SIMD协处理器指令的控制信号),任何附连的 SIMD协处理器从协处理器总线171接收到这些指令。在该情况中,SIMD协处理器161将接 受并执行任何接收到的针对该SIMD协处理器的SIMD协处理器指令。 0070 可经由无线接口169接收数据以通过SIMD协处理器指令进行处理。对于一个示 例,语音通信可以数字信号的形式被接收到,其将被SIMD协处理器指令所处理,以重新生 成表示该语音通信的数字音频采样。对于另一个示例,压缩音频和/或视频可以数字位流 的形式被接收到,其将被SIMD协处理器指令所处理,以重新生成数字音频采样和/或运动 视频帧。对于处理核170的一个实施例,主处理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1