一种用于滤波器的浮点数据处理系统转让专利

申请号 : CN202410005509.9

文献号 : CN117492693B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐润龙王庆成

申请人 : 沐曦集成电路(上海)有限公司

摘要 :

本申请涉及数据处理技术领域,特别是涉及一种用于滤波器的浮点数据处理系统,所述系统包括:数据库、处理器和存储有计算机程序的存储器,计算机程序被处理器执行时,实现以下步骤:计算滤波器中各组系数与输入数据乘积对应的阶数和尾数,由尾数组成多个临时子集合,通过3:2加法器进行加法计算,对加法计算结果迭代使用3:2加法器进行求和,得到参考尾数及参考阶数,再进行规格化处理,得到标准尾数和标准阶数,进而确定滤波器的输出结果。可知,利用3:2加法器的硬件优势,提高了计算效率,优化了硬件面积,同时使用未规格化的尾数进行加法运算,避免了大量的运算消耗,在滤波器的数据处理场景下,有效提高了浮点数据处理的效率。

权利要求 :

1.一种用于滤波器的浮点数据处理系统,其特征在于,所述系统包括:数据库、处理器和存储有计算机程序的存储器,其中,所述数据库包括滤波器输入向量A=[a1,a2,…,ak,…,aK]和滤波器系数向量B=[b1,b2,…,bk,…,bK],ak为第k个滤波器输入数据,ak以浮点数表示,bk为第k个滤波器系数,k为[1,K]范围内的整数,K为滤波器的总个数,所述处理器包括乘法器、第一加法器和3:2加法器,当所述计算机程序被处理器执行时,实现以下步骤:S101,根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek和尾数Mk;

S102,令待求和数据的数量P=K,由所有尾数Mk作为待求和数据qp形成临时集合Q={q1,q2,…,qp,…,qP},p为[1,P]范围内的整数;

S103,在临时集合Q中,由q3c‑2、q3c‑1和q3c形成C个第一临时子集合Dc={q3c‑2,q3c‑1,q3c},其中,c为[1,C]范围内的整数,C=f(P/3),f()为向上取整函数,步骤S103还包括以下步骤:S1031,若3c‑1>P,将q3c‑1和q3c赋值为0;

S1032,若3c‑1=P,将q3c赋值为0;

S104,根据q3c‑2、q3c‑1和q3c分别对应的阶数,确定Dc对应的临时阶数Expc=max(E3c‑2,E3c‑1,E3c);

S105,根据Expc,对Dc中的待求和数据进行移位处理,得到第二临时子集合Gc;

S106,将Gc中的元素作为所述3:2加法器的输入数据,得到由所述3:2加法器计算得到的输出数据Rc1和Rc2,其中,所述3:2加法器的输入数据之和与其输出数据之和相同;

S107,更新待求和数据的数量P=2C,由所有Rc1和Rc2作为待求和数据qp更新临时集合Q;

S108,返回执行S103步骤至S107步骤,直至P=4,得到包含4个待求和数据的临时集合Q;

S109,对所述4个待求和数据进行移位处理后,使用所述第一加法器进行求和,得到参考尾数及其对应的参考阶数,其中,步骤S109还包括:S1091,确定所述4个待求和数据分别对应的阶数中的最大值为所述参考阶数;

S1092,根据所述参考阶数和所述4个待求和数据分别对应的阶数,对所述4个待求和数据进行移位处理,得到所述4个待求和数据分别对应的移位处理结果;

S1093,使用所述第一加法器对所述4个待求和数据分别对应的移位处理结果进行求和,得到参考尾数;

S110,根据所述参考尾数和参考阶数,进行规格化处理,得到标准尾数和标准阶数,由所述标准尾数和标准阶数确定所述滤波器的输出结果。

2.根据权利要求1所述的用于滤波器的浮点数据处理系统,其特征在于,ak对应的阶数为EAk,bk对应的阶数为EBk,根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek包括:以EAk+EBk作为ak bk对应的浮点数表示中的阶数Ek。

