CN101180800B - 用于在软件无线电系统中使用的涡式译码器及软件无线电系统 - Google Patents
用于在软件无线电系统中使用的涡式译码器及软件无线电系统 Download PDFInfo
- Publication number
- CN101180800B CN101180800B CN2006800173837A CN200680017383A CN101180800B CN 101180800 B CN101180800 B CN 101180800B CN 2006800173837 A CN2006800173837 A CN 2006800173837A CN 200680017383 A CN200680017383 A CN 200680017383A CN 101180800 B CN101180800 B CN 101180800B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- external information
- input data
- memory
- turbo decoder
- 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.)
- Active
Links
Images
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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- 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/6561—Parallelized implementations
-
- 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
- H03M13/2978—Particular arrangement of the component decoders
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Circuits Of Receivers In General (AREA)
- Error Detection And Correction (AREA)
- Transceivers (AREA)
Abstract
一种包括N个处理单元的可重配置turbo译码器。该N个处理单元的每个接收软输入数据采样,并且对接收的软输入数据采样进行译码。该N个处理单元独立地运行,使得第一处理单元可以被选择来对接收的软输入数据采样进行译码,同时第二处理单元可以被禁用。被选择来对软输入数据采样进行译码的处理单元的数量由接收的软输入数据采样的数据率确定。可重配置turbo译码器还包括:N个输入数据存储器,其存储接收的软输入数据采样;以及N个外部信息存储器,其存储由N个处理单元产生的外部信息。该N个处理单元的每个能够从N个输入数据存储器的每个和N个外部信息存储器的每个读取并向N个输入数据存储器的每个和N个外部信息存储器的每个写入。
Description
背景技术
Turbo(涡式)编码是一种功能强大的前向纠错(FEC)算法,其实现接近于Shannon极限的编码增益。已经采用turbo编码器和turbo译码器,用于在包括WCDMA、CDMA2000、IEEE-802.16e(即,WiBro)及其它的多个无线标准的物理层中使用。这些标准以不同数据率运行,并且实现优化来用于仅仅一个或两个特定标准的turbo编码器和turbo译码器。此外,大多数常规的turbo编码器/译码器以相对低的数据率运行。
软件无线电(SDR)设备使用可重配置的硬件,该可重配置的硬件可被无线编程以运行在不同的无线标准下。例如,无线膝上型计算机或PDA中的SDR收发器可通过不同软件负载来配置,以运行在IEEE-802.11x无线网络、CDMA2000无线网络、OFDM/OFDMA无线网络、GSM无线网络或其他类型的网络中。这些无线标准中的很多需要使用turbo译码器。
然而,常规的turbo译码器关于SDR应用具有明显的缺陷。如上所述,常规的turbo译码器已经被优化用于在仅仅一个或两个特定标准下译码。如果需要SDR设备支持许多无线标准,则必须在SDR设备中实现多于一个的turbo译码器。这导致复杂的收发器设计,其低效率地利用芯片空间并且具有高功耗。此外,一些更新的无线标准以相对高的数据率运行(例如,WiBro、HSPDA等)。为低数据率标准在速度和功耗方面优化的turbo译码器不可能为高数据率标准在速度和功耗方面优化,反之亦然。因此,常规的turbo译码器设计不适合用于SDR应用。
因此,本领域需要一种用于在软件无线电(SDR)系统中使用的改进的可重配置turbo译码器。
发明内容
提供了一种可重配置turbo译码器。该可重配置turbo译码器包括N个处理单元,其中N个处理单元的每个接收软输入数据采样,并且对接收的软输入数据采样进行译码。该N个处理单元独立地运行,使得N个处理单元的第一个可被选择来译码接收的软输入数据采样,同时N个处理单元的第二个可以被禁用。被选择来译码接收的软输入数据采样的N个处理单元的数量由接收的软输入数据采样的数据率确定。
在一个实施例中,可重配置turbo译码器还包括存储接收的软输入数据采样的N个输入数据存储器。N个处理单元的每个能够从N个输入数据存储器的每一个读取数据并且将数据写入到N个输入数据存储器的每一个。
在另一实施例中,可重配置turbo译码器还包括存储由N个处理单元产生的外部信息的N个外部信息存储器。N个处理单元的每个能够从N个外部信息存储器的每一个读取外部信息,并且将外部信息写入到N个外部信息存储器的每一个。
在开始下面的具体实施方式之前,提出遍及该专利文献使用的某些词和短语的定义可能是有利的:术语“包括”和“包含”以及其派生,意味着包含而没有限制;术语“或者”是包含性的,意味着和/或;短语“与......关联”和“与其关联”以及其派生,可以意味着包括,被包括在内,互连,包含,被包含在内,连接至或与其连接、耦接至或与其耦接、与其可通信、与其可协作、交织、并列、近似于、限于、具有、具有......性质等;并且术语“控制器”意味控制至少一个操作的任何设备、系统或其部分,该设备可以以硬件、固件或软件、或至少其两个的某些组合来实现。应注意,与任何特定的控制器相关联的功能可以是集中式的或分布式的,本地地或是远程地。遍及该专利文献提供某些词和短语的定义,本领域普通技术人员应当理解,在许多(如果不是大多数)实例中,这样的定义应用到现有技术、以及这样定义的词和短语将来的应用。
附图说明
为了更完全地理解本公开内容及其优点,现在结合附图参考下面的描述,附图中同样的参考标号表示同样的部件:
图1是可以用于实现可重配置turbo译码器的CRISP设备的高层级框图;
图2是可重配置处理系统的高层级框图;
图3是使用至少一个CRISP设备实现可重配置turbo译码器的多标准软件无线电(SDR)系统的高层级框图;
图4是根据本公开内容的原理、在CRISP中实现的可重配置turbo译码 器的框图;
图5是图示根据本公开内容的原理、在可重配置turbo译码器CRISP中的电源管理操作的状态图。
具体实施方式
在此专利文献中,下面讨论的图1到图5以及用于描述本公开内容的原理的各种实施例仅是作为示例,并且不应以任何方式解释为限制本公开内容的范围。本领域技术人员将理解,本公开内容的原理可以在任何合适安排的处理系统中实现。
这里公开的可重配置turbo译码器提供了高度的并行化以支持高数据率标准。WiBro的目标下行链路速率是12Mbps并且HSDPA实现达14.4Mbps的峰值数据率。此外,turbo译码器必须执行多次迭代(iteration)以实现最优性能。公开的turbo译码器架构使用并行化来以高数据率实现必要的吞吐量。
可重配置turbo译码器支持多模式运行,用于在不同通信标准(包括WCDMA、CDMA2000、IEEE-802.16e(即,WiBro)等)中进行译码。公开的turbo译码器还提供可适配性以支持不同数据率。WiBro和WCDMA/HSDPA以许多不同的数据率运行。公开的turbo译码器架构不仅为最大数据率优化,而且为不同数据率范围优化。
可重配置turbo译码器还对不同标准和数据率最小化功耗,这是因为turbo译码器可在手持设备中实现。最后,根据本公开内容的原理的可重配置turbo译码器为终端用户提供灵活性。尽管设计旨在turbo译码,但是该架构不需要严格的参数限制。因此,该设计提供了通用最大后验(MAP)译码器平台,其允许终端用户基于终端用户需求选择参数和算法。
在本公开内容的一实施例中,这里描述的可重配置turbo译码器可以利用基于环境(context)的操作可重配置指令集处理器(CRISP)设备来实现。CRISP设备在美国专利申请序列号11/123,313中详细描述,该申请通过上面的引用并入。
图1是基于环境的操作可重配置指令集处理器(CRISP)100的高层级框图,其可用于实现turbo译码器。CRISP 100包括:存储器110、可编程数据路径电路120、可编程有限状态机130、以及可选程序存储器140。环境是一组与特定功能或应用相关的数据处理器的指令,如turbo译码指令。如美国专 利申请序列号11/123,313中描述的,CRISP 100以最优方式仅实现环境相关的指令的子集合。
基于环境的操作可重配置指令集处理器(CRISP)100定义了通常包括更高层的硬件处理器块的通用硬件块。CRISP 100的主要优点在于CRISP 100将需要的应用划分成两个主要的域,控制域和数据路径域,并且分别优化每个域。通过执行CRISP 100中的turbo译码,公开的turbo译码器减少了与影响常规的turbo译码器的灵活性和功耗相关的问题。
控制域通过可编程有限状态机130实现,其可包括DSP、MCU或另一现有技术设备。通过从外部控制器(未示出)接收的重配置位来配置可编程FSM 130。可编程FSM 130可执行存储在相关联的可选程序存储器140中的程序。该程序可经由来自外部控制器(未示出)的数据线存储在程序存储器140中。存储器110用于存储由数据路径电路120使用的应用数据。
可编程数据路径120被划分成执行特定功能的若干组构造块(例如,寄存器、多路复用器、乘法器等)。每个构造块是可重配置并且可编程的,从而允许最大的灵活性。将可编程数据路径电路120划分成各功能块取决于对于特定应用需要的可重配置性和可编程性的级别。
由于不同环境由独立于其他CRISP设备工作的分别的CRISP设备实现,所以使用一个或多个CRISP设备实现turbo译码器提供了有效的电源管理方案,其能够在不需要CRISP时关闭CRISP。这确保了在给定时间仅仅需要的CRISP是活动的,而其他空闲的CRISP不消耗显著的功率。
图2是根据本公开内容一实施例的可重配置处理系统200的高层级框图。可重配置处理系统200包括N个基于环境的操作可重配置指令集处理器(CRISP),包括示例性CRISP 100a、100b以及100c,其任意标记为CRISP 1、CRISP 2以及CRISP N。可重配置处理系统200还包括:实时序列发生器210、序列程序存储器220、可编程互连构造230、以及缓冲器240和245.
各可重配置位可从控制线经由实时序列发生器210和缓冲器240加载到CRISP 100a、100b以及100c中。控制程序还可从控制线经由缓冲器240加载到序列程序存储器220中。实时序列发生器210通过从程序存储器220取出程序指令并且将各可重配置位发送到CRISP 100a-c,将要由CRISP 100a-c的每个执行的环境排序。在示例性实施例中,实时序列发生器210可包括堆栈处理器,该堆栈处理器由于其低延迟和简单适于作为实时调度器运行。
可重配置互连构造230经由双向缓冲器245,提供CRISP 100a-c的每一个和外部数据总线之间的连接性。在本公开内容的示例性实施例中,CRISP100a-c的每一个可以运行为可重配置互连构造230的主机(master)并且可发起地址访问。可重配置互连构造230的总线辨别器(arbiter)可以在实时序列发生器210的内部。
在示例性实施例中,可重配置处理系统200可以是例如蜂窝电话或类似的无线设备、或者是用于膝上型计算机中使用的数据处理器。在基于软件无线电(SDR)架构的无线设备实施例中,CRISP 100a-c的每一个负责执行与特定可重配置功能相关联的环境相关的指令的子集。例如,CRISP 100a可以被配置来执行环境相关的指令,其处理CDMA基带信号或OFDMA基带信号。CRISP 100b可以被配置为执行环境相关的指令,其运行为存储器控制器。CRISP 100c可以被配置为执行环境相关的指令,其执行turbo译码或Viterbi译码。
由于CRISP设备很大程度上是独立的并且可以同时运行,所以使用一个或更多CRISP设备实现的turbo译码器具有并行化的性能优点,而不导致与运行的并行操作相关联的完全的功率损失。CRISP设备之间的松散耦合和独立性允许它们被配置用于可分别关闭的不同系统和功能。
图3是多标准软件无线电(SDR)系统300的高层级框图,其使用CRISP设备实现可重配置turbo译码器。SDR系统300可包括访问无线网络的无线终端(或移动站、订户站等),如例如GSM或CDMA蜂窝电话、具有WCDMA、IEEE-802.11x、OFDM/OFDMA功能的PDA等。
多标准SDR系统300包括:基带子系统301、应用子系统302、存储器接口(IF)以及外围子系统365、主控制单元(MCU)370、存储器375、以及互连380。MCU 370可以包括例如常规的微控制器或微处理器(例如,x86、ARM、RISC、DSP等)。存储器IF和外围子系统365可将SDR系统300连接到外部存储器(未示出)和外部外围设备(未示出)。存储器375存储来自SDR系统300中其他组件以及来自外部设备(未示出)的数据。例如,存储器375可存储与下变频信号相关联的进入的数据采样流,该下转换信号由与SDR系统300相关联的射频(RF)收发器398和天线399产生。互连380运行为提供子系统301和302、存储器IF和外围子系统365、MCU 370以及存储器375之间的数据传输的系统总线。
基带子系统301包括:实时(RT)序列发生器305、存储器310、基带DSP子系统315、互连325、以及多个专用基于环境的操作指令集处理器(CRISP),包括变换CRISP 100d、芯片率CRISP 100e、CRISP 100f中的turbo译码器、以及位处理单元(BMU)CRISP 100g。作为实例,变换CRISP 100d可实现快速傅立叶变换(FFT)功能、芯片率CRISP 100e可实现CDMA信号的相关功能,并且CRISP 100f中的turbo译码器可实现turbo译码器功能或Viterbi译码器功能。在这样的示例性实施例中,变换CRISP 100d可接收存储在存储器375中的中频(IF)信号的采样,并且执行以基带率产生芯片采样序列的FFT功能。接下来,芯片率CRISP 100e从变换CRISP 100d接收芯片采样,并且执行产生数据码元序列的相关功能。接下来,CRISP 100f中的turbo译码器从芯片率CRISP 100e接收码元数据,并且执行turbo译码或Viterbi译码以恢复基带用户数据。基带用户数据接着可由应用子系统302使用。
在本公开内容的示例性实施例中,CRISP 100f中的turbo译码器可包括并行运行的两个或更多个CRISP。此外,作为实例,BMU CRISP 100g可实现如可变长度编码、循环冗余校验(CRC)、卷积编码等功能。互连325运行为提供RT序列发生器305、存储器310、基带DSP子系统315以及CRISP100d-100g之间的数据传输的系统总线。
应用子系统302包括:实时(RT)序列发生器330、存储器335、多媒体DSP子系统340、互连345以及多媒体宏CRISP 350。多媒体宏CRISP 350包括多个专用基于环境的操作指令集处理器,包括MPEG-4/H.264 CRISP100h、变换CRISP 100i、以及BMU CRISP 100j。在本公开内容的示例性实施例中,MPEG-4/H.264 CRISP 100h执行运动估计功能,并且变换CRISP 100d执行离散余弦变换(DCT)功能。互连3 80提供RT序列发生器330、存储器335、多媒体DSP子系统340、以及多媒体宏CRISP 350之间的数据传输。
在图3的实施例中,CRISP设备的使用使得多标准SDR系统300的应用子系统302能够重配置来支持具有多简档和大小的多个视频标准。此外,CRISP设备的使用使得多标准SDR系统300的基带子系统301能够重配置来支持多个空中接口标准。因此,SDR系统300能够运行在不同类型的无线网络(例如CDMA、GSM、802.11x等)中,并且能够执行不同类型的视频和音频格式。然而,使用根据本公开内容的原理的CRISP使得SDR系统300能够用比具有可比较功能的常规无线设备低得多的功耗来执行这些功能。
图4是根据本公开内容原理的CRISP 100f中的turbo译码器中实现的可重配置turbo译码器的框图。turbo译码器CRISP 100f包括:程序存储器405、配置寄存器文件410、地址产生器415、通信开关420、处理单元430a-430d、输入数据存储器440a-440d、外部信息存储器445a-445d、以及内部总线490。处理单元430a-430d的每一个包括:控制状态机(SM)、最大后验概率(MAP)数据路径、高速缓冲存储器、以及控制寄存器文件。作为实例,处理单元430包括:控制状态机431a、MAP数据路径432a、高速缓冲存储器433a、以及控制寄存器文件434a。尽管在图4中示出了四个处理单元430,但是这只是作为实例。turbo译码器CRISP 100f的其他实施例可以实现少于四个处理单元430或多于四个处理单元430。
通用MAP turbo译码器架构通常包括两个主要功能块:i)软输入、软输出(SISO)级,其实现后验概率(APP)算法;以及ii)交织器/解交织器,其根据交织规则加扰数据,其后面是发送设备中的编码器。译码器的实现需要其他块,如RAM(随机存取存储器),用于存储来自译码器的每次迭代的数据。
turbo译码器CRISP 100f包括常规MAP turbo译码器的所有构造块。在示例性实施例中,MAP数据路径432a-432d实现滑动窗口MAP算法。然而,turbo译码器CRISP 100f的替代实施例可实现非滑动窗口MAP算法。
众所周知,常规的turbo编码器使用两个构成的编码器。第一编码器接收原始比特流并且产生第一奇偶比特流。第二编码器接收原始比特流的交织副本并且产生第二奇偶比特流。由turbo编码器发送的数据包括原始比特流、来自第一编码器的第一奇偶位、以及来自第二编码器的第二奇偶位。
常规的turbo译码器包括两个以迭代方式运行的译码器块。第一译码器块从对应于原始数据位解调器的解调器接收数据采样(软值),并且从第一编码器接收第一奇偶位。第一译码器块使用原始数据位和第一奇偶位来估计每个原始数据位的值为为1或0的概率。第二译码器块从对应于交织的原始数据位解调器接收数据采样(软值),从第二编码器接收第二奇偶位,并且从第一译码器块接收概率估计值解调器。由两个译码器块译码的过程包括turbo译码器的一次迭代。常规的turbo译码器可执行固定数量的迭代,或者可执行迭代直到一些外部机制确定额外的迭代将不改进特定数据帧的位误差率(BER)为止。然后对最后的软输出进行硬判决,以确定原始数据位。
众所周知,MAP算法是类似于Viterbi算法的网格译码算法。两个译码器块中的MAP算法对软输入(即,解调器输出和概率估计)操作并且产生软输出。由一个译码器块为一次迭代执行的MAP算法的计算可以总结如下。在第一步骤中,常规的MAP算法对网格的所有分支计算并存储被称为gamma(或γ)值的分支测量值。该分支测量值等于硬编码器值与来自解调器的软接收值之间的距离的相反数的指数函数除以信道噪声变量再乘以来自先前译码器的概率估计值。
在第二步骤中,常规的MAP算法对网格执行前向递归。前向递归对网格中的每个节点计算alpha(或α)值。α值是下面的和:i)先前的α值乘以沿来自先前节点的一条分支的分支测量值;以及ii)先前的α值乘以沿来自先前节点的另一条分支的分支测量值。在第三步骤中,常规的MAP算法对网格执行后向递归。后向递归对网格中的每个节点计算beta(或β)值。β值以类似于α值的方式计算,除非后向递归在网格的结束开始并且以相反的方向进展。
在第四步骤中,常规的MAP算法对每个时刻t计算对数似然比率(LLR或λ)值。该值是在与编码器中的1值相关联的时刻t每个分支α、β与λ值的乘积的和除以在与编码器中的0值相关联的时刻t每个分支α、β与λ值的乘积的和。最后,常规的MAP算法计算要在迭代序列中发送到下一译码器的外部信息。外部信息是LLR值减去输入概率估计值。
上述的计算由两个译码器块的每个在每次迭代中重复。在计算所有迭代后,译码的信息位可以通过检查LLR值的符号位来检测。如果LLR值是正的,则数据位为1。如果LLR值是负的,则数据位为0。作为替代,LLR值可以被输出到对每个数据位进行判断的外部设备。
在turbo译码器CRISP 100f中,上述的计算由MAP数据路径432a、432b、432c以及432d执行。α、β和λ的值暂时存储在高速缓冲存储器433a、433b、433c、以及433d中。来自每个译码块的每次迭代的外部信息经由通信开关420存储在外部信息存储器445a、445b、445c和445d中。
在示例性实施例中,MCU 370将配置程序和配置数据经由外部系统总线(即,互连325)加载到turbo译码器CRISP 100f中。配置程序被存储在程序存储器405中。MCU 370将配置数据加载到配置寄存器文件410和控制寄存器文件434a-434d中,以便初始化寄存器文件。配置寄存器文件410和控制 寄存器文件434a-434d被用于控制在应用中使用处理单元430a-430d、输入数据存储器440a-440d、以及外部信息存储器445a-445d中的哪个。配置寄存器文件410将使能(EN)信号提供给控制处理单元430、输入数据存储器440、以及外部信息存储器445。turbo译码器CRISP 100f经由系统总线(即互连325)读取输入数据采样并且写入译码的输出数据。
为了实现高译码率,turbo译码器CRISP 100f实现N个并行处理单元430a-430d。在该实例中,N=4。处理单元430a-430d是独立的并且彼此相同。处理单元430a-430d的每一个能够经由通信开关420,连接到输入数据存储器440a-440d的每一个以及外部信息存储器445a-445d。对于较高的数据率标准,所有处理单元430a-430d可以同时并且并行运行。对于较低的数据率标准,一个或多个处理单元430a-430d可以被设置为休眠模式(即去激活或禁用)以便减少功耗。
如上所述,处理单元430a-430d的每一个包括:控制状态机431、MAP数据路径432、高速缓冲存储器433以及控制寄存器文件434。在turbo译码器CRISP 100f的示例性实施例中,每个处理单元430一次处理两个软输入数据采样。两个软输入数据采样对应两个数据码元。在示例性实施例中,每个软输入数据采样可包括8位。
MAP数据路径432对网格执行前向和后向递归两者。在前向递归中,必须访问输入码元和外部信息两者以计算分支测量值γ。为了减少存储器访问功耗,可将γ值计算并存储在每个处理单元430中的高速缓冲存储器433中。如果α、β和λ的值没有被同时计算,则α值还可以被存储在高速缓冲存储器430中以减少数据移动和功耗。
MAP数据路径432可并行或以相继(或顺序)的顺序计算α、β和λ。并行执行较快,但是需要更多管芯(die)空间和功耗。相继执行导致较长的延迟,但是需要较少的管芯空间和较少的功耗。在示例性实施例中,MAP数据路径430a-430d的每个顺序计算α、β和λ。
控制状态机431对来自经由内部总线490接收的程序存储器的指令进行译码,并且控制处理单元430的整体操作和配置。由于turbo译码器CRISP 100f可以计算大指令循环,所以控制状态机431可使用硬件循环以减少开销和功耗。
turbo译码器CRISP 100f中存在八个存储器块:四个输入数据存储器440, 其保持输入数据(或码元)采样;以及四个外部信息存储器445,其保持在turbo译码器的每次迭代中产生的外部信息。将八个存储器块划分为四组。每个存储器组包括一个输入数据存储器440和一个外部信息存储器445。作为实例,输入数据存储器440a和外部信息存储器445a形成第一存储器组,输入数据存储器440b和外部信息存储器445b形成第二存储器组,等等。
处理单元430a-430d的每一个一次读写到一个存储器组。处理单元430a-430d的每一个能够写入到存储器组的每一个。因此,没有存储器组被专用于特定的处理单元430。例如,处理单元430a可在一个存储器循环期间通过通信开关420连接到第一存储器组(例如,存储器440a和445a),并且可在另一个存储器循环期间从另一个存储器组(例如,存储器440c和445c)读取数据并且将数据写入该另一个存储器组。
通信开关420动态地控制处理单元430a-430d以及由存储器440a-440d和存储器445a-445d组成的存储器组之间的连接。连接顺序或模式通过地址产生器415的操作确定。在本公开内容的一个实施例中,地址产生器415可以由存储器实现。在这样的实施例中,外部控制DSP/MCU(如MCU 370)离线预计算turbo译码器的交织器模式,并且在初始化阶段期间将交织器模式写入到地址产生器415的存储器。在本公开内容的另一个实施例中,地址产生器415可被指定来实时产生交织器模式。
图5描述状态图500,其图示根据本公开内容的原理的turbo译码器CRISP 100f中的电源管理操作。在示例性实施例中,turbo译码器CRISP 100f在MCU 370的控制下在多个电源管理模式下运行,即关闭模式510、唤醒模式520、空闲模式530、休眠模式540和活动模式550。在替代实施例中,turbo译码器CRISP 100f可以在基带DSP子系统315的控制下在不同电源管理模式下运行。
在关闭模式510中,turbo译码器CRISP 100f完全关闭并且所有时钟关闭。在唤醒模式520中,加载程序存储器405并且配置配置寄存器文件410和控制寄存器文件434。然而,时钟信号仅连接到程序存储器405、寄存器文件410和434、以及相关电路。在空闲模式530中,将时钟信号提供到处理单元430a-430d,并且开启一些存储器组使得存储器组可接收输入数据采样。在休眠模式550中,选通提供给处理单元430a-430d、地址产生器415以及一些存储器组的时钟信号。在活动模式550中,turbo译码器CRISP 100f正常运 行。在活动模式550中,使用的唯一的电源管理技术是运行时钟频率的缩放。
在系统重置时,turbo译码器CRISP 100f处于关闭模式510中。一旦MCU370将配置程序和数据加载到程序存储器405、配置寄存器文件410、和/或控制寄存器文件434a-434d中,turbo译码器CRISP 100f的状态就改变为唤醒模式520,在该点仅仅激活程序存储器405、配置寄存器文件410、和/或控制寄存器文件434a-434d以及相关电路。
一旦turbo译码器CRISP 100f结束一帧数据的处理,就将其设置为空闲模式530。在空闲模式530中,turbo译码器CRISP 100f可以从外部总线(即,互连325)接收输入数据采样。一旦输入数据完全加载到输入数据存储器440a-440d中,turbo译码器CRISP 100f就重新进入活动模式550并且继续处理。
如果处理单元430、输入数据存储器440a-440d以及外部信息存储器445a-445d中的一些不使用,则那些组件的时钟信号可以被关闭以将那些组件置于休眠模式540中。使用中的处理单元430、输入数据存储器440a-440d、以及外部信息存储器445a-445d仍然处于活动模式550中。该方案降低了功率。如果处理单元在使用中,但是一段时间没有指令执行,则可以将NOP指令手动或自动地插入。NOP指令仅激活最小量的硬件。这也减少了当处理单元处于活动模式550中时的功耗。
尽管已经用示例性实施例描述了本公开内容,但是对本领域技术人员可以建议各种变化和修改。本发明意图包括落入权利要求书的范围中的变化和更改。
Claims (27)
1.一种可重配置turbo译码器,包括:
N个处理单元,该N个处理单元的每个能够接收软输入数据采样并且对接收的软输入数据采样进行译码,其中该N个处理单元独立地运行,使得N个处理单元的第一个被选择来对接收的软输入数据采样进行译码,同时N个处理单元的第二个被禁用。
2.如权利要求1所述的可重配置turbo译码器,其中被选择来对接收的软输入数据采样进行译码的N个处理单元的数量由接收的软输入数据采样的数据率确定。
3.如权利要求1所述的可重配置turbo译码器,还包括N个输入数据存储器,其能够存储接收的软输入数据采样,其中该N个处理单元的每个能够从N个输入数据存储器的每个中读取软输入数据采样,并且将软输入数据采样写入到N个输入数据存储器的每个中。
4.如权利要求3所述的可重配置turbo译码器,其中该N个输入数据存储器独立地运行,使得该N个输入数据存储器的第一个被选择来存储至少一些接收的软输入数据采样,同时N个输入数据存储器的第二个被禁用。
5.如权利要求4所述的可重配置turbo译码器,其中被选择来存储至少一些接收的软输入数据采样的N个输入数据存储器的数量,由接收的软输入数据采样的数据率确定。
6.如权利要求3所述的可重配置turbo译码器,还包括N个外部信息存储器,其能够存储由N个处理单元产生的外部信息,其中该N个处理单元的每个能够从N个外部信息存储器的每个读取外部信息,并且将外部信息写入到N个外部信息存储器的每个。
7.如权利要求6所述的可重配置turbo译码器,其中该N个外部信息存储器独立地运行,使得N个外部信息存储器的第一个被选择来存储由N个处理单元产生的至少一些外部信息,同时N个外部信息存储器的第二个被禁用。
8.如权利要求7所述的可重配置turbo译码器,其中被选择来存储由N个处理单元产生的至少一些外部信息的N个外部信息存储器的数量,由接收的软输入数据采样的数据率来确定。
9.如权利要求6所述的可重配置turbo译码器,其中N个处理单元通过通信开关耦接到N个输入数据存储器和N个外部信息存储器。
10.一种软件无线电SDR系统,其能够在多个无线通信标准下运行,该SDR系统包括:
射频RF收发器,其能够接收进入的RF信号并产生下变频的信号;以及
可重配置turbo译码器,其能够接收与下变频的信号相关联的软输入数据采样,该可重配置turbo译码器包括:
N个处理单元,该N个处理单元的每个能够接收软输入数据采样并且对接收的软输入数据采样进行译码,其中该N个处理单元独立地运行,使得N个处理单元的第一个被选择来对接收的软输入数据采样进行译码,同时N个处理单元的第二个被禁用。
11.如权利要求10所述的软件无线电SDR系统,其中被选择来对接收的软输入数据采样进行译码的N个处理单元的数量由接收的软输入数据采样的数据率确定。
12.如权利要求10所述的软件无线电SDR系统,其中该可重配置turbo译码器还包括N个输入数据存储器,其能够存储接收的软输入数据采样,其中该N个处理单元的每个能够从N个输入数据存储器的每个中读取软输入数据采样,并且将软输入数据采样写入到N个输入数据存储器的每个中。
13.如权利要求12所述的软件无线电SDR系统,其中该N个输入数据存储器独立地运行,使得N个输入数据存储器的第一个被选择来存储至少一些接收的软输入数据采样,同时N个输入数据存储器的第二个被禁用。
14.如权利要求13所述的软件无线电SDR系统,其中被选择来存储至少一些接收的软输入数据采样的N个输入数据存储器的数量由接收的软输入数据采样的数据率确定。
15.如权利要求12所述的软件无线电SDR系统,其中可重配置turbo译码器还包括N个外部信息存储器,其能够存储由N个处理单元产生的外部信息,其中该N个处理单元的每个能够从N个外部信息存储器的每个读取外部信息,并且将外部信息写入到N个外部信息存储器的每个。
16.如权利要求15所述的软件无线电SDR系统,其中该N个外部信息存储器独立地运行,使得该N个外部信息存储器的第一个被选择来存储由N个处理单元产生的至少一些外部信息,同时N个外部信息存储器的第二个被禁用。
17.如权利要求16所述的软件无线电SDR系统,其中被选择来存储由N个处理单元产生的至少一些外部信息的N个外部信息存储器的数量由接收的软输入数据采样的数据率确定。
18.如权利要求17所述的软件无线电SDR系统,其中该N个处理单元通过通信开关耦接到N个输入数据存储器和N个外部信息存储器。
19.一种运行可重配置turbo译码器的方法,该可重配置turbo译码器包括能够对接收的软输入数据采样进行译码的N个独立的处理单元,该方法包括下列步骤:
选择N个输入单元的至少一个来接收软输入数据采样;
在选择的至少一个处理单元中,译码至少一些接收的软输入数据采样;以及
禁用该N个处理单元的至少一个,同时被选择的至少一个处理单元对接收的软输入数据采样进行译码。
20.如权利要求19所述的运行可重配置turbo译码器的方法,其中被选择来对接收的软输入数据采样进行译码的N个处理单元的数量由接收的软输入数据采样的数据率确定。
21.如权利要求19所述的运行可重配置turbo译码器的方法,还包括将接收的软输入数据采样存储在N个输入数据存储器中的步骤,其中N个处理单元的每个能够从N个输入数据存储器的每个中读取软输入数据采样,并且将软输入数据采样写入到N个输入数据存储器的每个中。
22.如权利要求21所述的运行可重配置turbo译码器的方法,该N个输入数据存储器独立地运行,使得N个输入数据存储器的第一个被选择来存储至少一些接收的软输入数据采样,同时N个输入数据存储器的第二个被禁用。
23.如权利要求22所述的运行可重配置turbo译码器的方法,其中被选择来存储至少一些接收的软输入数据采样的N个输入数据存储器的数量由接收的软输入数据采样的数据率来确定。
24.如权利要求21所述的运行可重配置turbo译码器的方法,还包括将由N个处理单元产生的外部信息存储在N个外部信息存储器中的步骤,其中该N个处理单元的每个能够从N个外部信息存储器读取外部信息,并且将外部信息写入到N个外部信息存储器的每个。
25.如权利要求24所述的运行可重配置turbo译码器的方法,其中该N个外部信息存储器独立地运行,使得N个外部信息存储器的第一个被选择来存储由N个处理单元产生的至少一些外部信息,同时N个外部信息存储器的第二个被禁用。
26.如权利要求25所述的运行可重配置turbo译码器的方法,其中被选择来存储由N个处理单元产生的至少一些外部信息的N个外部信息存储器的数量由接收的软输入数据采样的数据率确定。
27.如权利要求24所述的运行可重配置turbo译码器的方法,其中该N个处理单元通过通信开关被耦接到N个输入数据存储器和N个外部信息存储器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68233805P | 2005-05-18 | 2005-05-18 | |
US60/682,338 | 2005-05-18 | ||
US11/225,479 US7571369B2 (en) | 2005-02-17 | 2005-09-13 | Turbo decoder architecture for use in software-defined radio systems |
US11/225,479 | 2005-09-13 | ||
PCT/KR2006/001866 WO2006123908A1 (en) | 2005-05-18 | 2006-05-18 | Turbo decoder architecture for use in software-defined radio systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101180800A CN101180800A (zh) | 2008-05-14 |
CN101180800B true CN101180800B (zh) | 2012-05-23 |
Family
ID=37431453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800173837A Active CN101180800B (zh) | 2005-05-18 | 2006-05-18 | 用于在软件无线电系统中使用的涡式译码器及软件无线电系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7571369B2 (zh) |
KR (1) | KR101176690B1 (zh) |
CN (1) | CN101180800B (zh) |
RU (1) | RU2383992C2 (zh) |
WO (1) | WO2006123908A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2891419A1 (fr) * | 2005-09-23 | 2007-03-30 | St Microelectronics Sa | Decodage d'une pluralite de flux d'informations codees selon un algorithme de codage par blocs. |
US7509141B1 (en) * | 2005-09-29 | 2009-03-24 | Rockwell Collins, Inc. | Software defined radio computing architecture |
US7917834B2 (en) * | 2005-12-08 | 2011-03-29 | Electronics And Telecommunications Research Institute | Apparatus and method for computing LLR |
US20070279217A1 (en) * | 2006-06-01 | 2007-12-06 | H-Micro, Inc. | Integrated mobile healthcare system for cardiac care |
US8160251B1 (en) * | 2006-07-19 | 2012-04-17 | Rockwell Collins, Inc. | Scalable distributed software defined radio (SDR) and mission computing architecture |
WO2009026289A2 (en) | 2007-08-20 | 2009-02-26 | Hmicro, Inc. | Wearable user interface device, system, and method of use |
US8926509B2 (en) * | 2007-08-24 | 2015-01-06 | Hmicro, Inc. | Wireless physiological sensor patches and systems |
US8611319B2 (en) * | 2007-10-24 | 2013-12-17 | Hmicro, Inc. | Methods and apparatus to retrofit wired healthcare and fitness systems for wireless operation |
WO2009055423A1 (en) | 2007-10-24 | 2009-04-30 | Hmicro, Inc. | Low power radiofrequency (rf) communication systems for secure wireless patch initialization and methods of use |
US8576955B2 (en) * | 2008-03-28 | 2013-11-05 | Qualcomm Incorporated | Architecture to handle concurrent multiple channels |
US8665996B2 (en) | 2008-04-01 | 2014-03-04 | Qualcomm Incorporated | Efficient parallel sub-packet decoding using multiple decoders |
US8811452B2 (en) * | 2009-12-08 | 2014-08-19 | Samsung Electronics Co., Ltd. | Method and apparatus for parallel processing turbo decoder |
US10784901B2 (en) | 2015-11-12 | 2020-09-22 | Qualcomm Incorporated | Puncturing for structured low density parity check (LDPC) codes |
EP3381128B1 (en) * | 2015-11-24 | 2020-01-01 | Coherent Logix, Incorporated | Memory management and path sorting in a polar code successive cancellation list decoder |
US11043966B2 (en) | 2016-05-11 | 2021-06-22 | Qualcomm Incorporated | Methods and apparatus for efficiently generating multiple lifted low-density parity-check (LDPC) codes |
US10454499B2 (en) | 2016-05-12 | 2019-10-22 | Qualcomm Incorporated | Enhanced puncturing and low-density parity-check (LDPC) code structure |
US9917675B2 (en) | 2016-06-01 | 2018-03-13 | Qualcomm Incorporated | Enhanced polar code constructions by strategic placement of CRC bits |
US10313057B2 (en) | 2016-06-01 | 2019-06-04 | Qualcomm Incorporated | Error detection in wireless communications using sectional redundancy check information |
US10291354B2 (en) | 2016-06-14 | 2019-05-14 | Qualcomm Incorporated | High performance, flexible, and compact low-density parity-check (LDPC) code |
SG11201810437XA (en) | 2016-07-27 | 2019-02-27 | Qualcomm Inc | Design of hybrid automatic repeat request (harq) feedback bits for polar codes |
US10312939B2 (en) | 2017-06-10 | 2019-06-04 | Qualcomm Incorporated | Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code |
JP6912648B2 (ja) | 2017-07-07 | 2021-08-04 | クアルコム,インコーポレイテッド | 低密度パリティ検査コードのベースグラフ選択を適用する通信技法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1288292A (zh) * | 1999-09-13 | 2001-03-21 | 深圳市华为技术有限公司 | 一种串/并行级联卷积码译码器及其译码实现方法 |
JP2001156651A (ja) * | 1999-11-22 | 2001-06-08 | Matsushita Electric Ind Co Ltd | ビタビ復号器 |
CN1327653A (zh) * | 1999-10-05 | 2001-12-19 | 三星电子株式会社 | 移动通信系统中的分量解码器及其方法 |
CN1330455A (zh) * | 2000-06-19 | 2002-01-09 | 三菱电机株式会社 | Turbo(涡轮)码的译码电路和编码译码电路 |
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252917B1 (en) * | 1998-07-17 | 2001-06-26 | Nortel Networks Limited | Statistically multiplexed turbo code decoder |
ATE270795T1 (de) * | 1998-09-28 | 2004-07-15 | Comtech Telecomm Corp | Turbo produktkode decodierer |
KR20010008761A (ko) * | 1999-07-03 | 2001-02-05 | 윤종용 | 병렬 가산비교선택회로 및 트레이스백 구조를 채용한 이동국용고속 비터비 디코더 |
JP3730885B2 (ja) | 2001-07-06 | 2006-01-05 | 株式会社日立製作所 | 誤り訂正ターボ符号の復号器 |
ATE378735T1 (de) * | 2002-07-01 | 2007-11-15 | Ericsson Telefon Ab L M | Verfahren zur iterativen decodierereinteilung |
-
2005
- 2005-09-13 US US11/225,479 patent/US7571369B2/en active Active
-
2006
- 2006-05-18 RU RU2007142366/09A patent/RU2383992C2/ru active
- 2006-05-18 KR KR1020077029643A patent/KR101176690B1/ko active IP Right Grant
- 2006-05-18 CN CN2006800173837A patent/CN101180800B/zh active Active
- 2006-05-18 WO PCT/KR2006/001866 patent/WO2006123908A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1288292A (zh) * | 1999-09-13 | 2001-03-21 | 深圳市华为技术有限公司 | 一种串/并行级联卷积码译码器及其译码实现方法 |
CN1327653A (zh) * | 1999-10-05 | 2001-12-19 | 三星电子株式会社 | 移动通信系统中的分量解码器及其方法 |
JP2001156651A (ja) * | 1999-11-22 | 2001-06-08 | Matsushita Electric Ind Co Ltd | ビタビ復号器 |
CN1330455A (zh) * | 2000-06-19 | 2002-01-09 | 三菱电机株式会社 | Turbo(涡轮)码的译码电路和编码译码电路 |
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
Non-Patent Citations (1)
Title |
---|
CN 1330455 A,全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2006123908A1 (en) | 2006-11-23 |
KR20080027464A (ko) | 2008-03-27 |
CN101180800A (zh) | 2008-05-14 |
RU2007142366A (ru) | 2009-05-27 |
US20060184855A1 (en) | 2006-08-17 |
RU2383992C2 (ru) | 2010-03-10 |
KR101176690B1 (ko) | 2012-08-23 |
US7571369B2 (en) | 2009-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101180800B (zh) | 用于在软件无线电系统中使用的涡式译码器及软件无线电系统 | |
KR101175826B1 (ko) | 소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법 | |
US7895497B2 (en) | Apparatus and method using reduced memory for channel decoding in a software-defined radio system | |
CN101682336B (zh) | 用于卷积、Turbo和LDPC码的统一解码器 | |
US7984368B2 (en) | Method and system for increasing decoder throughput | |
KR20010072498A (ko) | 맵 디코더용 분할 디인터리버 메모리 | |
US7669105B2 (en) | Generic maximum aposteriori probability decoder for use in software-defined radio systems | |
WO2004062111A1 (en) | High speed turbo codes decoder for 3g using pipelined siso log-map decoders architecture | |
US7802170B2 (en) | Unified stopping criteria for binary and duobinary turbo decoding in a software-defined radio system | |
US8069401B2 (en) | Equalization techniques using viterbi algorithms in software-defined radio systems | |
US8032811B2 (en) | Efficient almost regular permutation (ARP) interleaver and method | |
US7979781B2 (en) | Method and system for performing Viterbi decoding using a reduced trellis memory | |
US7752530B2 (en) | Apparatus and method for a collision-free parallel turbo decoder in a software-defined radio system | |
Vogt et al. | A reconfigurable applcation specific instruction set processor for viterbi and log-map decoding | |
Mathana et al. | Low complexity reconfigurable turbo decoder for wireless communication systems | |
Huang et al. | A high speed turbo decoder implementation for CPU-based SDR system | |
Asghar et al. | Implementation of a Radix-4, parallel turbo decoder and enabling the multi-standard support | |
Berns et al. | Channel decoder architecture for 3G mobile wireless terminals | |
Dielissen et al. | Power-efficient layered Turbo Decoder processor | |
Lapotre et al. | A reconfigurable multi-standard ASIP-based turbo decoder for an efficient dynamic reconfiguration in a multi-ASIP context | |
Lapotre et al. | Optimizations for an efficient reconfiguration of an ASIP-based turbo decoder | |
Alles et al. | FlexiChaP: A dynamically reconfigurable asip for channel decoding for future mobile systems | |
der Kanalcodierung | Hardware-/Software Trade-Offs in Digital Communication Systems with Special Emphasis on Channel-Coding | |
Nicol et al. | DSP Architectures for Next-Generation Wireless Communications | |
Taniguchi et al. | Two-stage configurable decoder model for multiple forward error correction standards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |