CN113169811B - 数据处理方法及矩阵存储器 - Google Patents
数据处理方法及矩阵存储器 Download PDFInfo
- Publication number
- CN113169811B CN113169811B CN201880099748.8A CN201880099748A CN113169811B CN 113169811 B CN113169811 B CN 113169811B CN 201880099748 A CN201880099748 A CN 201880099748A CN 113169811 B CN113169811 B CN 113169811B
- Authority
- CN
- China
- Prior art keywords
- symbol
- sequence
- code elements
- memory
- symbols
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请实施例公开了一种数据处理方法。本申请实施例方法包括:根据第一序列对应的交织矩阵确定第一序列中每个码元对应的读出序号,并根据读出序号a确定每个码元对应的存储地址,存储地址至少包括存储单元标识以及位置标识,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),其中,d为每个存储器包含的存储单元的数量,v为每个存储单元包含的数据块的数量;根据每个码元对应的存储地址将每个码元写入n个存储器的存储单元的目标数据块中;根据n个存储器的存储单元的编号将目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
Description
技术领域
本申请涉及通信领域,尤其涉及数据处理方法及矩阵存储器。
背景技术
交织,就是在信息编码过程中,发送端通过交织器,将输入数据顺序打乱的过程,这可以使数据序列的相关性大大减弱,极大地消除突发错误的危害;解交织,就是在接收端通过相反的处理把数据恢复成原来的顺序的过程。经过交织和解交织,可以把一条突发错误信道转换成一条随机错误信道,而后者可用纠错码进行纠正。
按照协议规定增强移动宽带(enhance mobile broadband,eMBB)控制信道的编码方案为极化(Polar)码,编码过程的交织方式为等腰三角交织(triangular interleaver)。一般情况下,可以采用P个先入先出队列(first input first output,FIFO)存储器拼接成一个行数(列数)为P的三角形矩阵,对三角形矩阵内的FIFO存储器的读写操作完成等腰三角形的交织和解交织。
采用FIFO搭建三角形矩阵,需要的存储器数量与三角形矩阵的行数(列数)相等,为了适应不同码长的序列,通信设备中需要设置大量的FIFO存储器,耗费的成本较大。
发明内容
本申请实施例提供了数据处理方法及矩阵存储器,可以节省成本。
有鉴于此,本申请第一方面提供了一种数据处理方法,该方法应用于可随机存址的n个存储器,其中n为大于或等于1的整数,该方法包括:根据第一序列对应的交织矩阵确定第一序列中的码元对应的读出序号,然后根据码元的读出序号确定码元对应的存储地址,再根据码元的存储地址将码元写入n个存储器的存储单元的目标数据块中,将第一序列的每个码元都写入对应目标数据块后,根据n个存储器的编号将每个码元从对应的目标数据块中读出,并按照预定方式进行组合得到第二序列。
其中,读出序号记为a,用于指示码元从交织矩阵取出的顺序,即指示码元在交织矩阵中是第几个读出的,这里交织矩阵可以理解为各个目标数据块组成的存储矩阵。
存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存单元中的1个数据块。本实现方式中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,其中,RE1=MOD(a,n*d),RE2=MOD(a,n*d*v),d为每个存储器包含的存储单元的数量,即存储器的深度,v为每个存储单元包含的数据块的数量,即存储器的位宽,需要说明的是,本实现方式中的n个存储器的深度和位宽是一样的。
本申请中的数据处理方法可以用于随机寻址的n个存储器,数据处理装置可以根据第一序列的交织矩阵确定第一序列中每个码元对应的读出序号a,并根据读出序号a确定每个码元对应的存储地址,然后根据每个码元对应的存储地址将每个码元写入对应的目标数据块中,最后按照数据块所在存储单元的编号将目标数据块中的码元读出,按照预定方式组合得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
在第一种可能的实现方式中,数据处理装置可以通过如下方式将第一序列中的每个码元写入目标数据块中:按照码元在第一序列中的排列顺序,通过至少一次写操作,将每个码元写入存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
本实现方式提供了一种将各个码元写入对应目标数据块的具体方式,提高了方案的可实现性。
在第一方面的一种可能的实现方式中,该数据处理方法用于实现数据的解交织,即第一序列为交织序列,第二序列为原始序列,对应地,数据处理装置可以通过如下方式将每个码元写入存储地址所指示的目标数据块中:针对每次写操作,若本次写操作对应的m个码元中不存在冲突码元,则在本次写操作中将这m个码元分别写入这m个码元的存储地址所指示的目标数据块中,若本次写操作对应的m个码元中存在冲突码元,则在本次写操作中将这m个码元中的b个码元写入这b个码元的存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次写操作对应的码元,其中,这b个码元对应的读出序号小于或等于第一码元对应的读出序号,这m-b个码元对应的读出序号大于第一码元对应的读出序号,第一码元为冲突码元中读出序号最小的码元。
需要说明的是,本实现方式中每次写操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次写操作对应的m的值可以相同,也可以不同。
本实现方式中,可以对冲突码元进行识别,从而可以避免填充码元过程中出现的写冲突,提升了处理效率。
在第一方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;则数据处理装置可以通过如下方式确定第一序列中每个码元对应的读出序号:
对于第一序列中的任意一个码元,若该码元在三角形矩阵中对应的位置为第i列的第j个,则通过如下公式确定该码元对应的读出序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数。
本实现方式提供了解交织过程中计算读出序号的具体方式,提高了方案的可实现性。
在第一方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;则数据处理装置可以通过如下方式确定第一序列中每个码元对应的读出序号:
针对交织矩阵的P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定该列中每个码元对应的读出序号,而对于任意一列,可以通过如下方式确定该列中每个码元对应的读出序号:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,这n+1个码元的初始码元为该列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
然后通过如下公式计算本次计算操作对应的n+1个码元的读出序号:
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的读出序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的读出序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
本实现方式提供了另一种计算读出序号的方式,提高了方案的灵活性。进一步地,这种一边计算一边更新的方式,对计算处理能力要求较低,当数据量较大时,也可以快速完成计算。
在第一方面的一种可能的实现方式中,该数据处理方法用于实现数据的交织,即第一序列为原始序列,第二序列为交织序列,对应地,可以通过如下方式将第一序列的每个码元写入存储地址所指示的目标数据块中包括:
针对每次写操作,若本次写操作对应的m个码元不存在冲突码元,则在本次写操作中将这m个码元分别写入这m个码元的存储地址所指示的目标数据块中;若本次写操作对应的m个码元存在冲突码元,则在本次写操作中将这m个码元中的b个码元写入这b个码元的存储地址所指示的目标数据块中,并将这m个码元中其余m-b个码元作为下一次写操作对应的码元,其中,这a个码元对应的读出序号小于或等于第一码元对应的读出序号,这m-b个码元对应的读出序号大于第一码元对应的读出序号,第一码元为冲突码元中读出序号最小的码元。
需要说明的是,本实现方式中每次写操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次写操作对应的m的值可以相同,也可以不同。
本实现方式中,可以对冲突码元进行识别,从而可以避免填充码元过程中出现的写冲突,提升了处理效率。
在第一方面的一种可能的实现方式中,该数据处理方法用于实现数据的交织,第一序列对应的交织矩阵为P行P列的三角形矩阵,P为大于1的整数;对应地,数据处理装置可以通过如下方式确定第一序列中每个码元对应的读出序号包括:
对于第一序列中的任意一个码元,若该码元在三角形矩阵中对应的位置为第i行的第j个,则确定该码元对应的读出序号i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值总数。
本实现方式提供了解交织过程中计算读出序号的具体方式,提高了方案的可实现性。
在第一方面的一种可能的实现方式中,n大于1,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
本实现方式提供了另一种确定存储地址的方式,提高了方案的灵活性。
在第一方面的一种可能的实现方式中,对于第一序列中的任意一个码元,数据处理装置根据该码元的读出序号可以通过如下方式确定该码元对应的存储地址:
先根据码元的读出序号计算出码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
本实现方式提供了一种确定存储单元标识,位置标识以及存储器标识的具体方式,提高了方案的可实现性。
在第一方面的一种可能的实现方式中,对于第一序列中的任意一个码元,数据处理装置根据该码元的读出序号可以通过如下方式确定该码元对应的存储地址:
将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
本实现方式提供了另一种确定存储单元标识,位置标识以及存储器标识的具体方式,提高了方案的灵活性。
在第一方面的一种可能的实现方式中,数据处理装置可以通过如下方式将目标数据块中的码元读出,并按照预定方式进行组合得到第二序列:
首先,按照存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;
对于任意一次读操作对应的n个存储单元,将这n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合得到w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,其中,w小于或等于v;
通过若干次读操作将各个目标数据块的码元均读出后,将每次读操作对应的序列进行组合即可得到第二序列。
本实现方式提供了一种将码元读出得到第二序列(交织序列或原始序列)的具体方式,提高了方案的可实现性。
本申请第二方面提供了一种数据处理方法,该方法包括:根据n个存储器中存储单元的编号将第一序列中的各个码元写入n个存储器的存储单元的目标数据块中,然后根据第一序列对应的交织矩阵确定码元对应的写入序号,并根据写入序号确定写入序号确定每个码元对应的存储地址,再按照码元对应交织矩阵对应的取出顺序将码元从该码元的存储地址所指示的目标数据块中读出,将各个目标数据块中的码元均读出后即可得到第二序列。
其中,写入序号记为a,用于指示码元填充至交织矩的顺序,即指示码元是第几个写入交织矩阵的,这里交织矩阵可以理解为各个目标数据块组成的存储矩阵。
存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存单元中的1个数据块。本实现方式中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,其中,RE1=MOD(a,n*d),RE2=MOD(a,n*d*v),d为每个存储器包含的存储单元的数量,即存储器的深度,v为每个存储单元包含的数据块的数量,即存储器的位宽,需要说明的是,本实现方式中的n个存储器的深度和位宽是一样的。
本申请中的数据处理方法可以用于随机寻址的n个存储器,数据处理装置根据存储单元的编号将第一序列中的各个码元写入n个存储器的存储单元的目标数据块中,可以根据第一序列的交织矩阵确定第一序列中每个码元对应的写入序号a,并根据写入序号a确定每个码元对应的存储地址,然后根据每个码元对应的存储地址将码元从对应的目标数据块中读出得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
在第二方面的一种可能的实现方式中,数据处理装置可以通过如下方式将第一序列中的每个码元从对应的目标数据块中读出:通过至少一次读操作,将每个码元从存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
本实现方式提供了一种将各个码元从对应目标数据块读出的具体方式,提高了方案的可实现性。
在第二方面的一种可能的实现方式中,该数据处理方法用于实现数据的解交织,即第一序列为交织序列,第二序列为原始序列,对应地,数据处理装置可以通过如下方式将每个码元从存储地址所指示的目标数据块中读出:
对于任意一次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将这m个码元分别从这m个码元对应存储地址这所指示的目标数据块中读出;若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将这m个码元中的b个码元从这b个码元对应存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次读操作对应的码元,其中,这b个码元对应的写入序号小于或等于第一码元对应的写入序号,这m-b个码元对应的写入序号大于第一码元对应的写入序号,第一码元为冲突码元中写入序号最小的码元。
需要说明的是,本实现方式中每次读操作对应的m个码元在交织矩阵对应的位置处于同一行,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次读操作对应的m的值可以相同,也可以不同。
本实现方式中,可以对冲突码元进行识别,从而可以避免取出码元过程中出现的读冲突,提升了处理效率。
在第二方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;则数据处理装置可以通过如下方式确定第一序列中每个码元对应的写入序号:
对于第一序列中的任意一个码元,若该码元在三角形矩阵中对应的位置为第i行的第j个,则确定该码元对应的写入序号i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值总数。
本实现方式提供了解交织过程中计算写入序号的具体方式,提高了方案的可实现性。
在第二方面的一种可能的实现方式中,该数据处理方法用于实现数据的交织,即第一序列为原始序列,第二序列为交织序列,对应地,数据处理装置可以通过如下方式将每个码元从存储地址所指示的目标数据块中读出:
对于任意一次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将这m个码元分别从这m个码元对应存储地址这所指示的目标数据块中读出;若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将这m个码元中的b个码元从这b个码元对应存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次读操作对应的码元,其中,这b个码元对应的写入序号小于或等于第一码元对应的写入序号,这m-b个码元对应的写入序号大于第一码元对应的写入序号,第一码元为冲突码元中写入序号最小的码元。
需要说明的是,本实现方式中每次读操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次读操作对应的m的值可以相同,也可以不同。
本实现方式中,可以对冲突码元进行识别,从而可以避免取出码元过程中出现的读冲突,提升了处理效率。
在第二方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;则数据处理装置可以通过如下方式确定第一序列中每个码元对应的写入序号:
对于第一序列中的任意一个码元,若该码元在该三角形矩阵中对应的位置为第i列的第j个,则通过如下公式确定该码元对应的写入序号i为0至P-1的任意整数,j为0至P-i-1的任意整数。
本实现方式提供了一种计算交织流程中码元的写入序号的计算方式,提高了方案的可实现性。
在第二方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;则数据处理装置可以通过如下方式确定第一序列中每个码元对应的写入序号:
针对交织矩阵的P列,按照从上到下的顺序,通过至少一次计算操作,确定每列中的每个码元对应的写入序号,而对于任意一列,可以通过如下方式确定该列中每个码元对应的写入序号:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,这n+1个码元的初始码元为该列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
然后通过如下公式计算本次计算操作对应的n+1个码元的写入序号:
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的写入序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的写入序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
本实现方式提供了另一种计算写入序号的方式,提高了方案的灵活性。进一步地,这种一边计算一边更新的方式,对计算处理能力要求较低,当数据量较大时,也可以快速完成计算。
在第二方面的一种可能的实现方式中,n大于1,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
本实现方式提供了另一种确定存储地址的方式,提高了方案的灵活性。
在第二方面的一种可能的实现方式中,对于第一序列中的任意一个码元,数据处理装置根据该码元的读出序号可以通过如下方式确定该码元对应的存储地址:
先根据码元的读出序号计算出码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
本实现方式提供了一种确定存储单元标识,位置标识以及存储器标识的具体方式,提高了方案的可实现性。
在第二方面的一种可能的实现方式中,对于第一序列中的任意一个码元,数据处理装置根据该码元的读出序号可以通过如下方式确定该码元对应的存储地址:
将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
本实现方式提供了另一种确定存储单元标识,位置标识以及存储器标识的具体方式,提高了方案的灵活性。
在第二方面的一种可能的实现方式中,数据处理装置可以通过如下方式将第一序列中各个码元写入目标数据块中:
按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;
针对每次写操作,将该次写操作对应的码元写入该次写操作对应的存储单元的数据块中,其中,第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,w为0至d-1的任意整数,h为0至v-1的任意整数。
本申请第三方面提供了一种数据处理装置,该数据处理装置具有实现上述第一方面的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相应的模块。
本申请第四方面提供了一种数据处理装置,该数据处理装置具有实现上述第二方面的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相应的模块。
本申请第五方面提供了一种矩阵存储器,该矩阵存储器包括:写侧逻辑控制电路,读侧逻辑控制电路以及随机寻址的n个存储器,n为大于或等于1的整数;
写侧逻辑控制电路用于根据第一序列对应的交织矩阵确定第一序列中每个码元对应的读出序号a,并根据读出序号a确定每个码元对应的存储地址,读出序号a用于指示码元从交织矩阵取出的顺序,存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存储单元中的1个数据块,其中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),其中,d为每个存储器包含的存储单元的数量,v为每个存储单元包含的数据块的数量;
写侧逻辑控制电路用于根据每个码元对应的存储地址将每个码元写入n个存储器的存储单元的目标数据块中;
读侧逻辑控制电路用于根据n个存储器的存储单元的编号将目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
在第五方面的一种可能的实现方式中,写侧逻辑控制电路具体用于按照每个码元在第一序列中的排列顺序,通过至少一次写操作,将每个码元写入存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
在第五方面的一种可能的实现方式中,第一序列为交织序列,第二序列为原始序列;写侧逻辑控制电路具体用于针对每次写操作,若本次写操作对应的m个码元中不存在冲突码元,则在本次写操作中将m个码元分别写入m个码元的存储地址所指示的目标数据块中,m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n;
若本次写操作对应的m个码元中存在冲突码元,则在本次写操作中将m个码元中的b个码元写入b个码元的存储地址所指示的目标数据块中,并将m个码元中的m-b个码元作为下一次写操作对应的码元,其中,b个码元对应的读出序号小于或等于第一码元对应的读出序号,m-b个码元对应的读出序号大于第一码元对应的读出序号,第一码元为冲突码元中读出序号最小的码元。
在第五方面的一种可能的实现方式中,交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;写侧逻辑控制电路具体用于针对第一序列中的每个码元,若该码元在三角形矩阵中对应的位置为第i列的第j个,则通过如下公式确定该码元对应的读出序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数。
在第五方面的一种可能的实现方式中,交织矩阵为P行P列的三角形矩阵,P为大于1的整数;
写侧逻辑控制电路具体用于针对P列中的任意一列,按照从上到下的顺序,通过至少一次计算操作,该列中的每个码元对应的读出序号;
其中,通过至少一次计算操作,确定该列中每个码元对应的读出序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,n+1个码元的初始码元为该列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
通过如下公式计算n+1个码元的读出序号:
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的读出序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的读出序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
在第五方面的一种可能的实现方式中,第一序列为原始序列,第二序列为交织序列,写侧逻辑控制电路具体用于针对每次写操作,若本次写操作对应的m个码元不存在冲突码元,则在本次写操作中将这m个码元分别写入这m个码元的存储地址所指示的目标数据块中;若本次写操作对应的m个码元存在冲突码元,则在本次写操作中将这m个码元中的b个码元写入这b个码元的存储地址所指示的目标数据块中,并将这m个码元中其余m-b个码元作为下一次写操作对应的码元,其中,这a个码元对应的读出序号小于或等于第一码元对应的读出序号,这m-b个码元对应的读出序号大于第一码元对应的读出序号,第一码元为冲突码元中读出序号最小的码元。
其中,每次写操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次写操作对应的m的值可以相同,也可以不同。
在第五方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,P为大于1的整数;写侧逻辑控制电路具体同于针对第一序列中的每个码元,若该码元在三角形矩阵中对应的位置为第i行的第j个,则确定该码元对应的读出序号i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值总数。
在第五方面的一种可能的实现方式中,n大于1,对应地,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
在第五方面的一种可能的实现方式中,写侧逻辑控制电路具体用于根据读出序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
在第五方面的一种可能的实现方式中,写侧逻辑控制电路具体用于将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
在第五方面的一种可能的实现方式中,读侧辑控制电路具体用于按照n个存储器的存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;
针对每次读操作对应的n个存储单元,将n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,w小于或等于v;
将每次读操作对应的序列进行组合得到第二序列。
本申请第六方面提供了一种矩阵存储,该矩阵存储器包括:写侧逻辑控制电路,读侧逻辑控制电路以及随机寻址的n个存储器,n为大于或等于1的整数;
写侧逻辑控制电路用于根据n个存储器中存储单元的编号将第一序列中各个码元写入n个存储器的存储单元的目标数据块中;读侧逻辑控制电路用于根据第一序列对应的交织矩阵确定每个码元对应的写入序号a,并根据写入序号a确定每个码元对应的存储地址,写入序号a用于指示码元填充至交织矩阵的顺序,存储地址至少包括存储单元标识以及位置标识,存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,其中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),其中,d为每个存储器包含的存储单元的数量,v为每个存储单元包含的数据块的数量;
读侧逻辑控制电路用于按照每个码元在交织矩阵对应的取出顺序,根据每个码元对应的存储地址将每个码元从目标数据块中读出,得到第二序列。
在第六方面的一种可能的实现方式中,读侧逻辑控制电路具体用于通过至少一次读操作,将每个码元从存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
在第六方面的一种可能的实现方式中,第一序列为交织序列,第二序列为原始序列,对应地,杜策逻辑控制电路具体用于针对每一次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将这m个码元分别从这m个码元对应存储地址这所指示的目标数据块中读出;若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将这m个码元中的b个码元从这b个码元对应存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次读操作对应的码元,其中,这b个码元对应的写入序号小于或等于第一码元对应的写入序号,这m-b个码元对应的写入序号大于第一码元对应的写入序号,第一码元为冲突码元中写入序号最小的码元。
其中,每次读操作对应的m个码元在交织矩阵对应的位置处于同一行,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n,而每次读操作对应的m的值可以相同,也可以不同。
在第六方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;读侧逻辑控制电路具体用于针对第一序列中的每个码元,若该码元在三角形矩阵中对应的位置为第i行的第j个,则确定该码元对应的写入序号i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值总数。
在第六方面的一种可能的实现方式中,第一序列为原始序列,第二序列为交织序列;
读侧逻辑控制电路具体用于针对每次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将m个码元分别从m个码元对应存储地址所指示的数据块中,m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n;
若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将m个码元中的b个码元从b个码元对应存储地址所指示的目标数据块中,并将m个码元中的m-b个码元作为下一次读操作对应的码元,其中,b个码元对应的写入序号小于或等于第一码元对应的写入序号,m-b个码元对应的写入序号大于第一码元对应的写入序号,第一码元为冲突码元中写入序号最小的码元。
在第六方面的一种可能的实现方式中,交织矩阵为P行P列的三角形矩阵,P为大于1的整数;
读侧逻辑控制电路具体用于针对P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定该列中每个码元对应的写入序号;
通过至少一次计算操作,确定该列中每个码元对应的写入序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,n+1个码元的初始码元为该列的列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
通过如下公式计算n+1个码元的写入序号:
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的写入序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的写入序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
在第六方面的一种可能的实现方式中,第一序列对应的交织矩阵为P行P列的三角形矩阵,其中,P为大于1的整数;读侧逻辑控制电路具体用于针对第一序列中的每个码元,若该码元在该三角形矩阵中对应的位置为第i列的第j个,则通过如下公式确定该码元对应的写入序号i为0至P-1的任意整数,j为0至P-i-1的任意整数。
在第六方面的一种可能的实现方式中,n大于1,对应地,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
在第六方面的一种可能的实现方式中,读侧逻辑控制电路具体用于根据写入序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
在第六方面的一种可能的实现方式中,读侧逻辑控制电路具体用于将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
在第六方面的一种可能的实现方式中,写侧逻辑控制电路具体用于按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;
针对每次写操作,将写操作对应的码元写入写操作对应的存储单元的数据块中,其中,第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,w为0至d-1的任意整数,h为0至v-1的任意整数。
本申请第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面各个实现方式所述的方法。
本申请第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面各个实现方式所述的方法。
本申请第九方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面各个实现方式所述的方法。
本申请第十方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面各个实现方式所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中的数据处理方法可以用于随机寻址的n个存储器,数据处理装置可以根据第一序列的交织矩阵确定第一序列中每个码元对应的读出序号a,并根据读出序号a确定每个码元对应的存储地址,然后根据每个码元对应的存储地址将每个码元写入对应的目标数据块中,最后按照数据块所在存储单元的编号将目标数据块中的码元读出,按照预定方式组合得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1A是等腰直角三角形矩阵的一个示例;
图1B是在等腰直角三角形矩阵中填充空值的一个示例;
图1C是交织流程中在等腰直角三角形矩阵填充码元的一个示例;
图1D是交织流程中在等腰直角三角形矩阵取出码元的一个示例;
图1E是解交织流程中在等腰直角三角形矩阵填充码元的一个示例;
图1F是解交织流程中在等腰直角三角形矩阵取出码元的一个示例;
图1G是采用FIFO存储器实现等腰直角三角形交织或解交织的一个示意图;
图2A是本申请实施例的数据处理方法适用的场景示意图;
图2B是本申请实施例中随机寻址的存储器的一个结构示意图;
图3是本申请实施例的数据处理方法的一个流程图;
图4A是本申请实施例中数据处理方法中交织矩阵的一个示意图;
图4B是本申请实施例的交织方法中将第一序列中的码元写入对应数据块的示意图;
图4C是本申请实施例中将第一序列中的码元写入对应数据块的示意图;
图4D是本申请实施例中n个存储器存储码元的场景示意图;
图4E是本申请实施例中将第一序列中的码元从对应数据块读出的示意图;
图4F是本申请实施例中n个存储器存储码元的场景示意图;
图4G是本申请实施例中将第一序列中的码元从对应数据块读出的示意图;
图5是本申请实施例的数据处理方法的一个流程图;
图6A是本申请实施例中将第一序列中的码元写入对应数据块的示意图;
图6B是本申请实施例中n个存储器存储码元的场景示意图;
图6C是本申请实施例中将第一序列中的码元写入对应数据块的示意图;
图6D是本申请实施例中n个存储器存储码元的场景示意图;
图6E是本申请实施例中将第一序列中的码元从对应数据块读出的示意图;
图6F是本申请实施例中将第一序列中的码元从对应数据块读出的示意图;
图7是本申请实施例中数据处理装置的一个实施例示意图;
图8是本申请实施例中数据处理装置的另一实施例示意图;
图9是本申请实施例中数据处理装置的另一实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,下面对本实施例涉及的一些术语进行介绍。
存储地址:n个存储器中的某个数据块的地址,一个存储地址可以唯一标识n个存储器中的一个数据块。
存储器:存放程序和数据的器件,一个存储器包含若干个存储单元,一个存储单元包含若干个数据块(又可以称为数据元),一个数据块可存储一个二进制代码,存储器包含的存储单元的数量即该存储器的深度,本实施例中将存储器的深度记为d,一个存储单元包含的数据块的数量即该存储器的位宽,位宽即内存或显存一次能传输的数据量,简单地讲就是一次能传递的数据宽度,本实施例中将存储器的位宽记为v。一个存储器的容量等于该存储器的位宽乘以该存储器包含的存储单元的数量。
需要说明的是,存储器中每个存储单元对应一个编号,即该存储单元的地址,是一个整数编码,可以表示为二进制整数。程序中的变量和主存储器的存储单元相对应。变量的名字对应着存储单元的地址,变量内容对应着单元所存储的数据。存储单元的地址一般用十六进制数表示,而每一个存储单元的地址中又存放着一组二进制(或十六进制)表示的数,通常称为该地址的内容。
为了便于理解,下面先对等腰直角三角形的交织和解交织方案进行说明。
(1)、在等腰直角三角形的交织方案中,发送端需要确定需要打乱的数据的码长Qsymbol,然后根据码长Qsymbol计算出等腰直角三角形的边长,具体地等腰直角三角形的边长为满足如下公式的最小正整数P:例如原始序列A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10的码长Qsymbol=11,则满足/>的最小整数P为5,即等腰直角三角形的边长为5,如图1A所示。应理解,本实施例中等腰直角三角形的边长可以理解为三角形矩阵的行数(列数)。
(2)、如果则需要对等腰直角三角形按照行号从下到上,从右到左的方式填充/>个空(NULL)值。以图1A为例,Qsymbol=11,P=5,则需要填充个NULL值,按照从下到上,从右到左的方式填充,如图1B所示。如果则不需要填充NULL值,即跳过步骤(2)直接执行下述步骤(3)。
(3)、从等腰直角三角形矩阵的第一行开始按照从左到右,从上到下的原则依次填充原始序列中的码元,原始序列A0,A1…,A10的填充方式如图1C所示。当原始序列中的码元全部填充完毕后,从等腰直角三角形矩阵的第一列开始按照从上到下,从左到右的原则取出码元,完成等腰直角三角形矩阵的交织,原始序列A0,A1…,A10的取出方式如图1D所示,得到的交织序列为A0,A5,A9,A1,A6,A10,A2,A7,A3,A8,A4。
而等腰直角三角形的解交织方案中,接收端需要先确定交织序列的码长Qsymbol,然后根据码长Qsymbol计算出等腰直角三角形的边长,具体如上述步骤(1)所示,此处不再赘述。确定边长后,如果则需要填充/>个空(NULL)值,然后执行填充码元和取出码元的步骤,填充空值的具体方式如上述步骤(2)所示,此处不再赘述。如果则不需要填充NULL值直接执行填充码元和取出码元的步骤。
解交织方案中填充码元的原则与交织方案中取出码元的原则相同,即从等腰直角三角形矩阵的第一列按照从上到下,从左到右的原则依次填充交织序列中的码元,交织序列A0,A5,A9,A1,A6,A10,A2,A7,A3,A8,A4的填充方式如图1E所示。
解交织方案中取出码元的原则与交织方案中填充码元的原则相同,即从等腰直角三角形矩阵的第一行开始按照从左到右,从上到下的原则取出码元,完成等腰直角三角形矩阵的解交织,交织序列A0,A5,A9,A1,A6,A10,A2,A7,A3,A8,A4的取出方式如图1F所示,得至原始序列A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10。
在一些方案中,会采用多个FIFO存储器的读写操作上述等腰直角三角形的交织和解交织,下面举例进行说明。
对于序列A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,其对应的码长Qsymbol=11,计算得到等腰直角三角形边长为P=5,按照FIFO存储器的拼接方案,需要使用图1G所示的5个FIFO存储器完成该等腰直角三角形的交织和解交织。
具体地,执行第一次写操作,将序列的第0至第4个码元A0至A4分别写入FIFO 0至FIFO4中,由于FIFO只能顺序寻址,因此码元A0至A4分别存储在FIFO 0至FIFO4的地址0中;执行第二次写操作,将序列的第5至8个码元A5至A8分别写入FIFO 1至FIFO4中,A5至A8存储在FIFO 1至FIFO 4的地址1中;执行第三次写操作,将序列的第9至第11个码元A9至A11分别写入FIFO 2至FIFO 4中,A9至A10存储在FIFO 2至FIFO 4的地址2中。将序列的各个码元写入后,读取FIFO 0取出码元A0;读取FIFO 1,由于FIFO是顺序寻址的,按照先入先出的原则,依次取出码元A1,A5;读取FIFO 2,依次取出码元A2,A6,A9;读取FIFO 3,依次取出码元A3,A7,A10;读取FIFO4,依次取出码元A4,A8;将各个码元取出后,得到的序列A0,A1,A5,A2,A6,A9,A3,A7,A10,A3,A7,A4,A8即为序列A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10对应的交织序列/原始序列。
从上述方案可以看出,由于FIFO只能顺序寻址,所以采用FIFO存储器实现等腰直角三角形的交织和解交织,需要的存储器的数量必须与等腰直角三角形的边长相等。而eMBB控制信道所传输的数据码长一般较大,采用FIFO存储器完成交织/解交织就需要大量的存储器,耗费的成本比较高,逻辑控制也会比较复杂。
本申请提供了一种数据处理方案,用于节省资源,降低成本。下面先对本申请数据处理方法所适用的场景进行介绍,请参阅图2A,本申请中的数据处理方法应用于随机寻址的n个存储器,由于随机寻址的存储器的写入顺序和读出顺序是可以通过逻辑控制的,不需要按照地址顺序写入和读出,因此,本实施例可以设置存储器的写入逻辑或读出逻辑,通过对存储器的读写操作完成交织/解交织。
具体地,本实施例中的n个存储器可以是大小形状相同的随机存取存储器(randomaccess memory,RAM)。RAM中存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。RAM电路由地址译码器、存储矩阵和读写控制电路三部分组成,如图2B所示。存储矩阵由触发器排列而成,每个触发器能存储一位数据(0或1)。地址译码器将每个输入的地址代码译成高(或低)电平信号,从存储矩阵中选中一个存储单元,使之与读写控制电路接通。在读写控制信号的配合下,将数据读出或写入。
需要说明的是,本申请实施例中n个存储器除了可以是大小形状相同的RAM还可以是其他存储器,具体本申请不作限定。
还需要说明的是,本申请实施例中的数据处理方法中的流程除了可以实现等腰三角交织/解交织,还可以应用在其他矩阵的交织/解交织,具体本申请不作限定。本申请实施例中的数据处理方法除了可以应用在eMMB控制信道编码,还可以用在其他信道的编码,具体本申请不作限定。
还需要说明的是,本申请实施例中的数据处理方法由数据处理装置执行,具体地,该数据处理装置可以是一种具有数据读写能力的矩阵存储器,如由n个RAM组成的存储器等,该数据处理装置可以是一种包含存储器的通信设备,如用户终端,基站等,本申请后续的实施例将以通信设备为例对数据处理方法进行介绍。
具体地,当通信设备为发送端设备时,其执行的数据处理方法用于实现数据的交织,第一序列为原始序列,即数据顺序未被打乱的序列,第二序列为交织序列,即数据顺序被打乱的序列;当通信设备为接收端设备时,其执行的数据处理方法用于实现数据的解交织,第一序列为交织序列,即数据顺序被打乱的序列,第二序列为原始序列,数据恢复成原来顺序的序列。
基于上述图2A对应的场景,下面对本申请中的数据处理方法进行介绍,请参阅图3,本申请实施例中数据处理方法的一个实施例包括:
301、通信设备根据第一序列对应的交织矩阵确定第一序列中每个码元对应的读出序号。
通信设备获知第一序列的码长后,根据码长确定第一序列对应的交织矩阵。确定交织矩阵后,对于第一序列中的任意一个码元,通信设备可以根据该码元在交织矩阵中对应的位置,确定出该码元对应的读出序号。
应理解,本实施例中,码长指的是序列中包含的码元的数量;交织矩阵的行数与列数的乘积大于或等于序列的码长;读出序号用于标识码元的读出顺序。
通信设备确定交织矩阵并填充空值后(若则不需要填充空值),按照交织流程/解交织流程中的码元的写入原则和读出原则,可以确定交织矩阵中各个位置对应的写入序号和读出序号。
以等腰直角三角形矩阵的交织和解交织为例,通信设备确定第一序列的码长Qsymbol后,计算出满足的最正整数P,则确定第一序列对应的交织矩阵为P行P列的三角形矩阵。应理解,本实施例中,码长Qsymbol为大于1或等于的整数,P为大于或等于1的整数。
作为一种可选的方式,在交织流程中,发送端设备可以通过如下方式确定码元的读出序号:对于在该三角形矩阵对应的位置为第i行的第j个的码元,确定该码元对应的读出序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值数量。
更具体地,发送端设备可以按照各码元对应的写入序号从小到大的顺序依次确定各个码元的读出序号,按照交织流程的码元的写入原则,发送端设备从交织矩阵的第一行开始按照从左到右,从上到下的原则按照上述方式依次确定码元的读出序号,每次可以确定一个或多个码元的读出序号。
以上述图1C所示的原始序列为例,对于码长Qsymbol=11,边长P=5的等腰直角三角形矩阵,按照图1B的方式填充完空值后,如图1C所示的方式在三角形矩阵中写入原始序列,从而可以确定A0在三角形矩阵对应的位置为第0行的第0个,对应的读出序号为0;A1在三角形矩阵对应的位置为第0行的第1个,对应的读出序号为3;A2在三角形矩阵对应的位置为第0行第2个,对应的读出序号为6;A3在三角形矩阵对应的位置为第0行第3个,对应的读出序号为8;A4在三角形矩阵对应的位置为第0行第4个,对应的读出序号为10;A5在三角形矩阵对应的位置为第1行第0个,对应的读出序号为1;A6在三角形矩阵对应的位置为第1行第1个,对应的读出序号为4;A7在三角形矩阵对应的位置为第1行第2个,对应的读出序号为7;A8在三角形矩阵对应的位置为第1行第3个,对应的读出序号为9;A9在三角形矩阵对应的位置为第2行第0个,对应的读出序号2;A10在三角形矩阵对应的位置为第2行第1个,对应的读出序号为5。应理解,上述交织方式中的读出序号是十进制码的表示方式,在一些实施例中,该读出序号也可以以二进制码表示,或者其他进制码表示,具体此处不作限定。
在解交织流程中,接收端设备可以通过如下方式确定码元的读出序号:对于在该三角形矩阵对应的位置为第i列的第j个的码元,确定该码元对应的读出序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数。
更具体地,接收端设备可以按照各码元对应的写入序号从小到大的顺序依次确定各个码元的读出序号,按照解交织流程的码元的写入原则,接收端设备从交织矩阵的第一列开始按照从上到到,从左到右的原则按照上述方式依次确定码元的读出序号,每次可以确定一个或多个码元的读出序号。
以上述图1E所示的交织序列为例,对于码长Qsymbol=11,边长P=5的等腰直角三角形矩阵,按照图1B的方式填充完空值后,如图1C所示的方式在三角形矩阵中写入原始序列,从而可以确定A0在三角形矩阵对应的位置为第0列的第0个,对应的读出序号为0;A5在三角形矩阵对应的位置为第0列的第1个,对应的读出序号为3;A9在三角形矩阵对应的位置为第0列第2个,对应的读出序号为6;A1在三角形矩阵对应的位置为第0列第3个,对应的读出序号为8;A6在三角形矩阵对应的位置为第0列第4个,对应的读出序号为10;A10在三角形矩阵对应的位置为第1列第0个,对应的读出序号为1;A2在三角形矩阵对应的位置为第1列第1个,对应的读出序号为4;A7在三角形矩阵对应的位置为第1列第2个,对应的读出序号为7;A3在三角形矩阵对应的位置为第1列第3个,对应的读出序号为9;A8在三角形矩阵对应的位置为第2列第0个,对应的读出序号2;A4在三角形矩阵对应的位置为第2列第1个,对应的读出序号为5。
作为一种可选的方式,在解交织流程中,接收端设备可以通过如下方式确定码元的读出序号:通信设备从三角形矩阵的第一列开始,按照从左到右的顺序计算每一列码元的读出序号,具体地,针对三角形矩阵的每一列,按照从上到下的顺序,通过至少一次计算操作,确定每个码元对应的读出序号。
更具体地,对于三角形矩阵的任意一列,针对该列对应的每一次计算操作,通信设备首先确定出本次计算操作对应的n+1个码元,并通过如下公式计算这n+1个码元的读出序号:
应理解,对于任意一次计算操作,其所确定的n+1个码元的初始码元为列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元。
应理解,若计算操作所确定的n+1个码元的初始码元为列头中的码元,则公式中的t0等于该列的列号,P′等于三角形矩阵的行数(列数),即等于P;若计算操作所确定的n+1个码元的初始码元为上一次计算操作对应的码元中的最后1个码元,则公式的t0等于上一计算操作对应的最后1个码元的读出序号,P′=a2′-a1′-n,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;若计算操作所确定的n+1个码元的初始码元为上一次计算操作对应的码元中的第f+1个码元,则公式中的t0等于上一次计算操作对应的第f+1个码元的读出序号,P′=a2′-a1′-f,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
也就是说,通信设备针对三角形矩阵的每一列,会先从该列的第一个码元开始按照从上到下的顺序确定n+1个码元的读出序号,如果第一次所确定的n+1个码元不存在冲突码元,则第二次计算操作会从第一次确定的n+1个码元中的最后1个码元开始,按照从上到下的顺序确定n+1个码元的读出序号;如果第一次确定的n+1个码元存在冲突码元,则第二次计算操作会从冲突码元的下一个码元开始,按照从上到下的顺序确定n+1个码元的读出序号;之后的每次计算操作也参照上述方式确定码元的读出序号,直到确定出该列所有码元的读出序号。应理解,通信设备每次会计算n+1个码元的读出序号,但是在最后一次选择操作中,该列中剩余未计算的码元数量可能会小于n+1个,则此时通信设备仍然会按照公式计算出n+1个码元的读出序号,但是多算出来的码元的读出序号不会使用,即多计算出来的码元的读出序号视为无效。
还应理解,在一些实施例中,通信设备每次选择的码元数量可以小于n+1,所选择的码元的计算公式与上面的公式是对应的,此处不再赘述。
为了便于理解,下面举例对上述计算读出序号的方式进行说明,第一序列对应的三角形矩阵填充空值和码元后如图4A所示,n=4,P=10,通信设备从第一列开始选择码元进行计算,首先,计算第一列的码元,设置t0=0,P′=P=10,通过上述公式计算第一列的第0至第4个码元对应的读出序号,其中,第一列第0个码元的读出序号a1=t0=0,第一列第1个码元的读出序号a2=t0+P=0+10=10,第一列第2个码元的读出序号a3=t0+2P′-1=0+2×10-1=19,第一列第3个码元的读出序号a4=t0+3P′-3=0+3×10-3=27,第一列第4个码元的读出序号a5=t0+4P′-6=0+4×10-6=34;上一次计算的5个码元不存在冲突码元,通信设备更新t0和P′的值,使得t0=34,P′=P-n=6,通过上述公式计算第一列的第4至第7个码元对应的读出序号,其中,第一列的第4个码元的读出序号a1=t0=34,第一列第5个码元的读出序号a2=t0+P′=34+6=40,第一列第6个码元的读出序号a3=t0+2P′-1=34+2×6-1=45,第一列第7个码元的读出序号a4=t0+3P′-3=34+3×6-3=49。
接着计算第二列的码元,设置t0=1,P′=P=10,通过上述公式计算第二列的第0至第4个码元对应的读出序号,其中,第二列第0个码元的读出序号a1=t0=1,第二列第1个码元的读出序号a2=t0+P′=1+10=11,第二列第2个码元的读出序号a3=t0+2P′-1=1+2×10-1=20,第二列第3个码元的读出序号a4=t0+3P′-3=1+3×10-3=28,第二列第4个码元的读出序号a5=t0+4P′-6=1+4×10-6=35;上一次计算的5个码元不存在冲突码元,通信设备更新t0和P′的值,使得t0=35,P′=P-4=6,通过上述公式计算第二列的第4至第6个码元对应的读出序号,其中,第二列的第4个码元的读出序号a1=t0=35,第二列第5个码元的读出序号a2=t0+P′=35+6=41,第二列第6个码元的读出序号a3=t0+2P′-1=35+2×6-1=46。
上述以第一列和第二列的码元为例对计算读出序号的过程进行了详细的说明,其他列码元的读出序号的计算过程与前述类似,此处不赘述。需要说明的是,对于矩阵中填充了空值的地方,通信设备也可以按照公式计算出该码元的读出序号,但是这个读出序号在后续不会使用。
应理解,上述解交织方式中的读出序号是十进制码的表示方式,在一些实施例中,该读出序号也可以以二进制码表示,或者其他进制码表示,具体此处不作限定。
302、通信设备根据读出序号确定每个码元对应的存储地址。
对于第一序列中的任意一个码元,通信设备确定该码元对应的读出序号a后,可以根据预设的映射规则,与该码元的读出序号对应的存储地址,其中,读出序号用于指示码元从交织矩阵取出的顺序,即指示码元是第几个从交织矩阵中读出(取出)的,这里交织矩阵可以理解为n个存储器中的多个目标数据块所组成的存储矩阵。
本实施例中,码元的存储地址至少包括存储单元标识和位置标识,其中,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存储单元中的1个数据块。具体地,预先设定的映射规则包括:存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),RE2=MOD(a,n*d*v)。作为一种可选的方式,码元的存储地址还可以包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,则预先设定的映射规则还可以包括:存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
应理解,存储单元标识与码元对应的第一余数对应即通信设备可以通过码元对应的第一余数确定出该码元的存储单元标识,位置标识与第二余数对应即通信设备可以通过码元对应的第二余数确定出该码元的位置标识,存储器标识与第三余数对应即通信设备可以通过码元对应的第三余数确定出该码元的存储器标识。作为一种可选的方式,预先设定的映射规则包括:存储单元标识等于码元的第一余数,位置标识等于码元的第二余数,存储器标识等于码元的第三余数,则对于任意一个码元,通信设备确定该码元的读出序号后,根据该读出序号计算出第一余数RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),第三余数RE3=MOD(a,n),然后将第一余数确定为存储单元标识,将第二余数确定为位置标识,将第三余数确定为存储器标识。
作为一种可选的方式,预先设定的映射规则可以是读出序号对应的r位二进制码中的第p至第0位为存储器标识,第q至第p+1位为位置标识,第r-1至第q+1位为存储单元标识。则确定读出序号后,通信设备可以将读出序号对应r位二进制码中的第p至第0位所组成的字符串确定为存储器标识,将读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为位置标识,将读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为存储单元标识。其中,r为大于或等于3的整数,p为小于r-1的整数,q为小于r的整数。应理解,p的取值可以依据n的值设定,q的取值可以依照一个存储器中存储单元的数量和p的值设定,r的取值可以依照存储器的位宽和p的值设定。作为一种可选的方式,可以设定n=2p+1,v=2q-p,d=2r-1-q。
例如,n=16,则可以对存储器按照0至15进行编号,编号0至15对应的二进制数分别为0000至1111,则可以设定读出序号的第3(p)至0位组成的字符串为存储器标识;存储器的位宽为16,0至15对应的二进制数分别为0000至1111,则对于任意一个存储单元,对该存储单元中的数据块可以按照0至15进行编号,则可以设定读出序号的第7(q)至4位组成的字符串为位置标识;一个存储器中单元的数量为256,则对于任意一个存储器中的存储单元可以按照0至255进行编号,则可以设定读出序号第15(r-1)至8位组成的字符串为存储单元标识。以读出序号4096为例,其对应的二进制数据为0000111111111111,根据该二进制数据确定该读出序号对应的存储器标识为1111,的位置标识为1111,对应的存储单元标识为00001111,用于标识第15号存储器的第15个存储单元的第15个数据块。
应理解,将读出序号转换为r位二进制码的过程可以理解为计算第一余数,第二余数,第三余数的过程,其中,而计算得到的r位二进制码中,第p至第0即第三余数,第q至第p+1位即第二余数,第r-1至第q+1位即第一余数。
需要说明的是,读出序号与存储地址是一一映射的关系,按照不同的映射规则,通信设备确定存储地址的方式也有所不同,上述确定读出序号的方式仅为一个示例,并不构成本申请实施例的限定。
303、通信设备根据每个码元对应的存储地址,将每个码元写入n个存储器的存储单元的目标数据块中。
对于第一序列中的任意一个码元,通信设备确定该码元对应的存储地址后,可以将该码元写入该存储地址所指示的目标数据块中。具体地,存储地址包括:存储器标识,存储单元标识和位置标识。通信设备确定码元的存储地址后,可以通过如下方式将码元写入目标数据块中:确定与该存储器标识对应的存储器,确定该存储器中与该存储单元标识对应的存储单元,确定该存储单元中与该位置标识对应的数据块(即目标数据块),将码元写入该目标数据块中。即本实施例中,每个存储地址所指示的目标数据块所在的存储器与该存储地址中的存储器标识对应,每个存储地址所指示的目标数据块在存储器中对应的存储单元与该存储地址中的存储单元标识对应,每个存储地址所指示的目标数据块在对应存储单元中的位置与该存储地址中的位置标识对应。
应理解,本实施例中的步骤301,302和303可以按顺序执行,即通信设备确定完各个码元对应的读出序号后,再确定各个码元对应的存储地址,确定各个码元对应的存储地址后,再根据存储地址将各个码元写入目标数据块中。
在实际应用中,为了提高处理效率,步骤301,302和303也可以并行执行的,具体地,通信设备确第一序列对应的交织矩阵后,可以重复执行如下流程直到第一序列中的每个码元均写入目标数据块:
(1)从第一序列未写入的码元中选择u个码元,确定这u个码元对应的读出序号,其中u为大于或等于1的整数;
(2)根据读出序号确定这u个码元对应的存储地址;
(3)根据存储地址将这u个码元中的一个或多个码元写入对应的目标数据块中。
作为一种可选的方式,上述操作中每次选择的码元可以是第一序列未写入码元中的前n个码元,即按照码元在第一序列中的排列顺序选择每次操作对应的码元,也可以理解为按照各个码元在交织流程或解交织流程对应的填充原则选择每次操作对应的码元。按照码元在交织或解交织流程中对应的填充原则依次选择每次写操作对应的u个码元,然后通过上述步骤301中的方式确定这u个码元的读出序号。具体地,通信设备为发送端设备,对应的流程为交织流程,则通信设备从交织矩阵的第一行开始按照从左到右,从上到下的原则依次选择码元,每次选择u个。通信设备为接收端设备,对应的流程为解交织流程,则通信设备将第一序列的各个码元写入对应目标数据块(填充至对应的交织矩阵)后,从交织矩阵的第一列开始按照从上到下,从左到右的原则依次选择码元,每次选择u个。
进一步地,可以设置u=n,即一次操作最多并行写入n个码元。也就是说,本实施例中,通信设备可以按照每个码元在第一序列中的排列顺序,通过至少一次写操作,将每个码元写入存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
具体地,在交织流程中,发送端设备确定交织矩阵后,可以对已选择的码元数量进行累积,从而可以识别出本次写操作选择的u个码元中在交织矩阵对应的位置处于同一行的m码元,然后根据这m个码元对应的存储地址判断这m个码元中是否存在冲突码元,若不存在冲突码元,则在本次写操作中将这m个码元写入各自对应的存储地址所指示的目标数据块中;若存在冲突码元,则在本次写操作中将这m个码元中的b个码元写入各自对应的存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次写操作对应的码元。
在解交织流程中,接收端设备确定交织矩阵后,可以对已选择的码元数量进行累积,从而可以识别出本次写操作选择的u个码元中在交织矩阵对应的位置处于同一列的m个码元,然后根据这m个码元对应的存储地址判断这m个码元中是否存在冲突码元,若不存在冲突码元,则在本次写操作中将这m个码元写入各自对应的存储地址所指示的目标数据块中;若存在冲突码元,则在本次写操作中将这m个码元中的b个码元写入各自对应的存储地址所指示的目标数据块中,并将这m个码元中的其余m-b个码元作为下一次写操作对应的码元。
上述交织流程或解交织流程中,发送端设备或接收端设备可以通过如下方式判断m个码中是否存在冲突码元:若m个码元中存在存储器标识相同,而存储单元标识不同的码元,则确定这些码元为冲突码元,冲突码元中读出序号最小的码元称为第一码元,写入目标数据块的b个码元为m个码元中对应读出序号小于或等于第一码元对应读出序号的码元,作为下一次写操作对应码元的m-b个码元为m个码元中对应读出序号大于第一码元对应读出序号的码元。
下面举例对交织流程的写入过程进行说明,对于码长为50的原始序列A0至A49,其对应的等腰直角三角形矩阵变成P=10,空值数量为5,如图4B所示。设定u=n=4,第一次写操作所选择的4个码元(原始序列的第0至第3个码元)对应的位置处于矩阵的第一行,通信设备确定这4个码元不存在冲突码元,在第一次写操作中将这4个码元写入对应的目标数据块中。
第二次写操作所选择的4个码元(原始序列的第4至第7个码元)对应的位置处于矩阵的第一行,通信设备确定这4个码元不存在冲突码元,在第二次写操作中将这4个码元写入对应的目标数据块中。
第三次写操作所选择的4个码元(原始序列的第8至第11个码元)中,第8个码元和第9个码元对应的位置处于矩阵的第一行,而第10和第11个码元对应的位置处于矩阵的其他行,通信设备确定第8和第9个码元不是冲突码元,在第三次写操作中将第8和第9个码元写入对应的目标数据块中。
第四次写操作所选择的4个码元(原始序列的第10至第13个码元)对应的位置处于矩阵的第二行,通信设备确定这4个码元不存在冲突码元,在第四次写操作中将这4个码元写入对应的目标数据块中。
下面举例对解交织流程的写入过程进行说明,对于码长为50的交织序列:A0、A10、A19、A27、A34、A40、A45、A49、A1、A11、A20、A28、A35、A41、A46、A2、A12、A21、A29、A36、A42、A47、A3、A13、A22、A30、A37、A43、A48、A4、A14、A23、A31、A38、A44、A5、A15、A24、A32、A39、A6、A16、A25、A33、A7、A17、A26、A8、A18、A9,其对应的等腰直角三角形矩阵变成P=10,空值数量为5,如图4C所示。设定u=n=4,第一次写操作所选择的4个码元(交织序列的第0至第3个码元)对应的位置处于矩阵的第一列,这4个码元中不存在存储器标识相同而存储单元标识不相同的码元,通信设备在第一次写操作中将这4个码元写入对应目标数据块中。
第二次写操作所选择的4个码元(交织序列的第4至第7个码元)对应的位置处于矩阵的第一列,但是第5个码元和第6个码元的存储器标识相同而存储单元标识不相同,通信设备在第二次写操作中将第4个码元和第5个码元写入对应目标数据块中。
第三次写操作所选择的4个码元(交织序列的第6至第9个码元)中,第6和第7个码元对应的位置处于矩阵的第一列,而第8和第9个码元对应的位置处于矩阵的其他列,通信设备确定第6和第7个码元不是冲突码元,通信设备在第三次写操作中将第6和第7个码元写入对应目标数据块中。
第四次写操作所选择的4个码元(交织序列的第8至第11个码元)对应的位置处于矩阵的第二列,其中第9个码元和第11个码元的存储器标识相同而存储单元标识不相同,通信设备在第四次写操作中将第8和第9个码元写入对应目标数据块中,将第10和第11作为第五次写操作对应的码元。
304、通信设备根据n个存储器的存储单元的编号将目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
通信设备将第一序列中的每个码元都写入到存储地址对应的目标数据块后,根据n个存储器中的存储单元的编号读取目标数据块中的码元,并按照预定方式进行组合得到第二序列。
具体地,通信设备可以通过如下流程读取码元,并按照预定方式进行组合得到第二序列:
(1)按照n个存储器中存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作对应的n个存储单元位于不同的存储器中,每次读操作对应的n个存储器的编号相同。
应理解,存储器中每个存储单元对应一个编号(存储单元标识),一个存储器中不同存储单元的编号不相同,一般来说存储器单元的编号会从0开始按顺序编号,对于不同的存储器,会存在相同的编号。比如存储器数量为4(n=4),每个存储器包含128个存储单元,则存储器0至存储器3中的存储单元均按照0至127的顺序进行编号,按照编号从小到大的顺序,第一次读操作对应的编号为0,即第一次读操作对应的存储单元包括:存储器0中的存储单元0,存储器1的存储单元0,存储器2中的存储单元0,存储器3中的存储单元0;以此类推,第z次读操作对应的编号为z-1,对应的存储单元包括:存储器0中的存储单元z-1,存储器1的存储单元z-1,存储器2中的存储单元z-1,存储器3中的存储单元z-1。
(2)针对每次读操作对应的n个存储单元,将这n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合得到w个得到目标序列Xw,再将w个目标序列X1,X2,...,Xv组合得到本次读操作对应的序列,w为小于或等于v。
针对每次读操作,确定本次读操作对应的n个存储单元后,将这n个存储单元中的目标数据块中的码元读出,并将读出的码元中数据块的编号相同的码元进行组合得到该存储单元中该数据块编号对应的序列(目标序列),然后按照数据块编号从小到大的顺序将各个数据块编号对应的序列进行排列组合得到该存储单元编号对应的序列,即该次读操作对应的序列。
(3)将每次读操作对应的序列进行组合得到第二序列。
通过若干次读操作将各个目标数据块中的码元均读出后,将每次读操作对应的序列按序列读出的顺序排列组合得到第二序列。
下面举例对交织流程的读出过程进行说明,n=4,v=4,d=4,则按照上述步骤303所述的方式将原始序列中的各个码元写入对应的目标数据块中,各码元在存储器中对应的位置如图4D所示。将各个码元写入对应目标数据块完成三角形矩阵中码元的填充后,通信设备读取各个存储器中的目标数据块完成三角形矩阵中码元的取出,如图4E所示,通信设备在第一次读操作中,将4个存储器中存储单元0中各个数据块中的码元均读出,其中从RAM0的存储单元0读出的码元分别为A0、A34、A1和A35,从RAM1的存储单元0读出的码元分别为A10、A40、A11和A41,从RAM2的存储单元0读出的码元分别为A19、A45、A20和A46,从RAM3的地址3读出的码元分别为A27、A49、A28和A2,将在存储单元中位置相同(数据块编号相同)的码元进行组合得到目标序列X0:A0、A10、A19、A27;目标序列X1:A34、A40、A45、A49;目标序列X2:A1、A11、A20、A28;目标序列X3:A35、A41、A46、A2,再将4个目标序列X0,X1,X2和X3进行组合得到第一次读操作对应的序列:A0、A10、A19、A27、A34、A40、A45、A49、A1、A11、A20、A28、A35、A41、A46、A2。依照次方式,通信设备在第二次读操作中将4个存储器中存储单元1中的码元读出,并上述方式进行组合得到第二次读操作对应的序列:A12、A21、A29、A36、A42、A47、A3、A13、A22、A30、A37、A43、A48、A4、A14、A23。通信设备在第三次读操作中将4个存储器中存储单元2中的码元读出,并按照上述方式进行组合得到第三次读操作对应的序列:A31、A38、A44、A5、A15、A24、A32、A39、A6、A16、A25、A33、A7、A17、A26、A8。通信设备在第四次读操作中将RAM0和RAM1中存储单元3中的码元读出,并按照上述方式进行组合得到第四次读操作对应的序列A18、A9。四次读操作读出的码元组合后得到的序列为:A0、A10、A19、A27、A34、A40、A45、A49、A1、A11、A20、A28、A35、A41、A46、A2、A12、A21、A29、A36、A42、A47、A3、A13、A22、A30、A37、A43、A48、A4、A14、A23、A31、A38、A44、A5、A15、A24、A32、A39、A6、A16、A25、A33、A7、A17、A26、A8、A18、A9。
下面举例对解交织流程的读出过程进行说明,n=4,v=4,d=4,则按照上述步骤303所述的方式将交织序列中的各个码元写入对应的目标数据块中,各码元在存储器中对应的位置如图4F所示。将各个码元写入对应目标数据块完成三角形矩阵中码元的填充后,通信设备读取各个存储器中的目标数据块完成三角形矩阵中码元的取出,如图4G所示,四次读操作读出的码元组合后得到的序列为:A0、A1、A2、A3、A4、A5、A6、A7、A8、A9、A10、A11、A12、A13、A14、A15、A16、A17、A18、A19、A20、A21、A22、A23、A24、A25、A26、A27、A28、A29、A30、A31、A32、A33、A34、A35、A36、A37、A38、A39、A40、A41、A42、A43、A44、A45、A46、A47、A48、A49。
需要说明的是,在上述示例中,通信设备是在一次读操作中将n个存储器中某个编号对应的存储单元中的数据块均读出,并且将对应数据块编号相同的码元均组合在一起得到该编号的存储单元对应的w个目标序列,然后再按照数据块编号从小到大的顺序将这w个目标序列组合在一起得到该编号的存储单元对应的序列。而在一些实施例中,通信设备可以通过多次读操作得到某个编号的存储单元对应的序列,例如上述例子中,通信设备可以执行第一次读操作,读4个存储器的存储单元0的所有数据块中的码元,并获取这4个存储单元0的数据块0中的码元,将这些码元组合在一起得到目标序列X0;然后执行第二次读操作,读4个存储器的存储单元0的所有数据块中的码元,并获取这4个存储单元0的数据块1中的码元,将这些组合在一起得到目标序列X1;接着,执行第三次读操作得到目标序列X2,执行第四次读操作得到目标序列X3,再将这四次读操作得到的目标序列组合在一起得到存储单元0对应的序列。依照上述方式,通过若干次读操作得到不同编号的存储单元对应的序列,按照存储单元编号从小到大的顺序将各个存储单元对应的序列进行组合即可得到第二序列。
还需要说明的是,基于上述图3对应的实施例中的方法流程,通信设备可以并行对多组序列进行交织或解交织,例如通信设备中有2n个存储器,则通信设备可以并行对2组序列进行交织或解交织,通信设备采用上述图3中的方法流程通过其中n个存储器实现其中一组序列的交织或解交织,并通过另外n个存储器实现另一组序列的交织或解交织,两个进程是完全独立的。
本申请中的数据处理方法可以用于随机寻址的n个存储器,设备可以根据第一序列的交织矩阵确定第一序列中每个码元对应的读出序号a,并根据读出序号a确定每个码元对应的存储地址,然后根据每个码元对应的存储地址将每个码元写入对应的目标数据块中,最后按照数据块所在存储单元的编号将目标数据块中的码元读出,按照预定方式组合得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
其次,本实施例中,第一序列中的码元可以并行写入,提高了写入效率。
再次,本实施例可以边接收或生成第一序列中的码元,边将接收或生成的码元写入数据块中,进一步提高了写入的效率。
本申请还提供了另一种数据处理方法,请参阅图5,本申请实施例中数据处理方法的另一实施例包括:
501、通信设备根据n个存储器中存储单元的编号将第一序列中各个码元写入n个存储器的存储单元的目标数据块中。
具体地,通信设备按照各个码元在第一序列中的排列顺序,通或多次写操作将第一序列中的各个码元写入n个存储器的存储单元的目标数据块中,其中,每次写操作写入的码元数量小于或等于n*v。
具体地,通信设备可以通过如下方式执行将第一序列中的码元写入目标数据块中:
(1)按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,其中,任意一次写操作对应的存储单元的编号相同。
通信设备每次会按照码元在第一序列中的排列顺序选择若干个码元,作为一种可选的方式,通信设备每次可以选择n个码元作为要写入的码元,即第一次写操作对应的码元为第一序列的第0至第n-1个码元,第二次写操作对应的码元为第一序列的第n至第2n-1个码元,依次类推,直到将所有码元均选择完毕。需要说明的是,最后一次选择的码元数量可能会小于n,比如选择若干次后,第一序列只剩下3个码元未被选择,则最后一次要写入的码元数量为3。
本实施例中,存储器中每个存储单元对应一个编号(存储单元标识),一个存储器中不同存储单元的编号不相同,一般来说存储器单元的编号会从0开始按顺序编号,对于不同的存储器,会存在相同的编号。通信设备将码元写入数据块的过程中,会按照存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,作为一种可选的方式,通信设备每次确定n个存储单元中的数据块,这n个存储单元位于不同的存储器中且编号相同。比如存储器数量为4(n=4),每个存储器包含4个存储单元(d=4),每个存储单元包含4个数据块(v=4)。则存储器0至存储器3中的存储单元均按照0至3的顺序进行编号。按照编号从小到大的顺序,第1至4次写操作对应存储单元0,其中,第1次写操作对应每存储器的存储单元0的数据块0,第2次写操作对应每个存储器的存储单元0的数据块1,第3次写操作对应每个存储器的存储单元0的数据块2,第4次写操作对应每个存储器的存储单元0的数据块3;第5至8次写操作对应存储单元1,其中,第5次写操作对应存储单元1的数据块0,第6次写操作对应存储单元1的数据块1,第7次写操作对应存储单元1的数据块2,第8次写操作对应存储单元1的数据块3;依次类推,第zn+c次写操作对应存储单元z的数据块c-1,其中z为大于或等于0的任意整数,c为1至n个的任意整数。
应理解,根据存储器的数量n和位宽v可以确定每一次写操作对应的码元数量最大为n*v,则作为另一种可选的方式,为了提高写入速率,除了最后一次写操作,每次写操作对应的数据块数量和码元数量可以为n*v,即第一次写操作对应的码元为第一序列的第0至n*v-1码元,第二次写操作对应的码元为第n*v至2n*v-1个码元,以此类推,第z次写操作对应的码元为第(z-1)n*v至zn*v-1。
(2)针对每次写操作,将该次写操作对应的码元写入该次写操作对应的存储单元的数据块中,其中,第一序列中的第w*nv+hn至第w*nv+(h+1)n-1码元对应于每个存储器的第w个存储单元的第h个数据块,w为0至d-1的任意整数,h为0至v-1的任意整数。
针对每次写操作,确定本次写操作对应的存储单元以及码元后,在本次写操作中,将本次写操作对应的码元写入对应的存储单元的数据块中。具体地,第一序列中的第w*nv+hn至第w*nv+(h+1)n-1被写入到每个存储器的第个存储单元的第h个数据块中。
为了便于理解,下面举例对交织流程中码元的写入过程进行说明,对于码长为50的原始序列A0至A49,其对应的三角形矩阵填充空值后如图4A所示。以n=4,v=4,d=4为例,在第一次写操作中,发送端设备将原始序列中的第0至第3个码元(A0至A3)写入RAM0、RAM1、RAM2和RAM3的存储单元0的数据块0中;在第二次写操作中,发送端设备将原始序列中的第4至第7个码元(A4至7)写入至RAM0、RAM1、RAM2和RAM3的存储单元0的数据块1中;在第三次写操作中,发送端设备将原始序列中的第8个码元至11个码元(A8至A11)写入至RAM0、RAM1、RAM2和RAM3的存储单元0的数据块2中;在第四次写操作中,发送端设备将原始序列中的第12和第15个码元(A12至A15)分别写入RAM0、RAM1、RAM2和RAM3的存储单元0的数据块3。依照上述方式按照码元在原始序列中的排列顺序依次将各个码元的写入至对应数据块中,如图6A所示。应理解,图6A中对应存储单元编号和数据块编号一致但对应存储器编号的码元是在同一次写操作中写入的。发送端设备完成原始序列的各个码元的写入后,原始序列中各个码元与各存储器的存储单元的数据块的对应关系如图6B所示。
为了便于理解,下面举例对解交织流程中码元的写入流程进行说明,对于码长为50交织序列:A0、A10、A19、A27、A34、A40、A45、A49、A1、A11、A20、A28、A35、A41、A46、A2、A12、A21、A29、A36、A42、A47、A3、A13、A22、A30、A37、A43、A48、A4、A14、A23、A31、A38、A44、A5、A15、A24、A32、A39、A6、A16、A25、A33、A7、A17、A26、A8、A18、A9,其对应的三角形矩阵填充空值后如图4A所示。以n=4,v=4,d=4为例,接收端设备按照码元在交织序列中的排列顺序依次将各个码元的写入至对应数据块中,每次写入4个码元,最后1次写2个码元,通过若干次次写操作完成三角形矩阵的所有码元写入,具体写入过程参见图6C所示,应理解,图6C中对应存储单元编号和数据块编号一致但对应存储器编号的码元是在同一次写操作中写入的。接收端设备完成交织序列各个码元的写入后,交织序列中各个码元与数据块的对应关系参见图6D。
需要说明的是,本实施例中,发送端设备可以边生成第一序列的码元,边将第一序列的码元写入对应数据块中,也可以在生成完第一序列的各个码元后,再将第一序列中的码元写入对应数据块中,具体本申请不作限定。接收端设备可以边接收第一序列的码元,边将第一序列的码元写入对应数据块中,也可以在接收完第一序列的各个码元后,再将第一序列中的码元写入对应数据块中,具体本申请不作限定。
502、通信设备根据第一序列对应的交织矩阵确定每个码元对应的写入序号。
通信设备获知第一序列的码长后,根据码长确定第一序列对应的交织矩阵。确定交织矩阵后,对于第一序列中的任意一个码元,通信设备可以根据该码元在交织矩阵中对应的位置,确定出该码元对应的写入序号。
应理解,本实施例中,码长指的是序列中包含的码元的数量;交织矩阵的行数与列数的乘积大于或等于序列的码长;写入序号用于标识码元的写入顺序;读出序号用于标识码元的读出顺序。
通信设备确定交织矩阵并填充空值后(若则不需要填充空值),按照交织流程/解交织流程中的码元的写入原则和读出原则,可以确定交织矩阵中各个位置对应的写入序号和读出序号。
以等腰直角三角形矩阵的交织/解交织为例,通信设备确定第一序列的码长Qsymbol后,计算出满足的最正整数P,则确定第一序列对应的交织矩阵为P行P列的三角形矩阵。应理解,本实施例中,码长Qsymbol为大于或等于1的整数,P为大于或等于1的整数。
具体地,在交织流程中,发送端设备可以通过如下方式确定码元的写入序号:对于在该三角形矩阵对应的位置为第i列的第j个的码元,则确定该码元对应的写入序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数。
更具体地,发送端设备可以按照各码元对应的读出序号从小到大的顺序依次确定各个码元的写入序号,按照交织流程的码元的取出原则,发送端设备从交织矩阵的第一列开始按照从上到下,从左到右的原则按照上述方式依次确定码元的写入序号,每次可以确定一个或多个码元的写入序号。
作为一种可选的方式,在交织流程中,发送端设备可以通过如下方式确定码元的写入序号:通信设备从三角形矩阵的第一列开始,按照从左到右的顺序计算每一列码元的写入序号,具体地,针对三角形矩阵的每一列,按照从上到下的顺序,通过至少一次计算操作,确定每个码元对应的写入序号。
更具体地,对于三角形矩阵的任意一列,针对该列对应的每一次计算操作,通信设备首先确定出本次计算操作对应的n+1个码元,并通过如下公式计算这n+1个码元的写入序号:
应理解,对于任意一次计算操作,其所确定的n+1个码元的初始码元为列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元。
应理解,若计算操作所确定的n+1个码元的初始码元为列头中的码元,则公式中的t0等于该列的列号,P′等于三角形矩阵的行数(列数),即等于P;若计算操作所确定的n+1个码元的初始码元为上一次计算操作对应的码元中的最后1个码元,则公式的t0等于上一计算操作对应的最后1个码元的写入序号,P′=a2′-a1′-n,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;若计算操作所确定的n+1个码元的初始码元为上一次计算操作对应的码元中的第f+1个码元,则公式中的t0等于上一次计算操作对应的第f+1个码元的写入序号,P′=a2′-a1′-f,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
也就是说,通信设备针对三角形矩阵的每一列,会先从该列的第一个码元开始按照从上到下的顺序确定n+1个码元的写入序号,如果第一次所确定的n+1个码元不存在冲突码元,则第二次计算操作会从第一次确定的n+1个码元中的最后1个码元开始,按照从上到下的顺序确定n+1个码元的写入序号;如果第一次确定的n+1个码元存在冲突码元,则第二次计算操作会从冲突码元的下一个码元开始,按照从上到下的顺序确定n+1个码元的写入序号;之后的每次计算操作也参照上述方式确定码元的写入序号,直到确定出该列所有码元的写入序号。应理解,通信设备每次会计算n+1个码元的写入序号,但是在最后一次选择操作中,该列中剩余未计算的码元数量可能会小于n+1个,则此时通信设备仍然会按照公式计算出n+1个码元的写入序号,但是多算出来的码元的写入序号不会使用,即多计算出来的码元的写入序号视为无效。
应理解,上述交织方式中的写入序号是十进制码的表示方式,在一些实施例中,该写入序号也可以以二进制码表示,或者其他进制码表示,具体此处不作限定。
在解交织流程中,接收端设备可以通过如下方式确定码元的写入序号:对于在该三角形矩阵对应的位置为第i行的第j个的码元,则确定该码元对应的写入序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数,当j=0时,x=0,当j不等于0时,x为第0至第j-1列包含的空值总数。
更具体地,接收端设备可以按照各码元对应的读出序号从小到大的顺序依次确定各个码元的写入序号,按照解交织流程的码元的取出原则,接收端设备从交织矩阵的第一行开始按照从左到右,从上到下的原则按照上述方式依次确定码元的写入序号,每次可以确定一个或多个码元的写入序号。
应理解,上述解交织方式中的写入序号是十进制码的表示方式,在一些实施例中,该写入序号也可以以二进制码表示,或者其他进制码表示,具体此处不作限定。
503、通信设备根据写入序号确定每个码元对应的存储地址。
对于第一序列中的任意一个码元,通信设备确定该码元对应的写入序号a后,可以根据预设的映射规则,与该码元的写入序号对应的存储地址,其中,写入序号用于指示码元写入交织矩阵的顺序,即指示码元是第几个填充(写入)至交织矩阵中的,这里交织矩阵可以理解为n个存储器中的多个目标数据块所组成的存储矩阵。
本实施例中,码元的存储地址至少包括存储单元标识和位置标识,中其中,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存储单元中的1个数据块。具体地,预先设定的映射规则包括:存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),RE2=MOD(a,n*d*v)。作为一种可选的方式,码元的存储地址还可以包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,则预先设定的映射规则还可以包括:存储器标识与第三余数RE3对应,RE3=MOD(a,n)。
应理解,存储单元标识与码元对应的第一余数对应即通信设备可以通过码元对应的第一余数确定出该码元的存储单元标识,位置标识与第二余数对应即通信设备可以通过码元对应的第二余数确定出该码元的位置标识,存储器标识与第三余数对应即通信设备可以通过码元对应的第三余数确定出该码元的存储器标识。作为一种可选的方式,预先设定的映射规则包括:存储单元标识等于码元的第一余数,位置标识等于码元的第二余数,存储器标识等于码元的第三余数,则对于任意一个码元,通信设备确定该码元的写入序号后,根据该写入序号计算出第一余数RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),第三余数RE3=MOD(a,n),然后将第一余数确定为存储单元标识,将第二余数确定为位置标识,将第三余数确定为存储器标识。
作为一种可选的方式,预先设定的映射规则可以是写入序号对应的r位二进制码中的第p至第0位为存储器标识,第q至第p+1位为位置标识,第r-1至第q+1位为存储单元标识。则确定写入序号后,通信设备可以将写入序号对应r位二进制码中的第p至第0位所组成的字符串确定为存储器标识,将写入序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为存位置标识,将写入序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为存储单元标识。其中,r为大于或等于3的整数,p为小于r-1的整数,q位小于r的整数。
应理解,p的取值可以依据n的值设定,q的取值可以依照存储器的位宽和p的值设定,r的取值可以依照一个存储器中存储单元的数量和p的值设定。作为一种可选的方式,可以设定n=2p+1,v=2q-p,d=2r-1-q。需要说明的是,写入序号与存储地址是一一映射的关系,按照不同的映射规则,通信设备确定存储地址的方式也有所不同,上述确定写入序号的方式仅为一个示例,并不构成本申请实施例的限定。
应理解,将写入序号转换为r位二进制码的过程可以理解为计算第一余数,第二余数,第三余数的过程,其中,而计算得到的r位二进制码中,第p至第0即第三余数,第q至第p+1位即第二余数,第r-1至第q+1位即第一余数。
504、通信设备按照每个码元在交织矩阵对应的取出顺序,根据每个码元对应的存储地址将每个码元从目标数据块中读出,得到第二序列。
对于第一序列中的任意一个码元,通信设备确定该码元对应的存储地址后,可以将该该码元从该存储地址所指示目标数据块中的读出。本实施例中,通信设备按照每个码元对应的读出顺序依次将码元从目标数据块中读出,即可得到第二序列。具体地,存储地址包括:存储器标识,存储单元标识和位置标识。通信设备确定码元的存储地址后,可以通过如下方式将码元从数据块中读出:确定与该存储器标识对应的存储器,确定该存储器中与该存储单元标识对应的存储单元,确定该存储单元中与该位置标识对应的数据块(即目标数据块),将该目标数据块中的码元读出。即本实施例中,每个存储地址所指示的目标数据块所在的存储器与该存储地址中的存储器标识对应,每个存储地址所指示的目标数据块在存储器中对应的存储单元与该存储地址中的存储单元标识对应,每个存储地址所指示的目标数据块在对应存储单元中的位置与该存储地址中的位置标识对应。
应理解,本实施例中的步骤502,503和504可以按顺序执行,即通信设备确定完各个码元对应的写入序号后,再确定各个码元对应的存储地址,确定各个码元对应的存储地址后,再按照码元对应的读出顺序,将各码元从存储地址所指示的目标数据块中读出。
在实际应用中,为了提高处理效率,步骤502,503和,504也可以并行执行的,具体地,通信设备确第一序列对应的交织矩阵后,可以重复执行如下流程直到第一序列中的每个码元均从目标数据块中读出:
(1)从未读出的码元中选择读出序号最小的u个码元,确定这u个码元对应的写入序号,其中u为大于或等于1的整数;
(2)根据写入序号确定这u个码元对应的存储地址;
(3)根据存储地址将这u个码元中的一个或多个码元从对应的目标数据块中读出。
需要说明的是,上述从读出的码元中选择读出序号最小的u个码元,可以理解为按照码元在交织或解交织流程中对应的取出原则依次选择每次读操作对应的u个码元。具体地,通信设备为发送端设备,对应的流程为交织流程,则通信设备将第一序列的各个码元写入对应目标数据块(填充至对应的交织矩阵)后,从交织矩阵的第一列开始按照从上到下,从左到右的原则依次选择码元,每次选择u个。通信设备为接收端设备,对应的流程为解交织流程,则通信设备将第一序列的各个码元写入对应目标数据块(填充至对应的交织矩阵)后,从交织矩阵的第一行开始按照从左到右,从上到下的原则依次选择码元,每次选择u个。
进一步地,可以设置u=n,即一次读操作最多并行读取n个码元。也就是说,本实施例中,通信设备可以按照每个码元的读出顺序,通过至少一次读操作,将每个码元从存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
具体地,在交织流程中,发送端设备确定交织矩阵,并将码元填充至交织矩阵后,可以对已选择的码元数量进行累积,从而可以识别出本次读操作选择的u个码元中在交织矩阵对应的位置处于同一列的m码元,然后根据这m个码元对应的存储地址判断这m个码元中是否存在冲突码元,若不存在冲突码元,则在本次读操作中将这m个码元从各自对应的存储地址所指示的目标数据块中读出;若存在冲突码元,则在本次读操作中将这m个码元中的b个码元从各自对应的存储地址所指示的目标数据块中读出,并将这m个码元中的其余m-b个码元作为下一次读操作对应的码元。
在解交织流程中,接收端设备确定交织矩阵后,可以对已选择的码元数量进行累计,从而可以识别出本次读操作选择的u个码元中在交织矩阵对应的位置处于同一行的m个码元,然后根据这m个码元对应的存储地址判断这m个码元中是否存在冲突码元,若不存在冲突码元,则在本次读操作中将这m个码元从各自对应的存储地址所指示的目标数据块中读出;若存在冲突码元,则在本次读操作中将这m个码元中的b个码元从各自对应的存储地址所指示的目标数据块中读出,并将这m个码元中的其余m-b个码元作为下一次读操作对应的码元。
上述交织流程或解交织流程中,发送端设备或接收端设备可以通过如下方式判断m个码中是否存在冲突码元:若m个码元中存在存储器标识相同,而存储单元标识不同的码元,则确定这些码元为冲突码元,冲突码元中写入序号最小的码元称为第一码元,从目标数据块读出的b个码元为m个码元中对应写入序号小于或等于第一码元对应写入序号的码元,作为下一次读操作对应码元的m-b个码元为m个码元中对应写出序号大于第一码元对应写入序号的码元。
下面举例对交织流程的读出过程进行说明,对于码长为50的原始序列,其对应的等腰直角三角形矩阵变成P=10,空值数量为5,如图6E所示。设定u=n=4,第一次读操作所选择的4个码元(对应读出序号为0至读出序号为3的码元)为第一列的第0至第3个码元,通信设备确定这4个码元中不存在存储器标识相同而存储单元标识不相同的码元(即不存在冲突码元),则在第一次读操作中将这4个码元从对应目标数据块中读出。
第二次读操作所选择的4个码元(对应读出序号为4至读出序号为7的码元)为第一列的第4至第7个码元,但是第一列的第5和第6个码元(读出序号为5和6的码元)的存储器标识相同而存储单元标识不相同,则通信设备在第二次读操作中将第一列的第4和第5个码元从对应目标数据块中读出,将第一列的第6和第7个码元作为第三次读操作对应的码元。
第三次读操作所选择的4个码元(读出序号为6至读出序号为9的码元)为第一列的第6和第7个码元以及第二列的第0至第1个码元,通信设备确定第一列的第6和第7个码元不是存储器标识相同而存储单元标识不相同的码元,通信设备在第三次读操作中将第一列的第6和第7个码元从对应目标数据块中读出,将第二列的第0和1个码元作为第四次读操作对应的码元。
第四次读操作所选择的4个码元(读出序号为8至读出序号为11的码元)为第二列的第0至第3个码元,其中,第二列的第1和第3个码元的存储器标识相同而存储单元标识不相同,通信设备在第四次读操作中将第二列的第0和第1个码元从对应目标数据块中读出,将第二列的第2和第3个码元作为第五次读操作对应的码元。
下面举例对解交织流程的读出过程进行说明,对于码长为50的交织序列,其对应的等腰直角三角形矩阵变成P=10,空值数量为5,如图6F所示。设定u=n=4,第一次读操作所选择的4个码元(读出序号为0至读出序号为3个码元)对应的位置处于矩阵的第一行,通信设备确定这4个码元不存在冲突码元,在第一次读操作中将这4个码元从对应的目标数据块中读出。
第二次读操作所选择的4个码元(读出序号为4至读出序号为7的码元)对应的位置处于矩阵的第一行,通信设备确定这4个码元不存在冲突码元,在第二次读操作中将这4个码元从对应的目标数据块中读出。
第三次读操作所选择的4个码元(读出序号为8至读出序号为11的码元)中,读出序号为8和读出序号为9对应的位置处于矩阵的第一行,读出序号为10和读出序号为11的码元对应的位置处于矩阵的其他行,通信设备确定读出序号为8和读出序号为9的码元不是冲突码元,在第三次读操作中将读出序号为8和读出序号为9的码元从对应的目标数据块中读出。
第四次读操作所选择的4个码元(读出序号为10至读出序号为12的码元)对应的位置处于矩阵的第二行,通信设备确定这4个码元不存在冲突码元,在第四次读操作中将这4个码元从对应的目标数据块中读出。
需要说明的是,基于上述图5对应的实施例中的方法流程,通信设备可以并行对多组序列进行交织或解交织,例如通信设备中有2n个存储器,则通信设备可以并行对2组序列进行交织或解交织,通信设备采用上述图3中的方法流程通过其中n个存储器实现其中一组序列的交织或解交织,并通过另外n个存储器实现另一组序列的交织或解交织,两个进程是完全独立的。
本申请中的数据处理方法可以用于随机寻址的n个存储器,数据处理装置根据存储单元的编号将第一序列中的各个码元写入n个存储器的存储单元的目标数据块中,可以根据第一序列的交织矩阵确定第一序列中每个码元对应的写入序号a,并根据写入序号a确定每个码元对应的存储地址,然后根据每个码元对应的存储地址将码元从对应的目标数据块中读出得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
其次,本实施例中第一序列中的码元可以并行写入,提高了写入效率。
再次,本实施例可以边接收或生成第一序列中的码元,边将接收或生成的码元写入数据块中,进一步提高了写入的效率。
基于上述图3以及图5对应的实施例,在本申请的一些实施例中,发送端设备与接收端设备进行通信时,发送端设备可以采用上述图5对应实施例中的方法流程对原始序列进行交织得到交织序列,接收端设备接收到发送端设备发送的交织序列后,可以采用上述图3对应实施例中的方法流程对交织序列进行解交织得到原始序列。
上面介绍了本申请实施例中的数据处理方法,下面对本申请实施例中的数据处理装置进行介绍,请参阅图7,本申请实施例中数据处理装置的一个实施例包括:
第一确定模块701,用于根据第一序列对应的交织矩阵确定所述第一序列中每个码元对应的读出序号a;
第二确定模块702,用于根据所述读出序号a确定所述每个码元对应的存储地址,所述读出序号a用于指示所述码元从所述交织矩阵取出的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,所述位置标识用于标识1个存储单元中的1个数据块,其中,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;
写入模块703,用于根据所述每个码元对应的存储地址将所述每个码元写入所述n个存储器的存储单元的目标数据块中;
读出模块704,用于根据所述n个存储器的存储单元的编号将所述目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
可选地,写入模块703包括:
第一写入单元,用于按照所述每个码元在所述第一序列中的排列顺序,通过至少一次写操作,将所述每个码元写入所述存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
进一步地,该写入单元可以包括:
第一写入子单元,用于当写操作对应的m个码元中不存在冲突码元,则在本次写操作中将所述m个码元分别写入所述m个码元的存储地址所指示的目标数据块中,每次写操作对应的m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
第二写入子单元,用于当写操作对应的m个码元中存在冲突码元,则在本次写操作中将所述m个码元中的b个码元写入所述b个码元的存储地址所指示的目标数据块中,并将所述m个码元中的m-b个码元作为下一次写操作对应的码元,其中,所述b个码元对应的读出序号小于或等于第一码元对应的读出序号,所述m-b个码元对应的读出序号大于所述第一码元对应的读出序号,所述第一码元为所述冲突码元中读出序号最小的码元。
可选地,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;第一确定模块701包括:
第一确定单元,用于针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的读出序号;
进一步地,该第一确定单元包括:
确定子单元,用于针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
计算子单元,用于通过如下公式计算所述n+1个码元的读出序号:
其中,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P′等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的读出序号,所述P′=a2′-a1′-n,其中,所述a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的读出序号,所述P′=a2′-a1′-f,其中,所述a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
可选地,所述n大于1;所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
可选地,第二确定模块702包括:
计算单元,用于根据所述读出序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3;
第二确定单元,用于将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
可选地,读出模块704包括:
第三确定单元,用于按照所述n个存储器的存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;
读出单元,用于针对每次读操作对应的n个存储单元,将所述n个存储单元的目标数据块中的码元读出;
第一组合单元,用于将读出的码元中所在数据块的编号相同的码元组合得到w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,所述w小于或等于v;
第二组合单元,用于将组合将每次读操作对应的序列进行组合得到第二序列。
应理解,上述图7对应的矩阵存储器中各个模块所执行的流程与前述图3对应方法实施例中通信设备所执行的流程类似,具体此处不再赘述。
本申请实施例中,第一确定模块701可以根据第一序列的交织矩阵确定第一序列中每个码元对应的读出序号a,第二确定模块702根据读出序号a确定每个码元对应的存储地址,然后写入模块703可以根据每个码元对应的存储地址将每个码元写入对应的目标数据块中,最后读出模块704可以按照数据块所在存储单元的编号将目标数据块中的码元读出,按照预定方式组合得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,本实施例中,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
请参阅图8,本申请实施例中数据处理装置的另一实施例包括:
写入模块801,用于根据所述n个存储器中存储单元的编号将第一序列中各个码元写入所述n个存储器的存储单元的目标数据块中;
第一确定模块802,用于根据所述第一序列对应的交织矩阵确定每个码元对应的写入序号a;
第二确定模块803,用于根据所述写入序号a确定所述每个码元对应的存储地址,所述写入序号a用于指示所述码元填充至所述交织矩阵的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,所述位置标识用于标识1个存储单元中的1个数据块,其中,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;
读出模块804,用于按照每个码元在所述交织矩阵对应的取出顺序,根据每个码元对应的存储地址将所述每个码元从所述目标数据块中读出,得到第二序列。
可选地,读出模块804包括:
读出单元,用于通过至少一次读操作,将所述每个码元从所述存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
进一步地,该读出单元包括:
第一读出子单元,用于当本次读操作对应的m个码元不存在冲突码元时,则在本次读操作中将所述m个码元分别从所述m个码元对应存储地址所指示的数据块中,所述m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
第二读出子单元,用于当本次读操作对应的m个码元存在冲突码元时,则在本次读操作中将所述m个码元中的b个码元从所述b个码元对应存储地址所指示的目标数据块中,并将所述m个码元中的m-b个码元作为下一次读操作对应的码元,其中,所述b个码元对应的写入序号小于或等于第一码元对应的写入序号,所述m-b个码元对应的写入序号大于所述第一码元对应的写入序号,所述第一码元为所述冲突码元中写入序号最小的码元。
可选地,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;
第一确定模块802包括:
第一确定单元,用于针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的写入序号;
该第一确定单元包括:
第一确定子单元,用于针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
计算子单元,用于通过如下公式计算所述n+1个码元的写入序号:
其中,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P′等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的写入序号,所述P′=a2′-a1′-n,其中,所述a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的写入序号,所述P′=a2′-a1′-f,其中,所述a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
可选地,所述n大于1;所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
第二确定模块803包括:
计算单元,用于根据所述写入序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3;
第二确定单元,用于将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
可选地,写入模块801包括:
第三确定单元,用于按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照所述n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;
写入单元,用于针对每次写操作,将所述写操作对应的码元写入所述写操作对应的存储单元的数据块中,其中,所述第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,所述w为0至d-1的任意整数,h为0至v-1的任意整数。
应理解,上述图8对应的矩阵存储器中各个模块所执行的流程与前述图3对应方法实施例中通信设备所执行的流程类似,具体此处不再赘述。
本实施例中,写入模块801可以根据存储单元的编号将第一序列中的各个码元写入n个存储器的存储单元的目标数据块中,第一确定模块802可以根据第一序列的交织矩阵确定第一序列中每个码元对应的写入序号a,第二确定模块803根据写入序号a确定每个码元对应的存储地址,然后读出模块804根据每个码元对应的存储地址将码元从对应的目标数据块中读出得到第二序列。随机寻址的存储器可以通过控制地址的写入逻辑和读出逻辑,不需要遵循顺序写入和先入先出的原则,通过本实施例中的流程,只要存储器的容量大于序列的数据量即可实现数据的交织或解交织,存储器的数量并不需要与等腰三角形的边长相等,因此采用随机寻址的存储器搭建三角形矩阵实现序列的交织或解交织,不需要设置大量的存储器也可以适应不同码长的序列,相对于采用FIFO搭建三角形矩阵的方案,节省了资源。
上面从功能模块的角度介绍了本申请中的数据处理装置,下面从实体硬件的角度对本申请中的数据处理装置进行介绍,如图9所示,本申请实施例中数据处理装置的一个实施例中,数据处理装置为矩阵存储器900,该矩阵存储器900包括:写侧逻辑控制电路901,读侧逻辑控制电路903以及随机寻址的n个存储器902,其中,写侧逻辑控制电路901用于将数据写入n个存储器902,读侧逻辑控制电路903用于将n个存储器902中数据读出,存储器902用于缓存数据。
基于上述图9对应的矩阵存储器,在一些实施例中,写侧逻辑控制电路用于根据第一序列对应的交织矩阵确定第一序列中每个码元对应的读出序号a,并根据读出序号a确定每个码元对应的存储地址,读出序号a用于指示码元从交织矩阵取出的顺序,存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,位置标识用于标识1个存储单元中的1个数据块,其中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),其中,d为每个存储器包含的存储单元的数量,v为每个存储单元包含的数据块的数量;
写侧逻辑控制电路用于根据每个码元对应的存储地址将每个码元写入n个存储器的存储单元的目标数据块中;
读侧逻辑控制电路用于根据n个存储器的存储单元的编号将目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
可选地,写侧逻辑控制电路具体用于按照每个码元在第一序列中的排列顺序,通过至少一次写操作,将每个码元写入存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
当矩阵存储器用于实现数据的解交织时,第一序列为交织序列,第二序列为原始序列;对应地,写侧逻辑控制电路具体用于判断每次写操作对应的m个码元中是否存在冲突码元,当确定不存在冲突码元时,在本次写操作中将m个码元分别写入m个码元的存储地址所指示的目标数据块中;当确定存在冲突码元时,在本次写操作中将m个码元中的b个码元写入b个码元的存储地址所指示的目标数据块中,并将m个码元中的m-b个码元作为下一次写操作对应的码元,其中,b个码元对应的读出序号小于或等于第一码元对应的读出序号,m-b个码元对应的读出序号大于第一码元对应的读出序号,第一码元为冲突码元中读出序号最小的码元。
需要说明的是,每次写操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n。
可选地,交织矩阵为P行P列的三角形矩阵,P为大于1的整数,则写侧逻辑控制电路具体可以用于通过如下公式确定在三角形矩阵中对应的位置为第i列的第j个码元的码元的读出序号其中,i为0至P-1的任意整数,j为0至P-i-1的任意整数。
或者,用于针对P列中的任意一列,按照从上到下的顺序,通过至少一次计算操作,该列中的每个码元对应的读出序号;
其中,通过至少一次计算操作,确定该列中每个码元对应的读出序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,n+1个码元的初始码元为该列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
通过如下公式计算n+1个码元的读出序号:
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的读出序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的读出序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
可选地,n大于1,对应地,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。对应地,写侧逻辑控制电路具体用于根据读出序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
或者,写侧逻辑控制电路具体用于将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
可选地,读侧辑控制电路具体用于按照n个存储器的存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;针对每次读操作对应的n个存储单元,将n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,w小于或等于v;将每次读操作对应的序列进行组合得到第二序列。
基于上述图9对应的矩阵存储器,在一些实施例中,矩阵存储器中的写侧逻辑控制电路用于根据n个存储器中存储单元的编号将第一序列中各个码元写入n个存储器的存储单元的目标数据块中;
读侧逻辑控制电路用于根据第一序列对应的交织矩阵确定每个码元对应的写入序号a,并根据写入序号a确定每个码元对应的存储地址,写入序号a用于指示码元填充至交织矩阵的顺序,存储地址至少包括存储单元标识以及位置标识,存储地址至少包括存储单元标识以及位置标识,存储单元标识用于标识1个存储器中的1个存储单元,其中,存储单元标识与第一余数RE1对应,位置标识与第二余数RE2对应,RE1=MOD(a,n*d),第二余数RE2=MOD(a,n*d*v),其中,d为每个存储器包含的存储单元的数量,v为每个存储单元包含的数据块的数量;
读侧逻辑控制电路用于按照每个码元在交织矩阵对应的取出顺序,根据每个码元对应的存储地址将每个码元从目标数据块中读出,得到第二序列。
可选地,读侧逻辑控制电路具体用于通过至少一次读操作,将每个码元从存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
当该矩阵存储器用于实现数据的交织时,第一序列为原始序列,第二序列为交织序列;
读侧逻辑控制电路具体用于判断每次读操作对应的m个码元是否存在冲突码元,当确定不存在冲突码元时,在本次读操作中将m个码元分别从m个码元对应存储地址所指示的数据块中;当确定存在冲突码元时,在本次读操作中将m个码元中的b个码元从b个码元对应存储地址所指示的目标数据块中,并将m个码元中的m-b个码元作为下一次读操作对应的码元,其中,b个码元对应的写入序号小于或等于第一码元对应的写入序号,m-b个码元对应的写入序号大于第一码元对应的写入序号,第一码元为冲突码元中写入序号最小的码元。
需要说明的是,每次读操作对应的m个码元在交织矩阵对应的位置处于同一列,冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,m小于或等于n。
可选地,交织矩阵为P行P列的三角形矩阵,P为大于1的整数,则读侧逻辑控制电路具体用于通过如下公式确定在该三角形矩阵中对应的位置为第i列的第j个的码元对应的写入序号i为0至P-1的任意整数,j为0至P-i-1的任意整数。
或者,读侧逻辑控制电路具体用于针对P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定该列中每个码元对应的写入序号;
通过至少一次计算操作,确定该列中每个码元对应的写入序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,n+1个码元的初始码元为该列的列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
通过如下公式计算n+1个码元的写入序号:/>
其中,当初始码元为该列列头中的码元时,t0等于该列的列号,P′等于P;当初始码元为上一次计算操作对应的码元中的最后1个码元时,t0等于上一计算操作对应的最后1个码元的写入序号,P′=a2′-a1′-n,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差;当初始码元为上一次计算操作对应的码元中的第f+1个码元时,t0等于上一次计算操作对应的第f+1个码元的写入序号,P′=a2′-a1′-f,其中,a2′-a1′为上一次计算操作对应的第2个码元与第1个码元之差。
可选地,存储地址还包括存储器标识,存储器标识用于标识n个存储器中的1个存储器,存储器标识与第三余数RE3对应,RE3=MOD(a,n)。对应地,读侧逻辑控制电路具体用于根据写入序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将第一余数RE1确定为码元的存储单元标识,将第二余数RE2确定为码元的位置标识,将第三余数RE3确定为码元的存储器标识。
或者,读侧逻辑控制电路具体用于将码元的读出序号对应r位二进制码中的第p至第0位所组成的字符串作为该码元的存储器标识,p小于r-1,r为大于或等于3整数;将码元的读出序号对应r位二进制码中的第q位至第p+1位所组成的字符串作为该码元位置标识,q小于r;将码元的读出序号对应r位二进制码中的第r-1位至第q+1位所组成的字符串作为该码元的位置标识。
可选地,写侧逻辑控制电路具体用于按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;针对每次写操作,将写操作对应的码元写入写操作对应的存储单元的数据块中,其中,第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,w为0至d-1的任意整数,h为0至v-1的任意整数。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (28)
1.一种数据处理方法,其特征在于,所述方法应用于随机寻址的n个存储器,所述n为大于或等于1的整数,所述方法包括:
根据第一序列对应的交织矩阵确定所述第一序列中每个码元对应的读出序号a,并根据所述读出序号a确定所述每个码元对应的存储地址,所述读出序号a用于指示所述码元从所述交织矩阵取出的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,所述位置标识用于标识1个存储单元中的1个数据块,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;根据所述每个码元对应的存储地址将所述每个码元写入所述n个存储器的存储单元的目标数据块中;
根据所述n个存储器的存储单元的编号将所述目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
2.根据权利要求1所述的方法,其特征在于,所述根据所述每个码元对应的存储地址将所述每个码元写入所述n个存储器的目标数据块中包括:
按照所述每个码元在所述第一序列中的排列顺序,通过至少一次写操作,将所述每个码元写入所述存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
3.根据权利要求2所述的方法,其特征在于,所述第一序列为交织序列,所述第二序列为原始序列;
所述通过至少一次写操作,将所述每个码元写入所述存储地址所指示的目标数据块中包括:
针对每次写操作,若本次写操作对应的m个码元中不存在冲突码元,则在本次写操作中将所述m个码元分别写入所述m个码元的存储地址所指示的目标数据块中,所述m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
若本次写操作对应的m个码元中存在冲突码元,则在本次写操作中将所述m个码元中的b个码元写入所述b个码元的存储地址所指示的目标数据块中,并将所述m个码元中的其余m-b个码元作为下一次写操作对应的码元,其中,所述b个码元对应的读出序号小于或等于第一码元对应的读出序号,所述m-b个码元对应的读出序号大于所述第一码元对应的读出序号,所述第一码元为所述冲突码元中读出序号最小的码元。
4.根据权利要求3所述的方法,其特征在于,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;
所述根据第一序列对应的交织矩阵确定所述第一序列中每个码元对应的读出序号包括:
针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的读出序号;
所述通过至少一次计算操作,确定所述列中每个码元对应的读出序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
通过如下公式计算所述n+1个码元的读出序号:a1=t0,a2-a1=P',a3-a1=2P'-1,
其中,an为所述n+1个码元中第n个码元的读出序号,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P'等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的读出序号,所述P'=a2'-a1'-n,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的读出序号,所述P'=a2'-a1'-f,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述n大于1;
所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
6.根据权利要求5所述的方法,其特征在于,所述根据所述读出序号确定所述每个码元对应的存储地址包括:根据所述读出序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述n个存储器的存储单元的编号将所述目标数据块中的码元读出,并按照预定方式进行组合得到第二序列包括:
按照所述n个存储器的存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;
针对每次读操作对应的n个存储单元,将所述n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合得到w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,所述w小于或等于v;
将每次读操作对应的序列进行组合得到第二序列。
8.一种数据处理方法,其特征在于,所述方法应用于随机寻址的n个存储器,所述n为大于或等于1的整数,所述方法包括:
根据所述n个存储器中存储单元的编号将第一序列中各个码元写入所述n个存储器的存储单元的目标数据块中;
根据所述第一序列对应的交织矩阵确定每个码元对应的写入序号a,并根据所述写入序号a确定所述每个码元对应的存储地址,所述写入序号a用于指示所述码元填充至所述交织矩阵的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,所述位置标识用于标识1个存储单元中的1个数据块,其中,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;
按照每个码元在所述交织矩阵对应的取出顺序,根据每个码元对应的存储地址将所述每个码元从所述目标数据块中读出,得到第二序列。
9.根据权利要求8所述的方法,其特征在于,所述根据每个码元对应的存储地址将所述每个码元从所述n个存储器的存储单元的目标数据块中读出包括:
通过至少一次读操作,将所述每个码元从所述存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
10.根据权利要求9所述的方法,其特征在于,所述第一序列为原始序列,所述第二序列为交织序列;
所述通过至少一次读操作,将所述每个码元从所述存储地址所指示的数据块中读出包括:
针对每次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将所述m个码元分别从所述m个码元对应存储地址所指示的数据块中,所述m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将所述m个码元中的b个码元从所述b个码元对应存储地址所指示的目标数据块中,并将所述m个码元中的m-b个码元作为下一次读操作对应的码元,其中,所述b个码元对应的写入序号小于或等于第一码元对应的写入序号,所述m-b个码元对应的写入序号大于所述第一码元对应的写入序号,所述第一码元为所述冲突码元中写入序号最小的码元。
11.根据权利要求10所述的方法,其特征在于,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;
所述根据所述第一序列对应的交织矩阵确定每个码元对应的写入序号a包括:
针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的写入序号;
所述通过至少一次计算操作,确定所述列中每个码元对应的写入序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
通过如下公式计算所述n+1个码元的写入序号:a1=t0,a2-a1=P',a3-a1=2P'-1,
其中,an为所述n+1个码元中第n个码元的写入序号,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P'等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的写入序号,所述P'=a2'-a1'-n,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的写入序号,所述P'=a2'-a1'-f,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差。
12.根据权利要求8至11任一项所述的方法,其特征在于,所述n大于1;
所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
13.根据权利要求12所述的方法,其特征在于,所述根据所述写入序号确定所述每个码元对应的存储地址包括:
根据所述写入序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
14.根据权利要求8至11任一项所述的方法,其特征在于,所述根据所述n个存储器中存储单元的编号将第一序列中各个码元写入所述n个存储器的存储单元的目标数据块中包括:
按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照所述n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;
针对每次写操作,将所述写操作对应的码元写入所述写操作对应的存储单元的数据块中,其中,所述第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,所述w为0至d-1的任意整数,h为0至v-1的任意整数。
15.一种矩阵存储器,其特征在于,包括:写侧逻辑控制电路,读侧逻辑控制电路以及随机寻址的n个存储器,所述n为大于或等于1的整数;
所述写侧逻辑控制电路用于根据第一序列对应的交织矩阵确定所述第一序列中每个码元对应的读出序号a,并根据所述读出序号a确定所述每个码元对应的存储地址,所述读出序号a用于指示所述码元从所述交织矩阵取出的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,所述位置标识用于标识1个存储单元中的1个数据块,其中,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;
所述写侧逻辑控制电路用于根据所述每个码元对应的存储地址将所述每个码元写入所述n个存储器的存储单元的目标数据块中;
所述读侧逻辑控制电路用于根据所述n个存储器的存储单元的编号将所述目标数据块中的码元读出,并按照预定方式进行组合得到第二序列。
16.根据权利要求15所述的矩阵存储器,其特征在于,所述写侧逻辑控制电路具体用于按照所述每个码元在所述第一序列中的排列顺序,通过至少一次写操作,将所述每个码元写入所述存储地址所指示的目标数据块中,其中,每次写操作所写入的码元数量小于或等于n。
17.根据权利要求16所述的矩阵存储器,其特征在于,所述第一序列为交织序列,所述第二序列为原始序列;
所述写侧逻辑控制电路具体用于针对每次写操作,若本次写操作对应的m个码元中不存在冲突码元,则在本次写操作中将所述m个码元分别写入所述m个码元的存储地址所指示的目标数据块中,所述m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
若本次写操作对应的m个码元中存在冲突码元,则在本次写操作中将所述m个码元中的b个码元写入所述b个码元的存储地址所指示的目标数据块中,并将所述m个码元中的m-b个码元作为下一次写操作对应的码元,其中,所述b个码元对应的读出序号小于或等于第一码元对应的读出序号,所述m-b个码元对应的读出序号大于所述第一码元对应的读出序号,所述第一码元为所述冲突码元中读出序号最小的码元。
18.根据权利要求17所述的矩阵存储器,其特征在于,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;
所述写侧逻辑控制电路具体用于针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的读出序号;
其中,所述通过至少一次计算操作,确定所述列中每个码元对应的读出序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中读出序号最小的码元;
通过如下公式计算所述n+1个码元的读出序号:a1=t0,a2-a1=P',a3-a1=2P'-1,
其中,an为所述n+1个码元中第n个码元的读出序号,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P'等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的读出序号,所述P'=a2'-a1'-n,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的读出序号,所述P'=a2'-a1'-f,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差。
19.根据权利要求15至18中任一项所述的矩阵存储器,其特征在于,所述n大于1;
所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
20.根据权利要求19所述的矩阵存储器,其特征在于,所述写侧逻辑控制电路具体用于根据所述读出序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
21.根据权利要求15至18中任一项所述的矩阵存储器,其特征在于,所述读侧逻辑控制电路具体用于按照所述n个存储器的存储单元的编号从小到大的顺序确定每次读操作对应的n个存储单元,任意一次读操作所对应的n个存储单元位于不同的存储器中,任意一次读操作所对应的n个存储单元的编号相同;
针对每次读操作对应的n个存储单元,将所述n个存储单元的目标数据块中的码元读出,并将读出的码元中所在数据块的编号相同的码元组合w个目标序列X1,X2,...,Xw,再将w个目标序列X1,X2,...,Xw组合得到本次读操作对应的序列,所述w小于或等于v;
将每次读操作对应的序列进行组合得到第二序列。
22.一种矩阵存储器,其特征在于,包括:写侧逻辑控制电路,读侧逻辑控制电路以及随机寻址的n个存储器,所述n为大于或等于1的整数;
所述写侧逻辑控制电路用于根据所述n个存储器中存储单元的编号将第一序列中各个码元写入所述n个存储器的存储单元的目标数据块中;所述读侧逻辑控制电路用于根据所述第一序列对应的交织矩阵确定每个码元对应的写入序号a,并根据所述写入序号a确定所述每个码元对应的存储地址,所述写入序号a用于指示所述码元填充至所述交织矩阵的顺序,所述存储地址至少包括存储单元标识以及位置标识,所述存储地址至少包括存储单元标识以及位置标识,所述存储单元标识用于标识1个存储器中的1个存储单元,其中,所述存储单元标识与第一余数RE1对应,所述位置标识与第二余数RE2对应,所述RE1=MOD(a,n*d),所述第二余数RE2=MOD(a,n*d*v),其中,所述d为每个存储器包含的存储单元的数量,所述v为每个存储单元包含的数据块的数量;
所述读侧逻辑控制电路用于按照每个码元在所述交织矩阵对应的取出顺序,根据每个码元对应的存储地址将所述每个码元从所述目标数据块中读出,得到第二序列。
23.根据权利要求22所述的矩阵存储器,其特征在于,所述读侧逻辑控制电路具体用于通过至少一次读操作,将所述每个码元从所述存储地址所指示的目标数据块中读出,其中,每次读操作所读出的码元数量小于或等于n。
24.根据权利要求23所述的矩阵存储器,其特征在于,所述第一序列为原始序列,所述第二序列为交织序列;
所述读侧逻辑控制电路具体用于针对每次读操作,若本次读操作对应的m个码元不存在冲突码元,则在本次读操作中将所述m个码元分别从所述m个码元对应存储地址所指示的数据块中,所述m个码元在所述交织矩阵对应的位置处于同一列,所述冲突码元对应存储地址所指示的目标数据块在同一个存储器的不同存储单元中,所述m小于或等于n;
若本次读操作对应的m个码元存在冲突码元,则在本次读操作中将所述m个码元中的b个码元从所述b个码元对应存储地址所指示的目标数据块中,并将所述m个码元中的m-b个码元作为下一次读操作对应的码元,其中,所述b个码元对应的写入序号小于或等于第一码元对应的写入序号,所述m-b个码元对应的写入序号大于所述第一码元对应的写入序号,所述第一码元为所述冲突码元中写入序号最小的码元。
25.根据权利要求24所述的矩阵存储器,其特征在于,所述交织矩阵为P行P列的三角形矩阵,所述P为大于1的整数;
所述读侧逻辑控制电路具体用于针对所述P列中的每一列,按照从上到下的顺序,通过至少一次计算操作,确定所述列中每个码元对应的写入序号;
所述通过至少一次计算操作,确定所述列中每个码元对应的写入序号包括:
针对每一次计算操作,确定本次计算操作对应的n+1个码元,所述n+1个码元的初始码元为所述列列头中的码元,或者为上一次计算操作对应的码元中的最后1个码元,或者为上一次计算操作对应的码元中的第f+1个码元,其中,上一次计算操作对应的码元中的第f个码元为上一次计算操作对应的冲突码元中写入序号最小的码元;
通过如下公式计算所述n+1个码元的写入序号:a1=t0,a2-a1=P',a3-a1=2P'-1,
其中,an为所述n+1个码元中第n个码元的写入序号,当所述初始码元为所述列列头中的码元时,所述t0等于所述列的列号,所述P'等于P;当所述初始码元为上一次计算操作对应的码元中的最后1个码元时,所述t0等于上一计算操作对应的最后1个码元的写入序号,所述P'=a2'-a1'-n,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差;当所述初始码元为上一次计算操作对应的码元中的第f+1个码元时,所述t0等于上一次计算操作对应的第f+1个码元的写入序号,所述P'=a2'-a1'-f,其中,所述a2'-a1'为上一次计算操作对应的第2个码元与第1个码元之差。
26.根据权利要求22至25中任一项所述的矩阵存储器,其特征在于,所述n大于1;
所述存储地址还包括存储器标识,所述存储器标识用于标识n个存储器中的1个存储器,所述存储器标识与第三余数RE3对应,所述RE3=MOD(a,n)。
27.根据权利要求26所述的矩阵存储器,其特征在于,所述读侧逻辑控制电路具体用于根据所述写入序号计算每个码元对应的第一余数RE1,第二余数RE2以及第三余数RE3,并将所述第一余数RE1确定为所述码元的存储单元标识,将第二余数RE2确定为所述码元的位置标识,将所述第三余数RE3确定为所述码元的存储器标识。
28.根据权利要求22至25中任一项所述的矩阵存储器,其特征在于,所述写侧逻辑控制电路具体用于按照各个码元在第一序列对应的排列顺序确定每次写操作对应的码元,并按照所述n个存储器中存储单元的编号从小到大的顺序确定每次写操作对应的存储单元,任意一次写操作对应的存储单元的编号相同;
针对每次写操作,将所述写操作对应的码元写入所述写操作对应的存储单元的数据块中,其中,所述第一序列中的第w*nv+hn至第w*nv+(h+1)n-1对应于每个存储器的第w个存储单元的第h个数据块,所述w为0至d-1的任意整数,h为0至v-1的任意整数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/124113 WO2020133010A1 (zh) | 2018-12-27 | 2018-12-27 | 数据处理方法及矩阵存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113169811A CN113169811A (zh) | 2021-07-23 |
CN113169811B true CN113169811B (zh) | 2023-10-20 |
Family
ID=71127366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880099748.8A Active CN113169811B (zh) | 2018-12-27 | 2018-12-27 | 数据处理方法及矩阵存储器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113169811B (zh) |
WO (1) | WO2020133010A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114824527A (zh) * | 2022-04-29 | 2022-07-29 | 楚能新能源股份有限公司 | 一种快速复原化成电池原始位置的方法 |
CN115171291B (zh) * | 2022-06-27 | 2024-05-03 | 合肥美的智能科技有限公司 | 智能柜的控制方法及装置、存储介质、智能柜 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453302A (zh) * | 2008-12-19 | 2009-06-10 | 深圳国微技术有限公司 | 解交织器、数据传输系统中的数据交织/解交织实现方法 |
CN101610089A (zh) * | 2008-06-17 | 2009-12-23 | 中兴通讯股份有限公司 | 一种第二次交织及解交织的方法和装置 |
CN105490776A (zh) * | 2015-11-26 | 2016-04-13 | 华为技术有限公司 | 交织方法及交织器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719810A (zh) * | 2009-11-13 | 2010-06-02 | 清华大学 | 一种并行化交织器的仿真生成方法 |
CN102098126B (zh) * | 2009-12-15 | 2014-03-12 | 上海贝尔股份有限公司 | 用于块状编码的交织装置、速率匹配方法及装置 |
US9467252B2 (en) * | 2014-11-26 | 2016-10-11 | Freescale Semiconductor, Inc. | Turbo decoders with extrinsic addressing and associated methods |
-
2018
- 2018-12-27 CN CN201880099748.8A patent/CN113169811B/zh active Active
- 2018-12-27 WO PCT/CN2018/124113 patent/WO2020133010A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610089A (zh) * | 2008-06-17 | 2009-12-23 | 中兴通讯股份有限公司 | 一种第二次交织及解交织的方法和装置 |
CN101453302A (zh) * | 2008-12-19 | 2009-06-10 | 深圳国微技术有限公司 | 解交织器、数据传输系统中的数据交织/解交织实现方法 |
CN105490776A (zh) * | 2015-11-26 | 2016-04-13 | 华为技术有限公司 | 交织方法及交织器 |
Also Published As
Publication number | Publication date |
---|---|
CN113169811A (zh) | 2021-07-23 |
WO2020133010A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444580B2 (en) | System and method for interleaving data in a communication device | |
CN101763895B (zh) | 具有随机化器/去随机化器的数据存储系统和设备 | |
US8132076B1 (en) | Method and apparatus for interleaving portions of a data block in a communication system | |
CN113169811B (zh) | 数据处理方法及矩阵存储器 | |
US20100017682A1 (en) | Error correction code striping | |
CN101310447A (zh) | 用于mpe-fec帧解码的存储效率擦除信息表 | |
JP2004510380A (ja) | 線形ブロック符号の符号化のための方法および装置 | |
US8924829B2 (en) | Device and method for turbo-encoding a block of data | |
CN112152641B (zh) | 数据交织方法、装置及数据发送设备 | |
KR100770894B1 (ko) | 이동통신 시스템에서 인터리버/디인터리버 메모리 제어장치 및 방법 | |
JP3239872B2 (ja) | インタリーバ、インタリーブ方法、デインタリーバ、デインタリーブ方法、発信装置及び受信装置 | |
CN108023662B (zh) | 一种可配置的分组交织方法及交织器 | |
US20040103359A1 (en) | Dynamic real time generation of 3GPP turbo decoder interleaver sequence | |
US6714606B1 (en) | Integrated services digital broadcasting deinterleaver architecture | |
CN101534172B (zh) | 一种中国移动多媒体广播中解比特交织的实现装置和方法 | |
US20140359397A1 (en) | Memory access apparatus and method for interleaving and deinterleaving | |
FI112711B (fi) | Menetelmä ja laite muistinhallintaan digitaalisessa tiedonsiirrossa | |
CN1377142B (zh) | 一种高速解交织的实现方法和装置 | |
CN112882657B (zh) | 数据读取方法及装置、存储介质、电子装置 | |
US20090083514A1 (en) | Apparatus and method for block interleaving in mobile communication system | |
US20050080983A1 (en) | Method and apparatus for transmitting and storing data | |
CN102934387A (zh) | 对数据包进行循环冗余校验的方法及装置 | |
KR100464483B1 (ko) | 에이디에스엘에서의 인터리브/디인터리브 구현 장치 및 그방법 | |
KR100582560B1 (ko) | 디지털 통신용 채널 부호기 | |
CN118214433A (zh) | 一种适用于5g ldpc码的并行解交织器及解交织方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |