运用平凡算术运算的处理器制造技术

技术编号:4590106 阅读:402 留言:0更新日期:2012-04-11 18:40
本申请涉及处理器领域,尤其涉及算术运算的执行。许多由处理器执行的计算由大量简单运算组成。结果,乘法运算可能需要相当多的时钟周期来完成。本申请提供了一种具有平凡操作数寄存器的处理器,其中在执行存储在数据存储器中的数据值的算术运算或存储运算时,使用平凡操作数寄存器。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及处理器领域,尤其涉及算术运算的执行。
技术介绍
许多由处理器执行的计算由大量简单运算组成。结果,乘法运算可能需要相当多的时钟周期来完成。尽管此运算对于复杂计算而言是合理的,但对平凡运算不能这么说,例如, 一个数与0、 +1或-l相乘可以以简单得多的方式得到答案。在涉及稀疏矩阵的某些应用中,由于存在相当多的零,所执行的平凡运算的数目可能相当可观。稀疏矩阵中的零的数目可通过以诸如压缩行存储(CRS)格式的稀疏格式存储矩阵来减少或消除;然而,由于地址生成方面的开销,这样的存储格式在商用计算机系统上常常导致很差的性能。US5,262,973 (Richardson等人)公开了一种减少其中运算是平凡运算的计算时间的方法。具体地,该方法同时执行至少两个运算。第一个运算是常规的复数算术运算,第二个和更多的运算是通过操作数检查机制执行的,操作数检查机制确定操作数中的一个或全部两个是否是平凡操作数的具体实例。如果操作数之一是平凡操作数的具体实例,则复数算术运算被停止,并且该检查机制根据检测到的平凡操作数迅速输出算术运算的结果。因此,避免了对平凡操作数执行复数算^算的需要。然而,该方法并未消除复数运算,而只是在确定了运算实际上是平凡运算的情况下停止复数运算。
技术实现思路
第一实施例提供了一种处理器,其包括数据存储器,用于存储数据值;平凡操作数寄存器,平凡操作数寄存器用于为数据存储器中的每个数据值存储至少 一个标记,该至少 一个标记表示每个存储的数据值是否是平凡操作数,其中该处理器被配置成在执行指令时采用平凡操作数寄存器。该处理器可包括计算部件,计算部件在执行涉及来自数据存储器的至少一个数据值的运算时采用平凡操作数寄存器。适当地,计算部件可包括控制逻辑单元,控制逻辑单元用于检查平凡操作数寄存器和控制计算单元的操作。该处理器还可包拾故配置成执行比较以确定连至数据存储器的输入线上是否存在平凡操作数的比较器。数据存储器可以以寄存器堆提供。该处理器还可包括多个比较器,每个比较器确定寄存器堆的对应写端口处的数据是否包括平凡操作数。适当地,数据值是浮点值。数据存储器可包括32位、64位或128位寄存器。平凡操作数可包括O、 -l或+l。有利地,平凡操作数唯一地是0值。适当地,所执行的指令包括浮点计算。可提供控制逻辑单元用于检查平凡操作数寄存器和控制浮点计算单元的操作。控制逻辑单元可被配置成在计算涉及平凡操作数的情况下绕开浮点计算单元并直接提供结果。该结果可通过为待存储该结果的寄存器设定平凡操作数寄存器标记来直接提供。任选地,所执行的指令包括数据存储指令。该处理器还可包括被配置成执行对应于向量或矩阵数据的多个非^^式之间的比较的比较器。在另 一个实施例中,提供了 一种对处理器中的第一数据寄存器执行运算的方法,该处理器具有表示第一数据寄存器中是否存在平凡IMt数的平凡操作数寄存器,该方法包括以下步骤在执行涉及所述第一数据寄存器的指令时采用平凡操作数寄存器中的标记。适当地,该方法包括以下初始步骤将数据写入第一数据寄存器;执行数据的比较以确定数据中是否存在平凡操作数;并响应于该比较而在平凡操作数寄存器内设定标记。写入数据和执行比较的步骤可基本上同时执行。第一数据寄存器可以是浮点数据寄存器。任选地,提供多个单独的数据寄存器,每个单独的数据寄存器在平凡操作数寄存器中具有相关联的标记。该多个单独的数据寄存器可以以寄存器堆提供。任选地,指令是计算,并且在控制该处理器中的计算单元的操作时采用平凡操作数寄存器。平凡操作数可包括0、 -l或l。在一种布置中,平凡操作数唯一地是0值。该方法可包括在计算涉及平凡操作数的情况下绕开计算单元并直接提供结果。在这种情况下,该结果可通过为待存储该结果的寄存器设定平凡操作数寄存器标记来直接提供。任选地,所执行的指令包括数据存储指令。附图说明现在将参照附图描述本专利技术,在附图中图1^1# 据本专利技术的示例实施例的处理器的示意图。图2《JJIL据本专利技术的示例实施例的方法的流程图。具体实施例方式本申请采用平凡操作数标记来标识数据存储器内包含的数据是否可认为是平凡操作数。取决于个体处理器架构,数据存储器可采取任何种类的存储单元的形式。尽管如此,为了便于说明,将关于寄存器和/或寄存器堆描述下面的例子。然而,并非意在4吏本申请局限于或限制于这些具体类型的数据存储器。标记的内容是通过将浮点值与已知的平凡值相比较、或者通过从存储器中加载先前比较的结果(它们连同源矩阵/向量数据一起存储在存储器中)来生成的。应认识到,在本申请的背景下,平凡操作fci不需要复杂的计算处理来确定结果的操作数,例如,其中操作数之一是0的两个32位浮点位操作数的乘法不需要完全32位乘法处理来确定结果是0。平凡操作数包括l、 -l和0。等于2的整数倍的操作数也可认为是平凡操作数,因为至少在整数运算中,对于除法或乘法仅涉及简单的移位处理。应认识到,平凡操作数的数目越多,所需的实施复杂度就越高。因而,用于平凡操作数的标记优选地局限于标识操作数是否是l、 -l或0。在某些应用中,涉及O的运算的数目是可观的。这种应用的一个例子是稀疏矩阵的领域,其可能在游戏物理学应用或搜索引擎中用到;在计算速度的潜在节省和功率需求的降低以;M目关联的减少发热的益处方面,为每个数据寄存器设置表示该数据寄存器中存储的值是否为0的单个标记的优点将是显著的。当重复使用源矩阵时,节省尤其大,例如,谷歌的搜索矩阵是n x n稀疏连接矩阵,其中n约等于30亿且每列有6至7个非零条目。谷歌的矩阵每周更新一次,并且每年365天每天24小时每秒钟被查询上千次。0)的示例实施方式。如图1所示,该示例实施方式提供了单精度32位数据寄存器应用,尽管如此,应认识到,图2所示的示例方法亦可应用于包括XMt度和更高精度的其它配置。示例处理器具有寄存器堆,寄存器堆中包含寄存器阵列。在所示的示例布置中,有四个32位寄存器。寄存器堆可以以具有多个端口的快速静态RAM来实现。适当地,寄存器堆被布置成具有专用的读和写端口而不是通过同一端口读和写。虽然采用寄存器堆是有利的,但也可不太有利地釆用多个单独的触发器、高速核心存储器、薄膜存储器和其它存储器技术来实现寄存器。如其它处理器那样,去往寄存器堆的数据可在计算之后从(浮点)计算部件加载,类似地,来自寄存器堆的数据可提供给计算部件用于计算。每个连至寄存器堆的写端口具有32根数据线。在单精度浮点数的情况下,第一位是符号位,1^是指数的8位和尾数的23位。必须比较31根数据线(无需比较符号位)以确定该寄存器的尾数的值是否为0。比较器的单个位输出被写入平凡操作数寄存器内的对应位。比较器的输出的写入由连至寄存器堆的寄存器的写入线来控制。尽管图2图示了数据的加载是先发生的,但应认识到比较和加载可同时发生。而且,在平凡操作数数据与数据本身一起存储在存储器中的情况下,可不需要比较,因为可直接加栽平凡操作数寄存器值。这种布置的一个优点是不需要额外的时钟周期来执行比较,因为比较是与寄存器堆写入并行地免费完成的。可采用平凡操作数寄存器的内容来控制浮点单元的操作以便节省功率和/或减少计算等待时间。在这种布置中,可提供控制逻辑来从与浮点运算的输入操作数用的寄存器对应的平凡操作数寄存器中读取多本文档来自技高网...

【技术保护点】
一种处理器,包括: 数据存储器,用于存储数据值; 平凡操作数寄存器,所述平凡操作数寄存器用于为所述数据存储器中的每个数据值存储至少一个标记,所述至少一个标记表示每个存储的数据值是否是平凡操作数, 其中所述处理器被配置成在执 行指令时采用所述平凡操作数寄存器。

【技术特征摘要】
【国外来华专利技术】GB 2007-3-15 0704999.2;US 2007-4-11 60/911,2741.一种处理器,包括数据存储器,用于存储数据值;平凡操作数寄存器,所述平凡操作数寄存器用于为所述数据存储器中的每个数据值存储至少一个标记,所述至少一个标记表示每个存储的数据值是否是平凡操作数,其中所述处理器被配置成在执行指令时采用所述平凡操作数寄存器。2. 根据权利要求1所述的处理器,其中所述处理器包括计算部件, 所述计算部件在执行涉及来自所述数据存储器的至少一个数据值的运算 时釆用所述平凡操作数寄存器。3. 根据权利要求2所述的处理器,其中所述计算部件包括控制逻辑 单元,所述控制逻辑单元用于检查所述平凡操作数寄存器和控制计算单元 的操作。4. 根据任意一项前述权利要求所述的处理器,其中所述处理器还包 括被配置成执行比较以确定连至所述数据存储器的输入线上是否存在平 凡操作数的比较器。5. 根据权利要求1所述的处理器,其中所述数据存储器以寄存器堆 提供。6. 根据权利要求5所述的处理器,其中所述处理器还包括多个比较 器,每个比较器确定所述寄存器堆的对应写端口处的数据是否包括平凡操 作数。7. 根据任意一项前述权利要求所述的处理器,其中所述数据值是浮 点值。8. 根据权利要求7所述的处理器,其中所述比较器对写入线执行比 较以确定是否存在平凡操作数。9. 根据权利要求8所述的处理器,其中所述数据存储器包括32位、 64位或128位寄存器。10. 根据任意一项前述权利要求所述的处理器,其中所述平凡操作数 包括0、 -l或l。11. 根据权利要求1至10中的任意一项所述的处理器,其中所述平凡操作数唯一地是o值。12. 根据权利要求l至ll中的任意一项所述的处理器,其中所执行 的所述指令包括浮点计算。13. 根据权利要求12所述的处理器,其中提供控制逻辑单元用于检 查所述平凡操作数寄存器和控制浮点计算单元的IMt。14. 根据权利要求13所述的处理器,其中所述控制逻辑单元被配置 成在所述计算涉及平凡操作数的情况下绕开所述浮点计算单元并直接提 供结...

【专利技术属性】
技术研发人员:大卫莫洛尼
申请(专利权)人:线性代数技术有限公司
类型:发明
国别省市:IE[爱尔兰]

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

1
相关领域技术
  • 暂无相关专利