CN201359722Y - 一种voip音频数据传输的硬件加速装置 - Google Patents
一种voip音频数据传输的硬件加速装置 Download PDFInfo
- Publication number
- CN201359722Y CN201359722Y CNU2008202066817U CN200820206681U CN201359722Y CN 201359722 Y CN201359722 Y CN 201359722Y CN U2008202066817 U CNU2008202066817 U CN U2008202066817U CN 200820206681 U CN200820206681 U CN 200820206681U CN 201359722 Y CN201359722 Y CN 201359722Y
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- computing
- result
- data transmission
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本实用新型提供了一种VOIP音频数据传输的硬件加速装置,包括用于通过算法运算实现流水线设计方法的多次运算模块。通过本实用新型可以在低频率、低功耗的情况下大大提高硬件传输VOIP音频数据的速度。
Description
技术领域
本实用新型涉及通信领域,尤其涉及一种VOIP音频数据传输的硬件加速装置。
背景技术
Voice over Internet Protocol,简称VoIP,俗称宽带电话,是通过接入宽带网络,进行语音通话的全新通信终端,由于使用价格较低,近年来获得越来越多的用户。
一般情况下,实现VOIP的音频传输,主要通过软件来实施。通用DSP(digitalsingnal processor),提供专用于数字信号处理的乘加运算和快速傅立叶FFT(fastfourier transform)等硬件加速单元及指令,现有的VoIP处理都是使用传统DSP提供的逻辑运算和算术运算指令来编写VoIP处理程序的,如图1所示,DSP核读取VoIP的算法程序后执行,然后依次对语音数据进行VoIP各种标准的编码、解码、压缩、解压等等操作。在低频率、低功耗的要求下很难实现音频的多路实时处理和传输。
实用新型内容
本实用新型的目的在于克服上述现有技术的缺点和不足,提供一种VOIP音频数据传输的硬件加速装置,本实用新型通过对处理VOIP音频数据所需要的软件代码进行分析后得出其中最占时间和调用次数多的算法,进而对其进行硬件实现,利用流水线设计方法,大幅度提高效率,在较低频率下,实现多路实时的音频传输。
本实用新型目的通过下述技术方案实现:一种VOIP音频数据传输的硬件加速装置,包括:用于通过算法运算实现流水线设计方法的多次运算模块。所述多次运算模块包括:用于进行算法运算的状态机单元、用于控制状态机单元算法运算类型的指令单元、用于实现所述状态机单元算法的流水线设计方法的控制单元和用于供所述状态机单元运算取数以及控制单元存储运算结果数据的寄存器单元。
所述硬件加速装置还包括用于存储外部输入的运算数据的外部存储器。
优选的,硬件加速装置还包括用于通过并行单次运算实现流水线设计方法的单次运算模块。
上述VOIP音频数据传输的硬件加速装置实现硬件加速的方法,包括以下步骤:
a、对处理数据的软件代码进行分析;
b、根据所述分析的结果获取符合条件的数据传输算法;
c、根据所述数据传输算法采用流水线数据处理方法。
上述硬件加速方法中,步骤a所述的软件代码为VOIP算法。
上述硬件加速方法中,步骤b所述符合条件的数据传输算法,其中所述的条件是指:数据传输算法为软件程序中占用时间与调用次数最多的算法。
所述流水线处理方法具体自动读取RAM中数据以及处理、回写音频数据至RAM。
本实用新型相对于现有技术具有以下优点:本实用新型VOIP音频数据传输的硬件加速装置对处理VOIP音频数据所需要的软件代码进行分析后得出其中最占时间和调用次数多的算法,进而对其进行硬件实现,利用流水线设计方法,大幅度提高效率,在较低频率下,实现多路实时的音频传输。
附图说明
图1为现有VOIP的音频传输装置的结构示意图;
图2为本实用新型装置的结构示意图;
图3为本实用新型中多次运算模块的结构示意图;
图4为本实用新型中单次运算模块的结构示意图;
图5为本实用新型中DSP-FCU架构图;
图6为本实用新型中DSP-CAU架构图;
图7为本实用新型DSP-FCU运算流程过程示意图;
图8为本实用新型DSP-CAU运算流程示意图;
图9为本实用新型DSP-FCU流水线原理图;
图10为本实用新型的工作流程图。
具体实施方式
下面结合实施例及附图,对本实用新型作进一步地详细说明,但本实用新型的实施方式不限于此。
如图2所示,本实用新型VOIP音频数据传输的硬件加速装置包括用于通过算法运算实现流水线设计方法的多次运算模块,优选的,该装置还包括用于通过并行单次运算实现流水线设计方法的单次运算模块。
如图3所示,多次运算模块包括:
用于实现状态机单元算法的流水线操作的控制单元;
用于进行循环多次运算和单次运算的状态机单元、状态机单元包括多个能进行算法运算的状态机;
用于控制状态机单元进行循环运算或单次运算的指令单元;
用于供状态机单元运算取数以及控制单元存储运算结果数据的寄存器单元。
为了更好地实现本实用新型目的,在本实施例应用中,所述多次运算模块为DSP-FCU(Digital Singnal Processor-Functional Caculator Unit),具体结构如图5所示,其主要由核心控制模块(FSM)、循环多次部分部分、单次运算部分、运算结果选择输出模块(DSP_OUT_MUX)和输入寄存器模块(reg)构成。其中:
核心控制模块,用于控制循环多次运算部分和单次运算部分,以及协调两部分之间的关系,以及控制13个小状态机,分别实现13个算法的流水线操作;
循环多次运算部分由以下两部分组成:
一部分是10个基本算法模块,每个基本算法模块中都存有数据选择信号和数据锁存信号。
另一部分是2个RAM存取数控制模块,其中,DSP_RAM控制输入RAM的数据,而DSP_ADDR模块主要控制输入RAM的数据的存放地址。能够实现在32位宽的RAM中的高低16位宽不同地址存数;
单次运算部分:包含8个基本算法模块,构成了三个大算法模块:PCM码转换算法(DSP_PCM)、比较算法(DSP_QUAN)、特定浮点数算法(DSP_FMULT);
运算结果选择输出模块(DSP_OUT_MUX),主要根据指令来选择输出的运算结果数据;
输入寄存器模块(reg),主要暂存外部输入的RAM起始地址、地址变化幅度以及指令等。还有用于输入单次运算的数据。
DSP_FCU模块主要实现的是从RAM中取数,根据不同的算法以及指令,经过运算后将结果写入RAM或者输出至寄存器,循环多次运算,最多可以在一个指令中,连续进行65535次运算,可以实现最高为16位宽的数据操作,应用为时序电路。
如图4所示,本实用新型中的单次运算模块由输入单元、基本算法单元、输出单元依次电气连接组成。
其中,输入单元用于接收输入指令和数据。
基本算法单元,主要用于完成单次算法。
输出单元,主要用于输出基本算法单元的运算结果。
为了更好地实现本实用新型目的,在实施例应用中单次运算模块为DSP-CAU(Digital Singnal Processor-Caculating Aid Unit),具体架构如图6所示,其包括输入模块、基本算法模块和输出数据选择模块。
输入模块用于接收输入数据。基本算法模块包括10个基本的算法模块,10个算法模块并行操作,根据输入的指令以及数据,在特定的时钟周期后通过输出数据选择模块输出正确的运算结果。单次运算模块运行效率高,同时节省运算开支。
如图10所示,本实用新型实现硬件加速的方法主要包括以下步骤:
a、对处理数据的软件代码进行分析;
b、根据所述分析的结果获取符合条件的数据传输算法;
c、根据所述数据传输算法采用流水线数据处理方法。
上述硬件加速实现方法中,步骤a所述的软件代码为VOIP算法。
上述硬件加速实现方法中,步骤b所述符合条件的数据传输算法,其中所述的条件是指:数据传输算法为软件程序中占用时间与调用次数最多的算法。
所述流水线处理方法具体自动读取RAM中数据以及处理、回写音频数据至RAM。
以下是DSP_FCU关于流水线数据处理方法的实现过程:
DSP_FCU中包含有一个大状态机,大状态机中又包含有多达13个小状态机,通过输入不同的指令,来实现多达13个循环的算法,和9个单次复杂的算法。该模块主要和一个RAM配合使用,实现从RAM中取数,然后运算完后存数。而9个单次运算由外部输入数据,运算完后,输出,不输入RAM中。
DSP_FCU实现流水线处理数据的具体方案为:在这13个基本的算法模块中,都存在有数据选择信号和锁存信号,由状态机中对应的信号来进行操作,对应的13个循环的算法,都由小状态机来实现,在每个状态中分别对基本模块中的数据选择信号和锁存信号,赋予不同的数据,从RAM的不同地址取数,从而实现复杂算法功能的流水线操作。且模块循环使用,以减少模块所占的芯片面积。下面是具体的运算过程:
DSP_FCU运算过程如图7所示:(1)输入清零指令;(2)输入RAM存取数的起始地址,地址变化幅度,运算指令,以非零的运算指令作为开始信号;(3)进入运算选择阶段,由大状态机来完成,根据指令分别进入循环运算阶段和单次运算阶段,在循环运算过程中,根据指令以及VOIP算法,同时会自动将所需数据存入RAM中;(4)判断完成信号是否为“1”,如为“1”,则表示已完成操作。
本DSP_FCU主要用于VOIP音频传输的硬件加速,实现具体的VOIP算法,大幅度提高速度,在较低的频率上,即可实现多路的音频数据传输。也可用于实现视频的算法,比如MPEG2中的IDCT等。
具体的流水线如图9所示,第一个时钟,从RAM中取A数;然后在第二个时钟取B数,同时对A数进行第一次的运算;接着在第三个时钟,从RAM中取C数,同时对B数进行第一次的运算,且同时对A数第一次运算结果进行第二次运算;第四个时钟,取数D,同时对C数据进行第一次运算,对B数据进行第二次运算,将A数的运算结果存于RAM中,以此类推。通过把算法实现硬件加速,VoIP音频处理和传输工作就不需要编写复杂的算法软件程序来实现,只需要控制程序告诉DSP核处理哪些数据,DSP硬件电路就会以高效流水线的方式自动读取、处理、回写需要处理的语音数据了。
以下是本设计完成的VOIP算法以及具体的算法功能描述:
(1)Rw_moves:移数功能,通过流水线方式,根据输入的RAM起始地址取数,然后存入指定的RAM地址中。
(2)Rw_sets:从外部得到一确定数值,根据要求,以流水线的方式,放入相应的RAM地址中。
(3)Rw_comp16p16e32:以流水线的方式,从相应的RAM地址中取数,得到数据1和数据2,然后对数据1左移16位,然后与左移1位的数据2进行32位加法运算,得到结果A,再将数据A左移1位后与0x8000进行32位加法,得到结果B,然后取数据B的高16位,存入RAM中。
(4)Rw_add16p16e16:以流水线的方式从RAM中取两数,然后进行加法运算,后存于指定的RAM地址中。
(5)Rw_sub16m16e16:以流水线的方式从RAM中取两数,然后进行减法法运算,后存于指定的RAM地址中。
(6)Rw_mult16p16e16:以流水线的方式,从相应的RAM地址中取数,得到数据1和数据2,然后进行数据1和数据2的16位乘法(结果为32位,包括溢出判断),然后将结果算术右移15位后,进行溢出判断,所得数据存入相应的RAM地址中。
(7)Rw_shiftLR16:以流水线的方式,从相应的RAM地址中取数,得到数据1,以及从外部得到移动的次数(由总线输入)等,然后进行相应的左移或者右移的运算(移动次数为8位数据,负数为右移,正数为左移),并进行溢出判断,将结果存入相应的RAM地址中。
(8)Rw_mpy32x32:以流水线的方式,从相应的RAM地址中取数,得到数据1,数据2,数据3和数据4,进行数据1和数据3的16位乘法得到32位结果A;进行数据1和数据4的“mult”运算(“mult”运算见2。6),得到结果左移一位,得到结果B;进行数据2和数据3的“mult”运算,得到结果左移一位,得到结果C,然后进行数据A和数据B的32位加法,得到数据D,再进行数据D和数据C的32位加法,得到结果数据E,再取数据E的高16位得到数据F,将数据F与16384进行乘法运算(左移15位),得到结果G,同时对数据E右移一位,得到结果数据H,然后进行数据H和数据G的32位减法运算,得到结果I,然后取数据I的低16位,得到数据K,最后将数据F和数据K存入相应的RAM地址中。
(9)Lx_mac16x16:以流水线的方式,从RAM中取数,然后进行所要求的乘加运算,然后以寄存器输出运算结果。
(10)Lx_mac32x32:以流水线方式,从相应的RAM地址中取数,得到数据1,数据2,数据3和数据4,然后对四个数据进行mpy32x32运算,然后将所得的结果和外部输入的初始值相加,得到结果作为下次加法的初始值,且进行溢出判断,执行完要求的运算次数后,以寄存器输出运算结果。
(11)Lx_sub16sqr32:以流水线方式,从相应的RAM地址中取数,得到数据1和数据2,对两数据进行16位减法运算得到结果A,然后对A进行平方运算,得到32位结果B,然后再将数据B与外部输入的初始值进行32位加法,得到结果作为下次加法的初始值,执行完规定的运算次数后,以寄存器输出运算结果。
(12)Lx_getDist:以流水线方式,从相应的RAM地址中取数,得到数据1,数据2,数据3,数据4,进行数据1和数据2的16位减法,得到16位结果A,将数据A和数据3进行“mult”运算(“mult”运算见算法2。6),得到16位结果B,接着,进行数据B和数据4的16位乘法运算,得到32位结果数据C,然后将数据C左移或者右移外部规定的次数后(移动位数由总线输入数据),得到32位数据D,然后取数据D的高16位与数据B进行乘法运算,得到32位数据E,然后进行数据E和外部输入初始值的32位加法运算,得到结果作为下次加法运算的初始值,执行完要求的次数后,以寄存器输出运算结果。
(13)Lx_chebps_11_n_10:G729自带的计算极点的算法。
(14)Sx_linear2alaw:将输入的PCM数据转换为A码,之后寄存器输出。
(15)Sx_linear2ulaw:将输入的PCM数据转换为U码,之后寄存器输出。
(16)Sx_alaw21inear:将输入的A码转换为PCM数据,之后寄存器输出。
(17)Sx_ulaw21inear:将输入的U码转换为PCM数据,之后寄存器输出。
(18)Sx_quan_g721:用于G721中的比较运算,寄存器输出。
(19)Sx_quan_g723_24:用于G723_24中的比较运算,寄存器输出。
(20)Sx_quan_g723_40:用于G723_40中的比较运算,寄存器输出。
(21)Sx_fmult:完成G729中特定的浮点运算。
其中带有“S”的为单次运算,带有“X”的为寄存器输出,带有“W”的算法将结果存入RAM,上述算法都是VOIP自带的算法。
DSP_CAU运算过程如图8所示:(1)输入运算数据以及指令等;(2)判断指令是否为清零指令;(3)运行特定的周期输出数据。
以下是PCU-CAU设计完成VOIP算法以及具体的算法功能描述:
(1)ROUND:将输入数据与0x8000进行加法运算,判断溢出后,去高16位数据
(2)L_EXTRACT:(此运算有两个16位的输出),取输入数据的高16位,作为第一个数据输出;将输入32位数据右移一位后,再减去输入数据的高16位与16384的乘积,判断溢出,然后将结果的低16位数据,作为第二个数据输出。
(3)STATURE:对输入的32位数据进行溢出判断,输出16位数据。
(4)MULT:进行数据1和数据2的16位乘法(结果为32位,包括溢出判断),然后将结果算术右移15位后,并进行溢出判断。
(5)L_MULT:进行数据1和数据2的16位乘法运算,得到32位的结果数据,然后左移一位,并进行溢出判断。
(6)L_SHL:对输入的数据,根据输入的移位次数,进行左移运算。
(7)L_SHR:对输入的数据,根据输入的移位次数,进行右移运算。
(8)SUB:对输入的16位数据1和16位数据2,进行减法运算,并判断溢出。
(9)ADD:对输入的16位数据1和16位数据2,进行加法运算,并判断溢出。
(10)L_SUB:对输入的32位数据1和32位数据2,进行减法运算,并判断溢出。
(11)L_ADD:对输入的32位数据1和32位数据2,进行减法运算,并判断溢出。
(12)L_MAC:对输入的16位数据1和16位数据2进行乘法运算(结果为32位),将结果左移一位,并进行溢出判断,而后和输入的32位初始值进行加法运算,并进行溢出判断。
(13)L_MSU:对输入的16位数据1和16位数据2进行乘法运算(结果为32位),将结果左移一位,并进行溢出判断,而后和输入的32位初始值进行加法运算,并进行溢出判断。
(14)MPY_32:输入32位数据1和数据2,而后对两数据的高16位进行乘法运算,左移一位得到结果A,而后A和数据1高16位与数据2低16位乘法运算后左移两位的结果B,进行加法运算,得到结果C,最后C加上数据1高16位与数据2低16位乘法运算后左移两位的结果D,最后得到结果E,并进行溢出判断。
(15)MPY_32_16:输入三个16为数据,分别为数据1,数据2和数据3,先进行数据1和数据3的乘法运算,左移一位后得到结果A,而后A加上数据2与数据3乘法运算后左移两位的结果B,最后得到结果C,并进行溢出判断。
上述实施例为本实用新型较佳的实施方式,但本实用新型的实施方式并不受上述实施例的限制,其他的任何未背离本实用新型的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本实用新型的保护范围之内。
Claims (4)
1、一种VOIP音频数据传输的硬件加速装置,其特征在于,包括:用于通过算法运算实现流水线设计方法的多次运算模块。
2、根据权利要求1所述的VOIP音频数据传输的硬件加速装置,其特征在于:所述多次运算模块包括:用于进行算法运算的状态机单元、用于控制状态机单元算法运算类型的指令单元、用于实现所述状态机单元算法的流水线设计方法的控制单元和用于供所述状态机单元运算取数以及控制单元存储运算结果数据的寄存器单元。
3、根据权利要求1所述的VOIP音频数据传输的硬件加速装置,其特征在于:还包括用于存储外部输入的运算数据的外部存储器。
4、根据权利要求1所述的VOIP音频数据传输的硬件加速装置,其特征在于:所述硬件加速装置还包括用于通过并行单次运算实现流水线设计方法的单次运算模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNU2008202066817U CN201359722Y (zh) | 2008-12-31 | 2008-12-31 | 一种voip音频数据传输的硬件加速装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNU2008202066817U CN201359722Y (zh) | 2008-12-31 | 2008-12-31 | 一种voip音频数据传输的硬件加速装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN201359722Y true CN201359722Y (zh) | 2009-12-09 |
Family
ID=41425487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNU2008202066817U Expired - Fee Related CN201359722Y (zh) | 2008-12-31 | 2008-12-31 | 一种voip音频数据传输的硬件加速装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN201359722Y (zh) |
-
2008
- 2008-12-31 CN CNU2008202066817U patent/CN201359722Y/zh not_active Expired - Fee Related
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN1246771C (zh) | 用于具有二元数字信号处理指令的指令集结构的方法和装置 | |
CN101501634B (zh) | 使用标量/向量指令处理数据的系统和方法 | |
Zhang et al. | Snap: An efficient sparse neural acceleration processor for unstructured sparse deep neural network inference | |
CN103955447B (zh) | 基于dsp芯片的fft加速器 | |
CN1235160C (zh) | 在专用信号处理器中用于饱和乘法和累加的方法和装置 | |
US20030065905A1 (en) | Parallel computation processor, parallel computation control method and program thereof | |
JP2002152014A (ja) | 正規最小平均二乗アルゴリズムに基づいた係数適応用ハードウエアアクセリレータ | |
CN106557436A (zh) | 终端的内存压缩功能使能方法及装置 | |
CN117574970A (zh) | 用于大规模语言模型的推理加速方法、系统、终端及介质 | |
CN114186183B (zh) | 一种轻量化的fft运算方法及其实现装置 | |
Xiao et al. | FPGA-based scalable and highly concurrent convolutional neural network acceleration | |
CN102567254A (zh) | 采用dma控制器进行数据归一化处理的方法 | |
CN109240644A (zh) | 一种用于伊辛芯片的局部搜索方法及电路 | |
CN201359722Y (zh) | 一种voip音频数据传输的硬件加速装置 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN109389213A (zh) | 存储装置及方法、数据处理装置及方法、电子装置 | |
CN108255463A (zh) | 一种数字逻辑运算方法、电路和fpga芯片 | |
US20130262819A1 (en) | Single cycle compare and select operations | |
CN101771770A (zh) | 一种voip音频数据传输的硬件加速方法及装置 | |
CN101477456B (zh) | 一种自相关运算单元及处理器 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
CN106980600B (zh) | 一种lte接收系统中fpga处理复数矩阵乘法的方法及系统 | |
KR100228546B1 (ko) | Mpeg-2 오디오 부호화 장치 | |
CN109217386A (zh) | 自动发电控制方法、系统及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20121231 |