KR100336246B1 - Integrated circuit with digital processor and co-processor - Google Patents

Integrated circuit with digital processor and co-processor Download PDF

Info

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
Application number
KR1019940029744A
Other languages
Korean (ko)
Other versions
KR950015072A (en
Inventor
데이비드마크블레이커
그레고리스테펜엘라드
무하메드사피울모빈
Original Assignee
에이티 앤드 티 코포레이션
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 에이티 앤드 티 코포레이션 filed Critical 에이티 앤드 티 코포레이션
Publication of KR950015072A publication Critical patent/KR950015072A/en
Application granted granted Critical
Publication of KR100336246B1 publication Critical patent/KR100336246B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

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

디지탈 프로세서 및 코-프로세서를 구비한 집적 회로Integrated circuit with digital processor and co-processor

관련 출원에 대한 참조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)

집적 회로에 있어서:In an integrated circuit: 신호 처리 기능을 수행하기 위한 디지탈 프로세서(예컨대, 11);A digital processor (eg, 11) for performing a signal processing function; 비터비(Viterbi) 디코딩 기능을 구현하는 삽입된 코-프로세서(예컨대, 15)로서, 상기 코-프로세서(예컨대, 15)가 상기 비터비 디코딩 기능을 수행하는 동안, 상기 디지탈 프로세서(예컨대, 11)는 신호 처리 기능을 동시에 수행하는, 상기 코-프로세서와;An embedded co-processor (eg, 15) that implements a Viterbi decoding function, wherein the digital processor (eg, 11) while the co-processor (eg, 15) performs the Viterbi decoding function. A co-processor that simultaneously performs a signal processing function; 상기 코-프로세서의 복수의 내부 메모리 맵핑된 레지스터들(internal memory mapped registers) 중 적어도 하나를 어드레스하기 위한 어드레스 레지스터와;An address register for addressing at least one of a plurality of internal memory mapped registers of the co-processor; 상기 복수의 내부 메모리 맵핑된 레지스터들 중 상기 적어도 하나로부터 판독하고 상기 복수의 내부 메모리 맵핑된 레지스터들 중 상기 적어도 하나에 기록하기 위해, 상기 어드레스 레지스터와 함께 연결되어있는(co-pending) 데이터 레지스터를 포함하며,Co-pending a data register with the address register to read from and write to the at least one of the plurality of internal memory mapped registers. Include, 상기 코-프로세서는 상기 디지탈 프로세서의 제어하에 작동하고, 상기 디지탈 프로세서로부터의 명령이 수신되면 동작을 시작하고, 상기 코-프로세서가 종결된 때 상기 디지탈 프로세서에 신호를 제공하는, 집적 회로.The co-processor operates under control of the digital processor, initiates operation upon receipt of a command from the digital processor, and provides a signal to the digital processor when the co-processor terminates. 제 1 항에 있어서, 상기 코-프로세서(예컨대, 15)는 최대 확률 시퀀스 추정(maximum likelihood sequence estimation) 또는 컨벌루션 디코딩을 수행하도록 상기 디지탈 프로세서(예컨대, 11)에 의해 프로그래밍되는, 집적 회로.The integrated circuit of claim 1, wherein the co-processor (eg, 15) is programmed by the digital processor (eg, 11) to perform maximum likelihood sequence estimation or convolutional decoding. 제 2 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 최대 확률 시퀀스 추정이 수행될 때 상기 코-프로세서에 채널 탭들의 수를 제공하는, 집적 회로.3. The integrated circuit of claim 2, wherein the digital processor (e.g., 11) provides the number of channel taps to the co-processor when maximum probability sequence estimation is performed. 제 2 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 컨벌루션 디코딩이 수행될 때 상기 코-프로세서(예컨대, 15)에 비터비 트레이스백 길이, 제한 길이, 및 생성 다항식을 제공하는, 집적 회로.3. The integrated circuit of claim 2, wherein the digital processor (e.g., 11) provides a Viterbi traceback length, a limit length, and a generation polynomial to the co-processor (e.g., 15) when convolutional decoding is performed. 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 상기 코-프로세서(예컨대, 15)로 하여금 제 1 비트 스트림에 대한 최대 확률 신호 추정을 수행하도록 명령할 수 있으며, 이에 의해 제 2 비트 스트림을 생성하고 그후 상기 제 2 비트 스트림에 대한 컨벌루션 디코딩을 수행하며, 이에 의해, 제 3 비트 스트림을 생성하는, 집적 회로.2. The digital processor of claim 1, wherein the digital processor (e.g., 11) can instruct the co-processor (e.g., 15) to perform a maximum probability signal estimation for the first bit stream, thereby And then perform convolutional decoding on the second bit stream, thereby generating a third bit stream. 제 1 항에 있어서,The method of claim 1, a) 상기 디지탈 프로세서(예컨대, 11)가 상기 코-프로세서를 프로그램하며(예컨대, 103);a) the digital processor (eg, 11) programs the co-processor (eg, 103); b) 상기 디지탈 프로세서가 제 1 심볼을 상기 코-프로세서에 로드하며(예컨대, 105);b) the digital processor loads a first symbol into the co-processor (eg, 105); c) 상기 코-프로세서가 상기 심볼에 대해 비터비 업데이트 동작을 수행하며, 이에 의해, 디코딩된 심볼을 얻게 되며(예컨대, 111);c) the co-processor performs a Viterbi update operation on the symbol, thereby obtaining a decoded symbol (eg, 111); d) 상기 디지탈 프로세서가 다른 신호 처리 기능들(예컨대, 113, 115, 117)을 수행하는 동안에 단계들 b) 및 c)가 TL-1번 반복되며;d) steps b) and c) are repeated TL-1 times while the digital processor performs other signal processing functions (eg, 113, 115, 117); e) 상기 디지탈 프로세서는 TL+1 심볼을 상기 코-프로세서에 로드하며(예컨대, 119);e) the digital processor loads a TL + 1 symbol into the co-processor (eg, 119); f) 상기 코-프로세서는 상기 TL+1 심볼에 대해 비터비 트레이스백 동작을 수행하며, 이에 의해 유효 디코딩된 심볼을 얻게 되며(예컨대, 123);f) the co-processor performs a Viterbi traceback operation on the TL + 1 symbols, thereby obtaining a valid decoded symbol (eg, 123); g) 상기 디지탈 프로세서가 마지막 n 번째의 심볼을 로드하며(예컨대, 125);g) the digital processor loads the last n th symbol (eg, 125); 이에 의해 상기 코-프로세서는 상기 n 개의 심볼들을 활용하여 트레이스백 길이 TL을 갖는 비터비 트레이스백 동작을 수행하며, 그에 의해 n 개의 유효 디코딩된 심볼들을 얻게 되는(예컨대, 137), 집적 회로.Whereby the co-processor utilizes the n symbols to perform a Viterbi traceback operation with a traceback length TL, thereby obtaining n valid decoded symbols (e.g., 137). 제 6 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 상기 코-프로세서가 상기 비터비 처리를 수행하는 동안, 채널 적응, 암호화, 해독화, 인터리빙(interleaving) 또는 디인터리빙(de-interleaving) 음성 처리 및 입력/출력 동작들로 구성된 그룹으로부터 선택된 기능을 수행하는 집적 회로.7. The digital processor of claim 6, wherein the digital processor (e.g., 11) is adapted for channel adaptation, encryption, decryption, interleaving or de-interleaving voice while the co-processor performs the Viterbi process. An integrated circuit that performs a function selected from the group consisting of processing and input / output operations. 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 단일 명령을 상기 코-프로세서(예컨대, 15)에 제공하며, 상기 단일 명령은 상기 코-프로세서(예컨대,15)로 하여금,The method of claim 1, wherein the digital processor (eg, 11) provides a single instruction to the co-processor (eg, 15), wherein the single instruction causes the co-processor (eg, 15) to: 모든 상태들로의 가능한 모든 상태 전이들에 대한 적절한 브렌치 메트릭의 계산들을 수행하고;Perform calculations of the appropriate branch metric for all possible state transitions to all states; 비터비 알고리즘의 더하고-비교하며-선택하는(add-compare-select) 모든 해당 처리들을 수행하며;Perform all corresponding processes of add-compare-select of the Viterbi algorithm; 완전한 트레이스백 디코딩 처리를 수행하며;Perform a complete traceback decoding process; 상기 트레이스백 동작의 끝에서 디코딩된 심볼들을 생성하게 하는 집적 회로.And generate decoded symbols at the end of the traceback operation. 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 상기 코-프로세서(예컨대, 15)에 코드율(code rate)을 제공하는 집적 회로.2. The integrated circuit of claim 1, wherein the digital processor (e.g., 11) provides a code rate to the co-processor (e.g., 15). 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 상기 코-프로세서(예컨대, 15)에 상기 브렌치 메트릭 계산 유형을 제공하는 집적 회로.2. The integrated circuit of claim 1, wherein the digital processor (e.g., 11) provides the branch metric calculation type to the co-processor (e.g., 15). 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 소프트 또는 하드 판단 출력을 제공할 것인지의 여부를 상기 코-프로세서(예컨대, 15)에 명령하는, 집적 회로.2. The integrated circuit of claim 1, wherein the digital processor (e.g., 11) instructs the co-processor (e.g., 15) whether to provide soft or hard decision output. 제 1 항에 있어서, 상기 디지탈 프로세서(예컨대, 11)는 상기 코-프로세서(예컨대, 15)에 제한 길이를 제공하는, 집적 회로.The integrated circuit of claim 1, wherein the digital processor (eg, 11) provides a limited length to the co-processor (eg, 15).
KR1019940029744A 1993-11-16 1994-11-14 Integrated circuit with digital processor and co-processor KR100336246B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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