一种交织处理方法及装置与流程

文档序号:11215417
一种交织处理方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种交织处理方法及装置。



背景技术:

物理层是无线接口层的最底层,直接影响着无线链路容量和系统性能好坏。比特信息处理是物理层中一个复杂处理步骤,然而在陆地移动通信这种变参信道上,比特差错经常是成串发生的,并且如果遭遇突发干扰,某些重要的比特信息被破坏。

其中,交织是一种克服突发干扰的有效技术。通过打乱符号间的相关性,将突发的干扰随机化,减小信道衰落和干扰带来的影响。目前,在发送端可采用“行写列读”的信道交织方式。相应的,在接收端则使用“列写行读”的解交织方式。例如,发送端将原始数据按行填入交织矩阵,以列的形式读出后得到交织数据,将交织数据发送到接收端,接收端将交织数据按列写入交织矩阵,再按行读出实现交织数据的解交织。

其中,交织可由交织器实现,假设cmux为交织矩阵的列数,rmux为交织矩阵的行数,lmux为交织矩阵的交织数据粒度,则交织器实现交织需要cmux*rmux*lmux的存储开销。通过交织器实现交织时,先按“行”顺序,每个时钟周期填充交织器的一个位置,每个位置存放lmux个数据,全部“行”写满后,再按“列”顺序依次读出数据,完成交织过程。其中,交织的处理时间为cmux*rmux,且需要全部“行”写入后才能启动交织,启动时延为cmux*rmux。类似的,通过解交织器实现解交织时,也需要cmux*rmux*lmux的存储开销,按“列”顺序,每个时钟周期填充交织器的一个位置,每个位置存放lmux个数据,全部“列”写满后,再依次按“行”读出数据,完成解交织过程。

上述进行交织/解交织的过程,完成“行写列读/列写行读”需要cmux*rmux*lmux的存储器开销,存储开销大,成本高,并且需要cmux*rmux个时钟周期填满所有行/列后,才能启动交织/解交织,交织/解交织启动时间慢。进一步的,每个时钟周期仅能填入一个数据,全部填满需cmux*rmux个时钟周期,交织/解交织的效率也比较低。而且由于协议演进,交织的行数和列数规格差异也变大,多场景并发场景下,大小规格任务切换频繁,切换时延较大。



技术实现要素:

本申请实施例提供一种交织处理方法及装置,以解决存储开销大、处理时延长以及大小规格任务切换频繁的问题。

第一方面,提供一种交织处理方法,在该交织处理方法中,获取到待处理交织任务,根据待处理交织任务所需存储空间大小将交织器的存储空间划分为多个分块存储空间,将所述待处理交织任务划分为至少一个交织块,并以交织块为单位,在所述多个分块存储空间内,实现多个分块存储空间并行处理交织任务。

本申请实施例中可设置最大分块存储空间,每一分块存储空间的大小均小于等于最大分块存储空间的大小,即每个分块存储空间处理的交织任务所需的存储空间不会超出该最大分块存储空间,进而可限制每个分块存储空间处理的交织任务的大小,均衡分布处理时延。其中,可依据获取的待处理交织任务所需存储空间以及交织存储器的最大分块存储空间,将交织器的存储空间划分为n个分块存储空间。其中,所述n为正整数。

其中,若待处理交织任务所需存储空间小于等于最大分块存储空间b,则可不对待处理交织任务进行划分,而将待处理交织任务作为一个交织块写入所述n个分块存储空间中包括的存储空间大小为所述待处理交织任务所需存储空间大小的第一分块存储空间。并且若存在多个所需存储空间小于最大分块存储空间b的交织任务,则在交织器存储空间不变的情况下,可在交织器的存储空间内存储多个所需存储空间小于最大分块存储空间b的交织任务。

其中,若待处理交织任务所需存储空间大于最大分块存储空间b,则可对待交织任务进行分块处理,将待处理交织任务划分为多个交织块,并将划分得到的多个交织块,以交织块为单位写入所述n个分块存储空间中存储空间大小为所述最大分块存储空间的大小的至少一个第二分块存储空间中,实现对多个交织块进行并行处理。

一种可能的设计中,在待处理交织任务所需存储空间大于最大分块存储空间情况下,可对待处理交织任务分块处理,具体分块时可根据最大分块存储空间为b以及交织任务矩阵的列数cmux确定分块粒度r,然后根据交织粒度r对待交织任务进行分块处理。例如,可按r=b/cmux的分块粒度,对cmux*rmux的交织矩阵进行分块处理,得到若干个cmux*r的交织块,即对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的行数为所述最大分块存储空间与所述待处理交织任务对应交织矩阵列数之商;对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的列数为所述待处理交织任务对应交织矩阵列数。以划分得到的交织块为单位,将交织块写入交织器的最大分块存储空间内,即可在一个交织块内完成“行写列读/列写行读”的交织操作。

又一种可能的设计中,可采用循环缓存机制存储各交织块,例如,进行不同交织块任务切换时虽然剩余地址空间不够存放一个完整交织块的数据,但可根据动态水线,将剩余空间填满,未输入的数据受到反压,待空间允许时输入。采用上述循环缓存机制情况下,交织器的存储空间划分得到的n个分块存储空间中包括第三分块存储空间,该第三分块存储空间的大小小于最大分块存储空间大小,且写入所述第三分块存储空间内的交织块为对所述待处理交织任务进行分块处理后得到的交织块中的部分交织块。采用上述循环缓存机制可避免由于分块以后,大小交织块穿插带来的调度效率损失。

又一种可能的设计中,对于多层码字需要进行分层映射时,可将层等效为交织矩阵的列数,即将交织矩阵的列数等效为所述待处理交织任务对应交织矩阵列数与对所述交织矩阵进行层映射的层数之积,并采用上述涉及的交织处理方式进行交织处理,实现在完成行列交织的同时完成分层映射过程。

又一种可能的设计中,对于交织旁路的场景,可将交织旁路后的每一列,等效为一个lmux列的小任务,则等效后的交织矩阵中列数ceq=lmux,任务数t=cmux,分块数为cmux*mmux,然后按照上述第一方面涉及的交织处理方式进行交织处理过程,可实现在交织旁路的同时完成分层映射。

第二方面,提供一种交织处理装置,该交织处理装置具备实现上述交织处理方法中交织器的全部功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。

一种可能的设计中,该交织处理装置包括获取单元、处理单元和交织单元。获取单元、处理单元和交织单元的功能可以和各方法步骤相对应,在此不予赘述。

第三方面,提供一种交织器,该交织器包括映射电路、读写电路以及交织存储器。其中,映射电路和读写电路用于执行第一方面或第一方面的任意可能的设计中的交织处理方法,并将交织处理过程中的数据存储至交织存储器。

第四方面,提供一种算机可读存储介质或者计算机程序产品,用于存储计算机程序,该计算机程序用于执行第一方面以及第一方面任意可能的设计中的方法。

附图说明

图1为本申请实施例提供的一种比特级实现装置的结构示意图;

图2为本申请实施例提供的另一种比特级实现装置的结构示意图;

图3为本申请实施例提供的一种交织处理方法流程图

图4为本申请实施例提供的交织器存储空间一种划分示意图;

图5为本申请实施例提供的交织器存储空间另一种划分示意图;

图6为本申请实施例提供的交织任务处理过程示意图;

图7为本申请实施例提供的交织任务处理过程示意图;

图8为本申请实施例提供的采用4块双口的tp-ram的存放数据格式;

图9为本申请实施例提供的写入数据的过程示意图;

图10为本申请实施例提供的读取数据的过程示意图;

图11为本申请实施例提供的循环存储过程示意图;

图12为本申请实施例提供的交织过程示意图;

图13为本申请实施例提供的交织与层映射同时完成的过程示意图;

图14为本申请实施例提供的交织与层映射同时完成的数据存放过程示意图;

图15为本申请实施例提供的实现交织旁路的同时完成分层映射的处理过程;

图16为本申请实施例提供的一种交织处理装置的结构示意图;

图17为本申请实施例提供的交织处理装置的另一结构示意图。

具体实施方式

下面将结合附图,对本申请实施例中的技术方案进行描述。

为了应对比特级处理各过程中协议的变化,灵活扩展支持多种场景的问题,发送端可采用图1所示的面向5g的高灵活扩展性的比特级实现装置,接收端可采用图2所示的面向5g的高灵活扩展性的比特级实现装置,灵活支持各种帧格式,以及各模块可灵活进行组合。

图1中,子任务控制器用于控制子任务的调度。调制模块用于计算时域/频域调制符号均值。加扰模块用于对数据加扰计算。上行控制信息(uplinkcontrolinformation,uci)复用模块用于进行信道质量指示(channelqualityindicator,cqi)、资源标识(resourceidentifier,ri)和应答指令(acknowledge,ack)编码,以及cqi、ri、ack和导频与数据的复用。交织器用于对数据进行分块处理,对随机存取存储器(randomaccessmemory,ram)进行读写地址乱序读写。双倍速率同步动态随机存储器(dualdatarate0,ddr0)用于存储交织前的数据。ddr1用于存储交织后的数据。其中,物理实现上,上述ddr0和ddr1也可以用同一块缓存中的不同地址段进行替换。

图2中,子任务控制器能够控制控制子任务调度,解调模块用于计算每个数据的软信息,解扰模块用于计算加扰前的数据,上行控制信息(uplinkcontrolinformation,uci)检测模块用于进行ri和ack映射以及译码。解交织器用于对数据进行分块处理,对ram进行读写地址乱序读写。uci解复用和检测模块用于对ri、ack、导频与数据分离,并计算ri/ack检测结果。ddr0:外部存储交织前数据的ddr。ddr1:外部存储交织后数据的ddr。其中,物理实现上,上述ddr0和ddr1也可以用同一块缓存中的不同地址段进行替换

图1和图2所示的比特级实现装置各处理模块进行比特级数据处理过程中,子任务控制器可灵活配置各模块的启动和处理流程,以适应各种场景。例如可通过各种开关的组合,实现在5g各种变化下,仅旁路该变化的模块,其余功能可以正常运作。或通过各种开关组合,可以演化出几十上百种场景,涵盖大部分可能的扩展场景。将输出的各种数据内容和格式通过开关进行灵活配置,实现在5g各种变化下,可旁路输出某些数据供软件或其他硬件模块进行处理。例如,5g中进行解交织和层映射过程中,帧格式和交织方式由层级解交织、比特级解交织和符号级解交织三种复杂场景,针对该复杂场景应用图2所示的比特级实现装置,子任务控制器可分别采用以下表1所示的配置方式实现。

表1

其中,为了节约调度时延,复杂帧格式可以拆分成多个子任务进行处理。图1和图2所示的比特级实现装置中子任务控制器可实现多子任务单次调度的方式,将复杂任务拆分之后仅需调度一次,装置自动连续执行多个子任务,最终发出完成消息。例如:以某些不符合lte帧格式为例,采用子任务降低调度时延,通过拆分任务,组合实现复杂场景下的处理,具有低开销低时延的优点。

其中,图1和图2所示的比特级实现装置可支持多种位图方式进行ri/ack映射。例如支持列分布的ri/ack位图,还可支持资源粒子(resourceelement,re)级分布的ri、ack、导频位图,以实现在各种帧格式场景下,可以正常完成数据通路的解调、解扰、解交织、解复用,保证后级能够提前启动。而ri/ack按照指定格式能够解调、解扰、分离、解交织、解层映射,最大程度的降低软件的开销,减小处理时延。

其中,图1所示的比特级实现装置可灵活支持多种规格下,数据的交织以及层映射,图2所示的比特级实现装置可灵活支持多种规格下,数据的解交织和解层映射,以解决存储开销大、处理时延长以及大小规格任务切换频繁的问题。

本申请实施例以下主要针对应用图1所示的比特级实现装置实现交织处理的过程进行说明,由于解交织为交织的逆过程,故对于解交织的过程本申请实施例不再详述。

图3所示为本申请实施例提供的一种交织处理方法流程图,图3所示的交织处理方法执行主体可以是交织器,也可以称为交织存储器,参阅图3所示,包括:

s101:获取待处理交织任务,并确定交织器对所述待处理交织任务进行交织处理所需的存储空间。

本申请实施例中的待处理交织任务可以理解为是以交织矩阵形式呈现的各待交织数据。交织器是指对数据进行交织处理的部件。交织器进行交织处理过程中,需要分配存储空间存储交织数据,其中,该分配的存储空间的大小可以通过交织矩阵的行数、列数以及交织数据粒度表示,例如,交织器对cmux*rmux的交织矩阵进行交织处理,交织矩阵的交织数据粒度为lmux,则交织器对交织矩阵进行交织处理所分配的存储空间大小为cmux*rmux*lmux。

s102:依据待处理交织任务所需存储空间以及交织存储器的最大分块存储空间,将所述交织器的存储空间划分为n个分块存储空间。其中,所述n为正整数。

本申请实施例中为增加处理的并行度,并减少处理时延和存储开销,可根据待处理交织任务所需存储空间大小将交织器的存储空间划分为多个分块存储空间,多个分块存储空间并行处理交织任务。本申请实施例中可设置最大分块存储空间,每一分块存储空间的大小均小于等于最大分块存储空间的大小,即每个分块存储空间处理的交织任务所需的存储空间不会超出该最大分块存储空间,进而可限制每个分块存储空间处理的交织任务的大小,均衡分布处理时延。

本申请实施例中可采用如下方式依据待处理交织任务所需存储空间以及交织存储器的最大分块存储空间,将所述交织器的存储空间划分为n个分块存储空间:

假设最大分块存储空间的大小为b,若待处理交织任务所需存储空间小于等于所述最大分块存储空间b,则在交织器的存储空间中划分一个存储空间大小为所述待处理交织任务所需存储空间大小的第一分块存储空间,在该第一分块存储空间内写入该所需存储空间小于等于所述最大分块存储空间b的待处理交织任务。若待处理的交织任务所需存储空间大于所述最大分块存储空间b,则在交织器的存储空间中划分至少一个存储空间大小为所述最大分块存储空间b大小的第二分块存储空间,第二分块存储空间的数量依据待交织任务所需存储空间来确定,即划分的多个第二存储空间能够满足将所述待处理交织任务全部写入。在所述第二分块存储空间内写入待处理交织任务的部分交织任务,该部分交织任务所占用的存储空间大小为所述最大分块存储空间b的大小,或者小于所述最大分块存储空间b的大小。其中,该部分交织任务可以理解为是对所需存储空间大于所述最大分块存储空间b进行分块处理后得到的交织块。

对于存储空间划分了第一分块存储空间或第二分块存储空间后剩余的存储空间,可继续按照上述方式根据其它待处理交织任务所需的存储空间进行划分,并在划分得到的存储空间内写入待交织任务或者对所述待处理交织任务进行分块处理后得到的交织块。

本申请实施例中为描述方便,将对交织器的存储空间进行划分后得到的分块存储空间数量设定为n个,该n为正整数,具体取值依据待处理交织任务数量以及所需存储空间大小来确定。

s103:将所述待处理交织任务划分为至少一个交织块,并以交织块为单位,在所述n个分块存储空间内写入交织块。

本申请实施例中将交织器划分为n个分块存储空间,则可在所述n个分块存储空间内分别写入交织任务,实现多个交织任务的并行处理。应用于本申请实施例中,可将待处理交织任务划分为至少一个交织块,并以交织块为单位,在所述n个分块存储空间内写入交织块。其中,若待处理交织任务所需存储空间小于等于最大分块存储空间b,则可不对待处理交织任务进行划分,而将待处理交织任务作为一个交织块写入所述n个分块存储空间中包括的存储空间大小为所述待处理交织任务所需存储空间大小的第一分块存储空间。并且若存在多个所需存储空间小于最大分块存储空间b的交织任务,则在交织器存储空间不变的情况下,可在交织器的存储空间内存储多个所需存储空间小于最大分块存储空间b的交织任务。如图4所示,在交织器的存储空间内存储有bs0、bs1、bs2、bs3、bs4和bs5一个六个交织任务,六个交织任务所需的存储空间大小均小于最大分块存储空间b,交织器可并行处理这六个交织任务。

其中,若待处理交织任务所需存储空间大于最大分块存储空间b,则可对待交织任务进行分块处理,将待处理交织任务划分为多个交织块,并将划分得到的多个交织块,以交织块为单位写入所述n个分块存储空间中存储空间大小为所述最大分块存储空间的大小的至少一个第二分块存储空间中。例如,待处理交织任务bb0所需的存储空间为2b,则将待处理交织任务划分为两个交织块,分别为bb0slc0和bb0slc1,bb0slc0和bb0slc1所需的存储空间大小均为最大分块存储空间b,将bb0slc0和bb0slc1分别写入n个分块存储空间中存储空间大小为所述最大分块存储空间的大小的两个分块存储空间内,如图5所示。图5所示中交织器的存储空间内写入待处理交织任务的两个交织块,该交织器可对这两个交织块进行并行处理。

采用本申请实施例上述提供的将交织器存储空间按照交织任务大小划分为多个分块存储空间,并行处理多个交织任务的过程,实现了一种分块粒度可变的交织方式,实现过程示意图可如图6所示。图6中,对交织块0、交织块1、交织块2和交织块3进行交织处理过程中,可以交织块为单位,依次写入交织块0、交织块1、交织块2和交织块3,而在完成交织块0写入后,即可进行交织块0的读操作,后续类似可以进行交织块1、交织块2和交织块3的读操作,参阅图6所示。

本申请实施例中若待处理交织任务所需存储空间小于等于最大分块存储空间,则无需对待处理交织任务进行分块处理,按照原有的交织任务交织处理方式写入划分得到对应分块存储空间即可。以下着重对待处理交织任务所需存储空间大于最大分块存储空间情况下,对待处理交织任务分块处理以及写入交织块后进行交织处理的过程进行说明。

本申请实施例中假设待处理交织任务为列数为cmux,行数为rmux的交织矩阵,最大分块存储空间为b,则可按r=b/cmux的分块粒度,对cmux*rmux的交织矩阵进行分块处理,得到若干个cmux*r的交织块,即对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的行数为所述最大分块存储空间与所述待处理交织任务对应交织矩阵列数之商;对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的列数为所述待处理交织任务对应交织矩阵列数。以划分得到的交织块为单位,将交织块写入交织器的最大分块存储空间内,即可在一个交织块内完成“行写列读/列写行读”的交织操作,如图7所示。图7中划分得到的交织块分别表示为cmux*r0、cmux*r1……cmux*rn。数据按“行/列”顺序写入交织器,写满cmux*r0的数据量后即可按“列/行”顺序读出本交织块内的所有数据,交织时“列”输出时预留地址偏移,保证各交织块输出的数据最终在ddr内连续排列。解交织时“列”输入时跳跃读取交织块内数据,最终等效读取ddr内连续交织数据。同样的继续按“行/列”顺序写入交织器,写满cmux*r1的数据量后即可按“列/行”顺序读出本交织块内的所有数据。后续交织块依次处理,直至完成对所有划分得到的交织块的交织处理。采用此种交织处理方式,交织的启动时延减小为cmux*r,而不再是cmux*rmux,能够减小处理时延。

本申请实施例以下以lte协议中一个码子的信道交织处理过程为例,对上述涉及的交织处理过程进行说明。根据协议,时序资源单载波频分多址(single-carrierfrequency-divisionmultipleaccess,sc-fdma)符号顺序对应于交织矩阵中的列序号cmux,频域资源re顺序对应于交织矩阵中的行序号rmux。假设数据块大小为cmux*rmux=16*300,b=2048,则r=2048/16=128,即按r=128进行分块交织,整个数据块分为3个交织块处理。r0=128,r1=128,r0=44。前两个分块以一行16个数据,128行进行写入,写入完成后,依次按列输出每列128个数据。为了使外部数据连续,将输出地址做偏移,列0输出0~127位置,列1相对列0偏移300个数据位置,写入300~327位置,依次类推。待第二个分块输出时,列0写入128~255位置,列1写入328~555位置……待第三个分块输出时,列0写入256~299位置,列1写入556~599位置……。若数据块大小为cmux*rmux=64*300,b=2048,则r=2048/64=32,即按r=32进行分块交织,整个数据块分为10个交织块处理。r0=32,r1=32,…r9=12。

本申请实施例上述交织处理方式,可通过设置b的大小,实现针对不同待处理交织任务设置可变分块粒度r,根据r决定分块粒度以及分块数,在固定存储空间大小的情况下,可以支持任意规格的交织块处理。并且在交织任务中的列数较小的场景下,可分块的r较大,有利于提高总线效率。

本申请实施例中为提高“行写列读/列写行读”的处理能力,使每时钟周期“写”或者“读”两个位置,可在交织器中设置4块双口的tp-ram。采用4块双口的tp-ram情况下,为确保在交织读/写的过程中,tp-ram的读写端口不会发生冲突,tp-ram内的数据需要按特定格式存放,例如可按照图8所示的方式存放数据。此排列格式可有效避免读写冲突。

其中,采用4块双口的tp-ram进行交织处理的写操作过程中,每个时钟周期可写入2个数据,示例如图9所示,第一个时钟周期写x0、x1,分别写入ram0、ram1的地址0;第二个时钟周期写x2、x3,分别写入ram0、ram1的地址1。以此类推,直至将所有数据写入完毕。对于读操作与写操作类似,第一个时钟周期读取ram0、ram2的地址0;第二个时钟周期读取ram0、ram2的地址6。以此类推,直至将所有数据读取完毕。

其中,具体实现写操作和读操作的过程,可采用如下方式:

记x(k)–>x(r,c),其中r=0,1,2,……,rmax-1;c=0,1,2,……,cmax-1。其中rmax为交织矩阵的总行数,cmax为交织矩阵的总列数,则有以下关系:

k=r*cmax+c。

r=floor(k/cmax)floor()表示向下取整

c=k%cmax%表示模

假设,wr0、wr1、wr2、wr3分别表示intlram0~3的写使能信号。waddr0~waddr3分别表示intlram0~3的写地址。则:

wr0=~(r%2)&~(c%2);

wr1=~(r%2)&(c%2);

wr2=(r%2)&~(c%2);

wr3=(r%2)&(c%2);

其中,maxaddr是物理ram的实际深度。

假设rd0、rd1、rd2、rd3分别表示intlram0~3的读使能信号。raddr0~raddr3分别表示intlram0~3的读地址。则:

rd0=~(r%2)&~(c%2);

rd1=~(r%2)&(c%2);

rd2=(r%2)&~(c%2);

rd3=(r%2)&(c%2);

可以理解的是,读写使能、读写地址的计算公式相同。区别只在于顺序不同,写操作先增加c的序号,再增加r的序号;读操作先增加r的序号,再增加c的序号。

本申请实施例中一种可能的实现方式中,为了提高分块效率,交织器可采用循环缓存机制,按b*2的数据量为待处理任务预留缓存空间,即可满足任意cmux*rmux的行列交织。循环缓存机制可以理解为是如下的实现过程:进行不同交织块任务切换时虽然剩余地址空间不够存放一个完整交织块的数据,但可根据动态水线,将剩余空间填满,未输入的数据受到反压,待空间允许时输入,如图11所示,ram2中存储完交织块bb0slc2、bs1、bs2和bs3之后剩余的存储空间不足以将交织块bb1slc0完整存储,此种情况下可将交织块bb1slc0的部分交织块先存储,然后待空间允许输入时再写入bb1slc0剩余部分,如图11所示。同样的,在ram3中采用循环存储的方式,将bb2slc0的部分交织块写入。本申请实施例采用上述循环缓存机制情况下,可以理解为是在交织器的存储空间划分得到的n个分块存储空间中包括第三分块存储空间,该第三分块存储空间的大小小于最大分块存储空间大小,且写入所述第三分块存储空间内的交织块为对所述待处理交织任务进行分块处理后得到的交织块中的部分交织块。采用上述循环缓存机制可避免由于分块以后,大小交织块穿插带来的调度效率损失。

本申请实施例中采用循环缓存机制的实现方式,计算出来的逻辑地址对maxaddr取模以后可得到物理ram的实际写地址。

图1和图2所示的比特级实现装置应用本申请实施例中上述交织处理方法,交织过程示意图,如图12所示。图12中,对于交织“行写列读”,二维矩阵映射以后,按x0、x1、x2、……、x15、……的顺序依次写入交织存储器。然后按照x0、x12、x24、x36、……、x1、x13、……的顺序从交织存储器读取。对于解交织“列写行读”,二维矩阵映射以后,按照x0、x12、x24、x36、……、x1、x13、……的顺序依次写入解交织存储器。然后按x0、x1、x2、……、x15、……的顺序从解交织存储器读取。

本申请的另一实施例中,对于多层码字需要进行分层映射时,可将层等效为交织矩阵的列数,即将交织矩阵的列数等效为所述待处理交织任务对应交织矩阵列数与对所述交织矩阵进行层映射的层数之积,并采用上述涉及的交织处理方式进行交织处理,实现在完成行列交织的同时完成分层映射过程。例如,可采用如下方式实现在完成行列交织的同时完成分层映射过程:

假设层数为lmux,交织矩阵的列数为cmux,则等效后的交织矩阵的列数表示为ceq=lmux*cmux。按“行”顺序写入时,列0层0、列0层1、列0层2、列0层3、列1层0、列1层1、列1层2和列1层3……的数据等效为列0、1、2、3、5、6、7、8……一起写入。按“列”顺序读出时,先将交织块内的列0所有数据读出,再将列1数据读出,再将列2数据读出,再将列3数据读出,再读取列4即在交织的同时完成了分层映射。实现过程如图13所示。

采用上述实施例涉及的循环缓存机制进行交织处理时,缓存的数据排列方式适应性变化,例如以两层为例,数据的排列方式如图14所示。并且,在计算输出地址偏移时,需要增加层间的便宜,具体实现过程如下:

1)根据码字输出起始地址cw_o_base,可计算出每个sym的输出起始地址:

sym_o_base=cw_o_base+rmux*sym_idx*data_width*lay_num

2)根据当前交织块内数据的re序号计算输出偏移地址:

sym_o_offset=(re_idx+rmux*lay_idx)*data_width

3)每个交织块内按sym按层粒度输出数据到ddr1,每次输出的起始地址为:

sym_o_addr=sym_o_base+sym_o_offset

4)每次输出的数据长度为r个data_width,共计cmux*n*lay_num次输出后ddr1中即得到整个码字交织后的数据(其中n为交织块的数目,最后一个交织块剩余数据量不足r时,按实际大小输出)。

本申请的另一实施例中,针对lte协议中交织旁路的场景,可将交织旁路后的每一列,等效为一个lmux列的小任务,则等效后的交织矩阵中列数ceq=lmux,任务数t=cmux,分块数为cmux*mmux,然后按照上述实施例涉及的交织处理方式进行交织处理过程,可实现在交织旁路的同时完成分层映射。实现交织旁路的同时完成分层映射的处理过程如图15所示,图15中,每列的数据按“行”顺序写入时,列0层0、列0层1、列0层2、列0层3的数据等效为列0、1、2、3起写入。按“列”顺序读出时,先将交织块内的列0所有数据读出,再将列1数据读出,再将列2数据读出,再将列3数据读出。完成一列的操作之后,按照相同过程进行下一列操作,即在交织旁路的同时完成了分层映射。

本申请实施例提供的交织处理方法,根据交织任务所需存储空间大小将交织器的存储空间划分为多个分块存储空间,在多个分块存储空间内并行处理多个交织块对应的交织任务,在进行交织读写的过程中,各个交织块之间互相独立,实现以交织块为单位进行读操作或写操作,与现有技术中,需要将整个交织矩阵为单位进行读写操作,能够减少所占用交织存储的大小,降低交织成本。并且交织块的大小可灵活配置,在固定存储空间大小的情况下,可以支持任意规格的交织块处理。

为了对本申请的有益效果进行更加清楚的解释,以一个lte中满规格的传输码块为例,256相正交振幅调制(quadratureamplitudemodulation,qam)时,码块信道交织的数据量为3300re*64sym*4lay*64bit,则采用本申请实施例上述涉及的交织处理方式,仅需2048re*64bit*2buffer即可实现流水处理。现有技术与本申请所需的存储容量、处理时延、切换时延和启动时延对比如下表表2所示:

表2

由上述表2可以看出,本申请可以减少交织处理过程中所需存储容量、处理时延、切换时延和启动时延。

基于上述实施例提供的交织处理方法,本申请实施例还提供一种交织处理装置。可以理解的是,交织处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。

本申请实施例可以根据上述方法示例对交织处理装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,图16示出了一种交织处理装置的结构示意图,参阅图16所示。交织处理装置100包括获取单元101、处理单元102和交织单元103。获取单元101,用于获取待处理交织任务。处理单元102,用于确定交织器对所述获取单元101获取的待处理交织任务进行交织处理所需的存储空间,依据所述待处理交织任务所需存储空间以及交织器的最大分块存储空间,将所述交织器的存储空间划分为n个分块存储空间,所述n为正整数,其中,n个分块存储空间中每一分块存储空间的大小均小于等于最大分块存储空间的大小。交织单元103,用于将所述获取单元101获取的待处理交织任务划分为至少一个交织块,并以交织块为单位,在所述处理单元102划分得到的n个分块存储空间内写入交织块。

一种可能的实施方式中,若待处理交织任务所需存储空间小于等于所述最大分块存储空间,则处理单元102划分包含存储空间大小为所述待处理交织任务所需存储空间大小的第一分块存储空间的n个分块存储空间。所述交织单元103,在所述处理单元102划分得到的所述第一分块存储空间内写入所述待处理交织任务。

另一种可能的实施方式中,若待处理的交织任务所需存储空间大于所述最大分块存储空间,则处理单元102划分得到包括存储空间大小为所述最大分块存储空间的大小的至少一个第二分块存储空间的n个分块存储空间。所述交织单元103在所述处理单元102划分得到的所述第二分块存储空间内写入对所述待处理交织任务进行分块处理后得到的交织块。

又一种可能的实施方式中,所述n个分块存储空间中还包括第三分块存储空间,且写入所述第三分块存储空间内的交织块为对所述待处理交织任务进行分块处理后得到的交织块中的部分交织块。

又一种可能的实施方式中,若待处理的交织任务所需存储空间大于所述最大分块存储空间,则交织单元103对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的行数为所述最大分块存储空间与所述待处理交织任务对应交织矩阵列数之商;对所述待处理交织任务进行分块处理得到交织块中的交织矩阵的列数为所述待处理交织任务对应交织矩阵列数。

又一种可能的实施方式中,所述交织块内的交织矩阵对所述待处理交织任务进行分块处理得到的交织块中的交织矩阵的列数为所述待处理交织任务对应交织矩阵列数与对所述交织矩阵进行层映射的层数之积。

当采用硬件形式实现时,获取单元101和处理单元102可以是映射电路,交织单元103可以是读写电路。当获取单元和处理单元是映射电路,交织单元是读写电路时,交织处理装置可以是图17所示的交织器。

图17示出了本申请实施例提供的交织处理装置的另一结构示意图。图17中,交织处理装置可以是交织器1000,该交织器1000包括映射电路1001、读写电路1002以及交织存储器1003。

其中,映射电路1001用于获取待交织任务,将待交织任务中的待交织数据进行二维序号映射得到交织矩阵,使得待交织数据中的每个数据都与交织矩阵中的一个元素对应。并确定交织器对所述待处理交织任务进行交织处理所需的存储空间,依据待处理交织任务所需存储空间以及交织存储器1003的最大分块存储空间,将所述交织存储器1003的存储空间划分为n个分块存储空间,所述n为正整数,其中,n个分块存储空间中每一分块存储空间的大小均小于等于最大分块存储空间的大小。读写电路,用于将所述待处理交织任务划分为至少一个交织块,并以交织块为单位,在所述n个分块存储空间内写入交织块。交织存储器1003为存储器,用于在交织的过程中存储数据,其一般包括一个或多个ram。

其中,映射电路1001以及读写电路1002具备上述实施例涉及的交织处理方法中的相应功能,具体功能实现过程可参阅上述实施例的相关描述,在此不再赘述。

本申请实施例中,交织处理装置100和交织器1000具备上述方法实施例中涉及的交织器进行交织处理的功能,对于本发明实施例描述不够详尽的地方,可参阅上述实施例的相关描述,本申请实施例在此不再赘述。

基于上述实施例,本申请实施例还提供一种计算机介质或计算机程序产品,该计算机介质或计算机程序产品用于储存为上述交织处理装置以及交织器所用的计算机软件指令,其包含用于执行上述实施例所涉及的交织处理方法的程序。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1