通过算术和/或按位单元执行条件语句制造技术

技术编号:34509143 阅读:17 留言:0更新日期:2022-08-13 20:53
方法、系统和装置,包括在计算机存储介质上编码的计算机程序,用于通过算术和/或按位单元执行条件语句。访问包括条件语句的计算机程序,该条件语句包括布尔条件。布尔条件被变换成布尔条件的算术和/或按位表达式。计算机程序的算术和/或按位表达式包括代替布尔条件的布尔条件的算术和/或按位表达式。计算机程序的算术和/或按位表达式由处理器的算术和/或按位运算单元执行。或按位运算单元执行。或按位运算单元执行。

【技术实现步骤摘要】
【国外来华专利技术】通过算术和/或按位单元执行条件语句


[0001]本描述一般而言涉及计算系统,并且更具体地涉及计算电路对条件语句和表达式的执行。

技术介绍

[0002]在计算机科学中,条件语句是编程语言的特征,其根据指定的布尔条件评估为True或False而执行不同的计算或动作。
[0003]条件语句的执行要求对布尔条件的评估,因此要求数字的比较。这个比较确定一个数字是大于、等于还是小于另一个数字。布尔条件通常由数字比较器评估。数字比较器是硬件电子设备,它以二进制形式将两个数字作为输入并确定一个数字是大于、小于还是等于另一个数字。
[0004]条件语句使用数字比较器的输出来切换到执行一段或另一段计算机代码。数字比较器的每个整个“if

then do”操作至少花费处理器的2个时钟周期。此外,数字比较器常常无法并行执行多级条件任务。因此,数字比较器(或ALU的逻辑块)常常构成集成电路处理器的瓶颈。

技术实现思路

[0005]本说明书描述系统如何可以单独用处理器的算术块和/或位单元来执行包括条件语句的计算机程序。
[0006]可以实现本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
[0007]条件语句被变换成算术和/或按位运算的集合。照此,计算机程序可以单独由处理器的算术和/或位单元执行。特别地,可以在不使用数字比较器的情况下执行计算机程序。如上面所解释的,数字比较器的每个整体操作至少花费处理器的2个时钟周期。另一方面,处理器的算术单元能够在1个时钟周期内执行绝大多数算术计算。照此,本说明书中描述的技术提高了处理器对计算机程序的执行速度。可以移除数字比较器,这为算术和/或按位运算单元留出更多空间。对于恒定的芯片尺寸,因此可以增加芯片的功率,从而提高执行速度。
[0008]另外,数字比较器常常不能执行多级条件任务的并行执行。因此,数字比较器常常成为集成电路处理器的瓶颈。另一方面,算术和/或按位表达式可以分成多个片段,然后可以由多个算术和/或按位块并行执行。照此,本说明书中描述的技术可以通过多个并行工作的算术块执行计算机程序来进一步提高处理器的执行速度。
[0009]该方法可以在任何合适的编程语言的各个级别上使用。特别地,该方法可以用于任何合适的低级语言(例如,汇编语言,或在指令集体系架构(ISA)级别),以及在任何合适的高级编程语言(例如,C++代码或Java等)的特定软件程序中。
[0010]本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求书中,该主题的其他特征、方面和优点将变得显而易见。
附图说明
[0011]图1是图示示例系统的图。
[0012]图2是用于仅用处理器的(一个或多个)算术和/或按位单元来执行计算机程序的示例过程的流程图。
[0013]图3是图示if

then(

else)条件语句的基本结构的伪代码。
[0014]图4是用于将布尔条件变换成算术和/或按位表达式的示例过程的流程图。
[0015]图5是用于将A=B变换成A=B的算术和/或按位表达式的示例过程的流程图。
[0016]图6是用于将A≥B变换成A≥B的算术和/或按位表达式的示例过程的流程图。
[0017]图7A和7B是用于将A<B变换成A<B的算术和/或按位表达式的示例过程的流程图。
[0018]图8是用于在条件语句具有算术主体时生成计算机程序的算术和/或按位表达式的示例过程的流程图。
[0019]图9是用于在条件语句具有非算术主体时生成计算机程序的算术和/或按位表达式的示例过程的流程图。
[0020]图10是用于提供计算机程序的算术和/或按位表达式的示例过程的流程图。
[0021]图11A是包括具有算术主体的条件语句的C++计算机程序的示例。图11B是由图11A的计算机程序的变换产生的C++计算机程序的示例。图11C是包括具有算术主体的条件语句的汇编语言计算机程序的示例。图11D是由图11C的计算机程序的变换产生的汇编语言计算机程序的示例。
[0022]图12A是包括具有非算术主体的条件语句的C++计算机程序的示例。图12B是由图12A的计算机程序的变换产生的C++计算机程序的示例。图12C是包括具有非算术主体的条件语句的汇编语言计算机程序的示例。图12D是由图12C的计算机程序的变换产生的汇编语言计算机程序的示例。
[0023]图13A和图13B图示了算术和/或按位运算单元的集成电路的组合逻辑电路的示例。
[0024]图14是用于减小矩阵类型数据的尺寸的示例过程的流程图。
[0025]图15是用于并行排序矩阵类型数据的示例过程的流程图。
具体实施方式
[0026]图1是图示示例系统100的图。系统100是可以实现本说明书中描述的技术的系统的示例。
[0027]系统100包括处理器110,诸如中央处理单元(CPU)、图形处理单元(GPU)、神经处理单元(NPU)、张量处理器单元(TPU)或任何其它类型的使得能够执行条件任务的处理单元。处理器执行由计算机程序182中的指令指定的基本算术、逻辑、控制和输入/输出(I/O)操作。处理器110可以是微处理器,其中CPU包含在单个金属氧化物半导体(MOS)集成电路(IC)芯片160上。包含CPU的IC还可以包含存储器单元150,诸如动态随机存取存储器(DRAM),以及多于一级的高速缓存存储器,以及连接到(一个或多个)输入设备180或(一个或多个)输出设备190的外围接口。
[0028]处理器110包括多个功能组件,包括执行算术和按位逻辑运算的一个或多个算术和/或按位运算单元(ABU)130,向ABU 130供给操作数并存储ABU操作的结果的一个或多个
寄存器140,以及通过指导ABU 130、寄存器140和其它组件的协调操作来编排指令的执行的一个或多个控制单元(CU)120。
[0029]ABU 130是执行算术和/或按位逻辑运算的数字电路。ABU 130可以包括一个或多个算术块131、一个或多个按位移位块132和一个或多个按位逻辑块133。算术块131执行算术运算,诸如加法、进位加法、减法、借位减法。按位移位块132执行移位操作,诸如算术移位、逻辑移位、循环、通过进位循环。按位逻辑块133执行按位逻辑运算,诸如AND、OR、异或。在一些实施例中,ABU 130不包括任何数字比较器。在一些实施例中,处理器110不包括任何数字比较器。
[0030]在操作中,处理器110访问并执行包括指令序列的计算机程序182。可以从存储器单元150或从输入设备180访问计算机程序182。处理器可以遵循包括获取、解码和执行步骤的指令周期。可以同时获取、解码和执行多条指令。执行步骤可以由单个动作或一系列动作组成。在每个动作期间,处理器的各个部分被电连接,因此它们可以执行期望操作的全部或部分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】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里斯佩科夫
申请(专利权)人:查里特技术实验室股份有限公司
类型:发明
国别省市:

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

1