具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
需要说明的是,在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。
需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。
传统的解速率匹配需要记录填充比特的位置,在解比特选择过程中存在很多判断,这势必会打断数据处理的连贯性,不能并行执行。为此,本发明实施例提供一种多粒度并行解速率匹配方法。如图6所示,该方法包括步骤S100至步骤S104。
步骤S100:计算环形缓冲器矩阵中每列的长度,确定环形缓冲器矩阵的索引地址交织模式,并根据码块长度计算出特殊处理列,特殊处理列为需要进行行交织的列。
在该步骤中,LTE协议中规定码块长度不能被32整除的,需要添加一些空比特,称为填充比特。对于LTE解速率匹配,LTE协议中规定了188种码块长度,根据填充比特数目的不同,一共可以分成四种矩阵模式,矩阵中每列的长度根据码块长度和矩阵列数(LTE协议中规定为32列)得出。每种矩阵模式对应相应的交织模式。
去掉填充比特,重新计算交织模式,有利于数据的并行处理,但同时也需要特殊处理某一列。在每种矩阵模式下,32列中有一列需要做行交织,这样才能与LTE协议中规定的交织模式相吻合。需要做行交织的这一列称为特殊处理列。在四种矩阵模式下,需要特殊处理的列是固定的。
步骤S102:并行读取待解速率匹配数据,并排列成N列矩阵,其中,N为根据处理器位宽得到的并行度,待解速率匹配数据包括系统信息、校验1信息和校验2信息。
在该步骤中,依据并行度N,每次读入N个待解速率匹配的数据,通过多维度读写的方式将矩阵中规律排列的数据一次性写入,恢复出N列矩阵,该矩阵可以是环形缓冲器矩阵。
作为示例,当处理器位宽为512时,并行度为64,可同时处理32位系统信息和32位校验信息。
在解速率匹配时,需要判断每个位置是否是空比特,如果是空比特就丢弃。把去掉空比特的过程称为打孔。去掉空比特后的矩阵,称为打孔后的矩阵。环形缓冲器矩阵总共N列,每列的长度是打孔以后的长度,不包含填充比特。
步骤S104:根据所述索引地址交织模式,对所述N列矩阵中的每一行进行交织操作。
LTE协议中规定,对于系统信息和校验1信息,其交织索引为:<0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31>,校验2信息的交织索引由如下公式计算得到:
通过交织单元,可以将N个数据按照特定索引进行重新排列,从而实现交织操作。
对于LTE协议中规定的解速率匹配,针对码块长度不能被32整除的,需要添加空比特,在解速率匹配的过程中,需要将空比特去掉,去掉空比特的过程,需要判断每个位置是否是空比特,这样不利于数据并行处理。本发明实施例进行了算法优化,将码块按照32列矩阵存放时,不考虑空比特,直接将有效数据按照矩阵模式进行存放,解交织后得到的都是有效数据,不存在空比特的打孔。
本发明实施例遍历了188种码块,空比特数目一共有四种:<28,20,12,4>,每种空比特数目下矩阵的列摆放是固定的,由此得到四种矩阵模式。一种矩阵模式对应唯一的一种交织索引。从而,通过遍历188种码块长度,得到了四种矩阵模式及相应的交织索引。交织索引预先进行存储,不需要实时计算。这样,交织索引形成一种交织模式。本发明实施例得到的是没有空比特的交织模式,从而减少了解比特选择过程中的判断操作,使得数据有一定的连贯性。
在一个可选的实施例中,环形缓冲器矩阵的确定方法为:
根据码块长度,计算出填充比特数目和矩阵行数;
根据填充比特数目和矩阵行数,选择列置换样式作为环形缓冲器矩阵。
在该实施例中,列置换样式在申请号为201410123580.3、名称为《一种LTE系统速率匹配的并行实现方法和装置》的专利中有详细描述。在此以引用的方式结合于此。
作为示例,以码块长度为6144为例,经过信道编码后会增加4个尾比特,码块长度变为6148,矩阵列数为32,矩阵行数为ceil(6148/32)=193,空比特数目为:193*32-6148=28。
在一个可选的实施例中,并行读取待解速率匹配数据,并排列成N列矩阵,具体包括:交叉存放校验1信息和校验2信息,通过交织、选择操作,将校验1信息和校验2信息分离开。
具体地,系统信息的读写是数据的搬移操作,校验信息是交叉读入的,读入两个N字节的数据后,需要将两个N字节的数据进行拆分、重新合并,使得校验1信息和校验2信息分离,然后二维写回,具体过程如图5a至5d所示。
根据LTE协议规定,接收端收到的校验1信息和校验2信息是交叉存放的,本发明实施例中的校验1信息和校验2信息是分别处理的,需要做分离操作,分离过程如下:首先将读入的N个数据送入交织单元,交织索引为<……1,0,1,0,1,0>,经过交织后得到分离的校验1信息和校验2信息,并进行缓存,如图5a所示。第二次读入N位数据进行交织操作,如图5b所示。但此时校验1信息和校验2信息不是完全分离的,此时利用合并单元,将两个寄存器中的校验1信息和校验2信息完全分离,如图5c所示。经过合并后得到的校验2信息前后两部分是颠倒的,此时再一次利用交织单元,交织索引为<…3,2,1,0…N/2+2,N/2+1,N/2>,将校验2信息重新整理,得到顺序排列的校验2信息,如图5d所示。
在一个可选的实施例中,并行读取待解速率匹配数据,并排列成N列矩阵,还具体可以包括:对特殊处理列进行处理,将校验1信息和校验2信息互换位置。
在该实施例中,在写回特殊列时,将校验1信息和校验2信息互换位置。
在一个可选的实施例中,根据处理器位宽,对系统信息、校验1信息和校验2信息进行交织,之后进行多粒度写回,以使系统信息跟校验1信息及校验2信息分离。
在解比特选择的时候,对于系统信息的处理,根据不同的矩阵模式,可以灵活地多维读写,写回粒度为N,完成32列的处理;对于校验信息,由于要将校验1信息和校验2信息分离,需要二维写回,写回粒度为N/2。在解交织操作时,因为同时处理的是系统信息和校验1信息及校验2信息,解交织完成后需要将系统信息和校验信息分离,写回粒度为N/2,二维写回。
如果每次处理N个数据,则系统信息数目为N/2,校验信息数目为N/2。同时对N个数据做完交织后,写回时要将系统信息和校验信息分离,用于后续译码模块的读取。多粒度写回即每次写回N个数据时,如果写回的粒度为N/2时,就可以将系统信息和校验信息分离开,写回到数据存储区的不同逻辑bank中。
所谓逻辑bank,假设数据存储块在一个时钟周期内可以读写N个字节,把数据存储块(datamemory)分成1~N个“逻辑bank”,数据存储块按“逻辑bank”进行寻址。读写粒度g决定了逻辑bank中数据块的数据和编址模式。对于读写粒度g,数据存储块可以分为N/g个逻辑bank,每个逻辑bank由g个存储块构成。
下面以具体案例为例进行说明。
案例场景为:在LTE系统中分配100个RB(Resourceblock,资源块),采用64QAM(QuadratureAmplitudeModulation,正交幅度调制),在单层传输下,传输块长度为75376,并行度为64的解速率匹配。
传输块经过码块分割后,每个码块的大小是5824,经turbo编码后,码块长度增加4个尾比特后变为5828,与物理传输资源相匹配的速率匹配后的码块长度是6642。解速率匹配模块的输入是6642长度的软信息,每个信息的长度用8比特表示。
首先,根据码块长度,确定填充比特数目,具体算法为:
填充比特数目为28时对应模式0,可以得到模式0下每列的列长,分别为:
{182,182,182,182,182,182,182,183,182,182,182,182,182,182,182,183,182,182,182,182,182,182,182,183,182,182,182,182,182,182,182,183,364,364,364,364,364,364,364,366,364,364,364,364,364,364,364,366,364,364,364,364,364,364,364,366,364,364,364,365,364,364,364,365}。需要特殊处理的列为第59列。
然后,进行解比特选择。对于系统信息的解比特选择,其数据排列是有规律的,可以通过三维读写,将系统信息恢复到矩阵的指定列中。校验信息的处理与此类似,注意要对第59列进行特殊处理,即将校验1信息和校验2信息互换位置。
最后进行子块交织。载入模式0的索引地址,对矩阵的每一行进行交织,交织完成后以粒度32写回,使得系统信息和校验信息分离,便于后面的译码操作。
本实施例中将各个步骤按照上述先后次序的方式进行了描述,本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时执行或执行次序颠倒,这些简单的变化都在本发明的保护范围之内。
本发明实施例的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。
本发明实施例还提供一种多粒度并行解速率匹配装置,如图1所示,该装置包括:第一存储单元、第二存储单元、第三存储单元、总线接口单元1、总线接口单元2、向量交织及选择合并单元;向量交织及选择合并单元包括向量交织单元和向量选择合并单元。其中,第一存储单元用于存储待解速率匹配数据;总线接口单元1用于并行读取待解速率匹配数据,并排列成N列矩阵;向量交织单元用于计算环形缓冲器矩阵中每列的长度,确定环形缓冲器矩阵的索引地址交织模式,并根据码块长度计算出特殊处理列,还用于根据索引地址交织模式,对N列矩阵中的每一行进行交织操作;第一存储单元中的数据由总线接口单元1发送至向量交织及选择合并单元进行交织、选择、合并操作,并由总线接口单元2发送至第二存储单元中进行存储;第二存储单元中的数据由总线接口单元2发送至向量交织及选择合并单元中的向量交织单元,对N列矩阵中的每一行进行交织操作,并由总线接口单元1以相应的粒度写入第三存储单元中并进行存储。
具体地,第一存储单元缓存待解速率匹配数据,并按1个逻辑bank进行寻址。第二存储单元缓存解比特选择后的数据,并按64个逻辑bank进行寻址。第三存储单元缓存解速率匹配的输出结果,并按2个逻辑bank进行寻址。总线接口单元1和总线接口单元2均可以进行多维度、多粒度地读写操作。向量交织单元进行向量操作时,每次可以完成N个字节数据的交织,同时还具有数据广播功能。向量选择合并单元具有向量选择、合并操作功能,对于向量操作,可以实现N个数据的二选一,同时完成数据拼接,形成新的数据向量。
下面以具体案例为例进行详细说明。
案例场景为:在LTE系统中分配100个RB(资源快),采用QPSK(QuadraturePhaseShiftKeyin,正交相移键控)调制,在单层传输下,传输块长度为10296,并行度N为64的解速率匹配。
传输块经过码块分割后,每个码块的大小是5184,经turbo编码后,码块长度增加4个尾比特后变为5188,与物理传输资源相匹配的速率匹配后的码块长度是14400。解速率匹配的输入是14400长度的软信息,每个信息的长度用8比特表示。
在该实施例中,填充比特数目为28,矩阵列长分别为:{162,162,162,162,162,162,162,163,162,162,162,162,162,162,162,163,162,162,162,162,162,162,162,163,162,162,162,162,162,162,162,163,324,324,324,324,324,324,324,326,324,324,324,324,324,324,324,326,324,324,324,324,324,324,324,326,324,324,324,325,324,324,324,325}。需要特殊处理的列为第59列。
解速率匹配的输入数据缓存在第一存储单元中,按1个逻辑bank进行寻址。对于首传,是从循环缓冲器矩阵的第2列开始,根据矩阵中不同列的特点,可以采用灵活的多维读取,第2列到第6列可以二维读取,配置总线接口单元1,读入缓存寄存器,然后由总线接口单元2进行二维写回,写回粒度为64。校验信息的处理与系统信息的处理相同,但要把读进来的数据送入向量交织单元和向量选择合并单元,进行交织、选择、合并操作,具体过程见图5a至5d。将交叉存放的校验1信息和校验2信息分离,再重新组合成64字节的数据写回到第二存储单元,写回粒度为64,进行二维写回。解比特选择完成后,再由总线接口单元2进行二维读取第二存储单元中的数据,这样避免了由于校验1信息和校验2信息的索引地址不同所引起的两次配置总线接口单元。利用向量交织单元对读进来的64位字节进行交织,然后以粒度32(即N/2)写回第三存储单元,这样使得系统信息和校验信息分离。所有数据处理完毕后,解速率匹配完成。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。