JP2011124848A - Viterbi decoder - Google Patents

Viterbi decoder Download PDF

Info

Publication number
JP2011124848A
JP2011124848A JP2009281612A JP2009281612A JP2011124848A JP 2011124848 A JP2011124848 A JP 2011124848A JP 2009281612 A JP2009281612 A JP 2009281612A JP 2009281612 A JP2009281612 A JP 2009281612A JP 2011124848 A JP2011124848 A JP 2011124848A
Authority
JP
Japan
Prior art keywords
time
state
path information
output
data
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.)
Withdrawn
Application number
JP2009281612A
Other languages
Japanese (ja)
Inventor
Masahiko Toshi
雅彦 都市
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009281612A priority Critical patent/JP2011124848A/en
Publication of JP2011124848A publication Critical patent/JP2011124848A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To speed up trace back processing in viterbi decoding. <P>SOLUTION: In the viterbi decoding, when the trace back processing is performed based on selection path information showing a survival path calculated by an ACS operation, if a state at time N is established in a state A, the processing is performed by reading the selection path information of states of 2<SP>k</SP>pieces at time (N-k) which can transit to the state A at the time N from among the states at the time (N-k) that is k time before the time N from a path memory, memory access is performed at an earlier stage to conceal memory access latency in comparison with conventional trace back processing, and the trace back processing is executed at high speed. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、ビタビ復号装置に関する。   The present invention relates to a Viterbi decoding apparatus.

無線通信や有線通信により情報を伝送する通信システムにおいては、通信路の状態等により伝送された情報に誤りが発生することがある。正しく情報を伝送するために、情報を冗長化するとともに誤り訂正可能にする符号化方式の一つとして畳み込み符号化がある。また、畳み込み符号の復号法の一つとして、ビタビアルゴリズムに基づき復号するビタビ復号が知られている。例えば、送信側装置は、伝送データを畳み込み符号化し、その符号化データ(畳み込み符号)を伝送路に送出する。受信側装置は、伝送路を介して受信した符号化データ(畳み込み符号)についてビタビ復号を行って伝送データに復号する。   In a communication system that transmits information by wireless communication or wired communication, an error may occur in the transmitted information depending on the state of the communication path. In order to transmit information correctly, convolutional coding is one of coding methods that makes information redundant and enables error correction. As one of convolutional code decoding methods, Viterbi decoding for decoding based on the Viterbi algorithm is known. For example, the transmission side device convolutionally encodes transmission data and sends the encoded data (convolutional code) to the transmission path. The reception-side apparatus performs Viterbi decoding on the encoded data (convolutional code) received via the transmission path, and decodes the transmission data.

ビタビ復号では、受信データを用いてACS(Add-Compare-Select)演算を行い、ACS演算の結果に基づいてトレースバック処理を行うことで、伝送データが復号される。ACS演算は、トレリス線図と呼ばれる状態遷移図を基にして、受信データに応じた状態遷移に係るパス(経路)の確からしさ(尤度)を求めていく。ACS演算では、各状態について、前回演算での生き残りパスのパスメトリックを用いてパス毎にパスメトリックを計算し(Add)、パス毎のパスメトリックを比較し(Compare)、確からしい(尤度の高い)パスを生き残りパスとして選択する(Select)。   In Viterbi decoding, ACS (Add-Compare-Select) calculation is performed using received data, and transmission data is decoded by performing a traceback process based on the result of the ACS calculation. The ACS calculation obtains the probability (likelihood) of a path (route) related to a state transition according to received data based on a state transition diagram called a trellis diagram. In the ACS calculation, for each state, a path metric is calculated for each path using the path metric of the surviving path in the previous calculation (Add), and the path metrics for each path are compared (Compare). Select the (high) path as the surviving path (Select).

トレースバック処理は、ACS演算によって選択された最尤パス(生き残りパス)を終端から遡ってエンコーダの状態遷移を順次確定していき、伝送データを求める。トレリス線図において各状態からは2つのパスが伸びている。そして、ACS演算で求められた生き残りパスを示す情報が格納されるパスメモリには、各状態について、一時刻前の状態の取り得る候補のうち、どちらが尤度が高いかを示す1ビットの選択パス情報が格納されている。トレースバック処理では、パスメモリに格納されている時刻Nの状態の選択パス情報を取得することで、時刻(N−1)へのパスが確定し時刻(N−1)の状態が確定する。時刻を遡りながら、この動作を繰り返し行うことで伝送データが求められる。   In the traceback process, the state transition of the encoder is sequentially determined by tracing back the maximum likelihood path (survival path) selected by the ACS operation from the end, and transmission data is obtained. In the trellis diagram, two paths extend from each state. In the path memory in which information indicating the surviving path obtained by the ACS operation is stored, 1-bit selection indicating which one of the candidates that can be taken in the state one hour before is more likely for each state. Stores path information. In the traceback process, by acquiring the selected path information in the state of time N stored in the path memory, the path to time (N-1) is determined and the state of time (N-1) is determined. Transmission data is obtained by repeating this operation while going back in time.

また、ビタビ復号に関して、処理の効率等を改善するための様々な技術が提案されている。例えば、複数のACS演算処理を並列に連続してパイプライン処理させることで、ACS演算処理の効率を改善しビタビ復号処理の高速化を図るようにしたビタビ復号装置が提案されている(例えば、特許文献1参照。)。また、ACS演算における比較演算と、ACS演算により選択された生き残りパスを示す情報ビットのレジスタへの格納とを単一サイクルで実行可能にする技術が提案されている(例えば、特許文献2参照。)。パスメモリを複数個に分割し、トレースバック回路内のシフトレジスタの値をデコードしてチップセレクト信号を生成しデータを得るパスメモリの選択を行う技術が提案されている(例えば、特許文献3参照。)。ACS演算で求められた遷移情報を最尤状態情報により、最尤状態に至る遷移情報をパスメモリから逐次的に読み出し、最尤パスをパス打ち切り長だけ遡った状態番号を読み出すトレースバック部を有する最尤復号器が提案されている(例えば、特許文献4参照。)。   Various techniques for improving processing efficiency and the like have been proposed for Viterbi decoding. For example, a Viterbi decoding device has been proposed in which a plurality of ACS arithmetic processes are continuously pipelined in parallel, thereby improving the efficiency of the ACS arithmetic process and increasing the speed of the Viterbi decoding process (for example, (See Patent Document 1). In addition, a technique has been proposed that enables comparison operations in ACS operations and storage of information bits indicating surviving paths selected by ACS operations in a register (see, for example, Patent Document 2). ). A technique has been proposed in which a path memory is divided into a plurality of parts, a value of a shift register in a traceback circuit is decoded, a chip select signal is generated, and a path memory for obtaining data is selected (for example, see Patent Document 3). .) It has a trace-back unit that sequentially reads out the transition information obtained by the ACS operation from the path memory using the maximum likelihood state information, and sequentially reads out the state number obtained by tracing the maximum likelihood path back by the path cutoff length. A maximum likelihood decoder has been proposed (see, for example, Patent Document 4).

特開平10−107651号公報JP-A-10-107651 特許第3358996号公報Japanese Patent No. 3358996 特許第3277856号公報Japanese Patent No. 3277856 特開2003−258650号公報JP 2003-258650 A

前述のように、従来においてトレースバック処理は、時刻Nの状態の選択パス情報をパスメモリから読み出して、その選択パス情報に基づき時刻(N−1)での状態(パス)を確定する。そして、確定した状態に対応する時刻(N−1)の選択パス情報をパスメモリから読み出して、その選択パス情報に基づき時刻(N−2)の状態(パス)を確定する。つまり、トレースバック処理では、パスメモリからの選択パス情報の読み出しと、その選択パス情報に基づく状態(パス)の確定とが、逐次的に繰り返し行われることで、1ビットずつ順に確定していき、伝送データが求められる。しかし、パスメモリからの選択パス情報の読み出しと、その選択パス情報に基づく状態の確定とは並列動作ができないため、1ビットの確定に複数サイクルを要してしまい、処理速度が遅いという課題があった。   As described above, in the conventional traceback process, the selected path information at the time N state is read from the path memory, and the state (path) at the time (N−1) is determined based on the selected path information. Then, the selected path information at time (N-1) corresponding to the determined state is read from the path memory, and the state (path) at time (N-2) is determined based on the selected path information. In other words, in the traceback processing, reading of the selected path information from the path memory and determination of the state (path) based on the selected path information are sequentially repeated, and the bits are determined in order bit by bit. Transmission data is required. However, since reading of the selected path information from the path memory and determination of the state based on the selected path information cannot be performed in parallel, multiple bits are required to determine one bit, and the processing speed is slow. there were.

本発明の一観点によれば、畳み込み符号化されたデータを基に生き残りパスを演算する演算部と、求められた生き残りパスを示すパス情報が格納されるメモリ部と、格納されたパス情報に基づいて状態遷移をトレースバックし復号結果を出力するトレースバック部とを備えるビタビ復号装置が提供される。トレースバック部は、時刻Nの状態が第1の状態に確定すると、その時刻に対してk時刻前(kは所定の2以上の整数)の時刻(N−k)の状態のうち、時刻Nで第1の状態に遷移し得る時刻(N−k)での2k個の状態のパス情報をメモリ部から読み出して処理を行う。 According to one aspect of the present invention, a calculation unit that calculates a survivor path based on convolutionally encoded data, a memory unit that stores path information indicating the obtained survivor path, and a stored path information A Viterbi decoding device is provided that includes a traceback unit that traces back state transitions and outputs a decoding result. When the state of the time N is determined to be the first state, the traceback unit determines that the time N among the states at the time (N−k) k times before (k is a predetermined integer equal to or greater than 2). Then, the path information of 2 k states at the time (N−k) at which the transition to the first state can be performed is read from the memory unit and processed.

開示のビタビ復号装置は、確定した時刻Nの状態に遷移し得る時刻(N−k)での2k個の状態のパス情報をメモリ部から予め読み出して処理を行うので、メモリアクセスレイテンシを隠蔽することができ、トレースバック処理の高速化を図ることができる。 The disclosed Viterbi decoding apparatus performs processing by reading in advance from the memory unit the path information of 2 k states at the time (N−k) at which the state can transition to the determined time N state, so that the memory access latency is hidden. Therefore, the traceback process can be speeded up.

本発明の実施形態におけるビタビ復号装置の構成例を示す図である。It is a figure which shows the structural example of the Viterbi decoding apparatus in embodiment of this invention. 畳み込み符号を説明するための図である。It is a figure for demonstrating a convolutional code. 本実施形態におけるビタビ復号でのトレースバック処理を説明するための図である。It is a figure for demonstrating the traceback process in Viterbi decoding in this embodiment. 第1の実施形態におけるトレースバック部の構成例を示す図である。It is a figure which shows the structural example of the trace back part in 1st Embodiment. ALUアレイを有するプロセッサの構成例を示す図である。It is a figure which shows the structural example of the processor which has an ALU array. 本実施形態における演算処理部の構成例を示す図である。It is a figure which shows the structural example of the arithmetic processing part in this embodiment. 第1の実施形態における動作を説明するための図である。It is a figure for demonstrating the operation | movement in 1st Embodiment. 第1の実施形態における動作を説明するための図である。It is a figure for demonstrating the operation | movement in 1st Embodiment. 第2の実施形態におけるトレースバック部の構成例を示す図である。It is a figure which shows the structural example of the trace back part in 2nd Embodiment. 図9に示す選択処理部の構成例を示す図である。It is a figure which shows the structural example of the selection process part shown in FIG. 図9に示すアドレス生成部の構成例を示す図である。It is a figure which shows the structural example of the address generation part shown in FIG. 第2の実施形態における動作を説明するための図である。It is a figure for demonstrating the operation | movement in 2nd Embodiment. 第2の実施形態におけるトレースバック部の他の構成例を示す図である。It is a figure which shows the other structural example of the trace back part in 2nd Embodiment. 図13に示す選択処理部の構成例を示す図である。It is a figure which shows the structural example of the selection process part shown in FIG. パスメモリにおける格納データの配置イメージの一例を示す図である。It is a figure which shows an example of the arrangement image of the storage data in a path memory.

以下、本発明の実施形態を図面に基づいて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明の一実施形態におけるビタビ復号装置の構成例を示すブロック図である。本実施形態におけるビタビ復号装置は、ブランチメトリック演算部11、ACS(Add-Compare-Select)演算部12、パスメトリックメモリ13、パスメモリ14、及びトレースバック部15を有する。   FIG. 1 is a block diagram illustrating a configuration example of a Viterbi decoding apparatus according to an embodiment of the present invention. The Viterbi decoding apparatus according to the present embodiment includes a branch metric calculation unit 11, an ACS (Add-Compare-Select) calculation unit 12, a path metric memory 13, a path memory 14, and a traceback unit 15.

ブランチメトリック演算部11は、復号処理の対象である畳み込み符号化されたデータが入力される。ブランチメトリック演算部11は、その入力データに基づいて、トレリス線図におけるブランチメトリック(例えば、符号のハミング距離)を計算する。   The branch metric calculation unit 11 receives convolutionally encoded data that is the object of decoding processing. The branch metric calculation unit 11 calculates a branch metric (for example, a Hamming distance of the code) in the trellis diagram based on the input data.

ACS演算部12は、トレリス線図における各状態についてACS演算を行う。すなわち、ACS演算部12は、まず、状態へのすべてのパスについて、ブランチメトリック演算部11により算出されたブランチメトリックとパスメトリックメモリ13に格納されている前回演算での生き残りパスのパスメトリックとを加算する(Add)。次に、ACS演算部12は、加算後のパスメトリックを比較して(Compare)、パスメトリックが小さい方(最小)のパスを生き残りパスとして選択する(Select)。ACS演算部12は、トレリス線図における状態毎に前述の演算を行う。ACS演算部12での演算により選択された生き残りパスを示す選択パス情報とそのパスのパスメトリックが、パスメモリ14とパスメトリックメモリ13にそれぞれ格納される。   The ACS calculation unit 12 performs ACS calculation for each state in the trellis diagram. That is, the ACS calculation unit 12 first calculates the branch metric calculated by the branch metric calculation unit 11 and the path metric of the surviving path in the previous calculation stored in the path metric memory 13 for all paths to the state. Add (Add). Next, the ACS calculation unit 12 compares the path metrics after the addition (Compare), and selects the path with the smaller path metric (minimum) as the surviving path (Select). The ACS calculation unit 12 performs the above calculation for each state in the trellis diagram. The selected path information indicating the surviving path selected by the calculation in the ACS calculation unit 12 and the path metric of the path are stored in the path memory 14 and the path metric memory 13, respectively.

トレースバック部15は、前述したブランチメトリック演算部11及びACS演算部12等により行われたビタビ演算の結果をトレースバック処理して結果を出力する。トレースバック部15は、ACS演算部12での演算によって得られた選択パス情報をパスメモリ14から読み出し、トレリス線図における状態遷移を遡って確定していき、復号した伝送データとして出力する。   The traceback unit 15 performs a traceback process on the result of the Viterbi calculation performed by the branch metric calculation unit 11 and the ACS calculation unit 12 described above, and outputs the result. The traceback unit 15 reads the selected path information obtained by the calculation in the ACS calculation unit 12 from the path memory 14, determines the state transition in the trellis diagram retrospectively, and outputs it as decoded transmission data.

本実施形態におけるビタビ復号装置のトレースバック部15での処理の概要を、図2及び図3を参照して説明する。
まず、ビタビ復号装置により復号される畳み込み符号について、図2を参照して説明する。なお、以下では、説明が煩雑になることを避けるために、拘束長が3であり、符号化率が1/2である畳み込み符号化を一例として説明する。
An outline of processing in the traceback unit 15 of the Viterbi decoding apparatus in the present embodiment will be described with reference to FIGS.
First, the convolutional code decoded by the Viterbi decoding apparatus will be described with reference to FIG. In the following description, convolutional coding with a constraint length of 3 and a coding rate of 1/2 will be described as an example in order to avoid complicated description.

図2(A)は、畳み込み符号化器の一例を示す図である。図2(A)に示す畳み込み符号化器は、フリップフロップ21、22とEXOR回路(排他的論理和演算回路)23、24、25とを有する。入力inは、1ビット遅延素子としてのフリップフロップ21、22が直列に接続されたシフトレジスタに入力される。EXOR回路23により、入力inとフリップフロップ22の出力(入力inの2ビット遅延出力)との排他的論理和が演算され、符号g0として出力される。また、EXOR回路24、25により、入力inとフリップフロップ21、22の出力(入力inの1ビット遅延出力及び2ビット遅延出力)との排他的論理和が演算され、符号g1として出力される。   FIG. 2A is a diagram illustrating an example of a convolutional encoder. The convolutional encoder shown in FIG. 2A has flip-flops 21 and 22 and EXOR circuits (exclusive OR operation circuits) 23, 24 and 25. The input in is input to a shift register in which flip-flops 21 and 22 as 1-bit delay elements are connected in series. The EXOR circuit 23 calculates an exclusive OR of the input in and the output of the flip-flop 22 (2-bit delayed output of the input in), and outputs the result as a code g0. The EXOR circuits 24 and 25 calculate the exclusive OR of the input “in” and the outputs of the flip-flops 21 and 22 (the 1-bit delayed output and the 2-bit delayed output of the input “in”) and output the result as a code g1.

図2(A)に示した畳み込み符号化器では、出力は、現在及びその直前の2サイクル分の入力inによって決まる。畳み込み符号化器へ入力inが入力されることで、畳み込み符号化器における内部状態(フリップフロップ21、22が保持する値)及び出力される符号g0、g1が決まることになる。図2(A)に示した畳み込み符号化器における内部状態の状態遷移を時系列に示すと、図2(B)に示すトレリス線図のようになる。図2(B)において、S00、S01、S10、S11は、畳み込み符号化器における内部状態を示している。状態Sabは、フリップフロップ21に値“a”が保持され、フリップフロップ22に値“b”が保持されている状態を示している。   In the convolutional encoder shown in FIG. 2A, the output is determined by the current and the input in for two cycles immediately before. By inputting the input “in” to the convolutional encoder, the internal state (values held by the flip-flops 21 and 22) in the convolutional encoder and the output codes g0 and g1 are determined. When the state transition of the internal state in the convolutional encoder shown in FIG. 2A is shown in time series, a trellis diagram shown in FIG. 2B is obtained. In FIG. 2B, S00, S01, S10, and S11 indicate internal states in the convolutional encoder. The state Sab indicates a state in which the value “a” is held in the flip-flop 21 and the value “b” is held in the flip-flop 22.

図2(B)に示すように、例えば内部状態がS00のとき、入力inが“0”であれば、符号(g0、g1)=(00)が出力され、内部状態がS00となり、入力inが“1”であれば、符号(g0、g1)=(11)が出力され、内部状態がS10となる。同様に、内部状態がS01のとき、入力inが“0”であれば、符号(g0、g1)=(11)が出力されかつ内部状態がS00となり、入力inが“1”であれば、符号(g0、g1)=(00)が出力されかつ内部状態がS10となる。また、内部状態がS10のとき、入力inが“0”であれば、符号(g0、g1)=(01)が出力されかつ内部状態がS01となり、入力inが“1”であれば、符号(g0、g1)=(10)が出力されかつ内部状態がS11となる。また、内部状態がS11のとき、入力inが“0”であれば、符号(g0、g1)=(10)が出力されかつ内部状態がS01となり、入力inが“1”であれば、符号(g0、g1)=(01)が出力されかつ内部状態がS11となる。   As shown in FIG. 2B, for example, when the internal state is S00 and the input in is “0”, the code (g0, g1) = (00) is output, the internal state becomes S00, and the input in If “1”, the code (g0, g1) = (11) is output, and the internal state becomes S10. Similarly, when the internal state is S01 and the input in is “0”, the code (g0, g1) = (11) is output and the internal state is S00, and if the input in is “1”, The code (g0, g1) = (00) is output and the internal state is S10. When the internal state is S10 and the input in is “0”, the code (g0, g1) = (01) is output and the internal state is S01. If the input in is “1”, the code (G0, g1) = (10) is output and the internal state becomes S11. When the internal state is S11 and the input in is “0”, the code (g0, g1) = (10) is output and the internal state is S01. If the input in is “1”, the code (G0, g1) = (01) is output and the internal state is S11.

図2(B)に示したように、トレリス線図における各状態に対して2つのパスが存在する。ビタビ復号装置は、初期状態から終了状態に向かって(受信信号の時系列方向に)、入力された符号に基づき各状態についてのACS演算を行い、2つのパスのうち確からしい(尤度の高い)パスを生き残りパスとして選択する。また、各状態における生き残りパスを示す選択パス情報をパスメモリに格納する。そして、終了状態から初期状態に向かって、パスメモリに格納された選択パス情報に基づきトレースバック処理を行い、初期状態−終了状態間で最も確からしいパス(最尤パス)を確定して結果を出力する。   As shown in FIG. 2B, there are two paths for each state in the trellis diagram. The Viterbi decoding apparatus performs an ACS operation for each state based on the input code from the initial state toward the end state (in the time series direction of the received signal), and is likely to have one of the two paths (high likelihood) ) Select the path as the survival path. In addition, selection path information indicating the surviving path in each state is stored in the path memory. Then, from the end state to the initial state, a traceback process is performed based on the selected path information stored in the path memory, and the most probable path (maximum likelihood path) is determined between the initial state and the end state. Output.

ここで、トレリス線図から明らかなように、ある状態に遷移し得る一時刻前の状態は2つ存在する。そのため、時刻Nの状態が確定すると、その1つ前の時刻(N−1)にて取り得る状態の候補は、実際に取る状態と可能性のある状態との2つになる。また、さらに1つ前の時刻(N−2)にて取り得る状態の候補は、時刻(N−1)での実際に取る状態及び可能性のある状態に対してそれぞれ2つあり、あわせて4つの状態がある。例えば図3に示したように時刻Nの状態がST02に確定すると、時刻(N−1)にて取り得る状態の候補はST03及びST04の2状態であり、時刻(N−2)にて取り得る状態の候補はST05、ST06、ST07、及びST07の4状態である。   Here, as is clear from the trellis diagram, there are two states one hour before that can transition to a certain state. For this reason, when the state at time N is determined, the candidates for the states that can be taken at the previous time (N-1) are two, that is, the state that is actually taken and the possible state. In addition, there are two candidate states that can be taken at the previous time (N-2) for the actual state and the possible state at time (N-1). There are four states. For example, as shown in FIG. 3, when the state at time N is confirmed at ST02, the candidate states that can be taken at time (N-1) are the two states ST03 and ST04, and taken at time (N-2). The candidate states to obtain are the four states ST05, ST06, ST07, and ST07.

つまり、時刻Nの状態が決まると、そのk時刻前の時刻(N−k)にて取り得る状態の候補は2k個の状態である。そこで、本実施形態におけるビタビ復号装置は、時刻Nの状態がわかると、そのk時刻前の時刻(N−k)の状態は2k個の状態の中にあることを利用して、トレースバック処理を行う。本実施形態におけるビタビ復号装置は、トレースバック処理において、時刻Nの状態が決まると、その結果に応じてパスメモリから時刻(N−k)の選択パス情報(ただしk≧2)を読み出して処理を行う。このようにして、時刻Nの状態が確定した後に時刻(N−1)の選択パス情報をパスメモリから読み出して処理を行う従来のトレースバック処理と比較して、メモリアクセスをより早い段階で行ってメモリアクセスレイテンシを隠蔽し、トレースバック処理の高速化を図る。 That is, when the state at time N is determined, there are 2 k states that can be taken at the time (N−k) before k times. Therefore, when the Viterbi decoding apparatus according to the present embodiment knows the state at time N, it uses the fact that the state at time k (Nk) before the k time is in 2 k states, and traceback is performed. Process. When the state at time N is determined in the traceback process, the Viterbi decoding apparatus according to the present embodiment reads the selected path information (however, k ≧ 2) at time (N−k) from the path memory according to the result, and performs processing. I do. In this way, the memory access is performed at an earlier stage as compared with the conventional traceback process in which the selected path information at time (N-1) is read from the path memory after the state at time N is fixed. To conceal memory access latency and speed up traceback processing.

以下、本実施形態におけるビタビ復号装置のトレースバック部15の詳細について説明する。以下に説明する第1の実施形態は、トレースバック処理において1サイクルあたり1ビットずつパス(状態)を確定するものであり、第2の実施形態は、トレースバック処理において1サイクルあたり複数ビットのパス(状態)を確定可能なものである。なお、以下の説明において、ビット表現でデータ列を図示した場合、図示したデータ列の上方側又は右側を下位ビット側とする。すなわち、図示したデータ列において最も上方又は最も右側に図示したビットを最下位ビット(LSB:Least Significant Bit)とし、最も下方又は最も左側に図示したビットを最上位ビット(MSB:Most Significant Bit)とする。   Hereinafter, details of the traceback unit 15 of the Viterbi decoding apparatus according to the present embodiment will be described. In the first embodiment described below, a path (state) is determined by one bit per cycle in the traceback process. In the second embodiment, a plurality of bits are passed per cycle in the traceback process. (State) can be determined. In the following description, when a data string is illustrated in bit representation, the upper side or the right side of the illustrated data string is the lower bit side. That is, the uppermost or rightmost bit in the illustrated data string is the least significant bit (LSB), and the lowermost or leftmost bit is the most significant bit (MSB: Most Significant Bit). To do.

(第1の実施形態)
図4は、第1の実施形態におけるトレースバック部の構成例を示す図である。
図4において、31、33、35、37はデータレジスタであり、32、34、36は演算処理部である。また、38は制御レジスタであり、39はアドレス生成部であり、40はメモリである。なお、メモリ40は、後述するようにパスメモリ14に対応するものであるが、説明の便宜上、図4において図示している。
(First embodiment)
FIG. 4 is a diagram illustrating a configuration example of the traceback unit in the first embodiment.
In FIG. 4, reference numerals 31, 33, 35, and 37 are data registers, and reference numerals 32, 34, and 36 are arithmetic processing units. Reference numeral 38 denotes a control register, 39 denotes an address generation unit, and 40 denotes a memory. The memory 40 corresponds to the path memory 14 as will be described later, but is shown in FIG. 4 for convenience of explanation.

データレジスタ31は、メモリ40から出力されたデータDATを保持する。また、データレジスタ33、35、37は、それぞれ演算処理部32、34、36から出力されたデータを保持する。演算処理部32、34、36は、それぞれデータレジスタ31、33、35に保持されているデータが入力される。演算処理部32、34、36は、入力されたデータから特定ビットのデータを取り出すビット取り出し演算を行い、演算により得られたデータ(取り出したビットデータ)を出力する。制御レジスタ38は、演算処理部32、34、36に対して、ビット取り出し演算において取り出すビット数を指定する情報(抽出ビット数情報)を供給する。   The data register 31 holds the data DAT output from the memory 40. The data registers 33, 35, and 37 hold data output from the arithmetic processing units 32, 34, and 36, respectively. The arithmetic processing units 32, 34, and 36 receive the data held in the data registers 31, 33, and 35, respectively. The arithmetic processing units 32, 34, and 36 perform a bit extraction operation for extracting specific bit data from the input data, and output data obtained by the operation (extracted bit data). The control register 38 supplies information (extracted bit number information) that specifies the number of bits to be extracted in the bit extraction operation to the arithmetic processing units 32, 34, and 36.

本実施形態において、演算処理部32、34、36が制御レジスタ38からの抽出ビット数情報により指定されるビット数は、それぞれ4ビット、2ビット、1ビットである。したがって、演算処理部32からの出力データのうち、有意なビットは4ビットであり、演算処理部34からの出力データのうち、有意なビットは2ビットである。同様に、演算処理部36からの出力データのうち、有意なビットは1ビットである。また、演算処理部32、34、36には、ビット取り出し演算において取り出すビットの位置を指定する情報(抽出ビット位置情報)として、演算処理部36の出力データにおける有意な1ビットが、データレジスタ37を介して供給されている。演算処理部32、34、36は、入力されたデータにおける有意なビットのなかから、抽出ビット位置情報に応じた位置のビットを取り出す。   In the present embodiment, the number of bits specified by the extracted bit number information from the control register 38 by the arithmetic processing units 32, 34, and 36 is 4 bits, 2 bits, and 1 bit, respectively. Therefore, the significant bits in the output data from the arithmetic processing unit 32 are 4 bits, and the significant bits in the output data from the arithmetic processing unit 34 are 2 bits. Similarly, significant bits are 1 bit in the output data from the arithmetic processing unit 36. The arithmetic processing units 32, 34, and 36 store one significant bit in the output data of the arithmetic processing unit 36 as data register 37 as information (extraction bit position information) for designating the position of the bit to be extracted in the bit extraction operation. Is supplied through. The arithmetic processing units 32, 34, and 36 take out the bit at the position corresponding to the extracted bit position information from the significant bits in the input data.

メモリ40は、図1に示したパスメモリ14に対応する。メモリ40は、トレリス線図における各状態についての生き残りパスを示す選択パス情報がデータとして格納されている。メモリ40は、アドレス生成部39から供給されたアドレスADDに格納されている選択パス情報をデータDATとして出力する。アドレス生成部39は、データレジスタ37を介して演算処理部36の出力データにおける有意な1ビット、すなわち最終的な選択結果として出力される1ビットが入力される。アドレス生成部39は、入力された有意な1ビットの選択パス情報に基づいて、その選択パス情報によって状態が決まる時刻に対し3時刻前の時刻で取り得る8(=23)個の状態の選択パス情報をメモリ40から読み出すアドレスADDを生成し出力する。例えば、アドレス生成部39は、入力される有意な1ビットの選択パス情報が時刻Nの状態(状態Aとする)を決めるものであれば、時刻Nにて状態Aに遷移し得る時刻(N−3)の8個の状態に係る情報をメモリ40から読み出すためのアドレスADDを生成する。 The memory 40 corresponds to the path memory 14 shown in FIG. The memory 40 stores selected path information indicating surviving paths for each state in the trellis diagram as data. The memory 40 outputs the selected path information stored in the address ADD supplied from the address generation unit 39 as data DAT. The address generation unit 39 receives 1 significant bit in the output data of the arithmetic processing unit 36 via the data register 37, that is, 1 bit output as the final selection result. Based on the input 1-bit selection path information that has been input, the address generation unit 39 has 8 (= 2 3 ) states that can be taken three times before the time determined by the selection path information. An address ADD for reading the selected path information from the memory 40 is generated and output. For example, if the significant 1-bit selection path information that is input determines the state at time N (referred to as state A), the address generating unit 39 may change to state A at time N (N -3) The address ADD for reading out the information relating to the eight states from the memory 40 is generated.

ここで、図4に示したトレースバック部は、例えば図5に示すようなALU(Arithmetic and Logic Unit)アレイを有するプロセッサを用いて構成しても良い。図5は、ALUアレイを有するプロセッサの一構成例を示す図である。図5に示すプロセッサは、命令キャッシュ51、コントローラ52、レジスタファイル53、スカラ実行部54、ロード/ストア部55、ディスパッチメモリ56、ALUアレイ57、アドレス生成部58、及びDMAコントローラ59を備える。   Here, the traceback unit shown in FIG. 4 may be configured using a processor having an ALU (Arithmetic and Logic Unit) array as shown in FIG. 5, for example. FIG. 5 is a diagram illustrating a configuration example of a processor having an ALU array. The processor shown in FIG. 5 includes an instruction cache 51, a controller 52, a register file 53, a scalar execution unit 54, a load / store unit 55, a dispatch memory 56, an ALU array 57, an address generation unit 58, and a DMA controller 59.

コントローラ52は、命令キャッシュ51から読み出した命令に基づいてプロセッサ内の各機能部に係る制御を行う。レジスタファイル53は、演算の対象となるデータ等を保持する。スカラ実行部54は、コントローラ52の指示に従って演算処理を行う。ロード/ストア部55は、ロード命令/ストア命令に係る処理を実行する。ロード/ストア部55は、ディスパッチメモリ56等からレジスタにデータをロードしたり(読み出したり)、レジスタからディスパッチメモリ56等へデータをストアしたり(書き込んだり)する。ディスパッチメモリ56は、演算処理を実行して得られたデータ等が格納されるメモリである。   The controller 52 performs control related to each functional unit in the processor based on the instruction read from the instruction cache 51. The register file 53 holds data to be calculated. The scalar execution unit 54 performs arithmetic processing according to instructions from the controller 52. The load / store unit 55 executes processing related to the load instruction / store instruction. The load / store unit 55 loads (reads) data from the dispatch memory 56 or the like to a register, or stores (writes) data from the register to the dispatch memory 56 or the like. The dispatch memory 56 is a memory in which data obtained by executing arithmetic processing is stored.

ALUアレイ57は、アレイ状に配置された複数のALUと、その複数のALUによるパイプラインステージを分割するパイプラインレジスタとを有する。ALUは、複数の演算器を含む演算ユニットである。パイプラインレジスタは、例えばフリップフロップで構成される。ALUアレイ57は、複合演算を1つの命令で処理することができ、例えば入力されたデータから特定ビットのデータを取り出すビット取り出し演算を1つの命令で処理することができる。ALUアレイ57は、どの命令を演算するか、どのデータを使用するかを各ALUに指示することでさまざまな演算処理を行うことができる。アドレス生成部58は、ALUアレイ57の出力からディスパッチメモリ56にアクセスするためのアドレスを生成する。DMAコントローラ59は、プロセッサ内のディスパッチメモリ56とプロセッサ外部のデバイスとの間で行うDMA転送に係る制御を行う。   The ALU array 57 includes a plurality of ALUs arranged in an array and a pipeline register that divides a pipeline stage by the plurality of ALUs. The ALU is an arithmetic unit including a plurality of arithmetic units. The pipeline register is composed of, for example, a flip-flop. The ALU array 57 can process a composite operation with a single instruction. For example, it can process a bit extraction operation for extracting data of a specific bit from input data with a single instruction. The ALU array 57 can perform various arithmetic processes by instructing each ALU which instruction is to be operated and which data is to be used. The address generator 58 generates an address for accessing the dispatch memory 56 from the output of the ALU array 57. The DMA controller 59 performs control related to DMA transfer performed between the dispatch memory 56 in the processor and a device outside the processor.

例えば、図4に示したデータレジスタ31、33、35、37、演算処理部32、34、36、及び制御レジスタ38の機能を図5に示したALUアレイ57により実現する。また例えば、図4に示したアドレス生成部39の機能を図5に示したアドレス生成部58により実現し、図4に示したメモリ40の機能を図5に示したディスパッチメモリ56により実現する。このようにすることで、図4に示したトレースバック部を図5に示すプロセッサで実現することができる。   For example, the functions of the data registers 31, 33, 35, and 37, the arithmetic processing units 32, 34, and 36, and the control register 38 shown in FIG. 4 are realized by the ALU array 57 shown in FIG. Further, for example, the function of the address generation unit 39 shown in FIG. 4 is realized by the address generation unit 58 shown in FIG. 5, and the function of the memory 40 shown in FIG. 4 is realized by the dispatch memory 56 shown in FIG. By doing so, the traceback unit shown in FIG. 4 can be realized by the processor shown in FIG.

図6は、本実施形態における演算処理部の内部構成例を示す図である。
図6(A)に示すように、演算処理部71は、乗算部72、シフト演算部73、マスク出力部74、及び論理積演算部75を有する。
FIG. 6 is a diagram illustrating an internal configuration example of the arithmetic processing unit in the present embodiment.
As illustrated in FIG. 6A, the arithmetic processing unit 71 includes a multiplication unit 72, a shift calculation unit 73, a mask output unit 74, and a logical product calculation unit 75.

乗算部72は、ビット取り出し演算において取り出すビット数を指定する抽出ビット数情報Sと、取り出すビット位置を指定する抽出ビット位置情報aとが入力される。乗算部72は、抽出ビット数情報Sと抽出ビット位置情報aとを乗算し、その乗算結果(S×a)を出力する。シフト演算部73は、入力データXと、乗算部72での乗算結果(S×a)とが入力される。シフト演算部73は、入力データXのビットを(S×a)ビット分だけ右方向(下位ビット側)にシフトして出力する。すなわち、シフト演算部73は、入力データXにおける(i+(S×a))ビット目をiビット目にシフトして出力する。   The multiplier 72 receives the extracted bit number information S that specifies the number of bits to be extracted in the bit extraction operation and the extracted bit position information a that specifies the bit position to be extracted. The multiplier 72 multiplies the extracted bit number information S and the extracted bit position information a, and outputs the multiplication result (S × a). The shift calculation unit 73 receives the input data X and the multiplication result (S × a) in the multiplication unit 72. The shift calculation unit 73 shifts the bits of the input data X by (S × a) bits to the right (lower bit side) and outputs the result. That is, the shift calculation unit 73 shifts the (i + (S × a)) bit in the input data X to the i-th bit and outputs it.

マスク出力部74は、例えば図6(B)に示すような抽出ビット数情報Sに応じて選択されるマスクパターンからなるテーブルを有している。マスク出力部74は、抽出ビット数情報Sが入力され、抽出ビット数情報Sに応じたマスクパターンを出力する。なお、図6に示した例では、抽出ビット数情報Sの値を0〜16の整数とし、それぞれの値に対応するマスクパターンをマスク出力部74が有するようにしている。しかし、本実施形態におけるトレースバック処理においては、抽出ビット数情報Sの値は2のべき乗の整数値だけを取り得るので、2のべき乗の整数値に対応するマスクパターンだけをマスク出力部74が有するようにしても良い。また、構成に応じて抽出ビット数情報Sの上限値も定まるので、抽出ビット数情報Sの上限値より大きい値に対応するマスクパターンは備えないようにしても良い。   The mask output unit 74 has a table composed of mask patterns selected according to the extracted bit number information S as shown in FIG. 6B, for example. The mask output unit 74 receives the extracted bit number information S and outputs a mask pattern corresponding to the extracted bit number information S. In the example shown in FIG. 6, the value of the extracted bit number information S is set to an integer of 0 to 16, and the mask output unit 74 has a mask pattern corresponding to each value. However, in the traceback processing in the present embodiment, the value of the extracted bit number information S can take only a power integer value of 2, so that the mask output unit 74 outputs only the mask pattern corresponding to the power value of 2 integer. You may make it have. In addition, since the upper limit value of the extracted bit number information S is determined according to the configuration, a mask pattern corresponding to a value larger than the upper limit value of the extracted bit number information S may not be provided.

論理積演算部75は、シフト演算部73の出力と、マスク出力部74の出力とが入力される。論理積演算部75は、シフト演算部73の出力とマスク出力部74の出力(マスクパターン)とをビット毎に論理積演算し、その演算結果を出力データYとして出力する。   The AND operation unit 75 receives the output of the shift operation unit 73 and the output of the mask output unit 74. The AND operation unit 75 performs an AND operation on the output of the shift operation unit 73 and the output (mask pattern) of the mask output unit 74 for each bit, and outputs the operation result as output data Y.

前述のように構成された演算処理部71は、抽出ビット数情報S及び抽出ビット位置情報aに応じて、入力データXにおける下位側からSビット単位で分割したときの(a+1)番目のデータ(Sビット幅)を選択して出力データYとして出力する。すなわち、演算処理部71は、Y={X>>(S*a)}&(マスクパターン)で示される演算処理を行う。ここで、“A>>B”は、データ列AのBビット右シフト(下位側へのシフト)を表す。   The arithmetic processing unit 71 configured as described above is the (a + 1) -th data (S + 1) when the input data X is divided in units of S bits from the lower side in accordance with the extracted bit number information S and the extracted bit position information a ( S bit width) is selected and output as output data Y. That is, the arithmetic processing unit 71 performs arithmetic processing represented by Y = {X >> (S * a)} & (mask pattern). Here, “A >> B” represents a B-bit right shift (shift to the lower side) of the data string A.

例えば、入力データXが“0000_0000_0000_0000_0000_0000_1111_1111”(バイナリ表記)、抽出ビット数情報Sが1、抽出ビット位置情報aが3であれば、演算処理部71は、出力データYとして“0000_0000_0000_0000_0000_0000_0000_0001”を出力する。また、例えば、入力データXが“0000_0000_0000_0000_0000_0000_1111_1111”、抽出ビット数情報Sが3、抽出ビット位置情報aが2であれば、演算処理部71は、出力データYとして“0000_0000_0000_0000_0000_0000_0000_0011”を出力する。   For example, if the input data X is “0000_0000_0000_0000_0000_0000_1111_1111” (binary notation), the extracted bit number information S is 1 and the extracted bit position information a is 3, the arithmetic processing unit 71 outputs “0000_0000_0000_0000_0000_0000_0000_0001” as the output data Y. For example, if the input data X is “0000_0000_0000_0000_0000_0000_1111_1111”, the extracted bit number information S is 3, and the extracted bit position information a is 2, the arithmetic processing unit 71 outputs “0000_0000_0000_0000_0000_0000_0000_0011” as the output data Y.

次に、第1の実施形態におけるトレースバック部の動作について、図7及び図8を参照して説明する。図7及び図8は、第1の実施形態におけるトレースバック部の動作を説明するための図である。図7は、ある時刻の状態に係る情報についての処理の流れを示している。また、図8は、トレースバック部におけるデータの流れを示している。図7及び図8において、図4に示した構成要素と同一の構成要素には同一の符号を付している。また、図8において、D(31)、D(33)、D(35)、及びD(37)は、それぞれデータレジスタ31、33、35、及び37の出力データ(レジスタに格納されているデータ)である。   Next, the operation of the traceback unit in the first embodiment will be described with reference to FIGS. 7 and 8 are diagrams for explaining the operation of the traceback unit in the first embodiment. FIG. 7 shows the flow of processing for information relating to the state at a certain time. FIG. 8 shows the data flow in the traceback unit. 7 and 8, the same components as those shown in FIG. 4 are denoted by the same reference numerals. In FIG. 8, D (31), D (33), D (35), and D (37) are output data of the data registers 31, 33, 35, and 37 (data stored in the registers, respectively). ).

まず、図7に基づいて動作を説明する。
第1の実施形態におけるトレースバック処理において、時刻(N+1)の状態が確定し、データレジスタ37の出力データとして時刻(N+1)の状態の選択パス情報(“0”又は“1”)が出力されているとする。この時刻(N+1)の状態の選択パス情報は、演算処理部32、34、36に抽出ビット位置情報aとして供給されるとともに、アドレス生成部39に供給される。
First, the operation will be described with reference to FIG.
In the trace back processing in the first embodiment, the state at time (N + 1) is determined, and the selected path information (“0” or “1”) at the time (N + 1) state is output as the output data of the data register 37. Suppose that The selected path information at the time (N + 1) is supplied to the arithmetic processing units 32, 34, and 36 as the extracted bit position information “a” and also supplied to the address generation unit 39.

演算処理部36では、供給された時刻(N+1)の状態の選択パス情報に基づいて時刻Nの状態(状態Aとする)が決まり、時刻Nの状態の選択パス情報が出力される。また、アドレス生成部39は、前述のように時刻Nの状態を決める時刻(N+1)の状態の選択パス情報に基づいて、時刻Nに対し3時刻前の時刻(N−3)の状態に係る選択パス情報をメモリ40(パスメモリ14)から読み出すアドレスADDを生成し出力する。このとき生成されるアドレスADDは、時刻Nにおいて状態Aになり得る時刻(N−3)での8個の状態に係る選択パス情報(8ビット)を読み出すためのものである。これにより、時刻Nに対して3時刻前の時刻(N−3)の状態に係る選択パス情報のうち、時刻Nにおいて状態Aになり得る8個の状態に係る選択パス情報がメモリ40から読み出され、データDATとしてデータレジスタ31に入力される。なお、この8ビットの情報は、メモリ40からロードされる際にバイトロードされ、データ列における最下位ビットからの8ビット分に配置されてデータレジスタ31に入力される。   The arithmetic processing unit 36 determines the state at time N (referred to as state A) based on the supplied selected path information at time (N + 1), and outputs the selected path information at time N. Further, the address generation unit 39 relates to the state at the time (N-3) three times before the time N based on the selected path information at the time (N + 1) that determines the state at the time N as described above. An address ADD for reading the selected path information from the memory 40 (path memory 14) is generated and output. The address ADD generated at this time is for reading the selected path information (8 bits) relating to the eight states at the time (N-3) that can become the state A at the time N. As a result, among the selected path information related to the state at the time (N-3) three times before the time N, the selected path information related to the eight states that can be in the state A at the time N is read from the memory 40. Is output to the data register 31 as data DAT. The 8-bit information is byte-loaded when loaded from the memory 40, is arranged in 8 bits from the least significant bit in the data string, and is input to the data register 31.

そして、次のクロックサイクルにて、時刻(N−3)での8個の状態に係る選択パス情報は、演算処理部32に入力データXとして入力される。また、演算処理部32には、抽出ビット数情報Sとして“4”が入力されるとともに、抽出ビット位置情報aとしてデータレジスタ37から時刻Nの状態の選択パス情報(“0”又は“1”)が入力される。演算処理部32は、抽出ビット位置情報aとして入力される時刻Nの状態の選択パス情報に基づいて、時刻(N−3)での8個の状態に係る選択パス情報から上位側の4ビット又は下位側の4ビットを選択して出力する。このようにして、時刻(N−3)での8個の状態に係る選択パス情報から、時刻Nの状態の選択パス情報により決まる時刻(N−1)の状態に応じた時刻(N−3)での4個の状態に係る選択パス情報(4ビット)が選択され、データレジスタ33に入力される。   Then, in the next clock cycle, the selected path information related to the eight states at time (N-3) is input to the arithmetic processing unit 32 as input data X. Further, “4” is input as the extracted bit number information S to the arithmetic processing unit 32, and the selected path information (“0” or “1”) at the time N state from the data register 37 as the extracted bit position information a. ) Is entered. Based on the selected path information in the state at time N input as the extracted bit position information a, the arithmetic processing unit 32 uses the upper 4 bits from the selected path information in the eight states at time (N-3). Alternatively, the lower 4 bits are selected and output. In this way, the time (N-3) according to the state at the time (N-1) determined by the selected path information at the time N state from the selected path information at the eight states at the time (N-3). The selected path information (4 bits) relating to the four states in (4) is selected and input to the data register 33.

さらに、その次のクロックサイクルにて、時刻(N−3)での4個の状態に係る選択パス情報は、演算処理部34に入力データXとして入力される。また、演算処理部34には、抽出ビット数情報Sとして“2”が入力されるとともに、抽出ビット位置情報aとしてデータレジスタ37から時刻(N−1)の状態の選択パス情報が入力される。演算処理部34は、抽出ビット位置情報aとして入力される時刻(N−1)の状態の選択パス情報に基づいて、時刻(N−3)での4個の状態に係る選択パス情報から上位側の2ビット又は下位側の2ビットを選択して出力する。このようにして、時刻(N−3)での4個の状態に係る選択パス情報から、時刻(N−1)の状態の選択パス情報により決まる時刻(N−2)の状態に応じた時刻(N−3)での2個の状態に係る選択パス情報(2ビット)が選択され、データレジスタ35に入力される。   Further, in the next clock cycle, the selected path information related to the four states at time (N-3) is input to the arithmetic processing unit 34 as input data X. Further, “2” is input as the extracted bit number information S to the arithmetic processing unit 34, and the selected path information at the time (N−1) is input from the data register 37 as the extracted bit position information a. . Based on the selected path information of the state at time (N-1) input as the extracted bit position information a, the arithmetic processing unit 34 determines the higher rank from the selected path information of the four states at time (N-3). 2 bits on the side or 2 bits on the lower side are selected and output. In this way, the time according to the state at time (N-2) determined by the selected path information at the time (N-1) state from the selected path information at the four states at time (N-3). Selected path information (2 bits) relating to the two states in (N-3) is selected and input to the data register 35.

続いて、その次のクロックサイクルにて、時刻(N−3)での2個の状態に係る選択パス情報は、演算処理部36に入力データXとして入力される。また、演算処理部36には、抽出ビット数情報Sとして“1”が入力されるとともに、抽出ビット位置情報aとしてデータレジスタ37から時刻(N−2)の状態の選択パス情報が入力される。演算処理部36は、抽出ビット位置情報aとして入力される時刻(N−2)の状態の選択パス情報に基づいて、時刻(N−3)での2個の状態に係る選択パス情報から上位側の1ビット又は下位側の1ビットを選択して出力する。すなわち、時刻(N−3)の状態が確定し、その状態の選択パス情報が出力される。   Subsequently, in the next clock cycle, the selected path information related to the two states at time (N-3) is input to the arithmetic processing unit 36 as input data X. Further, “1” is input to the arithmetic processing unit 36 as the extracted bit number information S, and the selected path information at the time (N−2) is input from the data register 37 as the extracted bit position information a. . Based on the selected path information of the state at time (N-2) that is input as the extracted bit position information a, the arithmetic processing unit 36 determines the higher rank from the selected path information of the two states at time (N-3). 1 bit on the side or 1 bit on the lower side is selected and output. That is, the state at time (N-3) is confirmed, and the selected path information in that state is output.

以上の動作を、図8に示すようにクロックサイクル毎に順次処理し各時刻の状態について行うことで、トレースバック処理が実行される。すなわち、kを任意の整数として、データレジスタ37から出力される時刻kの状態の選択パス情報に基づいて、それにより決まる時刻(k−1)の状態になり得る時刻(k−4)での8個の状態に係る選択パス情報が読み出される。また、時刻kの状態の選択パス情報に基づいて、演算処理部32、34、36により、時刻(k−3)、時刻(k−2)、時刻(k−1)にて取り得る状態がそれぞれ2分の1に限定される。   The trace back process is executed by sequentially processing the above operations for each clock cycle as shown in FIG. That is, based on the selected path information in the state of time k output from the data register 37, where k is an arbitrary integer, the time (k-4) at which the state (k-1) can be determined is determined. The selected path information related to the eight states is read out. Further, based on the selected path information in the state at time k, states that can be taken at time (k-3), time (k-2), and time (k-1) by the arithmetic processing units 32, 34, and 36. Each is limited to one-half.

例えば、図8に示したTAの期間においては、データレジスタ37から出力される時刻(N+1)の状態の選択パス情報(時刻Nの状態)に基づいて、それにより決まる時刻Nの状態になり得る時刻(N−3)での8個の状態に係る選択パス情報が読み出される。また、演算処理部32は、データレジスタ31から出力される時刻(N−2)での8個の状態に係る選択パス情報から、時刻(N+1)の状態の選択パス情報(時刻Nの状態)に基づいて4個の状態に係る選択パス情報を選択して出力する。同様に、演算処理部34は、データレジスタ33から出力される時刻(N−1)での4個の状態に係る選択パス情報から、時刻(N+1)の状態の選択パス情報(時刻Nの状態)に基づいて2個の状態に係る選択パス情報を選択して出力する。演算処理部36は、データレジスタ35から出力される時刻Nでの2個の状態に係る選択パス情報から、時刻(N+1)の状態の選択パス情報に基づいて時刻Nの状態に係る選択パス情報を選択して出力する。   For example, during the period TA shown in FIG. 8, the state of time N determined by the selected path information (time N) at the time (N + 1) output from the data register 37 can be obtained. The selected path information relating to the eight states at time (N-3) is read out. Further, the arithmetic processing unit 32 selects the selected path information at the time (N + 1) (the state at the time N) from the selected path information regarding the eight states at the time (N−2) output from the data register 31. The selected path information related to the four states is selected and output based on the above. Similarly, the arithmetic processing unit 34 selects the selected path information (state at time N) from the selected path information regarding the four states at time (N−1) output from the data register 33. ) To select and output the selected path information relating to the two states. The arithmetic processing unit 36 selects the selected path information relating to the state at time N based on the selected path information relating to the state at time (N + 1) from the selected path information relating to the two states at time N output from the data register 35. Select to output.

第1の実施形態によれば、時刻Nの状態が確定すると、その状態に遷移し得るk時刻前の時刻(N−k)での2k個の状態の選択パス情報をメモリから読み出してトレースバック処理を行う。これにより、時刻Nの状態が確定した後に時刻(N−1)の選択パス情報をパスメモリから読み出して処理を行う従来のトレースバック処理と比較して、メモリアクセスをより早い段階で行ってメモリアクセスレイテンシを隠蔽することができる。また、トレースバック処理における状態の確定と、選択パス情報のメモリからの読み出しとを並列して行うことができ、1サイクル毎に1ビットを確定させることが可能となる。したがって、トレースバック処理を従来と比較して高速に実行することができる。 According to the first embodiment, when the state at time N is determined, the selected path information of 2 k states at time (N−k) before k times that can transit to the state is read from the memory and traced. Perform back processing. As a result, the memory access is performed at an earlier stage as compared with the conventional traceback process in which the selected path information at the time (N−1) is read from the path memory after the state at the time N is fixed and the process is performed. Access latency can be hidden. Further, the determination of the state in the traceback process and the reading of the selected path information from the memory can be performed in parallel, and one bit can be determined for each cycle. Therefore, the traceback process can be executed at a higher speed than in the prior art.

(第2の実施形態)
図9は、第2の実施形態におけるトレースバック部の構成例を示す図である。
図9において、91、93、95、97、98、100、102、103はデータレジスタであり、92、94、96、99、101は演算処理部である。また、104は制御レジスタであり、105は選択処理部であり、106はアドレス生成部である。107はパスメモリ14に対応するメモリであるが、説明の便宜上、図9において図示している。
(Second Embodiment)
FIG. 9 is a diagram illustrating a configuration example of the traceback unit in the second embodiment.
In FIG. 9, 91, 93, 95, 97, 98, 100, 102, 103 are data registers, and 92, 94, 96, 99, 101 are arithmetic processing units. Reference numeral 104 denotes a control register, 105 denotes a selection processing unit, and 106 denotes an address generation unit. Reference numeral 107 denotes a memory corresponding to the path memory 14, which is shown in FIG. 9 for convenience of explanation.

データレジスタ91は、メモリ107から出力されたデータDTAを保持し、データレジスタ98は、メモリ107から出力されたデータDTBを保持する。データレジスタ93、95、97、100、102は、それぞれ演算処理部92、94、96、99、101から出力されたデータを保持する。また、データレジスタ103は、データレジスタ102から出力されたデータを保持する。   The data register 91 holds the data DTA output from the memory 107, and the data register 98 holds the data DTB output from the memory 107. The data registers 93, 95, 97, 100, and 102 hold data output from the arithmetic processing units 92, 94, 96, 99, and 101, respectively. The data register 103 holds data output from the data register 102.

演算処理部92、94、96、99、101は、図6に示した第1の実施形態における演算処理部と同様に構成される。演算処理部92、94、96、99、101は、それぞれデータレジスタ91、93、95、98、100に保持されているデータが入力される。演算処理部92、94、96、99、101は、入力されたデータから特定ビットのデータを取り出すビット取り出し演算を行い、演算により得られたデータ(取り出したビットデータ)を出力する。制御レジスタ104は、演算処理部92、94、96、99、101に対して、ビット取り出し演算において取り出すビット数を指定する抽出ビット数情報を供給する。   The arithmetic processing units 92, 94, 96, 99, and 101 are configured in the same manner as the arithmetic processing unit in the first embodiment shown in FIG. The arithmetic processing units 92, 94, 96, 99, and 101 receive the data held in the data registers 91, 93, 95, 98, and 100, respectively. The arithmetic processing units 92, 94, 96, 99, and 101 perform a bit extraction operation for extracting specific bit data from the input data, and output data obtained by the operation (extracted bit data). The control register 104 supplies extracted bit number information that specifies the number of bits to be extracted in the bit extraction calculation to the arithmetic processing units 92, 94, 96, 99, and 101.

図9に示す第2の実施形態におけるトレースバック部において、演算処理部92、94、96が制御レジスタ104からの抽出ビット数情報により指定されるビット数は、それぞれ8ビット、2ビット、1ビットである。また、演算処理部99、101が制御レジスタ104からの抽出ビット数情報により指定されるビット数は、それぞれ4ビット、1ビットである。したがって、演算処理部92からの出力データのうち、有意なビットは8ビットであり、演算処理部94からの出力データのうち、有意なビットは2ビットであり、演算処理部96からの出力データのうち、有意なビットは1ビットである。同様に、演算処理部99からの出力データのうち、有意なビットは4ビットであり、演算処理部101からの出力データのうち、有意なビットは1ビットである。   In the trace back unit in the second embodiment shown in FIG. 9, the number of bits specified by the extracted bit number information from the control register 104 by the arithmetic processing units 92, 94, and 96 is 8 bits, 2 bits, and 1 bit, respectively. It is. The number of bits specified by the arithmetic processing units 99 and 101 by the extracted bit number information from the control register 104 is 4 bits and 1 bit, respectively. Accordingly, the significant bits of the output data from the arithmetic processing unit 92 are 8 bits, and the significant bits of the output data from the arithmetic processing unit 94 are 2 bits. The output data from the arithmetic processing unit 96 Of these, the significant bit is 1 bit. Similarly, significant bits are 4 bits in the output data from the arithmetic processing unit 99, and significant bits are 1 bit in the output data from the arithmetic processing unit 101.

また、演算処理部92、94、99、101には、選択処理部105の出力が、ビット取り出し演算において取り出すビットの位置を指定する抽出ビット位置情報として供給されている。演算処理部96には、データレジスタ102の出力が抽出ビット位置情報として供給されている。演算処理部92、94、96、99、101は、入力されたデータにおける有意なビットのなかから、抽出ビット位置情報に応じた位置のビットを取り出す。   In addition, the output of the selection processing unit 105 is supplied to the arithmetic processing units 92, 94, 99, and 101 as extracted bit position information that specifies the position of the bit to be extracted in the bit extraction operation. The output of the data register 102 is supplied to the arithmetic processing unit 96 as extracted bit position information. The arithmetic processing units 92, 94, 96, 99, and 101 extract bits at positions corresponding to the extracted bit position information from significant bits in the input data.

メモリ107は、パスメモリ14に対応し、トレリス線図における各状態についての生き残りパスを示す選択パス情報がデータとして格納されている。メモリ107は、アドレス生成部106から供給されたアドレスADDに格納されている選択パス情報をデータDTA、DTBとして出力する。   The memory 107 corresponds to the path memory 14 and stores selected path information indicating the surviving path for each state in the trellis diagram as data. The memory 107 outputs the selected path information stored in the address ADD supplied from the address generation unit 106 as data DTA and DTB.

図10は、図9に示した選択処理部105の構成例を示す図である。
選択処理部105は、AND回路(論理積演算回路)111、112及びOR回路(論理和演算回路)113を有する。AND回路111は、信号A0及び信号B0が入力され、その演算結果を出力する。また、AND回路112は、信号A1が入力されるとともに信号B0が反転入力され、その演算結果を出力する。OR回路113は、AND回路111の出力及びAND回路112の出力が入力され、その演算結果を出力する。
FIG. 10 is a diagram illustrating a configuration example of the selection processing unit 105 illustrated in FIG.
The selection processing unit 105 includes AND circuits (logical product operation circuits) 111 and 112 and an OR circuit (logical sum operation circuit) 113. The AND circuit 111 receives the signal A0 and the signal B0 and outputs the calculation result. In addition, the AND circuit 112 receives the signal A1 and the inverted signal B0, and outputs the calculation result. The OR circuit 113 receives the output of the AND circuit 111 and the output of the AND circuit 112 and outputs the calculation result.

ここで、信号A0、A1、B0のそれぞれは1ビットの信号である。データレジスタ95の出力の有意な2ビットのうち、上位1ビットが信号A0として入力され、下位1ビットが信号A1として入力される。また、データレジスタ102の出力の有意な1ビットが信号B0として入力される。なお、jを任意の数として、データレジスタ102からの有意な1ビット出力は時刻jの状態の選択パス情報であり、データレジスタ95からの有意な2ビット出力は候補として残っている時刻(j−1)の状態に係る選択パス情報である。   Here, each of the signals A0, A1, and B0 is a 1-bit signal. Of the significant 2 bits of the output of the data register 95, the upper 1 bit is input as the signal A0, and the lower 1 bit is input as the signal A1. Further, a significant bit of the output of the data register 102 is input as the signal B0. Note that with 1 being an arbitrary number, a significant 1-bit output from the data register 102 is selected path information in the state of time j, and a significant 2-bit output from the data register 95 remains as a candidate (j -1) is the selected path information.

選択処理部105は、AND回路111、112及びOR回路113によって、信号B0に応じて信号A0、A1の一方を選択して出力する。また、選択処理部105は、信号B0をそのまま出力する。すなわち、選択処理部105は、データレジスタ102からの有意な1ビットの出力に応じて、データレジスタ95からの有意な2ビットの出力から1ビットを選択して出力するとともに、データレジスタ102からの有意な1ビットの出力をそのまま出力する。つまり、選択処理部105は、データレジスタ102から出力された時刻jの状態の選択パス情報を出力するとともに、データレジスタ102からの出力に基づいてデータレジスタ95の出力から時刻(j−1)の状態の選択パス情報を選択して出力する。   The selection processing unit 105 selects and outputs one of the signals A0 and A1 according to the signal B0 by the AND circuits 111 and 112 and the OR circuit 113. Further, the selection processing unit 105 outputs the signal B0 as it is. That is, the selection processing unit 105 selects and outputs one bit from the significant two-bit output from the data register 95 according to the significant one-bit output from the data register 102, and also outputs from the data register 102. A significant 1-bit output is output as it is. That is, the selection processing unit 105 outputs the selected path information in the state of time j output from the data register 102, and at the time (j−1) from the output of the data register 95 based on the output from the data register 102. Selects and outputs the selected path information of the state.

図11は、図9に示したアドレス生成部106の構成例を示す図である。
図11(A)に示すように、アドレス生成部106は、オフセットバッファ131、シフト演算部132、134、論理和演算部133、ワードバッファ135、及び定数加算部136、137を有する。なお、図11(A)には、拘束長が9(状態数が256)である畳み込み符号化器による畳み込み符号を復号する復号装置に適用されるアドレス生成部を一例として示しており、メモリ107には、図15に示すように各状態の選択パス情報が格納されているものとする。
FIG. 11 is a diagram illustrating a configuration example of the address generation unit 106 illustrated in FIG. 9.
As shown in FIG. 11A, the address generation unit 106 includes an offset buffer 131, shift calculation units 132 and 134, a logical sum calculation unit 133, a word buffer 135, and constant addition units 136 and 137. Note that FIG. 11A illustrates an example of an address generation unit that is applied to a decoding device that decodes a convolutional code by a convolutional encoder having a constraint length of 9 (the number of states is 256). It is assumed that the selection path information of each state is stored in FIG.

図15は、メモリ107における各状態の選択パス情報の配置イメージ(状態数が256の場合)の一例を示す図である。例えば、時刻Nの各状態に係る選択パス情報がメモリ107におけるアドレス値0〜31の領域に格納され、時刻(N−1)の各状態に係る選択パス情報がメモリ107におけるアドレス値32〜63の領域に格納されているものとする。同様にして、時刻(N−k)の各状態に係る選択パス情報がメモリ107におけるアドレス値32k〜(32k+31)の領域に格納されているものとする。なお、図15において、“○”は各状態の選択パス情報を示しており、“0”又は“1”が格納されている。   FIG. 15 is a diagram illustrating an example of an arrangement image of selected path information in each state in the memory 107 (when the number of states is 256). For example, the selected path information related to each state at time N is stored in the area of address values 0 to 31 in the memory 107, and the selected path information related to each state at time (N−1) is stored to the address values 32 to 63 in the memory 107. It is assumed that it is stored in this area. Similarly, it is assumed that the selected path information relating to each state at time (N−k) is stored in the area of address values 32k to (32k + 31) in the memory 107. In FIG. 15, “◯” indicates selected path information in each state, and “0” or “1” is stored.

オフセットバッファ131は、畳み込み符号に係る拘束長がkであるとき、(k−1)ビットのデータを保持するバッファである。本例では、オフセットバッファ131は、8ビットのデータを保持するバッファであり、例えば8個のフリップフロップで構成される。オフセットバッファ131は、論理和演算部133の出力が入力され、それを保持する。シフト演算部132は、オフセットバッファ131の出力を2ビット分だけ左方向(上位ビット側)にシフトして、すなわちオフセットバッファ131の出力におけるiビット目を(i+2)ビット目にシフトして出力する。論理和演算部133は、シフト演算部132の出力と選択処理部105からの2ビット出力とが入力され、それらをビット毎に論理和演算して演算結果を出力する。すなわち、オフセットバッファ131、シフト演算部132、及び論理和演算部133により、1サイクル前の論理和演算部133の出力の下位側に選択処理部105から出力された2ビットが連結されるとともに、上位側2ビットが切り捨てられて出力される。   The offset buffer 131 is a buffer that holds (k−1) -bit data when the constraint length related to the convolutional code is k. In this example, the offset buffer 131 is a buffer that holds 8-bit data, and includes, for example, eight flip-flops. The offset buffer 131 receives the output of the OR operation unit 133 and holds it. The shift operation unit 132 shifts the output of the offset buffer 131 leftward (upper bit side) by 2 bits, that is, shifts the i-th bit in the output of the offset buffer 131 to the (i + 2) -bit and outputs the result. . The OR operation unit 133 receives the output of the shift operation unit 132 and the 2-bit output from the selection processing unit 105, performs an OR operation on each bit, and outputs an operation result. That is, the offset buffer 131, the shift operation unit 132, and the logical sum operation unit 133 connect the two bits output from the selection processing unit 105 to the lower side of the output of the logical sum operation unit 133 one cycle before, and The upper 2 bits are truncated and output.

ワードバッファ135は、ワードアドレスを保持するためのバッファである。ワードバッファ135は、定数加算部136の出力が入力され、それを保持する。ここで、本例において1ワードは32バイトである。定数加算部136は、ワードバッファ135の出力が入力され、それに“2”を加算して出力する。すなわち、ワードバッファ135及び定数加算部136により、サイクル毎に“2”ずつ増加させた値がワードバッファ135から出力される。   The word buffer 135 is a buffer for holding a word address. The word buffer 135 receives the output of the constant adder 136 and holds it. Here, in this example, one word is 32 bytes. The constant adder 136 receives the output of the word buffer 135, adds “2” thereto, and outputs the result. That is, the word buffer 135 and the constant adder 136 output from the word buffer 135 a value incremented by “2” for each cycle.

アドレス生成部106は、論理和演算部133の出力及びワードバッファ135の出力を基にアドレスaddress1、address2を生成し、アドレスADDとしてメモリ107に出力する。ここで、アドレスaddress1は、データDTAとしてデータレジスタ91に入力するデータをメモリ107から読み出すためのアドレスであり、アドレスaddress2は、データDTBとしてデータレジスタ98に入力するデータをメモリ107から読み出すためのアドレスである。アドレスaddress1は、ワードバッファ135の出力に対して定数加算部136により“1”だけ加算した値を上位側とし、論理和演算部133の出力をシフト演算部134により1ビット分だけ左方向(上位ビット側)にシフトした値を下位側としてビット連結し生成される。また、アドレスaddress2は、ワードバッファ135の出力を上位側とし、論理和演算部133の出力を下位側としてビット連結して生成される。なお、メモリ107にアクセスするためのアドレスはバイト単位であるため、それぞれ下位側3ビットを除いたものがアドレスaddress1、address2として出力される。   The address generation unit 106 generates addresses address1 and address2 based on the output of the logical sum operation unit 133 and the output of the word buffer 135, and outputs them to the memory 107 as the address ADD. Here, the address address1 is an address for reading data input to the data register 91 as data DTA from the memory 107, and an address address2 is an address for reading data input to the data register 98 as data DTB from the memory 107. It is. The address address1 is a value obtained by adding “1” by the constant adder 136 to the output of the word buffer 135 as the upper side, and the output of the OR operation unit 133 is shifted leftward by 1 bit by the shift operation unit 134 (upper The value shifted to the bit side) is generated by bit concatenation as the lower side. The address address2 is generated by bit concatenation with the output of the word buffer 135 as the upper side and the output of the logical sum operation unit 133 as the lower side. Since the address for accessing the memory 107 is in units of bytes, addresses excluding the lower 3 bits are output as addresses address1 and address2, respectively.

例えば、アドレス生成部106に対して選択処理部105から1サイクル目に“b1”、“a1”の2ビットが入力され、2サイクル目に“b2”、“a2”の2ビットが入力され、3サイクル目に“b3”、“a3”の2ビットが入力されたとする。なお、オフセットバッファ131、及びワードバッファ135の初期値は、各ビット“0”であるとする。このとき、アドレス生成部106は、図11(B)に示すように各サイクル毎にアドレスaddress1、address2を生成して出力する。   For example, two bits “b1” and “a1” are input to the address generation unit 106 in the first cycle from the selection processing unit 105, and two bits “b2” and “a2” are input in the second cycle. Assume that two bits “b3” and “a3” are input in the third cycle. Note that the initial values of the offset buffer 131 and the word buffer 135 are each bit “0”. At this time, the address generation unit 106 generates and outputs addresses address1 and address2 for each cycle as shown in FIG. 11B.

次に、図9に一例を示した第2の実施形態におけるトレースバック部の動作について説明する。図12は、第2の実施形態におけるトレースバック部の動作を説明するための図である。
第2の実施形態におけるトレースバック処理において、データレジスタ102から時刻Nの状態の選択パス情報(“0”又は“1”)が出力され、データレジスタ95から候補として残っている時刻(N−1)の状態の選択パス情報が出力されているとする。
Next, the operation of the traceback unit in the second embodiment whose example is shown in FIG. 9 will be described. FIG. 12 is a diagram for explaining the operation of the traceback unit in the second embodiment.
In the traceback processing in the second embodiment, the selected path information (“0” or “1”) at the time N state is output from the data register 102 and the time remaining as a candidate from the data register 95 (N−1) ) State selected path information is output.

このとき、選択処理部105は、データレジスタ102からの時刻Nの状態の選択パス情報に基づいて、データレジスタ95からの時刻(N−1)の2状態の選択パス情報の一方を選択する。そして、選択処理部105は、データレジスタ102からの時刻Nの状態の選択パス情報と、選択したデータレジスタ95からの時刻(N−1)の状態の選択パス情報とを出力する。すなわち、選択処理部105は、時刻Nの状態の選択パス情報及び時刻(N−1)の状態の選択パス情報を出力する。また、データレジスタ102からの時刻Nの状態の選択パス情報が演算処理部96に抽出ビット位置情報aとして供給され、演算処理部96は、時刻Nの状態の選択パス情報に基づき時刻(N−1)の状態を確定し(状態Aとする)、時刻(N−1)の状態の選択パス情報を出力する。   At this time, the selection processing unit 105 selects one of the two-state selection path information at the time (N−1) from the data register 95 based on the selection path information at the time N state from the data register 102. The selection processing unit 105 outputs the selected path information at the time N state from the data register 102 and the selected path information at the time (N−1) state from the selected data register 95. That is, the selection processing unit 105 outputs the selected path information in the state of time N and the selected path information in the state of time (N−1). In addition, the selected path information at the time N state from the data register 102 is supplied to the arithmetic processing unit 96 as the extracted bit position information a, and the arithmetic processing unit 96 generates a time (N−) based on the selected path information at the time N state. The state of 1) is determined (state A), and the selected path information of the state at time (N-1) is output.

選択処理部105より出力された時刻Nの状態の選択パス情報及び時刻(N−1)の状態の選択パス情報は、演算処理部92、94、99、101に抽出ビット位置情報aとして供給されるとともに、アドレス生成部106に供給される。アドレス生成部106は、時刻Nの状態の選択パス情報及び時刻(N−1)の状態の選択パス情報に基づいて、アドレスaddress1、address2を生成しメモリ107にアドレスADDとして出力する。これにより、時刻(N−1)に対して6時刻前の時刻(N−7)の状態の選択パス情報のうち、時刻(N−1)にて状態Aになり得る32個の状態の選択パス情報(32ビット)がメモリ107から読み出され、データDTAとしてデータレジスタ91に入力される。また、時刻(N−1)に対して5時刻前の時刻(N−6)の状態の選択パス情報のうち、時刻(N−1)にて状態Aになり得る16個の状態の選択パス情報がメモリ107から読み出され、データDTBとしてデータレジスタ98に入力される。   The selected path information at the time N state and the selected path information at the time (N-1) state output from the selection processing unit 105 are supplied to the arithmetic processing units 92, 94, 99, and 101 as the extracted bit position information a. And is supplied to the address generator 106. The address generation unit 106 generates addresses address1 and address2 based on the selected path information at the time N state and the selected path information at the time (N-1) state, and outputs them to the memory 107 as the address ADD. Thus, of the selected path information in the state at time (N-7) six times before time (N-1), 32 states that can be in state A at time (N-1) are selected. The path information (32 bits) is read from the memory 107 and input to the data register 91 as data DTA. Of the selected path information in the state at time (N-6) five times before time (N-1), the selected paths in 16 states that can be in state A at time (N-1). Information is read from the memory 107 and input to the data register 98 as data DTB.

