现在将参考附图来描述本发明的实施例。
(第一实施例)
图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”)PM11+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-BM11。
加法部分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而相加。在此情况下,为了实现两个补数(complement){B}和{D},把“1”输入到4∶2压缩器39和ALU29的最低进位输入。结果,从ALU29获得{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}两个加法。
于是,依据第九实施例,把双精度AU41用作执行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以及一个芯片的DSP53A。DSP53A包括由第一到第十一实施例的任一个处理单元所形成的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中,由一个芯片的DSP53A的软件来形成Viterbi译码部分55、卷积编码部分56和定时控制部分54的各个部分。于是,可以少量的部分来配置基站设备68。此外,由于以第一到第十一实施例的任一个处理单元来形成Viterbi译码部分55,所以可以使用DSP53A的流水线处理的一个机器周期来实现对两个路径量度的更新。从而,可以相对少量的处理来实现对使用DSP53A的Viterbi译码的高速ACS运算。
在本实施例中,示出的解调部分51和调制部分52不同于DSP53A。然而,可通过DSP53A的软件来形成这些装置。此外,可把第六实施例的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运算。这使得可减小便携式终端的尺寸、减少重量、降低成本以及增加电池的寿命。