KR20070014888A - 제곱근 계산 장치 및 방법 - Google Patents

제곱근 계산 장치 및 방법 Download PDF

Info

Publication number
KR20070014888A
KR20070014888A KR1020050069881A KR20050069881A KR20070014888A KR 20070014888 A KR20070014888 A KR 20070014888A KR 1020050069881 A KR1020050069881 A KR 1020050069881A KR 20050069881 A KR20050069881 A KR 20050069881A KR 20070014888 A KR20070014888 A KR 20070014888A
Authority
KR
South Korea
Prior art keywords
square root
value
linear
integer
approximator
Prior art date
Application number
KR1020050069881A
Other languages
English (en)
Other versions
KR100943580B1 (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 삼성전자주식회사
Priority to KR1020050069881A priority Critical patent/KR100943580B1/ko
Priority to US11/495,632 priority patent/US20070083587A1/en
Publication of KR20070014888A publication Critical patent/KR20070014888A/ko
Application granted granted Critical
Publication of KR100943580B1 publication Critical patent/KR100943580B1/ko

Links

Images

Classifications

    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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/52Multiplying; Dividing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 제곱근 계산 장치 및 방법에 관한 것으로, 특히 부동 소숫점(fixed point)을 사용하는 입력 신호에 대한 제곱근(square root)을 산출하는 장치 및 방법에 관한 것이다.
본 발명의 실시 예에 따른 제곱근 계산 장치는 입력되는 데이터에 대한 제곱근을 산출하는 제곱근 장치에 있어서, 임의의 입력 값을 수신하고, 짝수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제1 선형 제곱근 근사기와, 임의의 입력 값을 수신하고, 홀수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제2 선형 제곱근 근사기와, 임의의 입력 값을 수신하여 임의의 정수값(m)을 검출한 후, 상기 제1 선형 제곱근 근사기와 제2 선형 제곱근 근사기로 각각 출력하는 정수값 검출부와, 상기 정수값 검출부에서 출력된 값이 짝수 또는 홀수인지에 따라 상기 선형 제곱근 근사기의 값이 각각 출력될 수 있도록 제어하는 제어부와, 상기 제어부의 제어하에, 상기 선형 제곱근 근사기들의 값 중 하나를 출력하는 먹스(MUX)를 포함함을 특징으로 한다.
제곱근, 정수, 오차, 소수점

Description

제곱근 계산 장치 및 방법{APPARATUS AND METHOD FOR CALCULATING SQUARE ROOT}
도 1은 본 발명의 실시 예에 따른 제곱근 계산 장치의 블록 구성도,
도 2는 본 발명에 따른 제곱근 계산 방식을 설명하기 위한 도,
도 3은 본 발명의 실시 예에 따른 m 값 검출 장치의 블록 구성도,
도 4는 본 발명의 실시 예에 따른 제곱근 계산 장치의 제어 흐름도,
도 5a는 본 발명의 실시 예에 따라 m 이 짝수인 경우, 선형적 근사화된 제곱근 계산 장치의 블록 구성도,
도 5b는 본 발명의 실시 예에 따라 m이 홀수인 경우, 선형적 근사화된 제곱근 계산 장치의 블록 구성도,
도 6은 본 발명의 다른 실시 예에 따른 제곱근 계산 장치의 블록 구성도,
도 7은 본 발명의 실시 예에 따른 제곱근 계산 방식과 실제 제곱근과의 차이를 도시한 도,
도 8은 본 발명의 실시 예에 따른 제곱근 계산 방식과 실제 제곱근과의 정규화된 오차 제곱 그래프,
도 9는 본 발명의 실시 예에 따른 floor(z) 함수와 ceil(z)함수의 특성 곡선을 나타낸 도.
본 발명은 제곱근 계산 장치 및 방법에 관한 것으로, 특히 입력 신호에 대한 제곱근을 계산하는 장치 및 방법에 관한 것이다.
일반적으로 제곱근은 제곱하여 a가 되는 수를 a의 제곱근이라 한다. 실수 a와 자연수 n에 대하여 xn=a를 만족시키는 x가 존재할 때, 이것을 a의 n제곱근이라 하고, n=2일 경우를 제곱근이라고 한다. 양의 실수로서 a의 n제곱근이 되는 것을 √a로 나타낸다. √를 근호 또는 루트라 하며, 루트의 왼쪽 윗부분에 쓴 자연수 n을 근지수라고 한다. 제곱근의 경우는 근지수를 생략한다. 또한, a의 제곱근의 범위는 a>0 이면 절대값이 같은 양, 음의 두 수가 존재하며, 그 중 양인 것을 √a , 음인 것을 - √a 로 나타낸다. 즉, a 의 제곱근은 ±√a 이다. a=0이면 a의 제곱근은 0뿐이다. a<0일 때에는 a의 제곱근은 2 개 있지만, 모두 허수이다. 일반적으로 a≥0일 때 √a ≥0이므로, 임의의 실수 a에 대하여 하기 <수학식 1>과 같이 성립된다.
Figure 112005042186695-PAT00001
상기와 같은 제곱근을 계산하는 제곱근 계산 장치는 하드웨어 로직의 구현시, 대단히 넓은 범위에서 자주 사용되는 블록 중에 하나이다. 예를 들어, 상기 제곱근 계산 장치는 이동통신 시스템 뿐만 아니라 디지털 시스템에서 제곱근 연산이 필요한 경우, 이동 단말에서 수신 신호의 전력값으로부터 그 크기를 계산하고자 할 경우, 이동 단말에서 각종 분산값으로부터 표준편차 값을 계산하는 경우에 적용된다.
종래의 제곱근 계산 방식은 크게 두 가지로 구분된다. 첫 번째 제곱근 계산 방식은 참조 테이블(look-up table)을 사용하는 방식으로 입력 신호값 x의 범위를 결정하고, 그 범위 내에서의 x에 대한 제곱근을 상기 참조 테이블에 저장하여 출력하는 방식이다. 이와 같은 방식에서는 입력 신호값의 비트 수를 주소(address)로 하는 ROM(Read Only Memory) 테이블을 사용하며, 기 저장된 제곱근 값을 출력하는 방식을 사용한다.
그러나, 상기 참조 테이블을 사용하는 제곱근 계산 방식은 입력 신호값의 비트 수가 커질수록 제곱근 값을 저장하는 ROM 크기가 기하급수적으로 증가(exponential increase)하는 문제점이 있다. 즉, 입력 비트수가 1 비트 증가하면 ROM 크기는 두 배씩 증가한다. 예를 들어 입력 비트 수를 m 비트, 출력 비트 수를 n 비트라고 하면 제곱근을 저장하기 위한 메모리는
Figure 112005042186695-PAT00002
비트의 크기가 필요하다. 따라서, 입력 값의 범위가 큰 경우에는 상기 방식을 사용하기 어렵다.
두 번째 제곱근 계산 방식은 반복 연산(iteration)을 사용하여 제곱근을 계 산하는 방법이다. 즉, 입력 신호값 x와 출력 신호값 y 사이의 오차가 감소하도록 반복적으로 가감함으로써 y의 값이 실제 제곱근 값에 근접하도록 하는 방식이다.
그러나, 반복 연산을 사용하는 제곱근 계산 방식은 고속의 연산을 수행해야 하는 경우 적용하기 어렵다. 또한, 제곱근 계산시, 입력 신호값에 대하여 반복 연산을 수행하는 만큼 제곱근 값에 근접하는 값을 출력할 수 있으나 여러 번의 연산을 수행해야 하므로 전력 소모량이 증가되는 문제점이 있다.
따라서 본 발명의 목적은 제곱근의 근사값을 계산하는 제곱근 계산 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 별도의 메모리를 사용하지 않고 고속의 제곱근 계산을 수행할 수 있는 제곱근 계산 장치 및 방법을 제공함에 있다.
본 발명의 실시 예에 따른 제곱근 계산 장치는 입력되는 데이터에 대한 제곱근을 산출하는 제곱근 장치에 있어서, 임의의 입력 값을 수신하고, 짝수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제1 선형 제곱근 근사기와, 임의의 입력 값을 수신하고, 홀수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제2 선형 제곱근 근사기와, 임의의 입력 값을 수신하여 임의의 정수값(m)을 검출한 후, 상기 제1 선형 제곱근 근사기와 제2 선형 제곱근 근사기로 각각 출력하는 정수값 검출부와, 상기 정수값 검출부에서 출력된 값이 짝수 또는 홀수인지에 따라 상기 선형 제곱근 근사기의 값이 각 각 출력될 수 있도록 제어하는 제어부와, 상기 제어부의 제어하에, 상기 선형 제곱근 근사기들의 값 중 하나를 출력하는 먹스(MUX)를 포함함을 특징으로 한다.
본 발명의 실시 예에 따른 제곱근 계산 방법은 입력되는 데이터에 대한 제곱근을 산출하는 방법에 있어서, 임의의 입력 값에 대하여
Figure 112005042186695-PAT00003
을 만족하는 정수값(m)을 검출하는 과정과, 상기 정수값이 짝수 또는 홀수인지를 판단하는 과정과, 상기 정수값이 짝수 또는 홀수인지에 따라서 선형 근사 방법에 의한 제곱근을 각각 연산하는 과정을 포함함을 특징으로 한다.
하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 따른 제곱근 계산 장치는 도 1을 참조하여 설명한다. 입력 값 x가 입력되면, 제1 선형 제곱근 근사기(110), 제2 선형 제곱근 근사기(120), m값 검출부(140)로 입력된다.
상기 제1 선형 제곱근 근사기(110)와 제2 선형 제곱근 근사기(120)는 선형적 근사 방식에 의해서 제곱근을 계산한다. 입력 신호값 x 에 대한 제곱근을 구하기 위하여 먼저 x 보다 작거나 같은 a와 x 보다 큰 b를 구한다. 그러면, x의 제곱근은 단조 증가 함수이므로 도 2에 도시한 바와 같이 a의 제곱근과 b의 제곱근 사이에 존재하게 되며 하기 <수학식 2>와 같이 선형적 근사 방법에 의하여 계산이 가능하다.
Figure 112005042186695-PAT00004
본 발명에서는 상기 a, b의 값으로 2의 거듭 제곱값을 사용한다. 즉, 입력 신호 x 에 대한 제곱값을 구하기 위하여
Figure 112005042186695-PAT00005
을 만족하는 정수값 m 을 구한다(이때, m >= 0). 정수값 m은 도 3과 같은 m값 검출 장치(이하, 'm 값 검출부'라 칭함)를 통해서 검출된다.
상기 m 값 검출부(140)는 m 값을 검출한다. 상기 m 값 검출부(140)에서 검출된 m 값이 제1 선형 제곱근 근사기(110), 제2 선형 제곱근 근사기(120)에 입력된다.
상기 m 값 검출부(140)는 도 3을 참조하여 설명하면 다음과 같다. 입력값 x가 Non-zero MSB(non-zero MSB(Most Significant Bit)) 검출부(300)에 입력되면, 상기 Non-zero MSB 검출부(300)는 입력 x의 0 이 아닌 MSB 값을 검출하여 출력한 다. 상기 출력값은 a 값 검출부(310)와 Non-zero MSB 위치 검출부(320)로 분기된다.
상기 a 값 검출부(310)에서는
Figure 112005042186695-PAT00006
을 출력한다. 즉, 상기 a 값 검출부(310)는 상기 입력 x 에서 검출된 MSB '1'만 남기고 모두 '0'으로 만들어서
Figure 112005042186695-PAT00007
을 출력한다.
반면에, 상기 Non-zero MSB 위치 검출부(320)에서는 m 을 출력한다. 즉, 상기 Non-zero MSB 위치 검출부(320)는 입력 x의 0이 아닌 MSB의 위치를 검출하여 m값을 출력한다.
즉, 정수값 m을 구하기 위해 입력 값 x를 이진수로 표현했을 때 0이 아닌 MSB만을 남기고 다른 자리의 비트는 모두 0으로 바꾸면 m을 얻을 수 있다. 예를 들어, x 를 '0b00010101'이라고 한다면 m 은 '0b00010000'이 된다.
따라서, 상기 <수학식 2>에
Figure 112005042186695-PAT00008
을 대입하여 계산하면 하기 <수학식 3>와 같이 제곱근의 선형 근사식을 얻을 수 있다.
Figure 112005042186695-PAT00009
그런데, 상기 <수학식 3>을 구현하게 되면 m이 홀수(odd)인 경우,
Figure 112005042186695-PAT00010
연산은 단순한 비트 이동 연산이 아니며 √2를 추가적으로 처리해야 하기 때문에 복잡하다. 따라서, 상기 <수학식 3>에서의 연산을 보다 간단하게 구현하기 위하여 m 이 홀수(odd)인 경우와 짝수(even)인 경우로 구분하여 계산하면 <수학식 4> 및 <수학식 5>와 같이 비트 이동 연산만을 포함하는 수학식으로 변경 가능하다. 하기 <수학식 4>에서 m은 2q로, <수학식 5>에서 m은 2q+1로 정의한다. 또한, q는 0 이상인 정수로 정의한다.
Figure 112005042186695-PAT00011
Figure 112005042186695-PAT00012
상기 제1 선형 제곱근 근사기(110)는 상기 <수학식 4>과 같은 연산을 수행하고, 상기 제2 선형 제곱근 근사기(120)는 상기 <수학식 5>와 같은 연산을 수행한다.
제어부(150)는 m값 검출부(140)에서 출력된 m값이 홀수인지 짝수인지를 판단하여 상기 m값이 짝수일 경우, 상기 제1 선형 제곱근 근사기(110)에서 연산된 값이 출력될 수 있도록 먹스(MUX)(130)를 제어한다.
또한, 제어부(150)는 m 값 검출부(140)에서 출력된 m값이 홀수일 경우, 상기 제2 선형 제곱근 근사기(120)에서 연산된 값이 출력될 수 있도록 먹스(130)를 제어한다.
상기 먹스(130)는 상기 제어부(150)의 제어 하에, 상기 제1 선형 제곱근 제어기(110) 또는 상기 제2 선형 제급근 제어기(120)에서 연산된 값을 출력한다.
상기와 같은 구성을 갖는 제곱근 계산 장치에서의 동작을 도 4의 순서도를 참조하여 다시 설명하기로 한다.
먼저, 401 단계에서, m값 검출부(140)는 m값을 검출하여 출력한다. 그러면, 제어부(150)는 402 단계에서 상기 m값 검출부(140)에서 검출된 m 값이 짝수인가를 판단한다. 만약, m 값이 짝수일 경우, 제어부(150)는 403 단계에서 상기 제1 선형 제곱근 근사기(110)에서 연산된 값이 출력될 수 있도록 먹스(MUX)(130)를 제어한다.
그러나, m 값이 홀수일 경우, 제어부(150)는 404 단계에서 상기 제2 선형 제곱근 근사기(120)에서 연산된 값이 출력될 수 있도록 먹스(130)를 제어한다.
한편, 상기 <수학식 4>과 <수학식 5>에서의 2- √2와 √2-1의 상수 연산은 복잡하다. 복잡한 연산을 간단하게 수행하기 위해서 도 5와 같은 제곱근 계산 장치를 제안한다.
우선, <수학식 4>과 <수학식 5>에서 √2-1를 c로, 2-√2를 d로 정의한다.
도 5a를 참조하면, 짝수인 m 값이 제2 오른쪽 이동기(제2 Right-Shift)(504)로 입력된다. 그러면, 상기 제2 오른쪽 이동기(504)는 입력된 m을 1 비트 만큼 오른쪽으로 이동한다. 즉, 입력된 m을 2로 나누어 q가 출력되도록 한다. 상기 출력된 q는 제1 오른쪽 이동기(제1 Right-Shift)(502)와 제1 왼쪽 이동기(제1 Left-Shift)(503)로 입력된다.
한편, 제1 곱셈기(501)는 입력 x 와 c를 곱한 후, 제1 오른쪽 이동기(502)로 출력한다. 상기 제1 오른쪽 이동기(502)는 상기 제2 오른쪽 이동기(504)에서 출력된 q와 상기 입력 x 와 c를 곱한 값이 입력되면 q 비트 만큼 오른쪽으로 이동한다. 즉,
Figure 112005042186695-PAT00013
으로 나누어 제1 덧셈기(505)로 출력한다.
그리고, d와 상기 제2 오른쪽 이동기(504)에서 출력된 q가 제1 왼쪽 이동기(503)로 입력되면, 상기 제1 왼쪽 이동기(503)는 q 비트 만큼 왼쪽으로 이동한다. 즉, d와 q에
Figure 112005042186695-PAT00014
을 곱하여 제1 덧셈기(505)로 출력한다. 따라서, 상기 제1 덧셈기(505)에서 m이 짝수일 경우의 S(x)값을 계산할 수 있다.
한편, 도 5b를 참조하면, 홀수인 m이 제4 오른쪽 이동기(514)로 입력되면, 상기 제4 오른쪽 이동기(514)는 1 비트 만큼 오른쪽으로 이동한다. 즉, 홀수인 m을 2로 나누어 q가 출력되도록 한다. 상기 출력된 q는 제3 오른쪽 이동기(512)와 제2 왼쪽 이동기(513)로 입력된다.
한편, 제2 곱셈기(511)는 입력 x 와 d를 곱한 후, 제3 오른쪽 이동기(502)로 출력한다. 상기 제3 오른쪽 이동기(502)는 상기 제4 오른쪽 이동기(514)에서 출력된 q와 상기 입력 x 와 d를 곱한 값이 입력되면 q+1 비트 만큼 오른쪽으로 이동한다. 즉, q와 입력 x 와 d를 곱한 값을
Figure 112005042186695-PAT00015
로 나누어 제2 덧셈기(515)로 출력한다.
그리고, c와 제4 오른쪽 이동기(514)에서 출력된 q가 제2 왼쪽 이동기(513)로 입력되면, 상기 제2 왼쪽 이동기(513)는 q+1 비트 만큼 왼쪽으로 이동한다. 즉, c와 q에
Figure 112005042186695-PAT00016
을 곱하여 제2 덧셈기(515)로 출력한다. 따라서, 상기 제2 덧셈기(515)에서 m이 홀수 일 경우 S(x)값을 계산할 수 있다.
도 5a 및 도 5 b와 같은 제곱근 계산 장치를 통해서 입력값 x와 곱셈을 수행하는 과정이 1 번 필요하며, 비트 이동 연산은 3 번 필요하며, 덧셈 연산은 1 번만 필요하여 단순한 로직에 의해 설계 가능하다.
한편, 본 발명의 다른 실시 예에 따른 제곱근 계산 장치는 도 6에 도시하였다. 도 6은 입력값 x의 유한 비트수를 13 비트로 가정한 경우의 제곱근 계산 장치를 나타낸 것이다. 입력 값 x의 유한 비트 13 비트가 제곱근 계산 장치에 입력되면, 제1 선형 제곱근 근사기(110), 제2 선형 제곱근 근사기(120), m 값 검출부(140)로 입력된다.
상기 m 값 검출부(140)는 도 3을 참조하여 설명한 m 값 검출 장치와 동일하다. 상기 m 값 검출부(140)에서 검출된 m 값이 제1 선형 제곱근 근사기(110), 제2 선형 제곱근 근사기(120)에 입력된다.
상기 제1 선형 제곱근 근사기(110)는 하기 <수학식 6>와 같은 연산을 수행하고, 상기 제2 선형 제곱근 근사기(120)는 하기 <수학식 7>과 같은 연산을 수행한다.
하기 <수학식 6>은 상기 <수학식 4>에서 √2-1를 c로, 2-√2를 d로 정의하고 유한 비트수를 갖도록 변형한 것이고, 정수만을 출력하도록 S(x)에 정수(Integer)를 취한 것이다. 또한, 하기 <수학식 7>은 상기 <수학식 5>에서 √2-1를 c로, 2-√2를 d로 정의하고, 유한 비트수를 갖도록 변형한 것이고, 정수만을 출력하도록 S(x)에 정수(Integer)를 취한 것이다.
Figure 112005042186695-PAT00017
Figure 112005042186695-PAT00018
도 6에서는 c와 d는 각각
Figure 112005042186695-PAT00019
,
Figure 112005042186695-PAT00020
과 같이 유효 비트수를 7 비트(010101, 1001010) 사용하도록 하였다. 또한, 도 6에서는 p=1을 사용한 경우를 나타낸 것이다. 또한, 상기 <수학식 6>, <수학식 7>에서 마지막 항으로 상수 p를 더하는 것은 실제 제곱근 값과 본 발명에서 제안한 제곱근 계산 방식과의 오차를 감소시키기 위하여 추가한 것이다. 또한, 상기 <수학식 6>, <수학식 7>에서 p의 값에 관계없이 입력 값이 0인 경우는 S(x) 또는
Figure 112005042186695-PAT00021
를 0으로 출력한다.
제어부(150)는 m값 검출부(140)에서 출력된 m값이 홀수인지 짝수인지를 판단하여 상기 m값이 짝수일 경우, 상기 제1 선형 제곱근 근사기(110)에서 <수학식 6>와 같이 연산된 7 비트의 값이 출력될 수 있도록 먹스(MUX)(130)를 제어한다.
또한, 제어부(150)는 m 값 검출부(140)에서 출력된 m값이 홀수일 경우, 상기 제2 선형 제곱근 근사기(120)에서 <수학식 7>과 같이 연산된 7 비트의 값이 출력될 수 있도록 먹스(130)를 제어한다.
상기 먹스(130)는 상기 제어부(150)의 제어 하에, 상기 제1 선형 제곱근 제어기(110) 또는 상기 제2 선형 제곱근 제어기(120)에서 연산된 값을 출력한다.
도 7은 도 6에 의한 제곱근 계산 방식과 실제 제곱근과의 차이를 도시한 것이다. 도 7은 <수학식 6>와 <수학식 7>에서 p=1로 설정한 경우인데, 두 계산 방식에서의 차이가 작음을 확인할 수 있다. 이를 좀더 정량화하기 위하여 하기 <수학식 8>과 같이 실제 제곱근 값과 본 발명의 제곱근 계산값의 정규화된 오차의 제곱(normalized squared error)을 정의한다.
Figure 112005042186695-PAT00022
도 8은 상기 <수학식 8>을 입력값 x에 대하여 도시한 것으로 p=0, p=1인 경우를 구분하여 나타내었다. 여기서, p=0은 소숫점 이하의 자리는 버리는 것이고, p=1은 소숫점 이하의 자리를 버린 후, 1을 더하는 것으로 정의한다. 도 8을 살펴보면, p=1인 경우가 p=0을 사용한 경우에 비해서 실제 제곱근 값에 더 가까운 것을 확인할 수 있다. 즉, p=1을 사용하는 것이 에러가 적기 때문에 보다 더 효율적이다. p=0 과 p=1인 경우의 의미는 도 9에서 나타낸 바와 같이 floor(S(x)) 일 때 p=0이며, ceil(S(x)) 일 때 p=1이 됨을 나타낸다.
추가적으로 상기 기술한 본 발명을 구현함에 있어 m 값이 짝수인 경우 제1 선형 제곱근 근사기(110)만 동작하면 되므로 제 2 선형 제곱근 근사기(120)는 동작하지 않도록 함으로써 전력 소모를 감소시킬 수 있다. 마찬가지로 m 값이 홀수인 경우 제2 선형 제곱근 근사기(120)만 동작하면 되므로 제 1 선형 제곱근 근사기(110)는 동작하지 않도록 함으로써 전력 소모를 감소시킬 수 있다.
도 7 및 도 8에서 기술한 바와 같이 본 발명에 의한 제곱근 계산 방식은 실제 제곱근과의 차이가 매우 작은 것을 확인할 수 있다. 따라서, 본 발명의 제곱근 계산 방식이 실제 제곱근의 근사값으로 충분히 사용 가능함을 알 수 있다. 또한, 본 발명에 의한 제곱근 계산 방식은 그 연산량이 곱셈 1회, 덧셈 1회 및 비트 이동 연산 3회로 계산이 가능하므로 하드웨어 복잡도가 낮아지며, 고속의 제곱근 계산이 가능하다. 아울러 별도의 저장 공간이 필요하지 않기 때문에 하드웨어로의 구현시 제곱근 연산이 필요한 경우에 적용 가능하다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐 만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명 중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 제곱근의 근사값을 구할 수 있다.
또한, 본 발명은 연산량이 곱셈 1회, 덧셈 1회 및 비트 이동 연산 3회로 계산이 가능하기 때문에 하드웨어 복잡도가 낮아진다.
또한, 본 발명은 별도의 메모리를 사용하지 않고 고속의 제곱근 연산을 수행할 수 있다.
또한, 본 발명은 m 값이 짝수인 경우 제1 선형 제곱근 근사기만 동작하면 되므로 제 2 선형 제곱근 근사기는 동작하지 않도록 함으로써 전력 소모를 감소시킬 수 있다. 마찬가지로 m 값이 홀수인 경우 제2 선형 제곱근 근사기만 동작하면 되므 로 제 1 선형 제곱근 근사기는 동작하지 않도록 함으로써 전력 소모를 감소시킬 수 있는 효과가 있다.

Claims (18)

  1. 입력되는 데이터에 대한 제곱근을 산출하는 제곱근 장치에 있어서,
    임의의 입력 값을 수신하고, 짝수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제1 선형 제곱근 근사기와,
    임의의 입력 값을 수신하고, 홀수의 정수값(m)을 수신하여 선형 근사 방법에 의해서 제곱근을 연산하여 출력하는 제2 선형 제곱근 근사기와,
    임의의 입력 값을 수신하여 임의의 정수값(m)을 검출한 후, 상기 제1 선형 제곱근 근사기와 제2 선형 제곱근 근사기로 각각 출력하는 정수값 검출부와,
    상기 정수값 검출부에서 출력된 값이 짝수 또는 홀수인지에 따라 상기 선형 제곱근 근사기들의 값이 각각 출력될 수 있도록 제어하는 제어부와,
    상기 제어부의 제어하에, 상기 선형 제곱근 근사기들의 값 중 하나를 출력하는 먹스(MUX)를 포함함을 특징으로 하는 상기 장치.
  2. 제1항에 있어서,
    상기 제어부는 상기 m 값 검출부의 출력이 짝수일 경우, 상기 제1 선형 제곱근 근사기에서 연산된 값이 출력될 수 있도록 상기 먹스를 제어함을 특징으로 하는 상기 장치.
  3. 제1항에 있어서,
    상기 제어부는 상기 m 값 검출부의 출력이 홀수일 경우, 상기 제2 선형 제곱근 근사기에서 연산된 값이 출력될 수 있도록 상기 먹스를 제어함을 특징으로 하는 상기 장치.
  4. 제1항에 있어서,
    상기 정수값 검출부는
    Figure 112005042186695-PAT00023
    을 만족하는 정수(m)를 검출함을 특징으로 하는 상기 장치.
  5. 제1항에 있어서,
    상기 정수값 검출부는,
    임의의 입력 신호에서 0이 아닌 최상위 비트를 검출하는 최상위 비트 검출부와,
    상기 최상위 비트 검출부에서 최상위 비트가 검출되면, 상기 최상위 비트만 남기고 모두 0으로 만들어서
    Figure 112005042186695-PAT00024
    을 출력하는
    Figure 112005042186695-PAT00025
    검출부와,
    상기 최상위 비트 검출부에서 최상위 비트가 검출되면, 0이 아닌 최상위 비 트의 위치를 검출하여 정수값(m)을 출력하는 최상위 비트 위치 검출부를 포함함을 특징으로 하는 상기 장치.
  6. 제1항에 있어서,
    상기 제1 선형 제곱근 근사기는 하기 <수학식 9>에 의해서 연산됨을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00026
    이때, m은 2q, q는 0 이상인 정수로 정의함.
  7. 제1항에 있어서,
    상기 제2 선형 제곱근 근사기는 하기 <수학식 10>에 의해서 연산됨을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00027
    이때, m은 2q+1, q는 0 이상인 정수로 정의함.
  8. 제6항에 있어서,
    상기 제1 선형 제곱근 근사기는 상기 S(x)를 유한 비트수를 갖도록 표현할 경우, 하기 <수학식 11>에 의해서 연산됨을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00028
    이때, c는 √2-1로 d는 2-√2로 정의함.
  9. 제7항에 있어서,
    상기 제2 선형 제곱근 근사기는 상기 S(x)를 유한 비트수를 갖도록 표현한 경우, 하기 <수학식 12>에 의해서 연산됨을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00029
    이때, c는 √2-1로 d는 2-√2로 정의함.
  10. 제8항에 있어서,
    상기
    Figure 112005042186695-PAT00030
    와 실제 제곱근 값의 정규화된 오차의 제곱은 하기 <수학식 13>에 의해서 정의함을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00031
  11. 제9항에 있어서,
    상기
    Figure 112005042186695-PAT00032
    와 실제 제곱근 값의 정규화된 오차의 제곱은 하기 <수학식 14>에 의해서 정의함을 특징으로 하는 상기 장치.
    Figure 112005042186695-PAT00033
  12. 입력되는 데이터에 대한 제곱근을 산출하는 방법에 있어서,
    임의의 입력 값에 대하여
    Figure 112005042186695-PAT00034
    을 만족하는 정수값(m)을 검출하는 과정과,
    상기 정수값이 짝수 또는 홀수인지를 판단하는 과정과,
    상기 정수값이 짝수 또는 홀수인지에 따라서 선형 근사 방법에 의한 제곱근을 각각 계산하는 과정을 포함함을 특징으로 하는 상기 방법.
  13. 제12항에 있어서,
    상기 m 값이 짝수일 경우, 하기 <수학식 15>에 의해서 연산됨을 특징으로 하 는 상기 방법.
    Figure 112005042186695-PAT00035
    이때, m은 2q, q는 0 이상인 정수로 정의함.
  14. 제12항에 있어서,
    상기 m 값이 홀수일 경우는 하기 <수학식 16>에 의해서 연산됨을 특징으로 하는 상기 방법.
    Figure 112005042186695-PAT00036
    이때, m은 2q+1, q는 0 이상인 정수로 정의함.
  15. 제13항에 있어서,
    상기 S(x)를 유한 비트수를 갖도록 표현할 경우, 하기 <수학식 17>에 의해서 연산됨을 특징으로 하는 상기 방법.
    Figure 112005042186695-PAT00037
    이때, c는 √2-1로 d는 2-√2로 정의함을 특징으로 함.
  16. 제14항에 있어서,
    상기 S(x)를 유한 비트수를 갖도록 표현한 경우, 하기 <수학식 18>에 의해서 연산됨을 특징으로 하는 상기 방법.
    Figure 112005042186695-PAT00038
    이때, c는 √2-1로 d는 2- 2로 정의함.
  17. 제15항에 있어서,
    상기
    Figure 112005042186695-PAT00039
    와 실제 제곱근 값의 정규화된 오차의 제곱은 하기 <수학식 19>에 의해서 정의함을 특징으로 하는 상기 방법.
    Figure 112005042186695-PAT00040
  18. 제16항에 있어서,
    상기
    Figure 112005042186695-PAT00041
    와 실제 제곱근 값의 정규화된 오차의 제곱은 하기 <수학식 20>에 의해서 정의함을 특징으로 하는 상기 방법.
    Figure 112005042186695-PAT00042
KR1020050069881A 2005-07-29 2005-07-29 제곱근 계산 장치 및 방법 KR100943580B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050069881A KR100943580B1 (ko) 2005-07-29 2005-07-29 제곱근 계산 장치 및 방법
US11/495,632 US20070083587A1 (en) 2005-07-29 2006-07-31 Apparatus and method for calculating square root

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050069881A KR100943580B1 (ko) 2005-07-29 2005-07-29 제곱근 계산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20070014888A true KR20070014888A (ko) 2007-02-01
KR100943580B1 KR100943580B1 (ko) 2010-02-23

Family

ID=37912070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050069881A KR100943580B1 (ko) 2005-07-29 2005-07-29 제곱근 계산 장치 및 방법

Country Status (2)

Country Link
US (1) US20070083587A1 (ko)
KR (1) KR100943580B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017026775A1 (ko) * 2015-08-10 2017-02-16 한국전력공사 혼합 제곱 연산 방법, 장치 및 이의 저장매체

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2528497B (en) * 2014-07-24 2021-06-16 Advanced Risc Mach Ltd Apparatus And Method For Performing Floating-Point Square Root Operation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298951A (en) 1979-11-30 1981-11-03 Bunker Ramo Corporation Nth Root processing apparatus
US4700319A (en) * 1985-06-06 1987-10-13 The United States Of America As Represented By The Secretary Of The Air Force Arithmetic pipeline for image processing
US4949296A (en) * 1988-05-18 1990-08-14 Harris Corporation Method and apparatus for computing square roots of binary numbers
US5367702A (en) * 1993-01-04 1994-11-22 Texas Instruments Incorporated System and method for approximating nonlinear functions
US6321245B1 (en) * 1997-04-02 2001-11-20 International Business Machines Corporation Method and system for performing fast division using non linear interpolation
DE69835431T2 (de) * 1997-06-03 2007-06-06 Hitachi, Ltd. Bildkodier-und-dekodierverfahren und-vorrichtung
KR19990009212A (ko) * 1997-07-08 1999-02-05 김영환 제곱근 근사화 방법
GB2333408A (en) * 1998-01-17 1999-07-21 Sharp Kk Non-linear digital-to-analog converter
JP2000260137A (ja) * 1999-03-11 2000-09-22 Fujitsu Ltd 記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017026775A1 (ko) * 2015-08-10 2017-02-16 한국전력공사 혼합 제곱 연산 방법, 장치 및 이의 저장매체

Also Published As

Publication number Publication date
KR100943580B1 (ko) 2010-02-23
US20070083587A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
US6502118B1 (en) Fast system and method for producing a logarithmic signal approximation with variable precision
EP2645199A1 (en) Transcendental and non-linear functions using series expansion
JP2004005662A (ja) 対数、逆対数、逆数の近似値を求めるための回路、システム、および方法
US9798520B2 (en) Division operation apparatus and method of the same
US8504954B1 (en) Methodology for automatically generating series-approximated components
US10296290B2 (en) Digital signal processor
CA2352846A1 (en) Digital value processor
US20020032712A1 (en) Exponential calculation device and decoding device
KR20150059082A (ko) 풀 인-라인 비정규 서포트를 수반하는 높은 성능의 부동 소수점 덧셈기
US20170017467A1 (en) Integer/floating point divider and square root logic unit and associates methods
CN112651496A (zh) 一种处理激活函数的硬件电路及芯片
JP3493574B2 (ja) 逆量子化装置及び逆量子化方法
KR100241072B1 (ko) 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치
KR20160012916A (ko) 부동 소수점 제곱근 연산 장치 및 방법
KR100943580B1 (ko) 제곱근 계산 장치 및 방법
JP2004070947A (ja) ヒストグラム計算システム、電子試験装置及びヒストグラム計算方法
CN115857655B (zh) Gpu的功耗控制方法、装置、设备、介质和程序产品
JP4219926B2 (ja) 電子回路中で乗算演算または除算演算を行う方法およびその装置
US20070174378A1 (en) Computation of logarithmic and exponential functions
US20140372493A1 (en) System and method for accelerating evaluation of functions
US7644116B2 (en) Digital implementation of fractional exponentiation
KR102281047B1 (ko) 4개의 입력 내적 회로를 사용하는 삼각 함수 계산
US20050223053A1 (en) Static floating point arithmetic unit for embedded digital signals processing and control method thereof
CN110741552B (zh) 用于界限检查的数据处理装置及其操作方法
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质

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: 20130130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee