CN117785108A - 一种前导数处理方法、系统、设备及存储介质 - Google Patents
一种前导数处理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117785108A CN117785108A CN202410212013.9A CN202410212013A CN117785108A CN 117785108 A CN117785108 A CN 117785108A CN 202410212013 A CN202410212013 A CN 202410212013A CN 117785108 A CN117785108 A CN 117785108A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- derivative
- full
- original data
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000001514 detection method Methods 0.000 claims abstract description 86
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 21
- 239000004065 semiconductor Substances 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请实施例提供一种前导数处理方法、系统、设备及存储介质,涉及存半导体技术领域。其中,本申请的方法包括:将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理;对数据段进行全前导检测结果判断:若为是,则进行对原始数据的前导数处理,并结束全前导检测结果判断;前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数;若为否,则转入下一位次的数据段继续进行全前导检测结果判断。通过本申请提供的方法,能够优化运算的时序,进而提高处理器的主频,使得性能都有显著的提升。
Description
技术领域
本申请涉及半导体技术领域,具体地,涉及一种前导数处理方法、系统、设备及存储介质。
背景技术
在浮点、数字信号处理和向量处理器中,经常需要用到一种运算:在一个时钟周期内将高位的前导零(或一)移出。例如:对于二进制数01011111111111111111111111111111,最高位的零的个数为1个,所以,对其计算前导零的个数为1。
目前,这种运算的常见实现方法为:先计算前导零(或一)的个数,再通过逻辑左移运算将前导零(或一)移出。其中,前导零(或一)个数的计算通常使用移位的方案进行计算,即从高位开始判断,一直判断到出现零(或一)的位数,再根据位数输出前导零(或一)的个数。
现有技术实现简单,对于数据位宽很小的计算场景比较实用,但是随着数据位宽的增大,例如从计算8位、16位的前导零(或一)变为计算32位甚至是64位的前导零(或一),此时,无论是计算前导零(或一)的位数还是根据计算出来的前导零(或一)来进行移位,它们的延时都较大,且上述的两步操作是串行的,导致实际综合后的频率比较低,时序较差,不利于提高处理器的主频。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了一种前导数处理方法、系统、设备及存储介质。
根据本申请实施例的第一个方面,提供了一种前导数处理方法,该方法包括:
将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理;
全前导检测为:判断数据段是否不全为前导数;
初始移位处理为:
若对原始数据自高位至低位进行前导数处理,则将原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次;若对原始数据自低位至高位进行前导数处理,则将原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次;
对数据段进行全前导检测结果判断:
若为是,则进行对原始数据的前导数处理,并结束全前导检测结果判断;前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数;
若为否,则转入下一位次的数据段继续进行全前导检测结果判断;下一位次包括:若前导数处理为逻辑左移,则下一位次方向为自高位至低位;若前导数处理为逻辑右移,则下一位次方向为自低位至高位。
在本申请一个可选的实施例中,将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理的步骤还包括:
每组数据段之间为并行处理关系。
在本申请一个可选的实施例中,将原始数据平均拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理的步骤还包括:
每组数据段内进行的全前导检测和初始移位处理之间为并行处理关系。
在本申请一个可选的实施例中,将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理的步骤还包括:
将原始数据平均拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理。
根据本申请实施例的第二个方面,提供了一种前导数处理系统,该系统包括:
原始数据处理模块,用于将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理;
全前导检测为:判断数据段是否不全为前导数;
初始移位处理为:
若对原始数据自高位至低位进行前导数处理,则将原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次;若对原始数据自低位至高位进行前导数处理,则将原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次;
前导数处理模块,用于对数据段进行全前导检测结果判断:若为是,则进行对原始数据的前导数处理,并结束全前导检测结果判断;前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数;若为否,则转入下一位次的数据段继续进行全前导检测结果判断;下一位次包括:若前导数处理为逻辑左移,则下一位次方向为自高位至低位;若前导数处理为逻辑右移,则下一位次方向为自低位至高位。
在本申请一个可选的实施例中,原始数据处理模块还包括:
每组数据段之间为并行处理关系。
在本申请一个可选的实施例中,原始数据处理模块还包括:
每组数据段内进行的全前导检测和初始移位处理之间为并行处理关系。
在本申请一个可选的实施例中,原始数据处理模块还包括:
将原始数据平均拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理。
根据本申请实施例的第三个方面,提供了一种计算机设备,包括:存储器;
处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
采用本申请实施例中提供的前导数处理方法,具有以下有益效果:
本申请的方法对原始数据分段处理,并通过全导数检测和前导数处理分别进行计算,将高数据位宽的计算前导零(或一)分成了多条低数据位宽的计算前导零(或一),能够优化运算的时序,进而提高处理器的主频,使得性能都有显著的提升。此外,由于性能提升,相较于现有技术而言不再需要其他优化措施,使得装置面积得到缩小。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的前导数处理方法的流程图;
图2为本申请实施例提供的分段运算示意图;
图3为本申请实施例提供的前导零逻辑左移计算逻辑的示意图;
图4为本申请实施例提供的前导零逻辑右移计算逻辑的示意图;
图5为本申请实施例提供的前导数处理系统的结构图;
图6为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
半导体领域中,前导零(或一)为从二进制数据流的最高位开始扫描出第一个1(或0)出现的位置;而从二进制数据流的最高位开始扫描,可以获取到截止到第一个1(或0)为止之间所出现的0(或1)的个数。前导零(或一)在现代集成电路的设计中应用十分广泛,如浮点运算、乱序发射队列、多媒体指令等。例如,浮点数运算过程复杂,其中浮点数尾数前导零(或一)的检测是浮点数运算中一个关键的环节,对整个运算速度有重要的影响。
本申请的发明人发现,现有从高位开始判断,一直判断到出现零(或一)的位数,再根据位数输出前导零(或一)的个数的技术实现简单,对于数据位宽很小的计算场景比较实用,但是随着数据位宽的增大,例如从计算8位、16位的前导零(或一)变为计算32位甚至是64位的前导零(或一),此时,无论是计算前导零(或一)的位数还是根据计算出来的前导零(或一)来进行移位,它们的延时都较大,且上述的两步操作是串行的,导致实际综合后的频率比较低,时序较差,不利于提高处理器的主频。
基于此,请参见图1:
实施例1:
本申请的前导数处理方法包括:
S1:将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理;
全前导检测为:判断数据段是否不全为前导数;
初始移位处理为:
若对原始数据自高位至低位进行前导数处理,则将原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次;若对原始数据自低位至高位进行前导数处理,则将原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次;
S2:对数据段进行全前导检测结果判断:
若为是,则进行对原始数据的前导数处理,并结束全前导检测结果判断;前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数;
若为否,则转入下一位次的数据段继续进行全前导检测结果判断;下一位次包括:若前导数处理为逻辑左移,则下一位次方向为自高位至低位;若前导数处理为逻辑右移,则下一位次方向为自低位至高位。具体的,在本申请实施例中,下一位次即按优先级顺序的下一个数据段,换言之,即优先级顺序为每个数据段之间的位次优先级。
在具体实施中,前导数包括前导零和前导一。在浮点、数字信号处理和向量处理器中,经常需要用到一种运算:在一个时钟周期内将高位的前导零(或一)移出。例如:对于二进制数01011111111111111111111111111111,最高位的零的个数为1个,所以,对其计算前导零的个数为1。
在本申请实施例中,为描述方便,以前导零为例进行说明;但本领域技术人员在获知了本申请实施例所示出的以前导零为例的技术方案后,能够知晓前导一的处理方案。
在具体实施中,将很宽的原始数据分成多个足够小的数据段;具体的,本实施例中将原始数据拆分为4组数据段,即数据段4—数据段1。需要说明的是,为描述方便,本申请实施例中对数据段编码、数值位次等以“1”为起始计数,而非“0”。
对每组数据段进行全前导检测;在本实施例中,全前导检测为:判断数据段是否不全为零。
对每组数据段进行初始移位处理;在本实施例中,需根据原始数据的前导零处理方向决定移位方向。具体的,在具体实施中,基于对实际应用的配置不同,存在前导零位于高位(即位于左侧)和前导零位于低位(即位于右侧)两种情况。
在本申请的其中一些实施例中,若对原始数据自高位至低位进行前导数处理,则初始移位处理为:将原始数据逻辑左移(n-1)位获得初始移位数据;其中,n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次。
进一步的,在本申请其他的一些实施例中,若对原始数据自低位至高位进行前导数处理,则初始移位处理为:将原始数据逻辑右移(n-1)位获得初始移位数据;其中,n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次。
进一步的,本实施例以逻辑左移形式为例,进行全前导检测结果判断,即判断每一段数据是否不为全0;具体的,对应于逻辑左移,全前导检测结果判断的方向为自高位至低位:
若为是,则进行对原始数据的前导零处理,并结束全前导检测结果判断;若为否,则转入下一位次的数据段继续进行全前导检测结果判断。
在本实施例中,以数据段4全前导检测结果为否为例,则转入下一位次,即数据段3进行判断。
在本实施例中,以数据段3全前导检测结果为是为例,则对基于数据段3进行前导零处理;具体的,前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数。基于此,在本实施例中,将数据段3对应的初始移位数据逻辑左移,移出前导数,并结束全前导检测结果判断,即不再向下进行判断,而直接以上述结果作为对原始数据的最终前导零移出结果。即在本实施例中,判断每一段数据是否不为全0,然后按照数据段编号从高到低的优先级,来选择其中某数据段的运算结果,即最终的结果选择数据不为全0且编号最高的数据段对应的运算结果。
在本申请的其他一些实施例中,若对原始数据自低位至高位进行前导数处理,即逻辑右移的形式下,进行全前导检测结果判断时,其方向则为自低位至高位。
基于此,在本实施例中,对原始数据分段处理,先计算各自数据段内几位数据的前导零,再将各自数据段对应的移位数据进行左移处理,这样每一个数据段处理的延时都不长,克服了现有技术中对于数据位宽较大(例如32位或64位)的情况下,其计算场景时延时都很大的技术问题。
此外,通过全导数检测和前导数处理分别进行计算,将高数据位宽的计算前导零(或一)分成了多条低数据位宽的计算前导零(或一),能够优化运算的时序,进而提高处理器的主频,使得性能都有显著的提升。此外,由于性能提升,相较于现有技术而言不再需要其他优化措施,使得装置面积得到缩小。
实施例2:
在前述实施例的基础上,本实施例中步骤S1还包括:
每组数据段之间为并行处理关系。
在具体实施中,并行对每组数据段进行上述计算,即在本实施例中,对于数据段和数据段之间而言,独立进行上述计算,使得可以并行得出每个数据段的全导数检测结果和初始移位处理结果。
基于此,本实施例克服了现有技术中串行处理导致实际综合后的频率比较低、时序较差、不利于提高处理器的主频的技术问题。相较于实施例1而言,基于并行机制,进一步优化了运算的时序,进而进一步提高了处理器的主频,使得性能实现进一步显著的提升。此外,使得装置面积进一步得到缩小。
实施例3:
在前述实施例的基础上,本实施例中步骤S1还包括:
每组数据段内进行的全前导检测和初始移位处理之间为并行处理关系。
在具体实施中,在每组数据段内部,并行进行全前导检测和初始移位处理这两种操作,即在本实施例中,对于数据段自身内部而言,独立进行两种计算,使得可以并行得出一个数据段内的全导数检测结果和初始移位处理结果。
基于此,本实施例克服了现有技术中串行处理导致实际综合后的频率比较低、时序较差、不利于提高处理器的主频的技术问题。相较于实施例1而言,基于并行机制,进一步优化了运算的时序,进而进一步提高了处理器的主频,使得性能实现进一步显著的提升。此外,使得装置面积进一步得到缩小。
在具体实施中,实施例3和实施例2可以同时适用,也可单独适用。
实施例4:
在前述实施例的基础上,本实施例中步骤S1还包括:
将原始数据平均拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理。
在具体实施中,对原始数据进行拆分时,采用平均拆分的方式,即拆分后的每个数据段的位宽相等。基于此,进行全前导检测和初始移位处理时不需要额外的逻辑,而是按照每个数据段的位宽和其数据段的位次直接进行全前导检测和移位,可以进一步减轻逻辑处理压力,默认按照统一的位宽进行相关计算,进一步优化了运算的时序,进而进一步提高了处理器的主频,使得性能实现进一步显著的提升。此外,使得装置面积进一步得到缩小。
结合实施例1-实施例4,请参见图2,本申请以逻辑左移形式为例,提供一具体示例对本申请实施例进行进一步说明:
本实施例以位宽为32位的以下原始数据为例进行说明:
00000000001011100010011111110101
在本实施例中,将上述原始数据按4位一组拆分为多组数据段:
数据段4(32-25位):00000000
数据段3(24-17位):00101110
数据段2(16-9位): 00100111
数据段1(8-1位): 11110101
对上述每组数据段进行全前导检测;在本实施例中,全前导检测为:判断数据段是否不全为零。基于此,全前导检测结果为:
数据段4(32-25位):否
数据段3(24-17位):是
数据段2(16-9位): 是
数据段1(8-1位): 是
对上述每组数据段进行初始移位处理;在本实施例中,初始移位处理为:将原始数据移位(n-1)位获得初始移位数据;其中,n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次。在本实施例中,移位为逻辑左移,基于本实施例的逻辑左移形式,初始移位处理结果为:
数据段4(32-25位)最高位为第32位,在原始数据中自高位至低位所处的位次为1,则n=1,则对应于数据段4,将原始数据逻辑左移0位后得到初始移位数据:
00000000001011100010011111110101
数据段3(24-17位)最高位为第24位,在原始数据中自高位至低位所处的位次为9,则n=9,则对应于数据段3,将原始数据逻辑左移8位后得到初始移位数据:
00101110001001111111010100000000
数据段2(16-9位)最高位为第16位,在原始数据中自高位至低位所处的位次为17,则n=17,则对应于数据段2,将原始数据逻辑左移16位后得到初始移位数据:
00100111111101010000000000000000
数据段1(8-1位)最高位为第8位,在原始数据中自高位至低位所处的位次为25,则n=25,则对应于数据段1,将原始数据逻辑左移24位后得到初始移位数据:
11110101000000000000000000000000
进一步的,自高位至低位对数据段进行全前导检测结果判断,即判断每一段数据是否不为全0:
若为是,则进行对原始数据的前导零处理,并结束全前导检测结果判断;若为否,则转入下一位次的数据段继续进行全前导检测结果判断。
在本实施例中,数据段4全前导检测结果为否,则转入下一位次,即数据段3进行判断。
在本实施例中,数据段3全前导检测结果为是,则对基于数据段3进行前导零处理;具体的,如图3所示,前导零移位计算逻辑包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数。基于此,在本实施例中,将数据段3对应的初始移位数据逻辑左移,移出前导数,结果为:
10111000100111111101010000000000
并结束全前导检测结果判断,即不再向下进行判断,而直接以上述结果作为对原始数据的最终前导零移出结果。即在本实施例中,判断每一段数据是否不为全0,然后按照数据段编号从高到低的优先级,来选择其中某数据段的运算结果,即最终的结果选择数据不为全0且编号最高的数据段对应的运算结果。
通过验证可以发现,对原始数据:
00000000001011100010011111110101
直接进行前导零移出,结果为:
10111000100111111101010000000000
与前述计算结果一致。
进一步的,如前所述,在具体实施中,存在前导零位于低位的情况,相应操作即为逻辑右移。请参见图4,进行逻辑右移时,本实施例以位宽为32位的以下原始数据为例进行说明:
10101111111001000111010000000000
在本实施例中,将上述原始数据按4位一组拆分为多组数据段:
数据段4(32-25位):10101111
数据段3(24-17位):11100100
数据段2(16-9位): 01110100
数据段1(8-1位): 00000000
对上述每组数据段进行全前导检测;在本实施例中,全前导检测为:判断数据段是否不全为零。基于此,全前导检测结果为:
数据段4(32-25位):是
数据段3(24-17位):是
数据段2(16-9位): 是
数据段1(8-1位): 否
对上述每组数据段进行初始移位处理;在本实施例中,初始移位处理为:将原始数据移位(n-1)位获得初始移位数据;其中,n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次。在本实施例中,移位为逻辑右移,基于逻辑右移形式,初始移位处理结果为:
数据段4(32-25位)最低位为第25位,在原始数据中自高位至低位所处的位次为25,则n=25,则对应于数据段4,将原始数据逻辑右移24位后得到初始移位数据:
00000000000000000000000010101111
数据段3(24-17位)最低位为第17位,在原始数据中自高位至低位所处的位次为17,则n=17,则对应于数据段3,将原始数据逻辑右移16位后得到初始移位数据:
00000000000000001010111111100100
数据段2(16-9位)最低位为第9位,在原始数据中自高位至低位所处的位次为9,则n=9,则对应于数据段2,将原始数据逻辑右移8位后得到初始移位数据:
00000000101011111110010001110100
数据段1(8-1位)最低位为第1位,在原始数据中自高位至低位所处的位次为1,则n=1,则对应于数据段1,将原始数据逻辑右移0位后得到初始移位数据:
10101111111001000111010000000000
进一步的,自低位至高位对数据段进行全前导检测结果判断,即判断每一段数据是否不为全0:
若为是,则进行对原始数据的前导零处理,并结束全前导检测结果判断;若为否,则转入下一位次的数据段继续进行全前导检测结果判断。
在本实施例中,数据段1全前导检测结果为否,则转入下一位次,即数据段2进行判断。
在本实施例中,数据段2全前导检测结果为是,则对基于数据段2进行前导零处理;具体的,如图3所示,前导零移位计算逻辑包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数。基于此,在本实施例中,将数据段2对应的初始移位数据逻辑右移,移出前导数,结果为:
00000000001010111111100100011101
并结束全前导检测结果判断,即不再向下进行判断,而直接以上述结果作为对原始数据的最终前导零移出结果。即在本实施例中,判断每一段数据是否不为全0,然后按照数据段编号从低到高的优先级,来选择其中某数据段的运算结果,即最终的结果选择数据不为全0且编号最低的数据段对应的运算结果。
通过验证可以发现,对原始数据:
10101111111001000111010000000000
直接进行前导零移出,结果为:
00000000001010111111100100011101
与前述计算结果一致。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图5,本申请一个实施例提供了前导数处理系统,包括:
原始数据处理模块10,用于将原始数据拆分为多组数据段,对每组数据段进行全前导检测和初始移位处理;
全前导检测为:判断数据段是否不全为前导数;
初始移位处理为:
若对原始数据自高位至低位进行前导数处理,则将原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组数据段中最高位的值在原始数据中自高位至低位所处的位次;若对原始数据自低位至高位进行前导数处理,则将原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组数据段中最低位的值在原始数据中自高位至低位所处的位次;
前导数处理模块20,用于自高位至低位对数据段进行全前导检测结果判断:若为是,则进行对原始数据的前导数处理,并结束全前导检测结果判断;前导数处理包括:将数据段所对应的初始移位数据进行进一步移位,移出前导数;若为否,则转入下一位次的数据段继续进行全前导检测结果判断;下一位次包括:若前导数处理为逻辑左移,则下一位次方向为自高位至低位;若前导数处理为逻辑右移,则下一位次方向为自低位至高位。
关于上述前导数处理系统的具体限定可以参见上文中对于前导数处理方法的限定,在此不再赘述。上述前导数处理系统中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种前导数处理方法。包括:存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上视频信号处理方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上前导数处理方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种前导数处理方法,其特征在于,包括:
将原始数据拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理;
所述全前导检测为:判断所述数据段是否不全为前导数;
所述初始移位处理为:
若对所述原始数据自高位至低位进行前导数处理,则将所述原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组所述数据段中最高位的值在所述原始数据中自高位至低位所处的位次;若对所述原始数据自低位至高位进行前导数处理,则将所述原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组所述数据段中最低位的值在所述原始数据中自高位至低位所处的位次;
对所述数据段进行全前导检测结果判断:
若为是,则进行对所述原始数据的前导数处理,并结束所述全前导检测结果判断;所述前导数处理包括:将所述数据段所对应的所述初始移位数据进行进一步移位,移出所述前导数;
若为否,则转入下一位次的所述数据段继续进行所述全前导检测结果判断;所述下一位次包括:若前导数处理为逻辑左移,则所述下一位次方向为自高位至低位;若前导数处理为逻辑右移,则所述下一位次方向为自低位至高位。
2.根据权利要求1所述的前导数处理方法,其特征在于,所述将原始数据拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理的步骤还包括:
每组所述数据段之间为并行处理关系。
3.根据权利要求1或2所述的前导数处理方法,其特征在于,所述将原始数据平均拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理的步骤还包括:
每组所述数据段内进行的所述全前导检测和所述初始移位处理之间为并行处理关系。
4.根据权利要求3所述的前导数处理方法,其特征在于,所述将原始数据拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理的步骤还包括:
将原始数据平均拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理。
5.一种前导数处理系统,其特征在于,包括:
原始数据处理模块,用于将原始数据拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理;
所述全前导检测为:判断所述数据段是否不全为前导数;
所述初始移位处理为:
若对所述原始数据自高位至低位进行前导数处理,则将所述原始数据逻辑左移(n-1)位获得初始移位数据,其中n为每组所述数据段中最高位的值在所述原始数据中自高位至低位所处的位次;若对所述原始数据自低位至高位进行前导数处理,则将所述原始数据逻辑右移(n-1)位获得初始移位数据,其中n为每组所述数据段中最低位的值在所述原始数据中自高位至低位所处的位次;
前导数处理模块,用于对所述数据段进行全前导检测结果判断:若为是,则进行对所述原始数据的前导数处理,并结束所述全前导检测结果判断;所述前导数处理包括:将所述数据段所对应的所述初始移位数据进行进一步移位,移出所述前导数;若为否,则转入下一位次的所述数据段继续进行所述全前导检测结果判断;所述下一位次包括:若前导数处理为逻辑左移,则所述下一位次方向为自高位至低位;若前导数处理为逻辑右移,则所述下一位次方向为自低位至高位。
6.根据权利要求5所述的前导数处理系统,其特征在于,所述原始数据处理模块还包括:
每组所述数据段之间为并行处理关系。
7.根据权利要求5或6所述的前导数处理系统,其特征在于,所述原始数据处理模块还包括:
每组所述数据段内进行的所述全前导检测和所述初始移位处理之间为并行处理关系。
8.根据权利要求7所述的前导数处理系统,其特征在于,所述原始数据处理模块还包括:
将原始数据平均拆分为多组数据段,对每组所述数据段进行全前导检测和初始移位处理。
9.一种计算机设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410212013.9A CN117785108B (zh) | 2024-02-27 | 2024-02-27 | 一种前导数处理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410212013.9A CN117785108B (zh) | 2024-02-27 | 2024-02-27 | 一种前导数处理方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785108A true CN117785108A (zh) | 2024-03-29 |
CN117785108B CN117785108B (zh) | 2024-06-14 |
Family
ID=90380127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410212013.9A Active CN117785108B (zh) | 2024-02-27 | 2024-02-27 | 一种前导数处理方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785108B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
CN102929705A (zh) * | 2012-10-31 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中快速生成坐标点的方法 |
US20130282783A1 (en) * | 2012-04-24 | 2013-10-24 | Futurewei Technologies, Inc. | Systems and Methods for a Floating-Point Multiplication and Accumulation Unit Using a Partial-Product Multiplier in Digital Signal Processors |
US20140136587A1 (en) * | 2012-11-12 | 2014-05-15 | Advanced Micro Devices, Inc. | Floating point multiply-add unit with denormal number support |
US20140188967A1 (en) * | 2012-12-28 | 2014-07-03 | Simon Rubanovich | Leading Change Anticipator Logic |
US20150261498A1 (en) * | 2014-03-14 | 2015-09-17 | Arm Limited | Data processing apparatus and method for performing a shift function on a binary number |
CN111538473A (zh) * | 2020-04-27 | 2020-08-14 | 西安交通大学 | 一种Posit浮点数处理器 |
CN114968175A (zh) * | 2022-06-06 | 2022-08-30 | 湖南毂梁微电子有限公司 | 一种用于智能计算加速的可配置移位加法融合单元 |
US20230161555A1 (en) * | 2021-11-24 | 2023-05-25 | Samsung Electronics Co., Ltd. | System and method performing floating-point operations |
CN116594590A (zh) * | 2023-04-25 | 2023-08-15 | 青岛本原微电子有限公司 | 一种浮点数据的多功能运算装置及方法 |
CN116783577A (zh) * | 2021-01-29 | 2023-09-19 | 微软技术许可有限责任公司 | 用于归一化函数的数字电路 |
-
2024
- 2024-02-27 CN CN202410212013.9A patent/CN117785108B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
US20130282783A1 (en) * | 2012-04-24 | 2013-10-24 | Futurewei Technologies, Inc. | Systems and Methods for a Floating-Point Multiplication and Accumulation Unit Using a Partial-Product Multiplier in Digital Signal Processors |
CN102929705A (zh) * | 2012-10-31 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中快速生成坐标点的方法 |
US20140136587A1 (en) * | 2012-11-12 | 2014-05-15 | Advanced Micro Devices, Inc. | Floating point multiply-add unit with denormal number support |
US20140188967A1 (en) * | 2012-12-28 | 2014-07-03 | Simon Rubanovich | Leading Change Anticipator Logic |
US20150261498A1 (en) * | 2014-03-14 | 2015-09-17 | Arm Limited | Data processing apparatus and method for performing a shift function on a binary number |
CN111538473A (zh) * | 2020-04-27 | 2020-08-14 | 西安交通大学 | 一种Posit浮点数处理器 |
CN116783577A (zh) * | 2021-01-29 | 2023-09-19 | 微软技术许可有限责任公司 | 用于归一化函数的数字电路 |
US20230161555A1 (en) * | 2021-11-24 | 2023-05-25 | Samsung Electronics Co., Ltd. | System and method performing floating-point operations |
CN114968175A (zh) * | 2022-06-06 | 2022-08-30 | 湖南毂梁微电子有限公司 | 一种用于智能计算加速的可配置移位加法融合单元 |
CN116594590A (zh) * | 2023-04-25 | 2023-08-15 | 青岛本原微电子有限公司 | 一种浮点数据的多功能运算装置及方法 |
Non-Patent Citations (2)
Title |
---|
徐彦凯;双凯;: "提高定点精度的FPGA信号处理算法", 计算机工程与科学, no. 09, 15 September 2012 (2012-09-15), pages 197 - 200 * |
胡振波: "RISC-V的爆发,是中国芯片产业的一次机遇", 《单片机与嵌入式系统应用》, 31 December 2019 (2019-12-31), pages 1 - 3 * |
Also Published As
Publication number | Publication date |
---|---|
CN117785108B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426484B (zh) | 一种数据排序装置、方法及芯片 | |
US4887232A (en) | Apparatus and method for performing a shift operation in a multiplier array circuit | |
CN112099761B (zh) | 基于改进的二进制左移模逆算法的装置及其控制方法 | |
CN113064852A (zh) | 一种可重构处理器及配置方法 | |
CN117827284B (zh) | 向量处理器访存指令处理方法、系统、设备及存储介质 | |
US5396445A (en) | Binary carry-select adder | |
CN117785108B (zh) | 一种前导数处理方法、系统、设备及存储介质 | |
US7734456B2 (en) | Method and apparatus for priority based data processing | |
US11664805B2 (en) | Data mutex filter circuit and data mutex filtering method | |
CN111124358B (zh) | 一种序列累加器的运算方法和设备 | |
CN112230883B (zh) | 一种用于乘法器零标志位的产生电路、乘法器和检测方法 | |
EP1197875B1 (en) | Conditional vector operation method and device thereof | |
CN111580867A (zh) | 一种用于fft运算的块浮点处理方法及装置 | |
EP1058392A1 (en) | Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system | |
US20010049781A1 (en) | Computer with high-speed context switching | |
CN110598172B (zh) | 一种基于csa加法器的卷积运算方法和电路 | |
CN110890895A (zh) | 借助表示法变换执行极化解码的方法及相关极化解码器 | |
CN118426512B (zh) | 流水级反压控制方法及装置 | |
He et al. | Multiply-add fused float point unit with on-fly denormalized number processing | |
CN117692008B (zh) | 用于数据规格化的电路及方法、芯片、计算设备 | |
US6941418B1 (en) | Integrated circuit and method outputting data | |
CN115833845A (zh) | 位置输出装置和位置输出方法 | |
US20240056058A1 (en) | Fir filter, filtering method by fir filter, and non-transitory computer readable medium storing control program | |
CN109960486B (zh) | 二进制数据处理方法及其装置、介质和系统 | |
US4141077A (en) | Method for dividing two numbers and device for effecting same |
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 |