JP2011124848A - Viterbi decoder - Google Patents
Viterbi decoder Download PDFInfo
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
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).
前述のように、従来においてトレースバック処理は、時刻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.
以下、本発明の実施形態を図面に基づいて説明する。 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
ブランチメトリック演算部11は、復号処理の対象である畳み込み符号化されたデータが入力される。ブランチメトリック演算部11は、その入力データに基づいて、トレリス線図におけるブランチメトリック(例えば、符号のハミング距離)を計算する。
The branch
ACS演算部12は、トレリス線図における各状態についてACS演算を行う。すなわち、ACS演算部12は、まず、状態へのすべてのパスについて、ブランチメトリック演算部11により算出されたブランチメトリックとパスメトリックメモリ13に格納されている前回演算での生き残りパスのパスメトリックとを加算する(Add)。次に、ACS演算部12は、加算後のパスメトリックを比較して(Compare)、パスメトリックが小さい方(最小)のパスを生き残りパスとして選択する(Select)。ACS演算部12は、トレリス線図における状態毎に前述の演算を行う。ACS演算部12での演算により選択された生き残りパスを示す選択パス情報とそのパスのパスメトリックが、パスメモリ14とパスメトリックメモリ13にそれぞれ格納される。
The
トレースバック部15は、前述したブランチメトリック演算部11及びACS演算部12等により行われたビタビ演算の結果をトレースバック処理して結果を出力する。トレースバック部15は、ACS演算部12での演算によって得られた選択パス情報をパスメモリ14から読み出し、トレリス線図における状態遷移を遡って確定していき、復号した伝送データとして出力する。
The
本実施形態におけるビタビ復号装置のトレースバック部15での処理の概要を、図2及び図3を参照して説明する。
まず、ビタビ復号装置により復号される畳み込み符号について、図2を参照して説明する。なお、以下では、説明が煩雑になることを避けるために、拘束長が3であり、符号化率が1/2である畳み込み符号化を一例として説明する。
An outline of processing in the
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-
図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-
図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
(第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,
データレジスタ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
本実施形態において、演算処理部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
メモリ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
ここで、図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
コントローラ52は、命令キャッシュ51から読み出した命令に基づいてプロセッサ内の各機能部に係る制御を行う。レジスタファイル53は、演算の対象となるデータ等を保持する。スカラ実行部54は、コントローラ52の指示に従って演算処理を行う。ロード/ストア部55は、ロード命令/ストア命令に係る処理を実行する。ロード/ストア部55は、ディスパッチメモリ56等からレジスタにデータをロードしたり(読み出したり)、レジスタからディスパッチメモリ56等へデータをストアしたり(書き込んだり)する。ディスパッチメモリ56は、演算処理を実行して得られたデータ等が格納されるメモリである。
The
ALUアレイ57は、アレイ状に配置された複数のALUと、その複数のALUによるパイプラインステージを分割するパイプラインレジスタとを有する。ALUは、複数の演算器を含む演算ユニットである。パイプラインレジスタは、例えばフリップフロップで構成される。ALUアレイ57は、複合演算を1つの命令で処理することができ、例えば入力されたデータから特定ビットのデータを取り出すビット取り出し演算を1つの命令で処理することができる。ALUアレイ57は、どの命令を演算するか、どのデータを使用するかを各ALUに指示することでさまざまな演算処理を行うことができる。アドレス生成部58は、ALUアレイ57の出力からディスパッチメモリ56にアクセスするためのアドレスを生成する。DMAコントローラ59は、プロセッサ内のディスパッチメモリ56とプロセッサ外部のデバイスとの間で行うDMA転送に係る制御を行う。
The
例えば、図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
図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
乗算部72は、ビット取り出し演算において取り出すビット数を指定する抽出ビット数情報Sと、取り出すビット位置を指定する抽出ビット位置情報aとが入力される。乗算部72は、抽出ビット数情報Sと抽出ビット位置情報aとを乗算し、その乗算結果(S×a)を出力する。シフト演算部73は、入力データXと、乗算部72での乗算結果(S×a)とが入力される。シフト演算部73は、入力データXのビットを(S×a)ビット分だけ右方向(下位ビット側)にシフトして出力する。すなわち、シフト演算部73は、入力データXにおける(i+(S×a))ビット目をiビット目にシフトして出力する。
The
マスク出力部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
前述のように構成された演算処理部71は、抽出ビット数情報S及び抽出ビット位置情報aに応じて、入力データXにおける下位側からSビット単位で分割したときの(a+1)番目のデータ(Sビット幅)を選択して出力データYとして出力する。すなわち、演算処理部71は、Y={X>>(S*a)}&(マスクパターン)で示される演算処理を行う。ここで、“A>>B”は、データ列AのBビット右シフト(下位側へのシフト)を表す。
The
例えば、入力データ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
次に、第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
演算処理部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
そして、次のクロックサイクルにて、時刻(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
さらに、その次のクロックサイクルにて、時刻(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
続いて、その次のクロックサイクルにて、時刻(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
以上の動作を、図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
例えば、図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
第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.
データレジスタ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
演算処理部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
図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
また、演算処理部92、94、99、101には、選択処理部105の出力が、ビット取り出し演算において取り出すビットの位置を指定する抽出ビット位置情報として供給されている。演算処理部96には、データレジスタ102の出力が抽出ビット位置情報として供給されている。演算処理部92、94、96、99、101は、入力されたデータにおける有意なビットのなかから、抽出ビット位置情報に応じた位置のビットを取り出す。
In addition, the output of the
メモリ107は、パスメモリ14に対応し、トレリス線図における各状態についての生き残りパスを示す選択パス情報がデータとして格納されている。メモリ107は、アドレス生成部106から供給されたアドレスADDに格納されている選択パス情報をデータDTA、DTBとして出力する。
The
図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
The
ここで、信号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
図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
As shown in FIG. 11A, the
図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
オフセットバッファ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
ワードバッファ135は、ワードアドレスを保持するためのバッファである。ワードバッファ135は、定数加算部136の出力が入力され、それを保持する。ここで、本例において1ワードは32バイトである。定数加算部136は、ワードバッファ135の出力が入力され、それに“2”を加算して出力する。すなわち、ワードバッファ135及び定数加算部136により、サイクル毎に“2”ずつ増加させた値がワードバッファ135から出力される。
The
アドレス生成部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
例えば、アドレス生成部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
次に、図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
選択処理部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
そして、次のクロックサイクルにて、データレジスタ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
また、データレジスタ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
さらに、その次のクロックサイクルにて、データレジスタ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
また、データレジスタ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
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. .
データレジスタ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
演算処理部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
図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
また、演算処理部152、159、165には、選択処理部170の出力が、ビット取り出し演算において取り出すビットの位置を指定する抽出ビット位置情報として供給されている。演算処理部154、161には、データレジスタ166の出力が抽出ビット位置情報として供給され、演算処理部156には、データレジスタ162の出力が抽出ビット位置情報として供給されている。演算処理部152、154、156、159、161、165は、入力されたデータにおける有意なビットのなかから、抽出ビット位置情報に応じた位置のビットを取り出す。
In addition, the output of the
メモリ172は、パスメモリ14に対応し、トレリス線図における各状態についての生き残りパスを示す選択パス情報がデータとして格納されている。メモリ172は、アドレス生成部171から供給されたアドレスに格納されている選択パス情報をデータとして出力する。
The
図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
The
セレクタ回路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
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
なお、図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
第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
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−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.
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) |
-
2009
- 2009-12-11 JP JP2009281612A patent/JP2011124848A/en not_active Withdrawn
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 |