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

在不同的粒度等级下广播数据值的指令执行单元制造技术

技术编号:10713338 阅读:149 留言:0更新日期:2014-12-03 17:17
描述了包括用于执行第一指令和第二指令的执行单元的装置。该执行单元包括输入寄存器空间,用于存储当执行第一指令时将被复制的第一数据结构,并用于存储当执行第二指令时将被复制的第二数据结构。第一和第二数据结构都是打包数据结构。第一打包数据结构的数据值是第二打包数据结构的数据值的两倍大小。第一数据结构是第二数据结构的四倍大小。该执行单元还包括复制逻辑电路,用于当执行该第一指令时复制该第一数据结构以便创建第一复制数据结构,并且用于当执行该第二指令时复制该第二数据结构以便创建第二复制数据结构。

【技术实现步骤摘要】
【国外来华专利技术】本专利技术总体上涉及计算科学,并且更具体地涉及在不同的粒度等级下广播数据值的指令执行单元
技术介绍
图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。 图3b描绘“128位”VBROADCASTSS指令。如图3b中所看到的,128位VBROADCASTSS指令从存储器301_B读取32位单精度浮点数据值并且将其复制四次到256位目的地302_B。目的地中的四个剩余的32位元素用零值盖写。 图3c描绘VBROADCASTSD指令。如图3c中所看到的,VBROADCASTSS指令从存储器301_C读取64位双精度浮点数据值并且将其复制四次到256位目的地302_C。 图3d描绘VBROADCASTSF128指令。如图3d中所看到的,VBROADCASTSF128指令从存储器301_D读取128位数据字并且将其复制两次到256位目的地302d。源操作数301_D可以是具有两个64位双精度浮点元素(在图3d中描绘)或四个32位单精度浮点元素(未在图3d中描绘)的打包数据结构。 附图简要说明 本专利技术是通过示例说明的,而不仅局限于各个附图的图示,在附图中,类似的参考标号表示类似的元件,其中: 图1示出指令执行流水线; 图2a和图2b对比标量和向量处理; 图3a至图3d示出现有技术VBROADCAST指令; 图4a至图4g示出改进的VBROADCAST指令; 图5a和图5b涉及用于实现改进的VBROADCAST指令的执行逻辑电路; 图6A-6B是示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图; 图7是示出根据本专利技术的实施例的示例性专用向量友好指令格式的框图; 图8是根据本专利技术的一个实施例的寄存器架构的框图; 图9A是示出根据本专利技术的实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执本文档来自技高网...

【技术保护点】
一种装置,包括:执行单元,用于执行第一指令和第二指令,所述执行单元包括以下:i)输入寄存器空间,用于存储当执行所述第一指令时将被复制的第一数据结构,并且用于存储当执行所述第二指令时将被复制的第二数据结构,所述第一和第二数据结构都是打包数据结构,所述第一打包数据结构的数据值是所述第二打包数据结构的数据值的两倍大小,所述第一数据结构是所述第二数据结构的四倍大小;ii)复制逻辑电路,用于当执行所述第一指令时复制所述第一数据结构以便创建第一复制数据结构,并且用于当执行所述第二指令时复制所述第二数据结构以便创建第二复制数据结构。

【技术特征摘要】
【国外来华专利技术】1.一种装置,包括:
执行单元,用于执行第一指令和第二指令,所述执行单元包括以下:
i)输入寄存器空间,用于存储当执行所述第一指令时将被复制的第一数据结
构,并且用于存储当执行所述第二指令时将被复制的第二数据结构,所述第一和第
二数据结构都是打包数据结构,所述第一打包数据结构的数据值是所述第二打包数
据结构的数据值的两倍大小,所述第一数据结构是所述第二数据结构的四倍大小;
ii)复制逻辑电路,用于当执行所述第一指令时复制所述第一数据结构以便创
建第一复制数据结构,并且用于当执行所述第二指令时复制所述第二数据结构以便
创建第二复制数据结构。
2.如权利要求1所述的装置,其中所述第一复制数据结构包括所述第一数据
结构的两个拷贝。
3.如权利要求1所述的装置,其中所述第二复制数据结构包括所述第二数据
结构的八个拷贝。
4.如权利要求1所述的装置,其中所述第一打包数据结构的所述数据值是每
个64比特并且所述第二打包数据结构的所述数据值是每个32比特。
5.如权利要求1所述的装置,其中所述执行单元进一步包括用于执行复制第
三数据结构十六次的第三指令以便创建第三复制结构的逻辑,所述第三数据结构不
是打包数据结构,所述第三数据结构具有其大小与所述第二数据结构的数据值大小
相同的数据值。
6.如权利要求5所述的装置,其中所述第一打包数据结构的所述数据值是浮
点数据值并且所述第二打包数据结构的所述数据值是浮点数据值。
7.如权利要求5所述的装置,其中所述第一打包数据结构的所述数据值是整

\t型数据值并且所述第二打包数据结构的所述数据值是整型数据值。
8.一种方法,包括:
取出用于第一指令的第一数据结构,所述第一数据结构是第一打包数据结构;
通过在执行单元内复制所述第一数据结构来执行所述第一指令;
取出用于第二指令的第二数据结构,所述第二数据结构是第二打包数据结构,
所述第一打包数据结构的数据值是所述第二打包数据结构的数据值的两倍大小,所
述第一数据结构是所述第二数据结构的四倍大小;
通过在所述执行单元内复制所述第二数据结构来执行所述第二指令。
9.如权利要求8所述的方法,其中所述第一和第二数据值是浮点数据值。
10.如权利要求9所述的方法,其中所述第一数据值是64位并且所述第二数
据值是32位。
11.如权利要求8所述的方法,进一步包括:
取出用于第三指令的第三数据结构,所述第三数据结构是未打包数据结构,
所述第三数据结构的数据值具有与所述第二数据结构的数据值中的所述一个相同
的大小;
通过在所述执行单元内复制所述第三数据结构十六次来执行所述第三指令。
12.如权利要求11所述的方法,进一步包括:...

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

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

1