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

在不同的粒度水平下对数据值进行广播和掩码的指令执行制造技术

技术编号:15955914 阅读:67 留言:0更新日期:2017-08-08 09:55
本申请公开了在不同的粒度水平下对数据值进行广播和掩码的指令执行。描述了一种装置,其包括用于执行第一指令和第二指令的执行单元。该执行单元包括输入寄存器空间,该输入寄存器空间用于存储在执行第一指令时要复制的第一数据结构,且用于存储在执行第二指令时要复制的第二数据结构。第一和第二数据结构均是打包数据结构。第一打包数据结构的数据值是第二打包数据结构的数据值的两倍大。该执行单元还包括复制逻辑电路,用于在执行第一指令时复制第一数据结构以创建第一复制数据结构,并用于在执行第二数据指令时复制第二数据结构以创建第二复制数据结构。该执行单元还包括掩码逻辑电路,用于在第一粒度下对第一复制数据结构进行掩码操作,并在第二粒度下对第二复制数据结构进行掩码操作。第二粒度是第一粒度的一半。

【技术实现步骤摘要】
在不同的粒度水平下对数据值进行广播和掩码的指令执行本专利技术专利申请是国际申请号为PCT/US2011/067095,国际申请日为2011年12月23日,进入中国国家阶段的申请号为201180076281.3,名称为“在不同的粒度水平下对数据值进行广播和掩码的指令执行”的专利技术专利申请的分案申请。
本专利技术一般属于计算科学,更具体地涉及在不同的粒度水平下对数据值进行广播和掩码的指令执行。
技术介绍
图1示出了在半导体芯片上用逻辑电路实现的处理核100的高级图。该处理核包括流水线101。该流水线由各自被设计成在完全执行程序代码指令所需的多步骤过程中执行特定步骤的多个级组成。这些级通常至少包括:1)指令取出和解码;2)数据取出;3)执行;4)写回。执行级对由在先前级(例如在上述步骤1))中所取出和解码的指令所标识并在另一先前级(例如在上述步骤2))中被取出的数据执行由在先前级(例如在上述步骤1))中取出和解码的指令所标识的特定操作。被操作的数据通常是从(通用)寄存器存储空间102中取出的。在该操作完成时所创建的新数据通常也被“写回”寄存器存储空间(例如在上述级4))。与执行级相关联的逻辑电路通常由多个“执行单元”或“功能单元”103_1至103_N构成,这些单元各自被设计成执行其自身的唯一操作子集(例如,第一功能单元执行整数数学操作,第二功能单元执行浮点指令,第三功能单元执行从高速缓存/存储器的加载操作和/或到高速缓存/存储器的存储操作等等)。由所有这些功能单元执行的所有操作的集合与处理核100所支持的“指令集”相对应。计算机科学领域中广泛认可两种类型的处理器架构:“标量”和“向量”。标量处理器被设计成执行对单个数据集进行操作的指令,而向量处理器被设计成执行对多个数据集进行操作的指令。图2A和2B呈现了展示标量处理器与向量处理器之间的基本差异的比较示例。图2A示出标量AND(与)指令的示例,其中单个操作数集A和B一起进行“与”运算以产生奇异(或“标量”)结果C(即,AB=C)。相反,图2B示出向量AND指令的示例,其中两个操作数集A/B和D/E并行地分别一起进行“与”运算以同时产生向量结果C和F(即,A.AND.B=C以及D.AND.E=F)。根据术语学,“向量”是具有多个“元素”的数据元素。例如,向量V=Q,R,S,T,U具有五个不同的元素:Q、R、S、T和U。示例性向量V的“尺寸”是5(因为它具有5个元素)。图1还示出向量寄存器空间104的存在,该向量寄存器空间104不同于通用寄存器空间102。具体而言,通用寄存器空间102标准地用于存储标量值。这样,当各执行单元中的任一个执行标量操作时,它们标准地使用从通用寄存器存储空间102调用的操作数(并将结果写回通用寄存器存储空间102)。相反,当各执行单元中的任一个执行向量操作时,它们标准地使用从向量寄存器空间107调用的操作数(并将结果写回向量寄存器空间107)。可类似地分配存储器的不同区域以存储标量值和向量值。还应注意,存在位于功能单元103_1到103_N的相应输入处的掩码逻辑104_1到104_N,以及位于功能单元103_1到103_N的相应输出处的掩码逻辑105_1到105_N。在各种实现中,实际上仅实现这些层中的一个层——不过这并非严格要求。对于采用掩码的任何指令,输入掩码逻辑104_1到104_N和/或输出掩码逻辑105_1到105_N可用于控制哪些元素被该向量指令有效地操作。在此,从掩码寄存器空间106读取掩码向量(例如与从向量寄存器存储空间107读取的输入数据向量一起),并将该掩码向量呈现给掩码逻辑104、105层中的至少一层。在执行向量程序代码的过程中,每一向量指令无需要求全数据字。例如,一些指令的输入向量可能仅仅是8个元素,其他指令的输入向量可能是16个元素,其他指令的输入向量可能是32个元素,等等。因此,掩码层104/105用于标识完整向量数据字中的应用于特定指令的一组元素,以在多个指令之间实现不同的向量尺寸。通常,对于每一向量指令,掩码寄存器空间106中所保持的特定掩码模式被该指令调出,从掩码寄存器空间中被取出并且被提供给掩码层104/105中的任一者或两者,以“启用”针对该特定向量操作的正确元素集合。图3a至3d示出多个现有技术的VBROADCAST指令的逻辑操作。VBROADCAST指令有效地将数据结构复制多次至结果中。图3a至3d的每个现有技术VBROADCAST指令是在具有256位的结果向量数据宽度的向量处理器架构上实现的。图3a描绘“256位”VBROADCASTSS指令。如图3a中观察到,256位VBROADCASTSS指令从存储器301_A读取32位单精度浮点数据值,并将其复制八次至256位目的地302_A中。图3a描绘“128位”VBROADCASTSS指令。如图3b中观察到,128位VBROADCASTSS指令从存储器301_B读取32位单精度浮点数据值,并将其复制四次至256位目的地302b中。用零值写入目的地中的余下四个32位元素。图3c描绘VBROADCASTSD指令。如图3c中观察到,位VBROADCASTSD指令从存储器301_C读取64位双精度浮点数据值,并将其复制四次至256位目的地302_C中。图3d描绘VBROADCASTF128指令。如图3d中观察到,VBROADCASTF128指令从存储器301_D中读取128数据字,并将其重复两次至256位目的地303d中。源操作数301_D可以是具有两个64位双精度浮点元素(在图3d中描绘)或四个32位单精度浮点元素(未在图3d中描绘)的打包数据结构。附图说明本专利技术是通过示例说明的,而不仅局限于各个附图的图示,在附图中,类似的参考标号表示类似的元件,其中:图1示出指令执行流水线;图2a和2b将标量处理与向量处理进行比较;图3a至3d示出现有技术的VBROADCAST指令;图4a至4g示出经改进的VBROADCAST指令;图5a和5b涉及用于实现经改进的VBROADCAST指令的执行逻辑电路;图6A-6B是示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图;图7是示出根据本专利技术的实施例的示例性专用向量友好指令格式的框图;图8是根据本专利技术的一个实施例的寄存器架构的框图;图9A是示出根据本专利技术的实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;图9B是示出根据本专利技术的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;图10A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核);图11是根据本专利技术的实施例的可具有超过一个的核、可具有集成的存储器控制器、并且可具有集成图形的处理器的框图;图12是根据本专利技术一个实施例的系统的框图;图13是根据本专利技术的实施例的第一更具体的示例性系统的框图;图14是根据本专利技术的实施例的第二更具体的示例性系统的框图;图15是根据本专利技术的实施例的SoC的框图;以及图16是根据本专利技术的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令的框图。具体实施本文档来自技高网...

【技术保护点】
一种用于指令处理的装置,包括:解码器,用于将第一指令解码成经解码的第一指令,并用于将第二指令解码成经解码的第二指令;以及执行单元,用于执行经解码的第一指令和经解码的第二指令,所述执行单元包括以下部件:i)输入寄存器空间,用于存储在执行所述经解码的第一指令时要复制的第一数据结构,并用于存储在执行所述经解码的第二指令时要复制的第二数据结构,所述第一数据结构和第二数据结构均为打包数据结构,所述第一打包数据结构的数据值的尺寸是所述第二打包数据结构的数据值的尺寸的两倍大;ii)复制逻辑电路,用于在执行所述经解码的第一指令时复制所述第一数据结构以创建第一复制数据结构,并用于在执行所述经解码的第二指令时复制所述第二数据结构以创建第二复制数据结构;以及iii)掩码逻辑电路,用于在第一粒度下对所述第一复制数据结构进行掩码操作,并在第二粒度下对所述第二复制数据结构进行掩码操作,所述第二粒度是所述第一粒度的一半。

【技术特征摘要】
1.一种用于指令处理的装置,包括:解码器,用于将第一指令解码成经解码的第一指令,并用于将第二指令解码成经解码的第二指令;以及执行单元,用于执行经解码的第一指令和经解码的第二指令,所述执行单元包括以下部件:i)输入寄存器空间,用于存储在执行所述经解码的第一指令时要复制的第一数据结构,并用于存储在执行所述经解码的第二指令时要复制的第二数据结构,所述第一数据结构和第二数据结构均为打包数据结构,所述第一打包数据结构的数据值的尺寸是所述第二打包数据结构的数据值的尺寸的两倍大;ii)复制逻辑电路,用于在执行所述经解码的第一指令时复制所述第一数据结构以创建第一复制数据结构,并用于在执行所述经解码的第二指令时复制所述第二数据结构以创建第二复制数据结构;以及iii)掩码逻辑电路,用于在第一粒度下对所述第一复制数据结构进行掩码操作,并在第二粒度下对所述第二复制数据结构进行掩码操作,所述第二粒度是所述第一粒度的一半。2.如权利要求1所述的装置,其特征在于,所述第一复制数据结构包括所述第一数据结构的四个副本。3.如权利要求1所述的装置,其特征在于,所述第一复制数据结构包括所述第一数据结构的两个副本。4.如权利要求1所述的装置,其特征在于,所述第二复制数据结构包括所述第二数据结构的八个副本。5.如权利要求1所述的装置,其特征在于,所述第二复制数据结构包括所述第二数据结构的四个副本。6.如权利要求1所述的装置,其特征在于,所述第二复制数据结构包括所述第二数据结构的两个副本。7.如权利要求1所述的装置,其特征在于,所述第一打包数据结构的所述数据值均是64位,且所述第二打包数据结构的所述数据值均是32位。8.一种用于处理指令的方法,包括:将第一指令解码为经解码的第一指令;取出用于所述第一指令的第一数据结构,所述第一数据结构是第一打包数据结构;通过以下方式来执行所述经解码的第一指令:在执行单元内复制所述第一数据结构以创建第一复制数据结构,并对所述第一复制数据结构进行掩码操作;将第二指令解码为经解码的第二指令;取出用于所述第二指令的第二数据结构,所述第二数据结构是第二打包数据结构,所述第一打包数据结构的数据值的尺寸是所述第二打包数据结构的数据值的尺寸的两倍大;以及通过以下方式来执行所述经解码的第二指令:在所述执行单元内复制所述第二数据结构以创建第二复制数据结构,并在对所述第一复制数据结构的所述掩码操作的一半粒度下对所述第二复制数据结构进行掩码操作。9.如权利要求8所述的方法,其特征在于,所述第一打包数据结构的数据值和所述第二打包数据结构的数据值是浮点数据值。10.如权利要求9所述的方法,其特征在于,所述第一打包数据结构的所述数据值是64位,且所述第二打包数据结构的所述数据值是32位。11.如权利要求8所述的方法,其特征在于,所述第一复制数据结构包含以下任一数量的所...

【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔R·凡伦天J·考博尔B·L·托尔M·J·查尼
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1