【技术实现步骤摘要】
【国外来华专利技术】通过算术和/或按位单元执行条件语句
[0001]本描述一般而言涉及计算系统,并且更具体地涉及计算电路对条件语句和表达式的执行。
技术介绍
[0002]在计算机科学中,条件语句是编程语言的特征,其根据指定的布尔条件评估为True或False而执行不同的计算或动作。
[0003]条件语句的执行要求对布尔条件的评估,因此要求数字的比较。这个比较确定一个数字是大于、等于还是小于另一个数字。布尔条件通常由数字比较器评估。数字比较器是硬件电子设备,它以二进制形式将两个数字作为输入并确定一个数字是大于、小于还是等于另一个数字。
[0004]条件语句使用数字比较器的输出来切换到执行一段或另一段计算机代码。数字比较器的每个整个“if
‑
then do”操作至少花费处理器的2个时钟周期。此外,数字比较器常常无法并行执行多级条件任务。因此,数字比较器(或ALU的逻辑块)常常构成集成电路处理器的瓶颈。
技术实现思路
[0005]本说明书描述系统如何可以单独用处理器的算术块和/或位单元来执行包括条件语句的计算机程序。
[0006]可以实现本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
[0007]条件语句被变换成算术和/或按位运算的集合。照此,计算机程序可以单独由处理器的算术和/或位单元执行。特别地,可以在不使用数字比较器的情况下执行计算机程序。如上面所解释的,数字比较器的每个整体操作至少花费处理器的2个时钟周期。另一方面,处理器的算术单元能够在1个时钟周期内执 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:访问计算机程序,其中所述计算机程序包括条件语句,所述条件语句包括布尔条件;将所述布尔条件变换成所述布尔条件的算术和/或按位表达式;生成所述计算机程序的算术和/或按位表达式,包括代替所述布尔条件的所述布尔条件的所述算术和/或按位表达式;以及提供所述计算机程序的所述算术和/或按位表达式,其中所述计算机程序的所述算术和/或按位表达式被配置为由处理器的算术和/或按位运算单元执行。2.如权利要求1所述的方法,其中所述布尔条件的所述算术和/或按位表达式验证以下内容:如果所述布尔条件得到验证,那么所述布尔条件的所述算术和/或按位表达式等于1;以及如果所述布尔条件未得到验证,那么所述布尔条件的算术和/或按位表达式等于0。3.如权利要求1所述的方法,其中所述布尔条件取第一变量A和第二变量B,其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:从A中减去B;计算从A中减去B的结果的绝对值;基于从A中减去B的结果的绝对值计算指数;通过计算出的指数对底数的取幂来计算指数;以及基于指数除以底数的余数计算所述布尔条件的算术和/或按位表达式。4.如权利要求3所述的方法,其中所述布尔条件是A=B,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:将所述指数计算为从A中减去B的结果的绝对值;以及将所述布尔条件的算术和/或按位表达式计算为所述指数除以所述底数的余数。5.如权利要求3所述的方法,其中所述布尔条件是A≥B,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:从从A中减去B的结果的绝对值中减去从A中减去B的结果;将所述指数计算为从从A中减去B的结果的绝对值中减去从A中减去B的结果的结果的绝对值;以及将所述布尔条件的算术和/或按位表达式计算为所述指数除以所述底数的余数。6.如权利要求3所述的方法,其中所述布尔条件是A<B,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:从从A中减去B的结果的绝对值中减去从A中减去B的结果;将所述指数计算为从从A中减去B的结果的绝对值中减去从A中减去B的结果的结果的绝对值;通过所述指数对所述底数进行取幂计算指数;以及将所述布尔条件的算术和/或按位表达式计算为1减去所述指数除以所述底数的余数。7.如权利要求3所述的方法,其中所述布尔条件是A=B,其中所述第一和第二变量A和B是浮点型数据,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:
将所述指数计算为应用于从A中减去B的结果的绝对值的上限函数的结果;以及将所述布尔条件的算术和/或按位表达式计算为所述指数除以所述底数的余数。8.如权利要求3所述的方法,其中所述布尔条件是A≥B,其中所述第一和第二变量A和B是浮点型数据,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:从从A中减去B的所述结果的绝对值中减去从A中减去B的结果;将所述指数计算为应用于从从A中减去B的结果的绝对值中减去从A中减去B的结果的结果的绝对值的上限函数的结果;以及将所述布尔条件的算术和/或按位表达式计算为所述指数除以所述底数的余数。9.如权利要求3所述的方法,其中所述布尔条件是A<B,其中所述第一和第二变量A和B是浮点型数据,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:从从A中减去B的结果的绝对值中减去从A中减去B的结果;将所述指数计算为应用于从从A中减去B的结果的绝对值中减去从A中减去B的结果的结果的绝对值的上限函数的结果;通过所述指数对所述底数进行取幂计算指数;以及将所述布尔条件的算术和/或按位表达式计算为1减去所述指数除以所述底数的余数。10.如权利要求3所述的方法,其中所述第一和第二变量A和B是布尔类型数据,其中所述布尔条件是A=B,并且其中将所述布尔条件变换成所述布尔条件的算术和/或按位表达式包括:计算A和B之和;以及将所述布尔条件的算术和/或按位表达式计算为1减去所述和除以所述底数的余数。11.如权利要求3所述的方法,其中所述第一和第二变量A和B包括矩阵类型数据,并且所述方法包括:将所述第一和第二变量A和B中的每一个拆分为相应的所述第一变量A的第一双元素对和所述第二变量B的第二双元素对;以及为了比较,使用来自数学序列的代表性数字形成所述第一和第二变量A和B中的每一个的较小版本,其中所述数学序列的成员之间的差异增加;其中用于所述第一变量A的较小版本的每个代表性数字是从所述数学序列的其在所述数学序列中的索引等于所述第一变量A的所述第一双元素对中的数据值的相应成员计算的;其中用于所述第二变量B的较小版本的每个代表性数字是从所述数学序列的其在所述数学序列中的索引等于所述第二变量B的所述第二双元素对中的数据值的相应成员计算的;以及其中,当所述第一和第二变量A和B中的每一个具有奇数个元素时,在所述拆分之前从所述第一和第二变量A和B中的每一个中移除单个元素,并且将来自所述第一和第二变量A和B中的每一个的单个元素分别添加到所述第一和第二变量A和B的所述较小版本。12.如权利要求11所述的方法,其中所述形成包括:通过对所述第一变量A的所述较小版本的每个元素将所述数学序列的相应成员中与所
述第一变量A的所述第一双元素对中的数据值对应的两个相加来计算用于所述第一变量A的所述较小版本的所述代表性数字;以及通过对所述第二变量B的所述较小版本的每个元素将所述数学序列的相应成员中与所述第二变量B的所述第二双元素对中的数据值对应的两个相加来计算用于所述第二变量B的所述较小版本的所述代表性数字。13.如权利要求11所述的方法,包括对所述第一和第二变量A和B中的每一个进行排序,其中矩阵类型数据变量的所述排序包括:实例化具有与所述矩阵类型数据变量相同数量的元素的新变量;将所述矩阵类型数据变量划分为与要用于执行所述排序的处理线程的数量相等的多个子部分;由相应处理线程中的每一个通过将子部分的每个元素的值与所述矩阵类型数据变量中的所有其它值进行比较来确定由所述处理线程处理的子部分中的每个元素的位置索引,并计数所述矩阵类型数据变量中的元素比所述子部分的被比较元素小多少,或者对于逆位置索引是大多少;根据由所述处理线程确定的位置索引以或者升序或者降序用来自矩阵类型数据变量的值替换所述新变量中的值;以及取决于所述排序是升序还是降序,用所述新变量中的左相邻元素值或右相邻元素值替换所述新变量中任何剩余未改变的值;其中所述新变量被用作所述矩阵类型数据变量的排序的版本。14.如权利要求11所述的方法,包括:计算用于所述第一变量A的所述第一双元素对的第一位置变量;以及计算用于所述第二变量B的所述第二双元素对的第二位置变量;其中计算用于一对元素的每个位置变量包括通过布尔条件Y>X的结果对等于负1的数字进行取幂,其中X是元素对中的第一个元素,并且Y是元素对中的第二个元素;以及其中所述形成包括通过对于所述第一变量A的所述较小版本的每个元素将所述第一位置变量之一乘以所述数学序列的相应成员中与所述第一变量A的所述第一双元素对中的数据值对应的两个的总和,来计算用于所述第一变量A的较小版本的代表性数字,以及通过对于所述第二变量B的所述较小版本的每个元素将所述第二位置变量之一乘以所述数学序列的相应成员中与所述第二变量B的所述第二双元素对中的数据值对应的两个的总和,来计算用于所述第二变量B的较小版本的代表性数字。15.如权利要求3所述的方法,其中所述底数等于2,其中所述处理器使用二进制系统,并且其中通过取指数的最后一位来提取所述指数除以所述底数的余数。16.如权...
【专利技术属性】
技术研发人员:T里斯佩科夫,
申请(专利权)人:查里特技术实验室股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。