CN108023599A - 一种用于Turbo译码的数据存储方法及装置 - Google Patents
一种用于Turbo译码的数据存储方法及装置 Download PDFInfo
- Publication number
- CN108023599A CN108023599A CN201610962594.3A CN201610962594A CN108023599A CN 108023599 A CN108023599 A CN 108023599A CN 201610962594 A CN201610962594 A CN 201610962594A CN 108023599 A CN108023599 A CN 108023599A
- Authority
- CN
- China
- Prior art keywords
- external information
- pending
- iteration
- memory
- iteration renewal
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Error Detection And Correction (AREA)
Abstract
一种用于Turbo译码的数据存储方法及装置,所述方法包括如下步骤:获取至少一个待处理外信息;采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。通过本发明提供的技术方案,能够在不需要过多数量的数据缓冲器的基础上,实现一次存取多笔经过交织、解交织的外信息的技术需求,有利于芯片的小型化设计,能够进一步提高Turbo译码器的数据处理能力以及数据处理速度。
Description
技术领域
本发明涉及通信领域,具体地涉及一种用于Turbo译码的数据存储方法及装置。
背景技术
现有的Turbo译码器在对外信息进行译码处理时,需要根据宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)的规范规定来涉及译码逻辑,当Turbo译码器中的数据传输速度较慢时,所述Turbo译码器中的软输入软输出(soft inputsoft output,简称SISO)译码器一次只需处理一个信息,在对这个信息进行交织处理时只需存到一个数据缓冲器(buffer),例如,静态随机存取存储器(Static Random AccessMemory,简称SRAM),所述Turbo译码器在一个时钟周期(clock cycle,以下简称周期)内只需存储一个外信息,此时不论是交织还是解交织的情形均不会出现数据读取冲突。
但是,随着通信技术的高速发展,Turbo译码器中的数据传输速度也不断加快,使得Turbo译码器在对外信息进行译码处理时,可能出现需要同时在一个数据缓冲器中存取多笔经过交织、解交织的外信息。例如,需要在一个周期内同时存取两个外信息,此时若处于交织处理阶段则不会产生不良影响,但若此时处于解交织处理阶段就会导致同一个SRAM中的数据读取冲突。
现有的比较通用的做法是增加数据缓冲器的数量,通过多份(duplicate)数据缓冲器的方式来解决从单个数据缓冲器中同时存取多个外信息时可能产生的数据冲突问题,但是,这样的方案会导致必须在Turbo译码器中布置大量的数据缓冲器,不利于芯片的小型化设计需求。
在现阶段,大多数情况下,设计者大多采用增加数据缓冲器数量的方法来解决同时存取多个外信息时可能产生的数据冲突问题。但是,这样的方案不利于芯片的小型化设计,不利于进一步提高Turbo译码器的数据处理能力以及数据处理速度。
发明内容
本发明解决的技术问题是现有的Turbo译码器只能通过增加数据缓冲器数量的方式来避免同时存取多个外信息时可能发生的数据冲突问题,不利于芯片的小型化设计,限制了Turbo译码器的数据处理能力以及数据处理速度的进一步提高。
为解决上述技术问题,本发明实施例提供一种用于Turbo译码的数据存储方法,包括如下步骤:获取至少一个待处理外信息;采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。
可选的,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器中,每次获取外信息时,从每一外信息存储器中获取一个待处理外信息,所述多个外信息存储器设置于一个或多个数据缓冲器中。
可选的,所述外信息存储器的数量大于等于所述预设阈值。
可选的,所述采用先进先出的方式对所述至少一个待处理外信息进行缓存的步骤是基于FIFO存储器实现的。
可选的,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息,包括如下步骤:分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置;对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。
可选的,在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,还包括如下步骤:移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。
可选的,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息包括:根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器。
可选的,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息包括如下步骤:将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中;采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量;将缓存输出的迭代更新外信息存储至所述多个外信息存储器。
本发明实施例还提供一种用于Turbo译码的数据存储装置,包括:外信息获取模块,用于获取至少一个待处理外信息;第一FIFO存储器,用于采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;译码器,用于对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;外信息存储模块,用于根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。
可选的,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器中,每次获取外信息时,从每一外信息存储器中获取一个待处理外信息,所述多个外信息存储器设置于一个或多个数据缓冲器中。
可选的,所述外信息存储器的数量大于等于所述预设阈值。
可选的,所述外信息存储模块包括:初始存储位置获取子模块,用于分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置;存储子模块,对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。
可选的,所述数据存储装置还包括:虚比特移除模块,用于在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。
可选的,所述外信息存储模块包括:第一外信息存储子模块,用于根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器。
可选的,所述外信息存储模块包括:虚比特添加模块,用于将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中;第二FIFO存储器,用于采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量;第二外信息缓存子模块,用于将缓存输出的迭代更新外信息存储至所述多个外信息存储器。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
采用先进先出的方式对获取的至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值,然后对所述缓存后输出的待处理外信息进行Turbo译码以获得带存储外信息,其中,单次Turbo译码输入的外信息的数量等于所述预设阈值,最终根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。与现有技术简单增加数据缓冲器的数量的技术方案相比,能够在不需要多份数据缓冲器的基础上,在数据输入端与输出端之间采用先进先出的方式进行数据缓存,使得到达译码器的外信息数量等于译码器单次译码需要存储的外信息数量,从而在同样解决Turbo译码器同时读取多个外信息时可能出现的数据冲突问题的基础上,更能够减小芯片体积,并有利于进一步提高Turbo译码器的数据处理能力以及数据处理速度。进一步,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器中,并且所述外信息存储器的数量大于等于所述预设阈值。
进一步,在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,还移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息,从而使得输入到译码器进行译码处理的待处理外信息更符合行业协议的规定,减少译码器的无效工作量,避免资源浪费。
进一步,在根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息时,可以利用所述多个外信息存储器的写使能控制信号将所述迭代更新外信息存储至对应的外信息存储器中;或者,还可以先将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中,采用先进先出的方式对填充后的迭代更新外信息进行缓存,以使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量,然后再将缓存输出的迭代更新外信息存储至所述多个外信息存储器,以减少写使能控制信号的绕线复杂度。
附图说明
图1是本发明的第一实施例的一种用于Turbo译码的数据存储方法的流程图;
图2是本发明的第二实施例的一种用于Turbo译码的数据存储方法的流程图;
图3是本发明的第三实施例的一种用于Turbo译码的数据存储方法的流程图;
图4是本发明的第四实施例的一种用于Turbo译码的数据存储装置的结构示意图;
图5是本发明的第五实施例的一种用于Turbo译码的数据存储装置的结构示意图;
图6是采用本发明实施例的Turbo译码器的功能结构图;
图7是采用本发明实施例的Turbo译码器的局部硬件架构图。
具体实施方式
本领域技术人员理解,如背景技术所言,在采用Turbo译码器进行译码操作时,由于WCDMA协议的规定以及信号传输速度的不断提升,为了满足译码器可能需要同时存取多个外信息的技术需求,现有技术仍局限于简单增加数据缓冲器的数量来应对上述技术需求,但是,这样的技术方案不利于芯片的小型化设计,也会对Turbo译码器的数据处理能力以及数据处理速度的进一步提高造成限制。
为了解决这一技术问题,本发明所述技术方案采用先进先出的方式对获取的至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于单次Turbo译码输入的外信息的数量,从而能够在不需要多份数据缓冲器的基础上,解决Turbo译码器同时读取多个外信息时可能出现的数据冲突问题,并有利于减小芯片体积,进一步提高Turbo译码器的数据处理能力以及数据处理速度。
在本发明的一个优选实施例中,可以先对获取的至少一个待处理外信息进行处理,以移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息,然后再采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值也等于单次Turbo译码输入的外信息的数量,接下来通过对所述缓存后输出的待处理外信息进行Turbo译码获得迭代更新外信息,然后再将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中,采用先进先出的方式对填充后的迭代更新外信息进行缓存,以使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量,最后将缓存输出的迭代更新外信息存储至所述多个外信息存储器,从而满足所述Turbo译码器在一个周期内同时存取多个外信息的技术需求并且有效避免了可能发生的数据存取冲突问题。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明的第一实施例的一种用于Turbo译码的数据存储方法的流程图。其中,所述Turbo译码的译码逻辑可以遵从WCDMA的规范来制定,例如,根据“WCDMA标准协议3GPP IS 25.212第4.2.3.2.3部分Turbo码内部交织”中的相关规定来指定本发明实施例所述Turbo译码的相关译码逻辑,本领域技术人员还可根据实际需要来调整所述Turbo译码的译码逻辑,这并不影响本发明的技术内容。
具体地,在本实施例中,首先执行步骤S101,获取至少一个待处理外信息。更为具体地,所述至少一个待处理外信息存储于多个外信息存储器中,每次获取外信息时,从每一所述外信息存储器中获取一个待处理外信息。优选地,所述多个外信息存储器设置于同一数据缓冲器中。优选地,当所述外信息存储器中存储了多个待处理外信息时,所述多个待处理外信息以随机排布的方式存储于所述外信息存储器中。在一个优选例中,每次获取外信息时,以固定乱序从每一所述外信息存储器中循序获取一个待处理外信息。
然后进入步骤S102执行,采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值。具体地,所述预设阈值根据本次周期需要存储的信息数量确定。更进一步地,所述外信息存储器的数量大于等于所述预设阈值。优选地,基于先进先出(FIFO,first input first output)存储器来采用先进先出的方式对所述至少一个待处理外信息进行缓存。在一个优选例中,对于所述步骤S101获取的所述至少一个待处理外信息,由于所述外信息存储器的数量大于等于所述预设阈值,需要对所述至少一个待处理外信息进行缓存处理以确保本次周期内传递到译码器端的待处理外信息数量等于译码器进行单次译码时所能处理的信息数量,因而,本步骤基于FIFO存储器将最先接收到的预设阈值数量的待处理外信息按接收顺序依序输出,将剩余的待处理外信息暂时存储,以待下一周期接收到新的待处理外信息后,再根据先进先出的原则进行信息输出,实现对所述至少一个待处理外信息的缓存。
接下来执行步骤S103,对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值。具体地,所述单次Turbo译码输入的外信息的数量可以理解为本次周期需要存储的信息数量。优选地,基于软输入软输出(SISO,soft input soft output)译码器对所述缓存后输出的待处理外信息进行Turbo译码,以获得所述迭代更新外信息。本领域技术人员还可以根据实际需要采用其他译码器,如硬输入硬输出(HIHO,hard input hard output)译码器等进行Turbo译码,在此不予赘述。
最后执行步骤S104,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。具体地,所述迭代更新外信息与所述至少一个待处理外信息均存储于多个外信息存储器中,所述外信息存储器可以是单独的存储器(例如SRAM),或者也可以是同一存储器中的不同区块(Bank)。在一个优选例中,分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置,对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。例如,对于每一迭代更新外信息,确定所述迭代更新外信息是由所述至少一个待处理外信息中的哪一个经所述步骤S103中Turbo译码处理获得的,以确定所述迭代更新外信息与所述待处理外信息的对应关系,并将所述迭代更新外信息存储至与其相对应的所述待处理外信息的初始存储位置。
进一步地,所述步骤S101中每次获取外信息时,还可以顺序从每一所述外信息存储器中循序获取一个待处理外信息。更进一步地,所述外信息存储器中存储的多个待处理外信息也可以以更新时间为标准顺序存储。本领域技术人员还可以根据实际需要变化出更多实施例,在此不予赘述。
进一步地,所述多个外信息存储器还可以分别设置于多个数据缓冲器中,本领域技术人员理解,当多个数据缓冲器中所有外信息存储器的总数大于等于所述预设阈值,并且每一所述数据缓冲器中的外信息存储器的数量至少为一个时,采用本发明实施例的技术方案就能够较好的解决译码器同时存取多个数据时的可能产生的读取冲突问题,本领域技术人员可以在实际应用时结合芯片的电路布局,充分利用空间,设置一个或多个数据缓冲器,这并不影响本发明的技术内容。
由上,采用第一实施例的方案,与现有技术简单增加数据缓冲器的数量的技术方案相比,能够在不需要多份数据缓冲器的基础上,在数据输入端与输出端之间采用先进先出的方式进行数据缓存,使得到达译码器的外信息数量等于本次周期内译码器需要存储的外信息数量,从而在同样解决Turbo译码器同时读取多个外信息时可能出现的数据冲突问题的基础上,能够更好的减小芯片体积,并有利于进一步提高Turbo译码器的数据处理能力以及数据处理速度。
图2是本发明的第二实施例的一种用于Turbo译码的数据存储方法的流程图。具体地,在本实施例中,首先执行步骤S201,获取至少一个待处理外信息。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S101,在此不予赘述。
然后进入步骤S202执行,移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。具体地,所述预设标准可以是所述WCDMA标准协议中的相关规定,也可以是其他行业技术标准中的规定,本领域技术人员可以根据实际需要变化出更多实施例,在此不予赘述。优选地,基于所述预设标准移除所述至少一个待处理外信息中内容存在缺损的一个或多个待处理外信息。在一个优选例中,在所述步骤S201从每一外信息存储器中获取一个待处理外信息后,对各待处理外信息包括的数据内容完整度进行甄别,若所述待处理外信息包括的数据内容不全,则将其移除出所述至少一个待处理外信息,确保后续达到译码器进行Turbo译码的所述至少一个待处理外信息均为有效信息,减少所述译码器的无效工作量,提高本发明实施例的数据处理速度。
接下来执行步骤S203,采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值。具体地,所述预设阈值根据本次周期需要存储的信息数量确定。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S102,在此不予赘述。
然后进入步骤S204执行,对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值。具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S103,在此不予赘述。
最后执行步骤S205,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。具体地,所述迭代更新外信息与所述至少一个待处理外信息均存储于多个外信息存储器中。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S104,在此不予赘述。
由上,采用第二实施例的方案,在上述图1所示实施例的基础上,在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,通过移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息,使得输入到译码器进行Turbo译码的待处理外信息更符合行业协议的规定,减少译码器的无效工作量,避免资源浪费。
图3是本发明的第三实施例的一种用于Turbo译码的数据存储方法的流程图。具体地,在本实施例中,首先执行步骤S301,获取至少一个待处理外信息。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S101,在此不予赘述。
然后进入步骤S302执行,移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。具体地,本领域技术人员可以参考上述图2所示实施例中所述步骤S202,在此不予赘述。接下来执行步骤S303,采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值。具体地,所述预设阈值根据本次周期需要存储的信息数量确定。更为具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S102,在此不予赘述。
然后进入步骤S304执行,对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值。具体地,本领域技术人员可以参考上述图1所示实施例中所述步骤S103,在此不予赘述。
接下来执行步骤S305,将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中。在一个优选例中,若所述步骤S302中基于预设标准移除了所述至少一个待处理外信息中的一个或多个待处理外信息,则在本步骤将被移除的所述一个或多个待处理外信息再填充回所述迭代更新外信息中,使得所述迭代更新外信息的数量与所述步骤S301中获取的至少一个待处理外信息的数量相等。
然后进入步骤S306执行,采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量。具体地,同样基于所述FIFO存储器来采用先进先出的方式对填充后的迭代更新外信息进行缓存。
最后执行步骤S307,将缓存输出的迭代更新外信息存储至所述多个外信息存储器。在一个优选例中,经过所述步骤S306的处理,所述缓存输出的迭代更新外信息的数量等于所述多个外信息存储器的数量,则对于每一缓存输出的迭代更新外信息,通过确定与其相对应的所述待处理外信息的初始存储位置,即可将所述缓存输出的迭代更新外信息存储回所述初始存储位置指向的外信息存储器中。
在本实施例的一个变化例中,所述步骤S305、所述步骤S306以及所述步骤S307可以被替换为“根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器”。本领域技术人员理解,在实施本变化例时,可以不需要将所述步骤S302中移除的一个或多个待处理外信息填充至所述迭代更新外信息,而是通过所述写使能控制信号,来确定每一迭代更新外信息与所述至少一个待处理外信息的对应关系,进而将所述迭代更新外信息存储回与其对应的待处理外信息的初始存储位置。
由上,采用第三实施例的方案,所述步骤S305、所述步骤S306以及所述步骤S307可以理解为上述图1所示实施例中所述步骤S104以及上述图2所示实施例中所述步骤S205的一个具体实施方式,通过先将被移除的一个或多个待处理外信息填充至所述迭代更新外信息,并采用先进先出的方式对填充后的迭代更新外信息进行缓存后,再将缓存输出的待处理外信息存储至相应的外信息存储器中,以确保所述迭代更新外信息能够被准确的存储回与其相对应的待处理外信息的初始存储位置,避免存储时可能发生的存储出错的问题,提高本发明实施例的信息处理准确度。进一步地,还可以通过写使能控制信号来实现准确存储的目的,这样的技术方案的优点在于可以进一步节省芯片的体积,不用额外设置器件来将所述被移除的一个或多个待处理外信息填充至所述迭代更新外信息,也省去了额外的FIFO存储器,但缺点在于本替换例在实施时所述写使能控制信号基本一直处于交错状态,绕线复杂度高。
图4是本发明的第四实施例的一种用于Turbo译码的数据存储装置的结构示意图。本领域技术人员理解,本实施例所述用于Turbo译码的数据存储装置4用于实施上述图1至图3所示实施例中所述的方法技术方案。具体地,在本实施例中,所述用于Turbo译码的数据存储装置4(以下简称数据存储装置4)包括外信息获取模块(图中未示出),用于获取至少一个待处理外信息;第一FIFO存储器42,用于采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;译码器44,用于对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;以及外信息存储模块(图中未示出),用于根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。
优选地,所述译码器44可以是SISO译码器,也可以是其他能够进行Turbo译码的译码器。
优选地,所述外信息获取模块以及所述外信息存储模块可以基于所述数据存储装置4的控制电路实现。
进一步地,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器411中,每次获取外信息时,从每一外信息存储器411中获取一个待处理外信息,所述多个外信息存储器411设置于一个或多个数据缓冲器41中。
进一步地,所述外信息存储器411的数量大于等于所述预设阈值。
进一步地,所述外信息存储模块包括初始存储位置获取子模块(图中未示出),用于分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置;存储子模块(图中未示出),对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。
进一步地,所述数据存储装置4还包括虚比特移除(dummy bit remover)模块42,用于在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。
进一步地,所述外信息存储模块包括第一外信息存储子模块(图中未示出),用于根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器411的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器411。
在一个优选地应用场景中,所述数据缓冲器41包括5个外信息存储器411,每一所述外信息存储器411各自存储有4行外信息,一行外信息就是一个待处理外信息,则所述外信息获取模块在一个周期内从每一所述外信息存储器411中获取排序最靠前的一个待处理外信息,则每个周期均能从所述数据缓冲器41中获取5个待处理外信息,但所述译码器44单个周期只能读取4个待处理外信息,则先通过所述虚比特移除模块42将所述外信息获取模块获取的5个待处理外信息中不符合预设标准的待处理外信息移除,这样达到所述第一FIFO存储器43的待处理外信息的数量可能为5个或者4个,由所述第一FIFO存储器43采用先进先出的方式对所述5个或4个待处理外信息进行缓存,在本次周期内输出最先收到的4个待处理外信息给到所述译码器44,使得每个周期到达所述译码器44的待处理外信息的数量优选地等于所述译码器44每个周期需要读取存储的外信息数量(即等于预设阈值),所述译码器44对所述4个待处理外信息进行Turbo译码后,通过所述第一外信息存储子模块的写使能控制信号将所述4个待处理外信息存储至所述数据缓冲器41中各个对应的外信息存储器411中,前期被所述虚比特移除模块42移除的一个或多个待处理外信息的初始存储位置上不会被迭代更新外信息覆盖。
关于所述数据存储装置4的工作原理、工作方式的更多内容,可以参照图1至图3中的相关描述,这里不再赘述。
图5是本发明的第五实施例的一种用于Turbo译码的数据存储装置的结构示意图。本领域技术人员理解,本实施例所述的数据存储装置5在上述图4所示的数据存储装置4的基础上增加了虚比特添加(dummy bit padding)模块55,用于将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中;第二FIFO存储器56,用于采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量;以及第二外信息缓存子模块(图中未示出),用于将缓存输出的迭代更新外信息存储至所述多个外信息存储器。
优选地,所述第二外信息缓存子模块同样可以基于所述数据存储装置5的控制电路实现。
在一个优选地应用场景中,所述外信息获取模块(图中未示出)从所述数据缓冲器51中的每一外信息存储器511中各获取一个待处理外信息以构成至少一个待处理外信息,所述虚比特移除模块52(对应图4所示实施例中的虚比特移除模块42)将所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息移除,第一FIFO存储器53(对应图4所示实施例中的第一FIFO存储器43)采用先进先出的方式对所述至少一个待处理外信息进行缓存,以使得缓存后输出的待处理外信息的数量等于所述译码器54(对应图4所示实施例中的译码器44)进行单次Turbo译码时需要的输入信息的数量,所述译码器54对所述第一FIFO存储器53缓存后输出的待处理外信息进行Turbo译码,从而获得带存储外信息,所述虚比特添加模块55将所述虚比特移除模块52移除的一个或多个待处理外信息填充至所述译码器54进行Turbo译码后获得的迭代更新外信息中,由所述第二FIFO存储器56对所述虚比特添加模块55填充后获得的迭代更新外信息采用先进先出的方式进行缓存,确保缓存输出的待处理外信息的数量等于所述数据缓冲器51中包括的所述外信息存储器511的数量,最终根据所述待处理外信息与所述迭代更新外信息的对应关系,将所述迭代更新外信息存储至与其相对应的待处理外信息初始存储的所述外信息存储器511中。
进一步地,图4及图5中均仅示出了一个数据缓冲器,而在实际应用中还可以根据芯片的电路布局情况适当增加所述数据缓冲器的数量,这并不影响本发明的技术内容,在此不予赘述。
进一步地,在图4以及图5示出的数据存储装置中,所述数据缓冲器可以是缓冲寄存器(buffer);所述外信息存储器可以是静态随机存取存储器(Static Random AccessMemory,简称SRAM)。
本领域技术人员理解,上述图4所示实施例中所述译码器44与所述数据缓冲器41之间优选地通过一组数据线进行数据交互,多个外信息存储器411复用该组数据线,此时主要通过写使能控制信号来确定所述译码器44输出的迭代更新外信息应当存储至所述数据缓冲器41中的对应外信息存储器411中。但是,这样的实施方式导致控制信号在同一根数据线中可能一直处于交错状态,造成所述数据存储装置4的绕线复杂度较高。因而,图5所示实施例中通过所述第二FIFO存储器56来降低所述写使能控制信号的绕线复杂度,从图5可以看出,所述第二FIFO存储器56与所述数据缓冲器51中包括的各外信息存储器511是一对一连接的,在本实施例中,可以先通过所述虚比特添加模块将被移除的待处理外信息填充回所述迭代更新外信息中,再通过所述第二FIFO存储器56确保缓存输出的迭代更新外信息能够被准确的写回到与其相对应的待处理外信息的初始存储位置。
图6是采用本发明实施例的Turbo译码器的功能结构图。其中,所述Turbo译码器6优选地将一个迭代(iteration)分解为两个半迭代(half iteration)来执行Turbo译码,所述两个半迭代分别包括一个解交织器61完成的解交织(deinterleave)以及一个交织器62完成的交织(interleave)。
在一个典型的应用场景中,当所述Turbo译码器6进行Turbo译码时,所述第一译码器63需要三个信号的输入,所述三个信号分别为系统比特(记作s)、校验比特(记作p1)以及外信息(记作p2),所述三个信号经过加法器65的加法再减法处理后发送给所述加法器65进行加法交织,再传递给第二译码器64进行Turbo译码,然后再经过加法器65的一系列加法减法运算后发送给解交织器61进行解交织处理,解交织的处理结果作为下一周期的外信息p2送回所述第一译码器63进行迭代运算,最后由判决器66判决(make decision)后进行结果输出。
进一步地,不同时间执行的两个半迭代共用硬件资源,即所述第一译码器63和所述第二译码器64实际可以是同样的器件,并且通常会设置在同一个硬件中,通过开关切换来实现两个半迭代的切换,其硬件架构如图7所示。其中,校验比特数据缓冲器(buffer ofparity 1LLR)71用于保证所述校验比特p1的有效性;校验比特数据缓冲器(buffer ofparity 2LLR)72用于表征所述外信息p2的有效性;系统比特数据缓冲器(buffer ofsystematic LLR)73用于输出系统比特s。
在一个典型的应用场景中,当图7中的开关控制信号i=0(低电平)时,所述Turbo译码器7顺序写入外信息,并顺序进行信息读取,不会发生数据的读取冲突。而当所述开关控制信号i=1(高电平)时,若所述译码器75一次只需读取一个外信息p2,则仍不会出现数据读取冲突。但在执行第二个半迭代时,所述外信息p2需要经过交织器(对应图6示出的交织器62)读取与写入,而基于所述WCDMA标准协议下的Turbo译码的交织可以理解为一种接近乱序的安排,当所述译码器75需要执行高速并行处理时,可能需要在一个周期内读取和写入多个外信息p2,就可能在外信息数据缓冲器(buffer of extrinsic information)78中出现数据的读取和写入冲突问题。现有的技术方案大多是简单的增加外信息数据缓冲器78的数量,以多份外信息数据缓冲器78的形式来解决外信息p2存取时可能出现的外信息数据缓冲器78冲突问题,但会导致芯片面积被大量的外信息数据缓冲器78占据,不利于芯片的小型化设计需求。
优选地,根据WCDMA标准协议的规定,所述外信息数据缓冲器78(对应上述图4所示实施例中所述数据缓冲器41或者上述图5所示实施例中所述数据缓冲器51)中存储的外信息的行(row)的数量可能为5、10、20,所述译码器75在每个周期内会以固定乱序的方式循序读取每个行中的外信息,则当所述行的数量为5时,现有技术可以通过5个不同的外信息数据缓冲器78来存放这5行外信息,每次所述译码器75从所述5各不同的外信息数据缓冲器78中分别读取这5个外信息,从而避免读取冲突;同理,当所述行的数量为10或20时,设置10个或20个外信息数据缓冲器78可以避免数据冲突。
另一方面,当所述行的数量为10,而所述译码器75每个周期需要读取和存储的外信息数量不超过5个时,现有技术可以将10行外信息按照行读取顺序依序放在5个外信息数据缓冲器78中,以减少所述外信息数据缓冲器78的数量;这一方法也同样适用于行的数量为20的情形。
本领域技术人员理解,上述现有的外信息数据缓冲器78的设置方式虽然能够解决读取冲突问题,但是,实际应用中所述译码器75每个周期需要的外信息数量通常为2的次方数目,例如,4、8、16等,则现有的外信息数据缓冲器78的设置方式无法更好的解决读取冲突问题。
因而,本发明实施例所述技术方案通过FIFO存储器来进行转换,从而更好的解决译码器75同时读取多个外信息时可能发生的读取冲突的问题。
在结合图7和图4的一个优选地应用场景中,从所述外信息数据缓冲器78中获取至少一个待处理外信息,通过译码前处理模块74查看交织表、读取本次需要处理的行信息并移除其中不符合预设标准的一个或多个行信息、然后通过FIFO存储器采用先进先出的方式缓存获得与本次周期需要的迭代更新外信息的数量相等的待处理外信息,所述译码器75对所述译码前处理模块74缓存获得的待处理外信息进行Turbo译码,获得迭代更新外信息,经加法器76处理后发送给译码后处理模块77,所述译码后处理模块77将处理后的迭代更新外信息解交织后,返回存储至所述外信息数据缓冲器78中的对应外信息缓存器SRAM中。优选地,所述FIFO存储器设置于所述译码前处理模块74内。
优选地,所述交织表用于暂存所述外信息数据缓冲器78中本次周期内被读取的待处理外信息的初始存储位置,以便所述译码后处理模块77根据所述交织表将所述迭代更新外信息写入与其对应的待处理外信息的初始存储位置。
进一步地,结合图4的示例,若所述外信息共20行,所述译码器75在一个周期内需要读取和写入4个外信息,则可以在所述外信息数据缓冲器78内设置5个外信息存储器,每个外信息存储器中存储4行外信息。又例如,若所述译码器75在一个周期内需要读取和写入8个外信息,则可以在所述外信息数据缓冲器78中设置10个外信息存储器,在所述译码前处理模块74中,基于预设标准执行移除操作后达到FIFO存储器的待处理外信息数量可能是10或9或8个,通过所述FIFO存储器的先进先出缓存,固定取8个待处理外信息发送给所述译码器75,从而有效避免译码器75在读取和写入时的数据冲突问题。当然,若初始从所述外信息数据缓冲器78中读取到的外信息数量不足8个,则所述译码器75可以根据到达的待处理外信息的实际数量进行处理和存储。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (15)
1.一种用于Turbo译码的数据存储方法,其特征在于,包括如下步骤:
获取至少一个待处理外信息;
采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;
对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;
根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。
2.根据权利要求1所述的数据存储方法,其特征在于,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器中,每次获取外信息时,从每一外信息存储器中获取一个待处理外信息,所述多个外信息存储器设置于一个或多个数据缓冲器中。
3.根据权利要求2所述的数据存储方法,其特征在于,所述外信息存储器的数量大于等于所述预设阈值。
4.根据权利要求1所述的数据存储方法,其特征在于,所述采用先进先出的方式对所述至少一个待处理外信息进行缓存的步骤是基于FIFO存储器实现的。
5.根据权利要求1所述的数据存储方法,其特征在于,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息,包括如下步骤:
分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置;
对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。
6.根据权利要求2所述的数据存储方法,其特征在于,在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,还包括如下步骤:
移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。
7.根据权利要求6所述的数据存储方法,其特征在于,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息包括:根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器。
8.根据权利要求6所述的数据存储方法,其特征在于,根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息包括如下步骤:
将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中;
采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量;
将缓存输出的迭代更新外信息存储至所述多个外信息存储器。
9.一种用于Turbo译码的数据存储装置,其特征在于,包括:
外信息获取模块,用于获取至少一个待处理外信息;
第一FIFO存储器,用于采用先进先出的方式对所述至少一个待处理外信息进行缓存,使得缓存后单次输出的待处理外信息的数量等于预设阈值;
译码器,用于对所述缓存后输出的待处理外信息进行Turbo译码,以获得迭代更新外信息,单次Turbo译码输入的外信息的数量等于所述预设阈值;
外信息存储模块,用于根据所述至少一个待处理外信息的初始存储位置存储所述迭代更新外信息。
10.根据权利要求9所述的数据存储装置,其特征在于,所述至少一个待处理外信息以及所述迭代更新外信息均存储于多个外信息存储器中,每次获取外信息时,从每一外信息存储器中获取一个待处理外信息,所述多个外信息存储器设置于一个或多个数据缓冲器中。
11.根据权利要求10所述的数据存储装置,其特征在于,所述外信息存储器的数量大于等于所述预设阈值。
12.根据权利要求9所述的数据存储装置,其特征在于,所述外信息存储模块包括:
初始存储位置获取子模块,用于分别获取与所述迭代更新外信息相对应的待处理外信息的初始存储位置;
存储子模块,对于每一迭代更新外信息,将所述迭代更新外信息存储至与其相对应的待处理外信息的初始存储位置。
13.根据权利要求10所述的数据存储装置,其特征在于,还包括:
虚比特移除模块,用于在采用先进先出的方式对所述至少一个待处理外信息进行缓存之前,移除所述至少一个待处理外信息中不符合预设标准的一个或多个待处理外信息。
14.根据权利要求13所述的数据存储装置,其特征在于,所述外信息存储模块包括:
第一外信息存储子模块,用于根据所述至少一个待处理外信息的初始存储位置,利用所述多个外信息存储器的写使能控制信号,将所述迭代更新外信息存储至对应的外信息存储器。
15.根据权利要求13所述的数据存储装置,其特征在于,所述外信息存储模块包括:
虚比特添加模块,用于将被移除的一个或多个待处理外信息填充到所述迭代更新外信息中;
第二FIFO存储器,用于采用先进先出的方式对填充后的迭代更新外信息进行缓存,使得缓存后单次输出的迭代更新外信息的数量等于所述外信息存储器的数量;
第二外信息缓存子模块,用于将缓存输出的迭代更新外信息存储至所述多个外信息存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610962594.3A CN108023599B (zh) | 2016-11-04 | 2016-11-04 | 一种用于Turbo译码的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610962594.3A CN108023599B (zh) | 2016-11-04 | 2016-11-04 | 一种用于Turbo译码的数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108023599A true CN108023599A (zh) | 2018-05-11 |
CN108023599B CN108023599B (zh) | 2021-04-13 |
Family
ID=62084205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610962594.3A Active CN108023599B (zh) | 2016-11-04 | 2016-11-04 | 一种用于Turbo译码的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108023599B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707510A (zh) * | 2009-11-18 | 2010-05-12 | 深圳华为通信技术有限公司 | 一种高速Turbo译码方法和装置 |
CN102270993A (zh) * | 2011-03-24 | 2011-12-07 | 中国人民解放军国防科学技术大学 | 一种同时实现交织与解交织的Turbo译码器 |
US9077379B2 (en) * | 2009-10-19 | 2015-07-07 | Lg Electronics Inc. | Transmitting system and method of processing digital broadcast signal in transmitting system, receiving system and method of receiving digital broadcast signal in receiving system |
-
2016
- 2016-11-04 CN CN201610962594.3A patent/CN108023599B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9077379B2 (en) * | 2009-10-19 | 2015-07-07 | Lg Electronics Inc. | Transmitting system and method of processing digital broadcast signal in transmitting system, receiving system and method of receiving digital broadcast signal in receiving system |
CN101707510A (zh) * | 2009-11-18 | 2010-05-12 | 深圳华为通信技术有限公司 | 一种高速Turbo译码方法和装置 |
CN102270993A (zh) * | 2011-03-24 | 2011-12-07 | 中国人民解放军国防科学技术大学 | 一种同时实现交织与解交织的Turbo译码器 |
Non-Patent Citations (2)
Title |
---|
苏栋: "分块归零处理TURBO编译码器FPGA设计与实现", 《中国硕士学位论文全文数据库 信息科技辑》 * |
陈绪斌 等: "高性能并行Turbo译码器的VLSI设计", 《计算机工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108023599B (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101777924B (zh) | 一种Turbo码译码方法和装置 | |
CN102208966B (zh) | 一种harq合并器和harq数据存储方法 | |
JP3961770B2 (ja) | 通信システムのインターリービング/デインターリービング装置及び方法 | |
CN101953077B (zh) | 涉及多排llr缓冲器的解交织机制 | |
US8719658B2 (en) | Accessing memory during parallel turbo decoding | |
CN101751980B (zh) | 基于存储器知识产权核的嵌入式可编程存储器 | |
CN103262425A (zh) | 无竞争存储访问的系统和方法 | |
CN102414991B (zh) | 用于解码器的数据重排 | |
US7200798B2 (en) | Unified serial/parallel concatenated convolutional code decoder architecture and method | |
CN100508405C (zh) | 提高Turbo码译码速度的并行译码方法及译码装置 | |
CN108270452A (zh) | 一种Turbo译码器及译码方法 | |
CN103986557A (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN102111163A (zh) | Turbo编码器及编码方法 | |
CN108023599A (zh) | 一种用于Turbo译码的数据存储方法及装置 | |
CN101515805B (zh) | 一种Turbo译码器及其译码方法 | |
CN104184536B (zh) | 基于LTE Turbo译码的子块交织控制方法、装置及设备 | |
CN103905066B (zh) | Turbo码译码装置和方法 | |
US8799750B1 (en) | Convolutional interleaver for bursty memory access | |
CN105187162A (zh) | 一种多粒度并行解速率匹配方法和装置 | |
CN102170333B (zh) | 一种交织地址的并行计算方法及系统 | |
CN114629507A (zh) | 一种Turbo和LDPC码速率匹配和交织器共享存储设计方法 | |
CN103888224B (zh) | 一种用于LTE系统Turbo码内交织的并行实现方法及装置 | |
EP2688211A1 (en) | Interleaving and de-interleaving method, interleaver and de-interleaver | |
CN103684478B (zh) | 用于Turbo解码器存储冲突解决的方法和装置 | |
CN102751994B (zh) | 一种基于两个有限群符号的短码长分组码译码器装置 |
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 |