KR20010052899A - 데이터 연산 처리 장치 - Google Patents

데이터 연산 처리 장치 Download PDF

Info

Publication number
KR20010052899A
KR20010052899A KR1020007014247A KR20007014247A KR20010052899A KR 20010052899 A KR20010052899 A KR 20010052899A KR 1020007014247 A KR1020007014247 A KR 1020007014247A KR 20007014247 A KR20007014247 A KR 20007014247A KR 20010052899 A KR20010052899 A KR 20010052899A
Authority
KR
South Korea
Prior art keywords
data
scale factor
calculation
group
block
Prior art date
Application number
KR1020007014247A
Other languages
English (en)
Other versions
KR100398859B1 (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 KR20010052899A publication Critical patent/KR20010052899A/ko
Application granted granted Critical
Publication of KR100398859B1 publication Critical patent/KR100398859B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시키는데 적합한 데이터 연산 처리 장치를 제공한다.
데이터 그룹의 각 데이터에 대해 연산을 행하고, 이들 연산 데이터를 대표하는 최소의 스케일 팩터를 그룹 스케일 팩터(GSF)로서 검출하고, 검출한 GSF에 기초하여 각 연산 데이터에 대해 스케일링을 행하는 이들의 처리를, 데이터 블럭의 각 데이터 그룹마다 행하고, 또한 검출한 GSF 중 최소의 것을 블럭 스케일 팩터(BSF)로서 검출하고, 연산 데이터에 대해 재차 연산을 행할 때는, 연산 전에, 데이터 그룹의 각 연산 데이터에 대해 해당 데이터 그룹의 GSF 및 BSF에 기초하여 스케일링을 행한다.

Description

데이터 연산 처리 장치{DATA CALCULATING DEVICE}
디지털 신호 처리에 있어서의 수치 표현 방법으로서, 고정 소수점 표현 또는 부동 소수점 표현이 있다.
부동 소수점 표현에서는, 각 데이터가 지수부와 가수부를 갖고, 이에 따라 높은 정밀도와 넓은 다이내믹 범위가 확보 가능하다는 이점이 있는 반면, 복잡하고 대규모의 하드웨어가 필요하다는 문제가 있다.
한편, 고정 소수점 표현에서는, 하드웨어가 간단하여 회로 규모도 작지만, 연산 정밀도의 저하가 문제가 된다. 종래의 대표적인 고정 소수점형의 DSP로서는, 예를 들면 도 10에 도시된 것이 있다. 도 10은, 종래의 고정 소수점형의 DSP의 구성 및 각 구성 요소의 입출력단에 있어서의 데이터의 비트수를 나타내는 도면이다.
종래의 고정 소수점형의 DSP는, 도 10에 도시된 바와 같이, 데이터를 n 비트 단위로 저장하는 메모리(100)와, n 비트의 데이터를 데이터 메모리(100)로부터 입력하여 2n 비트의 연산 데이터를 출력하는 곱의 합 연산기(12)와, 2n 비트의 연산 데이터 중 상위의 n 비트의 데이터를 선택하는 선택 회로(13)와, 데이터 버스(110)로 구성되고, 연산 대상이 되는 데이터를 데이터 메모리(100)로부터 판독하고, 판독한 데이터를 곱의 합 연산기(12)로 연산하고, 곱의 합 연산기(12)로부터의 연산 데이터중 상위의 n 비트의 데이터를 선택 회로(13)에서 선택하고, 선택 회로(13)로부터의 연산 데이터를 데이터 메모리(100)에 재차 저장하도록 되어 있다.
곱의 합 연산기(12)는, 데이터 메모리(100)로부터의 데이터를 보유하는 제1 레지스터 파일(12a)과, 제1 레지스터 파일(12a)의 데이터를 승산하는 승산기(12b)와, 승산기(12b)로부터의 승산 데이터를 지금까지의 가산 데이터와 가산하는 가산기(12c)와, 가산기(12c)로부터의 가산 데이터를 연산 데이터로서 보유하는 제2 레지스터 파일(12d)로 구성되어 있다.
연산 정밀도의 저하는, 선택 회로(13)에서 2n 비트로부터 n 비트를 선택할 때에, 하위 n 비트가 버려지기 때문에 생긴다.
고정 소수점 표현에 있어서의 연산 정밀도의 저하를, 하기의 수학식 1, 수학식 2의 수식의 예를 이용하여 나타낸다. 즉, 곱의 합 연산기(12)는, 하기의 수학식 1, 수학식 2에 의해 연산을 행하게 되어 있다.
여기서는 간단하게 하기 위해, 데이터 메모리(100)로부터의 데이터를 8 비트, 곱의 합 연산기(12)의 출력을 16 비트로 하고, 데이터 X(0)∼X(7) 및 계수 데이터 A(0)∼A(3), B(0), B(1)를 연산 대상으로 하여 곱의 합 연산기(12)에 제공한다. 데이터 X(0)∼X(7) 및 계수 데이터 A(0)∼A(3), B(0), B(1)는, 각각 도 11에 도시된 바와 같은 값을 갖고, X(-3)=X(-2)=X(-1)=Y(-1)=0으로 한다. 또한, 도 12에 도시된 바와 같이, 각 데이터와 계수 데이터의 최상위 비트(MSB)는 부호 비트로 하고, 부호 비트와 우측 옆의 비트사이에 소수점 위치가 정해지고, 부호 비트의 우측 옆은 0.5를 나타내는 것으로 하여, 각 데이터와 계수 데이터의 값의 십진수 표현을 합해 도 11에 나타낸다.
상기 종래의 고정 소수점형의 DSP를 이용하여, 하기의 수학식 1, 수학식 2에 의해 연산을 행했을 때의 연산 결과를 도 13에 도시한다. 데이터 메모리(100)에 저장되는 최종적인 연산 결과(이진수 표현 및 십진수 표현)과 함께, 도중 결과로서 곱의 합 연산기(12)의 출력(16 비트의 이진수 표현)을, 그리고 또 비교를 위해, 부동 소수점으로 연산을 행했을 때의 연산 결과도 합해 나타낸다. 16 비트로부터 8 비트를 선택할 때에, 하위 8비트의 데이터가 없어지기 때문에, 정밀도가 떨어지는 것을 알았다. 여기서, 정밀도의 열화량을 나타내는 척도로서 신호 대 잡음비(SNR)를 도입하고, 이것을 하기 수학식 3과 같이 정의한다.
하기의 수학식 3은, 부동 소수점 연산 결과의 제곱합을, 오차(고정 소수점 연산 결과와 부동 소수점 연산 결과의 차)의 제곱합으로 나눈 것으로, 정밀도가 열화할수록 작은 값을 취한다. 도 13의 결과를 이용하여 SNR을 계산하면, 하기의 수학식 4, 수학식 5에 나타낸 바와 같다. 또, 하기의 수학식 4는, 하기의 수학식 1의 연산 결과에 기초한 SNR을 나타내는 식이고, 하기의 수학식 5는, 하기의 수학식 2의 연산 결과에 기초한 SNR을 나타내는 식이다.
이와 같이, 고정 소수점 표현에서는, 연속하여 연산을 반복할 때마다 정밀도가 크게 열화해가는 것이다.
이 문제의 대책법으로서 제안된 것이 블럭 플로우팅이라는 방식이다. 이 방식으로는, 소정수(예를 들면, m 개)의 데이터를 하나의 데이터 블럭으로 하고, 데이터 블럭에 대해 1개의 블럭 스케일 팩터를 가지게 하고, 데이터 블럭의 m 개의 데이터에 대해 공통의 스케일링(이하, 블럭 정규화라고 함.)을 행함에 따라, 한정된 다이내믹 범위를 유효하게 이용하여 정밀도의 열화를 억제한다.
이 블럭 플로우팅을 효율적으로 실현하기 위해, 예를 들면 도 14와 같은 DSP가 제안되고 있다(특개평10-40073호 공보).
이 블럭 플로우팅형의 DSP는, 도 14에 도시된 바와 같이, 상기 종래의 고정 소수점형의 DSP 외에, 제공된 스케일 팩터에 기초하여 곱의 합 연산기(12)에의 입력 데이터를 블럭 정규화하는 제2 시프터(10)와, 데이터 블럭에 포함되는 각 데이터에 기초하여 블럭 스케일 팩터를 검출하는 블럭 스케일 팩터 검출기(54)와, 블럭 스케일 팩터를 저장하는 블럭 스케일 팩터 레지스터(56)로 구성되어 있다.
블럭 스케일 팩터 검출기(54)는, 선택 회로(13)로부터의 연산 데이터를 입력하고, 그 데이터 블럭의 각 데이터 중 절대치가 최대가 되는 데이터를 검출하고, 검출한 데이터의 중복된 비트수를 블럭 스케일 팩터로서 검출하도록 되어 있다.
제2 시프터(10)는, 도시하지 않은 제어 장치에 의해 블럭 스케일 팩터 레지스터(56)의 블럭 스케일 팩터가 주어졌을 때는, 그 블럭 스케일 팩터에 상당하는 시프트량으로, 데이터 블럭의 각 데이터에 대해 상위 비트의 방향으로 비트 시프트(이하, 단순히 좌시프트라고 함.)를 행하게 되어 있다.
이어서, 상기 종래의 블럭 플로우팅형의 DSP에서, 하기의 수학식 1, 수학식 2를 블럭 플로우팅 처리한 경우의 동작에 대해 설명한다.
우선, 데이터 블럭에 포함되는 데이터의 갯수를 「블럭 사이즈」와, 데이터 메모리(100)로부터 데이터 블럭의 각 데이터를 판독하여 곱의 합 연산을 행한 후, 연산 결과인 연산 데이터를 재차 데이터 메모리(100)에 저장하는 일련의 처리를 「블럭 처리」라고 정의한다.
하기의 수학식 1, 수학식 2에서는, 블럭 사이즈를 8로 하고, 첫회의 블럭 처리로 데이터 블럭 X(0)∼X(7)를 입력으로 하여 하기의 수학식 1에 의해 연산을 행하여, Y(0)∼Y(7)를 구하고, 2회째의 블럭 처리로 데이터 블럭 Y(0)∼Y(7)를 입력으로 하여 하기의 수학식 2에 의해 연산을 행하고, Z(0)∼Z(7)를 구하는 것으로 한다. 또, 첫회의 블럭 처리에서는, 블럭 스케일 팩터 레지스터(56)에는, 블럭 스케일 팩터로서 "0"이 설정되어 있으므로, 제2 시프터(10)에 있어서 블럭 정규화는 행해지지 않게 한다. 또한, 이하의 설명에서는, 계수 데이터 A(0)∼A(3), B(0), B(1)의 설정 방법에 대해서는 특별히 언급하지 않았지만, 필요에 따라 데이터 메모리(100)로부터 판독하는 등함으로써 제공할 수 있다.
우선, 제1 스텝으로서, n=0∼7에 대해 다음의 처리를 행한다. 데이터 X(n), X(n-1), X(n-2)를 순차 데이터 메모리(100)로부터 판독하여 제2 시프터(10)에 입력한다. 첫회 블럭 처리에서는, 블럭 스케일 팩터 레지스터(56)의 블럭 스케일 팩터가 "0"이기 때문에, 제2 시프터(10)에서 블럭 정규화는 행하지 않고, X(n), X(n-1), X(n-2)를 그대로 곱의 합 연산기(12)에 입력한다. 곱의 합 연산기(12)에서는, 하기의 수학식 1에 의해 연산을 행하고, 연산 데이터를 선택 회로(13)에 입력한다. 선택 회로(13)에서는, 연산 데이터 중 상위 n 비트를 선택하여 추출한다. 선택 회로(13)로부터의 n 비트의 연산 데이터는, 데이터 버스(110) 경유로 Y(n)로 하여 데이터 메모리(100)에 저장된다. 한편, 이 저장 처리와 병행하여, 2회째의 블럭 처리에 이용하는 블럭 스케일 팩터를 결정하기 위해 연산 데이터 Y(n)를, 블럭 스케일 팩터 검출기(54)에 입력한다.
계속해서, 제2 스텝으로 하여, 제1 스텝이 종료한 시점에서, 블럭 스케일 팩터 검출기(54)에서는, 2회째의 블럭 처리에 이용하는 블럭 스케일 팩터를 결정하고, 결정한 블럭 스케일 팩터를 블럭 스케일 팩터 레지스터(56)에 저장한다.
계속해서, 제3 스텝으로 하여, n=0∼7에 대해 이하의 처리를 행한다. 데이터 Y(n), Y(n-1)를 순차 데이터 메모리(100)로부터 판독하여 제2 시프터(10)에 입력한다. 제2 시프터(10)에서는, 블럭 스케일 팩터 레지스터(56)의 블럭 스케일 팩터에 기초하여 블럭 정규화를 행하고, 블럭 정규화를 행한 데이터를 곱의 합 연산기(12)에 입력한다. 곱의 합 연산기(12)에서는, 하기의 수학식 2에 의해 연산을 행하고, 연산 데이터를 선택 회로(13)에 입력한다. 선택 회로(13)에서는, 연산 데이터 중 상위 n비트를 선택하여 추출한다. 선택 회로(13)로부터의 n 비트의 연산 데이터는, 데이터 버스(110) 경유로 Z(n)로서 데이터 메모리(100)에 저장된다. 한편, 이 저장 처리와 병행하여, 3회째의 블럭 처리(1)에 이용하는 블럭 스케일 팩터를 결정하기 위한 연산 데이터 Z(n)를, 블럭 스케일 팩터 검출기(54)에 입력한다.
계속해서, 제4 스텝으로 하여, 제3 스텝3이 종료한 시점에서, 블럭 스케일 팩터 검출기(54)에서는, 3회째의 블럭 처리에 이용하는 블럭 스케일 팩터를 결정하고, 결정한 블럭 스케일 팩터를 블럭 스케일 팩터 레지스터(56)에 저장한다.
상기 제1 내지 제4 스텝을 거쳐, 하기의 수학식 1, 수학식 2에 의해 실제로 블럭 플로우팅 처리한 연산 결과를 도 15에 도시한다. 그리고, 이 연산 결과를 이용하여 하기의 수학식 3에 의해 SNR을 계산하면, 하기의 수학식 6, 수학식 7에 나타낸 바와 같다. 또, 하기의 수학식 6은, 하기의 수학식 1의 연산 결과에 기초한 SNR을 나타내는 식이고, 하기의 수학식 7은, 하기의 수학식 2의 연산 결과에 기초한 SNR을 나타내는 식이다.
하기의 수학식 6, 수학식 7에 따르면, 고정 소수점 연산을 단순히 행하는 것보다도 정밀도가 개선되는 것을 알 수 있다.
앞의 예로부터도 알 수 있듯이, 상기 종래의 블럭 플로우팅형의 DSP에 있어서는, 확실히 상기 종래의 고정 소수점형의 DSP에 비해 연산 정밀도를 개선할 수 있지만, 또 연산 정밀도 상의 과제가 존재한다.
즉, 상기 종래의 블럭 플로우팅형의 DSP에서는, 블럭 처리가 종료할 때까지 블럭 스케일 팩터를 결정할 수 없기 때문에, 선택 회로(13)에서 상위 n 비트를 선택하여 데이터 메모리(100)에 저장하고, 블럭 처리 종료 후에, 그 연산 데이터에 대해 블럭 스케일 팩터에 상당하는 시프트량으로 좌시프트를 행하고 있다. 이 때문에, 제2 시프터(10)로부터의 데이터 중, 블럭 스케일 팩터에 상당하는 비트수의 하위 비트는, "0"이 되어 의미가 없는 정보가 된다.
곱의 합 연산기(12)로부터의 연산 데이터를 16비트, 데이터 메모리(100)로부터의 데이터를 8비트, 연산 데이터를 "00001101 11010101", 블럭 처리 종료 후에 확정한 블럭 스케일 팩터를 "2"로 한 경우의 블럭 정규화 후의 데이터를, 이상적인 경우와 종래법의 경우에 대해 도 16에 예시한다. 이 예에서는, 블럭 정규화 후의 데이터의 하위 2비트에 주목해 보면, 이상적으로는 "11"이 되어야하는 점이 종래의 DSP에서는 "00"으로 되는 것을 알 수 있다. 이것이 연산 정밀도의 향상을 방해하는 요인으로 되는 것이다.
그래서, 본 발명은, 이러한 종래의 기술이 갖는 미해결의 과제에 주목하여 이루어진 것으로서, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시키는데 적합한 데이터 연산 처리 장치를 제공하는 것을 목적으로 하고 있다.
<배경의 개시>
본 발명에서는, 종래의 데이터 구분인 데이터 블럭을 더욱 세분화하고, 데이터 그룹이라는 구분을 새롭게 도입한다. 즉, 데이터 블럭은, 복수의 데이터 그룹을 포함하여 구성되고, 데이터 그룹은, 1 또는 복수의 데이터를 포함하여 구성된다. 여기서, 데이터 그룹에 포함되는 데이터의 갯수를 「그룹 사이즈」라고 정의한다.
상기 목적을 달성하기 위해, 본 발명에 따른 청구의 범위 제1항에 기재된 데이터 연산 처리 장치는, 1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 그룹을 포함하여 구성된 데이터 블럭 단위로, 데이터를 처리하는 데이터 연산 처리 장치로서, 상기 데이터 그룹의 각 데이터에 대해 연산을 행하고, 이들 연산 데이터 중 절대치가 최대가 되지만 스케일 팩터를 그룹 스케일 팩터로서 검출하고, 검출한 블럭 스케일 팩터에 기초하여 상기 각 연산 데이터에 대해 스케일링을 행하는 이들 일련의 처리를, 상기 데이터 블럭의 각 데이터 그룹마다 행하고, 또한 검출한 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 블럭 스케일 팩터로서 검출하고, 스케일링한 연산 데이터에 대해 재차 연산을 행할 때는, 연산 전에, 상기 데이터 그룹의 각 연산 데이터에 대해 상기 데이터 그룹의 그룹 스케일 팩터 및 상기 블럭 스케일 팩터에 기초하여 스케일링을 행하게 되어 있다.
이러한 구성이면, 데이터 그룹의 각 데이터에 대해 연산이 행해지고, 이들 연산 데이터 중 절대치가 최대가 되지만 스케일 팩터가 그룹 스케일 팩터로서 검출되고, 검출된 그룹 스케일 팩터에 기초하여, 각 연산 데이터에 대해 스케일링이 행해진다. 이러한 일련의 처리가, 데이터 블럭의 각 데이터 그룹마다 행해진다. 그리고, 하나의 데이터 블럭에 대해 처리가 종료되면, 각 데이터 그룹마다 검출된 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것이 블럭 스케일 팩터로서 검출된다.
이어서, 스케일링된 연산 데이터에 대해 재차 연산을 행할 때는, 데이터 그룹의 각 연산 데이터에 대해, 그 데이터 그룹의 블럭 스케일 팩터 및 블럭 스케일 팩터에 기초하여, 스케일링이 행해진다.
또, 그 후에는, 스케일링된 각 연산 데이터에 대해 연산이 행해지고, 그 연산 결과인 연산 데이터 중 절대치가 최대가 되지만 스케일 팩터가 그룹 스케일 팩터로서 검출되고, 검출된 그룹 스케일 팩터에 기초하여, 각 연산 데이터에 대해 스케일링이 행해진다. 이러한 일련의 처리가 데이터 블럭의 각 데이터 그룹마다 행해진다. 그리고, 하나의 데이터 블럭에 대해 처리가 종료하면, 각 데이터 그룹마다 검출된 그룹 스케일 팩터 중 절대치가 최대가 되는 것이 블럭 스케일 팩터로서 검출된다.
여기서, 스케일 팩터로서는, 예를 들면 데이터를 비트 시프트할 때의 시프트량을 예로 들 수 있다. 이 경우, 스케일 팩터에 상당하는 시프트량으로, 데이터에 대해 비트 시프트를 행함에 따라 스케일링을 행한다.
또한, 그룹 스케일 팩터를 검출하는 구성은, 데이터 그룹의 각 데이터에 대해 연산을 행한 후, 이들 연산 데이터의 스케일 팩터를 산출하고, 산출한 스케일 팩터 중 최소의 것을 그룹 스케일 팩터로서 검출하도록 되어도 좋고, 이들 연산 데이터의 스케일 팩터를 산출하지 않고, 이들 연산 데이터로부터 직접 그룹 스케일 팩터를 검출할 수도 있다.
또한, 본 발명에 따른 청구의 범위 제2항에 기재된 데이터 연산 처리 장치는, 청구의 범위 제1항에 기재된 데이터 연산 처리 장치에 있어서, 스케일링한 연산 데이터에 대해 재차 연산을 행할 때는, 연산 전에, 상기 데이터 그룹의 각 연산 데이터에 대해 해당 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분에 기초하여 스케일링을 행하게 되어 있다.
이러한 구성이면, 스케일링된 연산 데이터에 대해 재차 연산을 행할 때는, 데이터 그룹의 각 연산 데이터에 대해, 그 데이터 그룹의 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분에 기초하여, 스케일링이 행해진다.
또한, 본 발명에 따른 청구의 범위 제3항에 기재된 데이터 연산 처리 장치는, 복수의 계산 유닛을 구비하고, 1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 그룹을 포함하여 구성된 데이터 블럭 단위로, 데이터를 처리하는 데이터 연산 처리 장치로서, 상기 각 계산 유닛은, 주어진 스케일 팩터에 기초하여 데이터에 대해 스케일링을 행하는 제1 스케일링 수단과, 상기 제1 스케일링 수단으로부터의 데이터에 대해 연산을 행하는 연산 수단과, 상기 연산 수단으로부터의 연산 데이터의 스케일 팩터를 산출하는 스케일 팩터 산출 수단과, 주어진 다른 스케일 팩터에 기초하여 상기 연산 수단으로부터의 연산 데이터에 대해 스케일링을 행하는 제2 스케일링 수단을 갖고, 또한 데이터를 기억하기 위한 기억 수단과, 상기 각 계산 유닛의 스케일 팩터 산출 수단으로 산출한 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 그룹 스케일 팩터로서 검출하는 그룹 스케일 팩터 검출 수단과, 상기 그룹 스케일 팩터 검출 수단으로 검출한 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 블럭 스케일 팩터로서 검출하는 블럭 스케일 팩터 검출 수단과, 데이터 처리를 위한 제어를 행하는 제어 수단을 구비하고, 상기 제어 수단은, 상기 데이터 블럭 단위로 데이터를 상기 기억 수단으로부터 판독하고, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류하고, 상기 그룹 스케일 팩터 검출 수단으로 검출한 그룹 스케일 팩터를 상기 각 계산 유닛의 제2 스케일링 수단에 제공하고, 상기 각 계산 유닛의 제2 스케일링 수단으로부터의 연산 데이터를 상기 기억 수단에 저장하고, 상기 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 연산 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류함과 함께, 상기 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터를 상기 각 계산 유닛의 제1 스케일링 수단에 제공하도록 되어 있다.
이러한 구성이면, 제어 수단에 의해, 데이터 블럭 단위로 데이터가 기억 수단으로부터 판독되고, 데이터 블럭의 각 데이터 그룹마다, 데이터 그룹의 데이터가 각각 각 계산 유닛의 제1 스케일링 수단으로 분류된다.
각 계산 유닛에서는, 초기 상태에서는 제1 스케일링 수단에 스케일 팩터가 주어지지 않으므로, 제1 스케일링 수단에 의한 스케일링이 행해지지 않고, 그대로 연산 수단에 입력된다. 그리고, 연산 수단에 의해, 제1 스케일링 수단로부터의 데이터에 대해 연산이 행해지고, 스케일 팩터 산출 수단에 의해, 연산 수단으로부터의 연산 데이터의 스케일 팩터가 산출된다.
각 계산 유닛으로 스케일 팩터가 산출되면, 그룹 스케일 팩터 검출 수단에 의해, 각 계산 유닛의 스케일 팩터 산출 수단으로 산출된 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것이 그룹 스케일 팩터로서 검출되고, 제어 수단에 의해 산출된 그룹 스케일 팩터가 각 계산 유닛의 제2 스케일링 수단에 주어진다.
이에 따라, 각 계산 유닛에서는, 제2 스케일링 수단에 의해, 주어진 그룹 스케일 팩터에 기초하여, 연산 수단으로부터의 연산 데이터에 대해 스케일링이 행해진다.
이와 같이 각 계산 유닛으로 연산 데이터에 대해 스케일링이 행해지면, 제어 수단에 의해, 각 계산 유닛의 제2 스케일링 수단으로부터의 연산 데이터가 기억 수단에 저장됨과 함께, 블럭 스케일 팩터 검출 수단에 의해, 그룹 스케일 팩터 검출 수단으로 검출된 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것이 블럭 스케일 팩터로서 검출된다.
이어서, 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 제어 수단에 의해, 데이터 블럭 단위로 연산 데이터가 기억 수단으로부터 판독되고, 데이터 블럭의 각 데이터 그룹마다, 데이터 그룹의 연산 데이터가 각각 각 계산 유닛의 제1 스케일링 수단으로 분류됨과 함께, 그 데이터 그룹의 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터가 각 계산 유닛의 제1 스케일링 수단에 제공된다.
각 계산 유닛에서는, 제1 스케일링 수단에 의해, 전회의 처리에 있어서 검출된 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터에 기초하여, 주어진 연산 데이터에 대해 스케일링이 행해지고, 연산 수단에 의해, 제1 스케일링 수단으로부터의 연산 데이터에 대해 연산이 행해져, 스케일 팩터 산출 수단에 의해, 연산 수단으로부터의 연산 데이터의 스케일 팩터가 산출된다.
각 계산 유닛으로 스케일 팩터가 산출되면, 그룹 스케일 팩터 검출 수단에 의해, 각 계산 유닛의 스케일 팩터 산출 수단으로 산출된 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것이 그룹 스케일 팩터로서 검출되고, 제어 수단에 의해, 산출된 그룹 스케일 팩터가 각 계산 유닛의 제2 스케일링 수단에 제공된다.
이에 따라, 각 계산 유닛에서는, 제2 스케일링 수단에 의해, 주어진 그룹 스케일 팩터에 기초하여, 연산 수단으로부터의 연산 데이터에 대해 스케일링이 행해진다.
이와 같이 각 계산 유닛으로 연산 데이터에 대해 스케일링이 행해지면, 제어 수단에 의해, 각 계산 유닛의 제2 스케일링 수단로부터의 연산 데이터가 기억 수단에 저장됨과 함께, 블럭 스케일 팩터 검출 수단에 의해, 그룹 스케일 팩터 검출 수단으로 검출된 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것이 블럭 스케일 팩터로서 검출된다.
여기서, 기억 수단은, 데이터를 기억할 수도 있고, 데이터를 미리 기억해 둘 수도 있고, 본 장치의 동작시에 데이터를 기억할 수도 있다.
또한, 스케일 팩터로서는, 예를 들면 데이터를 비트 시프트할 때의 시프트량을 예로 들 수 있다. 이 경우, 스케일 팩터에 상당하는 시프트량으로, 데이터에 대해 비트 시프트를 행함에 따라 스케일링을 행한다.
또한, 본 발명에 따른 청구의 범위 제4항에 기재된 데이터 연산 처리 장치는, 청구의 범위 제3항에 기재된 데이터 연산 처리 장치에 있어서, 상기 그룹 스케일 팩터 및 상기 블럭 스케일 팩터를 기억하기 위한 제2 기억 수단을 구비하고, 상기 제어 수단은, 상기 그룹 스케일 팩터 및 상기 블럭 스케일 팩터를 연산 데이터와 대응시켜 상기 제2 기억 수단에 기억하고, 상기 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 대응하는 그룹 스케일 팩터 및 블럭 스케일 팩터를 상기 제2 기억 수단으로부터 판독하고, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 연산 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류하고, 상기 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터를 상기 각 계산 유닛의 제1 스케일링 수단에 제공하게 되어 있다.
이러한 구성이면, 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 제어 수단에 의해, 그룹 스케일 팩터 검출 수단으로 검출된 그룹 스케일 팩터 및 블럭 스케일 팩터 검출 수단으로 검출된 블럭 스케일 팩터가, 각 계산 유닛의 제2 스케일링 수단으로부터의 연산 데이터와 대응시켜 제2 기억 수단에 저장된다.
그리고, 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 제어 수단에 의해, 대응하는 그룹 스케일 팩터 및 블럭 스케일 팩터가 제2 기억 수단으로부터 판독되고, 데이터 블럭의 각 데이터 그룹마다, 데이터 그룹의 연산 데이터가 각각 각 계산 유닛의 제1 스케일링 수단으로 분류됨과 함께, 그 데이터 그룹의 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터가 각 계산 유닛의 제1 스케일링 수단에 제공된다.
이에 따라, 각 계산 유닛에서는, 제1 스케일링 수단에 의해, 전회의 처리에서 검출된 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터에 기초하여, 주어진 연산 데이터에 대해 스케일링이 행해진다.
여기서, 제2 기억 수단은, 그룹 스케일 팩터 및 블럭 스케일 팩터를 기억하기 위한 것으로서, 그룹 스케일 팩터 및 블럭 스케일 팩터를 미리 기억하고 있는 것을 필요로 하지 않다.
또한, 본 발명에 따른 청구의 범위 제5항에 기재된 데이터 연산 처리 장치는, 청구의 범위 제3항 및 제4항 중 어느 한 항에 기재된 데이터 연산 처리 장치에 있어서, 상기 스케일 팩터 산출 수단은, 상기 연산 수단으로부터의 연산 데이터의 중복된 비트수를 산출하고, 이것을 스케일 팩터로서 산출하도록 되어 있다.
이러한 구성이면, 스케일 팩터 산출 수단에 의해, 연산 수단으로부터의 연산 데이터의 중복된 비트수가 산출되어, 이것이 스케일 팩터로서 산출된다.
또한, 본 발명에 따른 청구의 범위 제6항에 기재된 데이터 연산 처리 장치는, 청구의 범위 제5항에 기재된 데이터 연산 처리 장치에 있어서, 상기 연산 수단은, 고정 소수점 연산기이고, 상기 제1 스케일링 수단은, 주어진 스케일 팩터에 상당하는 시프트량으로, 데이터에 대해 비트 시프트를 행하게 되어 있고, 상기 제2 스케일링 수단은, 주어진 다른 스케일 팩터에 상당하는 시프트량으로, 상기 연산 수단으로부터의 연산 데이터에 대해 비트 시프트를 행하게 되어 있다.
이러한 구성이면, 각 계산 유닛에서는, 제1 스케일링 수단에 의해, 주어진 스케일 팩터에 상당하는 시프트량으로, 주어진 데이터에 대해 비트 시프트가 행해지고, 연산 수단에 의해, 제1 스케일링 수단으로부터의 데이터에 대해 고정 소수점 연산이 행해진다. 그리고, 제2 스케일링 수단에 의해, 주어진 스케일 팩터에 상당하는 시프트량으로, 연산 수단으로부터의 연산 데이터에 대해 비트 시프트가 행해진다.
여기서, 제1 스케일링 수단은, 예를 들면 데이터에 대해 하위 비트의 방향으로 비트 시프트(이하, 단순히 우시프트라고 함.)를 행하게 되어 있다. 또한, 제2 스케일링 수단은, 예를 들면 데이터에 대해 좌시프트 또는 우시프트를 행하게 되어 있다.
또한, 본 발명에 따른 청구의 범위 제7항에 기재된 데이터 연산 처리 장치는, 청구의 범위 제3항 내지 제6항 중 어느 한 항에 기재된 데이터 연산 처리 장치에 있어서, 상기 연산 수단은, 상기 제1 스케일링 수단으로부터의 데이터와 소정의 계수와의 곱의 합을 연산하는 곱의 합 연산기이다.
이러한 구성이면, 연산 수단에 의해, 제1 스케일링 수단(1)으로부터의 데이터와 소정의 계수와의 곱의 합이 연산되고, 곱의 합된 데이터가 연산 데이터로서 출력된다.
본 발명의 개요는, 예를 들면 도 1에 도시된 바와 같다. 본 발명에서는, 데이터 그룹마다 하나의 스케일 팩터를 계산하여 이것을 그룹 스케일 팩터로 하고, 각곱의 합 연산기(12)로부터 출력된 데이터를 그룹 스케일 팩터로 정규화(이하, 그룹 정규화라고 함.)하고, 그룹 스케일 팩터를, 그룹 정규화된 데이터 그룹과 관련지어 레지스터 파일(52)에 저장한다. 이러한 일련의 처리는, 데이터 블럭에 포함되는 다른 데이터 그룹에 대해서도, 반복하여 적용된다. 하나의 데이터 블럭의 처리를 행한 후, 복수의 그룹 스케일 팩터 중 최소의 스케일 팩터를 검출하여 이것을 블럭 스케일 팩터로 하고, 데이터 블럭과 관련시켜 레지스터 파일(56)에 저장한다. 그 후, 이 데이터 블럭을 블럭 처리하는 경우, 블럭 스케일 팩터와 그룹 스케일 팩터가 다르고, 데이터 그룹사이에서 자릿수의 위치가 맞지 않을 가능성이 있기 때문에, 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분에 기초하여, 각 데이터 그룹을 시프트(블럭 정규화)하여 자릿수 맞춘 후, 곱의 합 연산기(12)에 입력한다.
이에 따라, 곱의 합 연산 종료 후의 데이터는, 데이터 그룹 단위로 일단 그룹 정규화를 행하여 데이터 메모리(100)에 저장되고, 다음의 블럭 처리로 사용할 때에, 블럭 정규화되기 때문에, 블럭 정규화 후의 데이터의 하위 비트에 의미가 없는 정보가 포함되지 않아, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 오차가 작아진다.
이상에서는, 상기 목적을 달성하기 위한 데이터 연산 처리 장치를 제안했지만, 이것에 한하지 않고, 상기 목적을 달성하기 위해 다음의 제1 내지 제7 데이터 연산 처리 장치를 제안할 수도 있다.
제1 데이터 연산 처리 장치는, 스케일링을 이용함으로써 가수부와 스케일부로 분해 가능한 복수의 데이터를 포함하는 데이터 그룹에 대해 단일로 공통의 스케일 팩터를 결정하고, 복수의 가수부를 하나로 하고, 상기 공통의 스케일 팩터를 참조하여 데이터를 처리하는 디지털 신호 처리를 위한 데이터 연산 처리 장치로서, 1번째의 데이터 그룹으로부터, 복수의 스케일 팩터 중 단일의 최소치를 그룹 스케일 팩터로서 결정하고, 상기 그룹 스케일 팩터를 참조하여 해당 데이터 그룹의 각 데이터를 스케일링하고, 스케일링한 각 데이터를 저장하고, 상기 그룹 스케일 팩터를 해당 데이터 그룹과 유일하게 대응하는 관계를 갖고 저장하며, 이들의 처리를 두 번째 이후의 데이터 그룹에 대해 계속해서 반복하고, 복수의 그룹 스케일 팩터 중 단일의 최소치를 복수의 데이터 그룹의 블럭 스케일 팩터로서 결정하고, 상기 블럭 스케일 팩터를 첫째와 두번째 이후의 복수의 데이터 그룹으로 구성되는 단일의 데이터 블럭과 유일하게 대응하는 관계를 갖고 저장하며, 상기 각 데이터 그룹의 각 데이터를 상기 각 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 1 차분으로서 얻어지는 정렬 스케일 팩터를 이용하여 스케일링하도록 되어 있다.
또한, 제2 데이터 연산 처리 장치는, 상기 제1 데이터 연산 처리 장치에 있어서, 상기 정렬 스케일 팩터를 이용하여 스케일링한 복수의 데이터를 단일의 새로운 데이터 블럭으로 하여 저장하고, 상기 정렬 스케일 팩터를 상기 블럭 스케일 팩터로서 오직 하나로 결정하도록 되어 있다.
또한, 제3 데이터 연산 처리 장치는, 상기 제1 및 제2 중 어느 한 데이터 연산 처리 장치에 있어서, 상기 정렬 팩터를 이용하여 스케일링한 데이터를 계속해서 고정 소수점 데이터 표현을 이용하여 처리하도록 되어 있다.
또한, 제4 데이터 연산 처리 장치는, 상기 제1 내지 제3 중 어느 한 데이터 연산 처리 장치에 있어서, 상기 그룹 스케일 팩터를, 관련된 데이터 그룹과 함께 저장하도록 되어 있다.
또한, 제5 데이터 연산 처리 장치는, 데이터를 처리하기 위해 적어도 하나의 계산 유닛과 레지스터와 메모리를 구비한 디지털 데이터 처리 프로세서에 의한 디지털 데이터 처리를 위한 데이터 연산 처리 장치로서, 복수의 데이터로부터 복수의 스케일 팩터를 계산하는 수단과, 상기 스케일 팩터를 참조하여 복수의 데이터로부터 스케일링된 값을 생성하는 수단과, 복수의 상기 스케일링된 값을 데이터 그룹(스케일링된 값의 세트)으로 하여 저장하는 수단과, 상기 데이터 그룹 중 최소의 스케일 팩터(그룹 스케일 팩터)를 검출하는 수단과, 상기 그룹 스케일 팩터를 저장하는 수단과, 복수의 상기 데이터 그룹 중 최소의 스케일 팩터(블럭 스케일 팩터)를 검출하는 수단과, 상기 블럭 스케일 팩터를 저장하는 수단을 구비하고 있다.
또한, 제6 데이터 연산 처리 장치는, 상기 제5 데이터 연산 처리 장치에 있어서, 상기 그룹 스케일 팩터를 일시적으로 저장하기 위한 레지스터 파일에 의한 수단과, 일시적으로 저장한 그룹 스케일 팩터와 그것에 대응하는 데이터 그룹을 관련짓기 위한 수단과, 상기 레지스터 파일에 일시적으로 저장한 그룹 스케일 팩터를 저장하는 수단을 구비하고 있다.
또한, 제7 데이터 연산 처리 장치는, 상기 제5 및 제6 중 어느 한 데이터 연산 처리 장치에 있어서, 최소의 스케일 팩터를 검출하는 수단과, 중복된 부호 비트를 계수하는 수단과, 중복된 부호 비트의 정보를 하나로 통합하는 수단을 구비하고 있다.
이상에서는, 상기 목적을 달성하기 위한 데이터 연산 처리 장치를 제안했지만, 이것에 한하지 않고, 상기 목적을 달성하기 위해, 다음의 제1 기억 매체를 제안할 수도 있다.
제1 기억 매체는, 1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 그룹을 포함하여 구성된 데이터 블럭 단위로, 데이터를 처리하기 위한 프로그램을 기억한 기억 매체로서, 청구의 범위 제3항 내지 제7항 중 어느 한 항에 기재된, 상기 각 계산 유닛, 상기 제1 스케일링 수단, 상기 연산 수단, 상기 스케일 팩터 산출 수단, 상기 제2 스케일링 수단, 상기 그룹 스케일 팩터 검출 수단, 상기 블럭 스케일 팩터 검출 수단 및 상기 제어 수단으로서 컴퓨터를 기능시키기 위한 프로그램을 기억한 컴퓨터 판독 가능한 것이다.
이러한 구성이면, 기억 매체에 기억된 정보가 컴퓨터에 의해 판독되고, 컴퓨터가 각 수단으로서 기능시켰을 때는, 상기 청구의 범위 제3항 내지 제7항 중 어느 한 항에 기재된 데이터 연산 처리 장치와 동일한 작용을 얻을 수 있다.
본 발명은, 1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 블럭을 포함하여 구성된 데이터 블럭 단위로, 데이터를 처리하는 장치에 관한 것으로, 특히 블럭 플로우팅 방식으로 고정 소수점 연산을 행하는 블럭 플로우팅형의 디지털·시그널·프로세서(이하, 단순히 DSP라고 함)에 관한 것이다.
도 1은, 본 발명에 따른 데이터 연산 처리 장치의 구성을 나타내는 블럭도.
도 2는, 데이터 메모리(100)에 있어서의 데이터 구조를 나타내는 도면.
도 3은, 각 곱의 합 연산기(12)로 행해지는 곱의 합 연산을 나타내는 도면.
도 4는, 본 발명을 수치 예에 적용한 경우의 연산 과정을 설명하기 위한 도면.
도 5는, 데이터 그룹과 그룹 스케일 팩터를 관련시켜 저장하는 방법의 일례.
도 6은, 본 발명을 수치 예에 적용한 경우의 연산 결과를 나타낸 도면.
도 7은, 본 발명에 따른 방식과 종래 방식과의 연산 정밀도의 비교를 나타낸 도면.
도 8은, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)와 곱의 합 연산기(12)와 상호간에 데이터를 전송하기 위한 상세한 구성을 나타내는 블럭도.
도 9는, 국소 스케일 팩터 검출기(14) 및 그룹 스케일 팩터 검출기(50)의 다른 구성을 나타내는 블럭도.
도 10은, 종래의 고정 소수점형의 DSP의 구성 및 각 구성 요소의 입출력단에 있어서의 데이터의 비트수를 나타낸 도면.
도 11은, 수치 예에서 사용되는 데이터의 값을 나타낸 도면.
도 12는, 수치 예에서 사용되는 데이터의 고정 소수점 표기를 설명하기 위한 도면.
도 13은, 종래의 고정 소수점형의 DSP에 의한 수치예의 연산 결과를 나타낸 도면.
도 14는, 종래의 블럭 플로우팅형의 DSP의 구성을 나타내는 블럭도.
도 15는, 종래의 블럭 플로우팅형의 DSP에 의한 수치예의 연산 결과를 나타내는 도면.
도 16은, 종래 방법의 문제점을 설명하기 위한 도면.
<발명을 실시하기 위한 최량의 형태>
이하, 본 발명의 실시예를 도면을 참조하면서 설명한다. 도 1 내지 도 9는, 본 발명에 따른 데이터 연산 처리 장치의 실시예를 나타내는 도면이다.
우선, 본 발명에 따른 데이터 연산 처리 장치의 구성을 도 1을 참조하면서 설명한다. 도 1은, 본 발명에 따른 데이터 연산 처리 장치의 구성을 나타내는 블럭도이다.
본 발명에 따른 데이터 연산 처리 장치는, 도 1에 도시된 바와 같이, 데이터 블럭 단위로 데이터를 기억하기 위한 데이터 메모리(100)와, 데이터 메모리(100)의 데이터에 대해 곱의 합 연산을 행하는 연산부(200)와, 블럭 플로우팅에 필요한 정규화를 행하기 위한 제어부(300)와, 이들의 제어를 행하는 제어 로직(400)와, 어드레스 생성기(500)로 구성되어 있다. 데이터 메모리(100), 연산부(200), 제어부(300) 및 제어 로직(400)는, 데이터 버스(110)로 서로 데이터 수수 가능하게 접속되어 있고, 데이터 메모리(100), 제어부(300) 및 어드레스 생성기(500)는, 데이터 어드레스 버스(120)로 서로 데이터 수수 가능하게 접속되어 있다.
데이터 메모리(100)는, 도시하지 않은 외부로부터 데이터를 입력하고, 연산부(200)의 연산 대상이 되는 데이터로서 저장하도록 되어 있다. 데이터 메모리(100)에서는, 데이터는, 도 2에 도시된 바와 같이, 데이터 블럭 단위로 저장된다. 도 2는, 데이터 메모리(100)에 있어서의 데이터 구조를 나타내는 도면이다. 데이터 메모리(100)에서는, 도 2에 도시된 바와 같이, 데이터가 계산 유닛의 수에 상당하는 갯수(이 경우, k개) 조합하여 데이터 그룹으로 하여 저장되고, 또한 데이터 그룹이 복수 조합하여 데이터 블럭으로 하여 저장된다. 즉, 데이터 블럭은, 복수의 데이터 그룹을 포함하여 구성되고, 데이터 그룹은, 계산 유닛의 수에 상당하는 갯수의 데이터를 포함하여 구성되어 있다.
연산부(200)는, 동일한 기능을 갖는 k개의 계산 유닛 P0∼Pk-1로 구성되어 있다. 각 계산 유닛 P0∼Pk-1에는, 하나의 데이터 그룹의 데이터가 각각 분류되고, 각 계산 유닛 P0∼Pk-1은, 데이터 그룹 단위로 데이터를 병렬 처리한다.
각 계산 유닛 P0∼Pk-1은, 주어진 스케일 팩터에 기초하여 데이터에 대해 스케일링을 행하는 제2 시프터(10)와, 제2 시프터로부터의 데이터에 대해 곱의 합 연산을 행하는 곱의 합 연산기(12)와, 곱의 합 연산기(12)로부터의 연산 데이터의 스케일 팩터를 산출하는 유닛 스케일 팩터 검출기(14)와, 주어진 스케일 팩터에 기초하여 곱의 합 연산기(12)로부터의 연산 데이터에 대해 스케일링을 행하는 제1 시프터(16)로 구성되어 있다.
유닛 스케일 팩터 검출기(14)는, 곱의 합 연산기(12)로부터의 연산 데이터의 중복된 비트수를 산출하고, 이것을 스케일 팩터로서 산출하도록 되어 있다. 본 실시예에서는, 스케일 팩터로는 데이터를 비트 시프트할 때의 시프트량이고, 시프트하는 비트수를 나타낸다. 이하, 그룹 스케일 팩터 및 블럭 스케일 팩터에 대해서도 마찬가지다.
제2 시프터(10)는, 주어지는 스케일 팩터에 상당하는 시프트량으로, 주어진 데이터에 대해 우시프트를 행하게 되어 있고, 제1 시프터(16)는, 주어진 스케일 팩터에 상당하는 시프트량으로, 곱의 합 연산기(12)로부터의 연산 데이터에 대해 좌시프트를 행하게 되어 있다.
제어부(300)는, 유닛 스케일 팩터 검출기(14)로 산출한 스케일 팩터로부터 그룹 스케일 팩터를 검출하는 그룹 스케일 팩터 검출기(50)와, 그룹 스케일 팩터를 저장하는 그룹 스케일 팩터 레지스터 파일(52)과, 그룹 스케일 팩터로부터 블럭 스케일 팩터를 검출하는 블럭 스케일 팩터 검출기(54)와, 블럭 스케일 팩터를 저장하는 블럭 스케일 팩터 레지스터(56)와, 그룹 스케일 팩터와 블럭 스케일 팩터의 차분을 계산하는 자릿수 정합용 가산기(60)로 구성되어 있다.
그룹 스케일 팩터 검출기(50)는, 각 계산 유닛 P0∼Pk-1의 유닛 스케일 팩터 검출기(14)로 산출한 스케일 팩터 중 최소의 것을 그룹 스케일 팩터로서 검출하고, 제어 로직(400)의 제어에 의해, 검출한 그룹 스케일 팩터를 그룹 스케일 팩터 레지스터 파일(52) 및 각 계산 유닛 P0∼Pk-1의 제1 시프터(16)로 출력하도록 되어 있다. 예를 들면, 각 계산 유닛 P0∼Pk-1(예를 들면, k=3)의 유닛 스케일 팩터 검출기(14)로부터 스케일 팩터로서 "1", "2", "3"을 입력한 경우, 그 중 최소치인 "1"을 그룹 스케일 팩터로서 검출한다.
그룹 스케일 팩터 레지스터 파일(52)은, 그룹 스케일 팩터 검출기(50)로 검출한 그룹 스케일 팩터를 각각 일시적으로 저장하고, 제어 로직(400)의 제어에 의해, 데이터 메모리(100) 또는 자릿수 정합용 가산기(60)에 그룹 스케일 팩터를 출력하도록 되어 있다.
블럭 스케일 팩터 검출기(54)는, 그룹 스케일 팩터 검출기(50)로 검출한 그룹 스케일 팩터 중 최소의 것을 그룹 스케일 팩터로서 검출하도록 되어 있다. 예를 들면, 어떤 데이터 블럭의 그룹 스케일 팩터가 "3", "4", "5"로서 검출된 경우, 그 중 최소치인 "3"을 그 블럭 스케일 팩터로서 검출한다.
블럭 스케일 팩터 레지스터(56)는, 블럭 스케일 팩터 검출기(54)로 검출한 블럭 스케일 팩터를 일시적으로 저장하고, 제어 로직(400)의 제어에 의해, 데이터 메모리(100) 또는 자릿수 정합용 가산기(60)에 그룹 스케일 팩터를 출력하도록 되어 있다.
자릿수 정합용 가산기(60)는, 그룹 스케일 팩터 레지스터 파일(52)로부터 출력된 그룹 스케일 팩터와, 블럭 스케일 팩터 레지스터(56)로부터 출력된 블럭 스케일 팩터를 입력하고, 그룹 스케일 팩터로부터 블럭 스케일 팩터를 감산하여 그 차분을 계산하고, 제어 로직(400)의 제어에 의해, 그 차분으로 이루어지는 스케일 팩터를 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 출력하도록 되어 있다.
제어 로직(400)는, 데이터 메모리(100)의 데이터에 대해 처음으로 연산을 행할 때는, 다음의 제어 처리를 실행하도록 되어 있다.
우선, 데이터 블럭 단위로 데이터를 데이터 메모리(100)로부터 판독하고, 데이터 블럭의 각 데이터 그룹마다, 데이터 그룹의 데이터를 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)로 분류한다.
그리고, 그룹 스케일 팩터 검출기(50)로 검출한 그룹 스케일 팩터를 각 계산 유닛 P0∼Pk-1의 제1 시프터(16)에 제공하고, 각 계산 유닛 P0∼Pk-1의 제1 시프터(16)로부터의 연산 데이터를 데이터 버스(110) 경유로 데이터 메모리(100)에 저장한다.
또한, 제어 로직(400)는, 데이터 메모리(100)의 데이터에 대해 재차 연산을 행할 때는, 다음의 제어 처리를 실행하도록 되어 있다.
우선, 데이터 블럭 단위로 연산 데이터를 데이터 메모리(100)로부터 판독하고, 데이터 블럭의 각 데이터 그룹마다, 데이터 그룹의 연산 데이터를 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 제공한다. 이와 함께, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 제공한 데이터의 그룹 스케일 팩터 및 블럭 스케일 팩터가 그룹 스케일 팩터 레지스터 파일(52) 및 블럭 스케일 팩터 레지스터(56)에 저장되어 있을 때는, 블럭 스케일 팩터 레지스터(56)로부터 블럭 스케일 팩터를 판독하여 자릿수 정합용 가산기(60)에 제공하고, 그룹 스케일 팩터 레지스터 파일(52)로부터 그룹 스케일 팩터를 순차 판독하여 자릿수 정합용 가산기(60)에 제공하고, 자릿수 정합용 가산기(60)에 의해 각 그룹 스케일 팩터와 블럭 스케일 팩터와의 차분을 계산하고, 그 차분으로 이루어지는 스케일 팩터를 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 제공한다.
그리고, 그룹 스케일 팩터 검출기(50)로 검출한 그룹 스케일 팩터를 각 계산 유닛 P0∼Pk-1의 제1 시프터(16)에 제공하고, 각 계산 유닛 P0∼Pk-1의 제1 시프터(16)로부터의 연산 데이터를 데이터 버스(110) 경유로 데이터 메모리(100)에 저장한다.
또, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 제공한 데이터의 그룹 스케일 팩터 및 블럭 스케일 팩터가 그룹 스케일 팩터 레지스터 파일(52) 및 블럭 스케일 팩터 레지스터(56)에 저장되어 있을 때는, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)에 제공한 데이터에 대응하는 그룹 스케일 팩터 및 블럭 스케일 팩터를 데이터 메모리(100)로부터 판독하고, 이들을 데이터 버스(110) 경유로 그룹 팩터 레지스터 파일(52) 및 블럭 스케일 팩터 레지스터(56)에 저장하고나서, 상기 처리를 실행한다.
이어서, 상기 실시예의 동작을 도 3 내지 도 7을 참조하면서 설명한다. 이하, 하기의 수학식 1, 수학식 2의 수식 예를 이용하여 설명한다. 또, 여기서도, 데이터 메모리(100)로부터의 데이터를 8 비트, 곱의 합 연산기(12)의 출력을 16 비트로 한다.
본 예에서는, 연산부(200)가 4개의 계산 유닛으로 구성되는 것으로 하고, 데이터 블럭은, 2개의 데이터 그룹을 포함하여 구성되고, 데이터 그룹은, 4개의 데이터를 포함하여 구성되는 것으로 한다. 또한, 미리 정해진 계수 데이터 A(0)∼A(3), B(0), B(1)는, 필요할 때에는 언제나 이용 가능하다고 가정한다. 이들의 계수 데이터를 어떻게 공급할지는, 본 발명과는 무관하므로 설명하지 않지만, 예를 들면 필요에 따라 데이터 메모리(100)로부터 판독하는 등하여 각 곱의 합 연산기(12)에 제공할 수 있는 것으로 한다.
우선, 본 발명에 따른 데이터 연산 처리 장치에 있어서, 하기의 수학식 1에 의해 데이터를 병렬 처리하는 순서를 도 3을 참조하면서 간단히 설명한다. 도 3은, 각 곱의 합 연산기(12)로 행해지는 곱의 합 연산을 나타내는 도면이다.
하기의 수학식 1에 의해 데이터 메모리(100)의 데이터에 대해 연산을 행할 때는, 우선 사이클 1에서, 데이터 X(0)∼X(3)를 포함하는 1번째의 데이터 그룹이 데이터 메모리(100)로부터 판독되고, 데이터 X(0)∼X(3)가 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼Pk-3의 제2 시프터(10)로 분류된다. 이 때, 데이터 X(0)∼X(3)는, 최초로 스케일에 관한 정보는 없으므로, 제어 로직(400)는, 데이터 X(0)∼X(3)가 시프트되지 않도록 제2 시프터(10)를 제어한다. 이들의 데이터를 각 곱의 합 연산기(12)에 보유하기 위한 수단(예를 들면, 도 14의 곱의 합 연산기(12)의 제1 레지스터 파일)은 이용 가능하다고 한다. 이러한 보유 수단은 본 발명과는 관계가 없으므로, 도 1에는 도시하지 않는다.
각 곱의 합 연산기(12)에서는, 도 3의 순서에 따라 계수 데이터 A(0)∼A(3)와 데이터 X(0)∼X(3)와의 곱의 합 연산이 행해지고, 사이클2로부터 사이클5까지 지나, 최초의 곱의 합 연산 결과인 연산 데이터 Y(0)∼Y(3)를 얻을 수 있다. 이들의 연산 과정에서는, 데이터 X(0)∼X(3)는, 각 계산 유닛 P0∼Pk-1사이를 하드웨어 수단을 통해 전송되는 것으로 한다.
연산 데이터 Y(0)∼Y(3)는, 그 후 각 유닛 스케일 팩터 검출기(14)에 입력된다. 각 유닛 스케일 팩터 검출기(14)에서는, 곱의 합 연산기(12)로부터의 연산 데이터의 중복된 비트수가 산출되고, 이것이 스케일 팩터로서 산출된다. 이 산출에서는, 예를 들면 연산 데이터 Y(0)∼Y(3) 중 어느 한 데이터 "00001100"은, "01100000"에 스케일링되고, 그 경우 중복된 비트수가 "3"이기 때문에, 스케일 팩터는 "3"이 된다.
각 유닛 스케일 팩터 검출기(14)로 산출된 복수의 스케일 팩터는, 다음에 그룹 스케일 팩터 검출기(50)에 입력되고, 여기서 복수의 스케일 팩터 중 최소의 것이 그룹 스케일 팩터로서 검출된다.
이 그룹 스케일 팩터는, 또한 각 계산 유닛 P0∼P1의 제1 시프터(16)에 입력된다. 이와 함께, 각 곱의 합 연산기(12)로부터의 연산 데이터 Y(0)∼Y(3)도 제1 시프터(16)에 입력된다. 그룹 스케일 팩터에 따라, 제1 시프터(16)에 의해, 16 비트의 연산 데이터 Y(0)∼Y(3)에 대해 그룹 정규화가 행해진다. 도 4에, 실제의 수치를 이용한 연산 결과의 일례를 나타낸다.
이들의 그룹 정규화된 연산 데이터는, 또한 다음의 블럭 처리에 구비하기 위해, 데이터 메모리(100)에 저장된다. 데이터 메모리(100)의 데이터의 비트수는 연산 데이터보다도 적기 때문에, 각 연산 데이터는, 하위의 8 비트가 버려지고, 8 비트의 연산 데이터에 사사오입된다. 이들의 사사오입된 연산 데이터 Y(0)∼Y(3)는, 도 4 중에서 데이터 메모리(100)의 입력란에 도시되어 있다. 연산 데이터 Y(0)∼Y(3)를 데이터 메모리(100)에 저장하는 동안, 그룹 스케일 팩터도 그룹 스케일 팩터 레지스터 파일(52)에 입력된다. 이 그룹 스케일 팩터는, 그룹 스케일 팩터 레지스터(52) 내에, 대응하는 데이터 그룹과 관련시켜 저장된다. 예를 들면, 데이터 그룹은, 데이터 메모리(100)에 저장하는 경우, 어떤 하나의 메모리 어드레스를 취하고, 그 데이터 그룹의 모든 데이터는, 하나의 메모리 어드레스에서 동시에 액세스된다고 해도, 연산 데이터를 데이터 메모리(100)에 저장하는데 이용되는 것과 동일한 어드레스에서 특정되는 레지스터에 저장한다. 또한, 도 5에 도시된 바와 같이, 데이터 그룹이 저장되어 있는 데이터 메모리(100)의 어드레스와, 그룹 스케일 팩터가 저장되어 있는 그룹 스케일 팩터 레지스터 파일(52)의 어드레스와의 대응표를, 데이터 메모리(100)의 일부에 작성하여 이들의 어드레스를 관리할 수도 있다.
그룹 스케일 팩터는, 또한 블럭 스케일 팩터 검출기(54)에도 입력되고, 그래서 복수의 그룹 스케일 팩터 중 최소의 것이 블럭 스케일 팩터로서 검출된다. 어느 한 데이터 블럭의 최초 데이터 그룹의 계산이 끝난 시점에서는, 지금 계산된 그룹 스케일 팩터, 즉 이 도 4의 예에서는 "2"의 초기치로서, 블럭 스케일 팩터 검출기(54) 내의 레지스터(도 1에는 도시되지 않음)에 저장된다.
이어서, 사이클6에서, 데이터 X(4)∼X(7)를 포함하는 2번째의 데이터 그룹이 데이터 메모리(100)로부터 판독되고, 데이터 X(4)∼X(7)가 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼P3의 제2 시프터(10)로 분류된다. 데이터 X(0)∼X(3)를 포함하는 1번째의 데이터 그룹에 대한 것과 동일한 연산 처리가, 이 데이터 그룹에 대해서도 행해진다. 유일하게 다른 것은, 연산 데이터 Y(4)∼Y(7)에 대해 계산되는 그룹 스케일 팩터는, 이번에는 블럭 스케일 팩터 검출기(54) 내의 레지스터에 보유되어 있는 내용과 비교되어, 작은 값이 블럭 스케일 팩터로서 선택된다는 점이다. 도 4의 예에서는, 연산 데이터 Y(4)∼Y(7)로부터 그룹 스케일 팩터 "1"이 검출된다. 이 경우, 블럭 스케일 팩터 검출기(54) 내의 레지스터에 보유되어 있는 “2"보다도 "1"이 작으므로, 블럭 스케일 팩터 검출기(54) 내의 레지스터의 내용은 갱신된다.
이 예에서는, 이 시점에서, 하나의 데이터 블럭의 모든 데이터에 관한 연산이 완료했기 때문에, 블럭 스케일 팩터는, 블럭 스케일 팩터 검출기(54) 내의 레지스터의 현재의 값, 즉 "1"로 확정된다. 본 예로부터, 용이하게 유추되도록, 비록 이 후에 연산을 행해야되는 복수의 데이터 그룹이 있다고 해도, 2번째의 데이터 그룹에 적용된 상술된 처리를 반복하는 것이 가능하다.
이어서, 하기의 수학식 2의 신호 처리를 개시한다. 연산을 시작하기 전에, 블럭 스케일 팩터 검출기(54) 내의 레지스터의 내용을 블럭 스케일 팩터 레지스터(56)로 전송한다.
하기의 수학식 2에 의해 데이터 메모리(100)의 연산 데이터에 대해 재차 연산을 행할 때는, 연산 데이터 Y(0)∼Y(3)를 포함하는 1번째의 데이터 그룹이 데이터 메모리(100)로부터 판독되고, 연산 데이터 Y(0)∼Y(3)가 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼P3의 제2 시프터(10)로 분류된다. 이와 함께, 대응하는 그룹 스케일 팩터, 즉 본 예에서는 "2가이, 어드레스 버스(120) 경유로 주어지는 어드레스 정보에 의해 선택되고, 그룹 스케일 팩터 레지스터 파일(52)로부터 판독된다. 제2 시프터(10)에 있어서의 우시프트량은, 현재의 그룹 스케일 팩터와 블럭 스케일 팩터의 차분, 즉 본 예에서는, 2-1=1로 하여 주어진다. 이 때문에, 제2 시프터(10)는, 현재의 입력을 1비트 우시프트하도록 제어된다. 연산 데이터 Y(0)∼Y(3)에 대해, 이 후 적용되는 연산 처리는, 하기의 수학식 1에 대해 설명한 연산 처리와 완전히 마찬가지다.
이어서, 연산 데이터 Y(4)∼Y(7)를 포함하는 2번째의 데이터 그룹이 데이터 메모리(100)로부터 판독되고, 연산 데이터 Y(4)∼Y(7)가 각각 데이터 버스(110) 경유로 각 계산 유닛 P0∼P3의 제2 시프터(10)로 분류된다. 이 데이터 그룹에 대한 그룹 스케일 팩터는, 도 4에 도시된 바와 같이 "1"이다. 결과적으로, 이 데이터 그룹의 모든 연산 데이터는, 1-1=0, 즉 제2 시프터(10)로 시프트되지 않고 출력된다.
이 단계에서, 모든 연산 데이터 Y(0)∼Y(7)가, 데이터 블럭의 최대치의 소수점 위치에 자릿수 정합되고, 그 결과 나중에 계속되는 곱의 합 연산에 있어서, 고정 소수점 연산을 행하는 것이 가능해진다.
도 6에, 본 발명의 블럭 플로우팅 방식에 따라 얻어지는 연산 데이터 Y(0)∼Y(7), Z(0)∼Z(7)를 나타낸다. 그리고, 이 연산 결과를 이용하여 하기의 수학식 3에 의해 SNR을 계산하면, 하기의 수학식 8, 수학식 9에 도시된 바와 같다. 또, 하기의 수학식 8은, 하기의 수학식 1의 연산 결과에 기초한 SNR을 나타내는 식이고, 하기의 수학식 9는, 하기의 수학식 2의 연산 결과에 기초한 SNR을 나타내는 식이다.
또한, 도 7에, 하기의 수학식 1, 수학식 2에 의해, 종래의 고정 소수점 처리, 종래의 블럭 플로우팅 처리 및 본 발명에 따른 블럭 플로우팅 처리를 각각 행한 경우의 SNR을 통합하여 나타낸다. 도 7에 따르면, 본 발명에 따른 블럭 플로우팅 처리에서는, 연산 정밀도가 대폭 개선되는 것을 알 수 있다.
이와 같이 함으로써, 본 실시예에서는, 데이터 그룹의 각 데이터에 대해 연산을 행하고, 이들 연산 데이터를 대표하는 최소의 스케일 팩터를 그룹 스케일 팩터로서 검출하고, 검출한 그룹 스케일 팩터에 기초하여 각 연산 데이터에 대해 스케일링을 행하는 이들 일련의 처리를, 데이터 블럭의 각 데이터 그룹마다 행하고, 또한 검출한 그룹 스케일 팩터 중 최소의 것을 블럭 스케일 팩터로서 검출하고, 스케일링한 연산 데이터에 대해 재차 연산을 행할 때는, 연산 전에, 데이터 그룹의 각 연산 데이터에 대해 해당 데이터 그룹의 블럭 스케일 팩터 및 블럭 스케일 팩터에 기초하여 스케일링을 행하도록 하였다.
이에 따라, 곱의 합 연산기(12)로부터의 연산 데이터는, 그 데이터 그룹의 연산 데이터 중 절대치가 최대가 되지만 중복된 비트만큼 좌시프트되고나서 사사오입되고, 연산 데이터에 대해 재차 연산을 행할 때마다, 데이터 메모리(100)의 연산 데이터는, 그 데이터 블럭의 연산 데이터(전회의 연산에서의 곱의 합 연산기(12)로부터의 연산 데이터) 중 플러스의 최대치의 소수점 위치에 자릿수 합이 행해지고나서 연산이 행해지므로, 연산 과정에서의 데이터의 자릿수 누락이 적어진다. 또한, 종래의 구성에 대해 회로를 약간 추가 또는 변경하는 것만으로도 되므로, 회로를 간이하게 구성할 수 있다. 따라서, 종래에 비해, 비교적 간이한 구성에 의해, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시킬 수 있다.
또한, 본 실시예에서는, 복수의 계산 유닛 P0∼Pk-1을 구비하고, 데이터 그룹 단위로 데이터를 병렬 처리하도록 하였다. 이에 따라, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시키면서, 더욱 데이터의 연산 처리를 고속으로 행할 수도 있다.
또, 상기 실시예에서는, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)와 곱의 합 연산기(12)와 상호간에, 하드웨어 수단을 통해 데이터를 전송하는 것에 대해 설명했지만, 구체적으로는, 도 8에 도시된 구성을 채용할 수 있다. 도 8은, 각 계산 유닛 P0∼Pk-1의 제2 시프터(10)와 곱의 합 연산기(12)와 상호간에 데이터를 전송하기 위한 상세한 구성을 나타내는 블럭도이다.
도 8에서, 계산 유닛 P0은, 제2 시프터(10)로부터의 데이터를 보유하는 레지스터(11a)를 구비하고 있다. 계산 유닛 P1, P2는, 전단의 계산 유닛 P0, P1의 레지스터(11a)로부터의 데이터를 보유하는 레지스터(11a)와, 전단의 계산 유닛 P0, P1의 레지스터(11a)로부터의 데이터 및 제2 시프터(10)로부터의 데이터 중 어느 하나를 선택하여 곱의 합 연산기(12)에 출력하는 셀렉터(11b)를 구비하고 있다. 계산 유닛 P3은, 전단의 계산 유닛 P2의 레지스터(11a)로부터의 데이터 및 제2 시프터(12)로부터의 데이터의 어느 하나를 선택하여 곱의 합 연산기(12)에 출력하는 셀렉터(11b)를 구비하고 있다.
또한, 상기 실시예에 있어서는, 유닛 스케일 팩터 검출기(14)와, 그룹 스케일 팩터 검출기(50)를 구비하여 구성했지만, 이것에 한하지 않고, 예를 들면 도 9에 도시된 구성을 채용할 수 있다. 도 9는, 유닛 스케일 팩터 검출기(14) 및 그룹 스케일 팩터 검출기(50)의 다른 구성을 나타내는 블럭도이다.
도 9에서, 각 계산 유닛 P0∼P4는, 유닛 스케일 팩터 검출기(14)를 대신하여, XOR 어레이(15a)로 이루어지는 국소 블럭 플로우팅 유닛(15)으로 구성되어 있다. 그리고, 우선 순위 인코더(21)로 이루어지는 그룹 스케일 팩터 검출기(51)와, 각 계산 유닛 P0∼P4의 국소 블럭 플로우팅 유닛(15)과 그룹 스케일 팩터 검출기(51)를 접속하는 와이어드 OR 버스를 구비하여 구성되어 있다.
국소 블럭 플로우팅 유닛(15)은, 곱의 합 연산기(12)로부터의 연산 데이터를 입력하고, 그 연산 데이터의 인접하는 비트에 대해 배타적 논리합 연산을 행하여 출력하도록 되어 있다. 예를 들면, 4 비트의 연산 데이터를 입력한 경우, 최상위의 4번째의 비트 및 3번째의 비트에 대해 배타적 논리합 연산을 행한 것을 출력 데이터의 3번째의 비트로 하고, 동일한 요령으로, 3번째 및 2번째의 연산 결과를 출력 데이터의 2번째의 비트로 하고, 2번째 및 1번째의 연산 결과를 출력 데이터의 1번째의 비트로 하고, 그리고 최상위의 비트를 출력 데이터의 최상위의 비트로 하여 출력한다.
이에 따라, 각 계산 유닛 P0∼P4의 곱의 합 연산기(12)로부터의 연산 데이터의 스케일 팩터를 산출하고, 이들 스케일 팩터로부터 그룹 스케일 팩터를 산출하지 않아도, 각 계산 유닛 P0∼P4의 곱의 합 연산기(12)로부터의 연산 데이터로부터 직접 그룹 스케일 팩터를 검출할 수도 있다.
또한, 상기 실시예에서는, 수치 연산을 행하는데 본 발명을 적용한 경우에 대해 설명했지만, 이것에 한하지 않고, 본 발명의 주지를 일탈하지 않은 범위에서 다른 것에도 적용 가능하다.
또한, 상기 실시예에서는, 제어 로직(400)를, 내부의 로직에 따라 각 부의 제어를 행하도록 구성했지만, 이것에 한하지 않고, 제어 로직(400)를 대신하여, CPU, RAM 및 ROM을 버스 접속하여 데이터 연산 처리부를 구성하고, 데이터 연산 처리부는, CPU에 의해, 상기된 제어 순서를 나타낸 프로그램을 ROM으로부터 판독하여 실행하도록 구성할 수도 있다. 이 경우, 상기된 제어 순서를 나타낸 프로그램은, ROM에 저장되어 있지만, 이것에 한하지 않고, 상기된 제어 순서를 나타낸 프로그램이 기억된 기억 매체로부터, 그 프로그램을 RAM에 판독하여 실행할 수도 있다.
또한, 상기 실시예에서는, 본 발명에 따른 데이터 연산 처리 장치를, 데이터 메모리(100)와, 연산부(200)와, 제어부(300)와, 제어 로직(400)와, 어드레스 생성기(500)를 구비한 하드웨어로 구성했지만, 이것에 한하지 않고, 예를 들면 CPU, RAM 및 ROM를 버스 접속하여 구성하고, CPU에 의해, 각 부의 기능을 실현하기 위한 제어 프로그램을 ROM으로부터 판독하여 실행하도록, 일부 또는 전부를 소프트웨어로 구성할 수도 있다. 이 경우도, 제어 프로그램은, ROM에 저장되어 있지만, 이것에 한하지 않고, 제어 프로그램이 기억된 기억 매체로부터, 그 제어 프로그램을 RAM에 판독하여 실행할 수도 있다.
여기서, 기억 매체란, RAM, ROM 등의 반도체 기억 매체, FD, HD 등의 자기 기억형 기억 매체, CD, CDV, LD, DVD 등의 광학적 판독 방식 기억 매체, MO 등의 자기 기억형/광학적 판독 방식 기억 매체이고, 전자적, 자기적, 광학적 등의 판독 방법의 여하에 관계없이, 컴퓨터로 판독 가능한 기억 매체이면, 모든 기억 매체를 포함하는 것이다.
상기 실시예에 있어서, 데이터 메모리(100)는, 청구의 범위 제3항 또는 제4항에 기재된 기억 수단에 대응하여, 그룹 스케일 팩터 레지스터 파일(52) 및 블럭 스케일 팩터 레지스터(56)는, 청구의 범위 제4항에 기재된 제2 기억 수단에 대응하고 있다.
또한, 제2 시프터(10)는, 청구의 범위 제3항, 제4항, 제6항 또는 제7항에 기재된 제1 스케일링 수단에 대응하여, 곱의 합 연산기(12)는, 청구의 범위 제3항, 제5항, 제6항 또는 제7항에 기재된 연산 수단에 대응하고, 유닛 스케일 팩터 검출기(14)는, 청구의 범위 제3항 또는 제15항에 기재된 스케일 팩터 산출 수단에 대응하고, 제1 시프터(16)는, 청구의 범위 제3항 또는 제6항에 기재된 제2 스케일링 수단에 대응하고 있다.
또한, 그룹 스케일 팩터 검출기(50)는, 청구의 범위 제3항에 기재된 검출 그룹 스케일 팩터 검출 수단에 대응하고, 블럭 스케일 팩터 검출기(54)는, 청구의 범위 제3항에 기재된 블럭 스케일 팩터 검출 수단에 대응하고, 제어 로직(400)은, 청구의 범위 제3항 또는 제4항에 기재된 제어 수단에 대응하고 있다.
이상 설명한 바와 같이, 본 발명에 따른 청구의 범위 제1항 내지 제7항에 기재된 데이터 연산 처리 장치에 따르면, 종래에 비해 비교적 간이한 구성에 의해, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시킬 수 있다고 하는 효과를 얻을 수 있다.
또한, 본 발명에 따른 청구의 범위 제3항에 기재된 데이터 연산 처리 장치에 따르면, 블럭 플로우팅 방식으로 고정 소수점 연산을 행할 때의 연산 정밀도를 향상시키면서, 더욱 데이터의 연산 처리를 고속으로 행할 수 있다고 하는 효과도 얻을 수 있다.

Claims (7)

1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 그룹을 포함하여 구성된 데이터 블럭 단위로 데이터를 처리하는 데이터 연산 처리 장치에 있어서,
상기 데이터 그룹의 각 데이터에 대해 연산을 행하고, 이들 연산 데이터 중 절대치가 최대가 되지만 스케일 팩터를 그룹 스케일 팩터로서 검출하고, 검출한 그룹 스케일 팩터에 기초하여 상기 각 연산 데이터에 대해 스케일링을 행하는 이들 일련의 처리를, 상기 데이터 블럭의 각 데이터 그룹마다 행하고, 또한 검출한 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 블럭 스케일 팩터로서 검출하고,
스케일링한 연산 데이터에 대하여 재차 연산을 행할 때는, 연산 전에, 상기 데이터 그룹의 각 연산 데이터에 대해 상기 데이터 그룹의 그룹 스케일 팩터 및 상기 블럭 스케일 팩터에 기초하여 스케일링을 행하는 것을 특징으로 하는
데이터 연산 처리 장치.
제1항에 있어서,
스케일링한 연산 데이터에 대해 재차 연산을 행할 때는, 연산 전에, 상기 데이터 그룹의 각 연산 데이터에 대해 상기 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분에 기초하여 스케일링을 행하는 것을 특징으로 하는
데이터 연산 처리 장치.
복수의 계산 유닛을 구비하고, 1 또는 복수의 데이터를 포함하여 데이터 그룹이 구성되고, 또한 복수의 데이터 그룹을 포함하여 구성된 데이터 블럭 단위로, 데이터를 처리하는 데이터 연산 처리 장치에 있어서,
상기 각 계산 유닛은, 주어진 스케일 팩터에 기초하여 데이터에 대해 스케일링을 행하는 제1 스케일링 수단과, 상기 제1 스케일링 수단으로부터의 데이터에 대해 연산을 행하는 연산 수단과, 상기 연산 수단으로부터의 연산 데이터의 스케일 팩터를 산출하는 스케일 팩터 산출 수단과, 주어진 다른 스케일 팩터에 기초하여 상기 연산 수단으로부터의 연산 데이터에 대해 스케일링을 행하는 제2 스케일링 수단을 포함하고 있고,
또한, 데이터를 기억하기 위한 기억 수단과, 상기 각 계산 유닛의 스케일 팩터 산출 수단으로 산출한 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 그룹 스케일 팩터로서 검출하는 그룹 스케일 팩터 검출 수단과, 상기 그룹 스케일 팩터 검출 수단으로 검출한 그룹 스케일 팩터 중 절대치가 최대가 되는 연산 데이터에 대응하는 것을 블럭 스케일 팩터로서 검출하는 블럭 스케일 팩터 검출 수단과, 데이터 처리를 위한 제어를 행하는 제어 수단을 구비하고,
상기 제어 수단은, 상기 데이터 블럭 단위로 데이터를 상기 기억 수단으로부터 판독하고, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류하고, 상기 그룹 스케일 팩터 검출 수단으로 검출한 그룹 스케일 팩터를 상기 각 계산 유닛의 제2 스케일링 수단에 제공하고, 상기 각 계산 유닛의 제2 스케일링 수단으로부터의 연산 데이터를 상기 기억 수단에 저장하고,
상기 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 연산 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류함과 함께, 상기 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터를 상기 각 계산 유닛의 제1 스케일링 수단에 제공하는 것을
특징으로 하는 데이터 연산 처리 장치.
제3항에 있어서,
상기 그룹 스케일 팩터 및 상기 블럭 스케일 팩터를 기억하기 위한 제2 기억 수단을 구비하고,
상기 제어 수단은, 상기 그룹 스케일 팩터 및 상기 블럭 스케일 팩터를 연산 데이터와 대응시켜 상기 제2 기억 수단에 기억하고,
상기 기억 수단의 연산 데이터에 대해 재차 연산을 행할 때는, 대응하는 그룹 스케일 팩터 및 블럭 스케일 팩터를 상기 제2 기억 수단으로부터 판독하고, 상기 데이터 블럭의 각 데이터 그룹마다, 상기 데이터 그룹의 연산 데이터를 각각 상기 각 계산 유닛의 제1 스케일링 수단으로 분류하고, 상기 데이터 그룹의 그룹 스케일 팩터와 상기 블럭 스케일 팩터와의 차분으로 이루어지는 스케일 팩터를 상기 각 계산 유닛의 제1 스케일링 수단에 제공하는 것을 특징으로 하는
데이터 연산 처리 장치.
제3항 또는 제4항에 있어서,
상기 스케일 팩터 산출 수단은, 상기 연산 수단으로부터의 연산 데이터의 중복된 비트수를 산출하고, 이것을 스케일 팩터로서 산출하는 것을 특징으로 하는
데이터 연산 처리 장치.
제5항에 있어서,
상기 연산 수단은, 고정 소수점 연산기이고,
상기 제1 스케일링 수단은, 주어진 스케일 팩터에 상당하는 시프트량으로, 데이터에 대해 비트 시프트를 행하게 되어 있고
상기 제2 스케일링 수단은, 주어진 다른 스케일 팩터에 상당하는 시프트량으로, 상기 연산 수단으로부터의 연산 데이터에 대해 비트 시프트를 행하는 것을 특징으로 하는
데이터 연산 처리 장치.
제3항 내지 제6항 중 어느 한 항에 있어서,
상기 연산 수단은, 상기 제1 스케일링 수단으로부터의 데이터와 소정의 계수와의 곱의 합을 연산하는 곱의 합 연산기인 것을 특징으로 하는
데이터 연산 처리 장치.
KR10-2000-7014247A 1998-06-15 1999-06-14 데이터 연산 처리 장치 KR100398859B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19826252A DE19826252C2 (de) 1998-06-15 1998-06-15 Verfahren zur digitalen Signalverarbeitung
DE19826252.3 1998-06-15

Publications (2)

Publication Number Publication Date
KR20010052899A true KR20010052899A (ko) 2001-06-25
KR100398859B1 KR100398859B1 (ko) 2003-09-19

Family

ID=7870718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7014247A KR100398859B1 (ko) 1998-06-15 1999-06-14 데이터 연산 처리 장치

Country Status (8)

Country Link
US (1) US6728739B1 (ko)
EP (1) EP1094401B1 (ko)
JP (1) JP3736741B2 (ko)
KR (1) KR100398859B1 (ko)
AU (1) AU4165799A (ko)
DE (2) DE19826252C2 (ko)
TW (1) TW457441B (ko)
WO (1) WO1999066423A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4594957B2 (ja) * 2001-09-18 2010-12-08 旭化成株式会社 コンパイル装置
WO2003032157A1 (en) 2001-09-18 2003-04-17 Asahi Kasei Kabushiki Kaisha Compiler
US7620545B2 (en) 2003-07-08 2009-11-17 Industrial Technology Research Institute Scale factor based bit shifting in fine granularity scalability audio coding
DE102004059979B4 (de) * 2004-12-13 2007-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals
US8005671B2 (en) * 2006-12-04 2011-08-23 Qualcomm Incorporated Systems and methods for dynamic normalization to reduce loss in precision for low-level signals
US20080213554A1 (en) * 2007-03-02 2008-09-04 Andrei Borisovich Vinokurov Protective Glove for Technical Work
US8370606B2 (en) * 2007-03-16 2013-02-05 Atmel Corporation Switching data pointers based on context
US7797516B2 (en) * 2007-03-16 2010-09-14 Atmel Corporation Microcontroller with low-cost digital signal processing extensions
GB2454201A (en) * 2007-10-30 2009-05-06 Advanced Risc Mach Ltd Combined Magnitude Detection and Arithmetic Operation
US8280939B2 (en) * 2008-05-22 2012-10-02 Videoiq, Inc. Methods and apparatus for automatic accuracy-sustaining scaling of block-floating-point operands
US8805914B2 (en) * 2010-06-02 2014-08-12 Maxeler Technologies Ltd. Method and apparatus for performing numerical calculations
US9519457B2 (en) * 2011-05-16 2016-12-13 Nec Corporation Arithmetic processing apparatus and an arithmetic processing method
JP6225687B2 (ja) * 2013-02-18 2017-11-08 富士通株式会社 データ処理装置、およびデータ処理方法
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
EP3874597A4 (en) * 2018-10-31 2022-08-17 Telefonaktiebolaget Lm Ericsson (Publ) METHODS, APPARATUS AND MACHINE READABLE MEDIA FOR SIGNALING IN A BASE STATION
CN112308199B (zh) * 2019-07-26 2024-05-10 杭州海康威视数字技术股份有限公司 数据块的处理方法、装置及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4282581A (en) * 1979-10-15 1981-08-04 Sperry Corporation Automatic overflow/imminent overflow detector
US4727506A (en) * 1985-03-25 1988-02-23 Rca Corporation Digital scaling circuitry with truncation offset compensation
EP0202633B1 (en) * 1985-05-17 1991-01-23 Nec Corporation Processing circuit capable of raising throughput of accumulation
US4872132A (en) * 1987-03-13 1989-10-03 Zoran Corporation Method and means for block floating point arithmetic
JP3178026B2 (ja) 1991-08-23 2001-06-18 ソニー株式会社 ディジタル信号符号化装置及び復号化装置
JP2513139B2 (ja) 1993-07-27 1996-07-03 日本電気株式会社 信号処理プロセッサ
JPH09507941A (ja) 1995-04-18 1997-08-12 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン multiply−add浮動小数点シーケンスにおけるウエイト・サイクルなしのブロック正規化
JPH09128213A (ja) 1995-10-31 1997-05-16 Hitachi Ltd ブロックフローティング処理システムおよび方法
JPH1040073A (ja) 1996-07-24 1998-02-13 Matsushita Electric Ind Co Ltd ディジタル信号処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102395744B1 (ko) * 2021-09-16 2022-05-09 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치
WO2023042989A1 (ko) * 2021-09-16 2023-03-23 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 덧셈 연산 방법 및 이를 위한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치

Also Published As

Publication number Publication date
EP1094401A1 (en) 2001-04-25
EP1094401B1 (en) 2005-05-04
DE69925123D1 (de) 2005-06-09
US6728739B1 (en) 2004-04-27
AU4165799A (en) 2000-01-05
DE19826252C2 (de) 2001-04-05
DE19826252A1 (de) 1999-12-16
KR100398859B1 (ko) 2003-09-19
JP3736741B2 (ja) 2006-01-18
WO1999066423A1 (fr) 1999-12-23
EP1094401A4 (en) 2002-06-19
DE69925123T2 (de) 2006-03-02
TW457441B (en) 2001-10-01

Similar Documents

Publication Publication Date Title
KR100398859B1 (ko) 데이터 연산 처리 장치
CN108694038A (zh) 专用处理块中的混合精度浮点运算电路
EP0441121A2 (en) Arithmetic operation apparatus for elementary function
US8370415B2 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US6847986B2 (en) Divider
EP0416308A2 (en) Rectangular array signed digit multiplier
US6205462B1 (en) Digital multiply-accumulate circuit that can operate on both integer and floating point numbers simultaneously
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
EP2431865B1 (en) Semiconductor integrated circuit and index calculation method
KR970006408B1 (ko) 논리회로의 자동설계방법 및 그 장치와 승산기
US6952710B2 (en) Apparatus, methods and computer program products for performing high speed division calculations
CN114816335B (zh) 一种忆阻器阵列符号数乘法实现方法、装置及设备
US5008850A (en) Circuitry for multiplying binary numbers
US6047305A (en) Division circuit not requiring taking complements of divisor, dividend and remainder
CN114579079A (zh) 用于常数乘法的集成电路、操作其的方法和包括其的装置
CN112783469A (zh) 一种用于执行浮点指数运算的方法及装置
US20030187900A1 (en) Apparatus and method for calculation of divisions and square roots
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
US5381380A (en) Divide circuit having high-speed operating capability
US20240118866A1 (en) Shift array circuit and arithmetic circuit including the shift array circuit
JP2005227811A (ja) 近似回路
JP2914813B2 (ja) 誤り訂正復号装置
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
US20100293211A1 (en) Apparatus and method for generating mean value

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130509

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150602

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160706

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170608

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180806

Year of fee payment: 16

EXPY Expiration of term