3.根据权利要求1所述的用于滤波器的浮点数据处理系统,其特征在于,ak对应的尾数为MAk,bk对应的尾数为MBk,根据ak和bk,计算得到ak bk对应的浮点数表示中的尾数Mk包括:以MAk MBk作为ak bk对应的浮点数表示中的尾数Mk。

4.根据权利要求1所述的用于滤波器的浮点数据处理系统,其特征在于,ak以32位浮点数表示。

5.根据权利要求4所述的用于滤波器的浮点数据处理系统,其特征在于,ak bk对应的浮点数表示中的阶数Ek为8bits,尾数Mk为46bits。

6.根据权利要求1所述的用于滤波器的浮点数据处理系统,其特征在于,步骤S105还包括以下步骤:S1051,根据Expc分别与E3c‑2、E3c‑1和E3c的差值,确定Dc中q3c‑2、q3c‑1和q3c的移位位数;

S1052,根据q3c‑2、q3c‑1和q3c分别对应的移位位数,对q3c‑2、q3c‑1和q3c分别进行移位处理,得到q3c‑2、q3c‑1和q3c分别对应的移位处理结果;

S1053,由q3c‑2、q3c‑1和q3c分别对应的移位处理结果形成所述第二临时子集合Gc。

7.根据权利要求1所述的用于滤波器的浮点数据处理系统,其特征在于,所述规格化处理包括前导零检测。

说明书 :

一种用于滤波器的浮点数据处理系统

技术领域

[0001] 本发明涉及数据处理技术领域,特别是涉及一种用于滤波器的浮点数据处理系统。

背景技术

[0002] 在信号处理场景下,滤波器的输出数据通常可以采用多个输入数据与其所对应滤波器系数的乘积之和来表示,例如FIR滤波器等,因此,用于滤波器的数据处理过程可以通过乘加方式在处理器中实现。
[0003] 但是,在浮点数使用乘法器进行运算时,需要在运算过程中对尾数部分进行规格化处理,而规格化处理将会消耗较大的运算资源,而在滤波器的数据处理场景下,需要进行多次乘法计算,也相应需要多次规格化处理,进而导致滤波器的数据处理效率较低。
[0004] 因此,如何在滤波器的数据处理场景下,提高浮点数据处理的效率成为了亟待解决的问题。

发明内容

[0005] 针对上述技术问题,本发明采用的技术方案为:
[0006] 一种用于滤波器的浮点数据处理系统,所述系统包括:数据库、处理器和存储有计算机程序的存储器,其中,所述数据库包括滤波器输入向量A=[a1,a2,…,ak,…,aK]和滤波器系数向量B=[b1,b2,…,bk,…,bK],ak为第k个滤波器输入数据,ak以浮点数表示,bk为第k个滤波器系数,k为[1,K]范围内的整数,K为滤波器的总个数,所述处理器包括乘法器、第一加法器和3:2加法器,当所述计算机程序被处理器执行时,实现以下步骤:
[0007] S101,根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek和尾数Mk。
[0008] S102,令待求和数据的数量P=K,由所有尾数Mk作为待求和数据qp形成临时集合Q={q1,q2,…,qp,…,qP},p为[1,P]范围内的整数。
[0009] S103,在临时集合Q中,由q3c‑2、q3c‑1和q3c形成C个第一临时子集合Dc={q3c‑2,q3c‑1,q3c},其中,c为[1,C]范围内的整数,C=f(P/3),f()为向上取整函数,步骤S103还包括以下步骤:
[0010] S1031,若3c‑1>P,将q3c‑1和q3c赋值为0。
[0011] S1032,若3c‑1=P,将q3c赋值为0。
[0012] S104,根据q3c‑2、q3c‑1和q3c分别对应的阶数,确定Dc对应的临时阶数Expc=max(E3c‑2,E3c‑1,E3c)。
[0013] S105,根据Expc,对Dc中的待求和数据进行移位处理,得到第二临时子集合Gc。
[0014] S106,将Gc中的元素作为所述3:2加法器的输入数据,得到由所述3:2加法器计算得到的输出数据Rc1和Rc2,其中,所述3:2加法器的输入数据之和与其输出数据之和相同。
[0015] S107,更新待求和数据的数量P=2C,由所有Rc1和Rc2作为待求和数据qp更新临时集合Q。
[0016] S108,返回执行S103步骤至S107步骤,直至P=4,得到包含4个待求和数据的临时集合Q。
[0017] S109,对所述4个待求和数据进行移位处理后,使用所述第一加法器进行求和,得到参考尾数及其对应的参考阶数。
[0018] S110,根据所述参考尾数和参考阶数,进行规格化处理,得到标准尾数和标准阶数,由所述标准尾数和标准阶数确定所述滤波器的输出结果。
[0019] 本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种用于滤波器的浮点数据处理系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
[0020] 本发明提供一种用于滤波器的浮点数据处理系统,所述系统包括:数据库、处理器和存储有计算机程序的存储器,其中,数据库包括滤波器输入向量A=[a1,a2,…,ak,…,aK]和滤波器系数向量B=[b1,b2,…,bk,…,bK],ak为第k个滤波器输入数据,ak以浮点数表示,bk为第k个滤波器系数,k为[1,K]范围内的整数,K为滤波器的总个数,处理器包括乘法器、第一加法器和3:2加法器,当计算机程序被处理器执行时,实现以下步骤:根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek和尾数Mk,令待求和数据的数量P=K,由所有尾数Mk作为待求和数据qp形成临时集合Q={q1,q2,…,qp,…,qP},在临时集合Q中,由q3c‑2、q3c‑1和q3c形成C个第一临时子集合Dc={q3c‑2,q3c‑1,q3c},根据q3c‑2、q3c‑1和q3c分别对应的阶数,确定Dc对应的临时阶数Expc=max(E3c‑2,E3c‑1,E3c),根据Expc,对Dc中的待求和数据进行移位处理,得到第二临时子集合Gc,将Gc中的元素作为3:2加法器的输入数据,得到由3:2加法器计算得到的输出数据Rc1和Rc2,更新待求和数据的数量P=2C,由所有Rc1和Rc2作为待求和数据qp更新临时集合Q,进行迭代处理,直至P=4,得到包含4个待求和数据的临时集合Q,对4个待求和数据进行移位处理后,使用第一加法器进行求和,得到参考尾数及其对应的参考阶数,根据参考尾数和参考阶数,进行规格化处理,得到标准尾数和标准阶数,由标准尾数和标准阶数确定滤波器的输出结果。
[0021] 可知,以3:2加法器多层计算的方式实现各个乘积的尾数部分相加,能够有效利用3:2加法器的硬件优势,提高了计算效率,优化了硬件面积,同时,将3:2加法器的输入尾数构建为子集合,仅对子集合内的尾数进行移位处理,也即使用未规格化的尾数进行加法运算,仅在多层计算的结果处进行规格化处理,既得到规格化输出结果,又避免了大量的运算消耗,在滤波器的数据处理场景下,有效提高了浮点数据处理的效率。

附图说明

[0022] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1为本发明实施例提供的一种用于滤波器的浮点数据处理系统中计算机程序被处理器执行时的流程图。

具体实施方式

[0024] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 本实施例提供一种用于滤波器的浮点数据处理系统,其特征在于,所述系统包括:数据库、处理器和存储有计算机程序的存储器,其中,所述数据库包括滤波器输入向量A=[a1,a2,…,ak,…,aK]和滤波器系数向量B=[b1,b2,…,bk,…,bK],ak为第k个滤波器输入数据,ak以浮点数表示,bk为第k个滤波器系数,k为[1,K]范围内的整数,K为滤波器的总个数,所述处理器包括乘法器、第一加法器和3:2加法器,参见图1,为本发明实施例提供的一种用于滤波器的浮点数据处理系统中计算机程序被处理器执行时的流程图,当所述计算机程序被处理器执行时,实现以下步骤:
[0026] S101,根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek和尾数Mk。
[0027] S102,令待求和数据的数量P=K,由所有尾数Mk作为待求和数据qp形成临时集合Q={q1,q2,…,qp,…,qP},p为[1,P]范围内的整数。
[0028] S103,在临时集合Q中,由q3c‑2、q3c‑1和q3c形成C个第一临时子集合Dc={q3c‑2,q3c‑1,q3c},其中,c为[1,C]范围内的整数,C=f(P/3),f()为向上取整函数,步骤S103还包括以下步骤:
[0029] S1031,若3c‑1>P,将q3c‑1和q3c赋值为0。
[0030] S1032,若3c‑1=P,将q3c赋值为0。
[0031] S104,根据q3c‑2、q3c‑1和q3c分别对应的阶数,确定Dc对应的临时阶数Expc=max(E3c‑2,E3c‑1,E3c)。
[0032] S105,根据Expc,对Dc中的待求和数据进行移位处理,得到第二临时子集合Gc。
[0033] S106,将Gc中的元素作为所述3:2加法器的输入数据,得到由所述3:2加法器计算得到的输出数据Rc1和Rc2,其中,所述3:2加法器的输入数据之和与其输出数据之和相同。
[0034] S107,更新待求和数据的数量P=2C,由所有Rc1和Rc2作为待求和数据qp更新临时集合Q。
[0035] S108,返回执行S103步骤至S107步骤,直至P=4,得到包含4个待求和数据的临时集合Q。
[0036] S109,对所述4个待求和数据进行移位处理后,使用所述第一加法器进行求和,得到参考尾数及其对应的参考阶数。
[0037] S110,根据所述参考尾数和参考阶数,进行规格化处理,得到标准尾数和标准阶数,由所述标准尾数和标准阶数确定所述滤波器的输出结果。K
[0038] 其中,滤波器的输出数据y可以表示为y=∑k=1(ak bk),ak以浮点数表示,则滤波器的计算过程可以视作K组ak与bk相乘,再将K个相乘结果相加的过程,在本实施例中,bk也采用浮点数表示,则ak bk可以采用浮点数乘法进行计算,需要说明的是,浮点数表示中还包括符号位,由于符号位的计算过程较为简单,在本实施例中不作赘述。
[0039] 在一实施方式中,由于滤波器系数可以由硬件预先配置,因此bk还可以采用定点数表示,从而进一步提高计算效率。
[0040] 具体地,3:2加法器,或称3:2压缩器,为整数加法单元,能够将3个输入数据相加转换为2个输出数据相加的形式,3:2加法器为硬件优化后的加法基本单元,属于现有技术,在此不具体描述其实现原理,本实施例仅利用3:2加法器经过硬件优化的特性,以起到提高计算效率,精简硬件面积的效果。
[0041] 在本实施例中,若待求和数据的数量P mod 3≠0,则使用补零方式构成C个第一临时子集合。
[0042] 在一实施方式中,还可以采用待求和数据保留的方式,此时,在临时集合Q中,由q3c‑2、q3c‑1和q3c形成C‑1个第一临时子集合,由未在任一第一临时子集合中的待求和数据与经3:2加法器输出的所有Rc1和Rc2更新临时集合Q。
[0043] 在一实施方式中,在S1031步骤中,若3c‑1>P,则可以采用待求和数据保留的方式对q3c‑1和q3c处理,在S1032步骤中,若3c‑1=P,则可以采用补零方式,将q3c赋值为0。
[0044] 可选的是,ak对应的阶数为EAk,bk对应的阶数为EBk,根据ak和bk,计算得到ak bk对应的浮点数表示中的阶数Ek包括:
[0045] 以EAk+EBk作为ak bk对应的浮点数表示中的阶数Ek。
[0046] 可选的是,ak对应的尾数为MAk,bk对应的尾数为MBk,根据ak和bk,计算得到ak bk对应的浮点数表示中的尾数Mk包括:
[0047] 以MAk MBk作为ak bk对应的浮点数表示中的尾数Mk。
[0048] 其中,尾数相乘、阶数相加为浮点数乘法的处理方式。
[0049] 可选的是,ak以32位浮点数表示。
[0050] 本实施例中以32位浮点数为例,需要说明的是,实施者可以根据实际情况确定浮点数位宽。
[0051] 可选的是,ak bk对应的浮点数表示中的阶数Ek为8bits,尾数Mk为46bits。
[0052] 其中,由于本实施例在浮点数乘法计算后不进行规格化处理,因此尾数Mk为46bits。
[0053] 可选的是,步骤S105还包括以下步骤:
[0054] S1051,根据Expc分别与E3c‑2、E3c‑1和E3c的差值,确定Dc中q3c‑2、q3c‑1和q3c的移位位数。
[0055] S1052,根据q3c‑2、q3c‑1和q3c分别对应的移位位数,对q3c‑2、q3c‑1和q3c分别进行移位处理,得到q3c‑2、q3c‑1和q3c分别对应的移位处理结果。
[0056] S1053,由q3c‑2、q3c‑1和q3c分别对应的移位处理结果形成所述第二临时子集合Gc。
[0057] 其中,对q3c‑2、q3c‑1和q3c分别进行移位处理,以使得q3c‑2、q3c‑1和q3c在移位后分别对应的阶数与Expc相同,从而能够进行加法运算。需要说明的是,由于本实施例中q3c‑2、q3c‑1和q3c未进行规格化处理,仅是进行移位处理后即进行加法运算,省去了常规乘法计算后的规格化资源消耗。
[0058] 可选的是,步骤S109还包括:
[0059] S1091,确定所述4个待求和数据分别对应的阶数中的最大值为所述参考阶数。
[0060] S1092,根据所述参考阶数和所述4个待求和数据分别对应的阶数,对所述4个待求和数据进行移位处理,得到所述4个待求和数据分别对应的移位处理结果。
[0061] S1093,使用所述第一加法器对所述4个待求和数据分别对应的移位处理结果进行求和,得到参考尾数。
[0062] 在一实施方式中,可以由4个待求和数据中前3个待求和数据先经过3:2加法器计算,得到2个第一计算结果,再将得到的2个第一计算结果与第4个待求和数据再次经过3:2加法器计算,得到2个第二计算结果,最后使用第一加法器将2个第二计算结果相加,得到参考尾数,其中,每次加法运算均需要阶数对齐操作,也即移位处理过程,从而能够以较低位宽的加法器实现滤波器数据处理。
[0063] 可选的是,所述规格化处理包括前导零检测。
[0064] 其中,前导零检测由于存在多次判断,因此在硬件实现,会较为消耗硬件资源,也即会降低计算效率,本实施例中,仅在最终得到滤波器的输出结果时进行规格化处理,从而避免了大量的运算消耗,又得到了规格化的输出结果。
[0065] 本实施例以3:2加法器多层计算的方式实现各个乘积的尾数部分相加,能够有效利用3:2加法器的硬件优势,提高了计算效率,优化了硬件面积,同时,将3:2加法器的输入尾数构建为子集合,仅对子集合内的尾数进行移位处理,也即使用未规格化的尾数进行加法运算,仅在多层计算的结果处进行规格化处理,既得到规格化输出结果,又避免了大量的运算消耗,在滤波器的数据处理场景下,有效提高了浮点数据处理的效率。
[0066] 虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。