四符号并行维特比译码器的制作方法

文档序号:7537789阅读:174来源:国知局
专利名称:四符号并行维特比译码器的制作方法
技术领域
本发明涉及卷积译码,更具体而言涉及并行维特比译码器。
维特比算法被广泛地应用于不同的信号处理系统,例如与通信或存储有关的那些信号处理系统,以对有噪信道上传送的数据进行译码以及校正位错误。
该算法利用了来自发送器的输入位的非随机特性。在发送器上卷积编码器的配置将使得体现输出符号的一些假设位序列不可能。测量在所接收到的符号与可能的位序列之间的距离,并且随着每次接收到的编码符号或“输出符号”被译码而累加这些测量。每次为下一迭代保持最近的序列。在预定数量的迭代之后,建立了足够的可信度,即所确定的最近序列是正确的序列。


图1描绘了用于编码符号的发送器的简单卷积编码器100。它的速率为1/2,因为对于每一个输入位104而言,导出两个输出位,即最高有效位(MSB)108和最低有效位(LSB)112。编码器100具有两个D触发器116、120,它们相互计时以每个输出利用每个时钟脉冲在它们各自的输入上所缓冲的二进制值。三个异或(XOR)门124、128、132执行二进制加法以基于输入104和两个D触发器116、120所缓冲的输入值而在每个时钟脉冲上提供两个输出值108、112。
图2是示出了图1的编码器100的状态以及状态之间的可能转移的状态图200。同样,状态图200定义了编码器100。标记了状态204-216,以使LSB是驻留在最左边的触发器116中的状态。对分支标记进行格式化以示出与两位输出108、112分开一个周期的1位输入值104。以下将结合图4来讨论以粗体形式的分支。
图3是对应于和等价于状态图200的网格(trellis)级300的网格图。级300的表示包括左列304的状态、右列308的状态和状态图200的分支。分支标记出现在状态的左边或右边,而不是分支本身上。最顶部注释属于从该状态发出的最上(或“0”)分支,而底部注释属于下(或“1”)分支。
图4是演示维特比算法的执行的三级网格图400。为了演示的简单起见,假设仅最初有效状态为00,以及圆圈404内的零表示路径度量(metric)为零。路径度量是在所接收到的符号与服从编码器100拓扑的相应值的当前确定的最近序列之间距离的累加度量。在该实例中,进一步假设所接收到的三个符号序列是10 10 11。在每一级中,计算在所接收到的符号和与每一分支相关的编码器输出之间的汉明距离。该汉明距离是各个位之间的绝对差之和。因此,例如,第一符号是“10”,并且如从图3中所看到的,与分支408相关联的输出是“00”。汉明距离因此是1,其出现在图5中的分支408上。通过该简单实例中的第三级,多个分支通向相同的级。例如,分支412、416通向状态00。维特比算法将各个路径度量2和3分别添加到分支412、416的分支度量2和0上,以产生和4和3。由于3小于4,所以3成为状态00的新路径度量,即在级3上的状态00的路径度量。因此数字3出现在圆圈420中。主要的分支在级3中以粗体的形式呈现,并且属于幸存路径。在该实例中的级3中,三个状态为2,但是当逐级进行一直到预定的截断长度时,所述算法倾向收敛于明显幸存的最低路径度量上。在那一点上,能够追溯幸存路径以识别实际被发送的各个输入位序列。
在该实例中,由于最初仅一个状态有效,所以直到第三级才需要路径选择。然而,一旦所有的状态有效,那么在每一级都出现路径选择。尽管在此所使用的度量是汉明距离,但是也可以选择地使用诸如欧几里得距离之类的其他度量。作为另一选择,如果为每一状态的当前路径维持存储,那么不需要执行追溯。
由于使用维特比算法的系统中的数据传送率正在稳定地增加,所以借助于半导体芯片来执行维特比译码以进行快速处理,并且它所需要的处理速度正在不断地增加。
由于包括功率消耗和互补金属氧化物半导体(CMOS)技术的成本的原因,所以并行实施维特比译码器通常与每时钟周期处理诸如位之类的一个样本的位串行方法相比不大昂贵,尽管对更多硅面积或空间占用(footprint)进行了折衷。
根据即将到来的IEEE 802.15-03或“超宽带”(UWB)标准的一个提议,基于每时钟对单个采样或输出符号的译码,维特比译码器应该能够每秒处理480兆位(Mbit/sec)或兆赫(MHz)。然而,优选的是以低得多的频率运行该系统,该频率接近于直接实施所需的480MHz的1/4。它是特别优选的,因为将来UWB标准将以甚至更高的数据率(一直到每秒1吉位(Gbit/s))为目标。
Safavi等人(以下称为“Safavi”)于2002年11月15日提交的题目为“Viterbi Convolutional Coding Method and Apparatus(维特比卷积编码方法和装置)”的美国专利公布2003/0123579 A1并行运行四个独立的维特比译码器以增加总处理速度,但是以功率消耗和空间占用为代价。
本发明用来解决现有技术中的上述缺点。本发明的目的是以减少的空间占用的损失来高速地执行维特比译码。简单地说,本发明包括至少一个用于在并行维特比译码器之间分配卷积编码器的输出符号对的设备。所述一个或多个设备也可以合并译码器的输出以形成译码位流。每个译码器根据从两个组成网格级所形成的网格级操作,以使在该级上正在更新的任何路径度量在该级上被更新不多于一次。
将借助于以下所列的附图来描述在此公开的本发明的细节,其中图1是描绘用于编码符号的发送器的简单卷积编码器的电路图;图2是用于图1的编码器的状态图;图3是表示图2中的状态图和图1中的编码器的网格级的网格图;图4是演示维特比算法的执行的三级网格图;图5是本发明的一个实施例的框图;图6是基于图1编码器的网格级的图,所述网格级根据本发明成对地处理输出符号;图7是示出根据本发明的表示两个组成级的单个维特比级的网格图;图8是演示根据本发明通过将输出符号对的输入流分成重叠块而将作为输入的输出符号对分配给每个维特比译码器的一种方法的格式图;以及图9是本发明的另一实施例。
由于维特比算法的递归特性,所以在维特比算法的并行化潜力中存在若干限制。维特比算法利用了来自发送器的输入位的非随机特性。在发送器上卷积编码器的配置将使体现输出符号的一些假设位序列不可能。测量在所接收到的符号与可能的位序列之间的距离,并且利用每次为下一迭代所保持的最近序列而在符号时间上累加这些测量。
例如,因此知道在符号时间x的累加值以计算在符号时间x+1的累加值的要求限制了执行速度。换句话说,直到已知在级i上的路径度量才能够计算在级i+1上的路径度量。
如果每次即在接收到每一其它符号时,对两个符号执行距离测量和最近序列的选择,那么即使符号的输入流以两倍速度那么快地到达译码器,也还是能够处理它们。回来参考图1,编码器100的一个输入位104产生单个符号108、112。总计产生2个译码位的对符号的并行译码被称为基4译码,因为存在4个可能的值。
然而,即使假设基于各个单个输入位104而在卷积编码器100上产生每一符号,但是如果扩展超过仅仅加倍,例如基数N>4,那么符号的上述聚集在硅面积方面上显示出变得非常昂贵。
粗粒度并行化,即一种增加总处理速度的可选方法,它通过几个各自独立的维特比译码器来将输入位流分成几个并行块以用于处理。该技术也显著增加了硅面积。
根据本发明,两种技术即符号聚集和粗粒度并行化的标度(scale)的螺旋式恶化通过以下而被减轻,即组合这两种技术以实现具有最小空间占用的总处理速度的目的。
作为说明性且非限制性的实例,图5示出了根据本发明在无线接收器的基带单元中使用的以数字信号处理器(DSP)半导体芯片实现的并行维特比译码器。接收器500包括带有天线503的射频(RF)单元502,以及中频(IF)单元504,基带单元506,用于用户接口、音频等的输入/输出(I/O)单元508,以及控制器510,各种单元通过数据/控制总线512相连。
在基带单元506内的DSP 514表示Safavi专利公布号2003/0123579的图3的实施例的自适应,其减少了空间占用,但保持了处理速度。DSP 514包括具有其相关的指令高速缓存518和存储器控制器520的精简指令集计算机(RISC)处理器516;包括4行×8列的阵列RC 524的RC阵列522;上下文(context)存储器526;帧缓冲器528;以及具有其耦合的存储器控制器532的直接存储器存取(DMA)530。DMA530包括SC发生器、交织器引擎、以及DMA控制器534。每个RC包括几个功能单元(例如MAC、算术逻辑单元等)和小寄存器文件,并且优选地通过32位上下文字来配置,然而也能够使用其它位长度。
帧缓冲器528充当用于RC阵列522的内部数据高速缓存,并且能够被实施为双端口存储器。帧缓冲器528通过将计算过程与数据加载和存储过程相重叠来使得存储器访问对RC阵列522是透明的。能够将帧缓冲器528组织为8组N×16个帧缓冲器单元,其中N可以按照期望来定尺寸。因此帧缓冲器210能够在每一时钟周期上向一行的8个RC提供作为两个8位操作数或者一个16位操作数的数据。
上下文存储器526是本地存储器,其中存储了RC阵列522的配置上下文,其非常类似于指令高速缓存。上下文设置的上下文字被广播给一行中的所有八个RC 206。一行中的所有RC 206能够被编程以共享上下文字并且执行相同的操作。因此,RC阵列能够以单指令多数据的形式(SIMD)操作。对于每行而言,可以存在能够在芯片上进行高速缓存的256个上下文字。上下文存储器能够具有双端口接口,以在RC阵列522上执行指令期间使得能够从片外存储器(例如闪速存储器)中加载新的上下文。
包括提取、译码、执行和回写部分的RISC处理器516处理通用操作,并且还控制RC阵列522的操作。它启动与帧缓冲器528之间的所有数据传输,并且经由DMA控制器534将配置加载到上下文存储器526。当不执行正常RISC指令时,RISC处理器516通过发出特殊指令来控制每一周期中RC阵列522内操作的执行,所述特殊指令将SIMD上下文广播到RC 524或者加载在帧缓冲器528和RC阵列522之间的数据。这使得编程简单,因为在任一给定时刻通过系统来运行控制流的一个线程。
根据实施例,将维特比算法分成多个子进程或步骤,其每个通过RC阵列522的多个RC 524来执行,并且其输出为阵列中其他相同或其他RC 524所使用。
在优选实施例中,顶部两行实现一个维特比译码器,以及底部两行提供一个分离的维特比译码器以与另一译码器并行执行维特比译码。通过在将处理单元的Safavi8×8阵列转换为4×8阵列的过程中牺牲位的通用性,即使考虑双符号译码的处理/存储开销,起因于阵列的功率消耗和空间占用也会减少。但是,根据本发明,利用仅仅2个并行译码器,处理速度维持在与Safavi中的4个并行译码器类似的水平上。
图6示出了基于图1中编码器100的网格级600,其根据本发明成对地处理输出符号。回来参考图3,网格级600具有两个组成网格级300。所述组成网格级300是连续的,因此网格级600表示两个时钟脉冲,即两个输入符号和两个输出符号。因此,从顶部开始并且向下进行,在级600中从状态00开始的四个分支的每一分支对应于表示状态00的圆圈604左边的各个注释。例如,底部注释608示出了第一输出符号是“11”,第二输出符号是“10”,并且二者各自的输入位104都是1。因此,从状态“00”开始并且通过对级300的两次迭代的追踪产生状态“11”,这与由图6中网格级600所示的内容相匹配。级600的源和目的状态的每个都具有四个分支注释。尽管在本实例中由于编码器100的结构而存在四个来自每一状态或通向每一状态的分支,但是不同的编码器可以具有来自任一给定状态或通向任一给定状态的较少分支。
图7示出了表示根据本发明被折叠以形成单个级的维特比算法的两个组成级的单个级700。特别地,级700对应于图4的头两级。由于在该实例中使用汉明度量,所以图7的分支度量702-708等于图4中分支度量的相应和。如果使用的度量例如是欧几里得距离,那么不会保持所述后者的等同。每一级对应于从任一有效状态开始的单个分支度量702、704、706、708,并且进一步对应于接收分支的任一状态的单个路径度量更新。每一级也对应于任一追溯过程的单个迭代。因而,通过成对地处理输出符号,处理速度基本上加倍。Safavi DSP的相应修改包括对于符号对修改分支度量计算,为追溯而向每一状态分配两个位而不是一个位,等等。
应该注意,本发明不限于任何特定的分支度量或追溯体系结构。而且,尽管以两个分离的并行维特比译码器来实施图5的实施例,但是两个或更多个所述译码器的任何数量处于本发明打算的范围内。因此,例如可以使用全8×8阵列来实现四个基4译码器,并且从而提供使Safavi设备的处理速度近似加倍。
图8演示了根据本发明的通过将输出符号对的输入流分成重叠块来将作为输入的输出符号对分配到每一维特比译码器的一种方法。在题目为“Parallel Implementation for Viterbi-Based Detection Method”的审理中的共同转让的美国专利公布ID 609443中详细描述了这些技术,其公开内容被全部结合于此以作参考。合并方案804示出了与下一块的开始部分重叠的每一维特比块806、808、810的末端部分。至少一对输出符号为两个重叠块所公用,并且驻留在重叠部分。在合并方案812中,一个块与下一个块之间的重叠覆盖了半个块。合并方案816利用三用重叠部分中的至少一对符号示出了多于一半的块的重叠。
作为选择,当为各个并行维特比译码将输入流分成块时,可以以非重叠的方式分配块。例如,1989年Lin等人在IEEE的“Algorithmsand Architectures for Concurrent Viterbi Decoding”中公开了零移位方法。在零移位方法中,在每块的末端,利用返回到地状态的零来周期性地加载编码器中与图1中的两个触发器116、120相对应的移位寄存器。Lin中所讨论的可选方法是复位方法,其实际上周期性地在移位寄存器中重写所存储的值。
Safavi结合单个维特比译码器讨论了在各个重叠的输入块上的状态度量计算和追溯计算的流水线处理,并且作为优选的替换是滑动窗技术,其消除了重叠的需要。这些方法中的每种同样适于并行译码器。
本发明不限于通过诸如Safavi实施例之类的阵列处理器的实施。代之以,以及如图9所示,多路分解器(demux)单元904例如可以用于将块分配给多个维特比译码器906,通过分离的多路复用器单元908来合并输出以形成译码的位流。在此,每一维特比单元906例如可以独立于其他单元906而执行其相应的维特比译码。
本发明还提供一种用于测试或原型设计系统的装置和方法,该系统包括连同维特比译码器一起的能够处理比单个译码器的带宽高的部件。维特比译码器的组合性能允许进行测试或原型设计。例如,即使图5的RF单元的带宽容量超过一个译码器的带宽容量,只要译码器的组合带宽足够的话,它也能够在接收器500中被测试。
本发明的译码装置还应用于以下系统光盘系统,例如SFFO、DVD、DVD+RW、蓝光光盘;磁光系统,例如小型盘;硬存储系统;以及专业人员和消费者的数字磁带存储系统。
虽然已经示出和描述了所认为的本发明优选实施例,但是当然将会理解,在不脱离本发明的精神的情况下,能够容易地在形式或细节上进行各种修改和改变。因此,打算本发明不限于所述和所示的确切形式,而是应该将其解释为覆盖所有可以落入所附权利要求书的范围内的修改。
权利要求
1.一种维特比译码装置,包括至少一个设备,用于在多个并行维特比译码器之间分配卷积编码器的输出符号对,以及用于合并多个译码器的输出以形成译码的位流;以及多个译码器,每个译码器利用从两个组成网格级形成的网格级来配置,以使在所述级上正在更新的任何路径度量在所述级上被更新不多于一次。
2.权利要求1所述的装置,其中在所述编码器的一个时钟周期中产生所述符号对中的一个符号,所述编码器的时钟周期连续跟随在其中产生另一符号的时钟周期。
3.权利要求1所述的装置,其中配置多个译码器,以使由使用单个所述对的两个符号所计算的分支度量来在所述级上更新这种更新的路径度量。
4.权利要求1所述的装置,其中所述组成网格级是连续的和相同的。
5.权利要求1所述的装置,其中每个组成网格级定义了卷积编码器。
6.权利要求1所述的装置,其被利用总计两个译码器来配置。
7.权利要求6所述的装置,其中所述编码器为每个所述输出符号输入单个位。
8.权利要求1所述的装置,其中在块中划分所述对,所述分配将所述块分配给相应的译码器,每块具有始端和末端,一个决的末端在内容上与下一块的始端重叠以形成两个块的相应重叠区域,所述区域具有共有的至少一个所述对。
9.权利要求1所述的装置,其中在非重叠块之间划分所述对,其中所述分配将块分配给相应的译码器。
10.一种维特比译码方法,包括以下步骤在多个并行维特比译码器之间分配卷积编码器的输出符号对;对具有从两个组成网格级所形成的网格级的多个译码器进行操作,以使在所述级上正在更新的任何路径度量在所述级上被更新不多于一次;以及合并多个译码器的输出以形成译码的位流。
11.权利要求10所述的方法,其中在所述编码器的一个时钟周期中产生所述符号对中的一个符号,所述编码器的时钟周期连续跟随在其中产生另一符号的时钟周期。
12.权利要求10所述的方法,其中所述操作步骤进一步包括以下步骤根据从所述对的一对输出符号所导出的单个相应的分支度量来更新所述任何这种路径度量。
13.权利要求10所述的方法,其中所述组成网格级是连续的和相同的。
14.权利要求10所述的方法,其中每个组成网格级定义了卷积编码器。
15.权利要求10所述的方法,其中多个译码器总计由两个译码器组成。
16.权利要求15所述的方法,其中所述编码器为每个所述输出符号输入单个位。
17.一种用于测试系统的方法,该系统包括使用权利要求10所述方法的权利要求10所述的多个译码器,其中该系统的部件能够以比多个译码器的译码器更高的带宽进行操作,该方法进一步包括以下步骤提供所述系统;以及使用所述维特比译码方法来操作所述系统,所述较高的带宽通过多个译码器的并行性能来提供。
18.权利要求17所述的方法,其中在多个维特比译码器的上游布置所述部件。
19.权利要求10所述的方法,其中分配步骤包括以下步骤在块中划分所述对,以使所述分配将所述决分配给相应的译码器,每块具有始端和末端,一个决的末端在内容上与下一块的始端重叠以形成两个决的相应重叠区域,所述区域具有共有的至少一个所述对。
20.权利要求10所述的方法,其中所述分配步骤包括以下步骤在非重叠块之间划分所述对,以使所述分配将块分配给相应的译码器。
全文摘要
通过并行独立的维特比译码器来实现具有最小空间占用的高速译码,每个所述维特比译码器处理用于每个网格的符号对。用于基带芯片的两个译码器实施例对于超宽带通信是可利用的。
文档编号H03M13/41GK1965487SQ200580010870
公开日2007年5月16日 申请日期2005年4月1日 优先权日2004年4月5日
发明者S·萨维茨基 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1