KR100853787B1 - 가변 진법 나눗셈 연산기 - Google Patents

가변 진법 나눗셈 연산기 Download PDF

Info

Publication number
KR100853787B1
KR100853787B1 KR1020040117839A KR20040117839A KR100853787B1 KR 100853787 B1 KR100853787 B1 KR 100853787B1 KR 1020040117839 A KR1020040117839 A KR 1020040117839A KR 20040117839 A KR20040117839 A KR 20040117839A KR 100853787 B1 KR100853787 B1 KR 100853787B1
Authority
KR
South Korea
Prior art keywords
quotient
cycle
multiplexer
output
base
Prior art date
Application number
KR1020040117839A
Other languages
English (en)
Other versions
KR20060078258A (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 KR1020040117839A priority Critical patent/KR100853787B1/ko
Priority to US11/322,210 priority patent/US7702715B2/en
Publication of KR20060078258A publication Critical patent/KR20060078258A/ko
Application granted granted Critical
Publication of KR100853787B1 publication Critical patent/KR100853787B1/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/52Multiplying; 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5352Non-restoring division not covered by G06F7/5375

Landscapes

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

Abstract

본 발명에 따른 가변 진법 나눗셈 연산기는 가변 진법 나눗셈 연산기에 있어서, 입력되는 피제수와 제수를 가/감산하는 가/감산기와, 상기 피제수와 상기 제수 및 카운팅 신호를 이용하여 몫의 길이 및 비트열 길이를 제한하기 위한 사이클 몫을 예측하는 제 1 몫/진법 생성기와, 상기 피제수와 상기 제수 및 카운팅신호를 이용하여 사이클 진법을 예측하는 제 2 몫/진법 생성기와, 상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 선택적으로 출력하는 제 1 멀티플렉서와, 상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 진법을 선택적으로 출력하는 제 2 멀티플렉서와, 상기 제 1 멀티 플렉서로부터의 출력에 따라 상기 가/감산 연산의 결과를 5비트 시프트시켜 상기 가/감산기로 피드백시키는 5비트 시프터와, 상기 제 1 멀티 플렉서로부터의 출력을 카운팅하여 상기 제 1 및 제 2 몫/진법 생성기에 상기 카운팅 신호를 공급하는 카운터와, 상기 제 2 멀티 플렉서로부터의 출력과 피드백되는 몫 신호를 논리합 연산하여 최종 몫을 구하는 논리합 게이트를 포함하여 구성되고, 상기 제 1 및 제 2 몫/진법 생성기 각각은, 상기 카운팅 신호에 따라 상기 피제수 및 제수 각각의 상위 비트를 가/감산하여 예측 신호를 생성하는 예측 가/감산기와, 상기 예측 신호에 따라 상기 사이클 진법을 생성하는 진법 생성부와, 상기 예측 신호에 따라 예측 몫을 생성하는 몫 생성부와, 상기 사이클 진법과 상기 예측 못을 논리 곱 연산하는 논리곱 게이트와, 상기 논리곱 게이트로부터의 출력을 시프트시켜 상기 사이클 몫을 생성하는 시프터를 포함하여 구성되는 것을 특징으로 한다.
여기서, 제1 몫/진법 생성기의 출력은 제1 다중화기로 입력되고 제1 몫/진법 생성기의 출력은 제2 다중화기로 입력되며, 제1 다중화기와 제2 다중화기는 가/감산기의 출력을 입력으로 하여 가/감산기가 동작을 하는 동안 가능한 시나리오에 대한 몫은 무엇이 될 것인지와 진법은 얼마로 할 것인지를 결정함으로써 연산 시간을 줄일 수 있다.
또한, 본 발명에서는 제수와 피제수의 일부분만으로 짧은 시간 안에 예측 정보를 만들어 내며, 이 예측 정보로부터 상위 0열 또는 상위 1열을 검출함으로써 간단하게 진법을 결정할 수 있다. 예컨대, 가/감산기의 출력 자리올림수가 결정되면, 상기 제1 몫/진법 생성기와 제2 몫/진법 생성기 중 어느 하나가 선택된다.
나눗셈 연산기, SRT, 진법(radix)

Description

가변 진법 나눗셈 연산기{ Division Arithmetic Unit of Variable Radix}
도 1은 본 발명에 따른 가변 진법 나눗셈 연산기의 전체 구조를 나타내는 블록도.
도 2는 본 발명에 따른 가변 진법 나눗셈 연산기에 사용하기에 적합한 몫/진법 생성기의 구조를 나타내는 블록도.
<도면의 주요 부호에 대한 설명>
10: 피제수 15: 제수
20: 가/감산기 30: 몫/진법 생성기
31: 예측 가/감산기 33: 진법 생성기
35: 몫 생성기 37: 논리곱
39, 50: 시프터(shifter) 35: MUX (Multiplexer)
60: 카운터 70: 논리합
80: 몫
본 발명은 관한 나눗셈 연산기에 관한 것으로서, 좀 더 구체적으로는 동작 속도가 빠르고 예측 정보를 통해 간단하게 연산기에서 사이클 별로 2진에서 16진까지 진법을 바꾸어가며, 1비트(bit)에서 4비트까지 가변적으로 몫을 얻어내는 가변 진법 나눗셈 연산기에 관한 것이다.
디지털 회로는 신호 처리 측면에서는 이진 연산을 하지만, 회로 블록이 되어 구조적 관점에서 보면 4진, 10진, 16진 등 모든 진법을 수행할 수 있다. 종래 나눗셈기의 경우 회로 설계의 편의상 4진, 8진, 16진과 같이 2의 지수승으로 진법을 결정하여 설계되었다. 이것의 대표적인 방식은 숫자 체계를 바탕으로 나눗셈의 기본이 되는 복원 알고리즘으로부터 출발하여 복원동작을 배제한 비복원 알고리즘에 몇가지 조건을 추가한 SRT (Sweeny, Robertson, Tocher 세 사람이 거의 동시에 개발한 나눗셈 연산 알고리즘) 방식이다.
SRT 방식은 기존의 비복원 알고리즘에 필요한 덧셈/뺄셈 동작이 필요없고, 몫의 한 비트를 '0'으로 하여 시프트(shift) 동작만 추가하였고, 기존의 비복원 알고리즘의 수렴 조건 범위를 축소하여 몫의 비트에 중복성(redundancy) 기법을 도입한 것이다. 이러한 중복성 특성을 이용하여 비교상수의 비트를 최소화하여 몫의 비트 결정회로를 단순하게 만들 수 있다.
SRT 나눗셈 연산 알고리즘의 기본 순환(recursive) 방정식은 다음과 같다.
P1 = P0 - q1 · D1
Pj+1 = r · Pj ─ qj+1 · D
여기서, Pj는 j번째 부분 나머지(partial remainder)이고 P0은 피제수(dividend), r은 기수(진법, radix), D는 제수(divisor), qj+1는 (j+1)번째 반복수행에서의 몫(quotient) 비트를 말한다.
SRT 나눗셈기는 대부분의 고성능 부동소수점 연산기에서 채택되고 있는데, SRT 나눗셈기는 뺄셈 방식으므로 곱셈기의 사용으로 인한 부동 소수점 연산기의 성능 감소가 발생하지 않는다. 일반적으로 회로의 면적, 동작 클럭 주파수 등을 고려하여 4진(Radix-4) SRT 나눗셈기를 많이 사용한다. 이보다 높은 진법의 나눗셈기는 사실상 동작 주파수의 문제로 인해 일반적으로 채택되지는 않고, 높은 성능이 필수적인 시스템에서는 특수한 기술(예컨대, Milos D. Ercegovac, Tomas Lang and Paolo Montuschi, "Very-high Radix Division with Pre-scaling and Selection by Rounding", IEEE trans. On Computers, Vol. 43, No. 8, pp.909-918, Aug. 1994 참조)을 부가하여 사용되고 있다.
4진 나눗셈 방식이라 함은 하나의 실수 나눗셈을 수행하기 위하여 매 사이클 당 2-비트씩의 몫을 얻어내어 축적하여 몫을 구하는 것이다. 그런데 이러한 종래 SRT 나눗셈기는 다른 제산 알고리즘에 비해 비교적 많은 수식, 그래프, 이론으로 이루어져 있으며, 테이블(table) 기반의 구조이기 때문에 부동 소수점 연산기 내에서의 중요도에 비해 설계하는 데에 많은 시간이 걸린다는 문제점이 있다. 또한, 연산을 수행하는 데에 많은 시간이 필요하다는 단점이 있다.
본 발명의 목적은 회로 설계가 좀 더 간단한 가변 진법 나눗셈 연산기를 제공하는 것이다.
본 발명의 다른 목적은 동작 주파수가 높고 연산 처리가 신속하게 이루어지는 가변 진법 나눗셈 연산기를 제공하는 것이다.
삭제
본 발명에 따른 가변 진법 나눗셈 연산기는 가변 진법 나눗셈 연산기에 있어서, 입력되는 피제수와 제수를 가/감산하는 가/감산기와, 상기 피제수와 상기 제수 및 카운팅 신호를 이용하여 몫의 길이 및 비트열 길이를 제한하기 위한 사이클 몫을 예측하는 제 1 몫/진법 생성기와, 상기 피제수와 상기 제수 및 카운팅신호를 이용하여 사이클 진법을 예측하는 제 2 몫/진법 생성기와, 상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 선택적으로 출력하는 제 1 멀티플렉서와, 상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 진법을 선택적으로 출력하는 제 2 멀티플렉서와, 상기 제 1 멀티 플렉서로부터의 출력에 따라 상기 가/감산 연산의 결과를 5비트 시프트시켜 상기 가/감산기로 피드백시키는 5비트 시프터와, 상기 제 1 멀티 플렉서로부터의 출력을 카운팅하여 상기 제 1 및 제 2 몫/진법 생성기에 상기 카운팅 신호를 공급하는 카운터와, 상기 제 2 멀티 플렉서로부터의 출력과 피드백되는 몫 신호를 논리합 연산하여 최종 몫을 구하는 논리합 게이트를 포함하여 구성되고,
상기 제 1 및 제 2 몫/진법 생성기 각각은, 상기 카운팅 신호에 따라 상기 피제수 및 제수 각각의 상위 비트를 가/감산하여 예측 신호를 생성하는 예측 가/감산기와, 상기 예측 신호에 따라 상기 사이클 진법을 생성하는 진법 생성부와, 상기 예측 신호에 따라 예측 몫을 생성하는 몫 생성부와, 상기 사이클 진법과 상기 예측 못을 논리 곱 연산하는 논리곱 게이트와, 상기 논리곱 게이트로부터의 출력을 시프트시켜 상기 사이클 몫을 생성하는 시프터를 포함하여 구성되는 것을 특징으로 한다.
여기서, 제1 몫/진법 생성기의 출력은 제1 다중화기로 입력되고 제1 몫/진법 생성기의 출력은 제2 다중화기로 입력되며, 제1 다중화기와 제2 다중화기는 가/감산기의 출력을 입력으로 하여 가/감산기가 동작을 하는 동안 가능한 시나리오에 대한 몫은 무엇이 될 것인지와 진법은 얼마로 할 것인지를 결정함으로써 연산 시간을 줄일 수 있다.
또한, 본 발명에서는 제수와 피제수의 일부분만으로 짧은 시간 안에 예측 정보를 만들어 내며, 이 예측 정보로부터 상위 0열 또는 상위 1열을 검출함으로써 간단하게 진법을 결정할 수 있다. 예컨대, 가/감산기의 출력 자리올림수가 결정되면, 상기 제1 몫/진법 생성기와 제2 몫/진법 생성기 중 어느 하나가 선택된다.
또한, 본 발명에서는 제수와 피제수의 일부분만으로 짧은 시간 안에 예측 정보를 만들어 내며, 이 예측 정보로부터 상위 0열 또는 상위 1열을 검출함으로써 간단하게 진법을 결정할 수 있다. 예컨대, 가/감산기의 출력 자리올림수가 결정되면, 상기 제1 몫/진법 생성기와 제2 몫/진법 생성기 중 어느 하나가 선택된다.
본 발명의 일구현 예에 따르면, 제1 몫/진법 생성기와 제2 몫/진법 생성기의 진법 생성기에서 출력된 값은 사이클 진법으로 되고, 제1, 제2 몫/진법 생성기 각가은 상기 진법 생성기의 출력과 몫 생성기의 출력을 논리곱 연산하는 논리곱 게이트와 이 논리곱 게이트의 출력을 입력으로 하는 시프터로서 그 출력을 사이클 몫으로 하는 시프터를 포함한다.
본 발명의 가변 진법 나눗셈 연산기는 가/감산기의 출력과 연결되는 시프터와, 제1 다중화기의 출력과 연결되는 카운터를 더 구비하며, 시프터에는 제1 다중화기의 출력이 입력되고, 카운터의 출력은 제1, 제2 몫/진법 생성기로 피드백 되고, 시프터의 출력은 피제수로 피드백 된다.
구현예
이하 도면을 참조로 본 발명의 구체적인 구현예에 대해 설명한다.
도 1은 본 발명에 따른 나눗셈 연산기의 전체 구성을 나타내는 블록도이다.
도 1을 참조하면, 본 발명에 따른 나눗셈 연산기(100)는 피제수(10), 제수(15), 몫(80)을 나눗셈의 연산자로 사용하며 입력되는 피제수와 제수를 가/감산하는 가/감산기(20)와, 피제수, 제수 및 카운팅 신호를 이용하여 몫의 길이 및 비트열의 길이를 제한하기 위한 사이클 몫을 예측하는 제 1 몫/진법 생성기(30a)와, 피제수, 제수 및 카운팅 신호를 이용하여 사이클 진법을 예측하는 제 2 몫/진법 생성기(30b)와, 가/감산의 결과에 따라 사이클 몫 또는 사이클 진법을 선택적으로 출력하는 제 1 다중화기(MUX, 35a) 및 제2 다중화기(35b)와, 제 2 다중화기(35b)로부터의 출력과 피드백되는 몫 신호를 논리합 연산을 수행하여 최종 몫을 구하는 논리합(70)과, 제 1 다중화기(MUX, 35a)로부터의 출력을 카운팅하여 제 1 및 제 2 몫/진법 생성기(30a, 30b)에 카운팅 신호를 공급하는 카운터(60)와, 제 1 다중화기(MUX, 35a)로부터의 출력에 따라 가/감산 연산의 결과를 5비트 시프트시켜 가/감산기로 피드백시키는 5비트 시프터(50)를 포함하여 구성된다.
가/감산기(20)는 피제수(10)와 제수(15)를 입력으로 하여 이를 가산 또는 감산하여 그 결과를 시프터(50) 및 제 1 다중화기(MUX)(35a), 제2 다중화기(MUX)(35b)로 출력한다. 여기서, 시프터(50)는 5-비트(bit) 시프터이다.
시프트(50)는 제 1 다중화기(35a)로부터의 출력에 따라 가/감산 연산의 결과를 5비트 시프트시켜 피제수(10)로 피드백(feedback)시키고, 피제수(10)로 피드백된 가/감산의 연산결과는 가/감산기(20)로 피드백되어 입력된다. 즉, 시프트(50)는 가/감산 연산의 결과를 5비트 시프트시켜 다시 가/감산기(20)로 피드백시킨다.
또한, 피제수(10)와 제수(15)는 가/감산기(20) 외에도, 제 1 및 제 2 몫/진법 생성기(30a, 30b)에도 입력된다.
제 1 몫/진법 생성기(30a)의 출력은 제 1 다중화기(35a)로 입력되며, 제 1 다중화기(35a)의 출력은 카운터(60) 되어 제 1 및 제 2 몫/진법 생성기(30a, 30b)로 피드백된다. 이러한, 제 1 몫/진법 생성기(30a)는 피제수와 제수 및 카운터(60)의 신호를 이용하여 몫의 길이 및 비트열의 길이를 제한한다.
제 2 몫/진법 생성기(30b)의 출력은 제 1 및 제 제 2 다중화기(35a, 35b)로 입력되며, 제 2 다중화기(35b)의 출력은 논리합(70)으로 입력되고, 이 논리합(70)의 출력이 몫(80)이 된다. 몫(80)은 다시 논리합(70)의 입력으로 피드백된다. 여기서, 제 2 몫/진법 생성기(30b)는 피제수, 제수 및 카운터(60)의 신호를 이용하여 사이클 진법을 예측한다.
나눗셈 연산기(100)는 피제수(10)로 피드백되는 데이터(나머지 정보) 및 몫이 축적되는 경로 등을 통해 나눗셈이 끝날 때까지 순환(반속) 사이클(반복 단위) 동작을 수행한다.(n번째 연산이 수행되면, n번째 연산의 피제수를 제수로 나누어 얻어진 중간 몫은 축적되고, 피제수와 제수의 연산에 의해 생성된 데이터 즉, 나머지 값은 다음 연산 즉 n+1번째 연산의 피제수 데이터가 된다.)
또한, 가/감산기(20)가 동작을 하는 동안 제 1 및 제 2 몫/진법 생성기(30a, 30b)는 두 가지 가능한 시나리오에 대해 몫은 무엇이 될 것인지, 진법은 얼마로 할 것인지를 결정해 놓는다. 이후 가/감산기의 동작이 끝나면, 그 부호에 따라 두 가지 시나리오 중 하나가 선택되고 선택된 몫은 축적되며, 선택된 진법은 전체 나눗셈기의 제반 제어에 사용된다. 시나리오에 대한 선택은 제 1 및 제 2 다중화기(35a, 35b)에 의해 이루어진다.
나눗셈 연산기를 이렇게 구성하면, 전체 연산 시간을 줄일 수 있다. 종래에는 가/감산 연산이 완전히 끝난 후 그 결과인 부분 나머지로부터 몫과 진법의 생성이 시작되었지만, 이 경로는 지연이 너무 길기 때문에, 2개의 몫/진법 생성기(30a, 30b)를 두고, 두 가지 가능한 경우를 미리 계산한 후 가/감산 결과가 이중에 맞는 것을 선택하도록 설계한다.
도 1의 본 발명의 나눗셈 연산기(100)에서 논리합 게이트(70)는 선택된 몫을 축적하며, 선택된 비트열 길이(진법)는 카운터(60)에 더해진다. 카운터(60)는 정밀도에 따라 언제 순환을 끝낼지를 제 1 몫/진법 생성기(30a) 및 제 2 몫/진법 생성기(30b)에 알린다. 부분 나머지는 시프터(50)에 의해 진법의 비트열 길이만큼 왼쪽으로 시프트되어 다음 사이클의 부분 피제수(10)가 된다.
여기서, 몫을 결정하는 두 가지의 규칙 중, 제 1 규칙은 비복원 방식의 몫 결정 방식으로서 첫 번째 몫을 결정한 후 두 번째 몫을 결정할 때 첫 번째 추출한 몫을 복원시키지 않고 두 번째 몫을 추출하는 방식을 의미하며, 제 2 규칙은 추가 몫의 결정을 위한 것으로서, 추가 몫을 몫의 길이인 비트열에서 최상위 비트를 제외한 부분으로 결정하는 방식을 의미한다.
도 2는 본 발명에 따른 나눗셈 연산기에 사용하기에 적합한 몫/진법 생성기의 내부 구조를 나타내는 블록도이다.
도 2에서 보는 것처럼, 본 발명에 따른 몫/진법 생성기(30a 30b)는 카운팅 신호에 따라 피제수 및 제수 각각의 상위 비트를 가/감산하여 예측 신호를 생성하는 예측 가/감산기(31)와, 가/감산기(31)의 예측 신호에 따라 사이클 진법을 생성하는 진법 생성기(33)와, 가/감산기(31)의 예측 신호에 따라 몫을 생성하는 몫 생성기(35)와, 진법 생성기(33)에서 생성된 사이클 진법과 몫 생성기(35)에서 생성된 예측 몫을 논리 곱 연산하는 논리곱 게이트(37)와, 논리곱 게이트로부터의 출력을 시프트시켜 사이클 몫을 생성하는 시프터(39)를 포함하여 구성된다.
여기서, 사이클 진법은 진법 생성기에서 출력된 값을 2진에서 16진까지 즉, 2진, 4진, 8진, 16진과같이 2의 지수승으로 진법이 결정되는 것을 의미한다. 또한, 사이클 몫은 사이클 진법에서와 같이, 사이클별로 2진에서 16진까지 진법을 바꾸어가며 가변적으로 비트(bit)별 몫을 얻어내는 것을 의미한다.
예측 가/감산기(31)에서 피제수의 예측 검출 영역 즉, 상위 6-비트와 제수의 검출 영역으로 상위 6-비트가 입력된다. 예측 가/감산기(31)의 출력은 진법 생성기(33)와 몫 생성기(35)로 입력되고, 진법 생성기(33)와 몫 생성기(35)의 출력은 게이트(37)에서 논리곱 연산된 후 시프터(39)로 입력된다. 진법 생성기(33)의 출력은 사이클 진법이며, 시프터(39)의 출력은 사이클 몫이 된다.
여기서, 사이클 진법은 진법 생성기에서 출력된 값을 2진에서 16진까지 즉, 2진, 4진, 8진, 16진의 진법이 상황에 따라 변화되며, 이러한 진법의 선택적 변화는 가/감산기(31)로부터의 예측 신호에 따른다. 가/감산기(31)에서 생성되는 예측 신호는 입력된 피제수의 전체 비트 중에서 상위 6비트를 입력된 제수의 젠체 비트 중에서 상위 6비트로 연산시 2진, 4진, 8진, 16진의 진법 중에서 최적의 진법을 선택하는 것을 의미한다.
삭제
삭제
삭제
삭제
삭제
도 2의 몫/진법 생성기(30a, 30b))는 제수와 피제수의 일부분(제수의 상위 6비트(bit)와 피제수의 상위 6비트(bit))만으로 짧은 시간 안에 예측 정보를 만들어내며, 예측 정보로부터 두 가지 시나리오 즉, 상위 "0"열 또는 상위 "1"열을 검출함으로써 간단하게 진법을 결정해 낼 수 있다.
여기서, 두 가지 가능한 시나리오는 가/감산기의 동작에 따른 몫과 진법의 값 예측이 "0"과 "1"의 경우에 따라 이루어지는 것을 의미한다.
예측 가/감산기는 그 입력 자리올림수(carry)가 아직 결정되어 있지 않으므로 2개의 예측 가/감산기(제1 몫/진법 생성기에 하나, 제2 몫/진법 생성기에 하나)를 두어 각각 '0'과 '1'의 경우를 계산하도록 한다. 여기서 유효 숫자 처리를 위한 피연산자와 부분 나머지 길이를 56 비트로 설정하였을 때의 내용은 아래 수식과 같다.
삭제
{sbSb0 .b1b2b3b4} <- {COUT, B5B6 … B51B52BE} ; 56비트 가/감산 과정.
위 수식에서 s는 부분 나머지의 부호이며, bS는 제수가 2배 되었을 때, 즉 제수에 2의 계수가 곱해졌을 때, 이를 표현하기 위해 확장된 비트이다. BE는 제수가 1/2배 되었을 때, 이를 표현하기 위해 확장된 비트이다. b로 표시된 위치는 두 개의 예측 가/감산기가계산하며, B로 표시된 부분은 49비트 가/감산기가 계산한다. s는 bS와 같은 값을 가지므로 복사하여 구한다.
삭제
도 2에서 진법 생성기(33)와 몫 생성기(35)는 예측 가/감산기(31)가 미리 계산한 6-비트를 이용하여 각각의 진법과 몫을 생성한다. 이 때 도 1의 가/감산기(20)도 함께 동작한다. 가/감산기(20)의 출력 자리올림수가 결정되면, 이 출력 자리올림수에 의해 두 병렬 블록의 결과 중에서 옳은 것이 선택된다.
또한, 예측 가/감산기(31)는 진법 생성기(33)에 예측 정보를 제공한다. 진법 생성기(33)는 이 예측 정보를 이용하여 몫 마스크와 비트열 길이를 출력한다. 몫 마스크는 몫의 길이를 제한하는 데에 사용되며 비트열 길이는 도 1의 카운터(60)와 5-비트 시프터(50)에 사용된다. 비트열 길이는 또한 카운터(60)에 축적되어 사이클 연산의 종료 시점을 결정하는 데에도 사용된다. 몫 마스크는 비트열 길이와 같은 논리곱 마스크이다. 즉, 몫과 논리곱되어 비트열의 길이 내에 있는 부분만 남기고 그 이외의 부분은 제거한다. 즉, 몫 마스크는 몫의 길이를 비트열의 길이와 같도록 하기 위한 것이다.
도 2에서 몫 생성기(35)는 예측 가/감산기(31)의 예측 정보에 몫 결정 규칙을 적용하여 몫을 생성한다. 본 발명에서는 예컨대 2개의 몫 결정 규칙을 적용할 수 있는데, 몫 결정 규칙 1은 몫(q)의 첫번째 비트를 부분 나머지의 부호의 부정(not)으로 하는 결정 규칙이고, 몫 결정 규칙 2는 추가의 몫은 비트열에서 최상위 비트를 제외한 부분으로 하는 결정 규칙이다.
제산/제곱근은 매 사이클 마다 부분 몫(q)을 결정하여, 이를 축적함으로써 최종 몫(Q)을 구하게 된다.
복원(restoring)의 방식은 제수를 부분 피제수로부터 감산한 결과가 양수일 때 q를 "1"로 결정하며, 음수일 때에는 감산을 취소한다.
한편, 비복원(Non-restoring) 방식에서는 부분 피제수가 양수일 때 제수를 감하며, 음수일 때에는 제수를 가한다. q는 결과가 양일 때 "1"로, 음일 때 "0"으로 결정된다. 이처럼 복원/비복원 방식에서는 한 사이클에 구할 수 있는 부분 몫(q)의 길이가 항상 1비트가 된다.
고성능의 부동 소수점 연산기에 쓰이는 제산기는 사이클 당 2비트의 q를 결정하도록 설계되어 있다. 2비트 이상의 q를 결정하기 위해서 종래 기술에의 SRT 연산기는 기수(radix)를 높이는 방법을 사용하지만, 본 발명의 실시 예에 따른 가변 진법 나눗셈 연산기에서는 부분 나머지의 비트열을 분석하는 방법을 사용한다.
몫 결정 규칙 1과 몫 결정 규칙 2에 대하여 자세히 설명하면 발명의 실시 예에 따른 가변 진법 나눗셈 연산기는 매 사이클마다 다음의 동작은 반복적으로 수행하게 된다.
먼저, 부분 피제수와 제수/제곱근 감수의 크기를 대략적으로 비교하여 계수를 선택한다. 선택된 계수는 아래의 수식1과 같이 제수에 곱해지거나, 제곱근 감수 생성에 사용된다. 이렇게 생성된 제수의 배수 또는 제곱근 감수(residual)를 부분 피제수와 가산 또는 감산하여 부분 나머지를 얻는다. 이 부분 나머지의 상위쪽에 비트열이 나타나게 된다. 우선 부분 나머지의 부호를 통해 1비트의 몫이 결정되며, 추가의 몫이 비트열의 분석을 통해 결정된다. 이때, 비트열이 길수록 추가의 몫도 길어지게 된다. 이렇게 결정된 중간 몫(q)은 현재까지 결정된 몫(Q)에 축적된다. 부분 나머지는 비트열의 길이만큼 쉬프트되어 다음 사이클의 부분 피제수가 된다.
i번째 사이클에서 비트열의 길이가 k라고 가정하면,
Pj+1 = 2k * Pj ± f(계수) * D(제수)
사이클이 게속 진행되어 몫(Q)의 길이가 미리 설정된 정밀도 이상이 되면, 이후에 진행되는 연산의 값은 최종 얻고자 하는 값에 큰 영향을 미치지 않음으로 연산을 종료하게 된다. 따라서, 연산이 종료되는 마지막 사이클에서는 비트열의 길이와 상관없이 설정된 정밀도를 얻을 수 있을 만큼의 중간 몫(q)가 결정된다.
몫 결정 규칙 1은 비복원 방식의 몫 결정과 같은 내용이며, 여기에 결정 규칙 2에 의해 추가의 몫이 결정됨으로써 몫의 길이가 증가한다. 이러한 결정 규칙은 보통의 경우 결정 규칙 1이 q[4]에 적용되고, 결정 규칙 2가 q[3:0]에 적용된다. 그 외 특수한 경우에 대한 결정 규칙 적용은 다음과 같다.
(1) 계수가 2일 때 결정 규칙 1은 1-비트 상위에 적용되므로 q[4:3]에는 결정 규칙 2가 적용된다.
삭제
(2) 계수가 1/2일 때, 결정 규칙 1은 1-비트 하위인 q[3]에 적용되며, q[4]에는 결정 규칙 2가 적용된다.
(3) 초과 경우 전 사이클의 몫 결정이 계속되므로, 결정 규칙 2가 q[4:3]에 적용된다.
(4) q[2:0]에는 항상 결정 규칙 2가 적용된다.
피제수, 제수 및 몫을 입력으로 하는 MUX는 좌우로 1비트씩 쉬프트 된 값의 입력 중에서 하나를 선택하게 된다. 왼쪽으로 1비트 쉬프트 시에는 입력 값이 2배가 되며, 오른쪽으로 1비트 쉬프트 시에는 입력 값이 1/2이 된다. 따라서, 계수가 이 MUX의 출력을 선택하게 된다.
여기서, "계수가 2일 때 결정 규칙"은 제수 및 몫을 입력으로 하는 MUX가 외쪽으로 1비트 쉬프트 된 값을 입력으로 선택한 것을 의미한다. 한편 "계수가 1/2일 때 결정 규칙"은 제수 및 몫을 입력으로 하는 MUX가 오른쪽으로 1비트 쉬프트 된 값을 입력으로 선택한 것을 의미한다.
본 발명의 가변 진법 나눗셈 연산기는 IEEE 754 표준에서 정한 데이터의 길이를 이용하여 몫의 길이를 구하게 된다. 여기서 몫의 길이는 "단정밀도" 방식과 "배정밀도" 방식에 따라 다르게 되는데, "단정밀도" 방식은 26비트 길이를 가지게 되고, "배정밀도" 방식은 55비트의 길이를 가지게 된다.
연산의 결과 부분 목(q)의 비트의 길이가 미리 정해진 비트의 길이(26비트 또는 55비트)가 초과되기 전 까지는 연산의 중간 결과 값이 얻고자 하는 최종 값에 미치지 않음을 의미한다. 이러한 경우 최종의 몫을 얻기 위한 중간 몫(q)을 결정하는 연산을 계속해서 수행하게 된다.
본 발명에 따른 가변 진법 나눗셈 연산기(100)의 성능을 검사한 결과는 아래의 표 1과 같다.
검사 항목 4진 SRT 방식 본 발명 가변 진법 방식
사이클당 계산량(bit) 2 2.54 (평균)
IEEE 표준 나눗셈 수행(사이클) 28 22.3 (평균)
사이클 시간(nano second) 5.5 5.5
최종 수행 시간(nano second) 5.5 × 28 = 154 5.5 × 22.3 = 122.7
위 표 1에서 IEEE 표준 나눗셈은 An American National Standard, IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Std. 754, 1985를 말한다. 위 결과로부터 알 수 있는 것처럼, 본 발명에 따른 가변 진법 나눗셈 연산기는 동일한 연산을 수행했을 경우 연산 수행 시간이 종래 SRT 방식의 나눗셈기와 비교할 때 20% 정도 단축된다.
지금까지 본 발명의 구체적인 구현예를 도면을 참조로 설명하였지만 이것은 본 발명이 속하는 기술분야에서 평균적 지식을 가진 자가 쉽게 이해할 수 있도록 하기 위한 것이고 발명의 기술적 범위를 제한하기 위한 것이 아니다. 따라서 본 발명의 기술적 범위는 특허청구범위에 기재된 사항에 의하여 정하여지며, 도면을 참조로 설명한 구현예는 본 발명의 기술적 사상과 범위 내에서 얼마든지 변형하거나 수정할 수 있다.
본 발명에 따르면 제수와 피제수의 일부분만으로 짧은 시간 안에 예측 정보를 만들 수 있고 이 예측 정보로부터 상위 0열 또는 상위 1열을 검출함으로써 간단하게 진법을 결정할 수 있다.
또한, 본 발명에 따르면 가/감산기가 동작을 하는 동안 가능한 시나리오에 대한 선택을 미리 해 둠으로써 전체 나눗셈 연산기의 동작 시간을 줄일 수 있다.

Claims (6)

  1. 가변 진법 나눗셈 연산기에 있어서,
    입력되는 피제수와 제수를 가/감산하는 가/감산기와,
    상기 피제수와 상기 제수 및 카운팅 신호를 이용하여 몫의 길이 및 비트열 길이를 제한하기 위한 사이클 몫을 예측하는 제 1 몫/진법 생성기와,
    상기 피제수와 상기 제수 및 카운팅신호를 이용하여 사이클 진법을 예측하는 제 2 몫/진법 생성기와,
    상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 선택적으로 출력하는 제 1 멀티플렉서와,
    상기 가/감산의 결과에 따라 상기 사이클 몫 또는 사이클 진법을 진법을 선택적으로 출력하는 제 2 멀티플렉서와,
    상기 제 1 멀티 플렉서로부터의 출력에 따라 상기 가/감산 연산의 결과를 5비트 시프트시켜 상기 가/감산기로 피드백시키는 5비트 시프터와,
    상기 제 1 멀티 플렉서로부터의 출력을 카운팅하여 상기 제 1 및 제 2 몫/진법 생성기에 상기 카운팅 신호를 공급하는 카운터와,
    상기 제 2 멀티 플렉서로부터의 출력과 피드백되는 몫 신호를 논리합 연산하여 최종 몫을 구하는 논리합 게이트를 포함하여 구성되고,
    상기 제 1 및 제 2 몫/진법 생성기 각각은,
    상기 카운팅 신호에 따라 상기 피제수 및 제수 각각의 상위 비트를 가/감산하여 예측 신호를 생성하는 예측 가/감산기와,
    상기 예측 신호에 따라 상기 사이클 진법을 생성하는 진법 생성부와,
    상기 예측 신호에 따라 예측 몫을 생성하는 몫 생성부와,
    상기 사이클 진법과 상기 예측 못을 논리 곱 연산하는 논리곱 게이트와,
    상기 논리곱 게이트로부터의 출력을 시프트시켜 상기 사이클 몫을 생성하는 시프터를 포함하여 구성되는 것을 특징으로 하는 가변 진법 나눗셈 연산기.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
KR1020040117839A 2004-12-31 2004-12-31 가변 진법 나눗셈 연산기 KR100853787B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040117839A KR100853787B1 (ko) 2004-12-31 2004-12-31 가변 진법 나눗셈 연산기
US11/322,210 US7702715B2 (en) 2004-12-31 2005-12-30 Division arithmatic unit of variable radix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040117839A KR100853787B1 (ko) 2004-12-31 2004-12-31 가변 진법 나눗셈 연산기

Publications (2)

Publication Number Publication Date
KR20060078258A KR20060078258A (ko) 2006-07-05
KR100853787B1 true KR100853787B1 (ko) 2008-08-25

Family

ID=36757946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040117839A KR100853787B1 (ko) 2004-12-31 2004-12-31 가변 진법 나눗셈 연산기

Country Status (2)

Country Link
US (1) US7702715B2 (ko)
KR (1) KR100853787B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101592920B1 (ko) * 2009-06-10 2016-02-12 삼성전자주식회사 모듈러 연산 방법 및 이를 위한 장치
JP4858794B2 (ja) * 2009-12-02 2012-01-18 日本電気株式会社 浮動小数点除算器、及びそれを用いた情報処理装置
US20130124594A1 (en) * 2011-11-15 2013-05-16 Lsi Corporation Divider circuitry with quotient prediction based on estimated partial remainder
JP6064435B2 (ja) * 2012-08-21 2017-01-25 富士通株式会社 演算回路、演算処理装置、及び除算方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237525A (en) * 1992-06-01 1993-08-17 Motorola, Inc. In a data processor an SRT divider having a negative divisor sticky detection circuit
US6549926B1 (en) * 1999-10-26 2003-04-15 Sun Microsystems, Inc. SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Computer Arithetic Algorithm, Israel Koren
Computer Arithmrtic Algorithms and Hardware Designs, Behrooz Parhami

Also Published As

Publication number Publication date
US20060173949A1 (en) 2006-08-03
US7702715B2 (en) 2010-04-20
KR20060078258A (ko) 2006-07-05

Similar Documents

Publication Publication Date Title
US7921149B2 (en) Division and square root arithmetic unit
JP2002108606A (ja) スティッキービット生成回路及び乗算器
KR20010014992A (ko) 고차 기수 제산기 및 그 방법
CA1332196C (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP2676410B2 (ja) ステイツキ‐ビツト値を予測する回路およびその方法
RU2408057C2 (ru) Умножитель с фиксированной точкой с предварительным насыщением
JPH04283831A (ja) 除算器
WO1997045787A1 (en) A novel division algorithm for floating point or integer numbers
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
US6847986B2 (en) Divider
Bruguera Radix-64 floating-point divider
KR100853787B1 (ko) 가변 진법 나눗셈 연산기
JPH04205026A (ja) 除算回路
Asadi et al. CORLD: In-stream correlation manipulation for low-discrepancy stochastic computing
US7127483B2 (en) Method and system of a microprocessor subtraction-division floating point divider
CN111630509B (zh) 执行积和运算的运算电路
US6317772B1 (en) Split remainder divider
Beuchat et al. Multiplication algorithms for radix-2 RN-codings and two's complement numbers
Prasanna et al. An Efficient Fused Floating-Point Dot Product Unit Using Vedic Mathematics
RU2804380C1 (ru) Конвейерный вычислитель
Doran Special cases of division
Andersen et al. A systolic ON-LINE non-restoring division scheme
Nibouche et al. New iterative algorithms and architectures of modular multiplication for cryptography

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120726

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130718

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee