KR102336535B1 - 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치 - Google Patents

테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR102336535B1
KR102336535B1 KR1020210131634A KR20210131634A KR102336535B1 KR 102336535 B1 KR102336535 B1 KR 102336535B1 KR 1020210131634 A KR1020210131634 A KR 1020210131634A KR 20210131634 A KR20210131634 A KR 20210131634A KR 102336535 B1 KR102336535 B1 KR 102336535B1
Authority
KR
South Korea
Prior art keywords
fixed
integer part
square root
point data
terms
Prior art date
Application number
KR1020210131634A
Other languages
English (en)
Inventor
이두현
이원오
오종환
이상환
양광수
정진희
김준환
김동현
주형진
최형원
Original Assignee
(주) 가온칩스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 가온칩스 filed Critical (주) 가온칩스
Priority to KR1020210131634A priority Critical patent/KR102336535B1/ko
Application granted granted Critical
Publication of KR102336535B1 publication Critical patent/KR102336535B1/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
    • 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/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/5443Sum of products
    • 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/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5523Calculates a power, e.g. the square, of a number or a function, e.g. polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치에 관한 것이다. 일 실시예에 따른 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제어장치는 피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 피제곱근 전처리부; 부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 곱셈 연산부; 및 미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 쉬프트 및 덧셈 연산부를 포함할 수 있다.

Description

테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치{THE METHOD FOR CALCULATING SQUARE ROOT USING TAYLOR SERIES AND DEVICE USING THE SAME}
아래의 실시예들은 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치에 관한 것이다.
제곱근 연산을 수행하기 위하여 기존에 다양한 방식이 알려져 있다. 일반적으로, 제곱근 연산을 수행하는 방식으로 뉴턴-랩슨 알고리즘(Newton-Raphson algorithm)을 적용한 반복 계산을 수행하여 제곱근 연산을 수행하는 방식이 널리 알려져 있다. 그러나, 이 방식은 입력 피제곱근에 따라, 반복 계산(iteration)이 많아지고 계산에 필요한 지연 시간(latency)이 길어지게 된다는 문제점이 있다.
또한, 제곱근 연산을 수행하기 위한 다른 방식으로는 나눗셈과 제곱근을 함께 수행하도록 설계하는 방식 및 Look-up table(LUT)을 참조하는 방식이 있다.
그러나, 이러한 방식들은 많은 하드웨어 리소스를 차지한다는 문제점이 있다.
최근에는, 이러한 문제점을 해결하기 위한 연구가 계속되고 있다.
해결하고자 하는 일 과제는 테일러 급수를 이용하여 제곱근 연산을 수행함으로써, 계산량 및 계산에 필요한 지연시간이 감소되고, 계산에 사용되는 하드웨어 리소스를 감소시키는 제곱근 연산 방법을 제공하는 것이다.
본 출원의 해결하고자 하는 과제가 상술한 과제로 제한되는 것은 아니며, 언급되지 아니한 과제들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 출원의 일 양상에 따르면, 일 실시예에 따른 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제어장치는 피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 피제곱근 전처리부; 부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 곱셈 연산부; 및 미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 쉬프트 및 덧셈 연산부를 포함할 수 있다.
본 출원의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 출원의 일 실시예에 의하면 테일러 급수를 이용하여 제곱근 연산을 수행함으로써, 계산량 및 계산에 필요한 지연시간이 감소되고, 계산에 사용되는 하드웨어 리소스를 감소시킬 수 있다.
본 출원의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 제어장치를 나타낸 블록도이다.
도 2는 일 실시예에 따른 피제곱근 전처리부의 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 곱셈 연산부의 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 쉬프트 및 덧셈 연산부의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 제곱근 연산 방법을 설명하기 위한 동작 흐름도이다.
도 6은 다른 일 실시예에 따른 제곱근 연산 방법을 설명하기 위한 동작 흐름도이다.
도 7은 다른 일 실시예에 따른 제어장치를 나타낸 블록도이다.
본 발명의 상술한 목적, 특징들 및 장점은 첨부된 도면과 관련된 다음의 상세한 설명을 통해 보다 분명해질 것이다. 다만, 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예들을 가질 수 있는 바, 이하에서는 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다.
도면들에 있어서, 층 및 영역들의 두께는 명확성을 기하기 위하여 과장되어진 것이며, 또한, 구성요소(element) 또는 층이 다른 구성요소 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 구성요소 또는 층의 바로 위 뿐만 아니라 중간에 다른 층 또는 다른 구성요소를 개재한 경우를 모두 포함한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 원칙적으로 동일한 구성요소들을 나타낸다. 또한, 각 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다.
본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
또한, 본 명세서에서 상품이란 재화나 서비스를 포함하여 지칭하는 것으로 넓게 해석되어야 한다.
일 실시예에 따른 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제어장치는 피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 피제곱근 전처리부; 부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 곱셈 연산부; 및 미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 쉬프트 및 덧셈 연산부를 포함할 수 있다.
상기 피제곱근 전처리부는, 상기 고정 소수점 데이터는 부호부, 정수부 및 소수부를 포함하고, 상기 정수부 내에서 1이 존재하는지 여부를 확인하고, 상기 확인 결과를 기초로 상기 2의 차수를 산출할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 1이 존재하는 것으로 확인된 경우, 상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 또는 짝수번째인지 여부를 판단하고, 상기 판단 결과를 기초로 상기 2의 차수를 산출할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우, 상기 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 작은 수를 N - 여기서 N은 0 이상의 정수임 - 으로 결정하고, 상기 2의 차수를 N/2로 결정할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우, 상기 정수부 내에서 최상위에 위치하는 1의 번지수 보다 하나 작은 수를 N - 여기서 N은 0 이상의 정수임 - 으로 결정하고, 상기 2의 차수를 (N+1)/2로 결정할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우, 상기 고정 소수점 데이터 내에서, 상기 정수부 내에서 최상위에 위치하는 1을 0으로 변경하고, 상기 정수부 내에서 최상위에 위치하는 1의 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점(decimal point)을 이동시키고, 상기 소수점이 이동된 고정 소수점 데이터의 소수부에 대응되는 수를 상기 제1 파라미터로 결정할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우, 상기 고정 소수점 데이터 내에서, 상기 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 많은 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점을 이동시키고, 상기 소수점이 이동된 고정 소수점 데이터에 포함되는 부호부 및 정수부를 1로 변경하고, 상기 변경된 고정 소수점 데이터에 대응되는 수를 상기 제1 파라미터로 결정할 수 있다.
상기 피제곱근 전처리부는, 상기 정수부 내에서 1이 존재하지 않는 것으로 확인된 경우, 상기 2의 차수를 0으로 결정할 수 있다.
상기 곱셈 연산부는, 상기 복수의 항 각각에 미리 정해진 계수를 상기 거듭제곱이 수행된 상기 복수의 항 각각에 곱할 수 있다.
상기 쉬프트 및 덧셈 연산부는, 상기 복수의 항 각각에 미리 정해진 자리수에 따라 쉬프트 연산을 수행하고, 상기 쉬프트 연산이 수행된 복수의 항 각각을 합할 수 있다.
상기 쉬프트 및 덧셈 연산부는, 상기 복수의 항 합산 결과에 상기 피제곱근 전처리부에서 결정한 2의 차수만큼 쉬프트 연산을 수행하여 상기 제곱근을 추출할 수 있다.
일 실시예에 따른 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제곱근 연산 방법은 피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 단계; 부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 단계; 및 미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 단계를 포함할 수 있다.
도 1은 일 실시예에 따른 제어장치를 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 제어장치(100)는 피제곱근 전처리부(210), 곱셈 연산부(220) 및 쉬프트 및 덧셈 연산부(230)를 포함할 수 있다.
일 실시예에서, 피제곱근 전처리부(210)는 피제곱근을 획득하고, 피제곱근을 고정 소수점 체계의 고정 소수점 데이터로 변환할 수 있다. 여기서, 고정 소수점 체계는 하기 그림 1과 같이, 부호부, 정수부 및 소수부로 구성될 수 있다.
Figure 112021113886026-pat00001
[그림 1]
고정 소수점 체계는 32 비트, 64 비트 등 다양한 크기로 구성될 수 있다. 또한, 부호부는 1 비트가 할당될 수 있다. 예를 들어, 부호부에 대응되는 번지의 숫자가 0이면 양수를 나타내고, 1이면 음수를 나타낼 수 있다. 실시예에 따라, 고정 소수점 체계에서 부호부가 포함되지 않을 수 있다. 예를 들어, 고정 소수점 체계는 부호부가 없이 정수부 및 소수부를 포함할 수 있다. 다만, 이때 피제곱근은 0 이상의 실수일 수 있다.
또한, 고정 소수점 체계는 Q-format으로 표현될 수 있고, Q-format에 따라 정수부 및 소수부의 비트수가 정의될 수 있다. 예컨대, Q-format은 Q(m,n)으로 표현될 수 있고, 여기서 m은 정수부의 비트수를 나타날 수 있고, n은 소수부의 비트수를 나타낼 수 있다. 일 예로, Q(6,3)은 정수부의 비트수가 6이고, 소수부의 비트수는 3을 나타낼 수 있다. 또한, Q(15,16)은 정수부의 비트수가 15이고, 소수부의 비트수는 16을 나타낼 수 있다.
일 실시예에서, 본 발명의 연산이 2진법으로 계산됨에 따라 하드웨어 특성상 양자 오류(quantization error)가 발생될 수 있다. 반면, Q-format의 m과 n의 숫자가 높아지게 되면 계산 대상이 많아지게 되어 보다 많은 계산량으로 결과값이 도출될 수 있고, 이에 따라, 결과값이 보다 정확해질 수 있다.
또한, 피제곱근은 하기 수학식 1과 같이 정의될 수 있다.
Figure 112021113886026-pat00002
[수학식 1]
위 수학식 1과 같이 피제곱근 XR은 제곱근 Xapprox.의 제곱으로 표현될 수 있다.
구체적으로, N이 짝수인지 또는 홀수인지에 따라 피제곱근의 형태가 다르게 표현될 수 있다. 예를 들어, N이 짝수인 경우, 피제곱근은
Figure 112021113886026-pat00003
로 표현될 수 있고, N이 홀수인 경우, 피제곱근은
Figure 112021113886026-pat00004
로 표현될 수 있다. 즉, 제곱근 Xapprox.는 N이 짝수인지 또는 홀수인지에 따라
Figure 112021113886026-pat00005
또는
Figure 112021113886026-pat00006
로 표현되고, 이에 따라, 실시예에서, N이 짝수인지 또는 홀수인지 여부를 판단하고, 판단 결과에 따라 피제곱근을 추출하는 방법이 상이할 수 있다.
또한, 테일러 급수는 도함수들의 한점에서의 값으로 계산된 항의 무한합으로 해석함수를 나타내는 방법으로, 예컨대, x의 절대값이 1 이하일 때
Figure 112021113886026-pat00007
는 하기의 수학식 2와 같이 표현될 수 있다.
Figure 112021113886026-pat00008
[수학식 2]
또한, xr을 1+x로 표현하면, x의 절대값이 1 이하임에 따라, xr의 범위는 0 이상 2 이하의 실수일 수 있다. 이 때,
Figure 112021113886026-pat00009
은 수학식 3과 같이 표현될 수 있다.
Figure 112021113886026-pat00010
[수학식 3]
또한, 일 실시예에서, 피제곱근 전처리부(210)는 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출할 수 있다. 이 때, 수학식 1에 따라 N이 짝수인지 또는 홀수인지에 따라 제1 파라미터가 상이할 수 있다. 예를 들어, N이 짝수인 경우, 피제곱근이
Figure 112021113886026-pat00011
로 표현되고, 이를 기초로 테일러 급수가 수학식 3에 따라 전개될 경우, 제1 파라미터는 위 수학식 3에서 복수의 항에 포함된 xr-1을 나타낼 수 있다. 또한, N이 홀수인 경우, 피제곱근이
Figure 112021113886026-pat00012
로 표현되고, 이를 기초로 테일러 급수가 수학식 3에 따라 전개될 경우, 제1 파라미터는 xr/2-1을 나타낼 수 있다.
일 실시예에서, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 1이 존재하는지 여부를 확인하고, 확인 결과를 기초로 N 및 2의 차수를 결정할 수 있다.
구체적으로, 고정 소수점 데이터의 정수부 내에서 1이 존재하지 않는 것으로 확인된 경우, 피제곱근 전처리부(210)는 N을 0으로 결정하고, 이에 따라, 2의 차수를 0으로 결정할 수 있다.
또한, 고정 소수점 데이터의 정수부 내에서 1이 존재하는 것으로 확인된 경우, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수를 기초로 N을 결정할 수 있다. 예를 들어, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 작은 수를 N으로 결정할 수 있다.
보다 구체적으로, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 혹은 짝수번째인지 여부를 판단하고, 판단 결과를 기초로 2의 차수를 산출할 수 있다. 보다 구체적으로, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수를 기초로 N을 결정하고, 상기 N을 기초로 2의 차수를 결정할 수 있다. 예를 들어, 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우, 피제곱근 전처리부(210)는 2의 차수를 N/2로 결정하고, 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우, 피제곱근 전처리부(210)는 2의 차수를 (N+1)/2로 결정할 수 있다.
이에 대하여 도 2의 그림을 예시로 설명하면, 도 2는 일 실시예에 따른 피제곱근 전처리부(210)의 동작을 설명하기 위한 도면이다.
도 2를 참조하면, (A)는 피제곱근이 6.75일 경우를 나타내고, (B)는 피제곱근이 2.5일 경우를 나타내고, (C)는 피제곱근이 0.375일 경우를 나타낼 수 있다. 또한, (a)는 피제곱근이 6.75일 경우의 고정 소수점 데이터를 나타내고, (b)는 피제곱근이 2.5일 경우의 고정 소수점 데이터를 나타내고, (c)는 피제곱근이 0.375일 경우의 고정 소수점 데이터를 나타낼 수 있다. (a)의 예에서, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 3일 수 있다. 이 때, 피제곱근 전처리부(210)는, 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 작은 수를 N으로 결정할 수 있다. 즉, (a)의 예에서, 피제곱근 전처리부(210)는 정수부 내에서 최상위에 위치하는 1의 번지수인 3보다 하나 작은 수인 2를 N으로 결정할 수 있다. 또한, 피제곱근 전처리부(210)는 N이 짝수임에 따라, 2의 차수를 N/2에 따라 1로 결정할 수 있다.
또한, (b)의 예에서, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 2일 수 있다. 이 때, 피제곱근 전처리부(210)는, 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 작은 수를 N으로 결정할 수 있다. 즉, (b)의 예에서, 피제곱근 전처리부(210)는 정수부 내에서 최상위에 위치하는 1의 번지수인 2보다 하나 작은 수인 1을 N으로 결정하고, 2의 차수를 (N+1)/2에 따라 1로 결정할 수 있다.
또한, (c)의 예에서, 피제곱근이 0 초과 1 미만임에 따라, 고정 소수점 데이터의 정수부 내에서 1이 존재하지 않을 수 있다. 이 때, 피제곱근 전처리부(210)는, N을 0으로 결정하고, 2의 차수를 0으로 결정할 수 있다.
또한, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 혹은 짝수번째인지 여부를 기초로 제1 파라미터를 산출할 수 있다. 즉, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 혹은 짝수번째인지 여부에 따라 제1 파라미터를 산출하는 방식이 상이할 수 있다.
구체적으로, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우, 피제곱근 전처리부(210)는 고정 소수점 데이터 내에서 정수부 내에서 최상위에 위치하는 1을 0으로 변경하고, 정수부 내에서 최상위에 위치하는 1의 번지수에 대응하는 위치로 고정 소수점 데이터의 소수점(decimal point)을 이동시키고, 소수점이 이동된 고정 소수점 데이터의 소수부에 대응되는 수를 제1 파라미터로 결정할 수 있다. 이 때, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우, N은 짝수가 될 수 있고 이에 따라 제1 파라미터는 xr-1일 수 있다. 다만, 경우에 따라 소수점을 이동시키지 않을 수도 있다. 예를 들어, 정수부 내에서 최상위에 위치하는 1이 정수부의 최하위 자리일 경우, 소수점을 이동시키지 않을 수 있다.
또한, 도 2의 예에서, 전술한 바와 같이, (A)의 (a)에서, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째일 수 있다. 이 때, 피제곱근 전처리부(210)는 (d)와 같이, 고정 소수점 데이터 내에서 정수부 내에서 최상위에 위치하는 1을 0으로 변경하고, 정수부 내에서 최상위에 위치하는 1의 번지수에 대응하는 위치로 고정 소수점 데이터의 소수점을 이동시킬 수 있다. 또한, 피제곱근 전처리부(210)는 (d)와 같이 소수점이 이동된 고정 소수점 데이터인 (0,0,0,0,1,0,1,1,0)을 기초로 제1 파라미터로 결정할 수 있다. (A)의 예에서, N은 2임에 따라 제1 파라미터는 xr-1이 될 수 있다. 또한, 첫번째 비트의 0은 부호를 나타내고, 두번째 내지 네번째 비트는 정수부를 나타낸다. 그리고, 다섯번째 내지 아홉번째 비트는 소수부를 나타내고, 피제곱근 전처리부(210)는 소수부를 변환한 0.6875를 제1 파라미터 xr-1로 결정할 수 있다.
또한, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우, 피제곱근 전처리부(210)는 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 많은 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점을 이동시키고, 소수점이 이동된 고정 소수점 데이터에 포함되는 부호부 및 정수부를 1로 변경하고, 변경된 고정 소수점 데이터에 대응되는 수를 상기 제1 파라미터로 결정할 수 있다. 다만, 경우에 따라 정수부를 1로 변경하지 않을 수도 있다. 예를 들어, 정수부의 비트수가 짝수이고 정수부 내에서 최상위에 위치하는 1이 정수부의 최상위 자리일 경우, 정수부를 1로 변경하지 않을 수 있다.
도 2의 예에서, 전술한 바와 같이, (B)의 (b)에서, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째일 수 있다. 이 때, 피제곱근 전처리부(210)는 (e)와 같이, 고정 소수점 데이터의 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 많은 번지수에 대응되는 위치로 고정 소수점 데이터의 소수점을 이동시킬 수 있다. 이는 1의 번지수가 짝수번째일 때, N은 홀수가 되고, 2의 차수가 (N+1)/2가 되는 것을 반영하기 위함일 수 있다. 또한, 피제곱근 전처리부(210)는 소수점이 이동된 고정 소수점 데이터에 포함되는 부호부 및 정수부를 1로 변경할 수 있다. 이는 2의 보수 방식으로 제1 파라미터를 도출하기 위함일 수 있다. 구체적으로, N이 홀수임에 따라, 제1 파라미터는 xr/2-1이 될 수 있다. 그리고 xr/2는 (b)에서, 고정 소수점 데이터의 소수점이 이동된 (0,0,0,0,1,0,1,0,0)가 되고, 소수부는 다섯번째 비트 내지 아홉번째 비트가 될 수 있다. 제1 파라미터는 xr/2-1이 되어야 하므로, 고정 소수점 데이터 (0,0,0,0,1,0,1,0,0)에서 정수 1을 빼는 연산이 수행되어야 할 수 있다. 피제곱근 전처리부(210)는 효율적인 빼기 연산을 위하여, 고정 소수점 데이터에서 부호부 및 정수부를 1로 변경하여 (e)와 같은 고정 소수점 데이터 (1,1,1,1,1,0,1,0,0)를 도출할 수 있다. 이후, 피제곱근 전처리부(210)는 고정 소수점 데이터 (1,1,1,1,1,0,1,0,0)를 기초로 연산을 수행하여 제1 파라미터 xr/2-1로 -0.375를 도출할 수 있다.
또한, 피제곱근이 0 초과 1 미만임에 따라, 고정 소수점 데이터의 정수부 내에서 1이 존재하지 않을 경우, 피제곱근 전처리부(210)는 고정 소수점 데이터의 소수점을 이동시키지 않고 유지할 수 있다. 또한, 피제곱근 전처리부(210)는 (f)와 같이, 효율적인 빼기 연산을 위하여 고정 소수점 데이터에서 부호부 및 정수부를 1로 변경하고, 변경된 고정 소수점을 기초로 연산을 수행하여, 제1 파라미터 xr-1로 -0.625를 도출할 수 있다.
또한, 곱셈 연산부(220)는 부호숫자의 곱셈기(multiplier of signed number)를 이용하여 제1 파라미터를 복수의 항 각각의 차수에 따라 거듭제곱을 수행할 수 있다. 예컨대, 곱셈 연산부(220)는 피제곱근 전처리부(210)에서 산출된 제1 파라미터에 대하여 적어도 하나의 부호 숫자의 곱셈기(또는, 부호 곱셈기(signed-multiplier))를 이용하여 거듭제곱 계산을 수행하고, 복수의 항 각각에 미리 정해진 계수를 거듭제곱이 수행된 복수의 항 각각에 곱할 수 있다.
이에 대하여, 도 3의 예를 참고하여 설명하면, 도 3은 일 실시예에 따른 곱셈 연산부(220)의 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 곱셈 연산부(220)는 (A)와 같은 병렬적인 부호숫자의 곱셈기를 이용하여 복수의 항의 거듭제곱을 수행할 수 있다. 구체적으로, 부호숫자의 곱셈기에 제1 파라미터 xr-1이 입력된 경우, 곱셈 연산부(220)는 수학식 3에서 상수를 제외한 첫번째 항을 xr-1(301)로 결정할 수 있다. 또한, 곱셈 연산기(311)에 따라 xr-1을 거듭제곱하여 (xr-1)^2을 계산하고, 곱셈 연산기(312)에 따라 (xr-1)^2에 미리 정해진 계수 -1을 곱하여 두번째 항을 -(xr-1)^2(302)로 결정할 수 있다. 또한, 곱셈 연산부(220)는 곱셈 연산기(313)에 따라 (xr-1)^2 및 xr-1을 곱하여 (xr-1)^3을 계산하여 세번째 항을 (xr-1)^3(303)으로 결정하고, 곱셈 연산기(314)에 따라 (xr-1)^3 및 xr-1을 곱하여 (xr-1)^4을 계산하고, (xr-1)^4에 미리 정해진 계수 -5를 곱하여 네번째 항을 -5(xr-1)^4(304)로 결정할 수 있다. 이와 같이, 곱셈 연산부(220)는 이전의 곱셈 연산기에서 산출된 결과와 xr-1을 곱하고, 곱셈 결과에 복수의 항 각각에 미리 정해진 계수를 곱하여 복수의 항 각각을 결정할 수 있다. 예컨대, 곱셈 연산부(220)에서 n번째 연산이 수행될 때, 곱셈 연산부(220)는 곱셈 연산기(316)에 따라 이전의 곱셈 연산기에서 산출된 결과 (xr-1)^(n-1)과 xr-1을 곱하여 (xr-1)^n을 산출하고, 곱셈 연산기(317)에 따라 (xr-1)^n과 미리 정해진 계수 a를 곱하여 n번째 항을 a(xr-1)^n으로 결정할 수 있다. 또한, 도 3의 (A)에는 표시되지 않았지만, 곱셈 연산부(220)는 보다 많은 곱셈 연산기를 포함할 수 있다. 즉, 수학식 3의 항의 수가 많아질수록 곱셈 연산부(220)에 포함된 곱셈 연산기가 많아질 수 있다. 이에 따라, 계산량이 많아지는 반면, 결과값이 보다 정확해질 수 있다.
또한, 곱셈 연산부(220)는 (B)같은 연속적인(sequential) 부호숫자의 곱셈기를 이용하여 복수의 항의 거듭제곱을 수행할 수 있다. 이 경우에도 (A)에서와 동일한 결과가 획득될 수 있다.
또한, 쉬프트 및 덧셈 연산부(230)는 미리 정해진 자릿수에 따라 복수의 항 각각에 대하여 쉬프트 연산을 수행하여, 테일러 급수의 계수 곱셈 연산을 복수의 항 각각에 수행하고, 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출할 수 있다.
이에 대하여, 도 4의 예를 참고하여 설명하면, 도 4는 일 실시예에 따른 쉬프트 및 덧셈 연산부(230)의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 쉬프트 및 덧셈 연산부(230)는 (A)와 같은 병렬적인 쉬프트 연산기 및 덧셈 연산기를 이용하여 연산을 수행할 수 있다. 구체적으로, 쉬프트 및 덧셈 연산부(230)는 수학식 3에서 상수를 제외한 첫번째 항인 xr-1을 쉬프트 연산기(401)에 따라 미리 정해진 자리수인 1 만큼 오른쪽으로 쉬프트 연산하고, 덧셈 연산기(411)에 따라 1과 쉬프트 연산된 xr-1의 덧셈 연산을 수행할 수 있다. 또한, 쉬프트 및 덧셈 연산부(230)는 두번째 항인 -(xr-1)^2를 쉬프트 연산기(402)에 따라 미리 정해진 자리수인 3 만큼 오른쪽으로 쉬프트 연산하고, 덧셈 연산기(412)에 따라 쉬프트 연산된 xr-1과 1이 합해진 값과 쉬프트 연산된 -(xr-1)^2의 덧셈 연산을 수행할 수 있다. 마찬가지로, 쉬프트 및 덧셈 연산부(230)는 세번째 항인 (xr-1)^3과 네번째 항인 -5(xr-1)^4 각각을 쉬프트 연산기(403, 404)에 따라 미리 정해진 자리수인 4 및 7 만큼 오른쪽으로 쉬프트 연산하고, 쉬프트 연산된 항들 각각에 대하여 덧셈 연산기(413, 414)에 따라 덧셈 연산을 수행할 수 있다. 이후에도, 쉬프트 및 덧셈 연산부(230)는 각 항에 대하여 미리 정해진 자리수에 따라 쉬프트 연산 및 덧셈 연산을 수행하여, 쉬프트 연산기(405) 및 덧셈 연산기(415)에 따른 쉬프트 연산 및 덧셈 연산이 수행될 수 있고, 이는 전술한 수학식 1에서의
Figure 112021113886026-pat00013
(N이 짝수인 경우) 또는
Figure 112021113886026-pat00014
(N이 홀수인 경우)을 나타낼 수 있다. 또한 도 4의 (A)에는 표시되지 않았지만, 쉬프트 및 덧셈 연산부(230)는 보다 많은 쉬프트 연산기 및 덧셈 연산기를 포함할 수 있다. 즉, 수학식 3의 항의 수가 많아질수록 쉬프트 및 덧셈 연산부(230)에 포함된 덧셈 연산기가 많아질 수 있다. 이에 따라, 계산량이 많아지는 반면, 결과값이 보다 정확해질 수 있다.
또한, 쉬프트 및 덧셈 연산부(230)는 복수의 항 합산 결과에 대하여 쉬프트 연산을 수행할 수 있다. 구체적으로, 쉬프트 및 덧셈 연산부(230)는 상기 피제곱근 전처리부(210)에서 산출한 2의 차수인 N/2를 입력받고, 쉬프트 연산기(406)에 따라 그 값만큼 왼쪽으로 쉬프트 연산을 수행할 수 있다. 즉, 쉬프트 연산기(406)를 통한 연산은 전술한 수학식 1의
Figure 112021113886026-pat00015
Figure 112021113886026-pat00016
의 곱셈 연산을 나타낼 수 있다. 쉬프트 및 덧셈 연산부(230)는 N/2 만큼 왼쪽으로 쉬프트 연산이 수행된 결과값을 제곱근으로 결정할 수 있다. 다만, 이는 N이 짝수인 경우를 가정한 것이다.
만약, N이 홀수인 경우, 쉬프트 및 덧셈 연산부(230)는 전체 항에 대하여 쉬프트 연산기를 통해 (N+1)/2 만큼 왼쪽으로 쉬프트 연산을 수행할 수 있다. 이는, 전술한 수학식 1의
Figure 112021113886026-pat00017
Figure 112021113886026-pat00018
의 곱셈 연산을 나타낼 수 있다. 쉬프트 및 덧셈 연산부(230)는 (N+1)/2 만큼 왼쪽으로 쉬프트 연산이 수행된 결과값을 제곱근으로 결정할 수 있다.
또한, 쉬프트 및 덧셈 연산부(230)는 (B)와 같은 연속적인(sequential) 쉬프트 및 덧셈 연산기를 이용하여 미리 정해진 자릿수에 따라 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출할 수 있다. 이 경우에도 (A)에서와 동일한 결과가 획득될 수 있다.
도 5는 일 실시예에 따른 제곱근 연산 방법을 설명하기 위한 동작 흐름도이다.
도 5를 참조하면, 일 실시예에 따른 제곱근 연산 방법은 제어장치에 의해 수행되고, 일 실시예에 따른 제곱근 연산 방법은 피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 단계(S110), 부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 단계(S120) 및 미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 단계(S130)를 포함할 수 있다.
도 5의 각 단계에 대해서는 도 1 내지 도 4에서 설명한 사항이 그대로 적용될 수 있으므로, 상세한 설명은 생략한다.
도 6은 다른 일 실시예에 따른 제곱근 연산 방법을 설명하기 위한 동작 흐름도이다.
도 6을 참조하면, 제어장치는 피제곱근을 획득할 수 있다(S210). 이 때, 피제곱근은 고정 소수점 체계의 고정 소수점 데이터일 수 있다. 만약, 피제곱근이 고정 소수점 체계로 구성되지 않을 경우, 제어장치는 피제곱근을 고정 소수점 데이터로 변환할 수 있다.
또한, 제어장치는 피제곱근이 0인지 여부를 판단할 수 있다(S220). 피제곱근이 0일 경우, 고정 소수점 데이터의 부호부, 정수부 및 소수부 내에 1이 존재하지 않을 수 있다. 이 경우, 제어장치는 제곱근 0을 획득하여(S270) 종료할 수 있다.
또한, 피제곱근이 0이 아닌 경우, 제어장치는 피제곱근이 2의 거듭제곱의 제곱수인지 여부를 판단할 수 있다(S230). 피제곱근이 2의 거듭제곱의 제곱수인 경우, 제어장치는 전술한 N을 산출하여(S231) 2의 차수 및 2의 차수항을 산출한 후(S236) 제곱근을 획득할 수 있다(S270). 여기서, 제어장치는 고정 소수점 데이터의 부호부, 정수부 및 소수부 중 1이 하나만 포함되고 상기 1이 정수부에 포함되며, 상기 1이 정수부 내 홀수번째 번지에 포함되는 경우, 피제곱근이 2의 거듭제곱의 제곱수인 것으로 결정할 수 있다. 단계 S231에 대해서는 전술한 피제곱근 전처리부에서 설명한 사항이 적용될 수 있으므로, 상세한 설명은 생략한다.
또한, 피제곱근이 2의 거듭제곱의 제곱수가 아닌 경우, 제어장치는 피제곱근이 0 초과이고 2 미만인지 여부를 판단할 수 있다(S232). 이 때, 피제곱근이 0 초과이고 2 미만인 경우, 제어장치는 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제2 파라미터를 산출할 수 있다(S240). 여기서, 제2 파라미터는 전술한 제1 파라미터와 대응되는 것으로, 단계 S240에서, 제어장치는 전술한 xr에서 1을 뺀 xr-1을 제2 파라미터로 산출할 수 있다. 또한, 단계 S240에서, 제어장치는 N/2를 2의 차수로 산출할 수 있다.
또한, 피제곱근이 0 초과 및 2 미만이 아닌 경우, 제어장치는 전술한 N을 산출할 수 있다(S233). 단계 S233에 대해서는 전술한 피제곱근 전처리부에서 설명한 사항이 적용될 수 있으므로, 상세한 설명은 생략한다.
또한, 제어장치는 N이 짝수인지 여부를 판단할 수 있다(S234). N이 짝수인 경우, 제어장치는 단계 S240을 수행할 수 있다. 또한, N이 홀수인 경우, 제어장치는 2의 차수 및 제2 파라미터를 산출할 수 있다(S235). 단계 S235에서, 제어장치는 전술한 xr에서 2를 나누고 1을 뺀 xr/2-1을 제2 파라미터로 산출할 수 있다. 또한, 단계 S235에서, 제어장치는 (N+1)/2를 2의 차수로 산출할 수 있다.
또한, 제어장치는 제2 파라미터를 기초로 테일러 급수에 따른 복수의 항의 연산을 수행할 수 있다(S250). 즉. 제어장치는 제2 파라미터를 기초로 테일러 급수의 복수의 항 각각의 차수에 따라 거듭 제곱을 수행하고, 미리 정해진 자리수에 따라 거듭제곱이 수행된 복수의 항 각각에 쉬프트 연산을 수행하고, 쉬프트 연산된 복수의 항을 합하는 연산을 수행할 수 있다. 복수의 항의 결과는
Figure 112021113886026-pat00019
(N이 짝수인 경우) 또는
Figure 112021113886026-pat00020
(N이 홀수일 경우)로 나타날 수 있다. 단계 S250에 대해서는 전술한 곱셈 연산부, 쉬프트 및 덧셈 연산부에서 설명한 사항이 적용될 수 있으므로, 상세한 설명은 생략한다.
또한, 제어장치는 2의 차수항과 복수의 항의 연산 결과를 곱할 수 있다(S260). 구체적으로 N이 짝수인 경우, 제어장치는
Figure 112021113886026-pat00021
Figure 112021113886026-pat00022
의 곱셈 연산을 수행할 수 있다. 또한, N이 홀수인 경우, 제어장치는
Figure 112021113886026-pat00023
Figure 112021113886026-pat00024
의 곱셈 연산을 수행할 수 있다. 단계 S260에 대해서는 전술한 쉬프트 및 덧셈 연산부에서 설명한 사항이 적용될 수 있으므로, 상세한 설명은 생략한다.
또한, 제어장치는 단계 S260에서 수행된 결과를 제곱근으로 산출할 수 있다(S270).
도 7은 다른 일 실시예에 따른 제어장치를 나타낸 블록도이다.
도 7을 참조하면, 제어장치(100)는 입출력부(110), 제어부(120) 및 저장부(130)를 포함할 수 있다.
입출력부(110)는 다른 외부장치 또는 사용자로부터 피제곱근을 획득하거나, 제어장치(100)에서 산출된 제곱근을 제공할 수 있다. 예를 들어, 입출력부(110)는 BLE(Bluetooth Low Energy), 블루투스(Bluetooth), WLAN(Wireless LAN), WiFi(Wireless Fidelity), WiFi Direct, NFC(Near Field Communication), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wide Band), 지그비(Zigbee), 3G, 4G 또는 5G를 비롯한 이동 통신 모듈 및 그 외의 다양한 통신 규격을 통해 데이터를 송신하는 유무선 모듈을 포함할 수 있고 이를 통해 다른 장치로부터 피제곱근을 획득하거나, 제어장치(100)에서 산출된 피제곱근을 다른 장치에 제공할 수 있다.
또한, 입출력부(110)는 키패드, 키보드, 스위치, 버튼 및 터치 스크린 등을 포함하고, 이를 통해 사용자로부터 피제곱근을 획득할 수 있다.
또한, 입출력부(110)는 시각적인 정보를 출력하는 디스플레이부 및/또는 음향 정보를 제공하는 스피커부를 포함할 수 있고, 이를 통해 제어장치(100)에서 산출된 피제곱근을 사용자에게 제공할 수 있다.
또한, 제어부(120)는 제어장치(100)의 각 구성을 제어하거나 각종 정보를 처리하고 연산할 수 있다. 또한, 제어부(120)는 제어장치(100)에 포함된 몇몇 구성으로부터 신호를 획득하거나 제공할 수 있다. 또한, 제어부(120)는 전술한 피제곱근 전처리부, 곱셈 연산부 및 쉬프트 및 덧셈 연산부를 포함하고, 도 1 내지 도 5에서 전술한 사항을 수행하기 위한 동작을 제어하거나, 전술한 사항에 필요한 연산을 수행할 수 있다.
제어부(120)는 소프트웨어, 하드웨어 및 이들의 조합으로 구현될 수 있다. 예를 들어, 하드웨어적으로 제어부(120)는 FPGA(Field Programmable Gate Array)나 ASIC(Application Specific Integrated Circuit), 반도체 칩, 및 그 외의 다양한 형태의 전자 회로로 구현될 수 있다. 또 예를 들어, 소프트웨어적으로 제어부(120)는 상술한 하드웨어에 따라 수행되는 논리 프로그램이나 각종 컴퓨터 언어 등으로 구현될 수 있다.
또한, 저장부(130)는 각종 데이터를 저장할 수 있다. 예를 들어, 저장부(130)는 획득한 피제곱근, 산출된 제곱근과 함께 제어부(120)의 동작을 위해 필요한 사항들을 저장할 수 있다.
저장부(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또 메모리는 일시적, 영구적 또는 반영구적으로 정보를 저장할 수 있으며, 내장형 또는 탈착형으로 제공될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제어장치에 있어서,
    피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 피제곱근 전처리부;
    부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 곱셈 연산부; 및
    미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 쉬프트 및 덧셈 연산부
    를 포함하고,
    상기 고정 소수점 데이터는 부호부, 정수부 및 소수부를 포함하고,
    상기 피제곱근 전처리부는,
    상기 정수부 내에서 1이 존재하는지 여부를 확인하고,
    상기 정수부 내에서 1이 존재하는 것으로 확인된 경우,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 또는 짝수번째인지 여부를 판단하고,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우,
    상기 고정 소수점 데이터 내에서,
    상기 정수부 내에서 최상위에 위치하는 1을 0으로 변경하고, 상기 정수부 내에서 최상위에 위치하는 1의 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점(decimal point)을 이동시키고,
    상기 소수점이 이동된 고정 소수점 데이터의 소수부에 대응되는 수를 상기 제1 파라미터로 결정하고,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우,
    상기 고정 소수점 데이터 내에서,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 많은 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점을 이동시키고,
    상기 소수점이 이동된 고정 소수점 데이터에 포함되는 부호부 및 정수부를 1로 변경하고,
    상기 변경된 고정 소수점 데이터에 대응되는 수를 상기 제1 파라미터로 결정하는,
    제어 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 피제곱근 전처리부는,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 작은 수를 N - 여기서 N은 0 이상의 정수임 - 으로 결정하고, 상기 2의 차수를 N/2로 결정하는,
    제어 장치.
  5. 제1항에 있어서,
    상기 피제곱근 전처리부는,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수 보다 하나 작은 수를 N - 여기서 N은 0 이상의 정수임 - 으로 결정하고, 상기 2의 차수를 (N+1)/2로 결정하는,
    제어 장치.
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 피제곱근 전처리부는,
    상기 정수부 내에서 1이 존재하지 않는 것으로 확인된 경우, 상기 2의 차수를 0으로 결정하는,
    제어 장치.
  9. 제1항에 있어서,
    상기 곱셈 연산부는,
    상기 복수의 항 각각에 미리 정해진 계수를 상기 거듭제곱이 수행된 상기 복수의 항 각각에 곱하는,
    제어 장치.
  10. 제1항에 있어서,
    상기 쉬프트 및 덧셈 연산부는,
    상기 복수의 항 각각에 미리 정해진 자리수에 따라 쉬프트 연산을 수행하고, 상기 쉬프트 연산이 수행된 복수의 항 각각을 합하는,
    제어 장치.
  11. 제10항에 있어서,
    상기 쉬프트 및 덧셈 연산부는,
    상기 복수의 항 합산 결과에 상기 2의 차수만큼 쉬프트 연산을 수행하여 상기 제곱근을 추출하는,
    제어 장치.
  12. 테일러 급수를 이용하여 고정 소수점 체계에서 제곱근 연산을 수행하는 제곱근 연산 방법에 있어서,
    피제곱근을 부호부, 정수부 및 소수부를 포함하는 고정 소수점 데이터로 변환하고, 변환된 고정 소수점 데이터를 기초로 2의 차수 및 테일러 급수의 복수의 항에 포함되는 제1 파라미터를 산출하는 단계;
    부호숫자의 곱셈기를 이용하여 상기 제1 파라미터를 상기 복수의 항 각각의 차수에 따라 거듭제곱을 수행하는 단계; 및
    미리 정해진 자릿수에 따라 상기 거듭제곱이 수행된 복수의 항 각각에 대하여 쉬프트 연산을 수행하고, 상기 쉬프트 연산된 복수의 항을 합하고, 상기 복수의 항 합산 결과를 기초로 제곱근을 추출하는 단계
    를 포함하고,
    상기 고정 소수점 데이터는 부호부, 정수부 및 소수부를 포함하고,
    상기 제1 파라미터를 산출하는 단계는,
    상기 정수부 내에서 1이 존재하는지 여부를 확인하고,
    상기 정수부 내에서 1이 존재하는 것으로 확인된 경우,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인지 또는 짝수번째인지 여부를 판단하고,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 홀수번째인 경우,
    상기 고정 소수점 데이터 내에서,
    상기 정수부 내에서 최상위에 위치하는 1을 0으로 변경하고, 상기 정수부 내에서 최상위에 위치하는 1의 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점을 이동시키고,
    상기 소수점이 이동된 고정 소수점 데이터의 소수부에 대응되는 수를 상기 제1 파라미터로 결정하고,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수가 짝수번째인 경우,
    상기 고정 소수점 데이터 내에서,
    상기 정수부 내에서 최상위에 위치하는 1의 번지수보다 하나 많은 번지수에 대응하는 위치로 상기 고정 소수점 데이터의 소수점을 이동시키고,
    상기 소수점이 이동된 고정 소수점 데이터에 포함되는 부호부 및 정수부를 1로 변경하고,
    상기 변경된 고정 소수점 데이터에 대응되는 수를 상기 제1 파라미터로 결정하는,
    제곱근 연산 방법.
  13. 제12항에 기재된 방법을 실행시키는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020210131634A 2021-10-05 2021-10-05 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치 KR102336535B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210131634A KR102336535B1 (ko) 2021-10-05 2021-10-05 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210131634A KR102336535B1 (ko) 2021-10-05 2021-10-05 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치

Publications (1)

Publication Number Publication Date
KR102336535B1 true KR102336535B1 (ko) 2021-12-08

Family

ID=78867549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210131634A KR102336535B1 (ko) 2021-10-05 2021-10-05 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치

Country Status (1)

Country Link
KR (1) KR102336535B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060134992A (ko) * 2004-03-31 2006-12-28 마츠시타 덴끼 산교 가부시키가이샤 정수를 가산하는 컴퓨터 시스템
KR20090100245A (ko) * 2008-03-18 2009-09-23 숭실대학교산학협력단 디지털 회로 구현을 위한 효율적인 제곱근과 역제곱근 연산기 구조 및 방법
KR20190079857A (ko) * 2017-12-28 2019-07-08 공주대학교 산학협력단 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060134992A (ko) * 2004-03-31 2006-12-28 마츠시타 덴끼 산교 가부시키가이샤 정수를 가산하는 컴퓨터 시스템
KR20090100245A (ko) * 2008-03-18 2009-09-23 숭실대학교산학협력단 디지털 회로 구현을 위한 효율적인 제곱근과 역제곱근 연산기 구조 및 방법
KR20190079857A (ko) * 2017-12-28 2019-07-08 공주대학교 산학협력단 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법

Similar Documents

Publication Publication Date Title
US8719322B2 (en) Floating point format converter
JP7042276B2 (ja) 3つの128ビット拡張オペランドに対して融合積和演算を実行するように構成される浮動小数点ユニット、その方法、プログラム、およびシステム
US20200218509A1 (en) Multiplication Circuit, System on Chip, and Electronic Device
US9575930B2 (en) Conjugate gradient solvers for linear systems
US9870200B2 (en) Decimal and binary floating point rounding
US20150113027A1 (en) Method for determining a logarithmic functional unit
Ahmed et al. An improved logarithmic multiplier for media processing
US20110099217A1 (en) Method and System for Determining a Quotient Value
US20180081634A1 (en) Piecewise polynomial evaluation instruction
US8868633B2 (en) Method and circuitry for square root determination
US10303439B2 (en) Logarithm and power (exponentiation) computations using modern computer architectures
KR102336535B1 (ko) 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치
Hertz et al. Combining the parabolic synthesis methodology with second-degree interpolation
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
Parhami Truncated ternary multipliers
US20140372493A1 (en) System and method for accelerating evaluation of functions
US9612800B2 (en) Implementing a square root operation in a computer system
CN102646033B (zh) 提供了加密和签名功能的rsa算法的实现方法和装置
Verma et al. FPGA implementation of RSA based on carry save Montgomery modular multiplication
KR100943580B1 (ko) 제곱근 계산 장치 및 방법
US7266578B2 (en) Method and hardware for computing reciprocal square root and program for the same
US8924447B2 (en) Double precision approximation of a single precision operation
US10037191B2 (en) Performing a comparison computation in a computer system
Ellaithy Low power multiplication/division computing unit for IOT applications
CN117648959B (zh) 支持神经网络运算的多精度操作数运算装置

Legal Events

Date Code Title Description
GRNT Written decision to grant