CN108762720B - 数据处理方法、数据处理装置以及电子设备 - Google Patents
数据处理方法、数据处理装置以及电子设备 Download PDFInfo
- Publication number
- CN108762720B CN108762720B CN201810615304.7A CN201810615304A CN108762720B CN 108762720 B CN108762720 B CN 108762720B CN 201810615304 A CN201810615304 A CN 201810615304A CN 108762720 B CN108762720 B CN 108762720B
- Authority
- CN
- China
- Prior art keywords
- output
- operand
- data processing
- input
- source operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 61
- 238000003672 processing method Methods 0.000 title claims abstract description 55
- 238000007667 floating Methods 0.000 claims abstract description 91
- 238000013528 artificial neural network Methods 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请提出一种数据处理方法、数据处理装置以及电子设备;其中,数据处理方法包含:获取源操作数;基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数;输出目标操作数;其中,所述源操作数为用浮点数格式表示的整数。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据处理方法、数据处理装置以及电子设备。
背景技术
在通用计算机中,往往同时具有整点数据通路和浮点数据通路;而在低端设备中,往往只有整点数据通路,在这种设备中需要用整点数的操作来实现浮点计算,虽然效率低但功能完备。用整点数的操作来实现浮点计算的方法已经很完备,有众多开源和闭源的函数库实现了这一功能。
在一些特殊的计算设备中,由于其目标市场的特点,仅包含了浮点数据通路,但仍然需要在某些特殊情形下,进行整点操作,以实现功能的完备。目前业界尚无方法用浮点数的操作来实现整点的位域操作。
发明内容
本申请实施例提出一种数据处理方法、数据处理装置以及电子设备,用以解决现有技术中在特殊计算设备中无法用浮点数的操作来实现整点的位域操作的问题。
根据本申请的一方面,提出一种数据处理方法、数据处理装置以及电子设备。其中,数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,包含:获取源操作数;基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数;以及输出目标操作数;其中,源操作数为用浮点数格式表示的整数。
在一些实施例中,基于浮点数据通路对源操作数进行移位操作从而得到目标操作数,包括:获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;以及根据判断结果将源操作数进行移位操作从而得到目标操作数;其中,第一输入、第二输入为浮点数格式数据。
在一些实施例中,判断第二输出与中间操作数的大小,包括:如果第二输出大于中间操作数,则将第二输出减去第二输入得到第三输出。
在一些实施例中,判断第二输出与中间操作数的大小,包括:如果第二输出不大于中间操作数,则第二输出作为第三输出。
在一些实施例中,根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。
在一些实施例中,根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数。
根据本申请的另一方面,提出一种数据处理方法,应用于嵌入式神经网络处理器,包括:获取源操作数;基于浮点数据通路对源操作数进行移位操作从而得到目标操作数;输出目标操作数;其中,源操作数为用浮点数格式表示的整数。
在一些实施例中,基于浮点数据通路对源操作数进行移位操作从而得到目标操作数,包括:获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;根据判断结果将源操作数进行移位操作从而得到目标操作数;其中,第一输入、第二输入为浮点数格式数据。
在一些实施例中,判断第二输出与中间操作数的大小,包括:如果第二输出大于中间操作数,则将第二输出减去第二输入得到第三输出。
在一些实施例中,判断第二输出与中间操作数的大小,包括:如果第二输出不大于中间操作数,则第二输出作为第三输出。
在一些实施例中,根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。
在一些实施例中,根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数。
根据本申请的另一方面,提出一种数据处理装置。其中,数据处理装置包含:数据获取单元,配置来获取源操作数;数据处理单元,配置来基于浮点数据通路对源操作数进行移位操作从而得到目标操作数;以及数据输出单元,配置来输出目标操作数;其中,所述源操作数为用浮点数格式表示的整数。
在一些实施例中,数据处理单元基于浮点数据通路对源操作数进行移位操作从而得到目标操作数,包括:数据获取单元获取第一输入和第二输入;数据处理单元将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;数据处理单元将第一输出减去第一输入得到第二输出;数据处理单元判断第二输出与中间操作数的大小;数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数;其中,源操作数、第一输入、第二输入为浮点数格式数据。
在一些实施例中,数据处理单元判断第二输出与中间操作数的大小,包括:如果第二输出大于所述中间操作数,则数据处理单元将第二输出减去第二输入得到第三输出。
在一些实施例中,数据处理单元判断第二输出与中间操作数的大小,包括:如果第二输出不大于中间操作数,则数据处理单元将第二输出作为第三输出。
在一些实施例中,数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:数据处理单元将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。
在一些实施例中,数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:数据处理单元将中间操作数减去第三输出得到第四输出;以及数据处理单元将第四输出作为目标操作数。
根据本申请的另一方面,提出一种电子设备。其中,电子设备包括:至少一个嵌入式神经网络处理器;以及与至少一个嵌入式神经网络处理器连接的存储器;其中,存储器存储有可被所述至少一个嵌入式神经网络处理器执行的指令,所述指令被至少一个嵌入式神经网络处理器执行时,使至少一个嵌入式神经网络处理器执行如上所述的数据处理方法。
在一些实施例中,上述的电子设备为矿机。
本申请的实施例所揭示的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
参照后文的说明和附图,详细申请了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
一个或多个实施例通过与之对应的附图进行实例性说明,这些实例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,附图不构成比例限制,并且其中:
图1是根据本申请的实施例提供的数据处理方法的整体流程图;
图2是根据本申请的实施例提供的数据处理装置的整体结构示意图;以及
图3是根据本申请的实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本领域技术技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本申请可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
第一实施例
根据本申请的一方面,提出一种数据处理方法。数据处理方法包含:获取源操作数;获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;当第二输出大于中间操作数时,则将第二输出减去第二输入得到第三输出。将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。其中,源操作数为用浮点数格式表示的整数;第一输入、所述第二输入为浮点数格式数据;最后输出目标操作数。
下面将结合附图1详细说明本申请的第一实施例。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;如图1所示,首先执行S11,即获取源操作数,在本申请的一种实施例中,获取的源操作数为一个用浮点数格式表示的整数(即该整数的小数部分是0),例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,本实施例中获取的源操作数的取值只是示意性的,可以根据不同的设计要求获取不同的源操作数。
当获取完源操作数之后,执行步骤S12,即基于浮点数通路对源操作数进行移位操作,其中步骤S12包含:
获取第一输入和第二输入;在本申请的一种实施例中,获取的第一输入和第二输入为用浮点数表示的数据,例如,在本申请的一种实施方式中,获取的第一输入取值为:10000000-00000000-00000000*28,用十六进制形式表示即0x80000000;获取的第二输入取值为1*28,用十六进制形式表示即0x100。本实施例中获取的第一输入和第二输入的取值只是示意性的,可以根据不同的设计要求获取不同的第一输入和第二输入。
将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;其中,根据浮点数相加原理,第一输入与源操作数相加的时候,源操作数要右移,以便同第一输入对齐,此时源操作数变为中间操作数。例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,第一输入取值为10000000-00000000-00000000*28,则根据上述运算原理,当第一输入与源操作数相加时候,源操作数由于需要与第一输入对齐,其变为中间操作数:11000111-00111000.10101010*28,那么第一输出则为:11000111-00111000.10101010*28+10000000-00000000-00000000*28=10000000-11000111-00111001*28,这里需要注意的是,由于浮点数相加的运算原理,在第一输入与源操作数相加的过程中,源操作数变为的中间操作数的最后八位10101010被移出去了,并且第一输出的最后一位产生了进位,由0变为了1。
将第一输出减去第一输入得到第二输出;如上所述,第一输出为10000000-11000111-00111001*28,第一输入为10000000-00000000-00000000*28,那么第二输出为:10000000-11000111-00111001*28-10000000-00000000-00000000*28=11000111-00111001*28。
判断第二输出与中间操作数的大小;如果第二输出大于中间操作数时,则将第二输出减去第二输入得到第三输出。根据上述结果,第二输出为11000111-00111001*28,中间操作数为11000111-00111000.10101010*28,第二输出是大于中间操作数的,因此要将第二输出减去第二输入得到第三输出值为:1000111-00111001*28-1*28=11000111-00111000*28。
将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。如上实例中所述,根据二进制运算法则,将第三输出11000111-00111000*28除以28,得到了源操作数右移八位的结果11000111-00111000,此结果为目标操作数的16位最高有效位(mostsignificant bit),并将此结果作为目标操作数。
最后执行步骤S13,即输出目标操作数。
在本实施例中,浮点数格式数据包括但不限于IEEE浮点数格式数据。
上述实施例中的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,通过上述实施例中的数据处理方法,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,上述实施例中的数据处理方法也可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
第二实施例
根据本申请的一方面,提出一种数据处理方法。数据处理方法包含:获取源操作数;获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;当第二输出大于中间操作数时,则将第二输出减去第二输入得到第三输出。将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数;其中,源操作数为用浮点数格式表示的整数;第一输入、第二输入为浮点数格式数据;最后输出目标操作数。
下面将结合附图1详细说明本申请的第二实施例。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;如图1所示,首先执行S11,即获取源操作数,在本申请的一种实施例中,获取的源操作数为一个用浮点数格式表示的整数(即该整数的小数部分是0),例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,本实施例中获取的源操作数的取值只是示意性的,可以根据不同的设计要求获取不同的源操作数。
当获取完源操作数之后,执行步骤S12,即基于浮点数通路对源操作数进行移位操作,其中步骤S12包含:
获取第一输入和第二输入;在本申请的一种实施例中,获取的第一输入和第二输入为用浮点数表示的数据,例如,在本申请的一种实施方式中,获取的第一输入取值为:10000000-00000000-00000000*28,用十六进制形式表示即0x80000000;获取的第二输入取值为1*28,用十六进制形式表示即0x100。本实施例中获取的第一输入和第二输入的取值只是示意性的,可以根据不同的设计要求获取不同的第一输入和第二输入。
将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;其中,根据浮点数相加原理,第一输入与源操作数相加的时候,源操作数要右移,以便同第一输入对齐,此时源操作数变为中间操作数。例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,第一输入取值为10000000-00000000-00000000*28,则根据上述运算原理,当第一输入与源操作数相加时候,源操作数由于需要与第一输入对齐,其变为中间操作数:11000111-00111000.10101010*28,那么第一输出则为:11000111-00111000.10101010*28+10000000-00000000-00000000*28=10000000-11000111-00111001*28,这里需要注意的是,由于浮点数相加的运算原理,在第一输入与源操作数相加的过程中,源操作数变为的中间操作数的最后八位10101010被移出去了,并且第一输出的最后一位产生了进位,由0变为了1。
将第一输出减去第一输入得到第二输出;如上所述,第一输出为10000000-11000111-00111001*28,第一输入为10000000-00000000-00000000*28,那么第二输出为:10000000-11000111-00111001*28-10000000-00000000-00000000*28=11000111-00111001*28。
判断第二输出与中间操作数的大小;如果第二输出大于中间操作数时,则将第二输出减去第二输入得到第三输出。根据上述结果,第二输出为11000111-00111001*28,中间操作数为11000111-00111000.10101010*28,第二输出是大于中间操作数的,因此要将第二输出减去第二输入得到第三输出值为:1000111-00111001*28-1*28=11000111-00111000*28。
将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数。如上述实施方式中所给出,用中间操作数减去第三输出得到第四输出值为:
11000111-00111000.10101010*28-11000111-00111000*28=0.10101010*28;第四输出10101010则为目标操作数的8位最低有效位(least significant bit),第四输出即为源操作数左移十六位的结果,将第四输出作为目标操作数。
最后执行步骤S13,即输出目标操作数。
在本实施例中,浮点数格式数据包括但不限于IEEE浮点数格式数据。
上述实施例中的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,通过上述实施例中的数据处理方法,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,上述实施例中的数据处理方法也可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
第三实施例
根据本申请的一方面,提出一种数据处理方法。数据处理方法包含:获取源操作数;获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;当第二输出不大于中间操作数,则第二输出作为第三输出。将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数;其中,源操作数为用浮点数格式表示的整数;第一输入、第二输入为浮点数格式数据;最后输出目标操作数。
下面将结合附图1详细说明本申请的第三实施例。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;如图1所示,首先执行S11,即获取源操作数,在本申请的一种实施例中,获取的源操作数为一个用浮点数格式表示的整数(即该整数的小数部分是0),例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-00000000*20,本实施例中获取的源操作数的取值只是示意性的,可以根据不同的设计要求获取不同的源操作数。
当获取完源操作数之后,执行步骤S12,即基于浮点数通路对源操作数进行移位操作,其中步骤S12包含:
获取第一输入和第二输入;在本申请的一种实施例中,获取的第一输入和第二输入为用浮点数表示的数据,例如,在本申请的一种实施方式中,获取的第一输入取值为:10000000-00000000-00000000*28,用十六进制形式表示即0x80000000;获取的第二输入取值为1*28,用十六进制形式表示即0x100。本实施例中获取的第一输入和第二输入的取值只是示意性的,可以根据不同的设计要求获取不同的第一输入和第二输入。
将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;其中,根据浮点数相加原理,第一输入与源操作数相加的时候,源操作数要右移,以便同第一输入对齐,此时源操作数变为中间操作数。例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-00000000*20,第一输入取值为10000000-00000000-00000000*28,则根据上述运算原理,当第一输入与源操作数相加时候,源操作数由于需要与第一输入对齐,其变为中间操作数:11000111-00111000.00000000*28,那么第一输出则为:11000111-00111000.00000000*28+10000000-00000000-00000000*28=10000000-11000111-00111000*28,这里需要注意的是,由于浮点数相加的运算原理,在第一输入与源操作数相加的过程中,源操作数变为的中间操作数的最后八位00000000被移出去了。
将第一输出减去第一输入得到第二输出;如上所述,第一输出为10000000-11000111-00111000*28,第一输入为10000000-00000000-00000000*28,那么第二输出为:10000000-11000111-00111001*28-10000000-00000000-00000000*28=11000111-00111000*28。
当第二输出不大于中间操作数,则第二输出作为第三输出;由于第二输出11000111-00111000*28不大于中间操作数11000111-00111000.00000000*28,故直接将第二输出的值作为第三输出的值。
将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数;如上实例中所述,根据二进制运算法则,将第三输出11000111-00111000*28除以28,得到了源操作数右移八位的结果11000111-00111000,即为源操作数的16位最高有效位(most significantbit)并将此结果作为目标操作数。
最后执行步骤S13,即输出目标操作数。
在本实施例中,浮点数格式数据包括但不限于IEEE浮点数格式数据。
上述实施例中的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,通过上述实施例中的数据处理方法,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,上述实施例中的数据处理方法也可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
第四实施例
根据本申请的一方面,提出一种数据处理方法。数据处理方法包含:获取源操作数;获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;当第二输出不大于中间操作数,则第二输出作为第三输出。将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数;其中,源操作数为用浮点数格式表示的整数;第一输入、第二输入为浮点数格式数据;最后输出目标操作数。
下面将结合附图1详细说明本申请的第四实施例。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;如图1所示,首先执行S11,即获取源操作数,在本申请的一种实施例中,获取的源操作数为一个用浮点数格式表示的整数(即该整数的小数部分是0),例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-01010101*20,本实施例中获取的源操作数的取值只是示意性的,可以根据不同的设计要求获取不同的源操作数。
当获取完源操作数之后,执行步骤S12,即基于浮点数通路对源操作数进行移位操作,其中步骤S12包含:
获取第一输入和第二输入;在本申请的一种实施例中,获取的第一输入和第二输入为用浮点数表示的数据,例如,在本申请的一种实施方式中,获取的第一输入取值为:10000000-00000000-01010101*28,用十六进制形式表示即0x80000000;获取的第二输入取值为1*28,用十六进制形式表示即0x100。本实施例中获取的第一输入和第二输入的取值只是示意性的,可以根据不同的设计要求获取不同的第一输入和第二输入。
将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;其中,根据浮点数相加原理,第一输入与源操作数相加的时候,源操作数要右移,以便同第一输入对齐,此时源操作数变为中间操作数。例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-01010101*20,第一输入取值为10000000-00000000-00000000*28,则根据上述运算原理,当第一输入与源操作数相加时候,源操作数由于需要与第一输入对齐,其变为中间操作数:11000111-00111000.01010101*28,那么第一输出则为:11000111-00111000.01010101*28+10000000-00000000-00000000*28=10000000-11000111-00111000*28,这里需要注意的是,由于浮点数相加的运算原理,在第一输入与源操作数相加的过程中,源操作数变为的中间操作数的最后八位01010101被移出去了。
将第一输出减去第一输入得到第二输出;如上所述,第一输出为10000000-11000111-00111000*28,第一输入为10000000-00000000-00000000*28,那么第二输出为:10000000-11000111-00111001*28-10000000-00000000-00000000*28=11000111-00111000*28。
如果第二输出不大于中间操作数,则第二输出作为第三输出;由于第二输出11000111-00111000*28不大于中间操作数11000111-00111000.01010101*28,故直接将第二输出的值作为第三输出的值。
将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数。如上述实施方式中所给出,用中间操作数减去第三输出得到第四输出值为:
11000111-00111000.01010101*28-11000111-00111000*28=0.01010101*28;第四输出01010101则为目标操作数的8位最低有效位(least significant bit),第四输出即为源操作数左移十六位的结果,将第四输出作为目标操作数。
最后执行步骤S13,即输出目标操作数。
在本实施例中,浮点数格式数据包括但不限于IEEE浮点数格式数据。
上述实施例中的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,通过上述实施例中的数据处理方法,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,上述实施例中的数据处理方法也可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
第五实施例
根据本申请的一方面,提出一种数据处理方法。数据处理方法包含:获取源操作数;获取第一输入和第二输入;将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;将第一输出减去第一输入得到第二输出;判断第二输出与中间操作数的大小;
如果第二输出不大于中间操作数,则第二输出作为第三输出。将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数;其中,源操作数为用浮点数格式表示的整数;第一输入、第二输入为浮点数格式数据;输出目标操作数。
下面将结合附图1详细说明本申请的第五实施例。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;如图1所示,首先执行S11,即获取源操作数,在本申请的一种实施例中,获取的源操作数为一个用浮点数格式表示的整数(即该整数的小数部分是0),例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,本实施例中获取的源操作数的取值只是示意性的,可以根据不同的设计要求获取不同的源操作数。
当获取完源操作数之后,执行步骤S12,即基于浮点数通路对源操作数进行移位操作,其中步骤S12包含:
获取第一输入和第二输入;在本申请的一种实施例中,获取的第一输入和第二输入为用浮点数表示的数据,例如,在本申请的一种实施方式中,获取的第一输入取值为:10000000-00000000-00000000*216,用十六进制形式表示即0x8000000000;获取的第二输入取值为1*216,用十六进制形式表示即0x10000。本实施例中获取的第一输入和第二输入的取值只是示意性的,可以根据不同的设计要求获取不同的第一输入和第二输入。
将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;其中,根据浮点数相加原理,第一输入与源操作数相加的时候,源操作数要右移,以便同第一输入对齐,此时源操作数变为中间操作数。例如,在本申请的一种实施方式中,源操作数取为:11000111-00111000-10101010*20,第一输入取值为10000000-00000000-00000000*216,则根据上述运算原理,当第一输入与源操作数相加时候,源操作数由于需要与第一输入对齐,其变为中间操作数:11000111.00111000-10101010*216,那么第一输出则为:11000111.00111000-10101010*216+10000000-00000000-00000000*216=10000000-00000000-11000111*216,这里需要注意的是,由于浮点数相加的运算原理,在第一输入与源操作数相加的过程中,源操作数变为的中间操作数的最后十六位00111000-10101010被移出去了。
将第一输出减去第一输入得到第二输出;如上所述,第一输出为10000000-00000000-11000111*216,第一输入为10000000-00000000-00000000*216,那么第二输出为:10000000-00000000-11000111*216-10000000-00000000-00000000*216=11000111*216。
判断第二输出与中间操作数的大小;如果第二输出大于中间操作数时,则将第二输出减去第二输入得到第三输出;如果第二输出不大于中间操作数,则第二输出作为第三输出;将中间操作数减去第三输出得到第四输出;以及将第四输出作为目标操作数。
根据上述结果,第二输出为11000111*216,中间操作数为11000111.00111000-10101010*216,第二输出不大于中间操作数,因此将第二输出值作为第三输出值。
将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。如上实例中所述,根据二进制运算法则,将第三输出11000111*216除以216,得到了源操作数右移十六位的结果11000111,即为源操作数的八位最高有效位(most significant bit),并将此结果作为目标操作数。
最后执行步骤S13,即输出目标操作数。
在本实施例中,浮点数格式数据包括但不限于IEEE浮点数格式数据。
上述实施例中的数据处理方法用于将整数数据转换为可供浮点处理器运算的浮点数,通过上述实施例中的数据处理方法,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。同时,上述实施例中的数据处理方法也可以应用于嵌入式神经网络处理器,在包含嵌入式神经网络处理器的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
根据本申请的另一方面,本申请的实施例还提供了一种数据处理装置,该装置的实施可以参见上述方法实施,重复之处不在赘述。以下所使用的术语“模块”和“单元”,可以是实现预定功能的软件和/或硬件。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能被构想的。
数据处理装置包含:数据获取单元,配置来获取源操作数;数据处理单元,配置来基于浮点数据通路对源操作数进行移位操作从而得到目标操作数;以及数据输出单元,配置来输出目标操作数;其中,源操作数为用浮点数格式表示的整数。
在一些实施例中,数据处理单元基于浮点数据通路对源操作数进行移位操作从而得到目标操作数,包括:数据获取单元获取第一输入和第二输入;数据处理单元将第一输入与源操作数相加得到第一输出,此时源操作数变为中间操作数;数据处理单元将第一输出减去第一输入得到第二输出;数据处理单元判断第二输出与中间操作数的大小;数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数;其中,第一输入、第二输入为浮点数格式数据。
在一些实施例中,数据处理单元判断第二输出与中间操作数的大小,包括:如果第二输出大于所述中间操作数,则数据处理单元将第二输出减去第二输入得到第三输出。
在一些实施例中,数据处理单元判断第二输出与中间操作数的大小,包括:如果第二输出不大于中间操作数,则数据处理单元将第二输出作为第三输出。
在一些实施例中,数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:数据处理单元将第三输出进行右移操作,并将右移操作之后的结果作为目标操作数。
在一些实施例中,数据处理单元根据判断结果将源操作数进行移位操作从而得到目标操作数,包含:数据处理单元将中间操作数减去第三输出得到第四输出;以及数据处理单元将第四输出作为目标操作数。
利用上述实施例中的数据处理装置,在主要面向浮点数操作的设备中,可以在不额外增加面积、不修改指令集的情况下实现对整数数据的位域操作。
根据本申请的另一方面,本申请的实施例还提供了一种电子设备,其结构如图3所示,该电子设备包括:
至少一个嵌入式神经网络处理器(NPU)300,图3中以一个NPU300为例;和存储器(memory)301,还可以包括通信接口(Communication Interface)302和总线303。其中,NPU300、通信接口302、存储器301可以通过总线303完成相互间的通信。通信接口302可以用于信息传输。处NPU300可以调用存储器301中的逻辑指令,以执行上述实施例的数据处理方法。
在一些特定的实施方式中,电子设备为矿机。
此外,上述的存储器301中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器301作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。NPU300通过运行存储在存储器301中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的数据处理方法。
存储器301可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是矿机、个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。比如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。所述计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机系统读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带以及光数据存储装置等。所述计算机可读介质还可以分布于通过网络联接的计算机系统中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本公开的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。
Claims (17)
1.一种数据处理方法,用于将整数数据转换为可供浮点处理器运算的浮点数,其特征在于,所述数据处理方法包括:
获取源操作数;
基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数;输出所述目标操作数;
其中,基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数,包括:
获取第一输入和第二输入;
将所述第一输入与所述源操作数相加得到第一输出,此时所述源操作数变为中间操作数;
将所述第一输出减去所述第一输入得到第二输出;
判断所述第二输出与所述中间操作数的大小;
根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数;
其中,所述源操作数为用浮点数格式表示的整数,所述第一输入、所述第二输入为浮点数格式数据。
2.根据权利要求1所述的数据处理方法,其特征在于,判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出大于所述中间操作数,则将所述第二输出减去所述第二输入得到第三输出。
3.根据权利要求1所述的数据处理方法,其特征在于,判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出不大于所述中间操作数,则所述第二输出作为第三输出。
4.根据权利要求2或3中任意一项所述的数据处理方法,其特征在于,根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
将所述第三输出进行右移操作,并将右移操作之后的结果作为所述目标操作数。
5.根据权利要求2或3中任一项所述的数据处理方法,其特征在于,根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
将所述中间操作数减去所述第三输出得到第四输出;以及
将所述第四输出作为所述目标操作数。
6.一种数据处理方法,应用于嵌入式神经网络处理器,其特征在于,所述数据处理方法包括:
获取源操作数;
基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数;
输出所述目标操作数;
其中,基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数,包括:
获取第一输入和第二输入;
将所述第一输入与所述源操作数相加得到第一输出,此时所述源操作数变为中间操作数;
将所述第一输出减去所述第一输入得到第二输出;
判断所述第二输出与所述中间操作数的大小;
根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数;
其中,所述源操作数为用浮点数格式表示的整数,所述第一输入、所述第二输入为浮点数格式数据。
7.根据权利要求6所述的数据处理方法,其特征在于,判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出大于所述中间操作数,则将所述第二输出减去所述第二输入得到第三输出。
8.根据权利要求6所述的数据处理方法,其特征在于,判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出不大于所述中间操作数,则所述第二输出作为第三输出。
9.根据权利要求7或8中任意一项所述的数据处理方法,其特征在于,根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
将所述第三输出进行右移操作,并将右移操作之后的结果作为所述目标操作数。
10.根据权利要求7或8中任意一项所述的数据处理方法,其特征在于,根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
将所述中间操作数减去所述第三输出得到第四输出;以及
将所述第四输出作为所述目标操作数。
11.一种数据处理装置,其特征在于,所述数据处理装置包括:
数据获取单元,配置来获取源操作数;
数据处理单元,配置来基于浮点数据通路对所述源操作数进行移位操作从而得到目标操作数;
数据输出单元,配置来输出所述目标操作数;
其中,所述数据处理单元,具体用于:
获取第一输入和第二输入;
将所述第一输入与所述源操作数相加得到第一输出,此时所述源操作数变为中间操作数;
所述第一输出减去所述第一输入得到第二输出;
判断所述第二输出与所述中间操作数的大小;
根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数;
其中,所述源操作数为用浮点数格式表示的整数,所述第一输入、所述第二输入为浮点数格式数据。
12.根据权利要求11所述的数据处理装置,其特征在于,所述数据处理单元判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出大于所述中间操作数,则所述数据处理单元将所述第二输出减去所述第二输入得到第三输出。
13.根据权利要求11所述的数据处理装置,其特征在于,所述数据处理单元判断所述第二输出与所述中间操作数的大小,包括:
如果所述第二输出不大于所述中间操作数,则所述数据处理单元将所述第二输出作为第三输出。
14.根据权利要求12或13中任意一项所述的数据处理装置,其特征在于,所述数据处理单元根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
所述数据处理单元将所述第三输出进行右移操作,并将右移操作之后的结果作为所述目标操作数。
15.根据权利要求12或13中任一项所述的数据处理装置,其特征在于,所述数据处理单元根据判断结果将所述源操作数进行移位操作从而得到所述目标操作数,包含:
所述数据处理单元将所述中间操作数减去所述第三输出得到第四输出;以及
所述数据处理单元将所述第四输出作为所述目标操作数。
16.一种电子设备,其特征在于,包括:
至少一个嵌入式神经网络处理器;以及
与所述至少一个嵌入式神经网络处理器连接的存储器;其中,
所述存储器存储有可被所述至少一个嵌入式神经网络处理器执行的指令,所述指令被至少一个嵌入式神经网络处理器执行时,使所述至少一个嵌入式神经网络处理器执行权利要求6-10中任意一项所述的方法。
17.根据权利要求16所述的电子设备,其特征在于:
所述电子设备为矿机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615304.7A CN108762720B (zh) | 2018-06-14 | 2018-06-14 | 数据处理方法、数据处理装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810615304.7A CN108762720B (zh) | 2018-06-14 | 2018-06-14 | 数据处理方法、数据处理装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108762720A CN108762720A (zh) | 2018-11-06 |
CN108762720B true CN108762720B (zh) | 2021-06-29 |
Family
ID=64021282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810615304.7A Active CN108762720B (zh) | 2018-06-14 | 2018-06-14 | 数据处理方法、数据处理装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762720B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579519B (zh) * | 2021-03-01 | 2021-05-25 | 湖北芯擎科技有限公司 | 数据运算电路和处理芯片 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257215A (en) * | 1992-03-31 | 1993-10-26 | Intel Corporation | Floating point and integer number conversions in a floating point adder |
US6523050B1 (en) * | 1999-08-19 | 2003-02-18 | National Semiconductor Corporation | Integer to floating point conversion using one's complement with subsequent correction to eliminate two's complement in critical path |
CN101256546A (zh) * | 2007-03-01 | 2008-09-03 | 黄新亚 | 32位微处理器 |
CN101692200A (zh) * | 2008-03-11 | 2010-04-07 | 魏营隆 | 数字绳码编码解码及加减乘除倒数算术电路设计的方法 |
CN105335127A (zh) * | 2015-10-29 | 2016-02-17 | 中国人民解放军国防科学技术大学 | Gpdsp中支持浮点除法的标量运算单元结构 |
CN105450237A (zh) * | 2015-11-11 | 2016-03-30 | 中国电子科技集团公司第四十一研究所 | 一种数字中频动态范围扩展方法 |
CN105468331A (zh) * | 2014-09-26 | 2016-04-06 | Arm有限公司 | 独立的浮点转换单元 |
CN107077415A (zh) * | 2014-11-03 | 2017-08-18 | Arm 有限公司 | 用于执行转换运算的装置和方法 |
CN107769791A (zh) * | 2016-08-22 | 2018-03-06 | Arm 有限公司 | 用于定点到浮点的转换的装置和方法及2的负幂检测器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990505B2 (en) * | 2002-05-09 | 2006-01-24 | Sun Microsystems, Inc. | Method/apparatus for conversion of higher order bits of 64-bit integer to floating point using 53-bit adder hardware |
US10089073B2 (en) * | 2015-01-30 | 2018-10-02 | Huawei Technologies Co., Ltd. | Method and apparatus for converting from integer to floating point representation |
JP2017199167A (ja) * | 2016-04-27 | 2017-11-02 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2018
- 2018-06-14 CN CN201810615304.7A patent/CN108762720B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257215A (en) * | 1992-03-31 | 1993-10-26 | Intel Corporation | Floating point and integer number conversions in a floating point adder |
US6523050B1 (en) * | 1999-08-19 | 2003-02-18 | National Semiconductor Corporation | Integer to floating point conversion using one's complement with subsequent correction to eliminate two's complement in critical path |
CN101256546A (zh) * | 2007-03-01 | 2008-09-03 | 黄新亚 | 32位微处理器 |
CN101692200A (zh) * | 2008-03-11 | 2010-04-07 | 魏营隆 | 数字绳码编码解码及加减乘除倒数算术电路设计的方法 |
CN105468331A (zh) * | 2014-09-26 | 2016-04-06 | Arm有限公司 | 独立的浮点转换单元 |
CN107077415A (zh) * | 2014-11-03 | 2017-08-18 | Arm 有限公司 | 用于执行转换运算的装置和方法 |
CN105335127A (zh) * | 2015-10-29 | 2016-02-17 | 中国人民解放军国防科学技术大学 | Gpdsp中支持浮点除法的标量运算单元结构 |
CN105450237A (zh) * | 2015-11-11 | 2016-03-30 | 中国电子科技集团公司第四十一研究所 | 一种数字中频动态范围扩展方法 |
CN107769791A (zh) * | 2016-08-22 | 2018-03-06 | Arm 有限公司 | 用于定点到浮点的转换的装置和方法及2的负幂检测器 |
Non-Patent Citations (2)
Title |
---|
"一种新的整数转换为浮点数的方法";何晶,韩月秋;《计算机工程》;20031130;第29卷(第19期);第38页 * |
"高性能浮点乘加部件的研究与实现";毛二坤;《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》;20080715(第07期);第47-49页,第3.5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108762720A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110036368B (zh) | 用于执行算术运算以累加浮点数的装置及方法 | |
US9928032B2 (en) | Checksum adder | |
CN111460815B (zh) | 规则处理方法、装置、介质及电子设备 | |
US20130301826A1 (en) | System, method, and program for protecting cryptographic algorithms from side-channel attacks | |
US11599671B1 (en) | Systems and methods for finding a value in a combined list of private values | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
EP2901275A1 (en) | Loop vectorization methods and apparatus | |
US8423979B2 (en) | Code generation for complex arithmetic reduction for architectures lacking cross data-path support | |
CN108762720B (zh) | 数据处理方法、数据处理装置以及电子设备 | |
CN103460178A (zh) | 包括掩码上的数学操作的simd整数加法 | |
CN108897522A (zh) | 数据处理方法、数据处理装置以及电子设备 | |
US10558432B2 (en) | Multiply-add operations of binary numbers in an arithmetic unit | |
CN112650469B (zh) | 用于二进制标志确定的电路和方法 | |
EP3208708B1 (en) | Data extraction method and apparatus | |
US20090198758A1 (en) | Method for sign-extension in a multi-precision multiplier | |
CN111381905B (zh) | 一种程序处理方法、装置及设备 | |
US9019135B2 (en) | Efficient string hash computation | |
US10635395B2 (en) | Architecture and instruction set to support interruptible floating point division | |
CN107832623B (zh) | 坐标轨迹加密和解密的方法及系统 | |
US10776077B2 (en) | Method, apparatus and recording medium for processing division calculation | |
CN112861154A (zh) | 面向数据流架构的sha算法执行方法、存储介质、电子装置 | |
US9471276B2 (en) | Pipelined modular reduction and division | |
CN113703753A (zh) | 用于产品开发的方法、装置和产品开发系统 | |
KR20210128387A (ko) | 혼합 정밀 연산을 이용한 처리 장치 | |
US20230185528A1 (en) | Optimization of arithmetic expressions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |