CN101018103A - 处理单元和处理方法 - Google Patents

处理单元和处理方法 Download PDF

Info

Publication number
CN101018103A
CN101018103A CNA2006101003464A CN200610100346A CN101018103A CN 101018103 A CN101018103 A CN 101018103A CN A2006101003464 A CNA2006101003464 A CN A2006101003464A CN 200610100346 A CN200610100346 A CN 200610100346A CN 101018103 A CN101018103 A CN 101018103A
Authority
CN
China
Prior art keywords
data
register
processing unit
digital signal
signal processor
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
Application number
CNA2006101003464A
Other languages
English (en)
Other versions
CN101018103B (zh
Inventor
山中隆太郎
铃木秀俊
芜尾英之
冈本稔
M·K·斯通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101018103A publication Critical patent/CN101018103A/zh
Application granted granted Critical
Publication of CN101018103B publication Critical patent/CN101018103B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6563Implementations using multi-port memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

从路径量度存储装置1中读取两个路径量度(PM0,PM1),从分支量度存储装置3中读取两个分支量度(BM0,BM1)。由比较装置5、加法装置6、比较结果存储装置7和选择装置8使用PM0+MB0和PM1+BM1来执行ACS运算。与此ACS运算平行,由比较装置9、加法装置10、比较结果存储装置11和选择装置12使用PM0+MB1和PM1+BM0来执行ACS运算。

Description

处理单元和处理方法
本申请为1998年6月29日提交的、申请号为03145161.6、发明名称为《处理单元和处理方法》的发明专利申请的分案申请。
技术领域
本发明涉及安装在移动通信设备中用于进行Viterbi译码的ASC(加法、比较和选择)运算的处理单元。
背景技术
在移动无线电通信网络的数据通信中,由于频繁地发生位差错(bit error),所以需要执行纠错处理。在纠错方法中,有一种通过在接收机一侧进行Viterbi译码而对输入位中产生的卷积码进行译码的方法。在纠错处理中,使用数字信号处理器(以下叫做“DSP”)。
Viterbi译码重复诸如加法、比较和选择等简单处理并对最终的数据进行追溯(trace-back)处理,从而对卷积码实现最大似然译码。
以下将简要说明Viterbi译码处理。通过对输入位及其前面的固定数目的位进行模2加来产生卷积码。然后,产生的多个编码数据相应于输入位的一个位。把对编码数据有影响的输入信息位的数目叫做约束长度(K)。输入信息位的数目等于在模2加中所使用的移位寄存器的级数。
由输入位和先前(K-1)输入位的状态来确定编码数据。当输入新的信息位时,输入位的状态转变到新的状态。由新的输入位是“0”还是“1”来确定编码数据转变的状态。由于各个(K-1)位为“1”或“0”,所以编码数据转变状态的数目变为2(K-1)
在Viterbi译码中,观察接收到的编码数据序列,从所有可获得的状态转变中估计最可能的状态。为此,每当编码数据(接收到的数据序列)相应于信息位的一个位时,计算到该点处每个状态的各个路径的信号间距离(量度(metric))。然后,依次重复如下操作,即在到达相同的状态的路径中留下具有较小量度的路径作为幸存者。
如图1的状态转变图所示,在具有约束长度K的卷积编码器中,每个都示出从前一点处的状态S[n]和S[n+2(K-2)]中每个状态的状态转变的两个路径延伸到某一点处的一个状态S[2n](n=正整数)。例如,在K=3的情况下,在n=1时,从S[1](状态S01)和S[3](状态S11)中的每个状态到S[2](状态S10)(前两位按“1”和“0”的顺序输入的状态)的转变是可能的。此外,在n=2时,从S[2](状态S10)和S[4](状态S00)中的每个状态到S[4](状态S00)(由低阶的两位所示的状态)的转变是可能的。
路径量度“a”是输入到状态S[2n]的路径输出符号(symbol)和接收到的数据序列之间的信号间距离(分支(metric)量度)与路径量度“A”之和。路径量度“A”是到达前一状态处状态S[n]的幸存路径的分支量度的总和。同样,路径量度“b”为输入到状态S[2n]的路径输出符号和接收到的数据序列之间的信号间距离(分支量度)“y”与路径量度“B”之和。路径量度“B”为到达前一点处状态S[n+2(K-2)]的幸存路径的分支量度的总和。在Viterbi译码中,把输入到状态S[2n]的路径量度“a”和“b”相互比较,并选中较小的路径作为幸存路径。
在Viterbi译码中,相对于每个点处的2(K-2)状态执行的每个处理包括获得路径量度的加法、在路径量度之间进行比较和选择路径。此外,在选择路径时,留下示出选中哪一个路径的历史作为路径选择信号PS[i],[I=0到2(k-2)-1]。
此时,如果被选中路径的前一状态的下标(subscript)(例如,n)小于另一个未选中路径的前一状态的下标(n+2(K-2)),则建立PS[i]=0。如果下标(n)比标记(n+2(K-2))大,则建立PS[i]=1。
在图1的情况下,由于建立了n<(n+2(K-2)),所以在a>b时选中状态S[n+2(K-2)]并建立PS[S2n]=1,在a≤b时选中状态S[n]并建立PS[S2n]=0。
然后,在Viterbi译码中,对数据进行译码,同时根据路径选择信号追溯到最后幸存的路径。
以下将说明由于Viterbi译码的常规处理单元TMS320C54x,它是作为一个例子给出的普通处理单元(由TEXAS INSTRUMENTS所制造,以下叫做“C54x”)。在GSM蜂窝式无线电系统中,把以下给出的公式(1)用作一种卷积码。
G1(D)=1+D3+D4
G2(D)=1+D+D3+D4                                    …(1)
由图2所示的蝶形结构的网格图来表示以上的卷积码。网格图示出卷积码从某一状态转变到另一状态的情况。我们假设约束长度为K。对每个符号部分呈现出状态2(K-2)=16或8的蝶形结构。然后,把两个分支输入每个状态,由ACS运算来确定新的路径量度。
可把分支量度定义为以下的公式(2)。
M=SD(2*i)*B(J,0)+SD(2*i+1)*B(j,1)                …(2)
这里SD(2*i)代表软判决输入的符号量度的第一符号,SD(2*i+1)代表符号量度的第二符号。B(J,0)和B(j,1)与由图3所示的卷积编码器所产生的代码一致。
在C54x中,把算术逻辑部分(以下叫做“ALU”)设定为双16位模式,从而以高速来处理蝶形结构。通过根据DSADT指令来平行地计算两个路径量度(2*J和2*J+1)和分支量度(M和-M)并根据CMPS指令来执行比较,可获得对新路径量度(j)的确定。通过根据DSADT指令来平行地计算两个路径量度和分支量度(M和-M),可获得对新路径量度(j+8)的确定。把计算结果分别存储在双精度累加器的高阶和低阶位中。
CMPS指令把累加器的高阶和低阶位相比较并把较大的值存储在存储器中。此外,每当执行比较时,把选中的值写入16位的过渡寄存器(TRN)。每当每个符号处理结束时,把写到TRN的内容存储在存储器中。待存储在存储器中的信息用于在追溯处理中搜索适当路径。图4示出Viterbi译码的蝶形运算的宏程序。
在访问宏前把分支量度的值存储在T寄存器中。图5示出路径量度的存储器映射的一个例子。
在一个符号部分中执行8个蝶形运算并获得16个新的状态。在几个部分上重复地计算这一系列的处理。在处理结束后,执行追溯,从而从16个路径中搜索适当的路径。从而,可获得译码位序列。
于是可说明普通DSP C54x的ACS运算的机理。然后,在C54x中,以来自图4中宏程序例子的4个机器周期来实现对两个路径量度的更新。
将来,预期对非话音通信的需求将不断增加,这种通信需要高质量的发射而位差错率比话音通信低。作为实现低的位差错率的装置,有一种增加Viterbi译码的约束长度K的装置。
然而,如果把约束长度K增加相应于一位的值,则路径量度的数目(状态数目)加倍。为此,在使用DSP的Viterbi译码中的运算数目也加倍。一般,非话音通信中的信息量比话音通信中的信息量大。如果信息量增加,则包括ACS运算的Viterbi译码中的运算数目也增加。使用DSP的运算数目的增加使得难于对便携式终端保持长时间的电池。
为了减小便携式终端的尺寸、减少重量和降低成本,近几年还把通过特殊LSI处理的区域设计成以使用DSP处理的一个芯片的形式来实行。
然而,使用DSP的运算数目的增加超过了现有DSP的处理能力,从而使得不可能使用DSP的一个芯片的形式来实行。
此外,如果通过增强DSP的功能来增加运算数目,则将使DSP本身的成本增加。结果,不可能实行便携式终端成本的减少。
发明内容
本发明的第一个目的是提供一种利用在软件上的投资小的DSP来有效地处理Viterbi译码的ACS运算的处理单元。
通过在处理单元中配置两对比较部分、一加法部分以及一用于存储比较结果的存储部分以及平行地执行ACS运算可达到以上目的。
附图概述
图1是示出Viterbi译码中卷积编码器状态转变的路径的网格图;
图2是示出网格图的蝶形结构的示意图;
图3是示出由卷积编码器产生的代码的一个例子的示意图;
图4是示出用于信道编码的Viterbi运算的一个例子的程序图;
图5是示出指针控制和路径量度存储器一个例子的示意图;
图6是示出本发明第一实施例的处理单元的结构的方框图;
图7是示出具有码率1/2的卷积编码器一个例子的方框图;
图8是示出约束长度K=4的蝶形结构的示意图;
图9是示出本发明第二实施例的处理单元结构的方框图;
图10是说明本发明第二实施例的处理单元的流水线(pipe line)操作的时序图;
图11是示出本发明第二实施例的RAM的存储器访问操作一个例子的示意图;
图12是示出本发明第三实施例的处理单元结构的方框图;
图13是示出本发明第三实施例的双端口RAM的存储器访问操作一个例子的示意图;
图14是示出本发明第四实施例的处理单元结构的方框图;
图15是说明本发明第四实施例的处理单元的流水线操作的时序图;
图16是示出本发明第五实施例的处理单元结构的方框图;
图17是示出本发明第六实施例的处理单元的ACS运算结果的图;
图18是示出本发明第六实施例的处理单元结构的方框图;
图19是示出本发明第七实施例的处理单元结构的方框图;
图20是示出本发明第八实施例的处理单元结构的方框图;
图21是示出本发明第八实施例的4∶2压缩器的输入/输出视图;
图22是示出本发明第九实施例的处理单元结构的方框图;
图23是示出双精度AU的进位控制的视图;
图24是示出本发明第十实施例的处理单元结构的方框图;
图25是示出本发明第十一实施例的处理单元结构的方框图;
图26是示出本发明第十二实施例的移动电台设备结构的方框图;
图27是示出本发明第十三实施例的移动电台设备结构的方框图;
图28是示出本发明第十四实施例的基站设备结构的方框图;以及
图29是示出本发明第十五实施例的基站设备结构的方框图。
本发明的较佳实施方式
现在将参考附图来描述本发明的实施例。
(第一实施例)
图6是示出本发明第一实施例的处理单元结构的方框图。在图6中,路径量度存储部分1存储路径量度,并经由总线2执行数据供应和运算结果的转移。分支量度存储部分3存储分支量度并经由总线4执行数据供应。
比较部分5和9把分别从路径量度存储部分1和分量量度存储部分3分别经由总线2和4输入的数据进行比较。
加法部分6和10把分别经由总线2和4从路径量度存储部分1和分支量度存储部分3读取的数据相加。
比较结果存储部分7存储比较部分5的比较结果,比较结果存储部分11存储比较部分9的比较结果。然后,比较结果存储部分7和11经由总线2把比较结果转移到路径量度存储部分1中。
选择部分8输入加法部分6的相加结果并根据比较部分5的比较结果来确定输出。选择部分12输入加法部分10的相加结果并根据比较部分9的比较结果确定输出。然后,选择部分8和12经由总线13把根据比较结果确定的输出转移到路径量度存储部分1。
接着,以下将参考附图来说明第一实施例的处理单元的ACS运算。在以下说明中,假设待译码的数据是经图7的卷积编码器(其中约束长度K=4且码率为1/2)编码的数据。此外,路径量度的数据类型以及分支量度的数据类型是单精度数据。然后,在为了方便而把双精度数据设定为(X,Y)时,把双精度数据的高阶位置设定为X并把低阶位置设定为Y。
把四个分支量度分别设定为BM0、BM1、BM2、BM3。如果所示的状态转变使用这些分支量度,则蝶形结构如图8所示。
这里,应注意老状态的节点N0和N1。节点N0和N1的转移目标分别为节点N’0和N’4。
然后,在从节点N0转变到节点N’0时获得的的分支量度为BM0,在从节点N1转变到节点N’0时获得的的分支量度为BM1。此外,在从节点N0转变到节点N’4时获得的的分支量度为BM1,在从节点N1转变到节点N’4时获得的的分支量度为BM0。
于是,分别以分支量度BM0和BM1来替换节点N0的路径量度PM0和节点N1的路径量度PM1,并把这些量度相加。从而,获得节点N’0的路径量度PM‘0以及节点N’4的路径量度PM’4。
然后,可把此关系相应于其它节点对(节点对N2和N3,节点对N4和N5,节点对N6和N7)。
本发明的发明人已注意到此关系,并发现可通过平行地处理ACS运算来同时更新两个路径量度并可减少处理时间。这导致了本发明。
由比较部分5、加法部分6、比较结果存储部分7和选择部分8来执行前半部分中节点N’0和N’3的ACS运算。与此运算相平行,由比较部分9、加法部分10、比较结果存储部分11和选择部分12来进行后半部分中节点N’4到N’8的ACS运算。以下将具体说明从节点N0和N1到节点N’0到N’4的ACS运算。
首先,把两个路径量度(PM1,PM0)从路径量度存储部分1输出到总线2。另一方面,把两个分支量度(BM1,BM0)从分支量度存储部分3输出到总线4。
比较部分5输入来自总线4的两个路径量度(PM1,PM0)和来自总线4的两个分支量度(BM1,BM0),从而计算PM1+BM1-PM0-BM0。
加法部分6输入来自总线2的两个路径量度(PM1,PM0)和来自总线4的两个分支量度(BM1,BM0),从而计算PM1+BM1以及PM0+BM0。然后,把计算结果(作为PM1+BM1,PM0+BM0)输出到选择部分8。
选择部分8输入最高位(以下叫做“MSB”)PM1+BM1-PM0-BM0,它是比较部分5的比较结果的代码位。然后,选择部分8从MSB的值中选择把高阶PM1+BM1输出到总线13还是把低阶PM0+BM0输出到总线13。
换句话说,如果建立以下所示的公式(3),则MSB为0且选择部分8把低阶PM0+BM0作为PM’0输出到总线13。相反,如果不建立公式(3),则MSB为1且选择部分8把高阶PM1+BM1作为PM’0输出到总线13。
PM1+BM1≥PM0+BM0                              …(3)
此外,同时把比较部分5的比较结果MSB存储在比较结果存储部分7中。
比较部分9输入来自总线2的两个路径量度(PM1,PM0)和来自总线4的两个分支量度(BM1,BM0),从而计算PM1+BM0-PM0-BM1。
加法部分10输入来自总线2的两个路径量度(PM1,PM0)和来自总线4的两个分支量度(BM1,BM0),从而计算PM1+BM0以及PM0+BM1。然后,把计算结果(作为PM1+BM0,PM0+BM1)输出到选择部分12。
选择部分12输入比较部分9的比较结果的MSB,即PM1+BM0-PM0-BM1。然后,选择部分12从MSB的值中选择把高阶PM1+BM0输出到总线13还是把低阶PM0+BM1输出到总线13。
换句话说,如果建立以下所示的公式(4),则MSB为0且选择部分12把低阶PM0+BM1作为PM’4输出到总线13。相反,如果不建立公式(4),则MSB为1且选择部分12把高阶PM1+BM0作为PM’4输出到总线13。
PM1+BM0≥PM0+BM1                                  …(4)
此外,同时把比较部分9的比较结果MSB存储在比较结果存储部分11中。
以同样的方式对其它节点对进行以上处理。结果,可平行地执行使用DSP的Viterbi编码的ACS运算,并可以相对少的处理量高速地进行运算处理。
以上实施例说明了约束长度K=4且码率为1/2的情况。然而,即使约束长度和码率是别的值,也可建立以上关系。因此,适当地提供了与其相应的变化,从而可获得相同的优点。
(第二实施例)
图9是示出本发明第二实施例的处理单元结构的方框图。在图9的处理单元中,把相同的标号加到与图6的处理单元共同的部分,并省略其描述。
在图9的处理单元中,由具有四个存储单元的RAM14来形成用于存储路径量度的存储部分。
图9的处理单元适用于图10所示流水线结构的操作处理。
例如,为了在执行指令1中的第n+1个周期的操作执行阶段执行ACS运算,需要把将在第n个周期的存储器访问阶段读取路径量度的地址预先提供给RAM14。
假设RAM14是一个可连续读取偶数地址和奇数地址的双精度可读RAM。则,如果满足以下条件(a)和(b),则只要通过指定偶数地址就可读取运算中所使用的两个路径量度。
(a)按照偶数地址和奇数地址的顺序把一个状态的路径量度存储在连续地址处。
(b)把一个状态的路径量度分成前半部分和后半部分,把每一部分存储在不同的存储单元中。
例如,把老状态前半部分的路径量度(图8中的PM0、PM1、PM2、PM3)存储在RAM14的存储单元0中。然后,把老状态的后半部分的路径量度(图8中的PM4、PM5、PM6、PM7)存储在存储单元1中。在此情况下,通过在一个周期内执行ACS运算来产生两个路径量度,经由总线13把这些量度分别存储在存储单元2和3中。此时,把双精度数据从总线13转移,把节点N’3的路径量度从节点N’0存储在存储单元2中,并把节点N’7的路径量度从节点N’6存储在存储单元3中。
图11是示出相应于图8的RAM14的存储器访问操作一个例子的示意图。
在一个状态的ACS运算结束时,在下一状态中,从存储单元2和3读取老状态的路径量度,并把新状态的路径量度存储在存储单元0和1中。
于是,每当一个状态的ACS运算结束时,把具有四个存储单元的RAM14用作存储路径量度的存储部分,切换用于读取路径量度的存储单元对和用于存储路径量度的存储单元对。从而,可平行地执行使用DSP的Viterbi译码的ACS运算。
在以上说明中,存储单元0和1以及存储单元2和3分别成对。然而,即便使用其它组合,也可只通过改变将在存储器访问阶段提供量度中所使用的地址以及将在存储这些量度中所使用的地址来执行类似的操作。此外,在第二实施例中,由四个存储单元来选出RAM14。然而,如果存储单元的数目大于四个,也可执行类似的操作。
(第三实施例)
图12示出本发明第三实施例的处理单元结构的方框图。在图12的处理单元中,把相同的标号加到与图6的处理单元共同的部分并省略其说明。
在图12的处理单元中,由具有三个存储单元的双RAM15来形成用于存储路径量度的存储部分3。
图12的处理单元适用于图10所示流水线结构的操作处理。
由于在图12的处理单元中,用于存储路径量度的存储部分是双端口RAM15,所以可以一个指令来执行对同一存储单元进行读写的指定。例如,为了在指令1中第n+1个周期的操作执行阶段执行ACS运算,把在第n个周期的存储器访问阶段读取路径量度的地址以及写入此路径量度地址提供给双端口RAM15。从而,在第n+1个周期内,可从双端口RAM15中连续地读取一偶数地址和一奇数地址,从而执行ACS运算。此外,可把一路径量度写到同一存储单元。
在第三实施例的处理单元中,如果满足以下条件(a)和(b),则可通过仅指定偶数地址来读取在运算中所使用的两个路径量度。
(a)按照偶数地址和奇数地址的顺序把一个状态的路径量度存储在连续地址处。
(b)把一个状态的路径量度分成前半部分和后半部分,把每一部分存储在不同的存储单元中。
例如,把老状态前半部分的路径量度(图8中的PM0、PM1、PM2、PM3)存储在双端口RAM15的存储单元0中。然后,把老状态的后半部分的路径量度(图8中的PM4、PM5、PM6、PM7)存储在存储单元1中。在此情况下,通过在一个周期内执行ACS运算来产生两个路径量度,经由总线13把这些量度分别存储在存储单元0和2中。此时,总线13转移双精度数据,把节点N’3的路径量度从节点N’0存储在存储单元0中,并把节点N’7的路径量度从节点N’4存储在存储单元2中。
图13是示出相应于图8的RAM15的存储器访问操作一个例子的示意图。
在图12的处理单元中,当一个状态的ACS运算结束时,只切换存储单元1和2。然后,可平行地执行使用DSP的Viterbi译码的ACS运算,而不必切换存储单元0。
在第三实施例中,由三个存储单元来形成双端口RAM15。然而,如果存储单元的数目多于三个,也可执行类似的操作。
(第四实施例)
图14是示出本发明第四实施例的处理单元结构的方框图。在图14的处理单元中,把相同的标号加到与图6的处理单元共同的部分,并省略其描述。
图14的处理单元包括用于输入来自总线2的数据以及把数据输出到比较部分5、9和加法部分6、10的输入寄存器16和17。
图14的处理单元适用于图15所示流水线结构的操作处理。
例如,为了在执行指令1中的第n+2个周期的操作执行阶段执行ACS运算,把将在第n个周期的存储器访问阶段读取路径量度的地址预先提供给RAM14。然后,在第n+1的数据转移阶段,经由总线2把来自RAM14的数据输出锁存到输入寄存器16和17。
图15所示的流水线是如此构成的,从而在图10所示流水线的存储器访问阶段和操作执行阶段之间插入一数据转移阶段。换句话说,在操作执行阶段的起始点,在位于各个运算装置(比较部分5、9和加法部分6、10)之前的输入寄存器处确定来自RAM14的数据输出。结果,可省略转移来自RAM14的数据所需的时间。
因此,依据本实施例,可以相对高的速度平行地执行使用DSP的Viterbi译码的ACS运算。注意,如果把双端口RAM用作存储路径量度的存储部分,也可执行类似的操作。
(第五实施例)
图16是示出本发明第五实施例的处理单元结构的方框图。在图16的处理单元中,把相同的标号加到与图14的处理单元共同的部分,并省略其描述。
在图16的处理单元中,与图14的处理单元相比,还加上了交换电路18。交换电路18直接输出来自分支量度存储部分3输入的数据或将高阶位置和低阶位置交换后再输出。
图16的处理单元适用于图15所示流水线结构的操作处理。
例如,假设从分支量度存储器3输入的数据为{BM1,BM0}形式的双精度数据。在此情况下,交换电路18所具有的一个功能是,通过一指令在把两个分支量度的值作为{BM1,BM0}直接输出还是把高阶位置和低阶位置交换后作为{BM0,BM1}而输出之间进行切换。
以下将说明使用图7的卷积编码器的交换电路18的操作以及在约束长度K=4和/码率为1/2时图8的蝶形结构的路径量度转移状态。
如图17所示,把在从老状态的节点N0和N1到节点N’0和N’4的转变时所执行的ACS运算与在从老状态的节点N6和N7到节点N’3和N’7的转变时所执行的ACS运算相比较。结果,在这两个ACS运算中,使用共同的分支量度BM0和BM1且建立了BM0和BM1交换的关系。
由比较部分5和加法部分6来进行在从节点N0和N1到节点N’0的转变时所执行的ACS运算以及在从节点N6和N7到节点N’3的转变时所执行的ACS运算。另一方面,由比较部分9和加法部分10来进行在从节点N3和N1到节点N’4的转变时所执行的ACS运算以及在从节点N6和N7到节点N’7的转变时所执行的ACS运算。
为此,如果以{BM0,BM1}和{BM1,BM0}的形式把分支量度存储在分支量度存储部分3中,则分支量度存储部分3导致硬件源冗余。
使用交换电路18来解决这种冗余。例如,只以{BM0,BM1}的形式把分支量度存储在分支量度存储部分3中。然后,把{BM0,BM1}形式的量度输入到交换电路18。交换电路18通过一指令交换{BM0,BM1}形式的量度或{BM1,BM0}形式的量度以作为输出。从而,可消除分支量度存储部分3的冗余。
使用约束长度K=4且码率为1/2的老状态的节点N0、N1、N6、N7来说明以上实施例。然而,甚至可使用节点N2、N3、N4、N5来建立上述关系。此外,可使用约束长度K和码率的其它组合来建立上述关系。因此,可执行类似的操作。此外,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第六实施例)
图18是示出本发明第六实施例的处理单元结构的方框图。在图18的处理单元中,把相同的标号加到与图16的处理单元共同的部分,并省略其描述。
与图16的处理单元相比,在图18的处理单元中,比较部分5包括加法器19、20和比较器21,加法部分6包括加法器22和23。此外,比较部分9包括加法器24、25和比较器26,加法部分10包括加法器27和28。
在图18中,加法器19和20输入来自总线4和输入寄存器16的数据并把这些输入数据相加。比较器21输入加法器19和20的相加结果并比较相加结果,然后把比较结果输出到比较结果存储部分7和选择部分8。加法器22和23输入来自总线4和输入寄存器16的数据并把这些数据相加,然后把相加结果输出到选择部分8。
加法器24和25输入来自总线4和输入寄存器17的数据并把这些输入数据相加。比较器26输入来自加法器24和25的相加结果并比较相加结果,然后把比较结果输出到比较结果存储部分11和选择部分12。加法器27和28输入来自总线4和输入寄存器17的数据并把这些输入数据相加,然后把相加结果输出到选择部分12。
图18的处理单元适用于图15所示流水线结构的操作处理。
接着,将说明第六实施例的ACS运算。将使用图7的卷积编码器以及约束长度K=4且码率为1/2的图8的蝶形结构以及图17的ACS约束结果来给出说明。
如图18所示,从输入寄存器16和17输出两个量度作为{A,B},并从交换电路18输出两个量度作为{C,D}。此时,加法器19输入路径量度{A}和分支量度{C}并输出相加结果{A+C}。加法器20输入路径量度{B}以及分支量度{D}并输出相加结果{B+D}。比较器21输入加法器19的相加结果{A+C}以及加法器20的相加结果{B+D},比较{A+C-(B+D)},并输出比较结果的MSB。加法器22输入路径量度{A}和分支量度{C}并输出相加结果{A+C}。加法器23输入路径量度{B}和分支量度{D}并输出相加结果{B+D}。
另一方面,加法器24输入路径量度{A}和分支量度{D}并输出相加结果{A+D}。加法器25输入路径量度{B}和分支量度{C}并输出相加结果{B+C}。比较器26输入加法器24的相加结果{A+D}以及加法器25的相加结果{B+C},比较{A+D-(B+C)},并输出比较结果的MSB。加法器27输入路径量度{A}和分支量度{D}并输出相加结果{A+D}。加法器28输入路径量度{B}和分支量度{C}并输出相加结果{B+C}。
通过以上结构和操作,如果把输入寄存器16和17的两个路径量度设定为{A,B}={PM1,PM0}并把交换电路18的输出设定为{C,D}={BM1,BM0},则可实现在从老状态的节点N0和N1到节点N’0和N’4的转变时所执行的ACS运算。
此外,如果把输入寄存器16和17的两个路径量度设定为{A,B}={PM1,PM0}并把交换电路18的输出设定为{C,D}={BM0,BM1},则可实现在从老状态的节点N0和N1到节点N’0和N’4的转变时所执行的ACS运算。
因此,依据第六实施例,可由使用DSP的流水线操作可在一个机器周期中实现对两个路径量度的更新。使用约束长度K=4且码率为1/2的老状态的节点N0、N1、N6、N7来说明以上实施例。然而,甚至可使用节点N2、N3、N4、N5来建立上述关系。此外,可使用约束长度K和码率的其它组合来建立上述关系。因此,可执行类似的操作。此外,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第七实施例)
图19是示出本发明第七实施例的处理单元结构的方框图。在图19的处理单元中,把相同的标号加到与图18的处理单元共同的部分,并省略其描述。
与图18的处理单元相比,在图19的处理单元中,替代比较器21而使用算术逻辑部分(以下叫做“ALU”)29。则,图19的处理单元包括输入寄存器30、31、总线32、33、37、38和以及选择器34和35。
在图19中,寄存器30经由总线37输入来自RAM14的数据。寄存器31经由总线38输入来自RAM14的数据。总线32和33输入来自寄存器文件36的数据。选择器34从来自总线32、加法器19和输入寄存器30的输入数据中选择一个输出。选择器35从来自总线33、加法器20和输入寄存器31的输入数据中选择一个输出。ALU29输入来自选择器34和35的数据并执行算术逻辑运算,把算术逻辑运算的结果输出到总线13。此外,ALU把算术逻辑运算结果的MSB输出到比较结果存储部分7和选择部分8。
图19的处理单元适用于图15所示流水线结构的操作处理。
在ALU29进行ACS运算的情况下,选择器34选择加法器19的输出并把选中的输出输入到ALU29。选择器35选择加法器20的输出并把选中的输出输入到ALU29。然后,ALU29提取输入两个数据,并把提取结果的MSB输出到比较结果存储部分7和选择部分8。
在ALU29在寄存器和寄存器之间进行算术逻辑运算的情况下,选择器34和35分别选择总线32和33。然后,把从寄存器文件36输出到总线32和33的数据输入到ALU39。
此外,在ALU29在寄存器和存储器之间进行算术逻辑运算的情况下,选择器34和35分别选择总线32和输入寄存器31。然后,把从寄存器文件36输出到总线32的数据以及从RAM14经由总线38输出到输入寄存器31的数据输入到ALU29。
相反,在ALU29在存储器和寄存器之间进行算术逻辑运算的情况下,选择器34和35分别选择输入寄存器30和总线33。然后,把从RAM14经由总线37输出到输入寄存器30的数据以及从寄存器文件36输出到总线33的数据输入到ALU29。
此外,在ALU29在存储器和存储器之间进行算术逻辑运算的情况下,选择器34和35分别选择输入寄存器30和31。然后,把从RAM14经由总线37和38输入到输入寄存器30和31的数据输入到ALU29。
于是,依据第七实施例,为了以LSI形式来实现处理单元,把用于执行ACS运算的比较器之一用作ALU。从而,可减少芯片面积并可减少制造成本。注意,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第八实施例)
图20是示出本发明第八实施例的处理单元结构的方框图。在图20的处理单元中,把相同的标号加到与图19的处理单元共同的部分,并省略其描述。
与图19的处理单元相比,在图20的处理单元中,由4∶2压缩器39来形成两个加法器19和20,并由4∶2压缩器40来形成两个加法器24和25。在4∶2压缩器39和40中,把图21所示相应于许多单精度位的单块串联。4∶2压缩器39和40以比普通全加器更高的速度执行加法处理。
在图20中,4∶2压缩器39输入来自总线4和输入寄存器16的数据并把运算结果输出到选择器34和35。4∶2压缩器40输入来自总线4和输入寄存器17的数据并把运算结果输出到比较器26。
图20的处理单元适用于图15所示流水线结构的操作处理。
接着,将说明第八实施例的ACS运算。将使用图7的卷积编码器以及约束长度K=4且码率为1/2的图8的蝶形结构以及图17的ACS操作结果来给出说明。
首先,从输入寄存器16和17输出两个量度作为{A,B},并从交换电路18输出两个分支量度作为{C,D}。
此时,4∶2压缩器39输入路径量度{A}和分支量度{C}、路径量度{B}的反转(reverse){-B}和分支量度D的反转{-D}并输出{A+C}和{B+D}。经由选择器34和35把4∶2压缩器39的两个输出{A+C}和{B+D}输入到ALU29而相加。在此情况下,为了实现两个补数(compl ement){B}和{D},把“1”输入到4∶2压缩器39和ALU 29的最低进位输入。结果,从ALU 29获得{A+C-(B+D)}并输出MSB。
此外,加法器22输入路径量度{A}和分支量度{C}并输出相加结果{A+C}。同样,加法器23输入路径量度{B}和分支量度{D}并输出相加结果{B+D}。
另一方面,4∶2压缩器40输入路径量度{A}和分支量度{D}、路径量度{B}的反转{-B}和分支量度C的反转{-C}并输出{A+C}和{B+D}。经由选择器34和35把4∶2压缩器40的两个输出{A+C}和{B+C}输入到比较器26而相加。在此情况下,为了实现两个补数{B}和{C},把“1”输入到4∶2压缩器40和比较器26的最低进位输入。结果,从比较器26获得{A+D-(B+C)}并输出MSB。
此外,加法器27输入路径量度{A}和分支量度{D}并输出相加结果{A+D}。同样,加法器28输入路径量度{B}和分支量度{C}并输出相加结果{B+C}。
通过以上结构和操作,如果把输入寄存器16和17的两个路径量度{A,B}设定为{PM1,PM0}并把交换电路18的输出{C,D}设定为{BM1,BM0},则可实现在从图17的老状态的节点N0和N1到节点N’0和N’4的转变时所执行的ACS运算。
此外,如果把输入寄存器16和17的两个路径量度{A,B}设定为{PM1,PM0}并把交换电路18的输出{C,D}设定为{BM0,BM1},则可实现在从图17的老状态的节点N0和N1到节点N’0和N’4的转变时所执行的ACS运算。因此,可由使用DSP的流水线操作在一个机器周期内实现对两个路径量度的更新。
于是,依据第八实施例,把4∶2压缩器用作执行ACS运算的比较部分可实现比使用两个加法器的情况更高速度的运算。使用约束长度K=4且码率为1/2的老状态的节点N0、N1、N6、N7来说明以上实施例。然而,甚至可使用节点N2、N3、N4、N5来建立上述关系。此外,可使用约束长度K和码率的其它组合来建立上述关系。因此,可执行类似的操作。此外,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第九实施例)
图22是示出本发明第九实施例的处理单元结构的方框图。在图22的处理单元中,把相同的标号加到与图20的处理单元共同的部分,并省略其描述。
与图20的处理单元相比,在图22的处理单元中,把双精度加法器41和42用作加法部分,且至少一个加法器使用双精度AU41。
在图22中,双精度AU41输入来自输入寄存器16和总线4的双精度形式的数据并执行双精度算术运算。双精度加法器42输入来自输入寄存器17和总线4的双精度形式的数据并执行双精度加法运算。双精度AU41把运算结果输出到选择部分8和总线13,把双精度加法器42的输出输出到选择部分12。
图22的处理单元适用于图15所示流水线结构的操作处理。
为了在第九实施例中执行ACS运算,双精度AU41从输入寄存器16以双精度形式输入两个路径量度作为{A,B}。然后,双精度AU41经由总线4从交换电路18以双精度形式输入两个分支量度作为{C,D}并执行双精度加法。此时,如图23所示的双精度AU41强制地使从单精度MSB的位的位置到下一级的进位为零,并同时执行路径量度和分支量度{A+C,B+D}两个加法。
另一方面,双精度加法器42从输入寄存器17以双精度形式输入两个路径量度作为{A,B}。然后,双精度加法器42经由总线4从交换电路18以双精度形式输入两个分支量度作为{D,C}。然后,双精度加法器42强制地使从单精度MSB的位的位置到下一级的进位为零,并同时执行路径量度和分支量度{A+C,B+D}两个加法。
于是,依据第九实施例,把双精度AU 41用作执行ACS运算的加法部分。在ACS运算时,双精度AU41强制地使从单精度MSB的位的位置到下一级的进位为零。在双精度算术运算而不是ACS运算时,增加对进位传播的控制。从而,例如,在相乘和相加运算时,可把双精度AU41用作双精度累加加法器。因此,在以LSI形式来实现处理单元的情况下,可进一步减小芯片面积,并可减少制造成本。注意,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第十实施例)
图24是示出本发明第十实施例的处理单元结构的方框图。在图24的处理单元中,把相同的标号加到与图22的处理单元共同的部分,并省略其描述。
与图22的处理单元相比,在图24的处理单元中,把移位寄存器43和44用作比较结果存储部分。
在图24中,移位寄存器43输入ALU29的运算结果的MSB继而输出到总线2。移位寄存器44输入比较器26的运算结果的MSB继而输出到总线2。
图24的处理单元适用于图15所示的流水线结构的操作处理。
为了执行第十实施例中的ACS操作,ALU29的比较结果的MSB在移位寄存器43中在任何时候移位。比较器26的比较结果的MSB在移位寄存器44中在任何时候移位。从而,可把路径选择信号存储在RAM14中。在此情况下,路径选择信号示出已选中两个路径中的哪一个路径,在ACS运算后执行追溯中使用该信号。
例如,在移位寄存器43和移位寄存器44的位宽是单精度数据宽度的情况下,可在执行相应于许多单精度位的ACS运算时存储路径选择信号。
于是,依据第十实施例,把移位寄存器用作执行ACS运算和存储比较结果的存储装置。从而,例如,可把移位寄存器用作使用除法系统的移位寄存器的操作指令。因此,在以LSI形式来实现处理单元的情况下,可进一步减小芯片面积,并可减少制造成本。注意,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第十一实施例)
图25是示出本发明第十一实施例的处理单元结构的方框图。在图25的处理单元中,把相同的标号加到与图24的处理单元共同的部分,并省略其描述。
与图24的处理单元相比,在图25的处理单元中,输入寄存器17交换路径量度数据从而将从总线2输入。然后,4∶2比较器40直接输入分支量度数据而不对分支量度数据进行交换,把比较器26的比较结果的求反(negate)值在移位寄存器44中移位。
图25的处理单元适用于图15所示流水线结构的操作处理。
为了在本实施例中执行ACS运算,把两个路径量度{A,B}直接输入到输入寄存器16作为{A,B},并在交换状态下输入到输入寄存器17作为{B,A}。其后,把两个分支量度从交换电路18输入到4∶2压缩器40作为{C}和{-D},并把两个路径量度从输入寄存器17输入到4∶2压缩器40作为{B}和{-A},并输出{A+B}和{B+C}。
然后,比较器26输入两个输出{A+B}和{B+C}从而计算{A+D-B-C}。
另一方面,双精度加法器42从交换电路18输入两个分支量度作为{C,D},并从输入寄存器输入两个路径量度作为{B,A}。然后,同时平行地计算{B+C}和{A+D},并以{B+C,A+D}的形式输出到选择部分12。
然后,把比较结果的MSB从比较器26输出到选择部分12,并把比较结果的求反值的MSB输出到移位寄存器44。
于是,依据第十一实施例,用于存储两个路径量度的输入寄存器之一交换待输入的数据。结果,由于在运算执行(EX)阶段,在4∶2压缩器40的输入处和双精度加法器42的输入处所需的交换操作可取消,所以可以较高的速度来执行ACS运算。注意,即使把双端口RAM用作存储路径量度的存储部分也可执行类似的操作。
(第十二实施例)
图26是示出第十二实施例中移动电台设备的结构的方框图。图26所示的移动电台设备45包括用于接收和发射的天线部分46、具有接收部分48和发射部分49的无线电部分47、用于执行信号调制和解调以及信号编码和译码的基带信处理部分50、用于输出声音的扬声器58、用于输入声音的麦克风59、来往于外部装置输入/输出待接收和发射的数据的数据输入/输出部分60、用于显示操作状态的显示部分61、诸如10个按键键盘等的操作部分62以及用于控制各个部分的控制部分63。
基带信号处理部分50包括用于对接收到的信号进行解调的解调部分51、用于对发射的信号进行调制的调制部分52以及一个芯片的DSP53。
DSP53包括由第一到第十一实施例的任一个处理单元所形成的Viterbi译码部分55、用于对发射的信号进行卷积编码的卷积编码部分56、用于执行话音信号编码和译码的话音编码译码部分57以及用于控制把接收到的信号从解调部分51发送到Viterbi译码部分55的定时以及把发射的信号从卷积编码部分56发送到调制部分52的定时的定时控制部分54。可分别由软件来形成这些装置。
控制部分63把来自操作部分62的输入信号显示给显示部分61并接收来自操作部分62的输入信号。然后,控制部分63依据通信顺序把用于进行呼叫操作的控制信号输出到天线部分46、无线电部分47和基带信号处理部分50。
如果从移动电台设备45发射话音,则由AD转换器(未示出)对来自麦克风59的话音信号输入进行AD转换。然后,由话音编码译码部分57对经转换的信号进行编码,继而输出到卷积编码部分56。如果发射数据,则通过数据输入/输出部分60把来自外部部分的数据输入输入到卷积编码部分56。
对输入到卷积编码部分56的数据进行卷积编码,定时控制部分54对数据进行排序并调节发射输出定时,从而把数据输出到调制部分52。对输入到调制部分52的数据进行数字调制和AD转换,并输出到无线电部分47的发射部分49。把输入到发射部分49的数据转换成无线电信号并作为无线电波输出天线部分46。
另一方面,为了输出由移动电台设备45接收到的数据,由无线电部分47的接收部分48接收天线部分46接收到的无线电波,对其进行AD转换并输出到基带信号处理部分50的解调部分51。由定时控制部分54对经解调部分51解调的数据进行排序,其后由Viterbi译码部分55对其进行译码。
在话音通信的情况下,译码数据是经过话音编码译码部分57译码的话音,并被进行DA转换,其后作为话音输出到扬声器58。在数据通信的情况下,通过数据输入/输出部分60把经Viterbi译码部分55译码的数据输出到外部部分。
在第十二实施例的移动他设备45的情况下,由一个芯片的DSP53的软件来形成Viterbi译码部分55、卷积编码部分56、话音编码译码部分57和定时控制部分54的各个部分。于是,可以少量的部分来配置移动电台设备45。此外,由于以第一到第十一实施例的任一个处理单元来形成Viterbi译码部分55,所以可以使用DSP53的流水线处理的一个机器周期来实现对两个路径量度的更新。从而,可以相对少量的处理来实现对使用DSP53的Viterbi译码的高速ACS运算。
在本实施例中,示出的解调部分51和调制部分52不同于DSP53。然而,可通过DSP53的软件来形成这些装置。此外,可把第六实施例的DSP用作DSP53,可由其它部分来分别形成卷积编码部分56、话音编码译码部分57和定时控制部分54。
(第十三实施例)
图27是示出第十三实施例中的移动基站设备结构的方框图。在图27的移动基站设备45A中,把相同的标号加到与图26的移动电台设备45的部分共同的部分,并省略其说明。
与图26的移动电台设备相比,在图27的移动电台设备45A中,在调制部分52A中设置了扩展部分65,在解调部分51A中设置了解扩展部分64,从而形成CDMA通信系统的基带信号处理部分50A。在CDMA通信系统的情况下,在某些情况下,定时控制部分54中还包括RAKE接收部分,在该接收部分中,对从延迟分布(profile)中选中的多个搜寻器(finger)进行相互调节。
于是,在第十三实施例的移动电台设备45A中,在调制部分51A中设有解扩展部分,在调制部分52A中设有扩展部分65。从而可把第十三实施例的移动电台设备应用于CDMA通信系统。
(第十四实施例)
图28是示出第十四实施例中基站设备结构的方框图。
在图28中,第十四实施例的基站设备68包括具有用于接收的天线66和用于发射的天线67的天线部分46、具有接收部分48和发射部分49的无线电部分47、用于执行信号调制和解调以及信号编码和译码的基带信号处理部分69、来往于电缆网络而输入/输出待接收和发射的数据的数据输入/输出部分60以及用于控制各个部分的控制部分63。
基带信号处理部分69包括用于对接收到的信号进行解调的解调部分51、用于对接收的信号进行调制的调制部分52以及一个芯片的DSP 53A。DSP 53A包括由第一到第十一实施例的任一个处理单元所形成的Viterbi译码部分55、用于对发射的信号进行卷积编码的卷积编码部分56以及用于控制把接收到的信号从解调部分51发送到Viterbi译码部分55的定时以及把发射的信号从卷积编码部分56发送到调制部分52的定时的定时控制部分54。可分别由软件来形成这些装置。
在基站设备68接收到来自电缆网络的数据时,通过数据输入/输出部分60把数据输入到卷积编码部分56。然后,对输入到卷积编码部分56的数据进行卷积编码,定时控制部分54对输入的数据进行排序并调节发射输出定时,从而把数据输出到调制部分52。由发射部分49对输入到调制部分52的数据进行数字调制、AD转换并转换成无线电信号。然后,从天线部分46发射无线电信号作为无线电波。
另一方面,如果基站设备68接收到来自无线电网络的数据,则接收部分48对天线部分46接收到的无线电波进行AD转换并由基带信号处理部分69的解调部分51进行解调。由定时控制部分54对经解调的数据进行排序,由Viterbi译码部分55进行译码,其后经由数据输入/输出部分60输出到电缆网络。
在第十四实施例的基站设备68中,由一个芯片的DSP 53A的软件来形成Viterbi译码部分55、卷积编码部分56和定时控制部分54的各个部分。于是,可以少量的部分来配置基站设备68。此外,由于以第一到第十一实施例的任一个处理单元来形成Viterbi译码部分55,所以可以使用DSP 53A的流水线处理的一个机器周期来实现对两个路径量度的更新。从而,可以相对少量的处理来实现对使用DSP 53A的Viterbi译码的高速ACS运算。
在本实施例中,示出的解调部分51和调制部分52不同于DSP 53A。然而,可通过DSP 53A的软件来形成这些装置。此外,可把第六实施例的DSP用作DSP53A,可由其它部分来分别形成卷积编码部分56、话音编码译码部分57和定时控制部分54。
(第十五实施例)
图29是示出第十五实施例中基站设备结构的方框图。在图29的基站设备68A中,把相同的标号加到与图28的基站设备68的部分共同的部分,并省略其说明。
与图26的移动电台设备45相比,在图27的移动电台设备45A中,在调制部分52A中设置了扩展部分65,在解调部分51A中设置了解扩展部分64,从而形成CDMA通信系统的基带信号处理部分50A。在CDMA通信系统的情况下,在某些情况下,定时控制部分54中还包括RAKE接收部分,在该接收部分中,对从延迟分布中选中的多个搜寻器进行相互调节。
于是,在第十五实施例的基站设备68A中,在调制部分51A中设有解扩展部分,在调制部分52A中设有扩展部分65。从而可把第十五实施例的移动电台设备应用于CDMA通信系统。
如上所述,可以使用DSP的流水线处理中的一个机器周期来实现对两个路径量度进行更新。从而,可实现以相对少量的处理来进行使用DSP的Viterbi译码的高速ACS运算。这使得可减小便携式终端的尺寸、减少重量、降低成本以及增加电池的寿命。

Claims (13)

1、一种数字信号处理器,包括:
处理单元,被配置成执行指令,
其中,所述处理单元能执行寄存器-寄存器算法逻辑运算;
所述处理单元确定第一数据与第二数据的第一最小数据,该确定与确定第三数据与第四数据的第二最小数据同时进行;
所述处理单元输出包括所述第一最小数据和所述第二最小数据的处理数据;
所述第一最小数据的比特长和所述第二最小数据的比特长分别等于n比特的长度;以及
所述处理数据的比特长等于2n比特的长度。
2、如权利要求1所述的数字信号处理器,其中,
所述数字信号处理器通过一个指令来提供处理数据。
3、如权利要求2所述的数字信号处理器,其中,
所述数字信号处理器在所述第一数据等于所述第二数据时提供所述第一数据,并在所述第三数据等于所述第四数据时提供所述第三数据。
4、如权利要求3所述的数字信号处理器,还包括:
多个寄存器,用于存储数据,
其中,所述多个寄存器包括第一寄存器和第二寄存器;
所述第一寄存器存储所述第一最小数据的确定结果,所述第二寄存器存储所述第二最小数据的确定结果。
5、如权利要求4所述的数字信号处理器,其中,
所述第一寄存器和所述第二寄存器是移位寄存器。
6、如权利要求5所述的数字信号处理器,其中,
所述处理单元能执行寄存器-存储器算法逻辑运算。
7、一种数字信号处理器,包括:
处理单元,被配置成执行指令,
其中,所述处理单元能执行寄存器-寄存器算法逻辑运算;以及
所述处理单元用于在单个周期中对第一数据与第二数据进行比较,所述单个周期还包括第三数据与第四数据的比较。
8、如权利要求7所述的数字信号处理器,其中,
所述处理单元能同时执行第一加法、第二加法、第三加法以及第四加法。
9、如权利要求8所述的数字信号处理器,其中,
所述处理单元在单个周期基于所述第一数据与所述第二数据的比较结果输出所述第一数据和所述第二数据中的一个,在该单个周期还基于所述第三数据与所述第四数据的比较结果输出所述第三数据和所述第四数据中的一个;以及
所述第一数据和所述第二数据的所述输出数据被提供作为处理数据的高阶部分,所述第三数据和所述第四数据的所述输出数据被提供作为所述处理数据的低阶部分。
10、如权利要求9所述的数字信号处理器,其中,
所述数字信号处理器在所述第一数据等于所述第二数据时提供所述第一数据,在所述第三数据等于所述第四数据时提供所述第三数据。
11、如权利要求8所述的数字信号处理器,还包括:
多个寄存器,用于存储数据,
其中,所述多个寄存器包括第一寄存器和第二寄存器;以及
所述第一寄存器存储所述第一数据与所述第二数据的比较结果,所述第二寄存器存储所述第三数据与所述第四数据的比较结果。
12、如权利要求11所述的数字信号处理器,其中,
所述处理单元被配置成执行寄存器-存储器算法逻辑运算。
13、如权利要求12所述的数字信号处理器,其中,
所述第一寄存器和所述第二寄存器是移位寄存器。
CN2006101003464A 1997-06-30 1998-06-29 处理单元和处理方法 Expired - Fee Related CN101018103B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP17387897 1997-06-30
JP173878/97 1997-06-30
JP168567/98 1998-06-16
JP16856798A JP3338374B2 (ja) 1997-06-30 1998-06-16 演算処理方法および装置

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
CNB031451616A Division CN100512075C (zh) 1997-06-30 1998-06-29 数字信号处理器以及使用它的设备和系统
CN98800905A Division CN1118140C (zh) 1997-06-30 1998-06-29 处理单元和处理方法

Publications (2)

Publication Number Publication Date
CN101018103A true CN101018103A (zh) 2007-08-15
CN101018103B CN101018103B (zh) 2013-02-27

Family

ID=26492229

Family Applications (3)

Application Number Title Priority Date Filing Date
CN98800905A Expired - Fee Related CN1118140C (zh) 1997-06-30 1998-06-29 处理单元和处理方法
CNB031451616A Expired - Fee Related CN100512075C (zh) 1997-06-30 1998-06-29 数字信号处理器以及使用它的设备和系统
CN2006101003464A Expired - Fee Related CN101018103B (zh) 1997-06-30 1998-06-29 处理单元和处理方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN98800905A Expired - Fee Related CN1118140C (zh) 1997-06-30 1998-06-29 处理单元和处理方法
CNB031451616A Expired - Fee Related CN100512075C (zh) 1997-06-30 1998-06-29 数字信号处理器以及使用它的设备和系统

Country Status (6)

Country Link
US (6) US6330684B1 (zh)
EP (1) EP0923197B1 (zh)
JP (1) JP3338374B2 (zh)
CN (3) CN1118140C (zh)
DE (1) DE69827915T2 (zh)
WO (1) WO1999000905A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3338374B2 (ja) * 1997-06-30 2002-10-28 松下電器産業株式会社 演算処理方法および装置
US6473088B1 (en) * 1998-06-16 2002-10-29 Canon Kabushiki Kaisha System for displaying multiple images and display method therefor
US6647071B2 (en) * 1998-11-06 2003-11-11 Texas Instruments Incorporated Method and apparatus for equalization and tracking of coded digital communications signals
JP3683128B2 (ja) * 1999-07-06 2005-08-17 日本電気株式会社 無線通信機および無線通信機の消費電力制御方法
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
US6760385B1 (en) * 2000-05-30 2004-07-06 Adtran, Inc. Universal parallel processing decoder
JP2001352254A (ja) * 2000-06-08 2001-12-21 Sony Corp 復号装置及び復号方法
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
US6904105B1 (en) * 2000-10-27 2005-06-07 Intel Corporation Method and implemention of a traceback-free parallel viterbi decoder
JP3984790B2 (ja) * 2001-01-15 2007-10-03 日本電気株式会社 ビタビ復号処理装置
US6848074B2 (en) * 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
US7020830B2 (en) * 2001-12-24 2006-03-28 Agere Systems Inc. High speed add-compare-select operations for use in viterbi decoders
US7127667B2 (en) * 2002-04-15 2006-10-24 Mediatek Inc. ACS circuit and viterbi decoder with the circuit
US7089481B2 (en) * 2002-07-22 2006-08-08 Agere Systems Inc. High speed arithmetic operations for use in turbo decoders
US7359464B2 (en) * 2003-12-31 2008-04-15 Intel Corporation Trellis decoder and method of decoding
US20050157823A1 (en) * 2004-01-20 2005-07-21 Raghavan Sudhakar Technique for improving viterbi decoder performance
JP4230953B2 (ja) * 2004-03-31 2009-02-25 株式会社ケンウッド ベースバンド信号生成装置、ベースバンド信号生成方法及びプログラム
US7779339B2 (en) * 2004-05-14 2010-08-17 Panasonic Corporation ACS circuit
CN101160729B (zh) * 2004-06-23 2011-09-14 Nxp股份有限公司 用于并行处理递归数据的定址体系结构
US7231586B2 (en) * 2004-07-21 2007-06-12 Freescale Semiconductor, Inc. Multi-rate viterbi decoder
TWI255622B (en) * 2004-10-21 2006-05-21 Mediatek Inc Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof
US7607072B2 (en) * 2005-01-28 2009-10-20 Agere Systems Inc. Method and apparatus for-soft-output viterbi detection using a multiple-step trellis
EP1746756B1 (en) * 2005-07-21 2013-01-16 STMicroelectronics Srl A method and system for decoding signals, corresponding receiver and computer program product
US8025655B2 (en) 2005-09-12 2011-09-27 Bridgepoint Medical, Inc. Endovascular devices and methods
KR100729619B1 (ko) * 2005-11-07 2007-06-19 삼성전자주식회사 고속 데이터 전송을 위한 비터비 디코딩 방법 및 장치
CN101346695A (zh) * 2005-12-27 2009-01-14 松下电器产业株式会社 具有可重构的运算器的处理器
CN101361039A (zh) * 2006-01-20 2009-02-04 松下电器产业株式会社 处理器
US20070239182A1 (en) * 2006-04-03 2007-10-11 Boston Scientific Scimed, Inc. Thrombus removal device
JP4303256B2 (ja) * 2006-04-04 2009-07-29 パナソニック株式会社 デジタル信号受信装置およびデジタル信号受信方法
US20080005842A1 (en) * 2006-07-07 2008-01-10 Ferno-Washington, Inc. Locking mechanism for a roll-in cot
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US8140949B2 (en) * 2007-11-13 2012-03-20 Alpha Imaging Technology Corp. ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
CA2621147C (en) * 2008-02-15 2013-10-08 Connotech Experts-Conseils Inc. Method of bootstrapping an authenticated data session configuration
KR101410697B1 (ko) 2008-03-20 2014-07-02 삼성전자주식회사 수신기 및 상기 수신기의 동작 제어 방법
US8943392B2 (en) * 2012-11-06 2015-01-27 Texas Instruments Incorporated Viterbi butterfly operations
US20150170067A1 (en) * 2013-12-17 2015-06-18 International Business Machines Corporation Determining analysis recommendations based on data analysis context
KR102319779B1 (ko) * 2014-02-25 2021-11-01 도레이 카부시키가이샤 해도 복합 섬유, 복합 극세 섬유 및 섬유 제품
DE102015107509A1 (de) * 2014-10-14 2016-04-14 Infineon Technologies Ag Chip und Verfahren zum Betreiben einer Verarbeitungsschaltung
JP7007115B2 (ja) * 2017-06-01 2022-01-24 Necプラットフォームズ株式会社 ビタビ復号装置、及び、ビタビ復号方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6081925A (ja) * 1983-10-12 1985-05-10 Nec Corp 誤り訂正装置
JPS60173930A (ja) * 1984-02-20 1985-09-07 Fujitsu Ltd パイプライン処理ビタビ復号器
JPS63215227A (ja) * 1987-03-04 1988-09-07 Toshiba Corp ビタビ復号回路
JPS6468853A (en) 1987-09-10 1989-03-14 Fujitsu Ltd Memory control system
JPH01102541A (ja) * 1987-10-16 1989-04-20 Toshiba Corp 放射線画像装置
JPH03128552A (ja) * 1989-07-31 1991-05-31 Nec Corp データ伝送システムのための変復調装置
US5027374A (en) * 1990-03-26 1991-06-25 Motorola, Inc. Bit serial Viterbi decoder add/compare/select array
US5375129A (en) * 1990-07-19 1994-12-20 Technophone Limited Maximum likelihood sequence detector
US5220570A (en) * 1990-11-30 1993-06-15 The Board Of Trustees Of The Leland Stanford Junior University Programmable viterbi signal processor
US5502735A (en) * 1991-07-16 1996-03-26 Nokia Mobile Phones (U.K.) Limited Maximum likelihood sequence detector
JP2702831B2 (ja) * 1991-08-28 1998-01-26 松下電送株式会社 ヴィタビ復号法
US5327440A (en) * 1991-10-15 1994-07-05 International Business Machines Corporation Viterbi trellis coding methods and apparatus for a direct access storage device
US5280489A (en) * 1992-04-15 1994-01-18 International Business Machines Corporation Time-varying Viterbi detector for control of error event length
JPH05335972A (ja) * 1992-05-27 1993-12-17 Nec Corp ビタビ復号器
JPH0722969A (ja) 1993-06-16 1995-01-24 Matsushita Electric Ind Co Ltd 演算装置
AU652896B2 (en) 1992-09-29 1994-09-08 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus
JPH06164423A (ja) 1992-11-20 1994-06-10 Murata Mach Ltd ビタビ復号器
EP0644661B1 (en) * 1993-09-20 2000-06-14 Canon Kabushiki Kaisha Signal processing apparatus
ZA947317B (en) * 1993-09-24 1995-05-10 Qualcomm Inc Multirate serial viterbi decoder for code division multiple access system applications
US5414738A (en) * 1993-11-09 1995-05-09 Motorola, Inc. Maximum likelihood paths comparison decoder
US5550870A (en) * 1994-03-02 1996-08-27 Lucent Technologies Inc. Viterbi processor
JP3241210B2 (ja) * 1994-06-23 2001-12-25 沖電気工業株式会社 ビタビ復号方法及びビタビ復号回路
FR2724273B1 (fr) * 1994-09-05 1997-01-03 Sgs Thomson Microelectronics Circuit de traitement de signal pour mettre en oeuvre un algorithme de viterbi
JP3304631B2 (ja) 1994-09-14 2002-07-22 ソニー株式会社 ビタビ復号方法及びビタビ復号装置
JPH0946240A (ja) 1995-07-27 1997-02-14 Mitsubishi Electric Corp ビタビ復号機能を有するデータ処理装置
KR0144505B1 (ko) * 1995-09-18 1998-08-17 구자홍 영상표시기기의 화면 자동 조정장치 및 방법
US5742621A (en) * 1995-11-02 1998-04-21 Motorola Inc. Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
US5633897A (en) * 1995-11-16 1997-05-27 Atmel Corporation Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
JP2798123B2 (ja) * 1995-11-17 1998-09-17 日本電気株式会社 ビタビ復号装置
JPH09232973A (ja) * 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
KR100195745B1 (ko) * 1996-08-23 1999-06-15 전주범 비터비 복호화기의 가산 비교 선택 장치
JPH10107651A (ja) 1996-09-27 1998-04-24 Nec Corp ビタビ復号装置
EP0851591B1 (en) 1996-12-24 2001-09-12 Matsushita Electric Industrial Co., Ltd. Data processor and data processing method
JPH10209882A (ja) 1997-01-24 1998-08-07 Japan Radio Co Ltd ビタビ復号方法
JP3242059B2 (ja) 1997-06-04 2001-12-25 沖電気工業株式会社 ビタビ復号器
JP3338374B2 (ja) * 1997-06-30 2002-10-28 松下電器産業株式会社 演算処理方法および装置
US6257756B1 (en) * 1997-07-16 2001-07-10 Motorola, Inc. Apparatus and method for implementing viterbi butterflies
JPH11112361A (ja) 1997-10-01 1999-04-23 Matsushita Electric Ind Co Ltd データ復号装置及びデータ復号方法
US5987490A (en) * 1997-11-14 1999-11-16 Lucent Technologies Inc. Mac processor with efficient Viterbi ACS operation and automatic traceback store
US5912908A (en) * 1997-11-21 1999-06-15 Lucent Technologies Inc. Method of efficient branch metric computation for a Viterbi convolutional decoder
US6195782B1 (en) * 1998-05-28 2001-02-27 Advanced Micro Devices, Inc. MLSE implementation using a general purpose DSP and shared hardware for a GSM application
JP3403382B2 (ja) * 1999-10-29 2003-05-06 松下電器産業株式会社 トレリス復号装置及びその方法
US20080077451A1 (en) * 2006-09-22 2008-03-27 Hartford Fire Insurance Company System for synergistic data processing

Also Published As

Publication number Publication date
US6330684B1 (en) 2001-12-11
EP0923197B1 (en) 2004-12-01
WO1999000905A1 (fr) 1999-01-07
US7325184B2 (en) 2008-01-29
JP3338374B2 (ja) 2002-10-28
US6735714B2 (en) 2004-05-11
US20030066022A1 (en) 2003-04-03
CN1516381A (zh) 2004-07-28
US20050163233A1 (en) 2005-07-28
DE69827915T2 (de) 2005-04-07
CN100512075C (zh) 2009-07-08
CN1118140C (zh) 2003-08-13
US6477661B2 (en) 2002-11-05
DE69827915D1 (de) 2005-01-05
US20020016946A1 (en) 2002-02-07
US7139968B2 (en) 2006-11-21
US20080072129A1 (en) 2008-03-20
CN1231083A (zh) 1999-10-06
EP0923197A1 (en) 1999-06-16
CN101018103B (zh) 2013-02-27
EP0923197A4 (en) 2000-10-04
US20040177313A1 (en) 2004-09-09
JPH1174801A (ja) 1999-03-16

Similar Documents

Publication Publication Date Title
CN100512075C (zh) 数字信号处理器以及使用它的设备和系统
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
KR100439211B1 (ko) 연산처리장치
US20050157823A1 (en) Technique for improving viterbi decoder performance
WO2005011129A1 (ja) ビタビ復号器
US20060115023A1 (en) Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm
US7661059B2 (en) High performance turbo and Viterbi channel decoding in digital signal processors
WO2000067125A1 (fr) Processeur
JP3634333B2 (ja) ディジタル信号処理プロセッサ
EP1355431B1 (en) Viterbi decoding processor
JP3996858B2 (ja) 演算処理装置
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
JP3191442B2 (ja) ビタビ復号用演算装置
US5648921A (en) Digital operational circuit with pathmetrics calculating steps simplified
CN101527573B (zh) 维特比解码器
WO2010064205A1 (en) System and method for viterbi decoding using application specific extensions
JP2001024526A (ja) ビタビ復号装置
JP3231647B2 (ja) ビタビ復号器
JP2003051750A (ja) 演算処理装置
JPH10242871A (ja) データ処理装置及びデータ処理方法

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
ASS Succession or assignment of patent right

Owner name: OPTIS WIRELESS TECHNOLOGY LLC

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20140820

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140820

Address after: texas

Patentee after: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)

Address before: Japan's Osaka kamato City

Patentee before: Matsushita Electric Industrial Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130227

Termination date: 20170629

CF01 Termination of patent right due to non-payment of annual fee