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

用于在寄存器文件中存储分组操作数的方法和处理器技术

技术编号:2882719 阅读:185 留言:0更新日期:2012-04-11 18:40
这一部分提供了把浮点操作数加载到拥有一个或者是一个以上的寄存器文件入口的方法。分组浮点操作数包括多个分量操作数。每一个分量操作数的有效位和幂位被拷贝到寄存器入口的相应字段中,幂位被检验以确定分量操作数是否被格式化。当分量操作数被格式化,分量操作数相应的隐含位就会被设置。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】
相关专利申请本申请与美国专利申请09/169.865“执行SIMD的标量硬件”,它于1998年10月12日提交,并转让给相同的受让人。 专利技术
技术介绍
领域本专利技术涉及处理数据的系统,尤其是通过单指令多数据(SIMD)操作来处理数据的系统。
技术介绍
处理器设计人员一直致力于研究可以增强多处理器运行性能的办法。并行处理多个操作数可以从当前高度优化的处理器中获取额外的运行性能。在某些常见的数学运算和图形运算中,相同的运算在每一个操作数上被重复执行。举例来说,在矩阵乘法中,第一矩阵的行元素与在第二矩阵上相应的列元素相乘,乘积被相加(乘-累加)。通过提供正确的时序排列和执行资源,乘-累加运算可能在多组行-列操作数上同时实现。这种方式叫做向量处理或者是单指令,多数据流处理,以便把它与标量或者是单指令,单数据流(SISD)处理区分开来。为了有效实现单指令多数据流的运算,在通常情况之下,数据被提供到在“分组”数据格式中的执行资源中。举例来说,64位处理器可能在分组数据块上运行,该数据块包括两个32位的操作数。在该示例中,向量乘-累加指令,V-FWA(f1,f2,f3)将存储在寄存器f1中的两个32位操作数与存储在寄存器f2中相应的32位操作数相乘,并把乘积添加到存储在寄存器f3中的两个运行乘积和中。换而言之,数据以分组格式存储在寄存器f1,f2,f3中,该数据提供两个来自于每一个寄存器入口的操作数。如果处理器拥有足够的资源,它可能会同时处理两个或者是两个以上的分组数据块,例如四个或者是四个以上的32位操作数。32位操作数被发送到并行处理并随后被分组的不同执行单元中。甚至是在图形密集化和科学化的编程中,也并非所有的运算都是SIMD运算。大部分由通用处理器执行的软件包括执行标量运算的指令。也就是说,每一个由指令指定的源寄存器存储一个操作数,每一个由指令指定的目标寄存器会接收一个操作数。在上述示例中,标量浮点乘-累加指令,S-FWA(f1,f2,f3)可能把存储在寄存器f1中的单个64位操作数与存储在寄存器f2中相应的64位操作数相乘,并把乘积添加到存储在寄存器f3中的运行乘积和中。由S-FWA指令处理的每一个操作数都以未被分组的格式提供到FWAC部件中。寄存器文件把源操作数提供到执行单元中,并接收来自于执行单元的结果,会消耗大量的处理器晶圆(die)。可以取用的晶圆是大多数处理器芯片上非常宝贵的稀有资源。正是基于这个原因,在通常情况之下,处理器包括每一个主要数据类型的寄存器文件。举例来说,一般而言,处理器拥有一个存储分组和未分组浮点操作数的浮点寄存器。因此,虽然分组操作数包括两个或者是两个以上的分量操作数,还是设计了分组和未分组操作数,以适应相同大小的寄存器入口。为分组和未分组操作数提供执行资源,就出现了对运行性能和费用的挑战。提供高性能的标量和向量处理的方式包括单个标量和向量执行单元这种方式的优势在于每一个标量和向量执行单元都可以以诸如分组和未分组的相应方式优化处理数据,而该方式的问题在于,额外的执行单元会消耗硅晶圆,而硅晶圆是相对而言比较宝贵的资源。除了可以提供正确的执行资源,高性能处理器还必须包括有效传输分组和未分组操作数数据的结构。这种结构既包括那些把操作数数据传输到诸如高速缓冲存储器之类的处理器存储器层中的寄存器文件的结构,也包括把来自于寄存器文件中的操作数数据传输到执行资源中的结构。本专利技术描述了当前可取用的单指令多数据流系统相关的各方面内容。专利技术概述本专利技术提供这样的一种系统,它通过为“活跃”操作数(operand“on-the-fly”)(也就是操作数被加载到寄存器文件入口中)设置隐含位以支持浮点操作数的有效处理。根据本专利技术,浮点操作数被检索加载进入寄存器文件入口中。浮点操作数的选定位被检验,并且,当选定位处于第一种状态中,寄存器文件中的隐含位被设置。在本专利技术的一种实施方案中,浮点操作数是包括两个或多个分量操作数的分组操作数,寄存器文件则包括每一个分量操作数的隐含位。当选定位显示出分量操作数被标准化的时候,分量操作数的隐含位就会被设置。因此,当操作数被加载进入寄存器文件并通过相应寄存器文件入口中的隐含位被追踪的时候,本专利技术允许确定操作数的标准/非标准状态。这样就不再需要使用操作数传输模块中的状态确定逻辑部件,其中操作数传输模块把操作数从寄存器文件中传输到执行单元中。由于操作数传输模块位于执行单元的关键(旁路)通路上,处理器的运行性能就可以大大提高。附图概述以下视图可以作为更好地了解本专利技术地辅助参考,在这些视图中,相同的部件由相同的标号标识。这些视图用于说明本专利技术的选定实施方案,并不限制专利技术的范围。附图说明图1表示根据本专利技术的浮点执行系统的方框图。图2A和2B分别表示图1的寄存器文件中入口里的未分组和分组的操作数。图3表示在分组操作数上的操作数传输模块的运算的方框图。图4表示图1中操作数传输系统的一个实施方案的电路方框图。图5表示图1中输出转换模块的一个实施方案的电路方框图。专利技术详述接下来的内容将详细介绍本专利技术的各方面细节,以便让读者对本专利技术有全面透彻的了解。但是,那些受益于公开内容的本领域的技术人员可以理解,本专利技术即使不依赖于这些特定细节也一样可以执行。此外,为了着重介绍本专利技术的特性,这里并没有对一些非常有名的方法,程序,部件和线路进行的详细介绍。在通常情况之下,处理器结构指定在芯片上资源中存储数据的格式,诸如寄存器文件格式。选择这种寄存器文件格式以便适应处理器执行资源处理的各种不同数据类型,以及任何用于处理数据的补充信息。可适应的数据类型可以是,例如,IEEE 754-1985指定的二进制浮点算法IEEE标准。寄存器文件格式支持这样一种有效处理,通过以随时准备被执行资源访问和处理的格式,来存储操作数数据。对于标量处理来说,每一个操作数都是以寄存器文件格式作为未分组操作数存储的。在这里,“未分组”指的是允许寄存器文件入口中的数据表示不超过一个操作数这种数据格式。例如,处理器可能容纳一个单精度型未分组操作数,一个双精度型未分组操作数,或者是处理器寄存器文件格式的每一个寄存器文件入口一个双精度扩展型未分组操作数。对于向量处理来说,有多个分量操作数被提供到适应单个寄存器文件入口的分组操作数中。适应在一种尺寸大小的寄存器入口中的分组和未分组操作数意味着操作数被映射到不同的寄存器入口中。不同的映射拷贝会反映到从高速缓冲存储器传输到寄存器文件中的资源上,以及那些把操作数从寄存器文件传输到执行资源的结构中。关于标量和向量运算的不同操作数格式还可能反映在它们自身的执行资源中。举例来说,一个有两个32位分量操作数的分组操作数可能适应两个32位执行单元来处理。而在相同系统中的未分组操作数可能由一个64位执行单元作为单个64位操作数来处理。在该示例中,每一个执行管道可以使用三个不同的执行单元,两个32位标量执行单元和一个64位标量执行单元,但是执行管道只能并行处理两个操作数。额外的执行单元会消耗大量宝贵的晶圆和资源。提供两个标量执行单元的另一种方法就是修改标量部件,让它既可以处理标量操作数,也可以适应向量操作数。这种方式不需要使用向量执行单元。然而,以该种方式修改标量部件会降低它在未分组操作数上的运行性能。本专利技术提供本文档来自技高网...

【技术保护点】
一种方法,包括: 为寄存器文件入口检索浮点操作数; 测试浮点操作数的选择位; 当选择位处于第一状态的时候,设置寄存器文件入口中的一个隐含位。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S马金尼S基姆恩GB多施RA戈利维
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1