Turbo解码器的缓冲器结构的制作方法

文档序号:7734776阅读:226来源:国知局
专利名称:Turbo解码器的缓冲器结构的制作方法
背景I.领域本发明涉及数据通信。本发明特别涉及一种为Turbo解码器存储中间结果的新颖的且经改善的结构。
II.背景无线通信系统广泛用于提供多种类型的通信诸如话音、数据等。这些系统可能基于码分多址(CDMA)、时分多址(TDMA)或一些其它的多址技术。CDMA系统提供优于其它类型系统的一定优势,包括增加的系统容量。
CDMA系统可能设计成支持一个或多个CDMA标准诸如(1)“TIA/EIA-95-BMobile Station-Base Station Compatibility Standard for Dual-ModeWideband Spread Spectrum Cellular System”(the IS-95 standard)(2)“TIA/EIA-98-D Recommended Minimum Standard for Dual-Mode WidebandSpread Spectrum Cellular Mobile Station”(the IS-98 standard)(3)由名为“3rdGeneration Partnership Project”(3GPP)的联盟提供的标准,它们体现在一组文档内,包括文档号3G TS 25.211、3G TS 25.212、3G TS 25.213以及3G TS 25.214(W-CDMA标准),(4)由名为“3rdGeneration PartnershipProject 2”(3GPP2)的联盟提供的标准,它们体现在一组文档内,包括文档号C.S0002-A、C.S0005-A、C.S0010-A、C.S0011-A、C.S0024以及C.S0026(cdma2000标准)以及(5)一些其它标准。这些标准在此引入作为参考。
每个标准具体定义了在前向和反向链路上数据传输的处理。例如,语音信息可能以特定数据率被编码,格式化为一定义的帧格式并根据特定处理方案经处理(例如,为差错纠正和/或检测而编码、经交织等)。特定标准(例如cdma2000标准)定义的帧格式和处理可能不同于其它标准(例如W-CDMA标准)。
W-CDMA标准支持灵活的操作。例如,数据可能以突发方式在一个或多个“物理”信道上传输,数据率可能随每帧而变化,数据的处理还可能有变化(例如随每个帧不同和/或随“传输”信道和信道不同)等。
W-CDMA标准使用并行链接卷积编码器(经常称为Turbo编码器),可能选用此以在传输前对码段(即数据分组编码。Turbo编码器使用两个并行操作的组成编码器与码交织器的组合。码交织器根据特定定义的交织方案将分组内的信息搅乱(即交织)。一个编码器对分组内的信息比特进行编码以生成奇偶校验位的第一序列,另一个编码器对经搅乱的信息编码以生成奇偶校验位的第二序列。信息比特以及第一和第二序列的奇偶校验位的所有或一些被发送。
互补(计算强度大的)Turbo解码在接收机单元处实现。对每个经Turbo编码的分组,接收到的比特被存储在缓冲器内。第一编码器的信息和奇偶校验位从缓冲器中获取并根据第一组成码被解码以提供指明信息比特的检测到的值的置信度的调整的“外来”信息。包括从第一解码器来的外部信息的中间结果然后以在发射机单元处所使用的码交织相匹配的交织顺序存储在存储单元内。
然后从它们相应的源获取从第二编码器来的中间结果和奇偶校验位并根据第二组成码经解码以提供指明信息比特的检测到的值内秘密调整的外部信息。包括从第二解码器来的外部信息的中间结果然后以与在发射机单元处所使用的码交织互补的解交织顺序被存储在存储单元内。中间结果为第一组成解码器在下一迭代中使用。第一和第二组成解码器的解码经多次迭代以产生最终结果。
对每个要被解码的信息比特,存储单元被访问以获得由先前解码为该比特生成的中间结果(如果有的话)。为每个经编码比特生成的中间结果也存储回存储单元用于下一次解码。随着分组内的比特被编码存储单元因此被连续访问。有效的存储器管理对有效的Turbo解码是很关键的。
由此可见,是很需要可能用于有效存储Turbo解码器的中间结果的缓冲器结构的。
概述本发明的方面提供可能用于有效存储Turbo解码器中间结果的缓冲器结构(例如先验概率(APP)数据)。为增加在Turbo解码中的APP数据的访问吞吐量,缓冲器结构设计成支持对于每个访问循环两个或多个信息比特的APP数据的进发访问。每个比特的APP数据或是代表信息比特和其外部信息的组合或只是比特的外部信息。进发访问可以通过将缓冲器分为多个存储体而获得,每个存储体可独立被访。例如,六个或更多的存储体可能用于在W-CDMA系统内使用的Turbo解码器。
Turbo解码器使用码交织方案以在由第二组成编码器编码前搅乱数据分组内的信息比特。码交织方案一般指定(1)将数据分组(或码段)内的信息一行一行写入二维数组,(2)在每行内搅乱元素以及(3)搅乱行。之后比特从数组内一列一列读出。同样的交织方案以及互补的解交织方案用于存储/获取Turbo解码器的APP数据。
对Turbo解码,APP数据可能通过“经交织”寻址模式或“线性”寻址模式。经交织的寻址模式对应在数据分组内“经交织”位置的APP数据的访问,线性寻址模式对应分组内“线性”位置处的APP数据的访问。为避免访问争用,存储体被分配给数组的行列使得通过任一(或是线性或是经交织的)寻址模式访问的相继比特的APP数据是来自不同的存储体。
为保证以线性寻址模式访问两个不同的存储体以获得两个相继比特的APP数据,存储体能经安排并经分配使得一组存储体用于数组的偶数列,而另一组存储体用于奇数列。使用该奇/偶分配方案,相继线性地址与两个不同的存储体组相关。
为保证以经交织寻址模式访问两个不同的存储体以获得两个相继比特的APP数据,存储体能被分配给数组的行组。由于数据分组的比特以经交织寻址模式从数组一列一列地获取,则行可以被安排成组使得经交织寻址模式的相邻行被分配给不同组。行的分组一般取决于用于搅乱行的一个或多个排列模式。行分组在以下将详细描述。
本发明的多个方面、实施例以及特征将在以下详细描述。
附图的简要描述通过下面提出的结合附图的详细描述,本发明的特征、性质和优点将变得更加明显,附图中相同的符号具有相同的标识,其中

图1是能实现本发明多个方面的通信系统的简化框图;图2A和2B是根据W-CDMA标准分别用于下行链路数据传输在发射机单元和接收机单元处的信号处理图;图3是W-CDMA标准定义的Turbo编码器的图例;图4是Turbo解码器的设计的模块图;图5是根据本发明实施例的Turbo解码器的模块图6是根据特定行分组将R.C数组内的行列分配到六个存储体的图例;图7是定义存储Turbo解码器的中间结果的缓冲器结构的处理实施例的流程图,以及;图8是可能用于实现图5示出的APP存储单元的缓冲器结构的实施例模块图。
详细描述图1是能实现本发明多个方面的通信系统100的简化模块图。在特定的实施例中,通信系统100是符合W-CDMA标准的CDMA系统。在发射机单元110处,从数据源一般以分组发送到数据到发送(TX)数据处理器114,它对数据格式化、编码并处理以生成一个或多个模拟信号。模拟信号然后提供给发射机(TMTR)116,它对信号实现(正交)调制、滤波、放大并上变频以生成已调信号。已调信号然后通过一个或多个天线118发射(在图1只示出一个)到一个或多个接收机单元。
在接收机单元130处,经发射的信号由一个或多个天线132(再次只示出一个)接收,并提供给接收机(RCVR)134。在接收机134内,接收到的信号经放大、滤波、下变频、(正交)解调并数字化以生成采样。采样然后由接收(RX)数据处理器136经处理并解码以恢复经发射的数据。接收机单元130处的处理和解码以与在发射机单元110的处理和编码互补的方式实现。经恢复的数据然后提供给数据宿138。
以上描述的信号处理支持单向的话音、视频、分组数据、消息以及其它类型的通信。双向通信系统支持双向数据传输。然而,其它方向的信号处理因为简洁的缘故未在图1中示出。
图2A是根据W-CDMA标准在发射机单元110处下行链路数据传输的信号处理图。下行链路指的是从基站到用户终端的传输(或用户设备(UE)),上行链路是指从用户终端到基站的传输。图2A示出的信号处理一般由图1的发射数据处理器实现。W-CDMA系统的上层信令层支持多个传输信道的同时传输,每个传输信道能携带特定通信的数据(例如话音、视频、数据等)。以分组形式将每个传输信道的数据提供给相应的传输信道处理部分210,其中分组又称为传输分组。
在传输信道处理部分210内,在框212内,每个传输分组被用于计算循环冗余校验(CRC)比特。CRC比特附在传输分组上并在接收机单元用于差错检测。多个经CRC编码的分组然后在框214内被串行链接起来。如果在链接后的比特总数大于码分组的最大大小,则比特被分段为多个(等大小)的码分组。每个码分组然后以特定的编码方案编码。每个码分组然后在框216内以特定的编码方案(例如,卷积码、Turbo码)编码或根本不编码。
然后在码比特上在框218内实现码率匹配。码率匹配根据更高信令层分配的码率匹配特性而实现。在上行链路上,比特经重建或截短(即删除)使得要发射的比特数与可用比特数匹配。在框220内,在下行链路上,未使用的比特位置用不连续发送(DTX)比特填充。DTX比特指明何时关闭传输以及实际没有传输。
在框222内,比特然后根据特定交织方案经交织以提供时间分集。根据W-CDMA标准,实现交织的时间间隔能从一组可能的时间间隔中选出(即10msec、20msec、40msec以及80msec)。交织时间间隔还被称为传输时间间隔(TTI)。TTI是与每个传输信道相关的属性,并且根据W-CDMA标准,在通信对话持续时间内不改变。如在此使用的,“话务”包括特定传输信道的一个TTI内的比特。
当选择的TTI大于10msec时,在框224内,话务被分段并映射到相继的传输信道无线电帧内。每个传输信道无线电帧对应在(10msec)无线电帧时段上的传输。根据W-CDMA标准,话务可能在1、2、4或8个无线电帧时段上经交织。
在框232内,从所有活动传输信道处理部分210来的无线电帧然后经串行多路复用到经编码的复合传输信道(CCTrCH)上。在框234内,DTX比特然后可能被插入多路复用的无线电帧使得要发射的比特数匹配用于数据传输的物理信道上的可用比特数。如果使用多于一个物理信道,则在框236内比特在物理信道间被分段。特定的物理信道能携带带有不同TTIs的传输信道。在框238处,每个物理信道的每个无线电帧时段内的比特然后经交织以提供附加时间分集。在框240处经交织的物理信道无线电帧然后被映射到它们相应的物理信道。相继的以生成合适传输到用户终端的已调信号的信号处理在领域内是已知的,在此不作描述。
图2B是根据W-CDMA标准下行链路数据传输在接收机单元130处的信号处理图。图2B示出的信号处理与图2A示出的互补,且一般由图1内的接收数据处理器实现。开始时,已调信号经接收、经调整、经数字化且经处理以提供码元给用于数据传输的每个物理信道。每个码元具有特定的分辨率(例如4比特或更多)并对应发送的比特。在框252内,在每个物理信道的每个无线电帧时段内的码元经解交织,且从所有物理信道来的经解交织的码元在框254内经链接。对下行链路传输,非发送的比特在框256内被检测并被移去。在框258,各码元然后被多路分解成各传输信道。每个传输信道的无线电帧然后被提供给相应的传输信道处理部分260。
在传输信道处理部分260内,在框262内传输信道无线电帧经链接成话务。每个话务包括一个或多个传输信道无线电帧并对应在发射机单元处使用的特定TTI。每个话务内的码元在框264内经解交织,在框266内移去非发射的码元。然后在框268内实现反码率匹配以累加重复码元并为截除的码元插入“don’t care”。在框270内话务内的每个经编码的分组然后经解码。在框272内,经解码的分组然后经链接并被分段为它们相应的传输分组。在框274内,每个传输分组然后使用CRC比特检查差错。
图3是W-CDMA标准定义的并行链接卷积编码器(又称为Turbo编码器)300的图例。Turbo编码器300可能用于实现图2A内框216内的信道编码。Turbo编码器300包括一对组成编码器312a和312b、码交织器314以及截短器以及多路复用器316。码交织器314根据W-CDMA标准定义的特定交织方案在码段(即分组)内接收并对信息比特交织,以下将详述。
每个组成编码器312接收或是线性顺序的或经交织的信息比特、用定义的组成编码对接收到的信息比特编码并提供奇偶校验比特序列。截短器和多路复用器316从编码器312a和312b接收信息比特以及奇偶校验比特,截去(即删除)零或更多的校验比特以获得期望的比特数,并对未截去的信息和奇偶校验比特多路复用为经编码的比特序列。
每个组成编码器312包括三个串联耦合的延时元件322、四个模2的加法器324以及开关326。开始时,延时元件322的状态设为零,开关326处于向上位置。然后,对数据分组的每个信息比特,加法器324a对信息比特x实现与从加法器324d来的输出比特的模2加法并将结果提供给延时元件322a。加法器324b和324c从加法器324a和延时元件322a和322c接收并实现比特的模2加法,并提供奇偶校验比特y。加法器324d实现从延时元件322b和322c来的比特的模2加法。
在数据分组内的所有N信息比特都经编码后,开关326变为向下位置且三个零(“0”)尾比特被提供给组成编码器312a。组成编码器312a然后对三个尾比特编码并提供四个尾校验比特。
对N个信息比特的每个分组,组成编码器312a提供N个校验比特y和开始的六个尾校验比特,且组成编码器312b提供N个校验比特z和最后六个尾校验比特。对每个分组,截短器和多路复用器316接收N个信息比特,从编码器312a来的N+6个校验比特以及从编码器312b来的N+6个校验比特。截短器和多路复用器316可能截去多个校验比特以提供需要的经编码比特数,它包括未截去的信息和校验比特。
图4是Turbo解码器400的设计模块图。在该设计中,Turbo解码器400包括两个组成解码器410a和410b、码交织器412、码解交织器414以及检测器416。每个解码器410一般实现为软输入/软输出(SISO)最大后验(MAP)解码器。然而,还可能使用其它类型的解码器,诸如实现软输出Viterbi算法(SOVA)的解码器。解码器的设计一般取决于在发射机单元使用的特定Turbo编码方案。
对应于发射的经编码比特的接收到的(软)比特由信道解交织器(图4未示出)而经解交织以解除在发射机单元实现的第一和第二交织(图2A的框222和238)。对每个要解码的数据分组,提供给解码器410a和410b需要的信道解交织比特。
在图4示出的实施例内,加法器408a接收并对LLR(APP0)、LLR(x′)以及从解交织器414来的外部信息求和以提供解码器410a的先验概率(APP)。LLR(APP0)是从对信息比特采取的假设导出的对数似然比。如果数据分组内的每个信息比特为零(“0”)或为一(“1”)的概率相同,则LLR(APP0)对所有分组内接收到的比特均为零,并忽略任何与LLR(APP0)相关的部分。从解交织器414来的外部信息在第一次解码迭代时设为零。LLR(x′)是接收到的信息比特x′的对数似然比。每个接收到信息的LLR和奇偶校验位bm可计算如下LLR(bm)=log(P(bm=0)P(bm=1))]]>接收到比特的LLR是比特为零对比特为一的概率比的对数。概率P(bm=0)和P(bm=1)对每个接收到的比特一般是根据该比特的软值。擦除(即截去比特)的LLR指明该比特为零或为一具有相等的可能(即LLR=0)。
解码器410a接收来自求和器408a的APP以及LLR(y′),它们是从第一组成编码器接收到的奇偶校验比特y’的LLRs。LLR(y′)包括截除(即非发送的)校验比特的擦除,如果有的话。解码器410a然后根据MAP算法对APP和LLR(y′)解码以生成后验概率。APP然后由求和器408b从后验概率中减去以提供外部信息e1,它指明对由接收到的奇偶校验比特y’提供的接收到信息比特x’的值的置信度的纠正/调整。
从求和器408b来的外部信息e1与信息比特LLRsLLR(x′)一起求和且中间结果(是下一解码器的APP)存储在码交织器412内。码交织器412实现同样的在Turbo编码器处的码交织方案(例如用于图3的码交织器的同样的方案)。
解码器410b从交织器412接收经交织的APP以及LLR(z′),这是从第二组成编码器来的接收到的奇偶校验比特z’的LLRs。解码器410b然后根据MAP算法对APP和LLR(z′)解码以生成后验概率。APP然后由求和器408d从先验概率中减去以提供外部信息e2,它指明对由接收到的奇偶校验位z’提供的接收到信息比特x’的值的可信度的进一步纠正/调整。外部信息e2包括从解码器410b来的中间结果,它存储在码解交织器414中。解交织器414实现与用于交织器412的交织方案互补的解交织方案。
信息比特LLRs的解码经迭代多次(例如6、8、10或可能更多次)。每次迭代,信息比特的检测到值的置信度增大。在所有的解码迭代完成后,最终的LLRs提供给检测器418,它根据它们的LLRs提供接收到的信息比特的硬判决值(即“0s”和“1s”)。
图5是根据本发明的实施例的Turbo解码器500的框图。Turbo解码器500是图4的Turbo解码器400的一特定实施例。在该实施例中,Turbo解码器500包括输入接口单元506、本地存储器/组合器508、SISO MAP解码器510、地址发生器512a和512b、存储单元520、检测器518以及能量度量计算器522。参考图4,两个组成解码器410a和410b串联操作,从一个解码器来的外部信息作为输入提供给另一解码器。由于两个组成解码器的串联操作,只要一个(物理)解码器就能用于实现两个组成解码器。
输入接口单元506提供信道解交织器502和MAP解码器510间的信道。对一些系统,如果截短在发射机端实现,则输入接口单元506可能被设计成提供对编码比特的解除截短。解除截短是通过对每个截去的比特提供擦除而实现的,擦除指明该比特为零和为一的等可能性。
根据实施的特定的解码轮次(即为第一或第二组成编码器解码),信息和奇偶校验比特的合适序列由信道解交织器502提供给存储器/组合器508。从先前迭代获得的APP还由APP存储单元520提供给存储器/组合器508。在一实施例中,存储器/组合器508设计成(1)为接收到的(软)信息比特接收并计算LLR,(2)组合在步骤(1)内计算的LLR(x′)以及对应的外部信息以生成APP,以及(3)接收并为接收到的奇偶校验比特计算LLR。
在一实施例中,存储器/组合器508用滑动窗结构(SWA)实现,它暂时存储例如四个具有信息和奇偶校验比特的窗口。当三个信息和奇偶校验比特窗口由解码器510内的三个状态度量计算器操作时,第四个窗口正用从信道解交织器502和存储单元520来的值更新。在一实施例中,每个窗口大小为32,即每个窗口包括32个x’码元和32个y’(或z’)码元。可能使用其它窗口长度和/或不同的窗口数,且这在本发明的范围内。
在一实施例中,解码器510实现执行对数MAP算法的SISO解码器。还可能使用任何基于MAP的解码算法(例如最大对数MAP算法或max*对数MAP算法两个都是领域内已知的)。在一实施例中,为实现MAP算法,解码器510包括一个前向状态度量计算器以及两个反向状态度量计算器。每个前向(或反向)状态度量计算器在给定的一个当前时刻计算网格结构中的2K-1个状态的每个的概率的对数,这是基于(1)在先前(或将来)时刻中的概率以及(2)先前(或将来)状态的路径间的概率和当前时间的状态,其中K是组成编码器的限制长度。这些前向和反向状态度量(相应为α和β),用于计算信息比特的后验概率。前向和后向状态度量计算和Turbo解码在以下论文中有详细描述,Steven S.Pietrobon的题为“Implementation and Performance of a Turbo/MapDecoder”,International Journal of Satellite Communications,Vol.16,1998.pp.23-46,在此引入作参考。
滑动窗结构和一个前向和两个反向状态度量计算器的使用减少了存储的需要且只是适中地增加了计算量。单个反向状态度量计算器可以在一轮通过中从分组的尾部操作到分组的开始,但这需要大量存储空间。在一实施例中,为特定的一轮解码执行以下操作序列
FWMC(1~32)FWMC(33~64)FWMC(65~96) 和RWMC A(64~33)FWMC(97~128) 和RWMC A(32~1)及RWMC B(95~65)FWMC(129~160)和RWMC B(64~33)及RWMC A(129~97)FWMC(161~192)和RWMC A(96~65)及RWMC B(160~129)…其中FWMC(1-32)代表比特1到比特32的前向度量计算,RWMC(32-1)代表比特32到1的反向度量计算。从FWMC来的结果与下划线的RWMC组合以形成后验概率,APP码元由此而被获取以导出外部信息。外部信息与信息比特LLRs组合以形成为下一解码阶段的APP码元。
解码器510的输出存储到APP存储单元520。在一实施例中,APP存储单元520用于以经交织顺序存储从解码器510来的APP码元(与也可能使用的线性顺序相反)。以经交织顺序存储中间结果可能简化存储器的分划,并进一步使得Turbo编码器和解码器能使用相同的交织地址发生器。在一实施例中,APP存储单元520进一步用于存储从第一组成解码来的APP码元和从第二组成解码来的外部信息。
对第一组成解码,从先前第二组成解码来的外部信息从存储单元520以解交织顺序而被获取,由解码生成的APP码元以交织顺序存储在存储单元520内。相应地,对第二组成解码,从先前第一组成解码来的APP码元从存储单元520以线性顺序获取,且由解码生成的外部信息以线性顺序存储在存储单元520内。
地址发生器512a和512b相应提供存储单元520的写和读地址。多路复用器514a象征性地示出在图5中以指明APP码元/外部信息可能以线性或经交织顺序写入存储单元520,多路复用器514b象征性地示出以指明APP码元/外部信息可能以线性或解交织顺序从存储单元中获取。
检测器518在最后解码迭代后接收APP码元并提供对接收到的信息比特的硬判决。能量度量计算器522提供信息比特的能量度量(或它们的LLRs)。能量度量可能用作检测到的信息比特内的置信度的指示。
对图4和5示出的Turbo解码器设计,存储单元存储从第一组成解码器来的APP数据以及从第二组成解码器来的外部信息。APP数据和外部信息是从组成解码器来的两种不同形式的中间结果。如在此使用的,中间结果能包括任何从一个组成解码器到下一个解码器的任何信息,且可能采取任何形式。一般,从任何组成解码器来的要存储的中间结果的特定形式取决于Turbo解码器的特定设计。
码交织是Turbo编码器和解码器的重要和整合部分。无论在Turbo编码器处选择哪种码交织方案,使用同一方案以存储/获取从第一组成解码来的APP码元,一互补的方案用于存储/获取第二组成解码的外部信息。
W-CDMA标准定义Turbo编码器特定的交织方案。该交织方案可能被分为三个阶段(1)一行行将“码段”内的信息比特写入RxC数组,(2)在每行内重新安排元素(即行内排列),以及(3)交换行(即行间排列)。此后,比特一列列从数组中读出,开始于RxC数组的左上元素。这三阶段在以下将详述,且此后提供一例子以更好地理解交织方案。
在第一阶段,每个码段内的比特被写入RxC数组。W-CDMA标准支持从40到5114比特范围间的码段。开始时,数组内的行数R是根据码段K的大小K决定的,如下R=5,假使40≤K≤159;R=10,假使160≤K≤200或481≤K≤530;或R=20,对于所有其它K。
数组内的列数C下一步是根据R和K决定的,如下C=53,假使481≤K≤530;否则选择一质数p,使(p+1)·R≥K,然后选择C=min{p-1,p,p+1}使R·C≥K。
一旦对给定的K决定了R和C,码段内的比特一行行写入RxC数组。由于K≤R·C,则在数组底部可能为空(即一行或多行或一部分可能不包括任何比特)。
在第二阶段,每行内的元素根据为该行指定的行排列序列而被排列(即搅乱)。行内排列可能以系列步骤实现。第一步,生成长度为p的基序列c(i)。对在第一阶段确定的每个可能的质数p,如W-CDMA标准定义并在表1内示出的,有与该质数相关的本原根g0。基序列c(i)然后导出如下c(i)=[g0·c(i-1)]模(p),对于i=1,2,...,(p-1)公式(1)其中c(0)=1。
表1
在第二阶段的第二步骤中,构建R个质数的序列qj。该质数序列的元素经选择使得能满足以下的准则g.c.d.{qj,p-1}=1;qj>6;及qj>qj-1, 公式(2)其中,g.c.d是最大公因子且g0=1。
质数序列qj基本是递增的最小质数序列,它不包括是(p-1)的因子的质数。该质数序列qj中的R元素相应地与数组的R行相关。序列qj内的R个元素的每个此后用于计算相关行的行内排列序列,下面将详细描述。
由于在质数序列qj内从索引0到R-1分别与0行到R-1行相关,且由于行在行内排列后相继用行间排列序列Px而经排列变换,质数序列qj内的元素还使用同样的行内排列序列Px被排列。序列Px从四个可能的序列PA,PB,PC以及PD为码段选择,如以下将详述的。经排列的质数序列pj被确定为pPx(j)=qj,对j=0,1,...R-1.公式(3)在第二阶段的第三步骤中,每行的行内排列序列cj(i)确定如下cj(i)=c([i·pj]模(p-1)),对于i=1,2,...,(p-2) 公式(4)其中cj(p-1)=0,j是在行间排列变换后的行索引,c(x)是行内排列变换的基序列且用以上的等式(1)被计算,且cj(i)是在第j行的排列后的第i个输出的输入比特位置。每行的行内排列序列cj(i)是根据基序列c(x)且在经排列的质数序列内的质数pj是与该行相关的。每行内的元素经排列使得经排列的行内的第i个单元的位置存储原行内在第cj(i)单元位置处存储的元素。
如上所述,C可能等于p-1、p或p+1。因此,行内排列序列cj(i)用作如下如果C=p-1,则为i=1,2,...,(p-2)使用cj(i)-1;否则如果C=p,则为i=1,2,...,(p-2)使用cj(i),且cj(p-1)=0;以及否则如果C=p+1,则为i=1,2,...,(p-2)使用cj(i),且cj(p-1)=0,cj(p)=p;以及如果R·C=K,则交换cR-1(p)与cR-1(0);在第三阶段,数组内的R行根据行间排列序列Px被排列,这是从四种可能的序列PA,PB,PC以及PD选出的,由W-CDMA标准定义如下PA=(19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11}PB={19,9,14,1,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10}PC={9,8,7,6,5,4,3,2,1,0}PD={4,3,2,1,0}用于码段的特定行间排列变换序列根据以下选择如果K属于[201,480]、[531,2280]、[2481,3160]或3211,5114]比特,则选择PA。
如果K属于[2281,2480]或[3161,3210],则选择PB。
如果K属于[160,200]或[481,530](即K=10),则选择PC。
如果K属于[40,155](即当R=5时,使用PD),则选择PD。
实现行间排列使得原数组内的第j行移至经排列的数组内的PXj行位置。
在行间排列变换后,比特一行一行从上至下读出(即从0行到R-1行)。如上所述,由于K≤R·C,数组内的一些单元可能不包括合法的数据且当读出数据时跳过这些单元。
为清楚之故,以下提供了一个上述的交织方案的例子。在该例中,K=379导致选择R=20。质数p然后被确定为p=19且列数C确定为C=19。对该质数p,相关的原本根g0=2。使用等式(1),基序列c(i)被确定为c(i)={1,2,4,8,16,13,7,14,9,18,17,15,11,3,6,12,5,10}质数序列qi从方程组(2)确定得到qj={1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79}对该K=379,选择行间排列序列PA。经排列的质数序列pj根据相等性(pPAj=qj)]]>从质数序列qj而生成以提供如下pj={17,61,19,59,13,23,71,29,43,7,41,79,31,47,11,73,67,53,37,1}每行的行内排列序列cj(i)然后根据pj以及基序列c(i)而确定。对第一行(j=0),行的质数是p0=17且行内排列序列c0(i)被确定为c0(i)=c(i·p0模(p-1))=c(i·17模18)={1,10,5,12,6,3,11,15,17,18,9,14,7,13,16,8,4,2,0}其它行的行内排列变换序列cj(i)能以类似的方式被确定。
Turbo解码是计算强度较大的过程。对每个Turbo编码的码段,接收发射的编码比特并存储到临时存储单元(例如图5的信道解交织器508)。经编码的比特然后(串行地)从临时存储单元获取并被解码。对每个要解码的比特,访问APP存储单元以获得由先前的解码(如果有的话)为该比特生成的APP数据(即APP码元/外部信息)。对每个解码比特生成的APP数据进一步存储回APP存储单元以为下一解码之用。随着码段内的比特经被码APP存储单元因此被连续访问。有效的存储管理对于有效的Turbo解码是关键。
根据本发明的一方面,APP存储单元520被分为并用多个存储体实现。在实施例中,存储体被分配并以一种避免对APP数据进行双缓冲的方式被操作。在一实施例中,每个存储体可能与其它存储体分开并被独立访问。这可以通过提供给每个存储体它自己的地址和数据线集合而实现。
在特定实施例中,解码器510设计成带有每时钟周期解一信息比特的能力。为避免在每个比特的解码过程中等待对APP数据的存储访问(即读和写),APP存储单元设计成一般有能力为当前正在解码的比特存储APP数据并提供给将来要解码的比特APP数据的能力。为避免访问争用,存储单元经划分使得写和读操作不在同一访问循环中的同一存储体上同时实现(虽然若使用多端口存储体这是可能的)。在一实施例中,为了方便存储器分区,存储体还设计成使得多比特的APP数据可能在单个访问循环内写入多个存储体,且多比特的APP数据可能在另一(其它)访问循环的多个存储体中获取。
在特定实施例中,特别是适用于W-CDMA情况下,存储单元被分为六个存储体,虽然可能使用不同数量的存储体。存储体被标为Bank0a、Bank0b、Bank1a、Bank1b、Bank2a以及Bank2b。每个存储体被分配以R·C数组的相应的行组和列集以避免访问争用。每个存储体用于存储占用这些处于分配的行组和列集的交叉位置的比特的APP数据。如上所述,对第一组成解码器,APP数据以经交织顺序写入存储单元520并以经交织顺序(又称为“经交织”寻址模式)从存储单元获取。对第二组成解码器APP数据以线性顺序(还称为“线性”寻址模式)写入或从存储单元获取。为保证两个不同的存储体以线性寻址模式用两个相邻地址访问,存储体能经安排及分配使得一存储体集合被分配给偶数列(例如,它们是与最低有效比特(LSB)为零(“0”)相关),且另一存储体集合被分配给奇数列(例如,它们是与最低有效比特(LSB)为零(“0”)相关)。用这个奇/偶分配方案,相继地址(LSBs为“0”与“1”)与两个不同存储体集合相关。
对交织寻址模式,实现另一存储体分配方案。如上所述,由W-CDMA标准定义的码交织要求从R·C数组中一列列读出比特。这导致以经交织寻址模式访问相邻地址时访问数组的不同行。为保证能以经交织寻址模式访问两个相邻地址的两个不同存储体,行能被安排为三个或更多的组使得经交织寻址模式的“相邻”行被分配给不同组。相邻行是当以经交织寻址模式时一列列写/读时能访问的连续行。
该行分组可能通过首先确定R·C数组内每行的相邻行而实现。对用于上述的行间排列变换的PA,PB,PC序列,这三个序列内的相邻实体(对应行数)被分配给不同组,这是因为相邻行可能在以经交织寻址模式按列写/读时被访问。而且,由于K≤R·C,数组尾部的一些行可能为空,在该情况下,访问该空行的下一行。对所有W-CDMA标准支持的可能的R、C和K组合,确定行17可能被部分跳过,当使用序列PA时,行18和19可能完全跳过。使用序列PB时,行18和19可能完全跳过,使用序列PC时,行9可能完全跳过。
表2列出在对行分组时要遵守的“排除”规则使得在经交织寻址模式能避免访问争用。第一和第三列列出行号(在表2内按顺序)。对在第一和第三列中标识的每行,应从包括该行的组中排除的行分别在第二和第四列列出。例如,在包括0行的组中应排除行1、2、4、8和9,包括行1的组应排除行0、2、3、6和16。
表2
表3列出了遵守表2列出的排除规则的行的可能分组。还有其它分组的可能且在本发明的范围内。
表3
图6是根据表3示出的行分组的R·C数组内行和列分配到六个存储体的图表。在该特定分配方案,表3的组0、1和2内的行分别被分配到Bank0v,Bank1v以及Bank2v,其中v为a或b。如上所述,Bankua以及Bankub分别被分配到偶数和奇数列,其中u是0、1或2。对每个存储体而言,每个分配的行因此包括C/2元素。
在线性寻址模式,可能同时访问来自同一或不同的组的两个存储体(即可能访问Banku1a以及Banku1b,或Banku1a以及Banku2b,其中u1和u2每个可能来自任何组)。且以经交织寻址模式,从不同组来的两个存储体同时被访问(即能访问Banku1a以及Banku1b,或Banku1a以及Banku2b)。
在一实施例中,Bank0a,Bank1a以及Bank2a用于偶数行的偶数列以及奇数行的奇数列,以及Bank0b,Bank1b以及Bank2b用于偶数行的奇数列和奇数列的偶数列。当列数为奇数,该分配方案可能用于避免以线性寻址模式访问同一存储体。例如,如果有五列,可能期望同时为列4的行1和列0的行2获取数据。两个都位于Bankua内,提供的行1和行2被组在一起。以上的分配方案避免访问争用。
当PA,PB或PC序列用于行间排列时,表3列出的行分组避免了经交织寻址模式的访问争用。对PD序列,表4列出在序列内的五行的排除,表5列出对PD的行的可能分组。
表4
表5
值得注意的是表3示出的分组违反了图4示出的PD序列的行0和行3的排除规则。因此,可能生成不同于表3的行分组以避免以经交织寻址模式对所有四个序列PA,PB,PC以及PD序列的访问争用。或者,当选择PA,PB或PC时使用表3示出的行分组,当选择PD时使用表5示出的行分组。
图7是定义存储Turbo解码器的中间结果(例如APP数据)的缓冲器结构(例如APP存储单元520)的处理700的实施例流程图。开始,在步骤712标识缓冲器支持的寻址模式。对Turbo解码,APP数据可能通过以经交织寻址模式和线性寻址模式访问。每个组成解码提供对应数据分组内的信息比特的APP码元。在经交织寻址模式内,APP码元在分组内的经交织位置处被访(即写入或从中获取)。在线性寻址模式,APP码元在分组的线性位置处被访问。
在步骤714,定义行的NR个组,其中NR≥2。每个组包括用于对Turbo编码的数据分组内的信息比特交织的R·C数组的一行或多行。行被选择以包括在每组内使得在经交织寻址模式期间要访问的两个相继地址来自两个组。对上述的例子,定义三个组,每个组包括数组内的相应的行集合。组的定义是根据由与Turbo编码相关的码交织方案定义的可能的行间排列序列。
在步骤716,定义列的NC个集,其中NC≥2。每个集包括R·C数组的一列或多列。列被选择以包括在每个集内使得在经交织寻址模式期间访问的两个相继地址来自两个集。对上述例子,定义了两个集,第一个集包括偶数列,第二个集包括奇数列。
在步骤718,缓冲器然后被分为NR·NC个存储体。在步骤720,每个存储体然后被分配给NR·NC个行组和列集的联合组合的相应的一个。对上述例子,定义六个存储体并如上所述分配给三个行组和两个列集的六个联合组合。
图8是可能用于实现APP存储单元的缓冲器结构800的实施例模块图。缓冲器结构800包括实现APP存储单元的存储单元820、每个访问循环生成必须的地址的地址发生器822以及从存储体选择输出数据的多路复用器824。
在图8示出的实施例中,存储单元820被分为六个存储体,每个存储体被分配给存储单元的相应部分。在实施例中,每个存储体接收地址线集合,它使得存储体能单个且独立地被访问。虽然由于简洁之故未在图8中示出,每个存储体一般有相应的“码片选择”线,使得存储体能被单个选择。
为在每个写循环中将两个码元写入两个存储体,每个存储体用于在两个数据线集合上接收两个码元,选择码元的一个(例如通过图8未示出的多路复用器)而且如果由地址发生器822引导,则将选择的码元存储到由存储体地址线指明的位置。地址发生器822提供要存储的两个码元的两个地址,这些地址通过它们的地址线提供给两个存储体。
为在每个读循环中从存储体获取两个码元,多路复用器824从六个存储体接收输出码元,在从地址发生器822来的控制信号引导下选择接收到的码元中的两个,并提供选择的码元,虽然未在图8中示出,多路复用器824可能用两个6×1多路复用器实现,每个6×1的多路复用器可能用于提供输出码元的一个。同样,地址发生器822提供要获取的两个码元的两个地址,并通过它们的地址线提供给两个存储体。
为清楚之故,使用多个存储体的APP存储单元的实现已由W-CDMA标准定义的特定码交织方案而经描述。每个CDMA标准可能定义不同于其它CDMA标准的码交织方案,包括W-CDMA标准。例如,cdma2000标准定义的交织方案,其中行根据比特反转规则被排列,例如行1(“00001”)与行16(“10000”)交换,行3(“00011”)与行24(“11000”)交换等。对这些不同的码交织方案,与存储体相关的行组可能不同于以上为W-CDMA标准定义的交织方案。
为清楚之故,本发明的各个方面已为W-CDMA系统内的下行链路Turbo码而特定描述。这些技术也可能用于W-CDMA系统内的上行链路Turbo码(特别是由于W-CDMA标准规定它们是一样的)。
取决于Turbo交织器,APP存储单元可能用少于六个存储体实现。如上所述,某些行不能在同一组内的限制导致了使用六个存储体。限制来自“分组”交织器结构以及R·C数组的最下面三行可能部分未填满。如果能选择R使得只有最后一行是部分未填满的,则会去掉一些排除限制且APP存储可能只用四个存储体实现。APP存储单元还可能用多于六个存储体实现。例如,存储单元可能对数组的每行用一个存储体实现,或对一行或多行的每个组用一个存储体实现。一般,更多的存储体使得能同时访问(即写和/或读)更多的码元。然而,硬件复杂度一般随着存储体数目增加而增加。可能需要更多的数据和地址线以及多路复用器以支持对更多的存储体的访问。
使用多个存储体实现APP存储单元提供多种好处。第一,由于多个比特的APP数据可能在每个时钟循环上存储/获取,所以可以获得更快的解码时间。因此APP存储可能不是Turbo解码的瓶颈。第二,可能使用较慢的存储器设计和/处理以用于实现APP存储单元。多存储体设计连同并行访问能力可能使得较慢的存储器能提供与较快存储设但带有较弱并行能力的设计相同的吞吐量。
APP存储单元可能用多个存储器结构实现。例如,存储单元的每个存储体可能使用一个或多个存储单元实现,还带有多端口存储单元,带有包括或被分为多个存储体或其它结构的存储单元。存储单元还可能用不同的存储技术实现,诸如例如随机访问存储(RAM)、动态RAM(DRAM)、闪存以及其它。多种存储单元的结构和实现都是可能的且在本发明的范围内。
地址的产生可能用软件、硬件或两者的组合实现。对硬件实现,地址发生器可能(1)实现为一个分开的单元,(2)整合在控制器或存储单元内,(3)实现在还包括其它处理元件的ASIC内,或通过一些其它的设计。地址发生器可能包括用于存储描述存储体的信息的数据结构。数据结构可能还包括用于管理存储体操作的信息。
上述优选实施例的描述使本领域的技术人员能制造或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是显而易见的,这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不限于这里示出的实施例,而要符合与这里揭示的原理和新颖特征一致的最宽泛的范围。
权利要求
1.一种用于存储Turbo解码器的中间结果的缓冲器结构,其特征在于包括多个存储体,用于存储代表中间结果的码元,其中每个存储体与二维数组的一行或多行的多个组的一个相关,该二维数组用于交织相应Turbo编码器的分组内的信息比特,且其中行被选择包括在每个组内,使得缓冲器结构的每个访问循环都能从两个或多个存储体同时访问两个或多个码元。
2.如权利要求1所述的缓冲器结构,其特征在于多个存储体被分为第一和第二集合,且其中第一存储体集合与二维数组的偶数列相关,且其中第二存储体组与二维数组的奇数列相关。
3.如权利要求1所述的缓冲器结构,其特征在于多个存储体被配置为以经交织的顺序存储码元。
4.如权利要求1所述的缓冲器结构,其特征在于对于一特定的访问周期多个存储体可通过经交织寻址模式或线性寻址模式而被访。
5.如权利要求4所述的缓冲器结构,其特征在于经交织的寻址模式对应于对分组内经交织的位置处的码元访问,且其中线性寻址模式对应于在分组内对线性位置处的码元访问。
6.如权利要求4所述的缓冲器结构,其特征在于行被选择包括在每个组内使得在经交织寻址模式时访问的两个或多个相继地址是来自两个或多个组的。
7.如权利要求1所述的缓冲器结构,其特征在于在Turbo编码器的第一组成码的解码期间把码元提供给并以经交织顺序从多个存储体获取。
8.如权利要求1所述的缓冲器结构,其特征在于在Turbo编码器的第二组成码的解码期间把码元提供给并以经交织顺序从多个存储体获取。
9.如权利要求1所述的缓冲器结构,其特征在于在Turbo编码器的第一组成码的解码期间把码元提供给并以经交织顺序从多个存储体获取,且其中在Turbo编码器的第二组成码的解码期间把码元提供给并以经交织顺序从多个存储体获取。
10.如权利要求1所述的缓冲器结构,其特征在于多个存储体被配置为对每个访问周期存储或提供两个或多个码元。
11.如权利要求1所述的缓冲器结构,其特征在于操作多个存储体使得只有一种类型的访问操作写或读在任何特定访问周期上实现。
12.如权利要求1所述的缓冲器结构,其特征在于将各行至少部分根据用于与Turbo编码器相关的码交织方案的一个或多个可能的行内排列序列被分组。
13.如权利要求1所述的缓冲器结构,其特征在于包括至少四个存储体。
14.如权利要求1所述的缓冲器结构,其特征在于包括六个存储体。
15.如权利要求1所述的缓冲器结构,其特征在于还包括操作上耦合到多个存储体的本地存储器并被配置为存储要被Turbo解码器解码的多个信息比特的先验概率(APP)数据。
16.如权利要求15所述的缓冲器结构,其特征在于APP数据是由要解码的信息比特和该信息比特的对应的外部信息的对数似然比(LLRs)形成的。
17.如权利要求1所述的缓冲器结构,其特征在于还包括地址发生器,耦合到多个存储体并用于提供访问多个存储体的地址。
18.如权利要求1所述的缓冲器结构,其特征在于是配置为根据W-CDMA标准定义的Turbo编码器的码交织方案而存储码元。
19.一种Turbo解码器,其特征在于包括组成解码器,用于根据特定的组成码接收经编码的比特并对其进行解码;以及缓冲器,耦合到组成解码器,并用于存储代表Turbo解码器中间结果的码元,其中缓冲器包括多个存储体,每个存储体与二维数组的一行或多行的多个组的一个相关,该二维数组用于交织相应Turbo编码器的分组内的信息比特,且其中行被选择包括在每个组内,使得缓冲器结构的每个访问循环都能从两个或多个存储体同时访问两个或多个码元。
20.如权利要求19所述的Turbo解码器,其特征在于多个存储体被按排成第一和第二集合,且其中第一集合的存储体与二维数组内的偶数列相关,且其中第二集合存储器与二维数组内的奇数列相关。
21.如权利要求19所述的Turbo解码器,其特征在于还包括本地存储单元,操作上耦合到缓冲器和组成解码器并用于存储由组成解码器解码的多个信息比特的先验概率(APP)数据。
22.一种定义用于存储Turbo解码器中间结果的缓冲器结构的方法,其特征在于包括标识缓冲器结构支持的多个寻址模式,其中多个所支持的寻址模式包括经交织的寻址模式和线性寻址模式,其中经交织的寻址模式对应于对要被解码的分组内经交织位置处的码元的访问,线性寻址模式对应于对分组内线性位置处的码元的访问;定义行的两个或多个(NR)组,其中每个组包括二维数组的一行或多行,该二维数组用于交织相应Turbo编码器的分组内的信息比特,且其中行被选择以包括在每个组内,使得经交织的寻址模式期间要访问的两个或多个相继地址来自两个或更多组;定义列的两个或多个(NC)集,其中每个集包括二维数组的一列或多列,且其中列被选择以包括在每个集内,使得线性寻址模式期间要访问的两个或多个相继地址来自两个或更多个集;将缓冲器结构分成多个(NR·NC)存储体;以及将行组和列集的(NR·NC)个联合组合分配给相应的多个存储体之一。
23.如权利要求22所述的方法,其特征在于行至少根据用于与Turbo编码器相关的码交织方案的一个或多个可能的行内排列序列而被分组。
全文摘要
存储Turbo解码器的中间结果的缓冲器结构。为增加访问吞吐量,缓冲器结构设计成支持对每个访问周期对两个或多个比特的APP数据的同时访问。为避免访问争用,存储体被分配到用于码交织的二维数组的行和列使得相继比特的APP数据从不同存储体被访问。为支持“线性”寻址,存储体能被按排为两个集合,它们被分配给数组的偶数和奇数列。为支持“经交织”寻址,存储体可能被分配到数组的行组使得在经交织的数组内的相邻行被分配到不同的组。
文档编号H04L1/00GK1529943SQ02812844
公开日2004年9月15日 申请日期2002年5月9日 优先权日2001年5月11日
发明者许大山, I·姚 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1