一种数据处理方法及装置制造方法及图纸

技术编号:19319666 阅读:42 留言:0更新日期:2018-11-03 10:34
本发明专利技术实施例提供了一种数据处理方法及装置,其中,该方法包括:获取第一组待相乘数据及其中每个数据的位宽、第二组待相乘数据及其中每个数据的位宽;通过预设数据合并方式,将第一组待相乘数据中所有数据合并后得到的数据确定为第一乘数,并将第二组待相乘数据中所有数据合并后得到的数据确定为第二乘数;通过预设定点乘法器对第一乘数与第二乘数进行相乘运算,获得乘法结果数据;根据预设数据合并方式、第一组待相乘数据中每个数据的位宽以及第二组待相乘数据中每个数据的位宽,从乘法结果数据中,提取第一组待相乘数据中每个数据与第二组待相乘数据中每个数据相乘的结果。通过本方案可以提高采用定点乘法器的芯片的工作效率、降低成本。

Data processing method and device

The embodiment of the present invention provides a data processing method and device, in which the method includes acquiring the first group of data to be multiplied and the bit width of each data, the second group of data to be multiplied and the bit width of each data therein, and merging all data in the first group of data to be multiplied by preset data merging method. The data obtained are determined as the first multiplier, and the data obtained from the merging of all data in the second group of data to be multiplied are determined as the second multiplier; the first multiplier and the second multiplier are multiplied by the preset point multiplier, and the multiplier result data are obtained; according to the preset data merging method and the first group of data to be multiplied, each of them is determined as the second multiplier. The bit width of each data in the first group of data to be multiplied and the bit width of each data in the second group of data to be multiplied are extracted from the multiplied result data. The results of each data in the first group of data to be multiplied are multiplied by each data in the second group of data to be multiplied. Through this scheme, the efficiency and cost of chips with fixed point multipliers can be improved.

【技术实现步骤摘要】
一种数据处理方法及装置
本专利技术涉及计算机
,特别是涉及一种数据处理方法及装置。
技术介绍
近年来,随着多媒体技术、现代机器视觉技术及相关领域的不断发展,数字信号处理的规模越来越大,计算机的计算复杂度也大大增加,微处理器例如DSP(DigitalSignalProcessor,数字信号处理器)对于完成运算的芯片的功能和计算性能的要求越来越高。其中,乘法器是芯片中的核心部件之一,乘法器的运算效率已经成为衡量芯片计算性能的一个重要特征,对于芯片的性能、功耗具有重要的影响。在现代机器视觉技术中,例如图像处理的目标检测技术中所利用的卷积神经网络,是通过卷积核对图像的特征数据进行卷积运算,卷积运算中存在大量的乘法运算,即将卷积核中的多个数据分别与图像的多个特征数据进行乘法运算。现有的乘法运算处理过程,是利用定点乘法器每次进行两个数据的乘法,在被乘数及乘数的数量均很大时,只能通过定点乘法器的串行运算、配合多个定点乘法器的并行运算实现多个数据的乘法。由于串行运算的处理时间长、并行运算的硬件成本高,并且,定点乘法器的位宽是固定的,存在高位宽的定点乘法器处理低位宽的数据的情况,使得采用定点乘法本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:获得第一组待相乘数据、第二组待相乘数据,及所述第一组待相乘数据中每个数据的位宽、所述第二组待相乘数据中每个数据的位宽,其中,所述第一组待相乘数据及所述第二组待相乘数据满足第一位宽条件,所述第一位宽条件为:所述第一组待相乘数据中所有数据合并后的第一位宽小于或等于预设定点乘法器的第一输入端口位宽,所述第二组待相乘数据中所有数据合并后的第二位宽小于或等于所述预设定点乘法器的第二输入端口位宽,所述第一位宽与所述第二位宽的总和小于或等于所述预设定点乘法器的输出位宽;通过预设数据合并方式,将所述第一组待相乘数据中的所有数据合并后得到的数据确定为第一乘数,并将...

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获得第一组待相乘数据、第二组待相乘数据,及所述第一组待相乘数据中每个数据的位宽、所述第二组待相乘数据中每个数据的位宽,其中,所述第一组待相乘数据及所述第二组待相乘数据满足第一位宽条件,所述第一位宽条件为:所述第一组待相乘数据中所有数据合并后的第一位宽小于或等于预设定点乘法器的第一输入端口位宽,所述第二组待相乘数据中所有数据合并后的第二位宽小于或等于所述预设定点乘法器的第二输入端口位宽,所述第一位宽与所述第二位宽的总和小于或等于所述预设定点乘法器的输出位宽;通过预设数据合并方式,将所述第一组待相乘数据中的所有数据合并后得到的数据确定为第一乘数,并将所述第二组待相乘数据中的所有数据合并后得到的数据确定为第二乘数,其中,所述预设数据合并方式为按序排列所有数据,并根据所述第一组待相乘数据中每个数据的位宽及所述第二组待相乘数据中每个数据的位宽,在每两个数据之间补充满足预设数目的0;通过所述预设定点乘法器对输入的所述第一乘数与所述第二乘数进行相乘运算,获得乘法结果数据;根据所述预设数据合并方式、所述第一组待相乘数据中每个数据的位宽以及所述第二组待相乘数据中每个数据的位宽,从所述乘法结果数据中,提取出所述第一组待相乘数据中每个数据与所述第二组待相乘数据中每个数据相乘的结果。2.根据权利要求1所述的数据处理方法,其特征在于,所述获得第一组待相乘数据、第二组待相乘数据,及所述第一组待相乘数据中每个数据的位宽、所述第二组待相乘数据中每个数据的位宽的步骤之前,所述方法还包括:获取第一组待运算数据及第二组待运算数据;根据预设算法,分别从所述第一组待运算数据中及所述第二组待运算数据中提取第一组待相乘数据及第二组待相乘数据,其中,所述第一组待相乘数据及所述第二组待相乘数据满足所述第一位宽条件。3.根据权利要求1所述的数据处理方法,其特征在于,所述通过预设数据合并方式,将所述第一组待相乘数据中的所有数据合并后得到的数据确定为第一乘数,并将所述第二组待相乘数据中的所有数据合并后得到的数据确定为第二乘数的步骤之前,所述方法还包括:提取所述第一组待相乘数据中所有数据的符号位;提取所述第二组待相乘数据中所有数据的符号位;提取所述第一组待相乘数据中每个数据与所述第二组待相乘数据中每个数据相乘结果的符号位;所述通过预设数据合并方式,将所述第一组待相乘数据中的所有数据合并后得到的数据确定为第一乘数,并将所述第二组待相乘数据中的所有数据合并后得到的数据确定为第二乘数的步骤,包括:根据所述第二组待相乘数据中每个数据的位宽,确定第一预设数目;在所述第一组待相乘数据的每两个数据的绝对值之间补充满足所述第一预设数目的0,得到第一乘数;根据所述第二组待相乘数据中每个数据的位宽及所述第一乘数的位宽,确定第二预设数目;在所述第二组待相乘数据的每两个数据的绝对值之间补充满足所述第二预设数目的0,得到第二乘数;所述根据所述预设数据合并方式、所述第一组待相乘数据中每个数据的位宽以及所述第二组待相乘数据中每个数据的位宽,从所述乘法结果数据中,提取出所述第一组待相乘数据中每个数据与所述第二组待相乘数据中每个数据相乘的结果的步骤,包括:从所述乘法结果数据中,拆分出所述第一组待相乘数据中每个数据与所述第二组待相乘数据中每个数据相乘的乘积结果的绝对值;根据所述第一组待相乘数据中每个数据的符号位及所述第二组待相乘数据中每个数据的符号位,确定所述每个乘积结果的正负特性,并根据所述每个乘积结果的正负特性,确定最终的每个乘积结果。4.根据权利要求3所述的数据处理方法,其特征在于,所述根据所述第一组待相乘数据中每个数据的符号位及所述第二组待相乘数据中每个数据的符号位,确定所述每个乘积结果的正负特性,并根据所述每个乘积结果的正负特性,确定最终的每个乘积结果的步骤,包括:在所述第一组待相乘数据中第一数据与所述第二组待相乘数据中第二数据相乘的结果为正时,确定从所述乘法结果数据中提取的所述第一数据的绝对值与所述第二数据的绝对值相乘的结果,作为所述第一数据与所述第二数据相乘的结果,其中,所述第一数据为所述第一组待相乘数据中的任一数据,所述第二数据为所述第二组待相乘数据中的任一数据;在所述第一数据与所述第二数据相乘的结果为负时,确定从所述乘法结果数据中提取的所述第一数据的绝对值与所述第二数据的绝对值相乘的第一结果,并对所述第一结果内的数据进行补码运算得到所述第一数据与所述第二数据相乘的结果。5.根据权利要求4所述的数据处理方法,其特征在于,所述在所述第一组待相乘数据中第一数据与所述第二组待相乘数据中第二数据相乘的结果为正时,确定从所述乘法结果数据中提取的所述第一数据的绝对值与所述第二数据的绝对值相乘的结果,作为所述第一数据与所述第二数据相乘的结果的步骤,包括:在所述第一数据的绝对值与所述第二数据的绝对值相乘的结果前,添加0,得到第三数据,并将所述第三数据作为所述第一数据与所述第二数据相乘的结果;所述在所述第一数据与所述第二数据相乘的结果为负时,确定从所述乘法结果数据中提取的所述第一数据的绝对值与所述第二数据的绝对值相乘的第一结果,并对所述第一结果内的数据进行补码运算得到所述第一数据与所述第二数据相乘的结果的步骤,包括:在对所述第一结果内的数据进行补码运算得到的数据前,添加1,得到第四数据,并将所述第四数据作为所述第一数据与所述第二数据相乘的结果。6.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:获得运算控制指令;所述在所述第一组待相乘数据的每两个数据的绝对值之间补充满足所述第一预设数目的0,得到第一乘数的步骤,包括:当所述运算控制指令为高精度运算指令时,所述第一组待相乘数据中只包含一个数据,将该数据的绝对值作为第一乘数;当所述运算控制指令为合并运算指令时,将所述第一组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第一输入端口位宽相同的第一乘数;当所述运算控制指令为高位宽运算指令时,如果所述第一组待相乘数据中每个数据的位宽大于所述第二组待相乘数据中每个数据的位宽,确定所述第一组待相乘数据中位宽最大的数据的绝对值为第一乘数;所述在所述第二组待相乘数据的每两个数据的绝对值之间补充满足所述第二预设数目的0,得到第二乘数的步骤,包括:当所述运算控制指令为高精度运算指令时,所述第二组待相乘数据中只包括一个数据,将该数据的绝对值作为第二乘数;当所述运算控制指令为合并运算指令时,将所述第二组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第二输入端口位宽相同的第二乘数;当所述运算控制指令为高位宽运算指令时,如果所述第二组待相乘数据中每个数据的位宽大于所述第一组待相乘数据中每个数据的位宽,确定所述第二组待相乘数据中位宽最大的数据的绝对值为第二乘数。7.根据权利要求6所述的数据处理方法,其特征在于,在所述第一组待相乘数据中所有数据的数量与所述第二组待相乘数据中所有数据的数量相等、且均为2时,所述将所述第一组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第一输入端口位宽相同的第一乘数的步骤,包括:从所述第一组待相乘数据中提取任一数据的绝对值,并将所提取的绝对值存储至第一预设序列中空闲区间的最低位序,其中,所述第一预设序列中的最低位序的位宽与所提取的绝对值的位宽相等;在所述第一预设序列中已存储的数据的最高位之前,设置与所述第二组待相乘数据中任一数据的位宽相同数目的0;从所述第一组待相乘数据中提取另一数据的绝对值,并将所提取的绝对值存储至所述第一预设序列中已存储的最高位的0之前;获取已存储所述第一组待相乘数据中所有数据的绝对值的第一预设序列的位宽,并比较所述第一预设序列的位宽与所述预设定点乘法器的第一输入端口位宽的大小;若所述第一预设序列的位宽等于所述预设定点乘法器的第一输入端口位宽,确定所述第一预设序列为第一乘数;若所述第一预设序列的位宽小于所述预设定点乘法器的第一输入端口位宽,在所述第一预设序列的最高位之前依位补0,直至补0后的第一预设序列的位宽等于所述预设定点乘法器的第一输入端口位宽,确定所述补0后的第一预设序列为第一乘数;所述将所述第二组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第二输入端口位宽相同的第二乘数的步骤,包括:从所述第二组待相乘数据中提取任一数据的绝对值,并将所提取的绝对值存储至第二预设序列中空闲区间的最低位序,其中,所述第二预设序列中的最低位序的位宽与所提取的绝对值的位宽相等;计算所述第一乘数与所述第二组待相乘数据中任一数据的位宽的差值,并在所述第二预设序列中已存储的所述第二数据的最高位之前,设置与所述差值相同的数目的0;从所述第二组待相乘数据中提取另一数据的绝对值,并将所提取的绝对值存储至所述第二预设序列中已存储的最高位的0之前;获取已存储所述第二组待相乘数据中所有数据的绝对值的第二预设序列的位宽,并比较所述第二预设序列的位宽与所述预设定点乘法器的第二输入端口位宽的大小;若所述第二预设序列的位宽等于所述预设定点乘法器的第二输入端口位宽,确定所述第二预设序列为第二乘数;若所述第二预设序列的位宽小于所述预设定点乘法器的第二输入端口位宽,在所述第二预设序列的最高位之前依位补0,直至补0后的第二预设序列的位宽等于所述预设定点乘法器的第二输入端口位宽,确定所述补0后的第二预设序列为第二乘数。8.根据权利要求6所述的数据处理方法,其特征在于,在所述第一组待相乘数据中仅包含一个数据,且所述第二组待相乘数据中所有数据的数量为2时,所述将所述第一组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第一输入端口位宽相同的第一乘数的步骤,包括:从所述第一组待相乘数据中提取唯一数据的绝对值;比较所提取的绝对值的位宽与所述预设定点乘法器的第一输入端口位宽的大小;若所提取的绝对值的位宽等于所述预设定点乘法器的第一输入端口位宽,确定所提取的绝对值为第一乘数;若所提取的绝对值的位宽小于所述预设定点乘法器的第一输入端口位宽,在所提取的绝对值的最高位之前依位补0,直至补0后的数据的位宽等于所述预设定点乘法器的第一输入端口位宽,确定所述补0后的数据为第一乘数;所述将所述第二组待相乘数据中的所有数据的绝对值,按照所述预设定点乘法器的位宽进行数据位排布,获得与所述预设定点乘法器的第二输入端口位宽相同的第二乘数的步骤,包括:从所述第二组待相乘数据中提取任一数据的绝对值,并将所提取的绝对值存储至第三预设序列中空闲区间的最低位序,其中,所述第三预设序列中的最低位序的位宽与所提取的绝对值的位宽相等;计算所述第二组待相乘数据中任一数据的位宽与所述第一组待相乘数据中唯一数据的位宽的两倍的和值,并在所述第三预设序列中已存储的数据的最高位之前,设置与所述和值相同的数目的0;从所述第二组待相乘数据中提取另一数据的绝对值,并将所提取的绝对值存储至所述第三预设序列中已存储的最高位的0之前;获取已存储所述第二组待相乘数据中所有数据的绝对值的第三预设序列的位宽,并比较所述第三预设序列的位宽与所述预设定点乘法器的第二输入端口位宽的大小;若所述第三预设序列的位宽等于所述预设定点乘法器的第二输入端口位宽,确定所述第三预设序列为第二乘数;若所述第三预设序列的位宽小于所述预设定点乘法器的第二输入端口位宽,在所述第三预设序列的最高位之前依位补0,直至补0后的第三预设序列的位宽等于所述预设定点乘法器的第二输入端口位宽,确定所述补0后的第三预设序列为第二乘数。9.根据权利要求6所述的数据处理方法,其特征在于,所述运算控制指令为:根据所述第一组待相乘数据中数据的位宽、所述第二...

【专利技术属性】
技术研发人员:方颉翔张宇翔张铧铧
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

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

1