具体实施方式
本发明实施例提供一种解速率匹配的方法及装置,该方法将接收到的数据包进行补NULL处理,并当确定该数据包为重传数据包时,确定补NULL处理后的数据包中每个数据的解交织地址,同时,将补NULL处理后的数据与提取的该数据包对应的原始数据进行HARQ合并,将合并后的数据按照确定的解交织地址进行解交织处理,以实现对速率匹配后的数据包进行解速率匹配。下面结合说明书附图,对本发明实施例进行详细描述。
图3为本发明实施例提供的解速率匹配的过程,具体包括以下步骤:
S301:解速率匹配装置将接收到的数据包进行补NULL处理。
在本发明实施例中,发送端对经过速率匹配后的数据包进行发送前,先对数据包中的数据进行了打孔处理,因此接收端的解速率匹配装置接收到数据包时,先要对该数据包中的数据打孔的位置进行补0,即对接收到的数据包进行补NULL处理。其中,该数据包中的数据包括系统位、校验1和校验2。
S302:根据该数据包的NDI,判断该数据包是否为重传数据包,若是,则进行步骤S303,否则进行步骤S306。
在本发明实施例中,解速率匹配装置可以根据接收到的数据包中的NDI判断该数据包是否为重传数据包。
S303:根据补NULL处理后的数据包中每个数据的行号和列号,确定补NULL处理后的每个数据对应的解交织地址。
当确定该数据包为重传数据包时,由于该数据包中的数据为发送端进行交织处理后的数据,该数据包中的数据实际是在一个交织矩阵中,解速率匹配装置根据补NULL处理后的数据在交织矩阵中的行号和列号,确定数据的解交织地址。
S304:在保存的已接收数据中,提取该数据包对应的原始数据,将提取的原始数据与补NULL处理后的数据进行HARQ合并。
在本发明实施例中,解速率匹配装置在自身保存的已接收数据中,提取该数据包对应的原始数据,将提取的原始数据与补NULL处理后的数据进行HARQ合并。其中,由于该数据包为重传数据包,因此解速率匹配装置在接收到该数据包之前已经接收到该数据包对应的原始数据,并且保存了该原始数据。
S305:将合并后的每个数据按照确定的对应解交织地址进行解交织处理,并将解交织处理后的数据输出。
将补NULL处理后的数据与提取的该数据包对应的原始数据进行HARQ合并后,根据确定的解交织地址,将合并后的数据进行解交织处理,其中,该重传数据包中的数据的解交织地址,与合并后的数据的解交织地址相同。对合并后的数据进行解交织处理后,将数据按照系统位、校验1和校验2分成三路,并行输出到译码器进行译码。
S306:根据补NULL处理后的数据包中每个数据的行号和列号,确定补NULL处理后每个数据的解交织地址。
当确定该数据包为非重传数据包时,由于解速率匹配装置在接收到该数据包之前,没有接收到该数据包对应的原始数据,因此不进行HARQ合并,只确定该数据包中的数据的解交织地址。
S307:根据确定的对应解交织地址,对补NULL处理后的每个数据进行解交织处理,并将解交织处理后的数据输出。
根据确定的该数据包中的数据的解交织地址,对补NULL处理后的数据进行解交织处理。在解交织处理后,同样将数据按照系统位、校验1和校验2分成三路,并行输出到译码器进行译码。
在上述过程中,解速率匹配装置将接收到的数据包进行补NULL处理,并当确定该数据包为重传数据包时,确定补NULL处理后的数据包中每个数据的解交织地址,同时,将补NULL处理后的数据与提取的该数据包对应的原始数据进行HARQ合并,将合并后的数据按照确定的解交织地址进行解交织处理,以实现对速率匹配后的数据包进行解速率匹配。
并且,为了降低接收端对数据进行处理的延时,确定补NULL处理后的每个数据对应的解交织地址的时间,与将提取的所述原始数据与补NULL处理后的数据进行混合自动重传请求HARQ合并的时间可以部分或全部重叠。即可以同时进行确定补NULL处理后的每个数据对应的解交织地址,和将提取的所述原始数据与补NULL处理后的数据进行混合自动重传请求HARQ合并的过程。当接收到的数据包为重传数据包时,由于解速率匹配装置同时对该数据包中的数据进行HARQ合并和解交织地址的确定,因此在接收端对接收到的数据进行译码之前,对数据的处理延时为对数据进行HARQ合并的时间,与确定数据的解交织地址的时间中的最大值。因此相对于现有技术中接收端对数据进行译码之前的处理延时为对数据进行HARQ合并的时间与确定数据的解交织地址的时间之和,本发明实施例提供的解速率匹配的方法降低了接收端对数据进行处理的延时。
在本发明实施例中,为了进一步提高解速率匹配的效率,发送端在发送数据包时,可以采用并行发送的方式发送数据包。相应的,解速率匹配装置采用至少两个并行接口,接收发送端并行发送的数据包,并根据与发送端约定的算法,将接收到的并行发送的数据包进行级联,将级联后的数据包作为接收到的数据包。
其中,解速率匹配装置可以采用乒乓寄存器接收发送端并行发送的数据包,该乒乓寄存器同时具有对接收到的并行发送的数据包级联的功能,以及对接收到的级联后的数据包进行补NULL处理的功能。具体为,先将乒乓寄存器清0,根据并行发送的数据包的冗余版本,以及与发送端约定的算法,计算并行发送的数据包中每个数据的位置,根据计算出的每个数据的位置,将并行发送的数据包中的数据写入乒乓寄存器的相应位置中,其中打孔数据的位置跳过。由于将数据写入乒乓寄存器的相应位置时,是根据计算出的数据的位置进行写入的,因此完成了对接收到的并行发送的数据包的级联。并且,由于预先对乒乓寄存器进行了清0,而写入数据时跳过数据打孔的位置,因此乒乓寄存器中对应的数据打孔的位置已经被写入了0,从而当采用该方法将接收到的数据包中的数据全部写入乒乓寄存器时,也就完成了对接收到的数据包进行补NULL的处理。
在本发明实施例中,由于当接收到的数据包为重传数据包时,对数据包中的数据进行译码之前需要将该数据包中的数据,与之前接收到的该数据包对应的原始数据进行HARQ合并。因此当确定接收到的数据包为重传数据包,并将提取的该数据包对应的原始数据与补NULL处理后的数据进行HARQ合并后,采用HARQ合并后的数据,对保存的已接收数据中该数据包对应的原始数据进行更新。当译码器对此次HARQ合并,且进行后续处理后的数据进行译码又发生错误时,通知发送端再次重新发送数据包,而接收端将再次重传的数据包进行补NULL处理后,提取更新后的该再次重传的数据包对应的原始数据,并将再次重传的数据包中的数据与提取的更新后的原始数据再进行HARQ合并,进行后续步骤后再进行译码。
同时,当确定接收到的数据包为非重传数据包时,将补NULL处理后的数据作为该数据包对应的原始数据,添加到保存的已接收数据中。对该数据包进行后续步骤后,再对其进行译码,若发生译码错误,则通知发送端重新发送数据包,接收端将接收到的重传数据包进行补NULL处理后,提取该数据包对应的原始数据,并将该重传数据包中的数据与提取的该数据包对应的原始数据进行HARQ合并,进行后续步骤后再进行译码。
其中,可以采用第二代双倍速率同步动态随机存储器(Double Data Rate 2Random Access Memory,DDR2 RAM)保存已接收数据。并且为了提高DDR2RAM的读写速度,从而提高提取已接收数据中的原始数据的效率,以及提高更新或添加该数据包对应的原始数据的效率,接收端的解速率匹配装置在DDR2 RAM保存的已接收数据中提取该数据包对应的原始数据的方法具体为,提取原始数据时,每次读取8个突发长度(burst)的数据进行缓存。更新或添加该数据包对应的原始数据的方法具体为,每次向DDR2 RAM中写入4个bust的数据。
并且,将DDR2 RAM中保存的原始数据更新,或向DDR2 RAM中添加原始数据的过程中,由于每次更新或添加的原始数据的大小有可能不相同,若每次都将DDR2 RAM的全部存储空间开放,则会造成DDR2 RAM的存储空间的浪费,若每次读写都对同一个空间进行操作,则会造成数据碎片或数据覆盖。因此为了避免DDR2 RAM的存储空间的浪费和产生的数据碎片或数据覆盖,采用轮循方式对原始数据进行更新或添加原始数据,具体为,将每次进行操作的单元释放掉,同时将待写入的更新的原始数据,或待写入的原始数据存放到空闲单元中。同时还可以保存每次更新的原始数据或添加的原始数据的HARQ进程号。图4为本发明实施例提供的对DDR2 RAM中的原始数据进行更新或添加原始数据的方法,在DDR2 RAM中保存8个原始数据,并分配一个空闲空间,在(a)过程中,对原始数据0进行操作;在(b)过程中,将操作后的原始数据0写入空闲空间中,并释放原始数据0的存储单元,即将原始数据0原来的存储单元作为空闲空间,并且对原始数据1进行操作;在(c)过程中,将操作后的原始数据1写入空闲空间中,并释放原始数据1的存储单元,即将原始数据1原来的存储单元作为空闲空间。
当然,本发明实施例中保存已接收数据的存储器并不仅限于DDR2 RAM,也可以采用其他存储器保存已接收数据,例如闪存等,并且当采用其他存储器保存已接收数据时,为了提高存储器的读写效率,以及避免存储空间的浪费和产生的数据碎片或数据覆盖,在该其他存储器中更新或添加原始数据的方法,与上述在DDR2 RAM中更新或添加原始数据的方法相同,这里就不再一一赘述。
在本发明实施例中,根据补NULL处理后的数据包中的数据的行号和列号,确定补NULL处理后的数据的解交织地址的方法可以为,根据补NULL处理后的数据包中的数据的行号和列号,以及自身保存的交织图样,查找每个数据的解交织地址,但是该方法需要对自身保存的交织图样进行维护,浪费了资源。为了避免对保存的交织图样进行维护而造成的资源浪费,本发明实施例中确定补NULL处理后的数据的解交织地址的方法具体为,根据补NULL处理后的数据的最大列号,确定列地址进行二进制数转换后的位数,针对补NULL处理后的数据包中每个数据,根据该数据的列号,将该列号转换为对应该位数的二进制数,对转换后的二进制数进行逆顺序排列,将得到的逆顺序排列后的二进制数作为该数据对应的解交织地址的列地址,并根据该数据的行号,将该行号作为该数据对应的解交织地址的行地址,将补NULL处理后的数据包中每个数据对应的解交织地址的行地址,以及解交织地址的列地址,作为确定的补NULL处理后的每个数据的解交织地址。表1为本发明实施例提供的以补NULL处理后的数据包中的数据为32列为例,每个数据的列地址与确定的解交织地址的列地址的对应关系。
表1
在表1中,补NULL处理后的数据包中的数据为32列,其列号为0~31,则最大列号31转换为二进制数为11111,其位数为5位,则将该数据包中每个数据的列号都转换为5位的二进制数。以表1中列号为8的数据为例进行说明,先将该数据的列号8转换为5位的二进制数,则该列号对应的二进制数为01000,将该列号对应的二进制数进行逆顺序排列,即为00010,得到的逆序二进制数作为该数据对应的解交织地址的列地址,即00010为该数据对应的解交织地址的列地址,该列地址的十进制数为2。将该数据的行号直接作为该数据对应的解交织地址的行地址,并将该数据对应的解交织地址的行地址,以及解交织地址的列地址作为该数据的解交织地址。
其中,接收端的解速率匹配装置可以采用解交织寄存器对待解交织的数据进行解交织处理,其中,当接收到的数据包为重传数据包时,待解交织的数据为进行HARQ合并后的数据;当接收到的数据包为非重传数据包时,待解交织的数据为该数据包中的数据。继续沿用上例进行说明,由于该待解交织的数据为32列,因此将确定的待解交织的数据的行号乘以32,再与列号相加,得到待解交织的数据在该解交织寄存器中的地址,并将待解交织数据写入相应的解交织地址中,完成对待解交织数据的解交织处理。
并且,将解交织处理后的数据输出的过程中,可以采用三个解交织缓存器,分别读出解交织寄存器中数据的系统位、校验1和校验2,然后将读出的数据并行发送到译码器译码。
图5为本发明实施例提供的以接收到的数据包为重传数据包为例,解速率匹配的详细过程,具体包括以下步骤:
S501:解速率匹配装置采用至少两个并行接口,接收发送端并行发送的数据包,并根据与发送端约定的算法,将接收到的并行发送的数据包进行级联。
S502:将级联后的数据包进行补NULL处理。
S503:根据该数据包的NDI,确定该数据包为重传数据包,同时进行步骤S504和步骤S509。
S504:根据补NULL处理后的数据的最大列号,确定列地址进行二进制数转换后的位数。
S505:针对补NULL处理后的数据包中每个数据,根据该数据的列号,将该列号转换为对应该位数的二进制数。
S506:对转换后的二进制数进行逆顺序排列,将得到的逆顺序排列后的二进制数作为该数据对应的解交织地址的列地址。
S507:根据该数据的行号,将该行号作为该数据对应的解交织地址的行地址。
S508:将补NULL处理后的数据包中每个数据对应的解交织地址的行地址,以及解交织地址的列地址,作为确定的补NULL处理后的每个数据的解交织地址。
S509:在保存的已接收数据中,提取该数据包对应的原始数据,将提取的原始数据与补NULL处理后的数据进行HARQ合并,进行步骤S510和步骤S511。
S510:将合并后的每个数据按照确定的对应解交织地址进行解交织处理,并将解交织处理后的数据输出。
S511:采用HARQ合并后的数据,对保存的已接收数据中该数据包对应的原始数据进行更新。
在上述过程中,当接收到的数据包为重传数据包时,由于解速率匹配装置同时对该数据包中的数据进行HARQ合并和解交织地址的确定,因此在接收端对接收到的数据进行译码之前,对数据的处理延时为对数据进行HARQ合并的时间,与确定数据的解交织地址的时间中的最大值。因此相对于现有技术中接收端对数据进行译码之前的处理延时为对数据进行HARQ合并的时间与确定数据的解交织地址的时间之和,本发明实施例提供的解速率匹配的方法降低了接收端对数据进行处理的延时。
并且,解速率匹配装置采用并行接口接收发送端并行发送的数据包,并根据与发送端约定的算法,将接收到的并行发送的数据包进行级联,进一步提高了解速率匹配的效率。
同时,本发明实施例中,针对数据包中的每个数据的列号,将该列号转换为确定位数的二进制数,并将该二进制数逆顺序排列,将得到的逆序二进制数作为该数据的解交织地址的列地址,并将该数据的行号直接作为该数据的解交织地址的行地址,因此不需要保存交织图样,避免了对保存的交织图样进行维护而造成的资源浪费。
另外,当接收到的数据包为非重传数据包时,其解速率匹配的过程与上述过程基本相同,只是进行解交织处理的数据不是HARQ合并后的数据,而是该数据包中的数据,并将该数据包中的数据作为该数据包对应的原始数据添加到保存的已接收数据中,这里就不再一一赘述。
图6为本发明实施例提供的解速率匹配的装置结构示意图,具体包括:
补空值NULL模块601,用于将接收到的数据包进行补空值NULL处理;
判断模块602,用于根据所述数据包的新数据标记NDI,判断所述数据包是否为重传数据包;
确定模块603,用于当确定所述数据包为重传数据包时,根据补NULL处理后的数据包中每个数据的行号和列号,确定补NULL处理后的每个数据对应的解交织地址;
混合自动重传请求HARQ合并模块604,用于当确定所述数据包为重传数据包时,在保存的已接收数据中,提取所述数据包对应的原始数据,将提取的所述原始数据与补NULL处理后的数据进行HARQ合并;
解交织模块605,用于将合并后的每个数据按照确定的对应解交织地址进行解交织处理,并将解交织处理后的数据输出。
所述HARQ合并模块还用于604,采用HARQ合并后的数据,对保存的已接收数据中所述数据包对应的原始数据进行更新。
所述确定模块还用于603,当确定所述数据包为非重传数据包时,根据补NULL处理后的数据包中每个数据的行号和列号,确定补NULL处理后的每个数据的解交织地址;
所述解交织模块还用于605,根据确定的对应解交织地址,对补NULL处理后的每个数据进行解交织处理,并将解交织处理后的数据输出。
所述HARQ合并模块还用于604,将补NULL处理后的数据作为所述数据包对应的原始数据,添加到保存的已接收数据中。
所述补NULL模块具体用于601,采用至少两个并行接口,接收发送端并行发送的数据包,并根据与所述发送端约定的算法,将接收到的并行发送的数据包进行级联,将级联后的数据包作为接收到的所述数据包。
所述确定模块具体用于603,根据补NULL处理后的数据的最大列号,确定列地址进行二进制数转换后的位数,针对补NULL处理后的数据包中每个数据,根据该数据的列号,将所述列号转换为对应所述位数的二进制数,对转换后的二进制数进行逆顺序排列,将得到的逆顺序排列后的二进制数作为该数据对应的解交织地址的列地址,并根据该数据的行号,将该行号作为该数据对应的解交织地址的行地址,将补NULL处理后的数据包中每个数据对应的解交织地址的行地址,以及解交织地址的列地址,作为确定的补NULL处理后的每个数据的解交织地址。
图7为本发明实施例提供的解速率匹配装置的具体实现结构示意图,具体包括:
乒乓寄存器701,用于采用至少两个并行接口接收发送端并行发送的数据包,并对接收到的数据包进行补NULL处理,其中,该乒乓寄存器701包括乒寄存器,清0模块和乓寄存器。
软比特累加器704,用于当判断该数据包为重传数据包时,通过HARQ缓存器703在第二代双倍速率同步动态随机存储器DDR2 RAM702中提取该数据包对应的原始数据,并将提取的原是数据与补NULL处理后的数据进行HARQ合并;或当判断该数据包为非重传数据包时,通过HARQ缓存器703,将补NULL处理后的数据作为该数据包对应的原始数据保存在DDR2 RAM702中。
DDR2 RAM702,用于保存该数据包的原始数据。
地址计算模块705,用于确定补NULL处理后的数据的解交织地址。
解交织缓存器706,用于根据确定的解交织地址,将接收到的待解交织数据进行解交织处理,其中,当该数据包为重传数据包时,该待解交织数据为进行HARQ合并后的数据,当该数据包为非重传数据包时,该待解交织数据为该数据包中的数据,该解交织缓存器706包括系统位缓存器,校验1缓存器和校验2缓存器。
本发明实施例提供一种解速率匹配的方法及装置,该方法将接收到的数据包进行补NULL处理,并当确定该数据包为重传数据包时,确定补NULL处理后的数据包中每个数据的解交织地址,将补NULL处理后的数据与提取的该数据包对应的原始数据进行HARQ合并,将合并后的数据按照确定的解交织地址进行解交织处理,以实现对速率匹配后的数据包进行解速率匹配。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。