KR100439211B1 - 연산처리장치 - Google Patents

연산처리장치 Download PDF

Info

Publication number
KR100439211B1
KR100439211B1 KR1019970052945A KR19970052945A KR100439211B1 KR 100439211 B1 KR100439211 B1 KR 100439211B1 KR 1019970052945 A KR1019970052945 A KR 1019970052945A KR 19970052945 A KR19970052945 A KR 19970052945A KR 100439211 B1 KR100439211 B1 KR 100439211B1
Authority
KR
South Korea
Prior art keywords
address
shift register
unit
data memory
signal
Prior art date
Application number
KR1019970052945A
Other languages
English (en)
Other versions
KR19980032867A (ko
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 KR19980032867A publication Critical patent/KR19980032867A/ko
Application granted granted Critical
Publication of KR100439211B1 publication Critical patent/KR100439211B1/ko

Links

Images

Classifications

    • 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/6502Reduction of hardware complexity or efficient processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
    • 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
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 비터비복호의 트레이스백처리를, 작은 비트폭으로 고속이고 효율적으로 수행하는 연산처리장치에 관한 것이다.
본 발명에 의한 연산처리장치는, 패스셀렉트신호를 저장하는 메모리(1)와, 상기 메모리에서의 데이터를 쉬프트하기 위한 바렐시프터(3), 상기 바렐시프터에 의하여 MSB로 시프트된 1비트를 수신하는 시프트레지스터(4)와 상기 시프트레지스터의 특정 비트위치에서 데이터위치를 변환하는 것에 의하여 바렐시프터에 의하여 수행되는 시프트수를 발생하는 수단(5)를 포함하고, 상기 패스셀렉트신호는 동시에 복수개의 그룹으로 분할되고, 메모리에 저장된다. 그리고 본 발명에 의한 연산장치는 어드레스를 출력하는 어드레스발생수단(10)과, 시프트레지스터의 특정 비트위치의 값과 어드레스를 결합하여 읽혀지는 그룹어드레스를 발생시키는 어드레스변환수단(7)을 포함한다. 따라서 비터비복호에서의 트레이스백은 짧은 비트폭으로 수행된다.

Description

연산처리장치
본 발명은, 연산처리장치와, 연산장치가 사용되는 이동국 및 기지국과 같은무선국장치와 디지털 신호프로세서에 관한 것으로, 더욱 상세하게는 비터비(Viterbi) 복호처리를 효율적으로 수행할 수 있는 구조에 관한 것이다.
최근, 디지털 신호처리 프로세서(Digital Signal Processor)(이하에서는 DSP라고 칭함)가, 이동통신분야의 디지털 화의 움직임에 대하여, 예를 들면 휴대전화 등으로의 기기 조립형 프로세서로서 널리 사용되고 있다. 이동 무선통신회선에 있어서의 데이터 통신에는, 비트에러가 빈번하게 발생하기 때문에 에러처리를 행할 필요가 있다. 에러정정벙법에는, 입력 비트에서 생성된 중첩코드를, 수신측에서 비터비(Viterbi) 복호에 의하여 복호하는 방법이 있고, 이러한 에러처리에 DSP를 사용하고 있다.
비터비 복호는, 가산, 비교, 선택이라고 하는 단순한 처리를 반복하는 것과, 최종적으로 데이터를 복호하는 트레이스백(trace back) 조작으로 컨벌류션코드(Convolutional Code)의 최상 복호를 실현한다. 다음에는 비터비복호처리에 대하여 간단하게 설명한다.
컨벌류션신호는, 입력비트와 그것에 선행하는 일정수의 비트와의 mod2 가산에 의하여 생성되고, 입력비트 1비트에 대응하여 복수개의 부호화데이터가 생성된다. 이 부호화 데이터에 영향을 부여하는 입력정보 비트수 마다를 구속길이(K)라고 하고, 그 수는 mod2 가산에 이용되는 시프트레지스터의 단수와 같다.
이러한 부호화 데이터는, 입력비트와, 선행하는 (K-1)개의 입력 비트의 상태로 정해진다. 이러한 상태는 새로운 정보 비트가 입력되는 것에 의하여 새로운 상태로 천이하지만, 천이 가능한 상태는, 새로운 입력비트가 0인가, 1인가에 의하여결정된다. 이러한 상태의 수는, (K-1)개의 비트의 각각이 0,1을 취하기 때문에, 2K-1개로 된다.
비터비 복호는, 수신한 부호화 데이터 계열을 관측하고, 일어날 수 있는 전체의 상태 변이 가운데에서 가장 확실한 상태를 추정한다. 이 때문에 정보 비트 1비트에 대응하는 부호화 데이터(수신 데이터 계열)을 얻는 것에는, 그 시점에서의 각 상태의 패스 신호간 거리(메트릭스)를 계산하고, 동일상태에 도달하는 패스 가운데, 메트릭스가 작은 측을 남는 패스로 하여 남는 조작을 순차적으로 반복한다.
도 17은, 구속길이(K)의 컨벌류션 부호기에 있어서, 어떤 시점에서의 상태 S[2n](N은 정수)에 대하여, 하나전의 시점의 상태 S[n]과 상태 S[n+2K-2]로에서 상태 천이를 보이는 2개의 패스가 연장되어 있는 모양을 보이고 있다. 예를 들어 K=3의 경우로 말하면, n=1인 경우 s[2], 즉 S10의 상태(선행하는 2비트가 "0" , "1"의 순으로 입력된 상태)에 대하여, S[1], 즉 S01의 상태 및 S[3], 즉 S11의 상태에서의 천이가 가능하고, 또한 n=2인 경우, S[4] 즉 S00의 상태(하위 2비트가 표시하는 상태)에 대하여 S[2], 즉 S10의 상태, 및 S[4], 즉 S00의 상태에서의 천이가 가능하다.
패스메트릭(a)는, 상태 S[2n]에 입력되는 패스의 출력 심벌과 수신 데이터계열과의 신호간 거리(브랜치 메트릭 x)와 하나 전의 시점의 상태 S[n]까지 남은 패스의 브랜치메트릭의 합인 패스메트릭(A)와의 합이다.
동일하게 패스메트릭(b)는, 상태 S[2n]에 입력되는 패스의 출력심벌과 수신데이터계열과의 거리(브랜치메트릭y)와, 하나 전의 시점의 상태 S[n+2K-2]까지의 남은 패스의 브랜치메트릭의 합인 패스메트릭(B)와의 합이다.
이렇게 하여 얻어지는 상태 S[2n]에 입력되는 패스메트릭(a,b)를 비교하고, 작은 측의 패스를 남는 패스로 하여 선택한다.
비터비 복호에는, 이와 같이 패스메트릭을 구하기 위한 가산, 패스메트릭의 비교, 패스의 선택의 각 처리를, 각 시점에서 2K-1개의 상태에 대하여 실행한다.
더욱이 패스의 선택에 있어서, 어떠한 패스를 선택하는가 하는 이력을 패스섹렉트신호 PS[i](l= 02K-1-1]로 하여 남겨 놓을 필요가 있다. 이 때, 선택된 패스의 하나 전의 상태의 첨자(예를 들면 n)이, 선택되지 않은 패스의 하나 전의 상태의 첨자(n+2K-2)보다도 작으면, PS[i]=0로 하고, 크면 PS[i]=1로 한다. 도 17의 경우, n〈(n+2K-2)이기 때문에, a≥b의 시점은 상태 S[n+2K-2]가 선택되어, PS[S2n]=1로 되고, a〈b의 경우에는 상태 S[n]이 선택되어 PS[S2n]=0으로 된다.
트레이스백에 의하여 최후로 복호하는 경우에, 이러한 패스셀렉트 신호를 기초로 남는 패스를 역으로 트레이싱하면서, 데이터를 복호한다.
도 18를 이용하여 트레이스백 처리를 간단하게 설명한다. 도 18은, 어떤 시점에 있어서의 상태 S[2n](N은 양정수)에 대하여, 패스셀렉트 신호 PS[2n]을 기초하여, 하나 전의 시점의 상태 S[n]까지는 상태 S[n+2K-2]으로 패스를 트레이싱하여올라가는 모양을 보이고 있다.
일반적으로 상태 S[i]와 패스셀렉트신호 PS[i]와를 사용하면, 하나 전의 상태는, S[i/2+PS[i]X2K-2]로 표시된다. 또한 테일 비트(tail bit)로 종단되어 있는 컨벌류션부호를 사용하는 경우에는, 패스셀렉트 신호가 0으로 되기 위해서는 하나 전의 시점의 복호데이터가 0으로 된 때이고, 패스셀렉트 신호가 1로 되기 위해서는 하나전의 시점의 복호 데이터가 1인 경우이다. 따라서 패스셀렉트 신호를 복호 데이터로 하는 것이 가능하다.
종래의 비터비 복호용 DSP내부의 연산장치는, 도 15에 보인 바와 같이, 패스메트릭, 패스셀렉트 신호, 보호 데이터 등을 기억하는 데이터메모리(1)와, 데이터메모리(1)에서 읽어내어진 데이터를 시프트하는 바렐(barrel)시프터(3)과, 데이터메모리(1)에 접속하여 데이터의 공급이나 연산 결과의 이송을 수행하는 제1버스(2)와, 바렐시프트(3)에서 시프트된 때의 시프트비트수를 저장하는 제1레지스터(23)과, 산술논리연산을 행하는 산술논리연산회로(이하에서는 ALU라고 약칭한다)(26)과, ALU(26)의 촤측 입력값을 일시 기억하는 제1래치(24)와, ALU(26)의 우측 입력값을 일시 기억하는 제2래치(25)와, 연산 결과를 일시 기억하는 제2레지스터(27,28)과 레지스터(27) 또는 레지스터(28)에서의 데이터 공급을 수행하는 제1버스(12)를 구비하고 있다.
바렐시프트(3)의 시프트 비트수는, 2개의 보상 시스템에서 표시되고, 양의 수의 때는 우측 시프트로 되고, 음의 수의 시점은 좌측 시프트로 된다.
이러한 연산장치에 의하여 테일비트로 종단하는 컨벌류션 부호화가 수행된 부호화 데이터에 대하여 비터비 복호를 수행하는 경우의 트레이스백 조작의 동작에 대하여 설명한다.
이 때의 조건은, 컨벌류션코드의 구속길이를 K, 부호화된 정보 비트수를 n, 데이터메모리(1), 제1버스(2), 제2버스(12), 제1래치(24), 제2래치(25), ALU(26), 제2레지스터(27,28)의 비트폭이 각각 2K-1비트인 것으로 한다.
시점(t)의 패스셀렉트신호 PSt[i], (t=0{(n-1)+(K-1)}, i=0{2K-1-1})은, 패스메모리 PM[t]={PSt[2K-1-1]< PSt[2K-1-2], ...,PSt[1}, PSt[0]}과 같이 1워드로 되고, PM[t], (t=0{(n-1)+(K-1)})의 형태로 데이터메모리(1)에 저장되어 있는 것으로 한다.
또한 복호된 데이터 Y[i], (i=0{n-1})는, 1비트를 1워드로하여 데이터메모리(1)에 저장된다.
트레이스백 조작에는, 데이터메모리(1)에서 PM[t]를 읽어내고, 바렐시프터(3)에 의하여 선택된 패스셀렉트 신호를 최하위 비트(LSB)에 시프트하고, 상기 LSB를 추출하여 복호데이터로 한다. 이러한 시프트수는, 선택된 상태의 2의 보상에 의하여 구해진다. 이러한 컨벌류션부호에는, 테일비트에서 종단하도록 설정되어 있기 때문에, 상태 0에서 시작하고, 그 전의 시점의 상태는[i/2+PS[i]×2K-2]를 연산하여 구해진다. 그리고 얻어진 상태를 기초로 하여, 다음의 패스셀렉트 신호를 LSB에 시프트한 때의 시프트수를 결정한다. 이와 같은 순서를 반복하는 것에 의하여 복호 데이터계열을 얻을 수 있다.
다음에 트레이스백의 동작을 단계로 나누어 설명한다.
제1단계: 상태 0에서 시작하기 위해서 고정값 "0"을 제2래치(25)에 저장한다. ALU(26)는 제2래치(25)의 값을 그대로 제2레지스터(27)에 저장한다. 다음의 제2단게에서 제10단계에 대해서는 i의 값을 {(n-1}+(K-1)}에서 (K-1)까지 다운카운트하면서 n회 반복한다.
제2단계: 제2레지스터(27)의 값을, 제2버스(12)를 통하여 제1래치(24)에 저장한다. ALU(26)에셔 제1래치(24)의 값의 2의 보상을 구하고, 제2레지스터(28)에 저장한다.
제3단계: 제2레지스터(28)의 값을, 제1버스(2)를 통하여, 제1레지스터(23)에 저장한다. (다음의 패스셀렉터신호를 선택하기 위한 시프트비트수로 한다)
제4단계: 데이터메모리(1)에서 패스메모리 PM[i]를 읽어내고, 바렐시프트(3)에서 제1레지스터(23)가 지정한 시프트비트수 만큼 시프트하고, 제2래치(25)에 저장한다. ALU(26)는 제2래치(25)의 값을 그대로 제2레지스터(28)에 저장한다. 따라서 선택하는 패스셀렉트신호가 최하위 비트[LSB]에 근접한다.
제5단계: 제2레지스터(28)의 값을 제2버스(12)를 통하여 제1래치(24)에 저장하고, 고정값 "1"을 제2래치(25)에 저장한다. ALU(26)에 있어서 제1래치(24)와제2래치(25)와의 논리곱을 구하고, 제2레지스터(28)에 저장한다(LSU만이 추출된다),
제6단계: 제2레지스터(28)의 값을 복호 데이터 Y[i-(K-1)]로 하여 데이터메모리(1)에 저장한다(LSU가 복호 데이터로 된다).
제7단계: 제1레지스터(23)에 고정값 "K"를 저장한다.
제8단계: 제2레지스터(27)의 값을 제2버스(12)를 통하여 제1래치(24)에 저장하고, 제2레지스터(28)의 값을 제1버스(2)를 통하여 바렐시프터(3)에 출력하고, 바렐시프터(28)의 값을 제1패버스(2)를 통하여 바렐시프터(3)에 출력하고, 바렐시프터(3)는, 이들을 제1레지스터(23)이 지정하는 시프트비트 수만큼 시프트하여, 그 출력을 제2래치(25)에 저장한다. ALU(26)에 있어서 제1래치(24)와 제2래치(25)의 논리합을 구하고 제2레지스터(28)에 저장한다.
제9단계: 제1레지스터(23)에 고정값 "-1"을 저장한다.
제10단계 제2레지스터(28)의 값을 바렐시프터(3)으로 제1레지스터(23)가 지정하는 시프트비트수 만큼 시프트한 출력을 제2래치(25)에 저장한다. ALU(26)는 제2래치(25)의 값을 그대로 제2레지스터(27)에 저장한다(제1단계에서 제10단계의 처리로 하나 전의 상태가 산출된다).
이상과 같이 종래의 연산장치로는, 바렐시프터(3)과 ALU(26)을 조합시켜 연산하는 것에 의하여 n비트의 정보비트의 비터비복호에 있어서의 트레이스백 조작을 (9n+1) 단계로 행하는 것이 가능하다.
그러나 종래의 연산장치에서는, 트레이스백 조작에 필요한 실행 단계 수가많은 문제가 있고, 이들을 해결하기 위한 연산장치가, 예를 들면 일본국 특허공개 평성6-112848호에 개시되어 있다.
이러한 장치는, 도 16에 도시한 바와 같이, 패스매트릭, 패스셀렉트신호 등을 기억하는 데이터메모리(1)와, 데이터메모리(1)에 접속되고, 데이터의 공급이나 연산결과의 이송을 수행하는 버스(2)와, 데이터메모리(1)에서 읽어낸 패스메모리데이터의 선택된 패스셀렉트신호를 최상위 비트(MSB)로 시프트하는 바렐시프트(3)과, 바렐시프트(3)의 출력의 MSB를 시프트 입력하고, 또한 버스(2)를 통하여 데이터메모리(1)에서의 데이터로드 또는 데이터메모리(1)으로의 데이터 저장을 수행하는 시프트레지스터(4)와, 시프트레지스터(4)의 정해진 복수의 비트위치의 값을 반전하여, 바렐시프터(3)에 시프트비트수로하여 부여하는 인버터(29)를 포함한다.
그리고 바렐시프터(3)의 비트수는 2의 보상체계로 표시되고, 양수의 경우 우측으로 시프트하고, 음수의 경우 좌측으로 시프트한다. 또한 시프트레지스터(4)는 시프트입력측을 MSB로 한다.
이러한 연산장치에 의하여, 테일비트로 종단하는 컨벌류션부호화가 수행된 부호화데이터에 대하여 비터비부호를 수행하는 때의 트레이스백 조작의 동작에 대하여 설명한다.
이때의 조건은, 컨벌류션부호의 구속길이를 K, 부호화된 정보비트수를 n, 데이터메모리(1), 버스(2), 시프트레지스터(4)의 비트폭을 2K-1비트로 한다. 또한 시프트레지스터(4)의 시프트입력에는 바렐시프터(3)의 출력의 MSB가 입력되고, 인버터(29)는 시프트레지스터(4)의 상위 (K-1)비트를 반전하여, 그 출력(K-1)비트의 MSB에 "0"을 부가한 합계 K비트를 바렐시프터(3)의 시프트비트수로 하여 출력한다.
상술한 것과 유사하게, 패스셀렉트신호 PSt[i], (t=0{(n-1)+(K-1)}, i= 0{2K-1-1})는, 상술한 바와 같이 패스메모리 PM[t]={PSt[2K-1-1], PSt[2K-1-2],..., PSt[1], PSt[0]}과 같이 1워드로 되어, PM[t],(t=0{(n-1)+(K-1)})과 같은 형태로 데이터메모리(1)에 저장되어 있고, 또한 복호된 데이터 Y[i], (i=0{n-1})는, 1비트를 1워드로 하여 데이터메모리(1)에 저장하는 것으로 한다.
트레이스백 조작에는, 데이터메모리(1)에서 읽어낸 패스메모리를, 바렐시프터(3)에서 시프트하여, 선택하는 패스셀렉트신호를 MSB로 이동하고, 이 패스셀렉트신호를 시프트레지스터(4)에 입력한다. 이 때 시프트레지스터(4)의 상위 (K-1)비트는 하나 전의 상태를 보이고 있다. 이를 위하여 다음 시프트수는, 그 상위 (K-1)비트를 반전하는 것에 의하여 얻어지는 것이 가능하다. 이 시프트수를 인버터(29)에서 생성하고, 다음 패스메모리에 있어서 선택되는 패스셀렉트신호를 바렐시프터(3) 출력의 MSB로 이동하고 시프트레지스터(4)에 입력한다.
이러한 반복에 의하여 시프트레지스터(4)에는, 복호데이터로 되는 선택된 패스셀렉트신호가 순차적으로 격납되고, 그들이 소정 비트수 저장되는 것으로 데이터메모리(1)에 저장된다.
상기 트레이스백의 동작을 단계로 나누어서 설명한다.
제1단계: 상태 "0" 에서 시작하기 위하여 고정값 "0"을 데이터로드하여 시프트레지스터(4)에 저장한다.
다음 제2단계와 제3단계에 대하여 i의 값을 {(n-1)+(K-1)}에서 (K-1)까지 카운트다운하면서 n회 반복한다.
제2단계: 데이터메모리(1)에서 패스메모리PM[i]를 읽고, 바렐시프터(3)에서 인버터(29)의 출력의 K비트가 지정되는 시프트비트수 분만큼 시프트하여 바렐시프터(3)의 출력의 MSB를 시프트레지스터(4)에 시프트 입력한다. 이 조작으로, 선택하는 패스셀렉트신호가 최상위 비트[MSB]로 된다. 여기서 시프트 입력후의 시프트레지스터(4)의 상위 [K-1]비트가 하나전의 상태를 보이고 있는 것으로 된다. 더욱이 상위 [K-1]비트의 반전이 다음 패스셀렉트신호를 선택하기 위한 시프트비트수의 기초로 되어 있다.
제3단계: 2K-1비트분만큼 복호되는 것에 1회, 시프트레지스터(4)의 내용을 데이터메모리(1)에 저장한다, 따라서 선택되고, 시프트레지스터(4)에 저장된 패스셀렉트신호가, 복호데이터로 되어 있다.
이상과 같이 이러한 장치로는 제2단계에서 패스셀렉트신호의 선택 및 하나 전의 상태의 산출을 행하고 있고, n비트의 정보비트에 대한 비터비복호의 트레이스백의 처리를 {n+(n/2K-1)+1} 단계로 실행하는 것이 가능하다.
그러나 이들 종래의 연산처리장치에서는, 데이터메모리 또는 패스의 비트폭이 2K-1비트(K는 복호하고자 하는 컨벌류션부호의 구속길이) 이상인 것이 요구되고, K의 값이 크게되면 이들에 맞춰서 데이터패스의 히트폭을 크게할 필요가 있는 문제점을 가지고 있다.
본 발명은 이와 같은 종래의 문제점을 해결하기 위한 것으로, 2K-1의 값이 데이터패스의 비트폭보다 큰 경우에도, 비터비복호의 트레이스백처리를 고속이면서도 효율적으로 실행할 수 있는 연산처리장치를 제공하는 것을 목적으로 한다.
도 1은 본 발명의 제1실시예에 의한 연산처리장치의 구성을 보인 블럭도.
도 2는 제1실시예의 연산처리장치의 데이터변환부의 구성을 보인 구성도.
도 3는 제1실시예의 연산처리장치의 데이터메모리에 저장된 데이터의 구조를 보인 설명도.
도 4는 본 발명의 제1내지 제5실시예의 연산처리장치의 바렐시프터의 동작을 설명하는 설명도.
도 5는 제1실시예의 연산처리장치의 어드레스변환부의 구성을 보인 구성도.
도 6은 본 발명의 제2실시예의 연산처리장치의 구성 블럭도.
도 7은 제2실시예의 연산처리장치의 데이터메모리에 저장된 데이터의 구성을 보인 예시도.
도 8은 제2실시예의 연산처리장치에 있어서 파이프라인동작을 설명하는 타이밍도.
도 9는 제2실시예의 연산처리장치의 어드레스변환부의 구성을 보인 예시도.
도 10은 본 발명의 제3실시예에 의한 연산처리장치의 구성을 보인 블럭도.
도 11은 본 발명의 제3 및 제4실시형태의 연산처리장치의 ACS연산부의 구성을 보인 블럭도.
도 12는 본 발명의 제4실시예의 연산처리장치의 구성을 보인 블럭도.
도 13은 본 발명의 제5실시예의 연산처리장치의 ACS연산부의 구성을 보인 블럭도.
도 14는 제5실시예의 연산처리장치의 가산기의 구성을 보인 블럭도.
도 15는 종래의 연산처리장치의 구성을 보인 블럭도.
도 16은 종래의 다른 연산처리장치의 구성을 보인 블럭도.
도 17은 비터비복호에서의 중첩부호기의 상태 천이의 패스를 보인 상태천이도[트렐리스선도(Trellis graph)]
도 18은 비터비복호의 트레이스백시의 패스를 역으로 오르는 동작을 보인 상태천이도(트렐리스선도).
도 19는 본 발명에 의한 연산장치를 사용하는 디지털 신호 프로세서의 블럭다이어그램.
도 20은 본 발명에 의한 무선 이동국장치의 블럭다이어그램.
도 21은 본 발명에 의한 다른 무선 이동국의 블럭다이어그램
도 22는 본 발명에 의한 무선기지국장치의 블럭다이어그램.
도 23은 본 발명에 의한 다른 무선기지국장치의 블럭다이어그램.
여기서 본 발명의 연산처리장치에서는, 데이터메모리에 동일시점의 패스셀렉트신호를 복수의 그룹으로 분할하여 저장하고, 이 그룹을 읽기 위한 어드레스를 어드레스발생수단이 출력하는 어드레스와 선택된 패스셀렉트신호가 순차적으로 입력되는 시프트레지스터의 특정의 비트위치값을 조합하여 생성하고 있다.
따라서 2K-1비트보다 짧은 비트폭으로 비터비복호 있어서 트레이스백처리를 행하는 것이 가능하고 고속이면서도 효율적인 연산처리가 가능하게 된다.
본 발명에 의하면, 패스셀렉트신호를 저장하는 데이터메모리와, 데이터메모리에서 읽혀진 데이터를 시프트하는 바렐시프터와, 바렐시프터에서 MSB로 시프트된 1비트를 입력하는 시프트레지스터와, 시프트레지스터의 특정비트위치 데이터를 변환하여 바렐시프터에서의 시프트수를 생성하는 데이터 변환수단을 구비하는, 비터비 복호처리를 행하는 연산처리장치에 있어서, 데이터메모리에 동일 시점의 패스셀렉트신호를 복수의 그룹으로 분할하여 저장하고, 데이터메모리의 어드레스를 출력하는 어드레스발생수단과, 어드레스발생수단에서 출력되는 어드레스와 시프트레지스터의 특정 비트위치값에 기초하여, 데이터메모리에서 읽어내는 그룹의 어드레스를 생성하는 어드레스변환수단을 설치하는 것이고, 2K-1비트보다 짧은 비트폭으로 비터비복호의 트레이스백처리를 수행하는 것이다.
더욱이 본 발명에 의한 연산처리장치에서는, 상기 그룹내에서 패스셀렉트신호의 각각에 부여되는 첨자가 연속하도록 패스셀렉트신호의 복수의 그룹으로 분할하고, 어드레스변환수단이 어드레스발생수단에서 출력된 어드레스와 시프트레지스터의 입력단의 비트를 포함하는 소정수의 비트위치값과를 사용하여 그 그룹의 어드레스를 생성하도록 하는 것이다. 예를 들면 K=6의 경우, 시점(t)에서의 합계 32비트의 패스셀렉트신호가 PSt[0]에서 PSt[15]까지와, PSt[16]에서 PSt[31]까지의 16비트폭의 2워드 형태로 저장된다.
더욱이 본 발명에 있어서는, 데이터변환수단이, 시프트레지스터의 입력단의 비트를 제외한 소정수의 비트위치값을 반전하여 바렐시프터에서의 시프트수를 생성하도록 구성하고 있다. 데이터메모리에 저장된 패스셀렉트신호의 각 워드의 비트폭을 n으로 한 때, 시프트레지스터의 MSB를 제외한 상위 log2 n비트가 반전되어 바렐시프터에서의 시프트수가 생성된다.
본 발명에 의하면, 그룹내에서 패스셀렉트신호의 각각에 부여된 첨자가, 일정한 간격을 갖고 패스셀렉트신호를 복수의 그룹으로 분할하고, 어드레스변환수단이 어드레스발생수단에서 출력된 어드레스와 시프트레지스터의 입력단의 비트를 제외한 비트위치값을 사용하여, 그 그룹의 어드레스를 생성하도록 구성하고 있다. 예를 들면 K=6의 경우, 첨자가 짝수의 패스셀렉트 신호 PSt[0], PSt[2], ..., PSt[30]과, 첨자가 홀수의 패스셀렉트신호 PSt[1], PSt[3],...,PSt[31]의 그룹으로 분할된다.
더욱이 본 발명에 의하면, 이 때의 데이터변환수단이, 시프트레지스터의 입력단의 비트를 포함하는 소정값의 비트위치값을 반전하여 바렐시프터에서의 시프트수를 생성하도록 구성하고 있다. 따라서 시프터레지스터의 MSB를 포함하는 상위 log2 n비트가 반전되어 바렐시프터에서의 시프트수가 생성된다.
또한 본 발명에 의하면, 이 때의 어드레스변환수단이, 이 그룹의 어드레스의 생성에 필요로 하는 시프트레지스터에서의 값을 그 그룹의 하나전의 그룹이 데이터메모리에서 읽어지는 시기에 시프트레지스터의 소정의 비트위치에서 얻어지도록 구성하고 있다. 따라서 파이프라인구조의 트레이스백 처리가 가능하게 된다.
그리고 본 발명에 의하면, 비터비 복호처리에 있어서의 가산. 비교 선택연산을 수행하는 ACS(Add, Compare, Select) 연산수단을 포함하고, ACS연산수단에서 출력되는 패스셀렉트신호를 시프트레지스터에 순차적으로 저장하고, 시프트레지스터에 그룹의 패스셀렉트신호가 저장된 후, 상기 패스셀렉트신호를 그룹 마다 이송한 데이터메모리에 저장하도록 구성하고 있다. 따라서 패스셀렉트신호의 그룹을, 트레이스백처리기구를 이용하여 효율적으로 저장하는 것이 가능하다.
그리고 본 발명에 의하면, 비터비 복호처리에서의 가산. 비교, 선택연산을수행하는 ACS연산수단을 포함하고, ACS연산수단에서 출력된 패스셀렉트신호를 상기 시프트레지스터를 포함하는 복수의 시프트레지스터에 순차적으로 저장하고, 각 시프트레지스터에 그룹의 패스셀렉트 신호가 격납된 후, 상기 패스셀렉트 신호를 그룹마다로 이송하여 데이터메모리에 저장하도록 한다. 따라서 패스셀렉트신호의 그룹을 효율적으로 저장하는 것이 가능하다.
그리고 본 발명에 의하면, ACS연산수단에 복수개의 전체 가산기로 구성되는 가산수단을 설치하고, 그 일부의 전체 가산기에서 출력되는 캐리신호의 다음단으로의 전반을 제어 가능하게 하고, 이러한 가산수단을 1또는 2이상의 누적가산기로 하여 사용하도록 하고 있다. 따라서 ACS연산용의 가산기를 일반적인 어큐뮬레이터로서 사용하는 것이 가능하다.
더욱이 본 발명에 의하면, 상술한 바와 같은 연산장치가 사용되는 디지털 신호 프로세서(DSP)를 제공하고 있어서, 상기 DSP는 비터비 복호과정에서 트레이스백을 신속하고 효율적으로 수행할 수 있게 된다. 더욱이 본 발명에 의하면, 상술한 연산처리장치가 결합되는 무선국장치를 제공하고 있다.
다음에는 도면에 기초하면서 본 발명에 대하여 더욱 상세하게 설명하기로 한다.
제1실시예
도 1에 도시한 바와 같이, 본 발명의 제1실시예에 의한 연산처리장치는, 패스메트릭스, 패스셀렉트신호 등을 기억하는 데이터메모리(1)와, 데이터메모리(1)에 접속되고, 데이터의 공급이나 연산결과의 이송 등을 수행하는 버스(2)와, 데이터메모리(1)에서 버스(2)를 통하여 읽혀진 데이터를 시프트하는 바렐시프터(3)와, 바렐시프터(3)의 출력의 MSB를 시프트 입력하고 또한 MSB를 어드레스변환부(7)로 출력함과 같이 버스(2)를 통하여 데이터메모리(1)에서의 데이터로드 또는 데이터메모리(1)로의 데이터 저장을 수행하는 시프트레지스터(4)와, 시프트레지스터(4)의 정해진 복수의 비트위치값을 반전하여 바렐시프터(3)에 시프트비트수로 하여 부여되는 데이터변환부(5)와, 데이터메모리(1)에 공급되는 어드레스를 발생하는 어드레스발생부(10)와, 어드레스 발생부(10) 및 시프터레지스터(4)에서 입력한 값을 변환하여 데이터메모리(1)의 어드레스로서 출력하는 어드레스변환부(7)를 포함하여 구성된다. 그리고 어드레스발생부(10)는, 데이터메모리(1)에 공급되는 어드레스를 기억하는 어드레스레지스터(6)와 어드레스레지스터(6)에 가산하기 위한 증분값을 기억하는 증분레지스터(9)와, 어드레스레지스터(6)의 값에 증분레지스터(9)의 값을 가산하여 어드레스레지스터(6)에 저장하는 가산기(8)을 구비한다.
그리고 바렐시프터(3)의 시프트비트수는 2의 보수 시스템으로 표시되고 양수의 경우 좌시프트로 되고, 음수의 경우 우시프트로 된다. 또한 시프트레지스터(4)는 시프트입력측을 최상위 비트(MSB)로 한다.
테일비트로 종단된 구속길이 K=6의 컨벌류션부호를 비터비 복호하는 경우의 트레이스백처리의 동작에 대하여 도 1, 도 2, 도 3, 도 4 및 도 5를 참조하면서 설명한다. 여기서 부호화되어 있는 정보 비트수를 n으로 한다. 또한 데이터메모리(1), 버스(2), 바렐시프터(3), 시프트레지스터(4), 어드레스레지스터(6) 등의 데이터패스의 비트폭(n)은, 16비트폭(m=16)으로 한다.따라서 종래의 것과 달리 2K-1(=32)의 값은 데이터패스의 비트폭보다도 크게 되어 있다.
데이터변환부(5)는, 도 2에 도시한 바와 같이, 인버터(21)를 구비하고 있다. 데이터변환부(5)에는, 시프트레지스터(4)의 상위 5비트에서 MSB를 제외한 4비트가 입력되고, 인버터(21)가, 그 입력되는 4비트(log2 n)의 값을 반전한다. 그리고 인버터(21)의 출력 4비터의 MSB에 1비트의 값 "0" 을 부가한 5비트의 값이, 바렐시프터(3)에 시프트비트수를 표시하는 제어신호로서 출력된다.
도 4는 바렐시프터(3)의 동작 사양을 설명하기 위한 것이고, 바렐시프터(3)는 데이터변환부(5)에서 출력되는 5비트의 제어신호에 따라, 도 4에 도시한 바와 같이, 입력신호를 시프트하여 출력하는 시프트동작을 수행한다.
어드레스변환부(7)는, 도 5에 도시한 바와 같이 구성되고, 어드레스레지스터(6)의 출력 16비트와, 시프트레지스터(4)의 MSB가 입력된다. 어드레스변환부(7)는, 어드레스레지스터(6)의 출력에 있어서의 상위 15비트를 그대로 데이터메모리(1)에 출력하고, 어드레스레지스터(6)의 출력의 LSB와 시프트레지스터(4)의 MSB값의 어느것인가를 선택하여, 데이터메모리(1)에 공급하는 어드레스의 LSB로 하여 출력한다.
도 3의 (A),(B)는, 16비트폭의 데이터메모리(1)에 패스셀렉트신호가 저장되어 있는 모양을 보이고 있다. 시점(t)의 패스셀렉트신호 PSt[i], (i=031) 계 32비트는, 도3(A)에 도시한 바와 같이 16비트폭의 데이터메모리(1)에 2워드로 하여 저장되어 있다. 즉, 어드레스 "2t+0"에 PSt[15:0]이 저장되고, 어드레스 "2t+1"에 PSt[31:16]이 저장되어 있다.
여기서 주의해야 할 점은, 상태를 보이는 숫자(i)의 값을 5비트의 2진수로 표시한 경우, 그 MSB가 0인 때(i=015)에는, 대응하는 PSt[i]가 데이터메모리(1)의 어드레스 "2t+0"에 저장되어 있고, 그 MSB가 1인 때(i=1631인 때)에는, 대응하는 PSt[i]가 데이터메모리(1)의 어드레스 "2t+1"에 저장되어 있는 것이다. 이 실시예의 어드레스변환부(7)에 시프트레지스터(4)의 MSB가 입력되는 것은, 다음과 같은 이유에서 이다. 이하에서 설명하는 바와 같이 트레이스백처리의 과정에서, 시프트레지스터(4)의 상위 5비트에는 상태를 보이는 숫자 i가 저장되고, 시프트레지스터(4)의 MSB가, 어드레스 "2t"의 +0인가 +1인가를 지정하는 어드레스정보를 부여한다.
복호데이터 Y[j],(j=0{n-1})는, 16비트를 1워드로 하여 데이터메모리(1)에 저장한다.
트레이스백 조작에는, 어드레스발생부(10)가, 어드레스레지스터(6)에 저장된 값을 출력한 후, 그 값에 증분레지스터(9)의 증분값을 가산하여 어드레스fp지스터(6)에 재저장한다는 동작을 반복하는 것에 의하여, "2t+0"에 상당하는 어드레스를 순차적으로 출력한다. 어드레스변환부(7)는, 시프트레지스터(4)의 MSB가 0인 때에는 "2t+0"를, 또한 시프트레지스터(4)의 MSB가 1인 때에는"2t+1"을 어드레스로하여 데어터메모리(1)에 공급한다.
데이터메모리(1)는, 어드레스변환부(7)에서 출력되는 어드레스에 의하여 패스메모리를 읽어낸다. 이 패스메모리는 바렐시프터(3)에 입력되고, 바렐시프터(3)는 데이터변환부(5)의 제어신호에 따라 읽혀진 패스메모리 가운데 선택된 패스셀렉트신호를 MSB로 시프트한다. 그리고 이러한 MSB가 시프트레지스터(4)에 입력된다.
이 때 시프트레지스터(4)에 저장되어 있는 상위 5비트는, 하나 전의 선택된 상태를 보이고 있다. 이러한 상위 5비트 내의 MSB는 다음 어드레스에 있어서의 "+0" 또는 "+1"을 지정하기 위하여 어드레스변환부(7)로 출력되고, 또한 남은 4비트는 데이터변환부(5)에 출력되어 반전된다. 이 반전된 4비트의 값은 2워드로 나누어져 저장된 패스메모리의 하나의 워드에 있어서, 하나 전에 선택된 상태에 대응하는 패스셀렉트신호를 MSB로 시프트하기 위하여 필요한 시프트수를 보이고 있다.
이러한 과정을 반복하는 것에 의하여, 시프트레지스터(4)에는, 복호데이터로 되는 선택된 패스셀렉트신호가 순차적으로 저장되고, 그들이 소정 비트수 저장되면 데이터메모리(1)에 이송된다.
다음에 트레이스백의 동작을 단계로 나누어 설명한다.
제1단계: 어드레스레지스터(6)에, 초기값으로서 "0"을 저장한다.
제2단계: 증분레지스터(9)에, 고정값 "2"를 저장한다.
제3단계: 상태 0에서 시작하기 위하여, 고정값 "0"을 시프트레지스터(4)에 로드하여 저장한다.
다음의 제4단계와 제5단계에 있어서 j의 값을 {(n-1)+5}에서 5까지 다운카운트하면서 n회 반복한다.
제4단계: 어드레스발생부(10)는, 어드레스레지스터(6)의 값을 어드레스변환부(7)에 출력함과 같이, 어드레스레지스터(6)의 값을, 가산기(8)로 증분레지스터(9)의 값을 가산하여, 어드레스레지스터(6)에 재저장하고 갱신한다. 어드레스변환부(7)는, 입력된 어드레스레지스터(6) 값의 상위 15비트는 그대로 데이터메모리(1)에 출력됨과 같이 시프트레지스터(4)의 MSB의 값을 선택하여, 데이터메모리(1)에 공급하는 어드레스의 LSB로서 출력한다. 데이터메모리(1)는 어드레스변환부(7)에서 출력되는 어드레스에서 패스메모리PM[i]를 읽어내고, 버스(2)를 통하여 바렐시프터(3)에 출력한다. 바렐시프터(3)는 데이터변환부(5)의 출력의 5비트가 지정하는 시프트비트수 만큼 시프트하여 바렐시프터(3)의 출력 MSB를 시프트레지스터(4)에 시프트입력한다(선택된 패스셀렉트신호가 최상위 비트(MSB)에 접근한다. 여기서 시프트입력후의 시프트레지스터(4)의 상위[K-1]비트(=5비트)가 하나 전의 상태를 보이는 것으로 된다. 더욱이 상위 [K-1]비트의 반전이, 다음 패스셀렉트신호를 선택하기 위한 시프트비트수의 기초로 된다.)
제5단계: 16비트가 복호될 때마다 시프트레지스터(4)의 내용을 데이터메모리(1)에 1회 격납한다.(선택되고 시프트레지스터(4)에 격납된 패스셀렉트신호가, 복호데이터로 된다).
이상과 같이, 본 실시예의 연산처리장치에서는 n비트의 정보비트에 대한 비터비복호의 트레이스백의 처리를 {n+(n/2K-1)+3} 단계에서 실행하는 것이 가능하다.이 때, 제4단계에서, 어드레스발생부(6)와 어드레스변환부(7)가 시프트레지스터(4)의 값에 대응하는 어드레스를 데이터메모리(1)에 공급하는 것이어서, 시점(t)의 패스셀렉트신호 Pst[i]가, 도 3에 도시한 바와 같이 데이터메모리(1)의 복수의 워드로 나누어서 저장되고 있는 경우에도, 효율적으로 트레이스백 처리를 수행하는 것이 가능하다.
그리고 지금까지의 설명에서는 시프트레지스터(4)의 상위 5비트 내의 MSB를 어드레스변환부(7)로 출력하고 남은 4비트가 데이터변환부(5)로 출력되는 것으로 설명되고 있지만, 시프트레지스터(4)의 상위 5비트를 어드레스변환부(7)로 출력하고, 어드레스변환부(7)가 그 내부의 MSB를 어드레스변환부(7)로 출력하고 남은 4비트의 반전을 행하고 MSB에 0을 부가하도록 구성하는 것도 가능하다.
또한 지금까지의 설명에 있어서는, 구속길이가 6의 경우의 예를 보이고 있지만, 구속길이가 그 이외의 수로 되어도, 그것에 대한 변경을 적절하게 실시하는 것으로 동일하게 실시하는 것이 가능하다. 예를 들면 구속길이 K=7인 경우 도 3의 (B)에 도시한 바와 같이 시점(t)의 패스셀렉트신호 PSt[i]를 4개의 워드로 분할하여 데이터메모리(1)에 저장한다. 이 경우 시프트레지스터(4)의 상위 6비트 내의, 상위 2비트를 어드레스의 특정에 사용하고 남은 4비트를, 다음의 패스셀렉트신호를 선택하기 위한 시프트비트수의 기초로 사용한다.
제2실시예
본 발명의 제2실시예에 의한 연산처리장치는, 파이프라인 구조의 연산처리에 적절한 구성을 구비하고 있다.
이러한 장치는, 도 6에 도시한 구성을 구비한다. 그리고 장치의 제1실시예(도 1)와 상이한 점은 다음의 세가지 점에서 이다.
제1차이점은, 데이터변환부(5)의 시프트레지스터(4)와의 접속관계이다. 데이터변환부(5)에, 제1실시예와는 달리 시프트레지스터(4)의 MSB를 포함하는 상위 4(log2 n) 비트가 입력하도록 접속되어 있다.
제2차이점은, 어드레스변환부(7)와 시프트레지스터(4)의 접속관계이다. 이러한 실시예는, 어드레스변환부(7)에 시프트레지스터(4)의 MSB가 아닌, MSB에서 세어서 4비트째, 즉 비트12의 값이 입력되도록 접속되어 있다.
제3차이점은, 데이터메모리(1)에 격납된 패스셀렉트신호의 비트 배열이고, 데이터메모리(1)에는 도 7의 (A)에 도시한 바와 같이 시점(t)의 패스셀렉트신호 PSt[i],(i=031) 계 32비트 내, PSt[i](i=짝수)가 어드레스 "2t+0"에, PSt[i],(i=홀수)가 어드레스 "2t+1"에 저장되어 있다.
여기서 주목해야 할 점은, 상태를 표시하는 숫자 i의 값을 5비트의 2진수로 표시한 때, 그 MSB가 아닌 LSB가 0인 경우(i=짝수의 때)는, 대응하는 PSt[i]가 데이터메모리(1)의 어드레스 "2t+0"에 저장되고, 그 LSB가 1인 때(i=홀수의 때)는, 대응하는 PSt[i]가 데이터메모리(1)의 어드레스 "2t+1"에 저장되어 있는 것이다. 이러한 실시예에 있어서, 시프트레지스터(4)의 MSB가 어드레스변환부(7)에 입력되어 있지 않는 것은 이 때문이다.
시프트레지스터(4)의 MSB에서 세어서 5비트째가 아닌 4비트째의 데이터가 어드레스변환부(7)에 입력되록 접속되어 있는 것은 다음과 같은 이유에서 이다.
본 실시예에 의한 연산처리장치는, 도 8에 도시한 바와 같이 파이프라인 구조에 의한 동작을 수행한다. 예를 들면 명령 #1에 있어서 싸이클 n+1로 시프트 실행하기 위해서는, 미리 싸이클 n의 선두에서 데이터메모리(1)에 어드레스를 공급하여 메모리억세스를 수행할 필요가 있다. 싸이클 n+1에서 시프트 실행하는 데이터가 들어있는 데이터메모리(1)의 어드레스의 LSB는, 싸이클 n을 실행한 시점에서 시프트레지스터(4)의 MSB에서 세어서 4비트째에 위치하고 있다. 따라서 시프트레지스터(4)의 MSB에서 세어서 5비트째가 아닌, 4비트째가 어드레스변환부(7)에 접속되어 있다.
시프트레지스터(4)에 저장되어 있는 상위 5비트는, 하나 전에 선택된 상태를 보이고 있고, 그 내의 상위 4비트를 반전시킨 값은, 패스셀렉트신호를 짝수와 홀수로 나누어서 격납한 패스메모리의 하나의 워드에 있어서, 하나전에 선택된 상태에 대응하는 패스셀렉트신호를 MSB로 시프트하기 위하여 필요한 시프트수를 보이고 있다.
그리고 복호된 데이터 Y[j], (j=0{n-1})은, 16비트를 1워드로 하여 데이터메모리(1)에 저장한다.
본 실시예에 의한 장치는 이와 같은 구성을 가지는 것에 의하여 도 8에 도시한 바와 같은 파이프라인구조의 연산처리를 수행하는 경우에도 제1실시예와 동일한 처리단계에 의하여 트레이스백 처리를 수행하는 것이 가능하다.
다음에 트레이스백의 동작을 단계로 나누어 설명한다.
제1단계: 어드레스레지스터(6)에, 초기값으로서 "0"을 저장한다.
제2단계: 증분레지스터(9)에, 고정값 "2"를 저장한다.
제3단계: 상태 0에서 시작하기 위하여, 고정값 "0"을 시프트레지스터(4)에 저장한다.
다음의 제4단계와 제5단계에 있어서, j의 값을 {(n-1)+5}에서 5까지 다운카운트하면서 n회 반복한다.
제4단계: 어드레스발생부(10)는, 어드레스레지스터(6)의 값을 어드레스변환부(7)에 출력함과 같이, 어드레스레지스터(6)의 값을, 가산기(8)에서 증분레지스터(9)의 값과 가산하여, 어드레스레지스터(6)에 재저장하여 갱신한다. 어드레스변환부(7)는 입력된 어드레스레지스터(6)의 상위 15비트는 그대로 데이터메모리(1)에 출력함과 같이 시프트레지스터(4)의 MSB에서 4비트째의 값을 선택하여, 데이터메모리(1)에 공급하는 어드레스의 LSB로 출력한다. 데이터메모리(1)는, 어드레스변환부(7)에서 출력되는 어드레스에서 패스메모리PM[i]를 읽어내고, 내부의 래치(도시 생략)에 저장한다.
제4 '단계: 데이터메모리(1)는, 내부의 래치의 값을 버스(2)를 통하여 바렐시프터(3)에 출력한다. 바렐시프터(3)는 데이터변환부(5)의 출력의 5비트가 지정하는 시프트비트수 만큼 시프트하여, 바렐시프터(3)의 출력의 MSB를 시프트레지스터(4)에 시프트입력한다(선택된 패스셀렉트신호가 최상위 비트(MSB)에 근접한다. 여기서 시프트입력후의 시프트레지스터(4)의 상위 [K-1]비트(=5비트)가 하나 전의상태를 보이는 것으로 된다. 더욱이 상위 [K-1]비트의 반전이 다음의 패스셀렉트신호를 선택하기 위한 시프트비트수의 기초로 된다).
제5단계: 16비트 만큼 복호되는 것에 대하여 1회, 시프트레지스터(4)의 내용을 데이터메모리(1)에 저장한다(선택되고, 시프터레지스터(4)에 저장된 패스셀렉트신호가, 복호데이터로 된다).
상기 제4단계와 제4 '단계는, 도 8의 파이프라인 구조에 있어서 메모리억세스의 싸이클과 시프트실행의 싸이클와 각각 대응하기 때문에 1단계로 실행되고 있는 것처럼 보인다.
이상과 같이 본 실시예에 의한 연산처리장치는, 패스셀렉트신호 PSt[i],(i=031) 계 32비트를 짝수와 홀수로 나누어서 데이터메모리(1)에 저장하고 있어서, 연산처리를 파이프라인 실행하는 경우에도, 읽어내는 패스메모리의 워드를, 하나 전의 싸이클 시점에서 지정하는 것이 가능하게 되고, 제1실시예와 동일한 처리단계에서, 효율적으로 트레이스백의 파이프라인처리를 수행하는 것이 가능하다.
어드레스변환부(7)와 시프트레지스터(4)의 접속관계는, 파이프라인 구조의 상위에 의하여 설계변경이 가능하다. 또한 데이터메모리(1)에 저장되는 패스셀렉트신호의 비트배치는, 컨벌류션부호의 구속길이(K)의 값에 수반하여 변화할 수 있다. 예를 들면 구속길이K=7의 경우는, 도 7의 (B)에 도시한 바와 같이, 상태를 보이는 수(i)의 값의 하위 2비트가, 저장되어 있는 어드레스를 결정하도록 배치되면 충분하다. 이 때 어드레스변환부(7)는, 도 9에 도시한 바와 같이시프트레지스터(4)의 해당하는 2비트의 값을 입력하여 어드레스변환하도록 설계하여도 된다.
이상과 같이 본 실시예는, 복호하는 컨벌류션부호의 구속길이(K)나 연산처리장치의 파이프라인 동작구조에 적절하도록, 여러 가지 설계변경하는 것이 가능하게 된다.
제3실시예
본 발명의 제3실시예의 연산처리장치는, 비터비복호에 있어서 트레이스백 처리 뿐만 아니라, ACS(Add, Compare, Select) 연산, 즉 가산, 비교, 선택 연산을 효율적으로 수행하는 것이 가능하다.
이 장치는 도 10에 도시한 바와 같이 제1실시예(도 1 참조)와 동일한 1에서 10까지의 구성 이외에, 데이터메모리(1)와 같이 비터비 복호처리에 있어서 패스메트릭값을 기억하는 데이터메모리(11)와, 브랜치메트릭의 값을 기억하는 레지스터파일(20)과, 데이터메모리(1,11)에 기억된 패스메트릭의 값과 레지스터파일(20)에 기억된 브랜치메트릭의 값을 사용하여 비터비복호처리에 있어서의 ACS연산을 수행하는 ACS연산부(13)와, 데이터메모리(1)에 접속되어 데이터의 전송을 수행하는 버스(12)를 구비한다.
ACS연산부(13)는, 도 11에 도시한 바와 같이 버스(2,12)에 출력되는 패스메트릭의 값과 레지스터파일(20)에서 출력되는 브랜치메트릭의 값을 가산하는 가산기(14,15)와, 가산기(14,15)의 각각에서 출력되는 가산결과의 대소 비교를 행하고, 비교결과를 표시하는 제어신호1비트를 시프트레지스터(4)와 후술하는셀렉터(19)에 출력하는 비교기(16)과, 가산기(14,15)의 각각에서 출력되는 가산결과를 일시 기억하는 레지스터(17,18)과, 비교기(16)에서 출력하는 제어신호에 따라, 레지스터(17,18)에 저장된 2개의 가산결과 가운데, 작은쪽의 값을 선택하여 패스(2 또는 12)에 출력하는 셀렉터(19)를 구비하고 있다.
다음에는 본 실시예의 연산장치에 있어서, ACS연산을 수행하기 위한 동작에 대하여 설명한다.
데이터메모리(1)에는, 도 17에 도시한 바와 같이, 패스메트릭(A)의 값을 포함하는 패스메트릭의 값이 저장되어 있다. 레지스터파일(20)에는 브랜치메트릭(x,y)의 값을 포함하는 브랜치메트릭의 값이 저장되어 있다.
ACS연산부(13)의 가산기(14)는, 데이터메모리(1)에서 버스(2)를 통하여 읽혀진 패스메트릭(A)의 값과 레지스터파일(20)에서 읽혀진 브랜치메트릭(x)의 값을 가산하여, 가산결과를 비교기(16)에 출력함과 동시에, 레지스터(18)에 저장한다. 가산기(15)는, 데이터메모리(11)에서 버스(12)를 통하여 읽혀진 패스메트릭(B)의 값과 레지스터파일(20)에서 읽혀진 브랜치메트릭(y)의 값을 가산하여, 가산결과를 비교기(16)에 출력함과 같이 레지스터(17)에 저장한다.
비교기(16)는, 가산기(14)에서 출력된 가산결과가 다른측의 가산기(15)에서 출력되는 값보다도 작은 경우에는 "0", 가산기(15)에서 출력된 가산결과가 다른측의 가산기(14)에서 출력된 값보다 작으면 "1"로 되는 제어신호 1비트를 시프트레지스터(4)와 셀렉터(19)에 출력한다.
셀렉터(19)는, 이러한 제어신호의 값이 "0"의 경우에는 레지스터(18)을 선택하고, 제어신호 값이 "1"인 경우에는 레지스터(17)을 선택하여 버스(2 또는 12)를 통하여 각 레지스터에 저장되어 있는 값을 데이터메모리(1 또는 11)에 저장한다.
시프트레지스터(4)는, 비교기(16)에서 출력되는 제어신호, 즉 패스셀렉트신호를 1비트씩 시프트하면서 저장한다.
이상에서 설명한 동작이 일회분의 ACS연산 처리이다.
예를 들어 복호하는 컨벌류션부호의 구속길이 K=6의 경우는, 이상의 처리를 32회 반복시키면, 수신계열 1심벌분의 ACS연산을 행하는 것이 가능하다. 이 때, 전반(前半)의 16회까지는 셀렉터(19)는 그 출력을 데이터메모리(1)에 저장한다. 그리고 시프트레지스터(4)에 저장된 패스셀렉트신호는 버스(2)를 통하여 데이터메모리(1)에 저장된다. 계속하여 후반의 16회의 ACS연산에서는 셀렉터(19)는 그 출력을 버스(12)를 통하여 데이터메모리(11)에 저장한다. 시프트레지스터(16)에 저장된 후반의 패스셀렉트신호 16비트는, 버스(2)를 통하여 데이터메모리(1)에 저장된다.
이와 같이 하는 것에 의하여, 패스셀렉트신호는, 데이터메모리(1)에, 도 3의 (A)에 도시한 바와 같이 저장된다. 이러한 수신계열 1심벌분의 ACS연산을, 수신계열n 심벌분만큼 반복한다.
다음에 제1실시예에서 설명한 과정에 따라서, 트레이스백의 처리를 수행하면, 비터비복호처리를 수행할 수 있게 된다.
이상에서 설명한 바와 같이, 본 실시예에 의한 연산처리장치는, 시프트레지스터(4)가 ACS연산시에 ACS연산부(13)가 출력하는 패스셀렉트신호를 1 비트씩 순차적으로 기억하여 가는 것이어서, 트레이스백 처리뿐만 아니라 ACS연선처리도 효율적으로 수행하는 것이 가능하다. 또한 시프트레지스터(4)를 ACS연산시와 트레이스백 처리시에 겸용할 수 있기 때문에 이러한 연산처리장치를 LSI로 실현하는 경우에, 그 칩면적을 저감하여 코스트 다운을 도모할 수 있다. 또한 실행 단계가 작게 되는 것에 의하여 동작주파수를 작게할 수 있어서, 연산처리장치 전체를 저소비전력화하는 것이 가능하다.
제4실시예
제4실시예의 연산처리장치는, 비터비 복호의 ACS연산에 의하여 도 7의 (A)에 도시한 패스셀렉트신호의 저장을 가능하게 하는 것이다.
이러한 장치는, 도 12에 도시한 바와 같이, ACS연산부(13)가 출력하는 패스셀렉트신호를 저장하는 제2시프트레지스터(21)를 구비한다. 그외의 다른 구성은 제3실시예(도 10 참조)와 동일하다.
본 실시예에 의한 장치는, 패스셀렉트신호를 저장하는 처리 이외에 대해서는, 제3실시예와 완전히 동일한 동작을 행한다. 패스셀렉트신호를 저장하는 처리는, 다음과 같이 수행된다.
예를 들면 복호하는 컨벌류션부호의 구속길이 K=6의 경우에는, 제3실시예에서 설명한 ACS연산의 동작을 32회 반복하지만, 이 때 ACS연산부(13)가 출력하는 패스셀렉트신호를 시프트레지스터(4)와 시프트레지스터(21)에서 교대로 1비트씩 저장하여 간다. 즉 짝수회수의 경우는 패스셀렉트신호를 시프트레지스터(4)에 저장하고, 홀수회수 시에는 패스셀렉트신호를 시프트레지스터(21)에 저장한다. 32회의ACS연산이 종료한 후에, 최후에 시프트레지스터(4)와 시프트레지스터(21)에 저장된 패스셀렉트신호를, 순차적으로 버스(2)를 통하여 데이터메모리(1)에 저장한다.
이 때, 패스셀렉트신호는 도 7의 (A)에 도시한 바와 같이 저장된다. 따라서 수신계열 1심벌분의 ACS연산을, 수신계열 n심벌분만큼 반복한 후, 제2실시예에서 설명한 과정을 따라, 트레이스백처리를 실행하고, 비터비 복호처리를 행하는 것이 가능하다.
상술한 바와 같이 본 실시예에 의한 연산처리장치에는, 시프트레지스터(4)와 시프트레지스터(21)이 ACS연산시에, ACS연산부(13)가 출력하는 패스셀렉트신호를 1비트씩 상호 기억하여 가기 때문에, 제2실시예에서 보인 파이프라인 구조를 구비하는 프로세서 있어서도 트레이스백 처리 뿐만 아니라 ACS연산처리도 효율적으로 수행하는 것이 가능하다.
또한 시프트레지스터(4)를 ACS연산시와 트레이스백 처리시에서 겸용가능하기 때문에, 장치의 LSI화를 도모함과 같이 그 칩면적을 작게하여 코스트를 저감하는 것이 가능하다. 또한 실행 단계가 작게되는 것에 의하여 동작 주파수를 작게할 수 있어서, 연산처리장치 전체의 저소비전력화를 도모할 수 있다.
본 실시예에 있어서, 시프트레지스터(4)와 시프트레지스터(21)의 2개의 것을 설치하고 있지만, 시프트레지스터의 개수는 더욱 증가시켜도 좋다. 예를 들면 시프트레지스터를 4개 설치하면, 복호하는 컨벌류션부호의 구속길이 K=7의 경우 ACS연산시에 패스셀렉트신호를 4개의 시프트레지스터에 순차적으로 1비트씩 저장하여 가도록 하여, 최후에 데이터메모리(1)에 순차적으로 저장하면, 패스셀레트신호는도 7의 (B)에 도시한 바와 같이 저장된다.
제5실시예
본 발명의 제5실시예에 의한 연산처리장치는, 제3실시예 또는 제4실시예의 ACS연산부의 가산기를 개량한 것이다.
본 실시에에 의한 장치는, ACS연산부(13)가 32비트폭의 가산기(22)를 구비하고 있고, 4개의 데이터의 가산을 각각 상위측과 하위측에서 동시에 병렬적으로 실행한다. 따라서 기능적으로는 도 11에 도시한 구성과 동일한 동작을 수행하는 것이 가능하다. 즉 16비트의 가산기 2개로서 동작시키는 것이 가능하게 되는 것이다.
상기 가산기(22)는, 도 14에 도시한 바와 같이 내부에 32개의 전가산기(full adder)를 구비하고, 전가산기의 각각이, 대응하는 비트 031의 가산을 실행한다. 비트0의 전가산기는, 입력 X[0]와 입력 Y[0]를 가산하여 캐리없는 합 0과 캐리신호 Ci[0]을 출력하고, 비트 31의 전가산기는, 입력X[31]과 입력Y[31]와 전단의 캐리신호Ci[30]을 가산하여, 캐리없는 합0[31]을 출력하고 또한 비트 130의 전가산기는, 입력X와 입력Y와 전단의 캐리신호 Ci를 가산하여 캐리없는 합0과 캐리신호 Ci를 출력한다.
그 내부에 비트15의 전가산기에서 출력된 캐리신호Co[15] 만은, AND회로에 입력되고, 상기 AND회로를 통하여 다음단의 비트16의 전가산기에 캐리신호Ci[15]로서 출력된다. AND회로에는, 제어부(도시 생략)에서의 제어신호도 입력되어 있고,상기 제어신호에 의하여 캐리신호의 다음단으로의 전송을 금지할 수 있도록 구성되어 있다.
기능적인 면에서는, 비트 015까지의 16비트분의 전가산기가, 도 11에 있어서의 가산기(14)에 상당하고, 비트 1631까지의 16비트분의 전가산기가 도 11에 있어서의 가산기(15)에 상당한다.
ACS연산을 수행하는 때는, AND회로에 입력되는 제어신호의 값이 0으로 되고, 비트15의 전가산기에서 출력되는 캐리신호의 전송이 금지된다. 이 때에는 제3 또는 제4실시예의 것과 온전히 동일한 동작으로 비터비 복호를 수행하는 것이 가능하다.
또한 그 제어신호를 1로 한 경우에는, 가산기(22)는, 통상의 32비트의 가산기로서 동작한다. 통상 DSP는, 어큐큘레이터로서 누적가산기로서 32비트 이상의 비트폭의 가산기가 설치되고 있지만, 이러한 가산기(22)는 그 누적가산기로서도 사용될 수 있다.
이와 같이, 본 실시예에 의한 연산처리장치에서는 트레이스백 처리만이 아니라 ACS연산처리도 효율적으로 수행할 수 있고, 더욱이 탑재되어 있는 가산기(22)를, 비터비 복호용 및 누적가산용으로 겸용할 수 있다.
따라서 연산처리장치를 LSI를 사용하는 경우에, 그 칩면적을 삭감하여 코스트를 저감하는 것이 가능하게 된다.
제6실시예
도 19는, 상술한 제1 내지 제5실시예의 하나의 연산처리장치를 사용하는 디지털 신호 프로세서(DSP)를 보이는 블럭다이어그램이다. 본 실시예에 의하면 DSP(60)는, 상술한 제1 내지 제5실시예에 의한 하나의 연산처리장치(61)와; 상기 연산처리장치에 연결되는 다중어큐뮬레이트 연산부(MUlti-accumulate calaulation portion)와; 상기 연산처리장치(61)에 연결되는 하나의 입출력부(63); 그리고 상기 연산처리장치(61), 다중어큐뮬레이트 연산부(60), 그리고 입출력부(63)을 제어하는 제어부(64)로 구성된다.
본 발명의 제6실시예에 의하면, 상기 DSP는, 데이터메모리와 버스의 비트폭의 확장 없이 비터비복호를 위한 트레이스백 처리를 신속하고 효율적으로 수행할 수 있게 된다.
제7실시예
도 20는, 상술한 제1실시예 내지 제5실시예에 의한 연산처리장치에서, DSP를 이용하는 무선 이동국을 보이는 블럭다이어그램이다.
도 20에 도시한 바와 같이, 무선 이동국장치는: 안테나부(710), 무선부(720), 신호의 부호화 및 복호화를 위한 DSP(740)을 구비하는 베이스밴드신호처리부(730)와, 제어부(760), 스피커(751), 마이크로폰(752), 데이터입출력부(753), 디스플레이부(754), 그리고 동작부(755)을 포함하여 구성된다. 무선부(720)는, 안테나부(710)에서의 수신신호를 수신하여, 베이스밴드 신호처리부(730)와 상기 베이스밴드 신호 처리부에서 전송신호를 수신하여 안테나부(710)으로 전송신호를 보낸다. 상기 베이스밴드신호처리부(730)는, 상기수신부(721)에서의 수신신호를 복조하는 복조부(731)와, 전송신호를 변조하는 변조부(735)와, 부호화 및 복호화를 수행하는 DSP(740)를 포함한다. 상기 DSP(740)는 타이밍제어부(741)와, 비터비복호부(742), 컨벌류션복호부(743), 그리고 음성코덱부(Voice Codec Portion)를 포함한다.
제어부(760)은 안테나부(710)와, 무선부(720), 베이스밴드신호처리부(730), 디스플레이부(754), 동작부(755) 등을 제어하여, 무선이동국 장치의 전반적인 동작을 제어하고 있다. 예를 들어 제어부(760)는, 동작부(760)에서 입력되는 신호가 상기 디스플레이부(754)에 디스플레이되도록 제어하고, 상기 동작부에서 입력되는 신호에 대하여 콜전송(call transmission)과 수신동작을 수행하기 위한 제어신호는 안테나부(710)와, 무선부(720), 베이스밴드신호처리부(730) 등에 통신시퀀스에 따라 출력된다.
상술한 무선이동국 장치(700)는, 본 발명의 제1실시예 내지 제5실시예에 의한 연산처리장치 또는 제6실시예에 의한 DSP에 의한 처리장치의 적어도 한 부분에 의하여 실현될 수 있다.
상술한 무선이동국 장치의 전송동작을 설명한다.
음성통신이 수행되면, 마이크로폰에서 입력되는 음성신호는 아날로그 대 아날로그 변환을 거쳐서 상기 DSP(740)의 코덱부(744)에 의하여 부호화된다. 부호화된 데이터는 컨벌류션 코딩부(743)으로 입력된다. 데이터 통신이 수행되면, 외부에서 입력되는 데이터는 데이터입출력부(753)을 통하여 컨벌류션 코딩부(743)로 입력된다.
컨벌류션 코딩부(743)는 입력데이터를 컨벌류션 부호화하고 부호화된 데이터를 출력한다.
타이밍제어부(741)는, 입력데이터를 다시 어fp인지하고 전송출력의 타이밍을 조정하여 변조부(735)로 출력한다.
변조부(735)에서 디지털변조된 데이터는 D/A변환을 거친다. 다음에 무선부(720)의 전송부(722)로 출력된다.
전송부(722)는 상기 신호를 무선신호로 변환하여 안테나부로 전송하여 신호가 전기파로서 방사된다.
다음에 수신부에 대하여 설명한다. 상기 안테나부(710)에 의하여 수신되는 전기파는 상기 무선부(720)의 수신부(721)에 의하여 수신되고, A/D변환을 거쳐 베이스밴드신호처리부의 변조부(731)에 출력된다. 상기 복조부(731)에 의하여 복조된 데이터는 정리되고 비터비복호부(742)로 입력된다.
음성통신이 수행되면, 상기 비터비복호부(742)에서 복호된 데이터는 음성코덱부(744)에 의하여 음성복호되고, 다음에 상기 스피커(751)을 통하여 음성으로 출력되기 위하여 D/A변환된다. 한편 데이터 통신이 수행되면, 데이터는 상기 데이터입출력부(753)을 통하여 외부로 출력된다.
도 21는 본 발명에 의한 무선이동국장치의 변형예를 보이고 있다. 이러한 무선이동국장치에 있어서, 확산부(spreading portion)(737)는 변조부(735) 내에 준비되고, 축소부(despreading portion)(733)는 복조부(731) 내에 준비된다. 확산부(735)와 축소부(733)가 준비되어 있기 때문에 CDMA통신이 가능하게 된다.
도 22는, 디지털신호프로세서(DSP)를 사용하는 무선기지국장치의 블럭다이어그램을 도시하고 있으며, 본 발명에 의한 연산처리장치가 사용된다.
도 22에 도시한 무선기지국장치는 안테나부(810)와, 무선부(820), 신호의 부호화 및 복호화를 위한 DSP(840)을 구비하는 베이스벤드신호처리부(830), 제어부(860), 그리고 데이터입출력부(853)을 구비하고 있는 점에서 동일한 구조를 가지고 있다.
무선기지국장치의 안테나부(810)는, 오직 수신을 위한 수신안테나(811)와, 오직 전송을 위한 전송안테나(812)로 구성된다.
도 23은 본 발명에 의한 무선기지국장치의 다른 변형예를 보인다. 본 실시예에 의한 무선기지국장치에서는, 확산부(837)가 변조부(835) 내에 준비되고 축소부(833)가 복조부(831) 내에 준비된다. 이러한 확산부(835)와 축소부(833)가 제공되기 때문에 CDMA통신이 가능해 진다.
본 발명이 속하는 기술분야에서 통상의 기술자에게는 자명한 바와 같이, 본 발명에 의한 연산처리장치는 데이터메모리와 버스의 비트폭의 확장 없이도 비터비복호를 위한 트레이스백 처리를 신속하고 효율적으로 수행할 수 있다.
더욱이 ACS연산에 의하여 얻어지는 패스셀렉트신호를 시프트레지스터로 입력하기 위한 타입의 장치는, 효율적이면서도 내부연결방법을 통하여, 회로의 확장 없이 ACS연산과 비터비복호를 위한 트레이스백처리를 수행하는 것이 가능해진다.
이렇게 ACS연산에 사용되는 가산기를 공통적으로 사용할 수 있는 유니트는효과적으로 회로를 사용할 수 있게 된다.
상술한 장치는, LSI가 유니트를 완성하기 위하여 사용되는 경우 칩의 면적을 줄이는 것이 가능하게 된다. 따라서 제조경비의 저감과 소비전력의 저감이 실현될 수 있다.
더욱이 상술한 연산장치는 DSP를 형성하기 위하여 사용될 수 있다. 또한 만약 DSP프로세서가 무선이동국 또는 무선기지국장치를 만들기 위한 에러정정회로로서 사용되면, 통신의 신호처리에서 비터비복호를 위한 트레이스백처리를 신속하고도 효율적으로 수행할 수 있게 된다.

Claims (15)

  1. /
    패스셀렉트신호가 동시에 복수개의 그룹으로 분할되도록 패스셀렉트 신호를 저장하는 데이터메모리와;
    상기 데이터메모리에서 읽혀진 데이터를 시프트하는 바렐시프터와;
    상기 바렐시프터에 의하여 MSB로 시프트된 1비트를 수신하는 시프트레지스터;
    상기 시프터레지스터의 특정 비트위치의 데이터를 변환하여 상기 바렐시프터의 스프트수를 생성하여, 상기 바렐시프터에 의하여 수행되는 시프트수을 생성하기 위한 비터비복호프로세스를 수행하는 데이터변환수단과;
    상기 데이터메모리에서 어드레스를 출력하기 위한 어드레스발생수단; 그리고
    상기 어드레스발생수단에서 출력되는 어드레스와 상기 시프트레지스터의 특정 비트위치값에 기초하여, 상기 데이터메모리에서 읽혀지는 상기 그룹의 어드레스를 생성하는 어드레스변환수단으로 구성되는 연산처리장치.
  2. 제1항에 있어서, 상기 그룹내에 패스셀렉트신호의 각각에 부여되는 첨자가 연속하도록, 상기 패스셀렉트신호가 복수의 그룹으로 분할되고, 상기 어드레스변환수단이 상기 어드레스발생수단에서 출력된 어드레스와 상기 시프트레지스터의 입력단의 비트를 포함하는 소정수의 비트위치값을 이용하여 상기 그룹의 어드레스를 생성하는 연산처리장치.
  3. 제2항에 있어서, 상기 시프트레지스터의 입력단의 비트를 제외한 소정수의 비트위치값을 반전하여 상기 바렐시프터에서의 시프트수를 생성하는 연산처리장치.
  4. 제1항에 있어서, 상기 그룹내에서 상기 패스셀렉트신호의 각각에 부여되는 첨자가 일정한 간격을 갖고 상기 패스셀렉트신호가 복수의 그룹으로 분할되고, 상기 어드레스변환수단이 상기 어드레스발생수단에서 출력되는 어드레스와 상기 시프트레지스터의 입력단의 비트수를 제외한 비트위치값을 이용하여 상기그룹의 어드레스를 생성하는 연산처리장치.
  5. 제4항에 있어서, 상기 데이터변환수단은, 상기 시프트레지스터의 입력단의 비트를 포함하는 소정수의 비트위치값을 반전하여, 상기 바렐시프터에서의 시프트수를 생성하는 연산처리장치.
  6. 제4항에 있어서, 상기 어드레스변환수단은, 그룹의 어드레스의 생성에 필요한 상기 시프트레지스터에서의 값을, 상기 그룹의 하나 전의 그룹이 상기 데이터메모리에서 읽은 시기에 상기 시프트레지스터의 소정 비트위치에서 얻는 연산처리장치.
  7. 제2항에 있어서, 비터비 복호처리에서 가산, 비교, 그리고 선택연산을 수행하는 ACS연산수단을 더 포함하고, 상기 ACS연산수단에서 출력되는 패스셀렉트신호는 상기 시프트레지스터에 순차적으로 저장되고, 상기 그룹의 패스셀렉트신호가 상기 시프트레지스터에 저장된 후에 각 그룹의 패스셀렉트신호는 상기 데이터메모리에 시프트되어 저장되는 연산처리장치.
  8. 제4항에 있어서, 비터비복호처리에서 가산, 비교, 그리고 선택연산을 수행하는 ACS연산수단을 더 포함하고, 상기 ACS연산수단에서 출력된 패스셀렉트신호는 상기 시프트레지스터를 포함하는 복수개의 시프트레지스터에 순차적으로 저장되고, 상기 그룹의 패스셀렉트신호가 상기 시프트레지스터에 저장된 후에, 패스셀렉트신호가 상기 그룹마다 이송되어 상기 데이터메모리에 쉬프트되어 저장되는 연산처리장치.
  9. 제7항에 있어서, 상기 ACS연산수단은 복수개의 전가산기로 구성되는 가산수단을 더 포함하고, 상기 전가산기의 일부분에서 출력되는 캐리신호의 다음의 전가산기로의 전송이 가능해져서 상기 가산수단은 1 또는 2이상의 어큘뮬레이터로 사용가능한 연산처리장치.
  10. 제8항에 있어서, 상기 ACS연산수단은 복수개의 전가산기로 구성되는 가산수단을 더 포함하고, 상기 전가산기의 일부분에서 출력되는 캐리신호의 다음의 전가산기로의 전송이 가능해져서 상기 가산수단은 1 또는 2이상의 어큐뮬레이터로 사용 가능한 연산처리장치.
  11. 동시에 패스셀렉트신호가 복수개의 그룹으로 분할되도록 패스셀렉트신호를 저장하는 데이터메모리와;
    상기 데이터메모리에서 읽혀진 데이터를 시프트하는 바렐시프터와;
    상기 바렐시프터에 의하여 MSB로 시프트된 1비트를 수신하는 시프트레지스터와;
    상기 시프터레지스터의 특정 비트위치의 데이터를 변환하여 상기 바렐시프트의 시프트수를 생성하여, 상기 바렐시프터에 의하여 수행되는 시프트수을 생성하기 위한 비터비복호프로세스를 수행하는 데이터변환수단과;
    상기 데이터메모리에서 어드레스를 출력하기 위한 어드레스발생수단; 그리고
    상기 어드레스발생수단에서 출력되는 어드레스와 상기 시프트레지스터의 특정 비트위치값에 기초하여, 상기 데이터메모리에서 읽혀지는 상기 그룹의 어드레스를 생성하는 어드레스변환수단으로 구성되는 연산처리장치와:
    상기 연산처리장치에 연결되는 다중어큐뮬에이트계산부와:
    외부와의 입출력을 위하여 상기 연산처리장치와 연결되는 입출력부: 그리고
    상기 연산처리장치와 다중어큐뮬레이트계산부와 입출력부를 제어하기 위한 제어부로 구성되는 디지털신호프로세서.
  12. 신호를 송수신하는 안테나부와;
    상기 안테나부의 수신신호를 수신하기 위한 수신부와, 상기 안테나부의 송신신호를 전송하기 위한 전송부를 포함하는 무선부와;
    상기 수신부에서의 수신신호를 복조하는 복조부와, 전송신호를 변조하는 변조부, 그리고 부호화 및 복호화를 수행하는 디지털 신호프로세서를 포함하는 베이스밴드신호처리부;
    상기 안테나부, 상기 무선부, 상기 베이스밴드신호처리부를 제어하기 위한 제어부; 그리고
    외부에 대하여 신호를 입출력하는 입출력부로 구성되는 무선국장치이고:
    상기 베이스밴브신호처리부는;
    패스셀렉트신호가 동시에 복수개의 그룹으로 분할되도록 패스셀렉트신호를 저장하는 데이터메모리와;
    상기 데이터메모리에서 읽혀진 데이터를 시프트하는 바렐시프트와;
    상기 바렐시프터에 의하여 MSB로 시프트된 1비트를 수신하는 시프트레지스터;
    상기 시프터레지스터의 특정 비트위치의 데이터를 변환하여 상기 바렐시프터의 시프트수를 생성하여, 상기 바렐시프터에 의하여 수행되는 시프트수를 생성하기 위한 비터비복호프로세스를 수행하는 데이터변환수단과;
    상기 데이터메모리에서 어드레스를 출력하기 위한 어드레스발생수단; 그리고
    상기 어드레스발생수단에서 출력되는 어드레스와 상기 스프트레지스터의 특정 비트위치값에 기초하여, 상기 데이터메모리에서 읽혀지는 상기 그룹의 어드레스를 생성하는 어드레스변환수단으로 구성되는 연산처리장치를 구비하는 무선국장치.
  13. 제12항에 있어서, 상기 변조부는 확산부를 구비하고, 상기 복조부는 축소부를 구비하여, 상기 무선국은 CDMA(코드분할다중접속) 통신을 수행하는 무선국장치.
  14. 제12항에 있어서, 상기 입출력부를 통한 신호의 입출력은 음성신호이고, 상기 입출력부는, 음성신호를 전기신호로 변환하고, 전기신호를 음성신호로 변환하는 변환수단을 포함하며 상기 무선국장치는 무선이동국장치인 무선국장치.
  15. 제12항에 있어서, 상기 무선국장치는 무선기지국장치인 무선국장치.
KR1019970052945A 1996-10-15 1997-10-15 연산처리장치 KR100439211B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP29120296 1996-10-15
JP96-291202 1996-10-15

Publications (2)

Publication Number Publication Date
KR19980032867A KR19980032867A (ko) 1998-07-25
KR100439211B1 true KR100439211B1 (ko) 2004-10-26

Family

ID=17765789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970052945A KR100439211B1 (ko) 1996-10-15 1997-10-15 연산처리장치

Country Status (5)

Country Link
US (1) US5970097A (ko)
EP (1) EP0837564B1 (ko)
KR (1) KR100439211B1 (ko)
CN (1) CN1094609C (ko)
DE (1) DE69719141T2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3277856B2 (ja) * 1997-08-29 2002-04-22 日本電気株式会社 ビタビデコーダ
JP3900637B2 (ja) * 1997-12-19 2007-04-04 ソニー株式会社 ビタビ復号装置
US6212664B1 (en) * 1998-04-15 2001-04-03 Texas Instruments Incorporated Method and system for estimating an input data sequence based on an output data sequence and hard disk drive incorporating same
US6601215B1 (en) * 2000-02-01 2003-07-29 Agere Systems Inc. Traceback buffer management for VLSI Viterbi decoders
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US6591395B1 (en) * 2000-06-18 2003-07-08 Silicon Integrated Systems Corporation Memory reduction techniques in a viterbi decoder
EP1220455A1 (en) * 2000-12-29 2002-07-03 Motorola, Inc. Viterbi decoder, method and unit therefor
GB2380370B (en) * 2001-09-28 2004-03-03 Motorola Inc Convolutional encoder and method of operation
JP2005045727A (ja) * 2003-07-25 2005-02-17 Matsushita Electric Ind Co Ltd ビタビ復号器
US7275204B2 (en) * 2004-09-30 2007-09-25 Marvell International Ltd. Distributed ring control circuits for Viterbi traceback
US20060068911A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US7506239B2 (en) * 2004-12-23 2009-03-17 Raghavan Sudhakar Scalable traceback technique for channel decoder
US9455799B2 (en) 2013-08-06 2016-09-27 OptCTS, Inc. Dynamic control of quality of service (QOS) using derived QOS measures
US9444580B2 (en) 2013-08-06 2016-09-13 OptCTS, Inc. Optimized data transfer utilizing optimized code table signaling
US10523490B2 (en) 2013-08-06 2019-12-31 Agilepq, Inc. Authentication of a subscribed code table user utilizing optimized code table signaling
WO2016004185A1 (en) 2014-07-02 2016-01-07 OptCTS, Inc. Data recovery utilizing optimized code table signaling
WO2017214060A1 (en) 2016-06-06 2017-12-14 Agilepq, Inc. Data conversion systems and methods

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327526A (ja) * 1992-05-26 1993-12-10 Nec Corp ビタビ復号器
JPH06112848A (ja) * 1992-09-29 1994-04-22 Matsushita Electric Ind Co Ltd ビタビ復号用演算装置
JPH06232918A (ja) * 1993-02-04 1994-08-19 Sony Corp ビタビ復号方法およびその装置
KR960003124A (ko) * 1994-06-23 1996-01-26 가나미야지 준 비터비 복호방법 및 비터비 복호회로
KR0169680B1 (ko) * 1995-12-28 1999-03-20 배순훈 비터비 복호기

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU652896B2 (en) * 1992-09-29 1994-09-08 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus
FR2738427B1 (fr) * 1995-08-31 1997-11-21 Sgs Thomson Microelectronics Decodeur convolutif utilisant l'algorithme de viterbi

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327526A (ja) * 1992-05-26 1993-12-10 Nec Corp ビタビ復号器
JPH06112848A (ja) * 1992-09-29 1994-04-22 Matsushita Electric Ind Co Ltd ビタビ復号用演算装置
JPH06232918A (ja) * 1993-02-04 1994-08-19 Sony Corp ビタビ復号方法およびその装置
KR960003124A (ko) * 1994-06-23 1996-01-26 가나미야지 준 비터비 복호방법 및 비터비 복호회로
KR0169680B1 (ko) * 1995-12-28 1999-03-20 배순훈 비터비 복호기

Also Published As

Publication number Publication date
CN1094609C (zh) 2002-11-20
EP0837564A3 (en) 1999-09-15
EP0837564B1 (en) 2003-02-19
KR19980032867A (ko) 1998-07-25
EP0837564A2 (en) 1998-04-22
DE69719141D1 (de) 2003-03-27
DE69719141T2 (de) 2003-07-24
CN1182909A (zh) 1998-05-27
US5970097A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
KR100439211B1 (ko) 연산처리장치
US6330684B1 (en) Processor and processing method
EP0590597B1 (en) Arithmetic apparatus
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
JPH09232973A (ja) ビタビ復号器
US6337890B1 (en) Low-power-consumption Viterbi decoder
US20040221221A1 (en) CRC operation unit and CRC operation method
WO2005011129A1 (ja) ビタビ復号器
JP4303548B2 (ja) 準固定回路
JP3191442B2 (ja) ビタビ復号用演算装置
JP2000311096A (ja) 演算処理装置
JP3452345B2 (ja) 演算処理装置とその利用装置
JPH10178356A (ja) 演算処理装置及びそれを用いた無線局装置
EP0851591B1 (en) Data processor and data processing method
JP3996858B2 (ja) 演算処理装置
JP3634333B2 (ja) ディジタル信号処理プロセッサ
JP3383661B2 (ja) 演算処理装置

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

Payment date: 20130603

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140611

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150608

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee