KR100336246B1 - Integrated circuit with digital processor and co-processor - Google Patents
Integrated circuit with digital processor and co-processor Download PDFInfo
- Publication number
- KR100336246B1 KR100336246B1 KR1019940029744A KR19940029744A KR100336246B1 KR 100336246 B1 KR100336246 B1 KR 100336246B1 KR 1019940029744 A KR1019940029744 A KR 1019940029744A KR 19940029744 A KR19940029744 A KR 19940029744A KR 100336246 B1 KR100336246 B1 KR 100336246B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- digital processor
- digital
- viterbi
- integrated circuit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6569—Implementation on processors, e.g. DSPs, or software implementations
Abstract
신호 프로세서(예컨대, 11)와 병렬 동작하는 삽입된 비터비 코-프로세서(예컨대, 15)를 구비한 신호 프로세서(예컨대, 11)가 개시된다.A signal processor (eg, 11) is disclosed having an embedded Viterbi co-processor (eg, 15) that operates in parallel with the signal processor (eg, 11).
Description
관련 출원에 대한 참조Reference to related application
본 출원은 다음의 동시 출원되어 계류중인 출원들에 관련되며, 이들 계류중인 각 출원은 이하 참조로 기록된다.This application is related to the following concurrently pending applications, each of which is hereby incorporated by reference.
출원 번호 제 08/153,334호, "현재 상태/다음 상태 레지스터들의 효율적인 활용"이라는 제목으로 1993년 11월 16일 디.블레이커, 엠. 디아몬드스테인, 지. 엘라드, 엠. 모빈, 에이치.삼 및 엠. 티에르박 등에 의해 출원됨. 본사의 도켓 번호(docket number) 제 Blaker 3-2-3-3-4-10호임;D. Blaker, M., Nov. 16, 1993, entitled Application No. 08 / 153,334, "Efficient Use of Current / Next State Registers." Diamondstein, G. Ellard, M. Movin, H. Sam and M. Filed by Thierbach et al. Blaker 3-2-3-3-4-10 at our headquarters number;
출원 번호 제 08/152,531호, "가변 길이 트레이스백"이라는 제목으로 1993년11월 16일 디. 블에이커, 지. 엘라드, 및 엠. 모빈 등에 의해 출원됨. 본사의 도켓 번호 제 Blaker 4-4-4호임;Application No. 08 / 152,531, filed November 16, 1993, entitled “Variable Length Tracebacks.” Blake, G. Elard, and M. Filed by Movin et al. Blaker 4-4-4 at our headquarters;
출원 번호 제 08/153,333호, "전력 및 시간 절약 초기화 트레이스백"이라는 제목으로 1993년 11월 16일 디. 블에이커, 지. 엘라드, 및 엠. 모빈 등에 의해 출원됨. 본사의 도켓 번호 제 Blaker 6-6-6호임;No. 08 / 153,333, filed Nov. 16, 1993, entitled "Power and Time Saving Initialization Traceback." Blake, G. Elard, and M. Filed by Movin et al. Blaker 6-6-6 at our headquarters;
출원 번호 제 08/152,805호, "최소 비용 인덱스 레지스터를 갖는 디지탈 수신기"라는 제목으로 1993년 11월 16일 디. 블에이커, 지. 엘라드, 엠. 모빈 및 에이치. 삼 등에 의해 출원됨. 본사의 도켓 번호 제 Blaker 2-2-2-3호임;No. 08 / 152,805, Nov. 16, 1993, entitled "Digital Receiver with Minimum Cost Index Register." Blake, G. Ellard, M. Movin and H. Filed by Sam et al. Blaker 2-2-2-3 at our headquarters;
출원 번호 제 08/153,405호, "공유된 메모리를 갖는 비터비 디코더 및 디지탈 프로세서"라는 제목으로 1993년 11월 16일 엠. 디아몬드스테인, 에이치.삼 및 엠. 티에르박 등에 의해 출원됨. 본사의 도켓 번호 제 Blaker 5-5-5-9호임;No. 08 / 153,405, Nov. 16, 1993, entitled "Viterbi Decoder and Digital Processor with Shared Memory." Diamondstein, H. Sam and M. Filed by Thierbach et al. Blaker 5-5-5-9 at our headquarters;
기술 분야Technical field
본 발명은 일반적으로 디지탈 신호 프로세서에 관한 것으로, 보다 구체적으로 비터비(Viterbi) 처리를 실행하는 디지탈 신호 프로세서에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention generally relates to digital signal processors, and more particularly to digital signal processors that perform Viterbi processing.
발명의 배경Background of the Invention
이동 디지탈 셀룰러 전화들 등의 이동 통신 장치들은 송수신된 디지탈 신호들을 처리 및 필터링하기 위해 자주 디지탈 신호 프로세서를 사용한다. 흔히, 인입 신호들에서의 에러들 정정을 위한 비터비 처리를 구현하기 위해 별개의 칩이 제공된다. 대안적으로, 비터비 처리가 디지탈 신호 프로세서내의 소프트웨어에 인코딩된다.Mobile communication devices, such as mobile digital cellular telephones, often use digital signal processors to process and filter digital signals transmitted and received. Often, a separate chip is provided to implement Viterbi processing for correcting errors in incoming signals. Alternatively, Viterbi processing is encoded in software in the digital signal processor.
비터비 처리는 포워드(forward) 에러 정정을 제공하는 최대 확률 디코딩 처리(maximum likelihood decoding process)이다. 비터비 처리는 비트 스트림 등의 인코딩된 신호들의 시퀀스를 디코딩하는데 이용된다. 비트 스트림은 심볼 순간(symbol instant)을 나타내는 각각의 비트들의 세트를 가지고 여러 매체를 통한 통신 시스템 전송에서의 인코딩된 정보를 나타낼 수도 있다. 디코딩 처리시에, 비터비 프로세서는 어느 한 비트 시퀀스가 전송되었을 가능성이 가장 큰지를 결정하기 위해 각각의 심볼 순간에서 가능한 비트 시퀀스들중 한 비트 시퀀스로 되돌아 작동한다. 한 심볼 순간에서의 비트 상태로부터 다음의 후속 심볼 순간에서의 비트 상태로의 가능한 전이들은 제한된다. 한 상태로부터 다음 상태로의 각각의 가능한 전이는 각각 그래프로 도시될 수 있고 브렌치로서 정의된다. 상호 접속된 브렌치들의 시퀀스는 경로(path)로서 정의된다. 각각의 상태는 비트 스트림내의 다음 비트를 수신하면 제한된 수의 다음 상태들로 전이할 수 있다. 디코딩 처리동안 몇몇의 경로들은 유지되지만 다른 경로는 유지되지 않는다. 허용될 수 없는 전이들을 제거함으로써, 유지될 확률이 가장 높은 경로들을 결정하는 데 있어 효율적인 동작이 이루어 질 수 있다. 비터비 처리는 전형적으로 각각의 브렌치에 관련된 브렌치 메트릭(metric)을 정의 및 계산하며 이 브렌치 메트릭을 이용하여 어느 경로들이 유지되고 어느 경로들이 유지되지 않을지를 결정한다.Viterbi processing is a maximum likelihood decoding process that provides forward error correction. Viterbi processing is used to decode a sequence of encoded signals, such as a bit stream. The bit stream may represent encoded information in communication system transmissions over various media with respective sets of bits representing symbol instants. In the decoding process, the Viterbi processor operates back to one bit sequence of possible bit sequences at each symbol instant to determine which bit sequence is most likely transmitted. Possible transitions from the bit state at one symbol moment to the bit state at the next subsequent symbol moment are limited. Each possible transition from one state to the next can each be shown graphically and defined as a branch. The sequence of interconnected branches is defined as a path. Each state may transition to a limited number of next states upon receiving the next bit in the bit stream. Some paths are maintained during the decoding process, while others are not. By eliminating unacceptable transitions, an efficient operation can be made in determining which paths are most likely to be maintained. Viterbi processing typically defines and calculates a branch metric associated with each branch and uses this branch metric to determine which paths are to be maintained and which paths are not to be maintained.
전형적으로, 비터비 처리는 디지탈 신호 처리 칩으로부터 분리된 칩상에 구형된다(또는, 상기 언급된대로, 디지탈 신호 프로세서 소프트웨어로 구현될 수도 있음). 수신된 신호들은 디코딩을 위해 먼저 비터비 프로세서로 진행되는 반면에,디지탈 신호 프로세서는 작동하지 않는다. 그후, 디코딩된 신호들은 추후 처리를 위해 디지탈 신호 프로세서로 진행된다.Typically, Viterbi processing is implemented on a chip separate from the digital signal processing chip (or, as mentioned above, may be implemented in digital signal processor software). The received signals go first to a Viterbi processor for decoding, while the digital signal processor does not work. The decoded signals then go to a digital signal processor for further processing.
이동 통신 장치가 확산됨에 따라, 수신 신호들에 대한 더욱 신속하고 더욱 효율적인 처리에 대한 요구가 남아 있다.As mobile communication devices proliferate, there remains a need for faster and more efficient processing of received signals.
발명의 개요Summary of the Invention
신호들의 효율적인 처리는 본 발명에 의해 성취되는데, 본 발명은 신호 처리 기능을 수행하는 디지탈 프로세서 및 비터비 디코딩 기능을 구현하는 삽입된 코-프로세서(co-processor)를 포함하며, 상기 디지탈 프로세서는 신호 처리 기능을 동시에 수행한다.Efficient processing of signals is accomplished by the present invention, which includes a digital processor that performs a signal processing function and an embedded co-processor that implements a Viterbi decoding function, wherein the digital processor includes a signal. Perform processing functions simultaneously.
상세한 설명details
디지탈 신호 프로세서(DSP)는 참조 번호(11)로 표시된다. 디지탈 신호 프로세서의 마스터 제어는 제어 유닛(13)에 의해 주어진다. 에러 정정 코-프로세서(ECCP)(15)는 디지탈 신호 프로세서(11)내에 삽입된다. ECCP(15)는 그 자체의 내부 제어 유닛(17)의 지시하에 동작한다. DSP 제어 유닛(13)으로부터의 단일 명령은 제어 유닛(17)이 ECCP(15)에 완전한 비터비 디코딩 동작의 수행을 지시하도록 야기한다. 비터비 처리가 ECCP 제어 유닛(17)내에 삽입되어 있으므로, 상당한 DSP 코드 압축이 달성된다.The digital signal processor (DSP) is indicated by reference numeral 11. Master control of the digital signal processor is given by the control unit 13. An error correction co-processor (ECCP) 15 is inserted into the digital signal processor 11. The ECCP 15 operates under the direction of its own internal control unit 17. A single command from the DSP control unit 13 causes the control unit 17 to instruct the ECCP 15 to perform a complete Viterbi decoding operation. Since Viterbi processing is embedded in the ECCP control unit 17, considerable DSP code compression is achieved.
DSP 제어 유닛(13)은 세개의 인터페이스 레지스터들을 통해 ECCP(15)와 통신한다. 어드레스 레지스터 ear(19)는 ECCP의 내부 메모리 맵핑된 레지스터(internal memory mapped register)를 간접적으로 어드레스 하는데 활용된다. 데이터 레지스터 edr(21)은, ECCP의 내부 메모리 맵핑된 레지스터로부터 간접적으로 판독하거나 그 레지스터에 기록하기 위해, 어드레스 레지스터(19)와 협력하여 작업한다. 각각의 액세스후에, 어드레스 레지스터(19)의 내용들은 한개씩 증가된다. ECCP(15)로의 명령들은 명령 레지스터 eir(23)를 통해 주어진다. 적절한 코드가 명령 레지스터(23)에 주어질때, ECCP(15)는 다음중 어느 하나를 수행할 것이다. 즉, ⅰ) MLSE(최대 확률 시퀀스 추정), ⅱ) 컨벌루션 디코딩, ⅲ) 간단한 트레이스백 동작, 당업자들에게는 비터비 처리가 MLSE 또는 컨벌루션 디코딩 둘 모두를 제공하는 데 사용될 수 있음이 주지되어 있다.The DSP control unit 13 communicates with the ECCP 15 through three interface registers. The address register ear 19 is utilized to indirectly address the internal memory mapped register of the ECCP. The data register edr 21 works in cooperation with the address register 19 to read indirectly from or write to the internal memory mapped register of the ECCP. After each access, the contents of the address register 19 are increased by one. Instructions to the ECCP 15 are given via the instruction register eir 23. When the appropriate code is given to the instruction register 23, the ECCP 15 will do any of the following. That is, it is well known that iii) MLSE (maximum probability sequence estimation), ii) convolutional decoding, iii) simple traceback operation, viterbi processing can be used to provide both MLSE or convolutional decoding.
ECCP(15)내에 레지스터들(100)이 주어진다. 레지스터들(100)은 복합 채널 평가치들(estimates), 생성 다항식들, 복합 수신 신호들, 컨벌루션 디코딩을 위한 입력 신호들, 및 디코딩된 심볼들을 저장한다. 이들 각각의 레지스터들은 ear 레지스터(19)에 어드레스를 기록하고 edr 레지스터(21)에 기록 또는 판독함으로써 액세스된다. ECCP(15)가 가능하도록 지시하는 명령은 eir 레지스터(23)에 기록된다.Registers 100 are given in ECCP 15. Registers 100 store composite channel estimates, generation polynomials, composite received signals, input signals for convolutional decoding, and decoded symbols. Each of these registers is accessed by writing an address to ear register 19 and writing or reading to edr register 21. The command instructing the ECCP 15 to be enabled is written to the eir register 23.
MLSE 동작이 희망된다면, 제어 유닛(17)내의 제어 레지스터 ECON(25)은 MLSE 동작에 요구된 탭들의 수를 레지스터 19 및 21을 통해 수신한다. 그러나, 컨벌루션 코딩을 위한 명령이 레지스터 23을 통해 주어진다면, 제어 레지스터 25는 2 내지 7의 여러 제한 길이(constraint length)들 및 1/1 내지 1/6 의 코드율들에 대해 구성될 수 있다.If MLSE operation is desired, control register ECON 25 in control unit 17 receives via registers 19 and 21 the number of taps required for MLSE operation. However, if a command for convolutional coding is given through register 23, control register 25 may be configured for various constraint lengths of 2 to 7 and code rates of 1/1 to 1/6.
ECCP(15)는 일반적으로 DSP(11)내의 나머지 다른 부분과 독립적으로, 및 그들과 병렬로 동작한다. 따라서, 예를들어 처리 시퀀스의 시작에서 ECCP(15)는 비활성일 수도 있다. 반면에, DSP(11)의 나머지 다른 부분은 신호를 수신 또는 송신하거나 다른 동작들을 수행한다. DSP(11)의 나머지 다른 부분은 ECCP(15)의 동작 모드들을 프로그램한다.The ECCP 15 generally operates independently of and in parallel with the rest of the rest of the DSP 11. Thus, for example, at the start of a processing sequence, the ECCP 15 may be inactive. On the other hand, the rest of the DSP 11 receives or transmits signals or performs other operations. The other part of the DSP 11 programs the operating modes of the ECCP 15.
다음에, DSP 코어(13)는 ECCP(15)가 비터비 처리를 개시하도록 지시하는 동안, DSP(11)의 나머지 다른 부분은 음성 대역 또는 기저 대역 코덱으로부터 새로운 신호를 수신 또는 송신하고, 음성 처리 알고리즘을 실행하며, 채널 적응(adaptation)을 수행하고, 암호화/해독화 또는 인터리빙(interleaving)/디인터리빙(de-interleaving) 등의 다른 처리를 계속 수행한다. 그 동안, ECCP(15)는 코어 프로세서(13)에 의해 명령을 받아, MLSE 처리 또는 컨벌루션 디코딩 동작을 수행한다.Next, while the DSP core 13 instructs the ECCP 15 to start Viterbi processing, the rest of the DSP 11 receives or transmits a new signal from the voice band or baseband codec, and the voice processing. The algorithm is executed, channel adaptation is performed, and other processing such as encryption / decryption or interleaving / de-interleaving is continued. In the meantime, the ECCP 15 receives instructions from the core processor 13 to perform MLSE processing or convolutional decoding operations.
ECCP(15)가 비터비 처리를 실행하느라 바쁠 때, EBUSY 신호(29)가 코어 프로세서 유닛(13)에 공급된다.When the ECCP 15 is busy performing Viterbi processing, the EBUSY signal 29 is supplied to the core processor unit 13.
ECCP(15)가 그 동작 수행을 종료했을때, ECCP(15)는 EREADY 신호(27)를 코어 프로세서(13)에 공급한다. EREADY 신호는 ECCP(15)에 공급된 정보가 MLSE를 위한 비터비 처리 또는 컨벌루션 디코딩됨을 코어 프로세서(13)에 나타낸다. 몇몇의 환경들에서는, 수신된 신호에 대해 먼저 MLSE를 수행하고 난 후 컨벌루션 디코딩을 수행하는 것이 바람직하다. 이와 같이, 발생된 비트 스트림은 MLSE를 위해 ECCP(15)에 공급된다. MLSE가 완료된 후, EREADY 신호(27)는 제어 유닛에 공급된다. MLSE 처리된 신호들을 그후 DSP(11)의 나머지 다른 부분에 의해 해독, 디인터리빙, 및 재정렬되고 레지스터 23을 통해 명령과 함께 ECCP(15)에 다시 입력되어,상기 MLSE 처리된 신호들은 컨벌루션 디코딩을 위해 비터비 처리된다.When the ECCP 15 finishes performing its operation, the ECCP 15 supplies the EREADY signal 27 to the core processor 13. The EREADY signal indicates to the core processor 13 that the information supplied to the ECCP 15 is Viterbi processed or convolutionally decoded for the MLSE. In some circumstances, it is desirable to perform MLSE on the received signal first and then perform convolutional decoding. As such, the generated bit stream is supplied to the ECCP 15 for MLSE. After the MLSE is completed, the EREADY signal 27 is supplied to the control unit. The MLSE processed signals are then decoded, deinterleaved, and rearranged by the rest of the DSP 11 and input back to the ECCP 15 with instructions via register 23, where the MLSE processed signals are subjected to convolutional decoding. Viterbi is processed.
또다른 환경들에서는, MLSE가 요구되지 않고 단지 컨벌루선 디코딩만이 수행될 수도 있다. 아뭏튼, ECCP가 종료된 후, 그것은 EREADY 신호를 공급하고 비터비 디코딩된 비트 스트림은 추후 처리를 위해 DSP(11)의 나머지 다른 부분에 이용될 수 있다. 그러한 추후 처리는 적정 포맷으로의 데이터 프리젠테이션 또는 음성 압축해제(decompression)를 포함할 수도 있다. ECCP 와 DSP(11)의 다른 부분간의 이러한 동작의 병렬화는 종래기술에서 지급까지 실현되지 않았던, 수신 신호에 대한 매우 시기 적절하고 효율적인 처리를 제공한다.In other environments, MLSE may not be required and only convolutional decoding may be performed. At any rate, after the ECCP is terminated, it supplies an EREADY signal and the Viterbi decoded bit stream can be used for the rest of the DSP 11 for further processing. Such further processing may include data presentation or speech decompression in the appropriate format. The parallelization of this operation between the ECCP and other parts of the DSP 11 provides very timely and efficient processing of the received signal, which has not been realized until provision in the prior art.
비터비 동작의 출력은 하드 출력 또는 소프트 출력중의 어느 하나일 수 있다. 하드 출력은 이진 판단(참/거짓, 또는 0-1 혹은 +1, -1)을 나타낸다. 소프트 출력은 신뢰 측정(confidence measure)에 관련된 하드 출력이다. 코어부(13)는 ECCP(15)가 하드 출력을 제공할 것인지 소프트 출력을 제공할 것인지를 지시한다. 당업자들에게 공지된 여러 유형의 소프트 판단 출력들이 제공될 수도 있다.The output of the Viterbi operation may be either a hard output or a soft output. The hard output represents a binary decision (true / false, or 0-1 or +1, -1). The soft output is a hard output related to a confidence measure. The core portion 13 instructs whether the ECCP 15 will provide a hard output or a soft output. Various types of soft decision outputs known to those skilled in the art may be provided.
제 2 도는 ECCP(15)와 DSP(11)의 다른 부분과의 병렬 동작을 보다 상세하게 설명한 블럭도이다. 디코딩 동작의 시작에서, 블록 101에 표시된대로, EBUSY 신호는 거짓이며, ECCP(15)는 턴 오프되어 로드될 준비가 된다. 블럭(103)은 ECCP(15)가 코어 프로세서(13)에 의해 레지스터(23)를 통해 프로그램됨을 나타낸다. ECCP(15)에 공급된 정보중에는 비터비 트레이스백 및 제한 길이들, 생성 다항식이 있다. MLSE 동작이 희망된다면, 채널 탭들의 갯수가 또한 주어진다.2 is a block diagram illustrating the parallel operation of the ECCP 15 and other parts of the DSP 11 in more detail. At the start of the decoding operation, as indicated by block 101, the EBUSY signal is false and the ECCP 15 is turned off and ready to be loaded. Block 103 indicates that the ECCP 15 is programmed through the register 23 by the core processor 13. Among the information supplied to the ECCP 15 are Viterbi traceback and limit lengths, and the generated polynomial. If MLSE operation is desired, the number of channel taps is also given.
다음에, 입력 신호가 ECCP에 로드된다(블록 105). ECCP(15)가 제 1 업데이트명령을 수신할 때(블럭 103), EBUSY 플래그의 값은 하이이며, ECCP는 턴 온되어 완전한 비터비 동작을 시작한다. ECCP(15)는 제공된 컨벌루션 명령 또는 MLSE에 따라 업데이트 계산을 수행한다(블럭 109). 일반적으로, 업데이팅은 각각의 가능한 브렌치에 대한 브렌치 메트릭 계산, 그 브렌치 발생단의 상태에 관련된 누적 값에 상기 브렌치 메트릭을 부가, 상태에서의 각각의 가능한 브렌치 종료에 대한 그 누적 값을 비교, 및 브렌치 종료단에 관련된 최소 누적 값을 선택하는 동작을 포함한다. 그후, 심볼은 디코딩되어 경로 메모리에 대응한다(최대 확률의 측면에서).Next, the input signal is loaded into the ECCP (block 105). When the ECCP 15 receives the first update command (block 103), the value of the EBUSY flag is high and the ECCP is turned on to start a complete Viterbi operation. The ECCP 15 performs update calculation in accordance with the provided convolution command or MLSE (block 109). In general, updating involves calculating a branch metric for each possible branch, adding the branch metric to a cumulative value related to the state of the branch generating stage, comparing the cumulative value for each possible branch termination in the state, and And selecting a minimum cumulative value associated with the branch end. The symbol is then decoded to correspond to the path memory (in terms of maximum probability).
다음, 블록 111에 표시된 대로, 제 1 심볼이 디코딩된다. 그러나, 불충분한 심볼들이 적절한 트레이스백을 수행하도록 수신되었기 때문에, 제 1 디코딩된 심볼은 무효이며 따라서 버려진다. 다음, 블록 113, 115, 117에 나타낸 대로, 트레이스백 길이와 동일한 입력 심볼들의 양은 순차적으로 DSP에 로드되었고, MLSE 또는 컨벌루션 명령은 업데이트되었으며, (다시 로딩된 심볼들의 수가 여전히 불충분하기 때문에) 트레이스백 길이 TL과 숫자상 동일한 무효 디코딩 심볼 개수가 얻어졌다. (물론, 필요하다면, 더 작은 트레이스백 길이를 이용하여 어떤 채널 적응 알고리즘들에 대해 유효 심볼 디코딩이 가능하다. 이론적으로, 최상의 디코딩된 심볼은 트레이스백 길이 TL 이 더욱 길 때 얻어진다). 만일 트레이스백 길이가 심볼 TL 로 표시된다면, 제 1 의 TL 신호들은 무효이며 버려진다.Next, as indicated at block 111, the first symbol is decoded. However, since insufficient symbols have been received to perform proper traceback, the first decoded symbol is invalid and thus discarded. Next, as shown in blocks 113, 115, and 117, the amount of input symbols equal to the traceback length was sequentially loaded into the DSP, the MLSE or convolution instruction was updated, and the traceback (because the number of reloaded symbols is still insufficient). The number of invalid decoding symbols equal in length and TL was obtained. (Of course, a smaller traceback length can be used for effective symbol decoding for some channel adaptation algorithms, if necessary. In theory, the best decoded symbol is obtained when the traceback length TL is longer). If the traceback length is indicated by the symbol TL, the first TL signals are invalid and discarded.
블록들 119, 121, 123은 제 1 심볼의 유효 디코딩을 설명하며, 심볼 번호 TL+1가 로드된후, MLSE/컨벌루션 갱신이 수행되며, 제 1 유효 심볼이 디코딩되었다. 다음에, 그 남은 입력 심볼들은 심볼 수 n까지 로드되며, 블록들 125, 127,129 에 의해 표시된 바와 같이, n 개의 TL 유효 디코딩된 심볼들과 동일한 양이 얻어진다(n 은 입력 심볼들의 총 수). 처리내의 이 시점에서, 모든 입력 신호들은 ECCP에 제공되었다. n 개의 유효 디코딩된 심볼들을 제공하는 완전한 트레이스백들이 블록들 131, 133, 135, 137에 나타낸 대로 수행될 수도 있다. 각각의 트레이스백 명령에 이어, 한개의 유효 디코딩된 심볼이 얻어진다. 트레이스백 명령은 TL 번 실행되어, 트레이스백 메모리에 포착된 모든 디코딩된 심볼들을 얻는다.Blocks 119, 121, and 123 describe valid decoding of the first symbol, and after symbol number TL + 1 is loaded, MLSE / convolution update is performed and the first valid symbol is decoded. The remaining input symbols are then loaded up to symbol number n, and the same amount as n TL valid decoded symbols is obtained, as indicated by blocks 125, 127, 129 (n is the total number of input symbols). At this point in the processing, all input signals were provided to the ECCP. Complete tracebacks providing n valid decoded symbols may be performed as shown in blocks 131, 133, 135, 137. Following each traceback command, one valid decoded symbol is obtained. The traceback instruction is executed TL times to get all decoded symbols captured in the traceback memory.
블록 137에 나타낸 바와 같이, n 개의 유효 디코딩된 심볼들이 얻어진 후, EBUSY 플래그는 로우로 되며, ECCP는 턴 오프되고, 모든 유효 디코딩된 심볼들은 추후 처리를 위해 디지탈 신호 프로세서의 다른 부분에 전송된다.As shown in block 137, after n valid decoded symbols are obtained, the EBUSY flag goes low, the ECCP is turned off, and all valid decoded symbols are sent to another portion of the digital signal processor for further processing.
제 1 도는 본 발명의 실시예를 설명하는 블럭도.1 is a block diagram illustrating an embodiment of the present invention.
제 2 도는 본 발명에 따른 처리 과정을 설명하는 블럭도.2 is a block diagram illustrating a processing procedure according to the present invention.
♣ 도면의 주요부분에 대한 부호의 설명 ♣♣ Explanation of symbols for main part of drawing ♣
11 : 디지탈 신호 프로세서 15 : 에러 정정 코-프로세서(ECCP)11 digital signal processor 15 error correction co-processor (ECCP)
17 : 제어 유닛17 control unit
Claims (12)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US153,391 | 1988-02-08 | ||
US15339193A | 1993-11-16 | 1993-11-16 | |
US153391 | 1993-11-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950015072A KR950015072A (en) | 1995-06-16 |
KR100336246B1 true KR100336246B1 (en) | 2002-11-23 |
Family
ID=22547025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940029744A KR100336246B1 (en) | 1993-11-16 | 1994-11-14 | Integrated circuit with digital processor and co-processor |
Country Status (6)
Country | Link |
---|---|
US (1) | US5748650A (en) |
EP (2) | EP1111798B1 (en) |
JP (1) | JPH07202726A (en) |
KR (1) | KR100336246B1 (en) |
DE (1) | DE69434249T2 (en) |
TW (1) | TW243568B (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2724273B1 (en) * | 1994-09-05 | 1997-01-03 | Sgs Thomson Microelectronics | SIGNAL PROCESSING CIRCUIT FOR IMPLEMENTING A VITERBI ALGORITHM |
US8489860B1 (en) * | 1997-12-22 | 2013-07-16 | Texas Instruments Incorporated | Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device |
KR100572945B1 (en) * | 1998-02-04 | 2006-04-24 | 텍사스 인스트루먼츠 인코포레이티드 | Digital signal processor with efficiently connectable hardware co-processor |
US20020110206A1 (en) * | 1998-11-12 | 2002-08-15 | Neal Becker | Combined interference cancellation with FEC decoding for high spectral efficiency satellite communications |
WO2001069376A2 (en) * | 2000-03-15 | 2001-09-20 | Arc International Plc | Method and apparatus for processor code optimization using code compression |
US6883021B2 (en) * | 2000-09-08 | 2005-04-19 | Quartics, Inc. | Programmable and multiplierless Viterbi accelerator |
US6944206B1 (en) * | 2000-11-20 | 2005-09-13 | Ericsson Inc. | Rate one coding and decoding methods and systems |
WO2002054601A1 (en) * | 2000-12-29 | 2002-07-11 | Morphics Technology, Inc. | Channel codec processor configurable for multiple wireless communications standards |
JP2007299279A (en) * | 2006-05-01 | 2007-11-15 | Toshiba Corp | Arithmetic device, processor system, and video processor |
US8694878B2 (en) * | 2011-06-15 | 2014-04-08 | Texas Instruments Incorporated | Processor instructions to accelerate Viterbi decoding |
DE102014107297A1 (en) | 2014-05-23 | 2015-11-26 | Karl Storz Gmbh & Co. Kg | Position controlled electrodynamic linear drive |
TWI742322B (en) | 2017-12-01 | 2021-10-11 | 英屬開曼群島商睿能創意公司 | Hub apparatus, charging system, and wheel |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930020264A (en) * | 1992-03-23 | 1993-10-19 | 미셀 달사세 | An apparatus comprising a processor for processing a Viterbi algorithm |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2564805B2 (en) * | 1985-08-08 | 1996-12-18 | 日本電気株式会社 | Information processing device |
US4748626A (en) * | 1987-01-28 | 1988-05-31 | Racal Data Communications Inc. | Viterbi decoder with reduced number of data move operations |
US5151904A (en) * | 1990-09-27 | 1992-09-29 | The Titan Corporation | Reconfigurable, multi-user viterbi decoder |
FR2669445B1 (en) * | 1990-11-15 | 1993-01-08 | Alcatel Radiotelephone | DEVICE FOR THE TREATMENT OF VITERBI ALGORITHM COMPRISING A PROCESSOR AND A SPECIALIZED OPERATOR. |
US5220570A (en) * | 1990-11-30 | 1993-06-15 | The Board Of Trustees Of The Leland Stanford Junior University | Programmable viterbi signal processor |
BE1004814A3 (en) * | 1991-05-08 | 1993-02-02 | Bell Telephone Mfg | Decoder. |
US5432804A (en) * | 1993-11-16 | 1995-07-11 | At&T Corp. | Digital processor and viterbi decoder having shared memory |
-
1993
- 1993-12-06 TW TW082110282A patent/TW243568B/en not_active IP Right Cessation
-
1994
- 1994-11-09 EP EP01102100A patent/EP1111798B1/en not_active Expired - Lifetime
- 1994-11-09 DE DE69434249T patent/DE69434249T2/en not_active Expired - Lifetime
- 1994-11-09 EP EP94308234A patent/EP0653848A3/en not_active Withdrawn
- 1994-11-14 KR KR1019940029744A patent/KR100336246B1/en not_active IP Right Cessation
- 1994-11-16 JP JP6281686A patent/JPH07202726A/en active Pending
-
1996
- 1996-11-05 US US08/743,925 patent/US5748650A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930020264A (en) * | 1992-03-23 | 1993-10-19 | 미셀 달사세 | An apparatus comprising a processor for processing a Viterbi algorithm |
Also Published As
Publication number | Publication date |
---|---|
TW243568B (en) | 1995-03-21 |
US5748650A (en) | 1998-05-05 |
DE69434249T2 (en) | 2005-12-22 |
KR950015072A (en) | 1995-06-16 |
EP0653848A2 (en) | 1995-05-17 |
EP1111798B1 (en) | 2005-01-26 |
EP1111798A1 (en) | 2001-06-27 |
EP0653848A3 (en) | 1997-02-05 |
JPH07202726A (en) | 1995-08-04 |
DE69434249D1 (en) | 2005-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5502735A (en) | Maximum likelihood sequence detector | |
JP3900637B2 (en) | Viterbi decoder | |
US5375129A (en) | Maximum likelihood sequence detector | |
US7603613B2 (en) | Viterbi decoder architecture for use in software-defined radio systems | |
KR100336246B1 (en) | Integrated circuit with digital processor and co-processor | |
JP3153425B2 (en) | Digital signal processor | |
KR20020048975A (en) | High-speed acs unit for a viterbi decoder | |
US8566683B2 (en) | Power-reduced preliminary decoded bits in viterbi decoders | |
JPH07202727A (en) | Initial stage trace back that saves electric power and time | |
US7979781B2 (en) | Method and system for performing Viterbi decoding using a reduced trellis memory | |
KR20030036845A (en) | A Decoder For Trellis-Based Channel Encoding | |
EP1056213A2 (en) | Decoding method and apparatus for decoding | |
US6886128B2 (en) | Decoding apparatus, decoding method, data-receiving apparatus and data-receiving method | |
US6857101B1 (en) | Apparatus and method of storing reference vector of state metric | |
US20110235757A1 (en) | Decoding method and decoding device | |
US7120851B2 (en) | Recursive decoder for switching between normalized and non-normalized probability estimates | |
KR100262303B1 (en) | Survivor path trace back method in decoding with viterbi algorithm and apparatus thereof | |
JP2000224054A (en) | Method and device for increasing viterbi decoding rate | |
US7652597B2 (en) | Multimode decoder | |
US20050257123A1 (en) | Memory management algorithm for trellis decoders | |
Saleem et al. | Design and Tradeoff Analysis of an Area Efficient Viterbi Decoder | |
KR100491016B1 (en) | Trace-Back Viterbi Decoder with Consecutive Control of Backward State Transition and Method thereof | |
JP3231647B2 (en) | Viterbi decoder | |
JPH0730438A (en) | Viterbi decoding method | |
KR20040065841A (en) | Operation method for traceback of viterbi decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
EXPY | Expiration of term |