交织方法及交织器的制造方法
【技术领域】
[0001 ]本发明设及通信技术领域,尤其设及一种交织方法及交织器。
【背景技术】
[0002] 在陆地移动通信运种变参信道上,比特差错经常是成串发生的。运是由于持续较 长的深衰落谷点会影响到相继一串的比特。然而,信道编码仅在检测和校正单个差错和不 太长的差错串时才有效。为了解决运一问题,需要找到把一条消息中的相继比特分散开的 方法,即将一条消息中的相继比特W非相继方式发送的方法。运样,在传输过程中即使发生 了成串差错,恢复成一条相继比特串的消息时,差错也就变成单个(或长度很短),运时再用 信道编码纠错功能纠正差错,恢复原消息。运种方法被称为交织技术。
[0003] 目前,长期演进化ong Term Evolution, LTE)协议中规定发送端采用"行写列读" 的信道交织方式;相应的,接收端采用"列写行读"的解交织方式。交织和解交织由交织器实 现。发送端和接收端的数据收发流程为:发送端将原始数据A按行填入交织矩阵,W列的形 式读出后得到交织数据,原始数据中相继比特在交织数据中位于非相继位置。发送端将交 织数据发送到接收端。接收端将交织数据按列写入交织矩阵,再按行读出实现交织数据的 解交织。
[0004] W发送端"行写列读"的交织方式为例,如图1所示,第一存储区域中按行顺序存储 有原始数据,原始数据对应一个M*N元素组成的交织矩阵;交织器从第一存储区中依次读取 每行中各个列对应的原始数据,并将读取的原始数据按照预设映射关系存储到交织器的交 织矩阵中,当交织矩阵被写满后,交织器按照列的顺序,依次读出每一列中的各个行对应的 元素,并将读出的元素存储到第二存储空间中。第二存储空间中的数据为交织得到的交织 数据,该交织数据用于发送到接收端进行解交织。接收端在接收到交织数据后,按照"列写 行读"的方式对交织数据进行解交织处理,按行读出的数据为解交织后得到的数据,如果传 输过程中没有出现差错,则解交织后的数据为原始数据。如果传输过程出现差错,则根据信 道编码进行纠错等后续操作。
[0005] 发明人发现,无论发送端和接收端在对交织矩阵进行读操作之前,均需要将交织 矩阵填满,即需要完成交织矩阵中全部交织单元的写操作。根据上述发送端的交织过程的 举例可知,进行交织时,所需要的存储空间为M*N,解交织过程同样需要M*N的存储空间。因 此,随着原始数据的数据量的增加,进行交织和解交织所需的存储空间也随之增加。如果原 始数据的大小超出交织器存储容量,则交织和解交织失败。为了能够成功实现交织和解交 织,需要使用更大存储容量的交织器,由此交织和解交织的成本也随之变大。
【发明内容】
[0006] 本发明提供一种交织方法及交织器,能够通过存储容量较小的交织器实现数据的 交织,降低交织成本。
[0007] 第一方面,本发明实施例提供一种交织方法,所述方法包括:获取待交织数据,并 按照预设规则对所述待交织数据进行二维序号映射,得到交织矩阵,所述交织矩阵中的每 个元素分别与所述待交织数据中的一个数据一一对应;将所述交织矩阵按行划分为至少两 个交织块;W交织块为单位,按照第一操作模式将每个交织块中的元素所对应的数据分别 写入交织存储器;和/或W交织块为单位,按照第二操作模式从交织存储器中读出交织块对 应的数据;其中,所述第一操作模式为行写模式,所述第二操作模式为列读模式;或所述第 一操作模式为列写模式,所述第二操作模式为行读模式。采用本发明实施例提供的交织方 法,将交织矩阵划分为多个交织块,各个交织块之间互相独立,W交织块为单位进行读操作 或写操作,本发明所需要的交织存储器的大小可W为一个交织块对应的数据所占用的大 小,因而能够减少所占用交织存储器的大小,进而降低交织成本。
[000引结合第一方面,在第一方面的第一种实现方式中,所述W交织块为单位,按照第一 操作模式将每个交织块中的元素所对应的数据分别写入交织存储器;和/或W交织块为单 位,按照第二操作模式从交织存储器中读出交织块对应的数据,具体包括:当按照第一操作 模式,将第一交织块对应的数据全部写入交织存储器中后,则按照第二操作模式,从交织存 储器中读出所述第一交织块对应的数据,同时将第二交织块对应的数据写入交织存储器 中。通过该实现方式,当完成一个交织块的写操作后则开始进行该交织块的读操作,同时对 另一个交织块开始进行写操作。与现有技术需要将所有待交织数据均写入交织存储器中后 方可启动读操作相比,本发明能够在完成一个交织块的写操作后,启动该交织块的读操作。 使得交织过程的读时延由写入所有待交织数据所需的时延,降低到写入一个交织块对应的 数据所需的时延。在不影响待交织数据写入速度的同时,降低读操作的时延,因而能够降低 数据进行交织的总时延。
[0009] 结合第一方面,在第一方面的第二种实现方式中,当所述第二操作模式为列读操 作模式时,所述W交织块为单位,从交织存储器中读出交织块对应的数据,包括:根据交织 块中每个元素的行号、列号、所述交织矩阵的总行数W及数据位宽的大小,确定每个元素对 应的数据的偏移地址;根据所述偏移地址和目标存储器的起始地址,确定每个元素对应的 数据在所述目标存储器中的目标存储地址;按照交织块的列顺序从交织存储器中依次读取 交织块中每个元素对应的数据并存储到目标存储器中对应的目标存储地址中。
[0010] 结合第一方面,在第一方面的第Ξ种实现方式中,当所述第一操作模式为列写操 作时,所述W交织块为单位,将交织块对应的数据写入交织存储器,具体包括:根据交织块 中每个元素的行号、列号、所述交织矩阵的总行数W及数据位宽的大小,确定每个元素对应 的数据的偏移地址;根据所述偏移地址和所述交织存储器的起始地址,确定每个元素对应 的数据在所述交织存储器中的目标存储地址;按照交织块的列顺序依次将每个元素对应的 数据写入到所述交织存储器中的目标存储地址。
[0011] 结合第一方面的第二种或第=种实现方式,在第一方面的第四种实现方式中,所 述根据交织块中每个元素的行号、列号、所述交织矩阵的总行数W及数据位宽的大小,确定 每个元素对应的数据的偏移地址,具体包括:根据所述交织矩阵的总行数和每个元素的列 号,确定列偏移;根据每个元素的行号,确定行偏移;根据所述列偏移、行偏移和数据位宽大 小,确定每个元素对应的数据的偏移地址。
[0012] 第二方面,本发明实施例提供了一种交织器,包括映射电路、写电路和/或读电路 W及交织存储器;其中:所述映射电路,用于获取待交织数据,并按照预设规则对所述待交 织数据进行二维序号映射,得到交织矩阵,所述交织矩阵中的每个元素分别与所述待交织 数据中的一个数据一一对应;将所述交织矩阵按行划分为至少两个交织块;所述写电路,用 于W交织块为单位,按照第一操作模式将每个交织块中的元素所对应的数据分别写入交织 存储器;所述读电路,用于W交织块为单位,按照第二操作模式从交织存储器中读出交织块 对应的数据;所述第一操作模式为行写操作模式,所述第二操作模式为列读操作模式;或所 述第一操作模式为列写操作模式,所述第二操作模式为行读操作模式。采用本发明实施例 提供的交织器,将交织矩阵划分为多个交织块,各个交织块之间互相独立,W交织块为单位 进行读操作或写操作,本发明所需要的交织存储器的大小可W为一个交织块对应的数据所 占用的大小,因而能够减少所占用交织存储器的大小,进而降低交织成本。
[0013] 结合第二方面,在第二方面的第一种实现方式中,所述交织器还包括计数器,用于 对写入所述交织存储器中的数据进行计数;所述读电路,具体用于当计数结果达到预设阔 值时,按照所述第二操作模式,从所述交织存储器中读出所述第一交织块对应的数据;所述 写电路,具体用于在所述读电路从所述交织存储器中读出所述第一交织块对应的数据的同 时,按照所述第一操作模式将第二交织块对应的数据写入所述交织存储器中。通过该实现 方式,当完成一个交织块的写操作后则开始进行该交织块的读操作,同时对另一个交织块 开始进行写操作。与现有技术需要将所有待交织数据均写入交织存储器中后方可启动读操 作相比,本发明能够在完成一个交织块的写操作后,启动该交织块的读操作。使得交织过程 的读时延由写入所有待交织数据所需的时延,降低到写入一个交织块对应的数据所需的时 延。在不影响待交织数据写入速度的同时,降低读操作的时延,因而能够降低数据进行交织 的总时延。
[0014] 结合第二方面,在第二方面的第二种实现方式中,所述交织器还包括地址生成电 路,用于根据交织块中每个元素的行号、列
号、所述交织矩阵的总行数W及数据位宽的大 小,确定每个元素对应的数据的偏移地址;根据所述偏移地址和目标存储器的起始地址,确 定每个元素对应的数据在所述目标存储器中的目标存储地址;所述读电路,具体用于按照 交织块的列顺序从交织存储器中依次读取每个元素对应的数据并存储到目标存储器中对 应的目标存储地址中。
[0015] 结合第二方面的第二种实现方式,在第二方面的第Ξ种实现方式中,所述地址生 成电路,具体还用于根据交织块中每个元素的行号、列号、所述交织矩阵的总行数W及数据 位宽的大小,确定每个元素对应的数据的偏移地址;根据所述偏移地址和所述交织存储器 的起始地址,确定每个元素对应的数据在所述交织存储器中的目标存储地址;所述写电路, 具体用于按照交织块的列顺序依次将每个元素对应的数据写入到所述交织存储器中的目 标存储地址。
[0016] 结合第二方面的第二种或第=种实现方式,在第二方面的第四种实现方式中,所 述地址生成电路,具体用于:根据所述交织矩阵的总行数和每个元素的列号,确定列偏移; 根据每个元素的行号,确定行偏移;根据所述列偏移、行偏移和数据位宽大小,确定每个元 素对应的数据的偏移地址。
[0017] 本发明实施例提供的交织器及交织方法,将待交织的数据进行二维映射得到交织 矩阵,交织矩阵中的每个元素对应待交织数据中的一个数据,再将交织矩阵划分为多个交 织块,在进行交织读写的过程中,各个交织块之间互相独立,实现W交织块为单位进行读操 作或写操作,与现有技术中,需要将整个交织矩阵为单位进行读写操作,所需要的交织存储 器的大小为待交织数据的整个大小相比,本发明所需要的交织存储器的大小可W为一个交 织块对应的数据所占用的大小,因而能够减少所占用交织存储的大小,进而降低交织成本。
【附图说明】
[0018] 此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019] 图1为现有技术中交织方法示意图;
[0020] 图2为本发明实施例提供的交织器的示意图;
[0021 ]图3为本发明实施例提供的交织方法的示意图;
[0022] 图4为本发明实施例提供的一种按行划分交织矩阵的示意图;
[0023] 图5为本发明实施例提供的交织存储器中RAM内的数据排列的示意图;
[0024] 图6为本发明实施例提供的另一种交织器的示意图;
[0025] 图7为本发明实施例提供的在行写列读模式下,确定交织矩阵中的元素对应的数 据在交织存储器的物理地址的示意图;
[0026] 图8为本发明实施例提供的采用行写列读的操作模式时的交织过程的示意图;
[0027] 图9为当待交织的数据为两层码字时,本发明实施例提供的交织方法的示意图;
[0028] 图10为当待交织的数据为两层码字时,交织存储器器中数据存储的一种示意图;
[0029] 图11为当待交织的数据为两层码字时,交织存储器器中数据存储的另一种示意 图;
[0030] 图12为本发明实施例提供的每个时钟周期写两个数据的示意图;
[0031] 图13为本发明实施例提供的每个时钟周期读两个数据的示意图。
【具体实施方式】
[0032] 下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的 实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。
[0033] 本发明实施例提供了一种交织器,如图2所示,包括:映射电路101、写电路102、读 电路103W及交织存储器104。其中,映射电路101,用于将待交织数据进行二维序号映射得 到交织矩阵,使得待交织数据中的每个数据都与交织矩阵中的一个元素对应。写电路102, 用于将待交织数据按照一定的规则写入交织存储器中。读电路103,用于按照一定的规则从 交织存储器104中读取数据。交织存储器104为存储器,用于在交织的过程中存储数据,其一 般包括一个或多个RAM。
[0034] -般而言,待交织数据存储在双倍速率同步动态随机存储器中,本发明实施例称 之为DDR0;进行交织后的数据同样存储在双倍速率同步动态随机存储器中,本发明实施例 称之为DDR1。为了保证交织器与DDR0、交织器与DDR1的读写速度保持平衡,如图2所示,写电 路102具体包括总线(BUS)O和串并转换电路。读电路103包括总线(BUS)l和串并转换电路。 其中,串并转换器用于根据读写速度的需求,对数据的读写处理方式(即串行或并行)进行 调整。总线用于配合交织矩阵的读写装置进行输入和输出,总线可W选择如LMI等总线。上 述DDRO和DDR1也可W用同一块缓存中的不同地址段进行替换。
[0035] 利用本发明实施例提供的上述交织器,本发明实施例提供了一种交织方法,如图3 所示,包括:
[0036] 201:映射电路获取待交织数据,并按照预设规则对所述待交织数据进行二维序号 映射,得到交织矩阵。
[0037] 其中,交织矩阵为由Μ行N列组成的矩阵,所述交织矩阵中的每个元素分别与所述 待交织数据中的一个数据一一对应。
[0038] 实际应用中,待交织数据包括多个按照顺序排列的数据,例如:待交织数据可W是 一列或者一行数据,运些数据之间存在先后关系,是一维排布的,但并不存在二维序号,运 里所指的二维序号包括行号和列号。本步骤所指的二维序号映射是指将待交织数据中的各 个数据按照一定的规则进行序号映射,使每个数据对应一个二维序号。具体地说,本发明实 施例采用交织矩阵的交织方式,则在进行二维序号映射的过程中,根据交织矩阵的行列数 目,将待交织数据中的各个数据依次进行二维序号映射,得到每个数据在二维交织矩阵中 对应的一个二维序号。例如:待交织数据中包括数据a、b、C、d、e和f运样6个数据,则将运6个 数据进行二维映射后,可得到数据a对应的二维序号(1,1),数据b对应的二维序号(1,2),数 据C对应的二维序号(1,3),数据d对应的二维序号(2,1),数据e对应的二维序号(2,2),W及 数据f对应的二维序号(2,3)。
[0039] 需要说明的是,上述二维序号映射仅仅为按照一定的规则赋予待交织数据中的每 个原始数据一个二维序号的过程,并不是将实际的待交织数据"搬移"到交织矩阵中。
[0040] 202:映射电路将所述交织矩阵按行划分为至少两个交织块。
[0041] 在进行数据交织前,本发明实施例首先W行为单位对交织矩阵进行划分,得到至 少两个交织块,每个交织块至少包括一行,每个交织块中所包含的列数与交织矩阵的列数 相同。
[0042] 在进行交织块划分的一种实现方式中,W预设行数对交织块进行划分,预设行数 是一个固定值,各个交织块的大小相同。但是,如果交织矩阵剩余(未被划分为交织块)的行 数小于预设行数时,将交织矩阵剩余的部分确定为最后一个交织块。
[0043] 例如:如图4所示,对于一个20*12的交织矩阵,如果预设行数为6,则第一个交织块 由第1行至第6行组成,第二个交织块由第7行至第12行组成,第Ξ个交织块由第13行至第18 行组成。此时剩余的行数为2,小于预设行数6,因此将剩余的最后两行确定为第四个交织 块。
[0044] 203:写电路,W交织块为单位,按照第一操作模式将每个交织块中的元素所对应 的数据分别写入交织存储器。
[0045] 204:读电路,W交织块为单位,按照第二操作模式从交织存储器中读出交织块对 应的数据。
[0046] 其中,交织存储器的物理实体由一个或多个RAM组成,每块RAM包括1个读口和1个 写口,读口和写口在同一时间可访问RAM的任意1个地址,但在同一时间周期,读/写口不能 访问相同地址,否则就是读写冲突。
[0047] 为了确保在交织读/写的过程中,RAM的读写端口不会发生冲突,RAM内的数据需要 按特定格式存放。示例性的,当交织存储器中由4块RAM构成时,RAM内的数据一种排放方式 如图5所示。此外,交织器也可采用其他的方式进行数据存储,具体方式可根据交织器的实 际结构进行确定,只要能够在相应位置能够找到元素即可。
[0048] 其中,在步骤203或步骤204中,所述第一操作模式为行写模式,所述第二操作
模式 为列读模式;或所述第一操作模式为列写模式,所述第二操作模式为行读模式。
[0049] 在步骤203和步骤204的具体实现方式中,各个交织块之间互相独立,因而对某个 交织块的读写操作并不影响对其他交织块的读写操作。
[0050] 为了尽快启动读操作,在一种可选方式中,当按照第一操作模式,将第一交织块对 应的数据全部写入交织存储器中后,则按照第二操作模式,从交织存储器中读出所述第一 交织块对应的数据,同时将第二交织块对应的数据写入交织存储器中。其中,所指的第一交 织块和第二交织块仅仅是为了便于表述,并不指代先后顺序。第一交织块和第二交织块均 可W为交织矩阵中的任意交织块。例如:当按照第一操作模式,将交织块1对应的数据全部 写入交织存储器后,交织块3对应的数据尚未写入交织存储器中,则按照第二操作模式,将 交织块1对应的数据从交织存储器中读出,在进行读操作的同时,将交织块3对应的数据写 入交织存储器中。
[0051] 在该实现方式中,判断是否将某个交织块中的数据全部写入交织存储器中时,可 判断写入交织存储器的数据的数量,当写入交织存储器的数据的数量达到一个交织块中所 包含的元素的总数量时,可认为完成对一个交织块的写操作。同理,在判断是否将某个交织 块中的数据全部从交织存储器中读出时,也可通过判断从交织存储器读出的数据的数量是 否为交织块中包含的元素的总个数来判断。
[0052] 通过该实现方式,当完成一个交织块的写操作后则开始进行读操作,同时对另一 个交织块对应的数据开始写操作。与现有技术需要将所有待交织数据均写入交织存储器中 后方可启动读操作相比,本发明能够在完成一个交织块对应的数据的写操作后,启动该交 织块对应的数据的读操作。使得交织过程的读时延由写入所有待交织数据所需的时延,降 低到写入一个交织块对应的数据所需的时延。在不影响待交织数据写入速度的同时,降低 读操作的时延,因而能够降低数据进行交织的总时延。
[0053] 为了加快交织过程中的读写效率,在另一种可选方式中,可W对多个交织块对应 的数据同时进行写操作,也可W对多个交织块对应的数据同时进行读操作。
[0054] 上述两种可选方式可W结合运用,例如:在进行写操作时,同时将3个交织块对应 的数据写入交织存储器中;在完成运3个交织块的写操作后,将运3个交织块对应的数据从 交织存储器中读出,同时对其他多个交织块对应的数据进行写操作。
[0055] 下面将第一操作模式为行写操作模式,第二操作模式为列读操作模式;W及将第 一操作模式为列写操作模式,第二操作模式为行读操作模式分成两种情况进行说明。
[0056] 第一种情况:当第一操作模式为行写操作模式,第二操作模式为列读操作模式时, 在步骤203的具体实现过程中,按照交织块中的行顺序,依次将每个元素对应的数据写入交 织存储器中。示例性的,结合图4所示的交织矩阵W及交织块的划分,在对第1个交织块进行 写操作的过程中,依次将^(0,1)、^(0,2)直至^(0,11)对应的数据写入到交织存储器中;然 后再依次将^(1,1)、^(1,2)直至^(1,11)对应的数据写入到交织存储器中。运样顺序写完交 织块1的每一行对应的数据,直至将x(5,11)对应的数据写入交织存储器中,运样就算完成 交织块1的写操作过程。
[0057] 本发明中由于将交织矩阵按行划分成了多个交织块,将待交织数据进行"行写"的 时候可按顺序依次对每个交织块进行写入,但每次"列读"并写入目标存储器时,需要对目 标存储器的写入地址进行偏移,确保多个交织块对应的数据全部"行写列读"完毕后,在目 标存储器中的数据顺序与整个交织矩阵对应的数据进行"行写列读"后的顺序一致。因此, 相对于现有技术中"列读"后顺序写入目标存储器的处理方式相比,本发明在"列读"后需要 计算每个数据在目标存储器中的偏移地址。基于计算偏移地址的需要,如图6所示,本发明 实施例提供的交织器还包括地址生成电路301,用于在写操作时,确定每个元素对应的数据 在交织存储器中的实际物理地址,W便于将数据写入到交织存储器中的相应物理地址中; 在读操作时,确定每个元素对应的数据在交织存储器中的实际物理地址,W便于将相应物 理地址的数据从交织存储器中读出。
[0058] 因此,在步骤204的具体实现过程中,地址生成电路301根据交织块中每个元素的 二维序号确定待交织数据中每个数据在交织存储器的具体实现过程,如图7所示,包括:
[0059] 401:根据交织块中每个元素的行号、列号、所述交织矩阵的总行数W及数据位宽 的大小,确定每个元素对应的数据的偏移地址。
[0060] 在本步骤的具体实现过程中,可根据所述交织矩阵的总行数和每个元素的列号, 确定列偏移;根据每个元素的行号确定行偏移;根据所述列偏移、行偏移和数据位宽大小, 确定每个元素对应的数据的偏移地址。
[0061] 具体而言,元素所在列的偏移ld_column_offset =交织矩阵总行数*元素所在的 列号。
[0062] 元素在列中行的偏移ld_;row_offset =元素所在的行号。
[0063] 元素对应的数据的偏移地址ld_off set= (ld_column_offset+ld_;row_offset)* a,其中a为元素对应的数据大小。
[0064] 示例性的,在上述20*12的交织矩阵的列读过程中,位于第二行第Ξ列的元素 A(l, 2),其ld_column_offset = 20巧 = 40,ld_;row_offset = l,其在目标存储器中的总偏移为40 + 1 = 41,当每个元素所对应的数据大小为32位(bit)也即4字节(byte)时,则元素 a对应的数 据在目标存储器中对应的偏移地址为(40+1 )*4 = 164字节。
[0065] 402:根据所述偏移地址和目标存储器的起始地址,确定每个元素对应的数据在所 述目标存储器中的目标存储地址。
[0066] 其中,列读后的数据在目标存储器中的起始地址设为ld_mat;rix_base。
[0067] 将列读后的数据在目标存储器中的起始地址ld_ma化ix_base加上步骤401得到的 每个元素对应的数据在目标存储器中对应的偏移地址ld_off set,得到每个元素对应的数 据在目标存储器中对应的目标存储地址IcLacMr。
[0068] 需要说明的是,上述计算公式中之所W包含乘W4,是因为每个元素对应的数据大 小为32位(bit)。由于目标存储器中的地址为1字节(b^e,A^e = 8bit)地址,因此每个元 素占用的byte地址数量为4个byte地址。在实际应用中,由于采用的调制方式不同,每个元 素对应的数据位宽也不一定为32位,例如:采用64QAM时,每个元素对应的数据大小为48位 也即6字节,相应的此时应该是乘W6,而不应该乘W4。
[0069] 在确定了交织块中每个元素对应的数据在目标存储器中物理地址后,读电路按照 交织块的列顺序依次将每个元素对应的数据写入到所述目标存储器中的相应存储地址。示 例性的,依次读取^(0,0)、^(1,0)直至^(5,0)对应的数据,然后需要读取的是^(0,1)对应的 数据,而并非x(6,0)对应的数据并存储到目标存储器中的相应存储地址中。
[0070] 第二种情况:当所述第一操作模式为列写操作模式,所述第二操作模式为行读操 作模式时,在步骤203的具体实现过程中,也即在进行列写操作时,同样需要确定交织块中 每个元素对应的数据在交织存储器中的物理地址,然后按照交织块的列顺序依次将每个元 素对应的数据写入到所述交织存储器中的相应存储地址。地址生成电路301根据交织块中 每个元素的二维序号确定待交织数据中每个数据在交织存储器的存储地址的具体实现过 程,包括下述步骤:
[0071] 步骤1:根据交织块中每个元素的行号、列号、所述交织矩阵的总行数W及数据位 宽的大小,确定每个元素对应的数据的偏移地址。
[0072] 在步骤1的具体实现过程中,元素对应的数据在交织存储器中的列偏移lx_ CO lumn_of f set =交织矩阵的总行数*元素所在的列号。
[0073] 元素对应的数据在交织存储器中的行偏移lx_;row_offset =元素所在的行号。
[0074] 元素对应的数据在交织存储器中对应的偏移地址lx_of f set = (lx_column_ offset+lx_;row_offset)柄,其中a为元素
的数据大小。
[0075] 示例性的:在上述20*12的交织矩阵的列写过程中,位于第二行第Ξ列的元素 A(l, 2),其对应的lx_col皿n_offset = 20巧 = 40,lx_row_offset = l,当待交织数据中每个数据 的大小为32位时,元素对应的数据在交织存储器中的偏移地址为(40+1 )*4 = 164字节。
[0076] 步骤2:根据所述偏移地址和所述交织存储器的起始地址,确定每个元素对应的数 据在所述交织存储器中的目标存储地址。
[0077] 假设交织存储器的起始地址为lx_ma化ix_base,则将交织存储器的起始地址lx_ mat;rix_base加上步骤1得到的偏移地址lx_offset,得到每个元素对应的数据在交织存储 器中对应的目标存储地址lx_acM;r。
[0078] 在确定了交织块中每个元素对应的数据在交织存储器中的目标存储地址后,写电 路按照交织块的列的顺序依次将每个元素对应的数据存入所述交织存储器中。示例性的, 依次将交织矩阵中义(0,0)、义(1,0)、义(2,0)、义(3,0)、义(4,0)、义(5,0)对应的数据存储到交织 存储器中;然后再接着将义(〇,1)、义(1,1)、义(2,1)、义(3,1)直至将义(5,11)对应的数据写入交 织存储器中,运样就算完成了对第1个交织块的写操作。
[0079] 在进行行读操作时,也即步骤204的具体实现过程中,读电路按照交织块的行顺序 依次将每个元素对应的数据从交织存储器中读出。示例性的,结合图4所示的交织矩阵W及 交织块的划分,在对第一个交织块进行行读操作的过程中,依次读取χ(0,0)、χ(0,l)直至χ (〇,11)对应的数据;然后再依次读取^(1,〇)、^(1,1)直至^(1,11)对应的数据。运样顺序读 完交织块1的每一行元素对应的数据,直至读取到χ(5,11)对应的数据,运样就算完成交织 块1的读操作过程。
[0080] 本发明实施例提供的交织器及交织方法,将待交织的数据进行二维映射得到交织 矩阵,交织矩阵中的每个元素对应待交织数据中的一个数据,再将交织矩阵划分为多个交 织块,在进行交织读写的过程中,各个交织块之间互相独立,实现W交织块为单位进行读操 作或写操作,与现有技术中,需要将整个交织矩阵为单位进行读写操作,所需要的交织存储 器的大小为待交织数据的整个大小相比,本发明所需要的交织存储器的大小可w为一个交 织块对应的数据所占用的大小,因而能够减少所占用交织存储的大小,降低交织成本。
[0081] 在本发明实施例的具体实现过程中,采用两个交织块进行流水处理,便可W完成 所有待交织数据的交织,同时降低交织过程的总时延。也即,在对第一交织块进行写操作的 同时,对第二交织块进行读操作;当第一交织块完成写操作后,对第一交织块进行读操作, 同时对第二交织块进行写操作。而现有技术中,在进行交织过程中,进行交织所需要的存储 空间与待交织的数据大小相同,因此,随着原始数据的数据量的增加,进行交织所需的存储 空间也随之增加,由此数据交织的成本也随之变大。而本发明相对于现有技术,一方面能够 使用较少的存储开销实现任意大小的待交织数据的交织,提高资源利用率,降低交织成本; 另一方面还能够使得交织过程的时延由写入所有待交织数据所需的时延,降低到写入一个 交织块对应的数据所需的时延。在不影响待交织数据写入速度的同时,降低读操作的时延, 因而能够降低数据进行交织的总时延。
[0082] 为了对本发明的有益效果进行更加清楚的解释,W-个LTE中满规格的传输码块 为例,当采用64QAM(Qua化ature AmpliUide Modulation,相正交振幅调制)的编码方式时, 采用现有技术进行交织/解交织的数据量为110资源块(Resource Block,RB)*12行*12列巧 层*48位(考虑流水处理提高调度效率,一般按2倍数据量预留存储空间),采用本发明的方 法所需的存储空间为10RB*12行*12列*2层*48位巧即可实现,现有技术与本发明所需的存 储容量、处理时间、启动时延对比如下表表一所示:
[0083] 表一
[0084]
[0085] ~由上述表一可W看出,本发明能够大大减少进行交织所需的存储空间、处理时间' W及启动时延。
[0086] 为了对本发明实施例提供的交织方法进行清楚的解释和说明,W第一操作模式为 行写操作,第二操作模式为列读操作为例,进行说明。如图8所示,待交织数据W-维数据序 列X化)的形式存储在存储器DDR0中,将X化)按照预设规则进行映射后,得到每个数据对应 的一个二维序号x(r,c);其中,r表示行号,C表示列号。待交织数据中的所有数据对应的二 维序号形成二维序号映射表。在二维序号映射表中,r表示行号,C表示列号。W交织块1为 例,在进行写操作时,地址生成电路根据二维序号映射表生成二维序号映射表中每个元素 对应的数据在交织存储器中的实际存储地址;然后通过写电路中的总线(BUS)OW及串并转 换电路,按照交织块的行顺序,也即按照x(l,l)、x(l,2)、x(l,3)、x(l,4)、x(2,l)、x(2,2)、x (2,3)、义(2,4)、义(3,1)、义(3,2)、义(3,3)、义(3,4)的顺序依次将每个元素对应的数据写入交 织存储器中。在进行列读操作时,地址生成电路确定交织块中每个元素对应的数据在交织 存储器中的实际存储地址,然后按照交织块中列的顺序,通过读电路中的总线(BUSHW及 串并转换电路依次将交织块中每个元素对应的数据从交织存储器中读出并存储到存储器 DDR1中,也即按照x(l,l)、x(2,l)、x(3,l)、x(l,2)、x(2,2)、x(3,2)、x(l,3)、x(2,3)、x(3, 3)、x(l,4)、x(2,4)、x(3,4)的顺序依次将每个元素对应的数据从交织存储器中读出。
[0087] 此外,现有协议中设及多层的概念,相应的交织矩阵中存储的元素对应的数据内 容为单层码字对应的数据或多层码字对应的数据。上述实施例中给出了数据内容为单层码 子对应的数据时的交织过程。对于多层码字,例如:共有P层,则本发明实施例还提供了的交 织方法,则在交织过程中,同时完成分层映射功能。如图9所示为包含两层码字的待交织数 据的行写列读的过程,其中,"行写"顺序为:首先按行分别写入第一列第一层直至第P层(图 10中示出的P为2),第二列第一层直至第P层,第N列第一层直至第P层,W此类推,最后写入 第Μ行第一列第一层,第二列第一层直至第P层,第N列第一层直至第P层。读出时,多层数据 之间独立处理(可认为每层数据的行列序号构成为一个独立的交织块,多层数据对应的行 列序号相同),先将第一层的全部数据按列读出,然后将第二层的全部数据按列读出,W此 类推直至第Ρ层的全部数据按列读出。
[0088] 当待交织数据为多层码字时,交织器中存储数据的方式如图10所示,RAM0存储偶 数层的偶数行中的数据、RAM1存储奇数层的偶数行的数据,RAM2存储偶数行的奇数行的数 据,RAM3存储奇数层的奇数行的数据。再例如,在复用于LTE Relay PDSCH信道的发送端时, 交织器中数据的具体存储如图11所示,RAM0存储偶数层的偶数行的数据,RAM1存储奇数层 的偶数行的数据,RAM2存储偶数层的奇数行的数据,RAM3存储奇数层的奇数行的数据。交织 器也可采用其他的方式对交织矩阵进行存储,具体方式可根据交织器的实际结构进行确 定,只要能够在相应位置能够找到元素即可。
[0089] 下面W图11所示的对应关系为例,对多层元素的偏移地址的计算进行描述,同理 可推导出其他对应关系下的计算公式,此处不再寶述。
[0090] 每个元素对应的数据在目标存储器中对应的偏移地址为多层的元素对应的数据 所在列的偏移地址和多层的元素对应的数据在列中的行偏移地址的和。
[0091] 多层的元素所在列的偏移ld_colu皿_offset'=交织矩阵总行数*元素所在的列 号。
[0092] 多层的元素在列中的行偏移ld_;row_offset' =元素所在的行号。
[0093] 多层元素的偏移地址ld_offset' = (ld_column_offset'+ld_column_offset')* 曰ο
[0094] 将列读出的数据在目标存储器中的起始地址1 d_ma t r i x_b a s e加上元素对应的数 据在目标存储器中对应的偏移地址ld_off set',得到多层的元素对
应的数据在目标存储器 中对应的存储地址ld_acMr'。
[0095] 由于在实际应用中,分层映射W后,多层之间一般独立存储,因而对于不同层,其 在目标存储器中的起始地址并不相同。W层0和层1为例,其在目标存储器中的起始地址分 風I 为ld_matrix_layerO_base和ld_matrix_layerl_base。
[0096] 如果交织矩阵的大小为20*12*2层,位于第二行第Ξ列的元素 A(l,2),对应层0和 层1两个数据,其偏移地址计算方式相同,其中ld_column_off set ' = 20*2 = 40,ld_;row_ off set ' = 1,当每个元素中对应的数据大小为32位时,其在目标存储器中对应的偏移地址 均为41*4 = 164字节。
[0097] 本发明实施例提供的交织方法,能够对多层数据进行交织,降低多层数据的数据 交织成本。
[0098] 本发明实施例还提供了一种交织方法,作为对上述实施例的进一步说明,该方法 中,当对交织块进行写操作时,每次对交织块中的预设数量的元素对应的数据写入交织存 储器中;当对交织块进行读操作时,每次将交织块中的所述预设数量的元素对应的数据读 出到目标存储器中。
[0099] 其中,预设数量大于1。能够对交织存储器中存储的数据同时进行写操作和读操 作。作为一个可选的方案,在进行写操作时,每次将两个数据写入到交织存储器中;在进行 读操作时,每次将两个数据从交织存储器中读出。
[0100] 示例性的,如图12所示,第一个时钟周期将数据x0、xl,分别写入RAM0、RAM1的地址 0;第二个时钟周期将数据x2、x3,分别写入RAM0、RAM1的地址1,W此类推。
[0101 ]同理,如图13所示,在进行读操作时,第一个时钟周期读取RAM0、RAM2的地址0;第 二个时钟周期读取RAM0、RAM2的地址6,W此类推。
[0102] 本发明实施例中采用上述并行读写的方法,每次写入和读出的数据的个数相同, 能够实现写入和读出速率的平衡,提高交织块的读写效率。
[0103] W上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明掲露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。
【主权项】
1. 一种交织方法,其特征在于,所述方法包括: 获取待交织数据,并按照预设规则对所述待交织数据进行二维序号映射,得到交织矩 阵,所述交织矩阵中的每个元素分别与所述待交织数据中的一个数据一一对应; 将所述交织矩阵按行划分为至少两个交织块; 以交织块为单位,按照第一操作模式将每个交织块中的元素所对应的数据分别写入交 织存储器; 和/或 以交织块为单位,按照第二操作模式从交织存储器中读出交织块对应的数据; 其中,所述第一操作模式为行写模式,所述第二操作模式为列读模式;或所述第一操作 模式为列写模式,所述第二操作模式为行读模式。2. 根据权利要求1所述的方法,其特征在于,所述以交织块为单位,按照第一操作模式 将每个交织块中的元素所对应的数据分别写入交织存储器;和/或以交织块为单位,按照第 二操作模式从交织存储器中读出交织块对应的数据,具体包括: 当按照第一操作模式,将第一交织块对应的数据全部写入交织存储器中后,则按照第 二操作模式,从交织存储器中读出所述第一交织块对应的数据,同时将第二交织块对应的 数据写入交织存储器中。3. 根据权利要求1所述的方法,其特征在于,当所述第二操作模式为列读操作模式时, 所述以交织块为单位,从交织存储器中读出交织块对应的数据,包括: 根据交织块中每个元素的行号、列号、所述交织矩阵的总行数以及数据位宽的大小,确 定每个元素对应的数据的偏移地址; 根据所述偏移地址和目标存储器的起始地址,确定每个元素对应的数据在所述目标存 储器中的目标存储地址; 按照交织块的列顺序从交织存储器中依次读取交织块中每个元素对应的数据并存储 到目标存储器中对应的目标存储地址中。4. 根据权利要求1所述的方法,其特征在于,当所述第一操作模式为列写操作时,所述 以交织块为单位,将交织块对应的数据写入交织存储器,具体包括: 根据交织块中每个元素的行号、列号、所述交织矩阵的总行数以及数据位宽的大小,确 定每个元素对应的数据的偏移地址; 根据所述偏移地址和所述交织存储器的起始地址,确定每个元素对应的数据在所述交 织存储器中的目标存储地址; 按照交织块的列顺序依次将每个元素对应的数据写入到所述交织存储器中的目标存 储地址。5. 根据权利要求3或4所述的方法,其特征在于,所述根据交织块中每个元素的行号、列 号、所述交织矩阵的总行数以及数据位宽的大小,确定每个元素对应的数据的偏移地址,具 体包括: 根据所述交织矩阵的总行数和每个元素的列号,确定列偏移; 根据每个元素的行号,确定行偏移; 根据所述列偏移、行偏移和数据位宽大小,确定每个元素对应的数据的偏移地址。6. -种交织器,其特征在于,包括映射电路、写电路和/或读电路以及交织存储器;其 中: 所述映射电路,用于获取待交织数据,并按照预设规则对所述待交织数据进行二维序 号映射,得到交织矩阵,所述交织矩阵中的每个元素分别与所述待交织数据中的一个数据 --对应; 将所述交织矩阵按行划分为至少两个交织块; 所述写电路,用于以交织块为单位,按照第一操作模式将每个交织块中的元素所对应 的数据分别写入交织存储器; 所述读电路,用于以交织块为单位,按照第二操作模式从交织存储器中读出交织块对 应的数据; 所述第一操作模式为行写操作模式,所述第二操作模式为列读操作模式; 或 所述第一操作模式为列写操作模式,所述第二操作模式为行读操作模式。7. 根据权利要求6所述的交织器,其特征在于, 所述交织器还包括计数器,用于对写入所述交织存储器中的数据进行计数; 所述读电路,具体用于当计数结果达到预设阈值时,按照所述第二操作模式,从所述交 织存储器中读出所述第一交织块对应的数据; 所述写电路,具体用于在所述读电路从所述交织存储器中读出所述第一交织块对应的 数据的同时,按照所述第一操作模式将第二交织块对应的数据写入所述交织存储器中。8. 根据权利要求6所述的交织器,其特征在于, 所述交织器还包括地址生成电路,用于根据交织块中每个元素的行号、列号、所述交织 矩阵的总行数以及数据位宽的大小,确定每个元素对应的数据的偏移地址; 根据所述偏移地址和目标存储器的起始地址,确定每个元素对应的数据在所述目标存 储器中的目标存储地址; 所述读电路,具体用于按照交织块的列顺序从交织存储器中依次读取每个元素对应的 数据并存储到目标存储器中对应的目标存储地址中。9. 根据权利要求8所述的交织器,其特征在于, 所述地址生成电路,具体还用于根据交织块中每个元素的行号、列号、所述交织矩阵的 总行数以及数据位宽的大小,确定每个元素对应的数据的偏移地址; 根据所述偏移地址和所述交织存储器的起始地址,确定每个元素对应的数据在所述交 织存储器中的目标存储地址; 所述写电路,具体用于按照交织块的列顺序依次将每个元素对应的数据写入到所述交 织存储器中的目标存储地址。10. 根据权利要求8或9所述的交织器,其特征在于, 所述地址生成电路,具体用于: 根据所述交织矩阵的总行数和每个元素的列号,确定列偏移; 根据每个元素的行号,确定行偏移; 根据所述列偏移、行偏移和数据位宽大小,确定每个元素对应的数据的偏移地址。
【专利摘要】本发明公开了一种交织方法及交织器,涉及通信技术领域,解决现有的占用的交织存储器的空间较大,交织成本较高的问题。所述方法包括:获取待交织数据,并按照预设规则对所述待交织数据进行二维序号映射,得到交织矩阵,交织矩阵中的每个元素分别与待交织数据中的一个数据一一对应;将交织矩阵按行划分为至少两个交织块;以交织块为单位,按照第一操作模式将每个交织块中的元素所对应的数据分别写入交织存储器;以交织块为单位,按照第二操作模式从交织存储器中读出交织块对应的数据;其中,第一操作模式为行写模式,第二操作模式为列读模式;或第一操作模式为列写模式,第二操作模式为行读模式。本发明主要用于对数据进行交织和解交织。
【IPC分类】H04L1/00
【公开号】CN105490776
【申请号】CN201510849339
【发明人】沈寅涛
【申请人】华为技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月26日