CN103731386B - 一种基于gpp和simd技术的高速调制方法 - Google Patents

一种基于gpp和simd技术的高速调制方法 Download PDF

Info

Publication number
CN103731386B
CN103731386B CN201410001171.6A CN201410001171A CN103731386B CN 103731386 B CN103731386 B CN 103731386B CN 201410001171 A CN201410001171 A CN 201410001171A CN 103731386 B CN103731386 B CN 103731386B
Authority
CN
China
Prior art keywords
simd
data
encapsulation
instruction
input
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
Application number
CN201410001171.6A
Other languages
English (en)
Other versions
CN103731386A (zh
Inventor
牛凯
丁忆南
贺志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201410001171.6A priority Critical patent/CN103731386B/zh
Publication of CN103731386A publication Critical patent/CN103731386A/zh
Application granted granted Critical
Publication of CN103731386B publication Critical patent/CN103731386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Digital Transmission Methods That Use Modulated Carrier Waves (AREA)

Abstract

一种基于GPP和SIMD技术的高速调制方法,是将输入的k个比特流信息流进行并行调制,并以调制后星座点坐标的实部数据(I路)和虚部数据(Q路)形式输出;k为调制系数,调制方式为BPSK时,k=1;调制方式为QPSK时,k=2;调制方式为22n‑QAM时,k=2n。本发明根据不同的调制系数k采取不同的处理方式,基本流程为:先将各路输入的比特信息分别进行并行的“映射”操作,再使用并行的“加”或“异或”操作,将各路映射后的比特信息结合在一起,产生I路和Q路输出。相比于传统的查表调制方法,本发明提高了数据处理并行度;同时对所有通用调制方式设计了定点数算法,节省了浮点数的运算时间和存储空间,简化计算流程;且时间复杂度和空间复杂度随着调制系数的变化呈线性增长,具有扩展性。

Description

一种基于GPP和SIMD技术的高速调制方法
技术领域
本发明涉及一种基于通用处理器GPP(General Purpose Processor)和单指令多数据流SIMD(Single Instruction Multiple Data)技术的高速调制方法,属于无线通信中的调制解调技术领域。
背景技术
调制技术是对信号源的信息进行处理并叠加到载波上,使其变换为适宜于信道传输的形式的过程。信源的信息通常包含直流分量和频率较低的频率分量,被称为基带信号。基带信号往往不能作为传输信号,因此必须把基带信号转变为一个与基带相比较、其频率非常高的信号,即载波,以适合于信道传输。
调制技术伴随着通信技术的进步而不断发展。数字通信***在淘汰模拟通信***的同时,也带来了数字调制技术。当代数字通信***对传输效率要求越来越高,迫切需要专门研究和尽快开发出一些抗干扰性强、误码性能好、频谱利用率高的数字调制技术。因此,3G***或4G***或其他通信***中使用的调制方式基本相同或趋同。比如:二相相移键控调制BPSK(Binary Phase Shift Keying)使用于宽带码分多址WCDMA(Wideband CodeDivision Multiple Access)通信***、码分多址2000系列CDMA2000(Code DivisionMultiple Access 2000)通信***和802.11n通信***中;四相相移键控调制QPSK使用于WCDMA通信***、CDMA2000通信***、时分-同步码分多址TD-SCDMA(Time Division-Synchronous Code Division Multiple Access)通信***、长期演进LTE(Long TermEvolution)通信***和802.11n通信***中;16进制正交振幅调制16-QAM使用于TD-SCDMA通信***、LTE通信***和802.11n通信***中;64进制正交振幅调制64-QAM在LTE通信***和802.11n通信***中。上述各种调制方式都是通用的调试方式,作为此类调制方式的扩展,任意22n-QAM都具有类似的星座图形状和映射关系,其中n为大于1的自然数。
上述通用调制方式的调制过程为:每产生1个星座点(星座点由I路数据和Q路数据组成),需要使用k个输入的比特信息(k为调制系数,各调制方式的k值是不同的:BPSK时,取值为1;QPSK时,取值为2;16-QAM时,取值为4;64-QAM时,取值为6;22n-QAM时,取值为2n。跟据这些比特信息进行映射,分别得到I路输出和Q路输出的值。
下面以BPSK、QPSK、16-QAM、64-QAM为例,进行说明:
BPSK调制的星座图映射关系如图1所示,每产生1个星座点,需要输入1个比特信息、即b0,其映射关系的公式为:
QPSK调制的星座图映射关系如图2所示,每产生1个星座点,需要输入2个比特信息,即b0和b1,其映射关系的公式为:
16-QAM调制的星座图映射关系如图3所示,每产生1个星座点,需要输入4个比特信息,即b0、b1、b2和b3,其映射关系的公式如下:
I = - 3 , i f ( b 0 = 0 , b 1 = 0 ) - 1 , i f ( b 0 = 0 , b 1 = 1 ) 1 , i f ( b 0 = 1 , b 1 = 1 ) 3 , i f ( b 0 = 1 , b 1 = 0 ) , Q = - 3 , i f ( b 2 = 0 , b 3 = 0 ) - 1 , i f ( b 2 = 0 , b 3 = 1 ) 1 , i f ( b 2 = 1 , b 3 = 1 ) 3 , i f ( b 2 = 1 , b 3 = 0 ) ;
64-QAM调制的星座图映射关系如图4所示,每产生1个星座点,需要输入6个的比特信息,即b0、b1、b2、b3、b4和b5,其映射关系公式如下:
I = - 7 , i f ( b 0 = 0 , b 1 = 0 , b 2 = 0 ) - 5 , i f ( b 0 = 0 , b 1 = 0 , b 2 = 1 ) - 3 , i f ( b 0 = 0 , b 1 = 1 , b 2 = 1 ) - 1 , i f ( b 0 = 0 , b 1 = 1 , b 2 = 0 ) 1 , i f ( b 0 = 1 , b 1 = 1 , b 2 = 0 ) 3 , i f ( b 0 = 1 , b 1 = 1 , b 2 = 1 ) 5 , i f ( b 0 = 1 , b 1 = 0 , b 2 = 1 ) 7 , i f ( b 0 = 1 , b 1 = 0 , b 2 = 0 ) , Q = - 7 , i f ( b 3 = 0 , b 4 = 0 , b 5 = 0 ) - 5 , i f ( b 3 = 0 , b 4 = 0 , b 5 = 1 ) - 3 , i f ( b 3 = 0 , b 4 = 1 , b 5 = 1 ) - 1 , i f ( b 3 = 0 , b 4 = 1 , b 5 = 0 ) 1 , i f ( b 3 = 1 , b 4 = 1 , b 5 = 0 ) 3 , i f ( b 3 = 1 , b 4 = 1 , b 5 = 1 ) 5 , i f ( b 3 = 1 , b 4 = 0 , b 5 = 1 ) 7 , i f ( b 3 = 1 , b 4 = 0 , b 5 = 0 ) ;
从上述各个公式可见,随着调制系数的增加,其计算公式越来越复杂。由于数字***的数据量非常大,而***的传输速率要求又高,如何降低信号调制过程产生的时延,已经成为数字信号调制技术优化与改进的主要方向。
目前,在通用处理器GPP芯片架构下,实现调制的传统算法是使用“查表法”:需要提前将映射关系制成数组C,首先将k个输入的比特信息通过移位和异或的操作,计算得到数组的下标xI和xQ,再在映射关系数组C中,使用xI和xQ查表得到输出的I路和Q路的数值。其中,BPSK的I路有输出值,Q路输出值全部为0。QPSK、16-QAM、64-QAM以及任意22n-QAM中任何一个调制方式的I路和Q路都有输出值,且两者的映射关系是一致的,因此对于其中任何一种调制方式,其映射关系数组C是唯一的(下标表示该表适用的调制方式)。以BPSK、QPSK、16-QAM、64-QAM为例,分别说明之:
在BPSK调制时,产生数组下标的方法如下述公式:xI=b0,其映射关系数组CBPSK的计算公式为:CBPSK[2]={-1,1}。
在QPSK时,产生数组下标的方法如下述公式:其映射关系数组CQPSK的计算公式为:CQPSK[2]={-1,1}。
在16-QAM调制时,产生数组下标的方法如下述公式:其映射关系数组C16-QAM的计算公式为:C16-QAM[4]={-3,3,-1,1}。
在64-QAM调制时,产生数组下标的方法如下述公式:其映射关系数组C64-QAM的计算公式为:C64-QAM[8]={-7,7,-1,1,-5,5,-3,3}。
故在传统查表方法中,每个星座点的输出可表示为公式;
查表法的主要缺点有两条:(1)数组下标的计算和查表的操作很难对数据执行并行计算。(2)随着调制系数的增大,表的大小或容量呈指数式增长.这样无疑使得调制过程的时延更加厉害。
单指令多数据流SIMD(Single Instruction Multiple Data)技术是一种采用一个控制器来控制多个处理器,以便能够同时对一组数据(又称“数据矢量”)中的每个数据分别执行相同的操作,从而实现空间上的并行性处理的技术。在微处理芯片器中,单指令多数据流技术则是一个控制器控制多个平行的处理微元,例如Intel的MMX或SSE以及AMD的3DNow技术。
发明内容
有鉴于此,本发明的目的是提供一种基于GPP和SIMD技术的高速调制方法,本发明方法在保证传输性能和正确性的基础上,在GPP芯片支撑架构下,能够高速完成包括BPSK、QPSK、16-QAM、64-QAM和任意22n-QAM的通用调制过程的全部操作,且具有时延小、成本低、可移植性好和扩展性强等多项优秀特性。
为了达到上述目的,本发明提供了一种基于通用处理器GPP和单指令多数据流SIMD技术的高速调制方法,其特征在于:首先设置调制参数k和k个输入比特信息流B0,B1,...,Bk-1,其中,每个输入比特信息流各自包含t个输入比特信息,用于进行调制生成t个星座点:即输出的t个调制后星座点坐标的I路实部数据和Q路虚部数据,k和t均为自然数,且t=M×s,自然数M和s分别是SIMD封装数据的长度和个数;然后,根据不同的调制系数k采取相应的不同处理方式:先将各路输入的比特信息分别进行并行的“映射”操作,再使用并行的“加”或“异或”操作,将各路映射后的比特信息结合在一起,产生I路和Q路输出;为k个输入比特信息流中的任意一个比特信息,其涵义是第a个输入比特信息流中的第d个比特信息,a和d的取值范围分别为[0,k-1]和[0,t-1];在序号为a的输入比特信息流Ba中,存储有产生每个星座点所对应的比特信息序列中的第a个比特信息,且而且,每个输入比特信息流的第d个比特信息构成的信息序列就是产生第d个星座点的I路和Q路的输出所对应的比特信息序列;其中,I路输出为I0,I1,...,It-1,Q路输出为Q0,Q1,...,Qt-1;然后,将k个字长为t的输入比特信息流分别封装成为s个字长为M的SIMD格式数据;所述方法包括下列操作步骤:
步骤1,根据输入的调制参数k判断要进行的调制模式:
当k=1时,选取二相相移键控调制BPSK(Binary Phase Shift Keying);
当k=2时,选取四相相移键控调制QPSK(Quadrature Phase Shift Keying);
当k>2时,选取2k正交幅度调制2k-QAM(Quadrature Amplitude Modulation),其中,k为大于2的偶数自然数;
步骤2,根据不同的调制方式,执行相应的调制操作内容:
当调制方式为BPSK时,执行高速二相相移键控调制BPSK调制方法;
当调制方式为QPSK时,执行高速四相相移键控调制QPSK调制方法;
当调制方式为任意的2k-QAM时,执行高速正交振幅调制QAM调制方法。
本发明基于GPP和SIMD的高速调制方法,其不同于传统调制方法或创新技术的特点是:(1)本发明是基于GPP和SIMD技术设计的适用于多核、多处理器芯片的高速通用调制方法,其将比特信息按位置进行分类,以实现并行计算,提高了处理并行度。(2)本发明适用于BPSK、QPSK、16-QAM、64-QAM和任意22n-QAM通用调制模式的处理,具有良好的可移植性和扩展性。(3)相较于传统的查表法,本发明方法对SIMD适用的调制算法进行了重大创新:使用并行计算代替了查表映射,节省了计算时延和存储空间。因此,本发明具有很好的推广应用前景。
附图说明
图1是BPSK调制的星座映射示意图。
图2是QPSK调制的星座映射示意图。
图3是16-QAM调制的星座映射示意图。
图4是64-QAM调制的星座映射示意图。
图5是“映射”SIMD指令的操作示意图。
图6是“异或”SIMD指令的操作示意图。
图7是“加”SIMD指令的操作示意图。
图8是本发明基于GPP和SIMD的高速调制方法接口示意图。
图9是本发明基于GPP和SIMD的高速调制方法操作步骤流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明方法的特点是在GPP架构下利用SIMD、即单指令多数据流技术,简化了查表方法,使用并行计算解决了调制映射处理。本发明使用的SIMD技术在执行单条指令时,能够对两组各自包含M个元素的封装数据(分别设为X0,X1,...XM-1和Y0,Y1,...YM-1;少部分情况下、也可只处理一组封装数据)进行并行操作,每对数据元素Xi,Yi(0≤i≤M-1)同时执行相同操作(本发明中为“映射”、“加”和“异或”中的一种),得到的M个结果作为数据元素被封装在一组数据(Z0,Z1,...ZM-1)中。
由于可以并行处理大量数据,SIMD指令能够提高GPP架构的运算速度。SIMD的封装数据长度M取决于封装数据的比特长度P和数据元素类型所占的比特长度R:其中P=64×2T(T=0,1,2,...),数据元素类型为字节时,所对应的R=8,数据元素类型为字时,所对应的R=16。
参见图5,介绍“映射”SIMD指令的操作功能:输入的两组封装数据为X0,X1,...XM-1和Y0,Y1,...YM-1,输出的封装数据为Z0,Z1,...ZM-1,并行地完成M对映射操作,第i(0≤i≤M-1)对使用Yi作为下标,寻找X0,X1,...XM-1中的对应值作为输出,即
参见图6,介绍“异或”SIMD指令的操作功能:输入的两组封装数据为X0,X1,...XM-1和Y0,Y1,...YM-1,输出的封装数据为Z0,Z1,...ZM-1,并行地完成M对与操作,即Zi=Xi^Yi,(0≤i≤M-1)。
参见图7,介绍“加”SIMD指令的操作功能:输入的两组封装数据为X0,X1,...XM-1和Y0,Y1,...YM-1,输出的封装数据为Z0,Z1,...ZM-1,并行地完成M对与操作,即Zi=Xi+Yi,(0≤i≤M-1)。
参见图8,介绍本发明高速调制方法的接口示意图:本发明方法需要外界提供或设置调制参数k和k个输入比特信息流B0,B1,...,Bk-1,其中,每个输入比特信息流各自包含t个输入比特信息,用于进行调制产生t个星座点(即输出的t个调制后星座点坐标的I路实部数据和Q路虚部数据);然后,根据不同的调制系数k采取相应的不同处理方式:先将各路输入的比特信息分别进行并行的“映射”操作,再使用并行的“加”或“异或”操作,将各路映射后的比特信息结合在一起,产生I路和Q路输出;式中,k和t均为自然数,且t=M×s,自然数M和s分别是SIMD封装数据的长度和个数;为k个输入比特信息流中的任意一个比特信息,其涵义是第a个输入比特信息流中的第d个比特信息,a的取值范围为[0,k-1],d的取值范围为[0,t-1]。在序号为a的输入比特信息流Ba中,存储有产生每个星座点所对应的比特信息序列中的第a个比特信息,且而且,每个输入比特信息流的第d个比特信息构成的信息序列就是产生第d个星座点的I路和Q路的输出所对应的比特信息序列;其中,I路输出为I0,I1,...,It-1,Q路输出为Q0,Q1,...,Qt-1;然后,将k个字长为t的输入比特信息流分别封装成为s个字长为M的SIMD格式数据。
参见图9,介绍本发明调制方法的下述具体操作步骤:
步骤1,根据输入的调制参数k判断要进行的调制模式:
当k=1时,选取二相相移键控调制BPSK(Binary Phase Shift Keying);
当k=2时,选取四相相移键控调制QPSK(Quadrature Phase Shift Keying);
当k>2时,选取2k正交幅度调制2k-QAM(Quadrature Amplitude Modulation),其中,k为大于2的偶数自然数。
步骤2,根据下述三种不同的调制方式,执行相应的调制操作内容:
(2A)当调制方式为BPSK时,执行高速二相相移键控调制BPSK调制方法;此时,需要设置1个输入比特信息流B0,并对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,r为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的I路输出:IrM+0,IrM+1,...,IrM+M-1,而最终输出数据流中的Q路输出为全0。
(2B)当调制方式为QPSK时,执行高速四相相移键控调制QPSK调制方法;此时,需要设置2个输入比特信息流B0和B1,并分别对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
(21)依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,u为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的I路输出:IuM+0,IuM+1,...,IuM+M-1
(22)依次对B1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,v为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的Q路输出:QvM+0,QvM+1,...,QvM+M-1
(2C)当调制方式为任意的2k-QAM时,执行高速正交振幅调制QAM调制方法;当k=2n时,需要设置2n个输入比特信息流B0,B1,B2,...,B2n-1,并分别对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
(2a)依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,w为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2b)分别对输入比特信息流B1,B2,...,Bn-2中每个输入比特信息流的s个SIMD封装数据执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,y为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];z为输入比特信息流序号,其取值范围为[1,n-2];“映射”SIMD指令的Y输入的SIMD封装数据为:1,-1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2c)依次对Bn-1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,f为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:2,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2d)依次对Bn中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,g为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2e)分别对Bn+1,Bn+2,...,B2n-2中每个输入比特信息流的s个SIMD封装数据执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,l为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];h为输入比特信息流序号,其取值范围为:[n+1,2n-2];“映射”SIMD指令的Y输入的SIMD封装数据为:1,-1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2f)依次对B2n-1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,c为执行“映射”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:2,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2g)依次对第一中间数据流Fn-1和Fn-2的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:其中,e为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为第二中间数据流:GeM+0,GeM+1,...,GeM+M-1
(2h)循环执行下述操作:使用第二中间数据流G更新第三中间数据流H,再使用更新后的第三中间数据流H和第一中间数据流Fn-3-W执行异或SIMD指令,将其运算结果反馈给新的第二中间数据流G,其中,W为循环操作次数序号,其取值范围是:[0,n-4],且呈递增趋势变化:
先对第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GjM+0,GjM+1,...,GjM+M-1,其中,j为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2W+2-1,2W+2-1,2W+2-1,...,2W+2-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HjM+0,HjM+1,...,HjM+M-1
再对该新的第三中间数据流H和第一中间数据流Fn-3-W中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HmM+0,HmM+1,...,HmM+M-1,其中,m为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为新的第二中间数据流:GmM+0,GmM+1,...,GmM+M-1
(2i)对步骤(2h)得到的第二中间数据流中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GoM+0,GoM+1,...,GoM+M-1,其中,o为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2n-1-1,2n-1-1,2n-1-1,...,2n-1-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HoM+0,HoM+1,...,HoM+M-1
(2j)对该新的第三中间数据流H和第一中间数据流F0的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HpM+0,HpM+1,...,HpM+M-1,其中,p为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为最终输出数据流中的I路输出:IpM+0,IpM+1,...,IpM+M-1
(2k)依次对第一中间数据流F2n-1和F2n-2中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:其中,q为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为第二中间数据流:GqM+0,GqM+1,...,GqM+M-1
(2l)循环执行下述操作:使用第二中间数据流G更新第三中间数据流H,再使用更新后的第三中间数据流H和第一中间数据流F2n-3-A执行异或SIMD指令,将其运算结果反馈给新的第二中间数据流G,其中,A为循环操作次数序号,其取值范围是:[0,n-4],且呈递增趋势变化。
先对第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GDM+0,GDM+1,...,GDM+M-1,其中,D为执行“加”SIMD指令的操作次数序号,其取值范围为[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2A+2-1,2A+2-1,2A+2-1,...,2A+2-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HDM+0,HDM+1,...,HDM+M-1
再对该新的第三中间数据流H和第一中间数据流F2n-3-A中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HJM+0,HJM+1,...,HJM+M-1,其中,J为执行“异或”SIMD指令的操作次数序号,其取值范围为[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为新的第二中间数据流:GJM+0,GJM+1,...,GJM+M-1
(2m)对步骤(2l)得到的第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GKM+0,GKM+1,...,GKM+M-1,其中,K为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2n-1-1,2n-1-1,2n-1-1,...,2n-1-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HKM+0,HKM+1,...,HKM+M-1
(2n)对该新的第三中间数据流H和第一中间数据流Fn中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HLM+0,HLM+1,...,HLM+M-1,其中,L为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1],“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为最终输出数据流中的Q路输出:QLM+0,QLM+1,...,QLM+M-1
本发明已经进行了多次实施试验,试验场景参数如下:在CoreTM i7-3610QM、主频为2.3GHz的CPU上进行传统的查表法和本发明高速通用调制方法的测试,并对处理217个输入比特信息的调制所需要的时间进行比较:
BPSK调制:传统查表方法耗费了3185微秒,本发明方法耗费了225微秒;
QPSK调制:传统查表方法耗费了2863微秒,本发明方法耗费了197微秒;
16-QAM调制:传统查表方法耗费了592微秒,本发明方法耗费了70微秒;
64-QAM调制:传统查表方法耗费了379微秒,本发明方法耗费了55微秒。因此,从速度上来看,本发明较传统的查表方法有了显著提高,而且,本发明的调制方法不需要预先存储调制映射数组。
因此,本发明实施例验证了该基于GPP和SIMD技术的高速调制方法的良好性能,实验结果是成功的,实现了发明目的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (4)

1.一种基于通用处理器GPP和单指令多数据流SIMD技术的高速调制方法,其特征在于:首先设置调制参数k和k个输入比特信息流B0,B1,...,Bk-1,其中,每个输入比特信息流各自包含t个输入比特信息,用于进行调制生成t个星座点:即输出的t个调制后星座点坐标的I路实部数据和Q路虚部数据,k和t均为自然数,且t=M×s,自然数M和s分别是SIMD封装数据的长度和个数;然后,根据不同的调制系数k采取相应的不同处理方式:先将各路输入的比特信息分别进行并行的“映射”操作,再使用并行的“加”或“异或”操作,将各路映射后的比特信息结合在一起,产生I路和Q路输出;为k个输入比特信息流中的任意一个比特信息,其涵义是第a个输入比特信息流中的第d个比特信息,a和d的取值范围分别为[0,k-1]和[0,t-1];在序号为a的输入比特信息流Ba中,存储有产生每个星座点所对应的比特信息序列中的第a个比特信息,且而且,每个输入比特信息流的第d个比特信息构成的信息序列就是产生第d个星座点的I路和Q路的输出所对应的比特信息序列;其中,I路输出为I0,I1,...,It-1,Q路输出为Q0,Q1,...,Qt-1;然后,将k个字长为t的输入比特信息流分别封装成为s个字长为M的SIMD格式数据;所述方法包括下列操作步骤:
步骤1,根据输入的调制参数k判断要进行的调制模式:
当k=1时,选取二相相移键控调制BPSK(Binary Phase Shift Keying);
当k=2时,选取四相相移键控调制QPSK(Quadrature Phase Shift Keying);
当k>2时,选取2k正交幅度调制2k-QAM(Quadrature Amplitude Modulation),其中,k为大于2的偶数自然数;
步骤2,根据不同的调制方式,执行相应的调制操作内容:
当调制方式为BPSK时,执行高速二相相移键控调制BPSK调制方法;
当调制方式为QPSK时,执行高速四相相移键控调制QPSK调制方法;
当调制方式为任意的2k-QAM时,执行高速正交振幅调制QAM调制方法。
2.根据权利要求1所述的方法,其特征在于:所述步骤2在执行高速BPSK调制方法时,需要设置1个输入比特信息流B0,并对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,r为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的I路输出:IrM+0,IrM+1,...,IrM+M-1,而最终输出数据流中的Q路输出为全0。
3.根据权利要求1所述的方法,其特征在于:所述步骤2在执行高速QPSK调制方法时,需要设置2个输入比特信息流B0和B1,并分别对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
(21)依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,u为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的I路输出:IuM+0,IuM+1,...,IuM+M-1
(22)依次对B1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,v为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令操作后,得到的输出Z为最终输出数据流中的Q路输出:QvM+0,QvM+1,...,QvM+M-1
4.根据权利要求1所述的方法,其特征在于:所述步骤2在执行高速QAM调制方法、且k=2n时,需要设置2n个输入比特信息流B0,B1,B2,...,B2n-1,并分别对其执行并行的“映射”SIMD指令,完成下述调制操作内容:
(2a)依次对B0中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,w为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2b)分别对输入比特信息流B1,B2,...,Bn-2中每个输入比特信息流的s个SIMD封装数据执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,y为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];z为输入比特信息流序号,其取值范围为[1,n-2];“映射”SIMD指令的Y输入的SIMD封装数据为:1,-1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2c)依次对Bn-1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,f为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:2,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2d)依次对Bn中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,g为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:-1,1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2e)分别对Bn+1,Bn+2,...,B2n-2中每个输入比特信息流的s个SIMD封装数据执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,l为执行“映射”SIMD指令的操作次数序号,其取值范围为[0,s-1];h为输入比特信息流序号,其取值范围为:[n+1,2n-2];“映射”SIMD指令的Y输入的SIMD封装数据为:1,-1,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2f)依次对B2n-1中的s个SIMD封装数据分别执行“映射”SIMD指令,该“映射”SIMD指令的X输入的SIMD封装数据为:其中,c为执行“映射”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“映射”SIMD指令的Y输入的SIMD封装数据为:2,0,...,0;则完成该“映射”SIMD指令后,得到的输出Z为第一中间数据流:
(2g)依次对第一中间数据流Fn-1和Fn-2的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:其中,e为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为第二中间数据流:GeM+0,GeM+1,...,GeM+M-1
(2h)循环执行下述操作:使用第二中间数据流G更新第三中间数据流H,再使用更新后的第三中间数据流H和第一中间数据流Fn-3-W执行异或SIMD指令,将其运算结果反馈给新的第二中间数据流G,其中,W为循环操作次数序号,其取值范围是:[0,n-4],且呈递增趋势变化:
先对第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GjM+0,GjM+1,...,GjM+M-1,其中,j为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2W+2-1,2W+2-1,2W +2-1,...,2W+2-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HjM+0,HjM+1,...,HjM+M-1
再对该新的第三中间数据流H和第一中间数据流Fn-3-W中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HmM+0,HmM+1,...,HmM+M-1,其中,m为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为新的第二中间数据流:GmM+0,GmM+1,...,GmM+M-1
(2i)对步骤(2h)得到的第二中间数据流中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GoM+0,GoM+1,...,GoM+M-1,其中,o为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2n-1-1,2n-1-1,2n-1-1,...,2n-1-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HoM+0,HoM+1,...,HoM+M-1
(2j)对该新的第三中间数据流H和第一中间数据流F0的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HpM+0,HpM+1,...,HpM+M-1,其中,p为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为最终输出数据流中的I路输出:IpM+0,IpM+1,...,IpM+M-1
(2k)依次对第一中间数据流F2n-1和F2n-2中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:其中,q为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为第二中间数据流:GqM+0,GqM+1,...,GqM+M-1
(2l)循环执行下述操作:使用第二中间数据流G更新第三中间数据流H,再使用更新后的第三中间数据流H和第一中间数据流F2n-3-A执行异或SIMD指令,将其运算结果反馈给新的第二中间数据流G,其中,A为循环操作次数序号,其取值范围是:[0,n-4],且呈递增趋势变化:
先对第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GDM+0,GDM+1,...,GDM+M-1,其中,D为执行“加”SIMD指令的操作次数序号,其取值范围为[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2A+2-1,2A+2-1,2A+2-1,...,2A+2-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HDM+0,HDM+1,...,HDM+M-1
再对该新的第三中间数据流H和第一中间数据流F2n-3-A中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HJM+0,HJM+1,...,HJM+M-1,其中,J为执行“异或”SIMD指令的操作次数序号,其取值范围为[0,s-1];“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为新的第二中间数据流:GJM+0,GJM+1,...,GJM+M-1
(2m)对步骤(2l)得到的第二中间数据流G中的s个SIMD封装数据分别执行“加”SIMD指令,该“加”SIMD指令的X输入的SIMD封装数据为:GKM+0,GKM+1,...,GKM+M-1,其中,K为执行“加”SIMD指令的操作次数序号,其取值范围为:[0,s-1];“加”SIMD指令的Y输入的SIMD封装数据为:2n-1-1,2n-1-1,2n-1-1,...,2n-1-1;则完成该“加”SIMD指令后,得到的输出Z为新的第三中间数据流:HKM+0,HKM+1,...,HKM+M-1
(2n)对该新的第三中间数据流H和第一中间数据流Fn中的s个SIMD封装数据分别执行“异或”SIMD指令,该“异或”SIMD指令的X输入的SIMD封装数据为:HLM+0,HLM+1,...,HLM+M-1,其中,L为执行“异或”SIMD指令的操作次数序号,其取值范围为:[0,s-1],“异或”SIMD指令的Y输入的SIMD封装数据为:则完成该“异或”SIMD指令后,得到的输出Z为最终输出数据流中的Q路输出:QLM+0,QLM+1,...,QLM+M-1
CN201410001171.6A 2014-01-02 2014-01-02 一种基于gpp和simd技术的高速调制方法 Active CN103731386B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410001171.6A CN103731386B (zh) 2014-01-02 2014-01-02 一种基于gpp和simd技术的高速调制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410001171.6A CN103731386B (zh) 2014-01-02 2014-01-02 一种基于gpp和simd技术的高速调制方法

Publications (2)

Publication Number Publication Date
CN103731386A CN103731386A (zh) 2014-04-16
CN103731386B true CN103731386B (zh) 2017-01-25

Family

ID=50455317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410001171.6A Active CN103731386B (zh) 2014-01-02 2014-01-02 一种基于gpp和simd技术的高速调制方法

Country Status (1)

Country Link
CN (1) CN103731386B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893319A (zh) * 2014-12-12 2016-08-24 上海芯豪微电子有限公司 一种多车道/多核***和方法
CN110430034B (zh) * 2019-06-25 2020-09-25 北京邮电大学 一种无源光网络物理层数据加密方法及装置
CN112003811B (zh) * 2020-07-29 2021-11-09 北京大学 一种对任意形状星座图比特映射关系的优化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095326A (zh) * 2004-11-05 2007-12-26 艾色拉公司 计算编码的正交振幅调制的信号的对数似然比的方法和***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101095326A (zh) * 2004-11-05 2007-12-26 艾色拉公司 计算编码的正交振幅调制的信号的对数似然比的方法和***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Xu, Yanuo;Niu, Kai;He, Zhiqiang.Improved Convolutional Coding and Decoding of IEEE802.11n Based on General Purpose Processors.《2013 8TH INTERNATIONAL ICST CONFERENCE ON COMMUNICATIONS AND NETWORKING IN CHINA (CHINACOM)》.2013,189-193. *
Zhang, Xinke;He, Zhiqiang;Niu, Kai.Research on the Implementation of Highly Efficient MIMO Equalizer for LTE-A Systems Based on the GPP Architecture.《2013 5TH IEEE INTERNATIONAL SYMPOSIUM ON MICROWAVE, ANTENNA, PROPAGATION AND EMC TECHNOLOGIES FOR WIRELESS COMMUNICATIONS (MAPE)》.2013,105-114. *

Also Published As

Publication number Publication date
CN103731386A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN105335331B (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及***
CN103731386B (zh) 一种基于gpp和simd技术的高速调制方法
US10826739B1 (en) Systems and methods for efficient clipping in crest factor reduction processes
CN108229645A (zh) 卷积加速和计算处理方法、装置、电子设备及存储介质
CN102866878B (zh) 加速对特性2椭圆曲线密码***的计算的方法
Sinha Roy et al. Modular hardware architecture for somewhat homomorphic function evaluation
CN110233721A (zh) Sm4加速处理器、方法和***
CN105204820B (zh) 用于提供通用gf(256)simd加密算术功能的指令和逻辑
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN101729463A (zh) 一种实现快速傅立叶变换、反变换的硬件装置及方法
CN115344236B (zh) 多项式乘法运算方法、多项式乘法器、设备及介质
CN105790939A (zh) 一种vlsi实现加速器的素数域椭圆曲线密码***
CN105095152B (zh) 一种可配置的128点fft装置
CN101136070A (zh) 基于可重构架构的多协议射频标签读写器基带处理器
CN105515627A (zh) 一种大规模mimo检测方法及检测装置
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN105183701A (zh) 1536点fft处理方式及相关设备
Mkhinini et al. HLS design of a hardware accelerator for homomorphic encryption
Meeuwsen et al. A full-rate software implementation of an IEEE 802.11 a compliant digital baseband transmitter
CN116822616A (zh) 一种用于大语言模型中Softmax函数训练的装置
JPWO2011102291A1 (ja) 高速フーリエ変換回路
CN102769600B (zh) 一种ofdm***接收机中缩放因子解调制的方法及装置
Noguera et al. Implementation of sphere decoder for MIMO-OFDM on FPGAs using high-level synthesis tools
CN112799637B (zh) 一种并行环境下高吞吐量的模逆计算方法及***
US9871554B2 (en) Method and vector computing unit for implementing de-scrambling and de-spreading, and computer storage medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant