KR100756137B1 - 제산 및 제곱근 연산 유닛 - Google Patents

제산 및 제곱근 연산 유닛 Download PDF

Info

Publication number
KR100756137B1
KR100756137B1 KR1020050123009A KR20050123009A KR100756137B1 KR 100756137 B1 KR100756137 B1 KR 100756137B1 KR 1020050123009 A KR1020050123009 A KR 1020050123009A KR 20050123009 A KR20050123009 A KR 20050123009A KR 100756137 B1 KR100756137 B1 KR 100756137B1
Authority
KR
South Korea
Prior art keywords
square root
data
bits
remainder
division
Prior art date
Application number
KR1020050123009A
Other languages
English (en)
Other versions
KR20060067874A (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 KR20060067874A publication Critical patent/KR20060067874A/ko
Application granted granted Critical
Publication of KR100756137B1 publication Critical patent/KR100756137B1/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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/496Multiplying; Dividing
    • 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/4824Methods 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 using signed-digit representation
    • 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/487Multiplying; Dividing
    • G06F7/4873Dividing
    • 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

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)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

고기수의 제산 연산과 저기수의 제곱근 풀이 연산을 수행하는 제산 및 제곱근 연산 유닛이 제공된다. 캐리 보존 가산기의 출력의 상위 비트로부터 선택된 소정 비트수(연산의 기수에 기초하여 결정됨)의 데이터와 상기 가산기의 출력을 입력받아 2의 보수 표현의 데이터로 변환하고, 2의 보수 표현의 데이터는 소정의 비트수(연산의 기수에 기초하여 결정됨) 시프트되고, 시프트된 데이터를 다음 디지트의 부분 나머지로 사용한다. 따라서, 제수와 부분적으로 구해진 제곱근의 레지스터와 같은 많은 수의 부품이 제산기와 제곱근기에서 공통으로 사용될 수 있게 되어 효율적이고 고성능의 연산 유닛을 실현할 수 있게 된다. 또한, 제산 연산의 기수는 제곱근 연산의 기수보다 높게 설정될 수 있고, 제산 처리 성능이 크게 향상될 수 있다. 또한, 제곱근 풀이 연산에 있어서, 미리 오른쪽으로 1비트 시프트된 부분 나머지가 마련되고, 1비트 시프트된 부분 나머지로부터 다른 부분 나머지가 연산되어 제산 연산에 대해 시프트 비트수를 2비트 왼쪽으로의 시프트와 동일하게 설정한다. 따라서, 데이터의 리턴 경로에 선택기를 부가하지 않고도 2의 보수 변환기는 제산 연산과 제곱근 풀이 연산에서 공통으로 사용될 수 있다. 따라서, 본 발명의 제산 및 제곱근 연산 유닛에서는 제산 연산과 제곱근 풀이 연산에서의 처리 속도의 저하가 방지될 수 있다.
제산기, 제곱근기, 연산기, 연산

Description

제산 및 제곱근 연산 유닛{DIVISION AND SQUARE ROOT ARITHMETIC UNIT}
도 1은 제산 연산을 설명하기 위한 본 발명의 제 1의 실시예에 따른 제산 및 제곱근 연산 유닛의 블록도.
도 2는 제곱근 풀이 연산을 설명하기 위한 도 1에 도시된 제산 및 제곱근 연산 유닛의 블록도.
도 3은 본 발명의 제 2의 실시예에 따른 제산 및 제곱근 연산 유닛의 블록도.
도면의 주요 부분에 대한 부호의 설명
1 : 스케일링 계수 생성기 2 : 53 비트× 6 비트 승산기
3 : 53 비트× 6 비트 승산기 4 : 3배 제수 생성기
5 : 부분 나머지 상위 레지스터 6 : 부분 나머지 하위 레지스터
7 : 몫 생성기 8 : 시프터
9 : 시프터 10 : 제수-부분 제곱근 선택기
11 : 캐리 보존 가산기 12 : 캐리 전파 가산기
13, 13-1, 13-2 : 2의 보수 변환기 14 : 제수-부분 제곱근 정레지스터
15 : 3배 제수-부분 제곱근 부레지스터 16 : 위치 레지스터
17 : 온더플라이 몫 정생성기 18 : 온더플라이 몫 부생성기
19 : 시프터 20, 21, 22, 23, 24, 25, 26 : 선택기
27, 28 : 시프터
기술 분야
본 발명은 고기수형(higher radix type)의 제산기와 저기수형(lower radix type)의 제곱근기(square root extractor)를 포함하는 제산 및 제곱근 연산 유닛에 관한 것이다.
배경 기술
제산기 및 제곱근기의 실장에 있어서는, 하드웨어 양과 성능의 밸런스를 고려하여, 알고리즘으로서 감산 시프트법 또는 감산 분리법을 이용하는 장치가 일반적으로 사용되고 있다. 이 알고리즘은 우리들이 통상 필산으로 제산을 행하는 것과 마찬가지로, 몫의 결정을, 나머지 또는 부분 나머지(partial remainder)의 시프트와 나머지로부터의 분모 (제수 또는 부분적으로 구해진 제곱근(partially extracted square root))의 배수의 감산에 의하여 제산을 수행한다. 구체적으로는, n 자리 단위로 몫 또는 제곱근에서 구해진 숫자가 결정되고, 결정된 몫 또는 제곱근에서 구해진 숫자에 기초하여 부분 나머지를 계산한다. 다음 연산 단계에서, 얻어진 부분 나머지가 n 자릿수 시프트되고 부분 나머지의 n 자릿수 시프트에 기초하 여 다음 번 n 자리의 몫 또는 제곱근 풀이 수(square root extraction number)가 결정된다.
매 n 자리마다 몫 또는 제곱근 풀이 값을 결정하기 위한 이 방법은, 2의 n승이 r(이하, 기수로 칭함)과 동일하게 정의될 때, 기수 r의 제산 또는 제곱근법이라 칭해진다. 이러한 알고리즘의 제산 및 제곱근법 처리는 1980년 Kindai Kagaku Co., Ltd.의 Kai Hwang에 의한 "High Speed Arithmetic System of Computers"(비특허 문헌 1)의 214~249페이지에 기술되어 있다. 이 문헌은 회복형 제산, 비회복형 제산, SRT(Sweeney, Robertson and Tocher) 제산, 확장 SRT 제산과 같은 여러 가지 제산 방법을 기술하고 있다.
감산 시프트 법을 이용하는 제산의 순서에 관하여 간단하게 설명한다.
연산의 비트 길이(몫 또는 제곱근 풀이 숫자를 결정하기 위한 단위 자리의 수)를 n(임의의 정 정수), 연산의 기수를 r(=2의 n승), 제수를 D, 피제수를 R(0), j회째의 부분 나머지를 R(j)(j = 0을 포함하는 양의 정수), j회째의 몫을 q(j)라고 가정한다. 또한, 여기에서는 제수 D, 피제수 R(0)은 정규화된다고 한다. 또한, 정규화된 부동 소수점 포맷으로서, "1.xxxx"를 이용하고, 제수, 피제수도 정규화된다고 가정한다. 이 포맷에 일치하지 않는 데이터 형식을 취급하는 경우에도, 연산 전후에 적당한 시프트 처리를 실행함으로써, 이 정규화된 부동 소수점 포맷을 사용하는 처리가 적용될 수 있다.
이 경우, 몫과 부분 나머지는 용장 2진수 표현(redundant binary representation)에 의해 표시된다. 즉, 2의 보수 표현에서는 각 비트가 {0, 1}로 표현되지만, {-1, 0, 1}의 세 값을 갖는 것을 허용하고, 부의 값이 될 수 있다.
입력 데이터가 위에서 설명한 바와 같이 정규화되는 조건하에서, 하기의 식 (1)에 나타나는 점화식을 이용하여, 순차적으로, 몫 및 부분 나머지를 구할 수 있다.
R(j+l)=r·R(j) - q(j+l)·D (1)
SRT 법에서는, 몫 디지트(quotient digit)로서 {0, 1}에 더하여 {-1}을 사용할 수 있고, 부분 나머지의 몇 몇 상위 비트를 사용하는 것에 의해 고속으로 몫 디지트를 판정할 수 있다. SRT 알고리즘은, 제곱근 풀이 연산에도 적용할 수 있기 때문에, 제산 하드웨어의 사용이 가능하다.
제곱근 풀이 연산의 순서에 관하여 간단하게 설명한다.
연산의 기수를 r, 구해진 제곱근을 R(0), j회째의 부분 나머지를 R(j)(j=0을 포함하는 양의 정수), 부분적으로 구해진 제곱근을 Q(j), j회째의 몫을 q(j)라고 가정한다. 또한, 구해진 제곱근 R(0)는 정규화된다고 가정한다. 부분적으로 구해진 제곱근 Q(j)는, j회째까지 산출된 몫이다.
이 경우, 사용되는 몫(부분적으로 구해진 제곱근 포함)과 부분 나머지는, 용장 2진수 표현으로 표현된다. 즉, 2의 보수 표현에서는 각 비트가 {0, 1}로 표현되지만, 각 비트는 {-1, 0, 1}의 세 값을 가질 수 있고, 부의 값이 될 수 있다.
입력 데이터가 위에서 설명한 바와 같이 정규화되는 조건하에서, 하기의 (2), (3)식에 나타난 점화식을 이용하여, 순차적으로, 몫 및 부분 나머지를 구할 수 있다.
R(j+1)=r·R(j)-q(j+1)·(r·Q(j)+q(j+1)·r-(j+1)) (2)
Q(j+1)=Q(j)+q(j+1)·r-(j+1)) (3)
제곱근 풀이 연산에서의 알고리즘은, j회째의 부분 나머지로부터 부분적으로 구해진 제곱근을 감산하는 것에 의해, j+1회째의 부분 나머지가 계산되는 알고리즘이다. 상기 연산은 아주 복잡한데, 그 이유는 상기 연산이 용장 2진수 표현의 부분 나머지와 용장 2진수 표현의 부분적으로 구해진 제곱근을 필요로 하기 때문이다. 용장 2진수 표현의 부분적으로 구해진 제곱근 모두가 얻어진 후, 부분적으로 구해진 제곱근이 2의 보수 표현으로 변환될 때, 변환에 필요한 시간은 계산 시간에 추가된다. 이것은 처리 성능을 저하시킨다.
그러므로, 제산용의 하드웨어를 공통으로 사용하기 위해서, 온더플라이 변환(on-the-fly conversion)용의 회로를 사용함으로써, 몫과 동시에 얻어지는 부분적으로 구해진 제곱근은 2의 보수 표현으로 변환되어, 용장 2진수 표현의 부분 나머지와 2의 보수 표현의 부분적으로 구해진 제곱근의 연산을 수행한다.
온더플라이 변환은 비특허 문헌2(Milos D. Ercegovac와 Tomas Lang에 의한 "On-the-fly conversion of Redundant into Conventional Representations", IEEE Transactions On Computer, Vol. C-36, No. 7, July 1987, pp. 895-897)에 개시되어 있다.
기수 2의 경우의 온더플라이 변환이 간략히 설명될 것이다.
예를 들면, 용장 2진수 표현 {1,-1}을 2의 보수 표현으로 변환하면 {1, 0}으 로 된다(모두 십진수 1을 나타낸다). 용장 2진수 표현이 가산 및 감산을 사용하여 2의 보수 표현으로 변환되면, -1이 입력될 때 캐리가 전파된다. 캐리 전파를 제공하기 위해서, 이 경우 -1이 입력되기 이전의 값인 {1, 0}에 부가하여 {0, 1}이 미리 준비되고 -1이 입력될 때 {0, 1}이 선택된다. 즉, 캐리 전파를 야기시키지 않고 고정된 시간 내에 처리를 수행하기 위해서, -1이 입력되는 경우에 응답(다르게 표현하면, 1만큼 작은 표현)이 미리 준비되면, 캐리 전파는 방지될 수 있다.
이제, 용장 이진 표현의 상위 자릿수에서 연속적으로 결정된 몫 Q와 2의 보수 표현의 목 Z의 소수점 이하 j번째 자릿수까지를, 각각 Q(j)(=q(1)q(2)…q(j))와 Z(j)(=z(1)z(2)…z(j))라고 하면, 상기로부터 z(j)는, Q(j) 또는 Q(j)-2-j의 어느 하나의 2의 보수 형태로 표현될 수 있다. 따라서, 각 연산 스텝에서, 2의 보수 표현의 Q(j) 및 Q(j)-2-j를 유지해 두면, q(j)가 구해진 시점에서, 즉석에서 Z(j)를 구할 수 있다.
연산 도중의 j+1회째의 몫 디지트를 q(j+1)로 하면, Q(j)또는 Q(j)-2-j의 2의 보수 형태는 각각 QP(j)와 QN(j)로 표현되는데, 부분 제곱근정(partial square root positive)과 부분 제곱근부(partial square root negative)로 칭해진다. 기수에 따라 연산을 수행하여, q(j+1)가 구해지면, QP(j)와 QN(j)로부터, QP(j+1)와 QN(j+1)는 다음과 같이 구해질 수 있다.
q(j+1)=-1일 때,
QP(j+1)=QP(j)-2-(j+1)=QN(j)+2-j-2-(j+1)=QN(j)+2-(j+1) (4)
QN(j+1){=QP(j+1)-2-(j+1)}=QP(j)-2-(j+1)-2-(j+1)
=QP(j)-2-j=QN(j) (5)
q(j+1)=0일 때,
QP(j+1)=QP(j) (6)
QN(j+1)=QN(j)+2-(j+1) (7)
q(j+1)=1일 때,
QP(j+1)=QP(j)+2-(j+1) (8)
QN(j+1){=QP(j+1)-2-2(j+1)}=QP(j)+2-(j+1)-2-(j+1)=QP(j) (9)
상기 식 (4), (7) 및 (8)은 다음 식으로 표현될 수 있다:
Qx(j+1)=Qy(j)+2-(j+1)(연산의 기수는 2라고 가정)
이 연산은, j번째 자릿수까지의 부분적으로 구해진 제곱근 Qy(j)의 뒤에, (j+1)번째 자릿수의 몫(0 또는 1)인 q(j+1)의 비트열을 연결하는 것으로 충분하다. 따라서, 실질적인 연산은 수행되지 않는다. 다른 수식은, QP(j) 또는 QN(j) 중 어느 하나를 선택하기만 하면 충분하다. 이것은, j+1회째의 부분적으로 구해진 제곱근 Q(j+1) 즉 QP(j+1)이, j회째의 부분 제곱근정인 QP(j)와 부분 제곱근부인 QN(j)가 계산되어 저장되는 간단한 비트 연산을 통해 용장 2진수 형태에서 2의 보수 형 태(통상의 수)로 변환될 수 있기 때문이다.
또한, SRT 법에 의한 제산 연산 방법은, 발명의 명칭이 제산기인 일본 특개 2001-222410호(특허 문헌 1)에 기재되어 있다. 이 경우, 제수를 5/3≤제수<1.75와 같이 소정의 범위 내에 스케일링함으로써, 부분 나머지의 상위 4 비트가 정규화되고 정규화된 상위 4 비트를 참조하여, 2비트의 몫이 결정된다(기수 4의 제산 회로).
제산 회로의 부분 나머지의 생성은 고정된 값의 제수(D)를 고려한 감산에 의해 실현될 수 있고, 고기수(higher radix)는 제수의 범위를 스케일링함으로써 실현될 수 있다. 그러나, 제곱근 풀이 연산에서 실제 나머지를 생성할 때, 감산은, j회째의 부분적으로 구해진 제곱근(Q(j))과 목(q(j))을 고려하면서 반드시 수행된다.고기수를 실현하기 위해서, 몫 생성 회로 바로 앞의 디지트의 다른 몫을 고려할 필요가 있다. 그러므로, 회로가 복잡하게 되고 처리에 많은 시간이 들게 된다. 고기수의 제곱근 풀이 연산의 처리는 비특허 문헌3(Milos D. Ercegovac와 Tomas Lang에 의한 "Radix-4 Square root Without Initial PLA", IEEE Transactions On computers, Vol. 39, No. 8, August 1990, pp. 1016-1024)에 개시되어 있다. 이 경우에 있어서, 2비트의 몫은 3비트의 부분적으로 구해진 제곱근과 부분 나머지의 상위 7비트에 기초하여 결정될 수 있다. 그러나, 이러한 고기수에 대한 제곱근 풀이 연산이 채택되면, 몫을 결정하기 위한 회로가 커지고 복잡하게 되며 논리 단 수가 증가되고 복잡해진다.
또한, 제산기와 제곱근기의 공통 사용은 발명의 명칭이 "제산기와 제곱근기" 인 일본 특개평10-187420호(특허문헌2)에 개시되어 있다. 이 문헌은 2의 저기수에 따른 제산기와 제곱근기를 개시하기 때문에, 고기수의 제산과 저기수의 제곱근 풀이 연산을 수행할 수 없다.
상기 상술한 바와 같이, 고기수의 제곱근 풀이 연산은 고기수의 제산 연산보다 더 많은 수의 논리 단을 갖는 복잡한 회로를 필요로 한다. 제산 연산과 제곱근 풀이 연산에 동일한 기수가 채택되면, 처리 성능은 제곱근 풀이의 논리 단의 수에 의존하며 제산의 처리 성능은 나빠질 수 있다. 제산 처리 성능의 열화를 방지하기 위해서, 제곱근 풀이 연산의 기수는 제산 연산의 것보다 낮게 설정되어야만 한다. 예를 들면, 제곱근 풀이 연산에서 부분 나머지의 상위 4비트를 참조하는 회로 시스템을 실현하기 위해서는, 기수 2가 바람직하다.
따라서, 본 발명의 목적은 상기 상술된 종래 기술의 문제점의 관점에서, 제산과 제곱근 풀이 사이에서 많은 부분을 효율적으로 사용하고 제산 연산의 처리 성능을 저하시키지 않으면서 제곱근 풀이 연산의 기수보다 제산 연산의 기수를 더 높게 채택하는 제산 및 제곱근 연산 유닛을 제공하는 것이다.
본 발명의 일 양태에 따르면, 고기수의 제산 연산과 저기수의 제곱근 풀이 연산을 수행하기 위한 제산 및 제곱근 연산 유닛이 제공되는데, 이 제산 및 제곱근 연산 유닛은: 부분 나머지의 상위 비트를 참조하는 것에 의해 몫을 생성하는 몫 생성기와; 상기 부분 나머지의 상위 비트를 2의 보수 표현으로 유지하고 상기 부분 나머지의 상위 비트를 제외한 하위 비트를 용장 2진수 표현으로 유지하는 부분 나머지 레지스터와; 연산의 종류에 따라 제수와 부분적으로 구해진 제곱근 중 하나를 유지하는 제수-부분 제곱근 레지스터와; 상기 몫에 기초하여 상기 제수-부분 제곱근 레지스터로부터 상기 제수 및 상기 부분적으로 구해진 제곱근 중 하나를 선택하는 제수-부분 제곱근 선택기와; 용장 2진수 표현의 상기 부분 나머지의 하위 비트와 상기 제수-부분 제곱근 선택기의 출력을 입력받고 입력된 데이터를 가산하는 캐리 보존 가산기와; 2의 보수 표현의 상기 부분 나머지의 상위 비트와, 용장 2진수 표현의 상기 부분 나머지의 하위 비트와, 상기 제수-부분 제곱근 선택기의 출력 및 상기 캐리 보존 가산기로부터의 캐리 신호를 입력받고 입력된 데이터를 가산하는 캐리 전파 가산기; 및 상기 캐리 보존 가산기의 출력의 상위 비트로부터, 기수에 의해 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 입력된 데이터를 2의 보수 표현의 데이터로 변환하고, 상기 2의 보수 표현의 데이터를 연산의 기수에 기초하여 결정된 소정의 비트수만큼 시프트하여 다음 단계에서의 다른 부분 나머지를 얻는 2의 보수 변환 및 시프트 장치를 포함한다.
제산 및 제곱근 연산 유닛에 있어서, 상기 2의 보수 변환 및 시프트 장치는: 상기 캐리 보존 가산기의 출력의 상위 비트로부터, 고기수에 기초하여 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 상기 입력된 데이터를 2의 보수 표현의 데이터로 변환하는 제 1의 2의 보수 변환기와; 상기 캐리 보존 가산기의 출력의 상위 비트로부터, 저기수에 기초하여 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 상기 입력 데이터를 2의 보수 표현의 데이터로 변환하는 제 2의 2의 보수 변환기와; 제산 연산에서는 상기 제 1의 2의 보수 변환기를 선택하고 제곱근 풀이 연산에서는 상기 제 2의 2의 보수 변환기를 선택하는 선택기; 및 상기 선택기의 출력을, 제산 연산에서 고기수에 기초하여 결정된 제 1의 비트수 시프트하고 제곱근 풀이 연산에서는 저기수에 기초하여 결정된 제 2의 비트수 시프트하여, 다음 단계에서의 다른 부분 나머지를 얻는 시프터를 포함한다.
다른 제산 및 제곱근 연산 유닛에 있어서, 상기 2의 보수 변환 및 시프트 장치는: 2의 보수 표현의 상기 부분 나머지의 상위 비트를, 제산 연산과 제곱근 풀이 연산의 기수 사이의 차이에 의해 결정되는 소정의 비트수만큼 오른쪽으로 시프트하고, 시프트된 데이터를 상기 캐리 보존 가산기로 전송하는 제 1의 시프터와; 용장 2진수 표현의 상기 부분 나머지의 하위 비트를, 제산 연산과 제곱근 풀이 연산의 기수 사이의 차이에 의해 결정되는 소정의 비트수만큼 오른쪽으로 시프트하고, 시프트된 데이터를 상기 캐리 전파 가산기로 전송하는 제 2의 시프터와; 상기 캐리 보존 가산기의 결과의 상위 비트로부터 제산 연산의 고기수의 비트수에서 구해진 데이터와 상기 캐리 전파 가산기의 결과를 입력받고, 상기 입력된 데이터를 2의 보수 표현의 데이터로 변환하는 2의 보수 변환기; 및 상기 고기수에 기초하여 결정된 소정의 비트수만큼 상기 2의 보수 변환기의 출력을 시프트하여 다음 단계에서의 다른 부분 나머지를 얻는 제 3의 시프터를 포함한다.
본 발명의 목적, 특징 및 이점은 첨부된 도면과 연계한 하기의 상세한 설명으로부터 더욱 명확해질 것이다.
양호한 실시예의 상세한 설명
첨부된 도면을 참조하여 본 발명의 양호한 실시예를 상세히 설명한다.
이하에 설명하는 양호한 실시예에 있어서는, 제산 연산의 기수가 4, 디지트 집합이 {-1, -3, -2, -1, 0, 1, 2, 3}, 제수 및 피제수가 n 비트 길이의 소수(decimal number)라고 가정하고, 연산 알고리즘으로서 확장 SRT 제산 알고리즘을 채용한다. 또한, 제곱근 풀이 연산의 기수가 2, 디지트 집합이 {-1, 0, 1}, 구해진 제곱근이 n 비트 길이의 소수라고 가정하고, 연산 알고리즘으로서 SRT 제곱근 알고리즘을 채용한다.
도 1에는, 본 발명의 제 1의 실시예에 따른 제산 및 제곱근 연산 유닛이 도시되어 있다.
도 1에서, 스케일링 계수 생성기(1)는 스케일링에 사용될 승산 계수를 생성한다. 스케일링 계수 생성기(1)는 제산 연산에서 5/3≤제수<1.75와 같은 범위 내에서 제수를 스케일링하기 위한 승산 계수를 제수로부터 생성하지만, 제곱근 풀이 연산에서는 승산 계수=1을 사용하는 처리를 수행한다. 한 쌍의 53 비트×6 비트의 승산기(2,3)는 53비트의 입력된 피제수와 53비트의 입력된 제수를, 스케일링 계수 생성기(1)로부터 제공된 승산 계수로 각각 승산하고, 승산 결과를 출력한다. 이것은 부분 나머지의 상위 4비트의 정규화를 수행하며 상위 4비트를 참조하여 2비트의 몫을 결정한다(기수 4의 제산기).
기수 4의 제산 연산에 있어서, 제산기는 5/3≤제수<1.75와 같은 범위 내에서 스케일링되어 부분 나머지의 상위 4비트로부터 2비트의 몫을 생성한다. 부분 나머 지의 상위 4비트에서만 몫을 생성하는 방법이 채택되면, 제곱근 풀이 연산에서도 제산 처리 성능의 열화가 방지될 수 있다.
3배 제수 생성기(triple divisor producer; 4)는 53비트×6비트 승산기(2)의 출력을 3배로 하여 제수의 3배수를 생성하여 출력한다.
부분 나머지 상위 레지스터(5)는 2의 보수 표현의 부분 나머지의 상위 4비트를 유지한다. 부분 나머지 하위 레지스터(6)는 부분 나머지 상위 레지스터(5)에 의해 유지되는 상위 4비트를 제외한 부분 나머지의 하위 비트를 용장 2진수 표현으로 유지한다.
몫 생성기(7)는 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지되는 부분 나머지의 상위 4비트 중 하나를 선택한다. 즉, 제산 연산에서는 디지트 집합 {-3, -2, -1, 1, 2, 3} 중 하나 또는 제곱근 풀이 연산에서는 디지트 집합 {-1, 0, 1} 중 하나가 선택되어 몫을 생성한다.
제수-부분 제곱근 선택기(10)는 제산 연산에서 몫 생성기(7)에 의해 생성된 몫에 기초하여 제수를 선택하거나 제곱근 풀이 연산에서 몫 생성기(7)에서 생성된 몫과 위치 레지스터(16)에 저장된 위치 데이터에 기초하여 부분적으로 구해진 제곱근을 선택한다.
캐리 보존 가산기(carry save adder; 11)는 부분 나머지 하위 레지스터(6)로부터 용장 2진수 표현의 부분 나머지의 하위 비트와 제수-부분 제곱근 선택기(10)의 출력을 수신하고 어떠한 캐리 전파 없이 두 데이터를 가산하여 캐리 전파 가산기(12)에 캐리 신호를 출력한다.
캐리 전파 가산기(12)는 부분 나머지 상위 레지스터(5)로부터 전송된 부분 나머지의 상위 4비트와, 제수-부분 제곱근 선택기(10)의 출력 및 캐리 보존 가산기(11)로부터 제공된 캐리 신호를 가산한다.
부분 나머지에서 제수-부분 제곱근 선택 데이터를 감산함으로써 얻어진 부분 나머지 데이터의 시프트 연산에 있어서는, 기수가 고려되어야만 한다. 기수 2의 제곱근 풀이 연산의 경우에 있어서, j회째의 부분 나머지에서 제수-부분 제곱근 선택 데이터를 감산함으로써 얻어진 데이터는 왼쪽으로 1비트 시프트되어 j+1회째의 부분 나머지 데이터를 얻게 된다. 한편, 기수 4의 제산 연산의 경우에 있어서, j회째의 부분 나머지에서 제수-부분 제곱근 선택 데이터를 감산함으로써 얻어진 데이터는 왼쪽으로 2비트 시프트되어 j+1회째의 다른 부분 나머지 데이터를 얻게 된다. 또한, 몫 생성에서 참조된 데이터를 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지함으로써 몫 생성이 빨라질 수 있기 때문에, 상기 설명된 시프트 처리는 용장 2진수 표현의 하위 비트의 시프트 비트수의 데이터를 2의 보수 표현의 데이터로 변환하기 위한 한 쌍의 2의 보수 변환기(13-1 및 13-2)를 사용함으로써 수행된다.
2의 보수 변환기(13-1)는 제산 연산의 기수에 기초하여 캐리 보존 가산기(11)의 출력의 상위 비트로부터 소정 비트수(이 경우 2비트)의 데이터를 선택하고 선택된 데이터를 2의 보수 표현의 데이터로 변환한다. 2의 보수 변환기(13-2)는 제곱근 풀이 연산의 기수에 기초하여 캐리 보존 가산기(11)의 출력의 상위 비트로부터 소정 비트수(이 경우 1비트)의 데이터를 선택하고 선택된 데이터를 2의 보수 표 현의 데이터로 변환한다. 선택기(20)는 2의 보수 변환기(13-1 및 13-2)의 출력을 수신하고 제산 연산에서는 2의 보수 변환기(13-1)의 출력을 제곱근 풀이 연산에서는 2의 보수 변환기(13-2)의 출력을 선택한다. 시프터(shifter; 27)는 선택기의 출력을 제산 연산에서는 2비트만큼, 제곱근 풀이 연산에서는 1비트만큼 시프트하고, 시프트된 데이터를 선택기(23)로 전송한다. 시프터(28)는 캐리 보존 가산기(11)의 출력의 2의 보수 변환기(13-1)에 전송된 상위 비트를 제외한 하위 비트를 제산 연산에서는 2비트만큼, 제곱근 풀이 연산에서는 1비트만큼 시프트하고, 시프트된 데이터를 선택기(24)로 전송한다.
제수-부분 제곱근 정레지스터(divisor-partial square root positive register; 14)는 제산 연산에서는 제수를, 제곱근 풀이 연산에서는 부분적으로 구해진 제곱근을 유지한다. 3배 제수-부분 제곱근 부레지스터(triple divisor-partial square root negative register; 15)는 제산 연산에서는 3배 제수를, 제곱근 풀이 연산에서는 부분적으로 구해진 제곱근을 유지한다.
위치 레지스터(16)는 제곱근 풀이 연산에서 몫 생성기(7)에서 생성된 몫 디지트와 부분적으로 구해진 제곱근을 연결하기 위한 처리 비트 정보를 유지한다.
온더플라이 몫 정생성기(on-the-fly quotient positive producer; 17)는, 종래 기술과 마찬가지로, 목 생성과 병행하여, 용장 2진수 표현의 데이터를 2의 보수 표현의 데이터로 변환하고 그에 따라, 종래 기술과 마찬가지로 2의 보수 표현의 부분 제곱근 정데이터(partial square root positive data)를 생성한다. 온더플라이 몫 부생성기(on-the-fly quotient negative producer; 18)는, 종래 기술과 마찬가 지로, 목 생성과 병행하여, 용장 2진수 표현의 데이터를 2의 보수 표현의 데이터로 변환하고 그에 따라, 종래 기술과 마찬가지로 2의 보수 표현의 -1과 같은 부분 제곱근 부데이터(partial square root negative data)를 생성한다.
시프터(19)는 위치 레지스터(16)의 위치 데이터를 매싸이클마다 1비트만큼 오른쪽으로 시프트한다.
선택기(21)는 제곱근 풀이 연산에서는 온더플라이 몫 정생성기(on-the-fly quotient positive producer; 17)의 출력을, 제산 연산에서는 제수-부분 제곱근 정레지스터(divisor-partial square root positive register; 14)의 출력을 선택한다. 선택기(22)는 제곱근 풀이 연산에서는 온더플라이 몫 부생성기(on-the-fly quotient negative producer; 18)의 출력을, 제산 연산에서는 3배 제수-부분 제곱근 부레지스터(triple divisor-partial square root negative register; 15)의 출력을 선택한다.
선택기(23)는 첫 번째 싸이클에서 승산기(2)의 출력을 선택하고, 두 번째 싸이클과 그 이후에는 시프터(27)를 통해 2의 보수 변환기(13-1 또는 13-2)의 출력을 선택한다. 선택기(24)는 첫 번째 싸이클에서 승산기(2)의 출력을 선택하고, 두 번째 싸이클과 그 이후에는 시프터(28)를 통해 캐리 보존 가산기(11)의 출력을 선택한다.
선택기(25)는 첫 번째 싸이클에서 승산기(3)의 출력을 선택하고, 두 번째 싸이클과 그 이후에는 선택기(21)의 출력을 선택한다. 선택기(26)는 첫 번째 싸이클에서 3배 제수 생성기(4)의 출력을 선택하고, 두 번째 싸이클과 그 이후에는 선택 기(22)의 출력을 선택한다.
본 발명의 제 1의 실시예의 제산 및 제곱근 연산 유닛에서의 제산 연산이 도 1을 참조하여 상세히 설명될 것이다.
먼저, 스케일링 계수 생성기(1)는 5/3≤제수<1.75와 같은 범위 내에서 제수를 스케일링하기 위한 승산 계수를 제수의 상위 비트에서 생성한다.
생성된 승산 계수는 53비트×6비트 승산기(2 및 3)에 제공되고 승산 계수를 사용하여 제수 및 피제수를 스케일링한다. 3배 제수 생성기(4)는 스케일링된 제수로부터 3배 제수를 생성한다.
첫 번째 싸이클에서, 선택기(23, 24, 255 및 26)는 승산기(2 및 3)와 3배 제수 생성기(4)를 선택하여 데이터를 부분 나머지 상위 및 하위 레지스터(5 및 6), 제수-부분 제곱근 정레지스터(14) 및 3배 제수-부분 제곱근 부레지스터(15)로 전달한다.
승산기(2)가 부분 나머지의 하위 비트를 용장 2진수 표현으로 설정한 부분 나머지 하위 레지스터(6)에서는 {-1}이 생성되지 않기 때문에, 승산기(2)는 {0, 1}을 부분 나머지 하위 레지스터(6)에 설정한다.
몫 생성기(7)는 부분 나머지의 사위 비트가 2의 보수 표현으로 설정된 부분 나머지 상위 레지스터(5)에 유지된 내용으로부터 2비트의 몫을 생성한다.
생성된 몫에 기초하여 제수를 선택하기 위해서, 제수-부분 제곱근 선택기(10)는 스케일링된 제수의 {-3배, -2배, -1배, 0, 1배, 2배, 3배} 데이터에서 하나를 선택한다.
캐리 보존 가산기(11)는 부분 나머지 하위 레지스터(6)에 용장 2진수 표현으로 유지된 부분 나머지의 하위 비트와 선택된 제수의 하위 비트를 입력받고, 어떠한 캐리 전파도 없이 입력된 데이터를 가산한다.
캐리 보존 가산기(11)로부터 캐리가 생성되면, 캐리 보존 가산기(11)는 캐리 전파 가산기(12)에 캐리 신호를 전송한다.
캐리 전파 가산기(12)는 부분 나머지 상위 레지스터(5)로부터 부분 나머지의 상위 비트를, 제수-부분 제곱근 선택기(10)로부터 선택된 제수의 상위 비트를, 그리고 캐리 보존 가산기(11)로부터 캐리 신호를 수신하고 입력 데이터를 가산한다.
다음 싸이클에서 사용될 부분 나머지는, 상기 상술된 바와 같이, 기수에 따라 데이터를 왼쪽으로 2비트만큼 시프트함으로써 생성된다.부분 나머지의 몫 생성에 필요한 소정 비트수의 데이터가 2의 보수 표현으로 부분 나머지 상위 레지스터(5)에 유지되기 때문에, 2의 보수 변환기(13-1)는 캐리 보존 가산기(11)에 유지된 2의 보수 표현의 부분 나머지의 하위 비트로부터 2비트 데이터를 선택하고, 선택된 2비트 데이터를 2의 보수 표현의 데이터로 변환하고, 얻어진 데이터를 선택기(20)를 통해 시프터(27)로 전송한다. 시프터(27)는 수신된 데이터를 2비트 왼쪽으로 시프트하고, 시프트된 데이터를 선택기(23)를 통해 부분 나머지 상위 레지스터(5)로 전송하여, 다음 디지트의 몫을 생성한다.
또한, 마찬가지로, 시프터(28)는 캐리 보존 가산기(11)의 출력 중, 2의 보수 변환기(13-1)에 전송된 상위 비트를 제외한 하위 비트를, 제산 연산에서는 2비트만큼 제곱근 풀이 연산에서는 1비트만큼 시프트하고, 시프트된 데이터를 선택기(24) 를 통해 부분 나머지 하위 레지스터(6)에 전송하여, 시프트된 데이터를 부분 나머지 하위 레지스터(6)에 설정한다.
제산 연산에 있어서, 제수와 3배 제수가 고정된 값이기 때문에, 제수-부분 제곱근 정레지스터(14)에 유지된 데이터는 선택기(21)에 의해 선택되고 또한 선택기(25)는 선택기(21)를 선택하여 제수 데이터를 유지한다. 마찬가지로, 3배 제수-부분 제곱근 부레지스터(15)에 유지된 3배 제수 데이터는 선택기(22)에 의해 선택되고 또한 선택기(26)는 선택기(22)를 선택하여 필요한 데이터를 유지한다.
다음에, 본 발명의 제 1의 실시예의 제산 및 제곱근 연산 유닛에서의 제곱근 풀이의 연산을 도 2를 참조로 상세히 설명한다.
제곱근 풀이 연산에 있어서, 부분 나머지는 제수 대신 부분적으로 구해진 제곱근을 사용함으로써 계산된다. 연산될 수는 승산기(2)와 선택기(23 및 24)를 통해 부분 나머지 상위 및 하위 레지스터(5 및 6)에 설정된다.
몫 생성기(7)는 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지된 데이터로부터 1비트의 몫을 생성한다.
1회째에서 부분적으로 구해진 제곱근(R(0))이 0이기 때문에, 제수-부분 제곱근 정레지스터(14)와 3배 제수-부분 제곱근 부레지스터(15)에 0이 설정된다.
제수-부분 제곱근 선택기(10)는 몫 생성기(7)에서 생성된 몫에 기초하여 부분적으로 구해진 제곱근을 선택한다.
캐리 보존 가산기(11)는 부분 나머지 하위 레지스터(6)로부터의 부분 나머지의 하위 데이터와, 선택된 부분적으로 구해진 제곱근의 하위 데이터를 수신하고 어 떠한 캐리 전파도 없이 입력 데이터를 가산한다.
캐리 보존 가산기(11)로부터 캐리가 생성되면, 캐리 보존 가산기(11)는 캐리 신호를 캐리 전파 가산기(12)에 전송한다.
캐리 전파 가산기(12)는 부분 나머지 상위 레지스터(5)로부터의 부분 나머지의 상위 데이터와, 제수-부분 제곱근 선택기(10)로부터의 선택된 부분적으로 구해진 제곱근 및 캐리 보존 가산기(11)로부터의 캐리 신호를 수신하고, 입력 데이터를 가산한다.
다음 싸이클에서 사용될 부분 나머지는, 상기 상술된 바와 같이, 기수에 따라 데이터를 1비트만큼 왼쪽으로 시프트함으로써 생성된다. 2의 보수 변환기(13-2_는 캐리 보존 가산기(11)에 유지된 2의 보수 표현의 부분 나머지의 하위 비트에서 1비트 데이터를 선택하고, 선택된 1비트 데이터를 2의 보수 표현의 데이터로 변환하고, 얻어진 데이터를 선택기(20)를 통해 시프터(27)로 전송한다. 시프터(27)는 수신된 데이터를 1비트만큼 왼쪽으로 시프트하고 시프트된 데이터를 선택기(23)를 통해 부분 나머지 상위 레지스터(5)로 전송하여 다음 디지트의 몫을 생성한다.
마찬가지로, 시프터(28)는 캐리 보존 가산기(11)의 출력 중, 2의 보수 변환기(13-1)로 전송된 상위 비트를 제외한 하위 비트를, 제산 연산에서는 2비트만큼 제곱근 풀이 연산에서는 1비트만큼 시프트하고, 시프트된 데이터를 선택기(24)를 통해 부분 나머지 하위 레지스터(6)에 전송하여 부분 나머지 하위 레지스터(6)에 시프트된 데이터를 설정한다.
제수-부분 제곱근 선택기(10)에 입력된 몫과 연결된 부분적으로 구해진 제곱 근이 용장 2진수 표현이 아니라 2의 보수 표현의 데이터로서 입력되기 때문에, 몫 생성기(7)에서 생성된 몫을 고려하면서, 온더플라이 몫 정생성기 및 부생성기(17 및 18)는 종래 기술과 마찬가지로 부분 제곱근 정데이터 및 부분 제곱근 부데이터를 생성한다.
온더플라이 몫 정생성기(17)는 부분적으로 구해진 제곱근을 2의 보수 표현으로 생성하고, 생성된 부분적으로 구해진 제곱근을 선택기(21 및 25)를 통해 제수-부분 제곱근 정레지스터(14)에 전송하여, 생성된 부분적으로 구해진 제곱근을 제수-부분 제곱근 정레지스터(14)에 유지한다.
온더플라이 몫 부생성기(18)는 2의 보수 표현의 부분적으로 구해진 제곱근(-1)을 생성하고, 생성된 부분적으로 구해진 제곱근(-1)을 선택기(22 및 26)를 통해 3배 제수-부분 제곱근 부레지스터(15)에 전송하고, 다음 디지트의 몫 생성을 위해, 생성된 부분적으로 구해진 제곱근을 3배 제수-부분 제곱근 부레지스터(15)에 유지한다.
몫 생성 디지트를 지시하기 위한 위치 레지스터(16)에 있어서, 초기 조건에서 MSB=1만이 설정된다. 시프터(19)는 매싸이클마다 위치 레지스터(16)의 위치 데이터를 1비트만큼 오른쪽으로 시프트하고 1비트 오른쪽 시프트 데이터가 매싸이클마다 위치 레지스터(16)에 설정된다.
상기 상술된 바와 같이, 본 발명에 따른 제산 및 제곱근 연산 유닛의 제 1의 실시예에 있어서, 가산기의 출력과 캐리 보존 가산기의 출력의 상위 비트로부터 선택된 소정 비트수(연산의 기수에 기초하여 결정됨)의 데이터가 입력되어 2의 보수 표현의 데이터로 변환되고, 2의 보수 표현의 데이터는 소정의 비트수(연산의 기수에 기초하여 결정됨)만큼 시프트되고, 시프트된 데이터는 다음 디지트의 부분 나머지를 위해 사용된다. 따라서, 제수 및 부분적으로 구해진 제곱근에 대해, 많은 수의 부품(예를 들면, 레지스터)이 제산기와 제곱근기에서 공통으로 사용될 수 있기 때문에, 효율적이고 고성능의 연산 유닛을 실현할 수 있게 된다. 또한, 제산 연산의 기수가 제곱근 풀이 연산의 기수보다 높게 설정되기 때문에, 제산 처리 성능이 크게 향상될 수 있다.
도 3에는, 본 발명의 제 2의 실시예에 따른 제산 및 제곱근 연산 유닛이 도시되어 있다.
상기 상술된 제 1의 실시예에 있어서, 다음 단계에서 부분 나머지를 생성하기 위해서, 제산 연산에서는 2비트 데이터의 2의 보수 표현으로의 변환이, 제곱근 풀이 연산에서는 1비트 데이터의 2의 보수 표현으로의 변환이 실행되고, 또한, 제산 연산 또는 제곱근 풀이 연산을 선택하기 위한 선택기(20)가 사용된다. 부분 나머지에서 제수를 감산하는 것에 의해 얻어지는 결과를 부분 나머지 상위 레지스터(5)로 되돌리기 위한 경로는 다수의 논리 단을 포함한다. 이 경로에 선택기를 추가하면 회로 지연 시간을 증가시키고, 그에 따라 클록 지연 또는 레지스터 추가가 필요하게 되어, 결과적으로 제산 연산 및 제곱근 풀이 연산의 처리 속도를 저하시키게 된다.
제 2의 실시예에 있어서, 제 1의 실시예와는 달리, 제곱근 풀이 연산에서, 시프터(8)는 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지된 부분 나머 지 상위 비트를 오른쪽으로 1비트만큼 시프트하고, 시프터(9)는 부분 나머지 하위 레지스터(6)에 용장 2진수 표현으로 유지된 부분 나머지 하위 비트를 1비트만큼 오른쪽으로 시프트한다. 제 1의 실시예의 2의 보수 변환기(13-1 및 13-2) 대신, 2의 보수 변환기(13)가 캐리 보존 가산기(11)의 출력의 상위 비트로부터 2비트 데이터를 선택하고 선택된 데이터를 2의 보수 표현의 데이터로 변환한다. 제산 연산 및 제곱근 풀이 연산에 있어서, j회째의 부분 나머지에서 제수-부분 제곱근 선택 데이터를 감산함으로써 얻어지는 결과는 2비트만큼 왼쪽으로 시프트되어 j+1회째의 부분 나머지 데이터를 얻게 된다. 따라서, 부분 나머지에서 제수를 감산함으로써 얻어지는 결과를 부분 나머지 상위 레지스터(5)로 되돌리기 위한 경로의 회로 지연 시간은 향상될 수 있고, 제산 연산과 제곱근 풀이 연산에서 처리 속도가 향상될 수 있다.
본 발명의 제 2의 실시예의 제산 및 제곱근 연산 유닛에서의 제산 연산이 도 3을 참조로 상세히 설명될 것이다.
제 1의 실시예와 마찬가지로, 먼저, 스케일링 계수 생성기(1)가 소정의 범위 내에서 제수를 스케일링하기 위한 승산 계수를 상위 비트로부터 생성한다. 생성된 승산 계수는 53비트×6비트 승산기(2 및 3)에 제공되고, 승산 계수를 사용하여 제수와 피제수를 스케일링한다. 3배 제수 생성기(4)는 스케일링된 제수로부터 3배 제수를 생성한다.
첫 번째 싸이클에서, 선택기(23)는 승산기(2)의 출력을 선택하고 데이터를 부분 나머지 상위 레지스터(5)로 전달한다. 선택기(24)는 승산기(2)의 출력을 선택 하고 데이터를 부분 나머지 하위 레지스터(6)로 전달한다. 선택기(25)는 승산기(3)의 출력을 선택하고 데이터를 제수-부분 제곱근 정레지스터(14)로 전달한다. 선택기(26)는 3배 제수 생성기(4)의 생성된 결과를 선택하고 데이터를 3배 제수-부분 제곱근 부레지스터(15)로 전달한다.
부분 나머지의 상위 4비트는 2의 보수 표현으로 부분 나머지 상위 레지스터(5)에 설정된다. 4비트를 제외한 부분 나머지의 하위 비트는 용장 2진수 표현 {0, 1}의 수치로서 부분 나머지 하위 레지스터(6)에 설정된다.
몫 생성기(7)는 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지된 4비트 데이터로부터 2비트의 몫을 생성한다.
생성된 몫에서 제수를 선택하기 위해서, 제수-부분 제곱근 선택기(10)는 스케일링된 제수 데이터의 {-3배, -2배, -1배, 0, 1배, 2배, 3배} 중 하나를 선택한다.
캐리 보존 가산기(11)는 부분 나머지 하위 레지스터(6)에 용장 2진수 표현으로 유지된 부분 나머지의 하위 비트와 선택된 제수의 하위 비트를 입력받고, 입력된 데이터를 캐리 전파 없이 가산한다. 캐리 보존 가산기(11)로부터 캐리가 생성되면, 캐리 보존 가산기(11)는 캐리 전파 가산기(12)로 캐리 신호를 전송한다.
캐리 전파 가산기(12)는 부분 나머지 상위 레지스터(5)로부터의 부분 나머지의 상위 비트와, 제수-부분 제곱근 선택기(10)로부터의 선택된 제수의 상위 비트 및 캐리 보존 가산기(11)로부터의 캐리 신호를 수신하고, 입력된 데이터를 가산한다.
다음 싸이클에서 사용될 부분 나머지는, 상기 상술된 바와 같이, 기수에 따라 데이터를 소정 비트 왼쪽으로 시프트함으로써 생성된다. 부분 나머지의 몫 생성에 필요한 소정 비트수의 데이터가 2의 보수 표현으로 부분 나머지 상위 레지스터(5)에 유지되기 때문에, 2의 보수 변환기(13)는 캐리 보존 가산기(11)로부터 상위 2비트 데이터를 선택하고, 선택된 2비트 데이터를 용장 2진수 표현에서 2의 보수 표현으로 변환하고, 얻어진 데이터를 선택기(20)를 통해 시프터(27)로 전송한다. 시프터(27)는 수신된 데이터를 2비트만큼 왼쪽으로 시프트하고, 다음 디지트의 몫을 생성하기 위해, 시프트된 데이터를 선택기(23)를 통해 부분 나머지 상위 레지스터(5)로 전송한다. 또한, 마찬가지로, 시프터(28)는 캐리 보존 가산기(11)의 출력 중, 2의 보수 변환기(13)로 전송된 상위 비트를 제외한 하위 비트를 2비트만큼 시프트하고, 시프트된 데이터를 부분 나머지 하위 레지스터(6)에 설정하기 위해, 시프트된 데이터를 선택기(24)를 통해 부분 나머지 하위 레지스터(6)로 전송한다.
제산 연산에 있어서, 제수가 고정된 값이기 때문에, 제수-부분 제곱근 정레지스터(14)에 유지된 데이터는 선택기(21)에 의해 선택되고 또한 선택기(25)는 선택기(21)를 선택하여 제수 데이터를 유지한다. 마찬가지로, 3배 제수가 고정된 값이기 때문에, 3배 제수-부분 제곱근 부레지스터(15)에 유지된 3배 제수 데이터는 선택기(22)에 의해 선택되고 또한 선택기(26)는 선택기(22)를 선택하여 필요한 데이터를 유지하게 된다.
다음에, 본 발명의 제 2의 실시예의 제산 및 제곱근 연산 유닛에서의 제곱근 풀이의 연산을 도 3을 참조하여 설명할 것이다.
먼저, 연산될 수가 승산기(2)와 선택기(23 및 24)를 통해 부분 나머지 상위 및 하위 레지스터(5 및 6)에 설정된다.
몫 생성기(7)는 부분 나머지 상위 레지스터(5)에 2의 보수 표현으로 유지된 데이터로부터 1비트의 몫을 생성한다.
1회째에 부분적으로 구해진 제곱근(R0))은 0이기 때문에, 제수-부분 제곱근 정레지스터(14)와 3배 제수-부분 제곱근 부레지스터(15)에 0이 설정된다.
제수-부분 제곱근 선택기(10)는 몫 생성기(7)에서 생성된 몫에 기초하여 부분적으로 구해진 제곱근을 선택한다.
시프터(8)는 2의 보수 표현의 데이터를 유지하고 있는 부분 나머지 상위 레지스터(5)의 출력을 1비트만큼 오른쪽으로 시프트한다. 시프터(9)는 용장 2진수 표현의 데이터를 유지하고 있는 부분 나머지 하위 레지스터(6)의 출력을 1비트만큼 오른쪽으로 시프트한다.
캐리 보존 가산기(11)는 시프터(9)로부터의 부분 나머지의 시프트된 하위 데이터와 제수-부분 제곱근 선택기(10)로부터의 선택된 부분적으로 구해진 제곱근의 하위 데이터를 수신하고, 입력된 데이터를 어떠한 캐리 전파없이 가산한다. 캐리 보존 가산기(11)로부터 캐리가 생성되면, 캐리 보존 가산기(11)는 캐리 전파 가산기(12)에 캐리 신호를 전송한다.
캐리 전파 가산기(12)는 시프터(8)로부터의 부분 나머지의 시프트된 상위 데이터와, 제수-부분 제곱근 선택기(10)로부터의 선택된 부분적으로 구해진 제곱근 및 캐리 보존 가산기(11)로부터의 캐리 신호를 수신하고, 입력된 데이터를 가산한 다.
다음 싸이클에서 사용될 부분 나머지는, 상기 상술된 바와 같이, 기수에 따라 데이터를 소정의 비트수만큼 왼쪽으로 시프트함으로써 생성된다. 상위 비트에 관해서, 2의 보수 변환기(13)는 캐리 보존 가산기(11)의 출력의 상위 비트로부터 상위 2비트 데이터를 선택하고, 선택된 2비트 데이터를 용장 2진수 표현에서 2의 보수 표현으로 변환한다. 얻어진 데이터는 기수에 따라 시프트되어야만 한다. 부분 나머지의 데이터는 캐리 보존 가산기(11)와 캐리 전파 가산기(12)에 입력되기 이전에 시프터(8 및 9)에 의해 1비트만큼 오른쪽으로 이미 시프트되어 있기 때문에, 2의 보수 변환기(13)로부터 출력되는 데이터는 제산 연산에서와 동일한 방식으로 시프터(27)에 의해 2비트만큼 왼쪽으로 시프트된다. 시프트된 데이터는 선택기(23)를 통해 부분 나머지 상위 레지스터(5)로 전송되고, 다음 디지트의 몫의 생성을 위해 부분 나머지 상위 레지스터(5)에 설정된다.
하위 비트에 관해서, 시프터(28)는 캐리 보존 가산기(11)의 출력 중, 2의 보수 변환기(13)에 전송된 상위 비트를 제외한 하위 비트를 2비트만큼 시프트하고, 시프트된 데이터를 부분 나머지 하위 레지스터(6)에 설정하기 위해, 시프트된 데이터를 선택기(24)를 통해 부분 나머지 하위 레지스터(6)로 전송한다.
제수-부분 제곱근 선택기(10)에 입력된 몫과 연결된 부분적으로 구해진 제곱근이 용장 2진수 표현이 아니라 2의 보수 표현의 데이터로서 입력되기 때문에, 몫 생성기(7)에서 생성된 몫을 고려하면서, 온더플라이 몫 정생성기(17) 및 온더플라이 몫 부생성기(18)는, 종래 기술과 마찬가지로, 각각, 부분 제곱근 정데이터와 부 분 제곱근 부데이터를 생성한다.
온더플라이 몫 정생성기(17)는 부분적으로 구해진 제곱근을 2의 보수 표현으로 생성하고, 생성된 부분적으로 구해진 제곱근을 선택기(21 및 25)를 통해 제수-부분 제곱근 정레지스터(14)로 전송한다. 생성된 부분적으로 구해진 제곱근은 제수-부분 제곱근 정레지스터(14)에 유지된다. 온더플라이 몫 부생성기(18)는 2의 보수 표현의 부분적으로 구해진 제곱근(-1)을 생성하고, 생성된 부분적으로 구해진 제곱근(-1)을 선택기(22 및 26)를 통해 3배 제수-부분 제곱근 부레지스터(15)에 전송한다. 생성된 부분적으로 구해진 제곱근은 3배 제수-부분 제곱근 부레지스터(15)에 유지되고, 다음 디지트의 몫 생성을 위해 제수-부분 제곱근 선택기(10)로 전송된다.
몫 생성 디지트를 지시하기 위한 위치 레지스터(16)에 있어서, 초기 조건에서 MSB=1만이 설정된다. 시프터(19)는 위치 레지스터(16)의 위치 데이터를 매싸이클마다 1비트만큼 오른쪽으로 시프트하고, 1비트 오른쪽으로 시프트된 데이터는 매싸이클마다 위치 레지스터(16)에 설정된다.
상기 상술된 바와 같이, 본 발명에 따른 제산 및 제곱근 연산 유닛의 제 2의 실시예에 있어서, 1비트만큼 오른쪽으로 미리 시프트된 부분 나머지가 마련되고, 1비트 시프트된 부분 나머지로부터 다른 부분 나머지가 연산되어 시프트 비트수를 제산 연산에 대한 왼쪽으로의 2비트 시프트와 동일하게 설정한다. 따라서, 데이터의 리턴 경로에 선택기를 부가하지 않고도 2의 보수 변환기는 제산 연산과 제곱근 풀이 연산에서 공통으로 사용될 수 있다. 따라서, 본 발명의 제산 및 제곱근 연산 유닛에 있어서, 제산 연산 및 제곱근 풀이 연산에서의 처리 속도의 저하가 방지될 수 있다.
또한, 본 발명은 수치 계산 결과의 가시화에 의해 사용되는 좌표 계산용으로 사용되는 제곱근 풀이 연산을 포함하는 고속 계산 분야에서 활용될 수 있다.
이상 본 발명이 특정한 예증적인 실시예를 참조로 설명되었지만, 본 발명은 이들 실시예가 아니 첨부된 특허청구범위에 의해서만 그 의미가 한정된다. 당해 기술분야의 당업자라면 본 발명의 취지와 범위를 벗어나지 않으면서 상기 실시예를 변경 및 수정할 수 있을 것이다.
본 발명에 따르면, 캐리 보존 가산기의 출력의 상위 비트로부터 선택된 소정 비트수(연산의 기수에 기초하여 결정됨)의 데이터와 상기 가산기의 출력을 입력받아 2의 보수 표현의 데이터로 변환하고, 2의 보수 표현의 데이터는 소정의 비트수(연산의 기수에 기초하여 결정됨) 시프트되고, 시프트된 데이터를 다음 디지트의 부분 나머지로 사용한다. 따라서, 제수와 부분적으로 구해진 제곱근의 레지스터와 같은 많은 수의 부품이 제산기와 제곱근기에서 공통으로 사용될 수 있게 되어 효율적이고 고성능의 연산 유닛을 실현할 수 있게 된다. 또한, 제산 연산의 기수는 제곱근 연산의 기수보다 높게 설정될 수 있고, 제산 처리 성능이 크게 향상될 수 있다.
제곱근 풀이 연산에 있어서, 시프터는 부분 나머지 상위 레지스터에 2의 보수 표현으로 유지된 부분 나머지 상위 비트를 오른쪽으로 1비트만큼 시프트하고, 시프터는 부분 나머지 하위 레지스터에 용장 2진수 표현으로 유지된 부분 나머지 하위 비트를 1비트만큼 오른쪽으로 시프트한다. 2의 보수 변환기는 캐리 보존 가산기의 출력의 상위 비트로부터 2비트 데이터를 선택하고 선택된 데이터를 2의 보수 표현의 데이터로 변환한다. 제산 연산 및 제곱근 풀이 연산에 있어서, j회째의 부분 나머지에서 제수-부분 제곱근 선택 데이터를 감산함으로써 얻어지는 결과는 2비트 왼쪽으로 시프트되어 j+1회째의 부분 나머지 데이터를 얻게 된다. 따라서, 부분 나머지에서 제수를 감산하는 것에 의해 얻어지는 결과를 부분 나머지 상위 레지스터로 리턴하기 위한 경로의 회로 지연 시간은 개선될 수 있고, 제산 연산과 제곱근 풀이 연산에서 처리 속도가 향상될 수 있다.
또한, 본 발명에 따르면, 제곱근 풀이 연산에 있어서, 1비트만큼 미리 오른쪽으로 시프트된 부분 나머지가 마련되고, 다른 부분 나머지는 1비트 시프트된 부분 나머지로부터 연산되어 제산 연산에 대해 시프트 비트수를 2비트 왼쪽으로의 시프트와 동일하게 설정한다. 따라서, 데이터의 리턴 경로에 선택기를 부가하지 않고도 2의 보수 변환기는 제산 연산과 제곱근 풀이 연산에서 공통으로 사용될 수 있다. 따라서, 본 발명의 제산 및 제곱근 연산 유닛에서는 제산 연산과 제곱근 풀이 연산에서의 처리 속도의 저하가 방지될 수 있다.

Claims (3)

  1. 고기수의 제산 연산과 저기수의 제곱근 풀이 연산을 수행하기 위한 제산 및 제곱근 연산 유닛에 있어서,
    스케일링에 사용될 승산 계수를 생성하는 스케일링 계수 생성기와;
    53비트의 입력된 피제수와 6비트의 입력된 제수를, 상기 스케일링 계수 생성기로부터 제공된 승산 계수로 각각 승산하고, 승산 결과를 출력하는 한 쌍의 승산기와;
    상기 승산기의 출력을 3배로 하여 제수의 3배수를 생성하여 출력하는 3배 제수 생성기와;
    부분 나머지의 상위 비트를 2의 보수 표현으로 유지하는 부분 나머지 상위 레지스터 및 상기 부분 나머지의 상위 비트를 제외한 하위 비트를 용장 2진수 표현으로 유지하는 부분 나머지 하위 레지스터와;
    상기 부분 나머지의 상위 레지스터에 의해 2보수 표현으로 유지되는 상기 부분 나머지의 상위 비트를 참조하는 것에 의해 몫을 생성하는 몫 생성기와;
    연산의 종류에 따라 제수와 부분적으로 구해진 제곱근 중 하나를 유지하는 제수-부분 제곱근 레지스터와;
    상기 몫 생성기에 의해 생성된 몫에 기초하여 상기 제수-부분 제곱근 레지스터로부터 상기 제수 및 상기 부분적으로 구해진 제곱근 중 하나를 선택하는 3배 제수-부분 제곱근 선택기와;
    상기 용장 2진수 표현의 상기 부분 나머지의 하위 비트와 상기 제수-부분 제곱근 선택기의 출력을 입력받고 입력된 데이터를 가산하는 캐리 보존 가산기와;
    2의 보수 표현의 상기 부분 나머지의 상위 비트와, 용장 2진수 표현의 상기 부분 나머지의 하위 비트와, 상기 제수-부분 제곱근 선택기의 출력 및 상기 캐리 보존 가산기로부터의 캐리 신호를 입력받고 입력된 데이터를 가산하는 캐리 전파 가산기와;
    상기 캐리 보존 가산기의 출력의 상위 비트로부터, 기수에 의해 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 입력된 데이터를 2의 보수 표현의 데이터로 변환하고, 상기 2의 보수 표현의 데이터를 연산의 기수에 기초하여 결정된 소정의 비트수만큼 시프트하여 다음 단계에서의 다른 부분 나머지를 얻는 2의 보수 변환 및 시프트 장치와;
    상기 몫 생성기에서 생성된 몫 디지트와 부분적으로 구해진 제곱근을 연결하기 위한 처리 비트 정보를 유지하는 위치 레지스터와;
    상기 몫 생성과 병행하여, 용장 2진수 표현의 데이타를 2의 보수 표현의 부분 제곱근 정데이터를 생성하는 온더플라이 몫 정생성기와;
    상기 몫 생성과 병행하여, 용장 2진수 표현의 데이터를 2의 보수 표현의 데이터로 변환하고 그에 따라 부분 제곱근의 부데이터를 생성하는 온더플라이 몫 부 생성기를 포함하는 것을 특징으로 하는 제산 및 제곱근 연산 유닛.
  2. 제 1항에 있어서,
    상기 2의 보수 변환 및 시프트 장치는:
    상기 캐리 보존 가산기의 출력의 상위 비트로부터, 고기수에 기초하여 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 상기 입력된 데이터를 2의 보수 표현의 데이터로 변환하는 제 1의 2의 보수 변환기와;
    상기 캐리 보존 가산기의 출력의 상위 비트로부터, 저기수에 기초하여 결정된 소정 비트수의 비트 데이터 및 상기 캐리 전파 가산기의 출력을 입력받고, 상기 입력 데이터를 2의 보수 표현의 데이터로 변환하는 제 2의 2의 보수 변환기와;
    제산 연산에서는 상기 제 1의 2의 보수 변환기를 선택하고 제곱근 풀이 연산에서는 상기 제 2의 2의 보수 변환기를 선택하는 선택기; 및
    상기 선택기의 출력을, 제산 연산에서 고기수에 기초하여 결정된 제 1의 비트수 시프트하고 제곱근 풀이 연산에서는 저기수에 기초하여 결정된 제 2의 비트수 시프트하여, 다음 단계에서의 다른 부분 나머지를 얻는 시프터를 포함하는 것을 특징으로 하는 제산 및 제곱근 연산 유닛.
  3. 제 1항에 있어서,
    상기 2의 보수 변환 및 시프트 장치는:
    2의 보수 표현의 상기 부분 나머지의 상위 비트를, 제산 연산과 제곱근 풀이 연산의 기수 사이의 차이에 의해 결정되는 소정의 비트수만큼 오른쪽으로 시프트하고, 시프트된 데이터를 상기 캐리 보존 가산기로 전송하는 제 1의 시프터와;
    용장 2진수 표현의 상기 부분 나머지의 하위 비트를, 제산 연산과 제곱근 풀이 연산의 기수 사이의 차이에 의해 결정되는 소정의 비트수만큼 오른쪽으로 시프트하고, 시프트된 데이터를 상기 캐리 전파 가산기로 전송하는 제 2의 시프터와;
    상기 캐리 보존 가산기의 결과의 상위 비트로부터 제산 연산의 고기수의 비트수에서 구해진 데이터와 상기 캐리 전파 가산기의 결과를 입력받고, 상기 입력된 데이터를 2의 보수 표현의 데이터로 변환하는 2의 보수 변환기; 및
    상기 고기수에 기초하여 결정된 소정의 비트수만큼 상기 2의 보수 변환기의 출력을 시프트하여 다음 단계에서의 다른 부분 나머지를 얻는 제 3의 시프터를 포함하는 것을 특징으로 하는 제산 및 제곱근 연산 유닛.
KR1020050123009A 2004-12-15 2005-12-14 제산 및 제곱근 연산 유닛 KR100756137B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00362300 2004-12-15
JP2004362300A JP4273071B2 (ja) 2004-12-15 2004-12-15 除算・開平演算器

Publications (2)

Publication Number Publication Date
KR20060067874A KR20060067874A (ko) 2006-06-20
KR100756137B1 true KR100756137B1 (ko) 2007-09-05

Family

ID=35999596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050123009A KR100756137B1 (ko) 2004-12-15 2005-12-14 제산 및 제곱근 연산 유닛

Country Status (9)

Country Link
US (1) US7921149B2 (ko)
EP (1) EP1672481B1 (ko)
JP (1) JP4273071B2 (ko)
KR (1) KR100756137B1 (ko)
AU (1) AU2005256094A1 (ko)
CA (1) CA2530015C (ko)
DE (1) DE602005011742D1 (ko)
DK (1) DK1672481T3 (ko)
SG (1) SG123731A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509365B2 (en) * 2005-02-11 2009-03-24 International Business Machines Corporation Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units
EP2341425A1 (en) * 2009-12-30 2011-07-06 STMicroelectronics (Grenoble 2) SAS control of electric machines involving calculating a square root
US8819098B2 (en) 2010-11-23 2014-08-26 International Business Machines Corporation Computation of a remainder by division using pseudo-remainders
US8868633B2 (en) * 2012-03-30 2014-10-21 Advanced Micro Devices, Inc. Method and circuitry for square root determination
RU2510072C1 (ru) * 2012-10-25 2014-03-20 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы") Устройство деления и извлечения квадратного корня
US9348796B2 (en) 2013-09-19 2016-05-24 International Business Machines Corporation Arithmetic operation in a data processing system
US9785407B2 (en) * 2014-11-21 2017-10-10 Arm Limited Data processing apparatus having combined divide-square root circuitry
US10209957B2 (en) * 2015-05-04 2019-02-19 Samsung Electronics Co., Ltd. Partial remainder/divisor table split implementation
US10209959B2 (en) 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate
WO2020090024A1 (ja) * 2018-10-31 2020-05-07 富士通株式会社 演算処理装置
US11119731B2 (en) 2019-03-12 2021-09-14 Arm Limited Apparatus and method for rounding
US11281428B2 (en) * 2019-03-12 2022-03-22 Arm Limited Conversion circuitry

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US6847986B2 (en) * 2000-02-07 2005-01-25 Nec Corporation Divider

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023827A (en) * 1988-08-18 1991-06-11 Digital Equipment Corporation Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5128891A (en) 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5687106A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Implementation of binary floating point using hexadecimal floating point unit
US5787030A (en) * 1995-07-05 1998-07-28 Sun Microsystems, Inc. Correct and efficient sticky bit calculation for exact floating point divide/square root results
JP3514566B2 (ja) 1995-12-13 2004-03-31 株式会社ルネサステクノロジ 除算/開平回路
JPH10187420A (ja) 1996-12-26 1998-07-21 Hitachi Ltd 除算・開平演算器
US6490607B1 (en) * 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6108682A (en) * 1998-05-14 2000-08-22 Arm Limited Division and/or square root calculating circuit
JP3517162B2 (ja) 1999-09-22 2004-04-05 株式会社東芝 除算・開平演算装置
US7243119B1 (en) * 2000-09-26 2007-07-10 Hitachi, Ltd. Floating point computing unit
US7016930B2 (en) * 2002-10-25 2006-03-21 Arm Limited Apparatus and method for performing operations implemented by iterative execution of a recurrence equation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US6847986B2 (en) * 2000-02-07 2005-01-25 Nec Corporation Divider

Also Published As

Publication number Publication date
AU2005256094A1 (en) 2006-06-29
EP1672481B1 (en) 2008-12-17
US7921149B2 (en) 2011-04-05
SG123731A1 (en) 2006-07-26
DK1672481T3 (da) 2009-03-16
KR20060067874A (ko) 2006-06-20
US20060129623A1 (en) 2006-06-15
EP1672481A1 (en) 2006-06-21
DE602005011742D1 (de) 2009-01-29
CA2530015C (en) 2010-01-05
CA2530015A1 (en) 2006-06-15
JP2006172035A (ja) 2006-06-29
JP4273071B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
KR100756137B1 (ko) 제산 및 제곱근 연산 유닛
Mohan et al. Residue Number Systems
US8639737B2 (en) Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format
JP2835153B2 (ja) 高基数除算器
JPH04227535A (ja) 除算を行なう装置
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
CN113467750A (zh) 用于基数为4的srt算法的大整数位宽除法电路及方法
US6847986B2 (en) Divider
CN117908835B (zh) 一种基于浮点数计算能力加速sm2国密算法的方法
US5289399A (en) Multiplier for processing multi-valued data
JP3660075B2 (ja) 除算装置
Chandu et al. Design and implementation of high efficiency square root circuit using Vedic mathematics
Mohan et al. Implementation of Quaternary Signed Adder System
JPH086766A (ja) 正弦余弦演算装置
US7266578B2 (en) Method and hardware for computing reciprocal square root and program for the same
AU2020424575B2 (en) Secure square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program
Villalba-Moreno et al. Floating Point Square Root under HUB Format
Rajkumar et al. VLSI Implementation of Signed Multiplier using Quaternary Signed Digit Number System
AU2020423805B2 (en) Secure selective product computation system, secure selective product computation method, secure computation apparatus, and program
JP2000010763A (ja) 除算回路
US11157594B2 (en) Matrix multiplication in hardware using modular math
JP2795253B2 (ja) 除算器
JPS6155691B2 (ko)
JP2803442B2 (ja) 開平装置
Hong et al. A novel radix-4 bit-level modular multiplier for fast RSA cryptosystem

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
LAPS Lapse due to unpaid annual fee