そして、次のクロックサイクルにて、データレジスタ91より出力される時刻(N−7)での32個の状態に係る選択パス情報は、演算処理部92に入力データXとして入力される。また、演算処理部92には、抽出ビット数情報Sとして“8”が入力されるとともに、選択処理部105から時刻(N−2)の状態の選択パス情報及び時刻(N−3)の状態の選択パス情報が抽出ビット位置情報a(0〜3)として入力される。演算処理部92は、入力された抽出ビット位置情報aに基づいて、時刻(N−7)での32個の状態に係る選択パス情報を下位側から8ビット単位で分割したときの(a+1)番目の選択パス情報(8ビット)を選択して出力する。このようにして、時刻(N−7)での32個の状態に係る選択パス情報から、時刻(N−3)の状態の選択パス情報により決まる時刻(N−4)の状態に応じた時刻(N−7)での8個の状態に係る選択パス情報が選択され、データレジスタ93に入力される。   Then, in the next clock cycle, the selection path information relating to the 32 states at time (N-7) output from the data register 91 is input as input data X to the arithmetic processing unit 92. Further, “8” is input to the arithmetic processing unit 92 as the extracted bit number information S, and the selection path information at the time (N−2) state and the state at the time (N−3) from the selection processing unit 105. Selected path information is input as extracted bit position information a (0 to 3). Based on the extracted bit position information a that has been input, the arithmetic processing unit 92 divides the selected path information related to the 32 states at time (N-7) in units of 8 bits from the lower order (a + 1). The first selected path information (8 bits) is selected and output. In this way, the time according to the state of time (N-4) determined by the selected path information of the state at time (N-3) from the selected path information regarding the 32 states at time (N-7). Selected path information relating to the eight states in (N-7) is selected and input to the data register 93.

また、データレジスタ98より出力される時刻(N−6)での16個の状態に係る選択パス情報は、演算処理部99に入力データXとして入力される。また、演算処理部99には、抽出ビット数情報Sとして“4”が入力されるとともに、選択処理部105から時刻(N−2)の状態の選択パス情報及び時刻(N−3)の状態の選択パス情報が抽出ビット位置情報a(0〜3)として入力される。演算処理部99は、入力された抽出ビット位置情報aに基づいて、時刻(N−6)での16個の状態に係る選択パス情報を下位側から4ビット単位で分割したときの(a+1)番目の選択パス情報(4ビット)を選択して出力する。このようにして、時刻(N−6)での16個の状態に係る選択パス情報から、時刻(N−3)の状態の選択パス情報により決まる時刻(N−4)の状態に応じた時刻(N−6)での4個の状態に係る選択パス情報が選択され、データレジスタ100に入力される。   Further, the selection path information relating to the 16 states at time (N-6) output from the data register 98 is input as input data X to the arithmetic processing unit 99. Further, “4” is input to the arithmetic processing unit 99 as the extracted bit number information S, and the selection path information at the time (N−2) state and the state at the time (N−3) from the selection processing unit 105. Selected path information is input as extracted bit position information a (0 to 3). The arithmetic processing unit 99 divides the selected path information related to the 16 states at time (N-6) based on the input extracted bit position information a (a + 1) when divided in units of 4 bits from the lower side. The first selected path information (4 bits) is selected and output. In this way, the time according to the state of the time (N-4) determined by the selected path information of the state at the time (N-3) from the selected path information regarding the 16 states at the time (N-6). Selected path information relating to the four states in (N-6) is selected and input to the data register 100.

さらに、その次のクロックサイクルにて、データレジスタ93より出力される時刻(N−7)での8個の状態に係る選択パス情報は、演算処理部94に入力データXとして入力される。また、演算処理部94には、抽出ビット数情報Sとして“2”が入力されるとともに、選択処理部105から時刻(N−4)の状態の選択パス情報及び時刻(N−5)の状態の選択パス情報が抽出ビット位置情報a(0〜3)として入力される。演算処理部94は、入力された抽出ビット位置情報aに基づいて、時刻(N−7)での8個の状態に係る選択パス情報を下位側から2ビット単位で分割したときの(a+1)番目の選択パス情報(2ビット)を選択して出力する。このようにして、時刻(N−7)での8個の状態に係る選択パス情報から、時刻(N−5)の状態の選択パス情報により決まる時刻(N−6)の状態に応じた時刻(N−7)での2個の状態に係る選択パス情報が選択され、データレジスタ95に入力される。   Furthermore, in the next clock cycle, the selected path information relating to the eight states at time (N-7) output from the data register 93 is input to the arithmetic processing unit 94 as input data X. Further, “2” is input to the arithmetic processing unit 94 as the extracted bit number information S, and the selection path information at the time (N−4) state and the state at the time (N−5) from the selection processing unit 105. Selected path information is input as extracted bit position information a (0 to 3). The arithmetic processing unit 94 (a + 1) when the selected path information related to the eight states at time (N-7) is divided in units of 2 bits from the lower side based on the input extracted bit position information a. The first selected path information (2 bits) is selected and output. In this way, the time according to the state at the time (N-6) determined by the selected path information at the time (N-5) from the selected path information at the eight states at the time (N-7). Selected path information relating to the two states in (N-7) is selected and input to the data register 95.

また、データレジスタ100より出力される時刻(N−6)での4個の状態に係る選択パス情報は、演算処理部101に入力データXとして入力される。また、演算処理部101には、抽出ビット数情報Sとして“1”が入力されるとともに、選択処理部105から時刻(N−4)の状態の選択パス情報及び時刻(N−5)の状態の選択パス情報が抽出ビット位置情報a(0〜3)として入力される。演算処理部101は、入力された抽出ビット位置情報aに基づいて、時刻(N−6)での4個の状態に係る選択パス情報を下位側から1ビット単位で分割したときの(a+1)番目の選択パス情報(1ビット)を選択して出力する。このようにして、時刻(N−5)の状態の選択パス情報に基づいて時刻(N−6)の状態が確定し、その状態の選択パス情報がデータレジスタ102に入力される。
以上の動作を、クロックサイクル毎に順次2時刻分ずつ並列処理し各時刻の状態について行うことで、トレースバック処理が実行される。
Further, the selected path information relating to the four states at time (N-6) output from the data register 100 is input as input data X to the arithmetic processing unit 101. Further, “1” is input to the arithmetic processing unit 101 as the extracted bit number information S, and the selection path information at the time (N−4) state and the state at the time (N−5) from the selection processing unit 105. Selected path information is input as extracted bit position information a (0 to 3). The arithmetic processing unit 101 divides the selected path information related to the four states at the time (N-6) based on the input extracted bit position information a in units of 1 bit from the lower order (a + 1). The first selected path information (1 bit) is selected and output. In this manner, the state at time (N-6) is determined based on the selected path information at the state at time (N-5), and the selected path information at that state is input to the data register 102.
The trace back process is executed by performing the above operations in parallel for two clocks sequentially for each clock cycle and performing the process for each time.

なお、前述した説明では、1サイクル期間中に結果を2ビット出力するトレースバック部を一例として示したが、これに限定されるものではない。1サイクルあたり任意の複数ビットの結果を出力するトレースバック部が構成可能である。例えば、1サイクルあたり3ビットの結果を出力するトレースバック部は、図13に一例を示すように構成すれば良い。   In the above description, the traceback unit that outputs the result of 2 bits during one cycle is shown as an example. However, the present invention is not limited to this. A traceback unit that outputs a result of an arbitrary plurality of bits per cycle can be configured. For example, a traceback unit that outputs a 3-bit result per cycle may be configured as shown in FIG.

図13は、第2の実施形態におけるトレースバック部の他の構成例を示す図である。
図13において、151、153、155、157、158、160、162、163、164、166、167、168はデータレジスタであり、152、154、156、159、161、165は演算処理部である。また、169は制御レジスタであり、170は選択処理部であり、171はアドレス生成部である。172はパスメモリ14に対応するメモリであるが、説明の便宜上、図13において図示している。
FIG. 13 is a diagram illustrating another configuration example of the traceback unit in the second embodiment.
In FIG. 13, 151, 153, 155, 157, 158, 160, 162, 163, 164, 166, 167, 168 are data registers, and 152, 154, 156, 159, 161, 165 are arithmetic processing units. . Reference numeral 169 denotes a control register, 170 denotes a selection processing unit, and 171 denotes an address generation unit. Reference numeral 172 denotes a memory corresponding to the path memory 14, which is shown in FIG. 13 for convenience of explanation.

データレジスタ151、158、164は、メモリ172から出力されたデータを保持する。データレジスタ153、155、157、160、162、166は、それぞれ演算処理部152、154、156、159、161、165から出力されたデータを保持する。また、データレジスタ163、167、168は、それぞれデータレジスタ162、166、167から出力されたデータを保持する。   The data registers 151, 158 and 164 hold the data output from the memory 172. The data registers 153, 155, 157, 160, 162, and 166 hold data output from the arithmetic processing units 152, 154, 156, 159, 161, and 165, respectively. The data registers 163, 167, and 168 hold the data output from the data registers 162, 166, and 167, respectively.

演算処理部152、154、156、159、161、165のそれぞれは、図6に示した第1の実施形態における演算処理部と同様に構成される。演算処理部152、154、156、159、161、165は、それぞれデータレジスタ151、153、155、158、160、164に保持されているデータが入力される。演算処理部152、154、156、159、161、165は、入力されたデータから特定ビットのデータを取り出すビット取り出し演算を行い、演算により得られたデータ(取り出したビットデータ)を出力する。制御レジスタ169は、演算処理部152、154、156、159、161、165に対して、ビット取り出し演算において取り出すビット数を指定する抽出ビット数情報を供給する。   Each of the arithmetic processing units 152, 154, 156, 159, 161, and 165 is configured in the same manner as the arithmetic processing unit in the first embodiment shown in FIG. The arithmetic processing units 152, 154, 156, 159, 161 and 165 receive the data held in the data registers 151, 153, 155, 158, 160 and 164, respectively. The arithmetic processing units 152, 154, 156, 159, 161, and 165 perform a bit extraction operation for extracting specific bit data from the input data, and output data obtained by the operation (extracted bit data). The control register 169 supplies extracted bit number information that specifies the number of bits to be extracted in the bit extraction operation to the arithmetic processing units 152, 154, 156, 159, 161, and 165.

図13に示したトレースバック部において、演算処理部152、154、156が制御レジスタ169からの抽出ビット数情報により指定されるビット数は、それぞれ4ビット、2ビット、1ビットである。また、演算処理部159が制御レジスタ169からの抽出ビット数情報により指定されるビット数は2ビットであり、演算処理部161、165が制御レジスタ169からの抽出ビット数情報により指定されるビット数は1ビットである。   In the traceback unit illustrated in FIG. 13, the number of bits specified by the extracted bit number information from the control register 169 by the arithmetic processing units 152, 154, and 156 is 4 bits, 2 bits, and 1 bit, respectively. The number of bits specified by the arithmetic processing unit 159 by the extracted bit number information from the control register 169 is 2 bits, and the arithmetic processing units 161 and 165 specify the number of bits specified by the extracted bit number information from the control register 169. Is 1 bit.

また、演算処理部152、159、165には、選択処理部170の出力が、ビット取り出し演算において取り出すビットの位置を指定する抽出ビット位置情報として供給されている。演算処理部154、161には、データレジスタ166の出力が抽出ビット位置情報として供給され、演算処理部156には、データレジスタ162の出力が抽出ビット位置情報として供給されている。演算処理部152、154、156、159、161、165は、入力されたデータにおける有意なビットのなかから、抽出ビット位置情報に応じた位置のビットを取り出す。   In addition, the output of the selection processing unit 170 is supplied to the arithmetic processing units 152, 159, and 165 as extracted bit position information that specifies the position of the bit to be extracted in the bit extraction operation. The arithmetic processing units 154 and 161 are supplied with the output of the data register 166 as extracted bit position information, and the arithmetic processing unit 156 is supplied with the output of the data register 162 as extracted bit position information. The arithmetic processing units 152, 154, 156, 159, 161, and 165 take out the bit at the position corresponding to the extracted bit position information from the significant bits in the input data.

メモリ172は、パスメモリ14に対応し、トレリス線図における各状態についての生き残りパスを示す選択パス情報がデータとして格納されている。メモリ172は、アドレス生成部171から供給されたアドレスに格納されている選択パス情報をデータとして出力する。   The memory 172 corresponds to the path memory 14 and stores selected path information indicating surviving paths for each state in the trellis diagram as data. The memory 172 outputs the selected path information stored at the address supplied from the address generation unit 171 as data.

図14は、図13に示した選択処理部170の構成例を示す図である。
選択処理部170は、セレクタ回路191〜194を有する。セレクタ回路191は、データレジスタ160の出力における有意な2ビットが入力されるとともに、データレジスタ166の出力における有意な1ビットが入力される。セレクタ回路191は、データレジスタ166からの1ビット出力に基づいて、データレジスタ160の出力における有意な2ビットから1ビットを選択して外部に出力する。
FIG. 14 is a diagram illustrating a configuration example of the selection processing unit 170 illustrated in FIG.
The selection processing unit 170 includes selector circuits 191 to 194. The selector circuit 191 receives significant 2 bits at the output of the data register 160 and significant 1 bit at the output of the data register 166. Based on the 1-bit output from the data register 166, the selector circuit 191 selects 1 bit from significant 2 bits in the output of the data register 160 and outputs it to the outside.

セレクタ回路192、193は、データレジスタ153の出力における有意な4ビットが2ビットずつ入力されるとともに、データレジスタ166の出力における有意な1ビットが入力される。セレクタ回路192、193は、データレジスタ166からの1ビット出力に基づいて、データレジスタ166から入力された2ビットから1ビットを選択して出力する。また、セレクタ回路194は、セレクタ回路192、193の出力が入力されるとともに、セレクタ回路191の出力が入力される。セレクタ回路194は、セレクタ回路191の出力に基づいて、セレクタ回路192、193の出力の一方を選択して出力する。すなわち、セレクタ回路192、193、194は、データレジスタ166の出力及びセレクタ回路191の出力に基づいて、データレジスタ153の出力における有意な4ビットから1ビットを選択して外部に出力する。
また、データレジスタ166の出力における有意な1ビットは、そのまま外部にも出力される。
The selector circuits 192 and 193 receive 2 significant bits at the output of the data register 153 and 2 significant bits at the output of the data register 166. The selector circuits 192 and 193 select and output 1 bit from 2 bits input from the data register 166 based on the 1-bit output from the data register 166. The selector circuit 194 receives the outputs of the selector circuits 192 and 193 and the output of the selector circuit 191. The selector circuit 194 selects and outputs one of the outputs of the selector circuits 192 and 193 based on the output of the selector circuit 191. That is, the selector circuits 192, 193, 194 select one significant bit from the significant 4 bits in the output of the data register 153 based on the output of the data register 166 and the output of the selector circuit 191 and output the selected bit to the outside.
A significant bit in the output of the data register 166 is also output to the outside as it is.

以上の構成によれば、選択処理部170は、データレジスタ166から出力された時刻jの状態の選択パス情報を出力するとともに、データレジスタ166からの出力に基づいてデータレジスタ160の出力から時刻(j−1)の状態の選択パス情報を選択して出力する。また、選択処理部170は、データレジスタ166からの出力、及びそれに基づいてデータレジスタ160の出力から選択した時刻(j−1)の状態の選択パス情報に基づいて、データレジスタ153の出力から時刻(j−2)の状態の選択パス情報を選択して出力する。   According to the above configuration, the selection processing unit 170 outputs the selected path information in the state of the time j output from the data register 166 and, based on the output from the data register 166, the time ( The selected path information in the state of j-1) is selected and output. Further, the selection processing unit 170 determines the time from the output of the data register 153 based on the output from the data register 166 and the selected path information of the state at the time (j−1) selected from the output of the data register 160 based on the output. The selected path information in the state (j-2) is selected and output.

なお、図13に示すトレースバック部の動作は、演算処理部152、154、156、159、161、165の各々が演算対象とする時刻の相対的な関係は異なるが、図9に示したトレースバック部と基本的な動作は同様である。   Note that the operation of the trace back unit shown in FIG. 13 is different in the relative relationship of the times that the arithmetic processing units 152, 154, 156, 159, 161, and 165 calculate, but the trace shown in FIG. The basic operation is the same as that of the back section.

第2の実施形態によれば、第1の実施形態と同様に、従来のトレースバック処理と比較してメモリアクセスをより早い段階で行いメモリアクセスレイテンシを隠蔽できるとともに、トレースバック処理での状態の確定と、選択パス情報のメモリからの読み出しとを並列して行うことができる。また、ビット取り出し演算を行うことができる図6に示したような演算処理部を並列に複数配置するだけで、1サイクル期間中に複数の時刻の状態を確定することができる。したがって、1ビット分のデータの確定を1サイクル以下で行うことが可能となり、トレースバック処理を高速に実行することができる。
なお、図9や図13に示した第2の実施形態におけるトレースバック部を、第1の実施形態と同様に図5に一例を示したようなALUアレイを有するプロセッサを用いて構成しても良い。
According to the second embodiment, as in the first embodiment, the memory access latency can be concealed by performing memory access earlier than the conventional traceback processing, and the state of the traceback processing can be hidden. Confirmation and reading of the selected path information from the memory can be performed in parallel. Further, the state at a plurality of times can be determined during one cycle period simply by arranging a plurality of arithmetic processing units as shown in FIG. 6 capable of performing the bit extracting operation in parallel. Therefore, it is possible to determine the data for 1 bit in one cycle or less, and the traceback process can be executed at high speed.
The traceback unit in the second embodiment shown in FIGS. 9 and 13 may be configured using a processor having an ALU array as shown in FIG. 5 as in the first embodiment. good.

また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。   In addition, each of the above-described embodiments is merely an example of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.

11 ブランチメトリック演算部
12 ACS演算部
13 パスメトリックメモリ
14 パスメモリ
15 トレースバック部
31、33、35、37 データレジスタ
32、34、36 演算処理部
38 制御レジスタ
39 アドレス生成部
40 メモリ
DESCRIPTION OF SYMBOLS 11 Branch metric calculating part 12 ACS calculating part 13 Path metric memory 14 Path memory 15 Trace back part 31, 33, 35, 37 Data register 32, 34, 36 Operation processing part 38 Control register 39 Address generation part 40 Memory

Claims (5)

畳み込み符号化されたデータに基づいて、トレリス線図における生き残りパスを演算する演算部と、
前記演算部により求められた生き残りパスを示すパス情報が格納されるメモリ部と、
前記メモリ部に格納された前記パス情報に基づいて、前記トレリス線図における状態遷移をトレースバックして復号結果を出力するトレースバック部とを備え、
前記トレースバック部は、
時刻Nの状態が第1の状態に確定すると、前記時刻Nに対してk時刻前(kは所定の2以上の整数)の時刻(N−k)の状態のうち、前記時刻Nで前記第1の状態に遷移し得る時刻(N−k)での2k個の状態の前記パス情報を前記メモリ部から読み出して処理を行うことを特徴とするビタビ復号装置。
An arithmetic unit that calculates a survivor path in the trellis diagram based on the convolutionally encoded data;
A memory unit for storing path information indicating a surviving path obtained by the arithmetic unit;
A traceback unit that traces back state transitions in the trellis diagram based on the path information stored in the memory unit and outputs a decoding result;
The traceback unit is
When the state at time N is determined to be the first state, among the states at time (N−k) before k times (k is a predetermined integer equal to or greater than 2) with respect to time N, A Viterbi decoding apparatus, wherein the path information of 2 k states at a time (Nk) at which transition to one state can be performed is read from the memory unit and processed.
前記トレースバック部は、
前記時刻Nの状態が前記第1の状態であることを示す情報を基に読み出しアドレスを生成して、前記時刻(N−k)での2k個の状態の前記パス情報を前記メモリ部から読み出し、
読み出した前記時刻(N−k)での2k個の状態の前記パス情報から、順次確定される時刻(N−1)から時刻(N−k+1)の各時刻の状態に応じて、当該状態に遷移し得る前記時刻(N−k)の状態の前記パス情報を順次選択することを特徴とする請求項1記載のビタビ復号装置。
The traceback unit is
A read address is generated based on information indicating that the state at time N is the first state, and the path information of 2 k states at time (N−k) is obtained from the memory unit. reading,
According to the state of each time from time (N−1) to time (N−k + 1) sequentially determined from the path information of 2 k states at the time (N−k) read out, the state The Viterbi decoding apparatus according to claim 1, wherein the path information in the state at the time (N−k) that can transit to is sequentially selected.
前記時刻Nの状態が前記第1の状態であることを示す情報は、確定した時刻(N+1)の状態の前記パス情報であることを特徴とする請求項1又は2記載のビタビ復号装置。   3. The Viterbi decoding apparatus according to claim 1, wherein the information indicating that the state at the time N is the first state is the path information at the determined time (N + 1). 4. 前記トレースバック部は、1サイクル期間中に、連続する複数の時刻の状態を確定することを特徴とする請求項1〜3の何れか1項に記載のビタビ復号装置。   4. The Viterbi decoding apparatus according to claim 1, wherein the traceback unit determines a state of a plurality of consecutive times during one cycle period. 前記トレースバック部は、
順次確定される時刻(N−1)から時刻(N−k+1)の各時刻の状態に応じて、当該状態に遷移し得る前記時刻(N−k)の状態の前記パス情報を順次選択する複数の演算回路と、
前記演算回路により選択された前記パス情報を保持する複数のレジスタとを有することを特徴とする請求項1〜4の何れか1項に記載のビタビ復号装置。
The traceback unit is
A plurality of the path information in the state at the time (N−k) that can transit to the state according to the state at each time from the time (N−1) to the time (N−k + 1) that are sequentially determined. The arithmetic circuit of
5. The Viterbi decoding apparatus according to claim 1, further comprising a plurality of registers that hold the path information selected by the arithmetic circuit.
JP2009281612A 2009-12-11 2009-12-11 Viterbi decoder Withdrawn JP2011124848A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009281612A JP2011124848A (en) 2009-12-11 2009-12-11 Viterbi decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009281612A JP2011124848A (en) 2009-12-11 2009-12-11 Viterbi decoder

Publications (1)

Publication Number Publication Date
JP2011124848A true JP2011124848A (en) 2011-06-23

Family

ID=44288296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009281612A Withdrawn JP2011124848A (en) 2009-12-11 2009-12-11 Viterbi decoder

Country Status (1)

Country Link
JP (1) JP2011124848A (en)

Similar Documents

Publication Publication Date Title
KR100426712B1 (en) Viterbi decoder
US6333954B1 (en) High-speed ACS for Viterbi decoder implementations
JPH10117149A (en) Trace back device/method for viterbi decoder
WO2005011129A1 (en) Viterbi decoder
US8301990B2 (en) Programmable compute unit with internal register and bit FIFO for executing Viterbi code
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
KR100737648B1 (en) Viterbi decoder and viterbi decoding method
JP4815228B2 (en) Viterbi decoding circuit and radio
US7617440B2 (en) Viterbi traceback initial state index initialization for partial cascade processing
JP7007115B2 (en) Viterbi decoding device and Viterbi decoding method
US7225393B2 (en) Viterbi decoder and Viterbi decoding method
JP2011124848A (en) Viterbi decoder
JP3260714B2 (en) Viterbi decoding device and Viterbi decoding method
KR101114667B1 (en) Apparatus and method for viterbi decoding
JP5177028B2 (en) Decryption device
US8583998B2 (en) System and method for Viterbi decoding using application specific extensions
US7260154B1 (en) Method and apparatus for implementing a multiple constraint length Viterbi decoder
JP2001024526A (en) Viterbi decoder
KR100414152B1 (en) The Processing Method and Circuits for Viterbi Decoding Algorithm on Programmable Processors
JP3338371B2 (en) Viterbi decoder
JP2002198827A (en) Maximum likelihood decoding method and decoder thereof
JP5338506B2 (en) Decoding device and signal processing system
US20040054958A1 (en) Viterbi decoder
EP0901234A2 (en) Viterbi compare-select operation for two-bit traceback coding
JP2004120791A (en) Viterbi decoder

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130305