KR100218615B1 - 고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행방법 - Google Patents

고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행방법 Download PDF

Info

Publication number
KR100218615B1
KR100218615B1 KR1019950033665A KR19950033665A KR100218615B1 KR 100218615 B1 KR100218615 B1 KR 100218615B1 KR 1019950033665 A KR1019950033665 A KR 1019950033665A KR 19950033665 A KR19950033665 A KR 19950033665A KR 100218615 B1 KR100218615 B1 KR 100218615B1
Authority
KR
South Korea
Prior art keywords
adder
quotient
adders
phase
during
Prior art date
Application number
KR1019950033665A
Other languages
English (en)
Other versions
KR960015200A (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 KR960015200A publication Critical patent/KR960015200A/ko
Application granted granted Critical
Publication of KR100218615B1 publication Critical patent/KR100218615B1/ko

Links

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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • 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

Abstract

내용없음.

Description

고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행 방법
제 1 도는 고정 소수점 디바이더 유닛(a fixed-point divider units)의 블록 도.
제 2 도는 제 1 도에 도시된 오퍼랜드 선택 블럭 회로(operand selection block circuit)의 블럭 도.
제 3 도는 제 1 도에 도시된 가산기 선택 블럭 회로(adder selection block circuit)의 블록도.
제 4 도는 제 1 도에 도시된 잔여 몫 결정 블럭 회로(remain quotient determination block circuit)의 블럭도.
* 도면의 주요부분에 대한 부호의 설명
10 : 고정 소수점 디바이더 프로세서 12 : 레지스터
14 : 제 1 래치 16 : 제 2 래치
18 : 오퍼랜드 선택 블럭 20 : 가산기 블럭
21 : 선택 신호 라인 22 : 잔여 몫 결정 블럭
120 : 레지스터
본 발명은 데이터 프로세싱 시스템(data processing system)에 관한 것으로, 특히 고정 소수점 산술 연산(fixed-point arithmetic operations)을 제공하는 데이터 프로세싱 시스템에 관한 것이다. 특히, 본 발명은 그 사이클 시간의 절반을 가산기 로직(adder logic)에 대해, 그 나머지 절반을 기타 잔여 로직(remaining logic)에 대해 사용하는 비복원(non-restoring) 고정 소수점 디바이더(fixed-point divider)를 포함하는 데이터 프로세싱 시스템에 관한 것이다.
종래의 기본 이진 나눗셈 장치(basic binary dividing apparatus)는 비복원 알고리즘(non-restoring algorithm)에 따라, 반복적으로 젯수(divisor)가 피젯수(dividend) 또는 부분 나머지(partial remainer)에 가산되거나 이로부터 감산되는 동안 한 비트씩 몫(quotient)을 발생시킨다.
한 사이클내에 다수의 몫 비트(aplurality of quotient bits)를 발생시킬 수 있는 개선된 장치도 존재한다. 이 장치는 부분 나머지를 이동(shift)하고, 젯수의 적절한 배수를 이동된 부분 나머지에 가산하거나 또는 감산하도록 설계되어 있고, 그 결과로 생긴 부분 나머지에 기초하여, 다수의 몫 비트를 계산함과 동시에 다음 연산에 대비하여 부분 나머지의 이동 길이를 결정하도록 설계되어 있다.
불행하게도, 이러한 유형의 나눗셈 장치는 각각의 가산 또는 감산의 결과에 기초하여 그 이동 길이를 결정하고 있어, 사이클 시간을 감소시키기가 어렵다.
따라서, 디바이더 장치내의 가산기 부분과 기타 잔여 로직 사이에 그 프로세싱 시간을 동일하게 분할하여 단일 사이클로 다수의 몫 비트를 발생시킬 수 있는 고정 소수점 디바이더 장치가 필요하다.
따라서 본 발명의 목적은 데이터 프로세싱 시스템을 제공하는 것이다.
본 발명의 다른 목적은 고정 소수점 산술 연산을 제공하는 데이터 프로세싱 시스템을 제공하는 것이다.
또한 본 발명의 다른 목적은 그 사이클 시간의 절반을 가산기 로직에 대해, 그 나머지 절반을 기타 잔여 로직에 대해 사용하는 비복원 고정 소수점 디바이더를 포함하는 데이터 프로세싱 시스템을 제공하는 것이다.
본 발명에 따르면, 64비트 비복원 구조에 기초한 고정 소수점 디바이더 장치 및 방법이 개시된다. 디바이더 장치는 가산 또는 감산 기능을 수행하기 위해 상호 병렬로 접속된 세 개의 67-비트 가산기를 포함하고, 각 가산기는 제 1클럭 페이스(first clock phase) 동안에 사전충전되고(precharged), 제 2클럭 페이스(second clock phase) 동안에 선택된 기능을 실행하며, 양 페이스은 단일 클럭 사이클 동안에 발생한다.
제 1가산기(first adder)는 각각 제 1 및 제 2 오퍼랜드를 선택하기 위한 제 1 및 제 2멀티플렉서에 접속된다. 제 2가산기에 접속된 제 3멀티플렉서는, 제 2가산기에 대한 제 1 오퍼랜드를 선택하는데 이용된다.
제 3가산기에 접속된 제 4 및 제 5멀티플렉서는, 제 3가산기에 대한 제 1 및 2 오퍼랜드를 각각 선택하는데 이용된다.
가산기 오퍼랜드 선택 로직은 가산기 및 멀티플렉서에 접속되어, 가산 기능을 수행할지 혹은 감산 기능을 수행할지를 선택하고, 멀티플렉서가 그들 각각의 가산기에 대해 어떤 오퍼랜드를 공급할 것인가를 선택한다. 오퍼랜드 선택 회로가 더 부가되고, 이것은 멀티플렉서 및 가산기 오퍼랜드 선택 로직에 접속되며, 클럭 사이클의 제 2페이스 동안 가산기의 연산을 제어하는데 이용된다. 디바이더 장치는 가산기에 접속된 잔여 몫 결정 회로를 더 포함하며, 이 회로는 나눗셈 연산이 완료된 시기, 나눗셈 결과, 잔여 몫의 증분이 존재하는지의 여부를 판정하는데 이용된다.
가산기는, 제 1가산기가 [잔여 몫 ± 3× 젯수]의 출력을 발생시키고, 제 2가산기가 [잔여 몫 ± 2× 젯수]의 출력을 발생시키며, 제 3가산기가 [잔여 몫 ± 젯수]의 출력을 발생시키도록 선택된다. 각 클럭 사이클은 약 6 나노초(nanoseconds)로 동작하며, 따라서 각 출력 페이스은 약 3 나노초 길이이다.
67-비트인 가산기는 64-비트 및 32-비트 연산을 처리할 수 있다.
본 발명의 장치는 두 타이밍 경로가 형성되도록 설계되고, 제 1경로에서는 다음 디바이더 연산이 결정되고 각 멀티플렉서에 대한 선택 신호가 생성된다. 이 제 1데이타 경로는 반 클럭 사이클내에서 동작을 완료한다.
제 2경로는, 가산기로부터 부호형 비트를 전송하고, 어떤 가산기 출력이 정확한지를 판정하고, 몫 비트를 생성하며, 다음 디바이더 연산에 필요한 다음의 오퍼랜드 세트를 생성하도록 형성된다. 제 1데이타 경로와 같이, 제 2데이타 경로도 반 클럭 사이클내에서 동작을 완료한다.
본 발명의 방법은 전술한 장치와 실제적으로 유사한 디바이더 장치상에서 동작하도록 설계되어 있다. 클럭 사이클의 제 1페이스 동안 발생하는 제 1단계에서는, 제 1 및 제 2 오퍼랜드가 오퍼랜드 선택 회로로 전송된다. 그 결과, 가산기는 이들 오퍼랜드에 의해 사전충전될 수 있다. 클럭 사이클의 제 2페이스 동안, 가산기는 자신의 계산 동작을 수행하고, 그 결과가 다음에 실행될 가산기 연산을 결정하기 위해 평가된다. 특히, 가산기 결과를 결정하고, 적합한 가산기 결과를 선택하며, 부호(signage)를 체킹(checking)하고, 다음 가산기 연산을 위한 적절한 가산기를 선택하며, 2 비트 몫을 발생시키는 로직 기능은, 모두 지정된 클럭 사이클의 제 1페이스 동안 수행되도록 설계되어 있다.
가산기 연산중 오퍼랜드의 실제 계산은 항상 클럭 사이클의 제 2페이스 동안 수행된다. 이 방법은, 특정한 클럭 사이를의 제 1 또는 제 2페이스중의 임의의 시간에 가산기 연산이 발생하는 경우보다 더 효율적인 디바이더 장치 설계를 가능하게 한다.
본 발명의 전술한 목적 및 부가적인 목적, 특징, 장점은 다음의 상세한 설명에서 더욱 명확해질 것이다.
본 발명의 특성으로 믿어지는 신규한 특징은 첨부된 청구 범위에 개시되어 있다. 그러나 본 발명 자체 및 바람직한 사용 모드, 다른 목적 및 장점은 이하 수반되는 도면을 참조하는 다음의 예시적인 실시예의 상세한 설명으로부터 가장 잘 이해될 것이다.
제 1 도를 참조하면 고정 소수점 디바이더 프로세서(fixed-point divider porcessor)(10)가 도시되어 있다. 레지스터(12)는 예약 스테이션(Reservation Station)에 접속되고, 그 예약 스테이션은 버퍼(buffers)로부터 레지스터(12)로 인스트럭션을 송출하고, 레지스터(12)는 고정 소수점 디바이더 프로세서(10)내의 각종 블럭(blocks)으로 인스트럭션을 전송한다.
레지스터(12)는 제 1 래치(14)와 제 2 래치(16)를 더 포함한다(각각 L1 및 L2으로 표시됨). 레지스터(12)는 두 페이스으로 동작한다. 즉, 래치(14)는 제 2페이스을 설정하는 클럭(C1)에 의해 제어되고, 래치(16)는 제 1페이스을 설정하는 클럭(C2)에 의해 제어된다.
레지스터(12)는 제 2 도에서 보다 상세히 도시되고 이하 상세히 기술되는 오퍼랜드 선택 블럭(18)에 제 1 오퍼랜드(op_a)와 제 2 오퍼랜드(op_b)를 공급한다.
제 1사이클(first-cycle), 부호(sign) 및 op_64 입력이 레지스터(12)로부터 오퍼랜드 선택 블럭(18)으로 역시 전송된다. 오퍼랜드 선택 블럭(18)은 나눗셈 연산이 부호형(signed)인지 또는 무부호형(unsigned)인지와, 64-비트를 갖는지 또는 32-비트를 갖는지와, 분모가 0으로 인한 나눗셈 오버플로우(divide overflow)가 존재하는지의 여부를 판정한다.
일단 제 1 오퍼랜드와 제 2 오퍼랜드가 처리되었으면, 그들은 별개의 클럭사이클(separate clock cycle)로부터의 잔여 몫 신호(remain quotient signal)와 더불어 가산기 블럭(20)으로 전송된다. 가산기 블럭(20)은 나눗셈 산술 기능을 수행하고 제 3 도에 보다 상세히 도시되어 있으며, 차후에 상세히 기술된다. 가산기 블럭(20)으로부터의 결과는 레지스터(120)로 공급되며, 이 레지스터(120)로부터 합1(sum1), 합2(sum2), 합3(sum3) 라인을 통해 잔여 몫 결정 블럭(remain quotient determination block)(22)으로 공급된다. 잔여 몫 결정 블럭(22)은 합1(sum1), 합2(sum2), 합3(sum3) 라인으로부터의 세 개의 합중 임의의 합 결과에 기초하여 임의의 잔여 몫을 결정하는데 이용된다.
선택 신호 라인(21)은 가산기 블럭(20)내의 각종 멀티플렉서와 가산기 기능을 선택하기 위해 가산기 블럭(20)에 또한 접속된다. 잔여 몫 결정 블럭(22)은 잔여 몫 라인(r_q)을 더 포함한다. 몫 증가 라인(quot_inc) 및 제로 나머지 라인(zero_remainder)은 임의의 잔여 몫, 몫 증가, 및 제로 나머지 혹은 완료 신호에 관한 부가의 정보를 제공하기 위해 레지스터(120)에 접속된다.
제 2 도에는 고정 소수점 디바이더(10)의 오퍼랜드 선택 블럭(18)에 대한 블럭도가 도시되어 있다. 오퍼랜드A(op_a) 및 오퍼랜드 B(op_b)는 무부호형 확장블럭(unsigned extension blocks)(22 및 26)과 부호형 확장 블럭(signed extension blocks)(24 및 28)에 공급된다.
확장 블럭(22 및 24)의 쌍은 제 14×1 멀티플렉서(four-to-one multiplexer)(30)에 공급되는 반면에, 확장 블럭(26 및 28)의 쌍은 제 2 4×1 멀티플렉서(four-to-one multiplexer)(32)에 공급된다. 두 멀티플렉서(30 및 32)에 대한 MUX 선택은 로직(34)에 의해 제어되고, 이 로직은 부호(sign) 라인 및 op_64 신호의 입력에 기초하여 멀티플렉싱될 신호를 결정한다.
디바이더는 64-비트 또는 32-비트 연산을 처리할 수 있으므로, op-64 라인은 64-비트 연산이 수행될지 또는 32-비트 연산이 수행될지를 결정한다. 부호 라인은 무부호형 연산을 수행할지 또는 부호형 연산을 수행할지를 결정한다. 멀티플렉서(30)로부터의 출력은 제 3 도의 가산기 블럭(20)에 직접 공급되고 1-비트 멀티플렉서(42)에도 공급되며, 이 1-비트 멀티플렉서는 전체 나눗셈 연산 동안 op_a(피젯수)의 부호 비트를 추적하는 a_daq0로부터의 부가의 입력을 포함한다.
멀티플렉서(42)는 단일 멀티플렉서(44)를 역시 제어하는 제 1사이클(first_cycle) 라인에 의해 제어된다. 멀티플렉서(44)는 op_64 신호와 op_64q 신호(래치된 op_64 신호)를 수신하고, 그 op_64q 신호는 최초의 로드 연산 후의 수 사이클상에서 활성(active)된다.
오퍼랜드 B는 제 3 도에 도시된 가산기 블럭(20)에 직접 공급되고, 67-비트 멀티플렉서(46)에 접속되며, 이 멀티플렉서는 전체 나눗셈 연산 동안 1× 젯수를 추적하는 1× 젯수(divis_1q) 신호를 또한 수신한다.
멀티플렉서(46)도 제 1사이클 신호(first_cycle)에 의해 제어된다. 부가적인 67-비트 멀티플렉서(48)는, 전체 나눗셈 연산 동안 3× 젯수를 추적하는 3× 젯수 신호(divis_3q)와 합3(sum3) 신호 간을 선택하는데 이용된다. 멀티플렉서(48)는 제 2클럭 사이클, 즉 제 2사이클(second_cycle) 라인에 의해 제어된다. 멀티플렉서(44)는 출력 라인 op_64_in을 가지며 이 라인은 op_64_q를 공급하는 레지스터에 피드백된다. 멀티플렉서(42)는 출력 신호 a_da0를 가지며, 이 신호는 a_daa의 부호(a_daq0)를 저장하는 레지스터에 공급된다. 멀티플렉서(46)는 출력 신호 divis_1_in를 가지며, 이 신호는 1× 젯수(divis_1q)를 저장하는 레지스터에 공급된다. 멀티플렉서(48)는 출력 신호 divis_3_in를 가지며, 이 신호는 3× 젯수(divis_3q)를 저장하는 레지스터에 공급된다. 오퍼랜드 선택 블럭(18)은 제로 나눗셈 검출 로직(divide/zero detect logic)(36)을 더 포함한다.
나눗셈 오버플로우 로직(divide overflow logic)(36)은 오퍼랜드 A와 오퍼랜드 B를 수신하여 분모가 0이 되면 나눗셈 연산이 불가능하다고 판정한다. 이 로직(36)의 부가적인 입력 신호로는 op_64 신호와 제 1사이클 신호가 있으며, 이들 신호는 제 1사이클에서 64-비트/32-비트 오버플로우임을 판정하는데 필요하다. 블럭(36)으로부터의 출력은 가산기 블럭(20)으로 공급된다.
가산기 블럭(20)은 제 3 도의 블럭도에 보다 상세히 도시되어 있다. 가산기 블럭(20)은 가산기 오퍼랜드 선택 로직(adder operand select logic)(50)을 포함하는데, 이 로직(50)은 div_ov 및 do_add 신호를 수신하여 다음 사이클에서 수행되어질 다음의 가산 또는 감산 연산을 결정하고, 가산기로 공급되는 오퍼랜드를 결정한다. 가산기 오퍼랜드 선택 로직(50)으로부터의 멀티플렉서 신호 선택 라인(select signals for MUXs)(21)은 가산기 블럭(20)내의 세 가산기로 공급된다. 두 개의 부가적인 출력 신호는, 가산기에 의해 가산이 수행되어야 하는지 또는 감산이 수행되어야 하는지를 결정하는 do_sub×q와, 디바이더가 비지(busy) 상태인지, 준비(ready) 상태인지, 종료(finish) 상태인지, 잔여 몫 결정 블럭에서 증가(increment)되어야 하는지를 표시하기 위한 비지, 준비, 종료, 증가 라인(busy, ready, finish, inc line)을 포함한다. 비지, 준비, 종료, 증가 라인은 레지스터(120)에 공급되고, 이 레지스터(120)는 예약 스테이션에 또한 공급된다.
가산기 블럭(20)은 다수의 멀티플렉서(54, 56, 58, 60, 및 62)를 통해 오퍼랜드 선택 블럭(18)으로부터의 다수의 입력 신호를 수신한다. 멀티플렉서(54)는 가산기(64)의 제 1 오퍼랜드를 결정한다. 멀티플렉서(56)는 가산기(64)의 제 2 오퍼랜드를 결정한다. 멀티플렉서(58)는 가산기(66)의 제 1 오퍼랜드를 결정한다. 멀티플렉서(60)는 가산기(68)의 제 1 오퍼랜드를 결정하고 멀티플렉서(62)는 가산기(68)의 제 2 오퍼랜드를 결정한다.
멀티플렉서(54 및 56)는 가산기(64)에 접속된다. 멀티플렉서(58)는 r_q 라인으로부터의 입력 신호를 또한 수신하는 가산기(66)에 접속된다. 멀티플렉서(60 및 62)는 또한 가산기(68)에 접속된다. 가산기(64, 66 및 68)는 나눗셈 연산 동안 병렬로 동작하는 67-비트 가산기이다. 각 가산기(64, 66 및 68)는 가산기 오퍼랜드 선택 로직(50)으로부터의 신호에 의해 제어된다. 가산기(64, 66 및 68)로부터의 출력은 래치(140)를 통해 레지스터(120)로 공급된다. 가산기(64)는 [잔여 몫(remain_quotient) ± 3 × 젯수]의 출력을 발생시킨다. 가산기(66)는 [잔여 몫(remain_quotient) ± 2 × 젯수]의 출력을 발생시킨다. 가산기(68)는 [잔여 몫(remain_quotient) ± 젯수]의 출력을 발생시킨다. 이들 세 출력은 제로 검출 및 합 선택 회로 로직(zero detect and sum selector circuit line)(70)으로 전송되고, 이 로직은 합1(sum1), 합2(sum2), 또는 합3(sum3)의 부호 비트를 또한 수신한다. 제로 검출 및 합 선택 회로 로직(70)은, 다음 연산에 대해 가산 기능을 수행할지 또는 감산 기능을 수행할지의 여부와 그 기능이 합1(sum1), 합2(sum2), 또는 합3(sum3)를 포함하는지의 여부를 역시 결정한다.
이들 신호는 제 2 래치(160)를 통해 출력된다. 가산기 출력 합1(sum1), 합2(sum2), 합3(sum3)은 제 4 도에 도시된 잔여 몫 결정 블럭(22)에 또한 접속된다.
제 4 도는 잔여 몫 결정 블럭(22)의 블럭도를 보다 상세히 도시한다. 블럭(22)은, 오퍼랜드 선택 블럭(18)으로부터의 divis_1q0 입력 및 합1(sum1), 합2(sum2), 합3(sum3)의 부호 비트가 입력되는 몫 발생기(quotient generator)(72)를 포함한다. 두 개의 3×1 멀티플렉서(three-by-one)(74 및 76)가 또한 제공된다.
멀티플렉서(74)는 선택 블럭(70)으로부터의 합 선택 신호 select_sum1, select_sum2, select_sum3에 기초하여 합1(sum1), 합2(sum2), 합3(sum3)중 어느 하나를 선택출력한다. 멀티플렉서(76)는 합 선택 신호 select_sum1, select_sum2, select_sum3에 기초하여 zero_sum1, zero_sum2, zero_sum3 중 어느 하나를 선택출력한다. 멀티플렉서(76)로부터 출력되는 제로합 신호(zero_sum)는 제로 나머지 계산 회로(zero remainder calculation circuit)(78)에 공급되고, 이 회로는 제로 나머지 신호(z_remainderq) 및 잔여 몫 신호(r_qq)를 수신한다.
회로(78)로부터의 출력 zero_d 및 zero_e은 멀티플렉서(80)에 공급되고, 이 멀티플렉서는 두 입력중 어느 하나를 선택하여 레지스터(120) 및 몫 정정 회로(quotient correction circuit)(90)로 공급하며, 레지스터(120)는 멀티플렉서(80)으로부터 수신한 신호를 z-remainder 신호로서 회로(78)로 피드백한다.
부호 확장 회로(sign extention circuit)(82)는 67 비트의 신호 a_daa를 131 비트의 신호 a_da로 부호확장하여 멀티플렉서(66)로 출력한다. r_qq, quot, p_remainder 및 sum1과 같은 각종 다른 입력 신호는 멀티플렉서(86)에 접속되고, 이 멀티플렉서의 출력은 레지스터(120)에 접속된다. 이 출력은 잔여 몫 신호, 즉 r_q이다. 멀티플렉서(86)의 제어는 잔여 몫 선택 로직(remain quotient select logic)(88)에 의해 수행되고, 이 잔여 몫 선택 로직은 finishq, quot_incq 및 제 2사이클 (second_cycle) 신호에 기초하여 잔여 몫 선택 신호 sel_rq1, 2, 3, 4 출력을 생성하여 멀티플렉서(86)를 제어한다. quot_incq는 최후의 사이클에서 몫을 1씩 증가시킬지의 여부를 표시하는 신호이고, a_daq0, divis_q1 및 finish 입력을 이용하는 몫 정정 회로(quotient correction circuit)(90)로부터 출력된다.
고정 소수점 디바이더 회로(10)는 단지 반 사이클만을 사용하는 디바이더의 가산기를 이용하여 한 사이클로 두 개의 몫 비트를 생성할 수 있다. 바람직한 실시예에 있어서, 사이클 시간은 6 나노초(6 ns)이고, 이것은 가산기 페이스에 3 나노초가 전용되고, 고정 소수점 나눗셈 연산을 수행하는데 필요한 기타 잔여 로직단계에 3 나노초가 전용됨을 의미한다.
6 나노초의 사이클 시간으로 매 사이클당 2 비트를 생성하는 본 디바이더는 병렬로 동작하는 세 개의 67 비트 가산기를 이용함으로써 달성된다. 이들 가산기는 클럭 사이클의 제 1 페이스중에 사전충전되고 클럭 사이클의 제 2 페이스중에 연산이 행해진다. 최적 동작을 위해, 가산기는 사이클의 제 2 페이스중에 동작하여 필요한 잠재적인 67 비트 레지스터의 수를 여섯 개에서 세 개로 감소시킨다.
가산기는 제 1 페이스중에 사전충전되므로 디바이더 회로(10)의 기타 잔여 로직이 수행될 수 있도록 한다.
제 1 도를 다시 참조하면, 샘플 동작중에 예약 스테이션이 출력한 데이터는 오퍼랜드 A 및 B로서 제 1 사이클의 시작시에 오퍼랜드 선택 블럭(18)으로 전송된다.
이 제 1 사이클 동안, 오퍼랜드 선택 블럭(18)은 오퍼랜드가 부호형인지 또는 무부호형인지, 또는 64-비트인지 혹은 32-비트인지를 판정한다. 이 동작은 클럭(c1)의 상승 에지(rising edge) 전, 3 나노초 이내에 완료된다. 이 정보는 제 2 도에서 블럭 A로 표시된다. 오퍼랜드 선택 블럭(18)은 정적(static) 제로 및 -1 검출기를 이용하여 클럭(C1)에 의해 트리거(trigger)되지 않도록 하며, 이로써 사전충전 시간을 반 사이클 절약할 수 있다. 전형적인 나눗셈 연산의 일예는 표 1에 도시되어 있다.
연산 동안에 가장 임계적인(critical) 타이밍 경로는, 모든 데이터가 클럭(C1)의 상승 에지 전에 가산기 블럭의 가산기(64, 66 및 68)에 접속된 각각의 멀티플렉서에 도달하여야 한다는 것이다. 데이터는 3 나노초 전에 A, F 및 G 점에 도달한다. 세 가산기로부터의 결과에 기초하여 다음 연산(가산 또는 감산)을 결정하고, 이어서 가산기(64, 66 및 68)의 입력측의 멀티플렉서를 위한 선택 신호를 생성하는 경로도 임계적이다.
다음으로 임계적인 경로는 세 가산기의 결과로부터 부호 비트가 획득될 때, 가산기로부터의 결과가 정확한 결과인지를 판정하고, 그 다음에 2 비트 몫을 발생시키며, 마지막으로 다음 가산 연산을 위한 오퍼랜드를 발생시키는 것이다. 각 경로는 반 사이클, 즉 3 나노초내에 종료되어야 한다.
제 3 도를 다시 참조하면, 두 개의 임계적인 경로중 가장 임계적인 부분은, 동적 회로에 의해 실현된다. 예컨대, select_sum1 (2, 3)에는 1단 도미노 회로(one-stage domino circuit)가 사용되고, do_add에는 2단 도미노 회로(two-stage domino circuit)가 사용된다.
이들 동적 회로는 가산기가 연산 페이스에 있는 때에 사전충전되고, 그후 가산기가 사전충전되었을 때 연산을 행한다. 가산기(64, 66 및 68)로부터의 결과는 제 2 래치(160)에 공급되며, 제 2 래치(160)는 레벨 감지 스캔 설계(level sensitive scan design, LSSD) 포맷하의 룰(rule)을 위반하지 않도록 투명하다(transparent). select_sum 1, 2, 3을 수행하기 위한 연산에는 약 0.4-0.5 나노초가 필요하고 do_add 연산에는 대략 0.8-0.9 나노초가 걸린다.
따라서, 제 1 임계 경로는, 가산기 블럭(20) 및 래치(16)의 do_add에 대한 0.9 나노초와, 3 나노초의 RLM(최악의 경우 3 레벨의 게이트, 즉 반전(inv), 난드(nand), 및 반전)이다. 제 2 임계 경로는, 가산기 블럭의 select_sum1에 대한 0.4 나노초와, 제 4 도의 잔여 몫 결정 블럭(22)의 3×1 멀티플렉서(74) 및 이에 후속하는 5×1 멀티플렉서(86)이며, 다음 가산 또는 감산의 오퍼랜드를 위한 잔여 몫을 생성한다. 두 개의 임계 경로는 모두 최적 연산 시간을 위한 3 나노초 제한보다 충분히 작다.
본 발명의 디바이더는, 예를 들어, 파워PC 계열(PowerPC family)과 같은 고성능 고속 클럭 중앙 프로세싱 유닛(high performance fast clock central processing units)을 위해 설계되어 있다. 이 회로는 세 개의 주문 설계형 블럭(custom designd blocks)을 이용한다. 제 1 주문형 블럭은 오퍼랜드 선택 블럭(18)에서 사용되는 데이터 경로내의 정적 제로 검출기(static zero detector)이다.
제 2 주문형 블럭은 가산기 블럭(20)에서 가산기 결과를 결정하는 동적 제로 검출기(dynamic zero detector)이다. 제 3 주문형 블럭은 제 1 동적 블럭(first dynamic block)에 접속되어, 가산기 블럭(20)에서 do_add, sel_sum1, sel_sum2, sel_sum3 연산을 생성하는 제 2 동적 블럭(second dynamic block)이다. 세 개의 주문형 블럭만이 이용되므로, 이외의 기능은 시판형 설계(off-the-shelf type designs)로부터 용이하게 실현할 수 있다.
본 구조의 가장 두드러진 장점은, 나눗셈 기능에 필요한 연산을 복수의 상이한 기능 블럭 및 페이스로 분할하여 가장 임계적인 경로가 단순화되고 그 지연이 감소되게 하는 것이다. 특히, 그 가장 임계적인 경로는 동적 블럭(do_add) + 투명한 래치(transparent latch) + 반전(inv) + 난드(nand) + 반전이 반 사이클로 이루어지는데, 이는 타이밍 요건을 충족시키는 간단하고 효율적인 해결책이다. 따라서, 이 구조는 고속 클럭 속도에 적합하다.
본 발명은 바람직한 실시예에 대해 특정하게 도시되고 기술되었으나, 본 발명의 정신과 범주로부터 벗어나지 않고서 형태와 세부 사항에 있어 다양한 변경이 이루어질 수 있음을 통상의 지식을 가진자라면 이해할 것이다.

Claims (13)

  1. 입력 신호의 제 1, 2, 3, 4 및 5 그룹을 제공하는 디바이더 입력부를 구비하고, 상기 입력 신호의 그룹이 부분 나머지 및 젯수를 포함하며, 출력으로서 몫 비트가 생성되는 고정 소수점 디바이더 장치(a fixed-point divider apparatus)에 있어서, 가산 또는 감산 기능을 수행하기 위해 상호 병렬로 접속된 제 1, 제 2, 및 제 3 가산기로서, 각 가산기는 제 1 클럭 페이스(a first clock phase) 동안 사전충전되고(precharged), 제 2 클럭 페이스(a second clock phase) 동안 선택된 기능을 실행하되, 상기 제 1 및 제 2 클럭 페이스는 단일 클럭 사이클(a single clock cycle)동안 발생하는 상기 제 1, 제 2, 제 3 가산기와, 상기 디바이더 입력부 및 상기 제 1 가산기에 접속되어, 상기 제 1 가산기에 대한 제 1 및 제 2 오퍼랜드 - 상기 제 1 및 2 오퍼랜드는 상기 입력 신호의 제 1 및 2 그룹으로부터 각각 선택됨 -를 각각 선택하기 위한 제 1 및 제 2 멀티플렉서와, 상기 디바이더 입력부 및 상기 제 2 가산기에 접속되어, 상기 제 2 가산기에 대한 제 1 오퍼랜드 - 상기 제 2 가산기에 대한 상기 제 1 오퍼랜드는 상기 입력 신호의 제 3 그룹으로부터 선택됨 -를 선택하기 위한 제 3 멀티플렉서와 상기 디바이더 입력부 및 상기 제3가산기에 접속되어 상기 제 3가산기에 대한 제 1 및 제 2 오퍼랜드 - 상기 제 3 가산기에 대한 상기 제 1 및 2 오퍼랜드는 각각 상기 입력 신호의 제 4 및 5 그룹으로부터 선택됨 -를 각각 선택하기 위한 제 4 및 제 5 멀티플렉서와, 상기 제 1, 제 2 및 제 3 가산기와 상기 멀티플렉서들에 접속되어 가산 기능을 수행할 지 혹은 감산 기능을 수행할지를 선택하고, 상기 멀티플렉서가 상기 제 1, 2, 3 가산기로 어떤 오퍼랜드를 공급하는가를 선택하기 위한 가산기 오퍼랜드 선택 로직 회로(an adder operand select logic circuit)과, 상기 제 1, 2 및 3 가산기에 접속되어, 나눗셈 연산이 언제 완료되었는지, 나눗셈 결과가 상기 몫 비트의 형태로 어떠한지, 잔여 몫의 증분이 존재하는지의 여부를 판정하기 위한 잔여 몫 결정 회로(a remain quotient determination circuit)를 포함하는 고정 소수점 디바이더 장치.
  2. 제 1 항에 있어서, 상기 제 1 가산기는 [잔여 몫(remain quotient) ± 3 × 젯수(the divisor)]의 출력을 발생시키고, 상기 제 2 가산기는 [잔여 몫(remain quotient) ± 2 × 젯수]의 출력을 발생시키며, 상기 제 3 가산기는 [잔여 몫(remain quotient) ± 젯수]의 출력을 발생시키는 고정 소수점 디바이더 장치.
  3. 제 1 항에 있어서, 상기 클럭 사이클은 약 6 나노초(nanosecond)이고, 상기 각 제 1 및 제 2 클럭 페이스는 약 3 나노초인 고정 소수점 디바이더 장치.
  4. 제 1 항에 있어서, 상기 제 1 , 제 2 및 제 3 가산기는 64-비트 또는 32-비트 연산을 처리할 수 있는 67-비트 가산기인 고정 소수점 디바이더 장치.
  5. 제 1 항에 있어서, 상기 오퍼랜드 선택 로직 회로는 상기 오퍼랜드가 부호형(signed) 오퍼랜드인지 무부호형(unsigned) 오퍼랜드인지를 판정하는 고정 소수점 디바이더 장치.
  6. 제 1 항에 있어서, 상기 오퍼랜드 선택 로직 회로는 상기 기능이 젯수 0인 나눗셈 연산(a divide by zero operation)인지를 판정하는 고정 소수점 디바이더 장치.
  7. 제 1 항에 있어서, 상기 오퍼랜드 선택 회로 및 상기 잔여 몫 결정 회로는 상기 제 1 클럭 페이스 동안 동작하는 고정 소수점 디바이더 장치.
  8. 제 1 항에 있어서, 상기 잔여 몫 결정 회로는 다음 디바이더 연산 신호와, 상기 제 1, 2, 3, 4 및 5 멀티플렉서의 각각에 대한 선택 신호를 생성하며, 상기 다음 디바이더 연산은 반 클럭 사이클내에 수행되는 고정 소수점 디바이더 장치.
  9. 제 1 항에 있어서, 상기 잔여 몫 결정 회로는 상기 제 1, 2 및 3 가산기로부터 부호형 비트를 수신하고, 상기 부호형 비트중 어느 것이 정확한 결과를 구성하는지를 판정하며, 몫 비트와 다음 디바이더 연산을 위한 다음의 오퍼랜드 세트를 생성하며, 이들 모든 동작은 반 클럭 사이클내에서 수행되는 고정 소수점 디바이더 장치.
  10. 병렬로 접속된 제 1, 2 및 3 가산기를 포함하는 복수의 가산기, 상기 복수의 가산기에 접속된, 제 1, 2, 3, 4 및 5 멀티플렉서를 포함하는 복수의 멀티플렉서, 상기 복수의 가산기 및 상기 복수의 멀티플렉서에 접속된 가산기 오퍼랜드 선택 로직, 상기 가산기 오퍼랜드 선택 로직 및 상기 복수의 멀티플렉서에 접속된 오퍼랜드 선택 회로, 상기 복수의 가산기에 접속된 잔여 몫 결정회로를 구비하는 고정 소수점 디바이더 장치에서, 고정 소수점 나눗셈 연산을 수행하는 방법에 있어서, 제 1 및 제 2 페이스를 갖는 클럭 사이클의 제 1 페이스 동안, 상기 복수의 멀티플렉서에 의해 입력 신호의 그룹들로부터 선택된 제 1 오퍼랜드와 제 2 오퍼랜드를 상기 복수의 가산기에 대한 상기 오퍼랜드 선택 회로로 전송하는 단계와, 상기 제 1 페이스 동안, 상기 복수의 가산기를 사전충전하고 상기 제 1, 2 및 3 가산기의 각각에 대한 제각기의 제 1 및 2 오퍼랜드를 선택하는 단계와, 상기 제 2 페이스 동안, 상기 복수의 가산기에서 상기 선택된 제 1 및 2 오퍼랜드에 대한 가산기 연산을 수행하고 상기 가산기 연산은 제 1, 2 및 3 가산기 결과를 생성하는 단계와, 후속 제 1 페이스 동안, 상기 제 1, 2 및 3 가산기 결과 중 적어도 하나의 결과에 기초하여 다음 가산기 연산을 결정하는 단계와, 상기 후속 제 1 페이스 동안, 상기 복수의 멀티플렉서중 적어도 하나에 대한 가산기 결과 선택 신호를 생성하여, 상기 다음 가산기 연산을 수행하기 위한 상기 복수의 가산기 중 원하는 하나의 가산기를 선택하도록 하는 단계와, 상기 후속 제 1 페이스 동안, 상기 제 1, 2 및 3 가산기 결과로부터 정확한 결과를 선택하는 단계와, 다중 비트 몫(a multi-bit quotient)을 생성하는 단계와, 상기 선택된 정확한 결과에 기초하여 상기 다음 가산기 연산을 위한 다음의 오퍼랜드 세트를 생성하는 단계와, 클럭 사이클의 후속 제 2 페이스(a subsequent second phase of a clock cycle)동안, 상기 다음 가산기 연산을 수행하여, 제 1, 2 및 3 가산기 결과의 또다른 세트를 생성하는 단계를 포함하는 고정 소수점 나눗셈 연산 수행 방법.
  11. 제 10 항에 있어서, 상기 제 1 페이스 동안, 상기 제 1 및 제 2 오퍼랜드의 부호와, 상기 제 1 및 제 2 오퍼랜드의 길이를 결정하는 단계를 더 포함하는 고정 소수점 나눗셈 연산 수행 방법.
  12. 제 10 항에 있어서, 상기 제 1 클럭 페이스 동안, 상기 연산이 젯수가 0인 나눗셈 연산인지의 여부를 판정하는 단계를 더 포함하는 고정 소수점 나눗셈 연산 수행 방법.
  13. 피젯수 및 젯수의 수신에 응답하여 몫을 결정하는 고정 소수점 디바이더에 있어서, 동적 로직으로부터 형성되며, 제 1 및 제 2 페이스를 포함하는 클럭 사이클의 제 1 페이스동안에 사전충전되고, 상기 제 2 페이스 동안 개별적으로 부분 나머지와 상기 젯수의 복수의 상이한 배수의 각각과 결합하여 대응하는 복수의 중간 합을 형성하는 가산기 회로 - 상기 피젯수는 초기의 클럭 사이클동안 상기 부분 나머지를 형성함 - 와, 동적 로직으로부터 형성되며, 입력으로서 상기 중간 합을 수신하고, 상기 제 1 페이스 동안에, 상기 몫의 여러 비트와, 상기 클럭 사이클의 상기 제 2 페이스 동안 상기 부분 나머지로서 사용될 상기 복수의 중간 합중 하나를 지시하는 신호를 생성하는 잔여 몫 회로를 포함하는 고정 소수점 디바이더.
KR1019950033665A 1994-10-05 1995-10-02 고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행방법 KR100218615B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31920394A 1994-10-05 1994-10-05
US8/319,203 1994-10-05
US08/319,203 1994-10-05

Publications (2)

Publication Number Publication Date
KR960015200A KR960015200A (ko) 1996-05-22
KR100218615B1 true KR100218615B1 (ko) 1999-09-01

Family

ID=23241282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950033665A KR100218615B1 (ko) 1994-10-05 1995-10-02 고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행방법

Country Status (5)

Country Link
US (1) US5673215A (ko)
EP (1) EP0706117B1 (ko)
JP (1) JP3210557B2 (ko)
KR (1) KR100218615B1 (ko)
DE (1) DE69529047D1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6109777A (en) * 1997-04-16 2000-08-29 Compaq Computer Corporation Division with limited carry-propagation in quotient accumulation
US6989843B2 (en) * 2000-06-29 2006-01-24 Sun Microsystems, Inc. Graphics system with an improved filtering adder tree
DE10158810C1 (de) * 2001-11-30 2003-04-24 Infineon Technologies Ag Berechnungsschaltung zur Division eines Festpunktsignals
US8185721B2 (en) * 2008-03-04 2012-05-22 Qualcomm Incorporated Dual function adder for computing a hardware prefetch address and an arithmetic operation value
DE202014103162U1 (de) 2014-03-05 2014-07-23 Gerald Wegl System zum Sichern von Behältnissen zur Aufbewahrung von Wertsachen
KR102470224B1 (ko) * 2022-06-30 2022-11-23 이수용 편심축 및 구름 접촉을 이용한 감속장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833816B2 (ja) * 1988-10-08 1996-03-29 日本電気株式会社 固定小数点除算方式
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
JP2835153B2 (ja) * 1990-06-25 1998-12-14 株式会社東芝 高基数除算器
JP2502836B2 (ja) * 1991-03-19 1996-05-29 富士通株式会社 除算回路の前処理装置
US5420809A (en) * 1993-11-30 1995-05-30 Texas Instruments Incorporated Method of operating a data processing apparatus to compute correlation

Also Published As

Publication number Publication date
EP0706117A1 (en) 1996-04-10
DE69529047D1 (de) 2003-01-16
JP3210557B2 (ja) 2001-09-17
KR960015200A (ko) 1996-05-22
EP0706117B1 (en) 2002-12-04
US5673215A (en) 1997-09-30
JPH08123668A (ja) 1996-05-17

Similar Documents

Publication Publication Date Title
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US6099158A (en) Apparatus and methods for execution of computer instructions
EP0585619B1 (en) Method of detecting zero condition of arithmetic or logical computation result, and circuit for same
US4320464A (en) Binary divider with carry-save adders
US9146707B2 (en) Generating a fast 3x multiplicand term for radix-8 booth multiplication
US5426600A (en) Double precision division circuit and method for digital signal processor
US4110832A (en) Carry save adder
GB1570791A (en) Multiplication apparatus
EP0487814A2 (en) Overflow determination for three-operand alus in a scalable compound instruction set machine
KR19980041799A (ko) 결합된 선두 1 및 선두 제로 예상기
Prabhu et al. 167 MHz radix-8 divide and square root using overlapped radix-2 stages
EP0529101B1 (en) Floating-point dividing circuit
US5301139A (en) Shifter circuit for multiple precision division
US20040267853A1 (en) Method and apparatus for implementing power of two floating point estimation
US5357455A (en) Floating point remainder generator for a math processor
KR100218615B1 (ko) 고정 소수점 디바이더 장치 및 고정 소수점 나눗셈 연산 수행방법
GB2196453A (en) Treatment of floating point numbers
US6519621B1 (en) Arithmetic circuit for accumulative operation
US5867413A (en) Fast method of floating-point multiplication and accumulation
JP3306497B2 (ja) 浮動小数点乗算器における丸め回路
US7069290B2 (en) Power efficient booth recoded multiplier and method of multiplication
US5675528A (en) Early detection of overflow and exceptional quotient/remainder pairs for nonrestoring twos complement division
US5239498A (en) Methods and apparatus for improved quotient correction in nonrestoring division computation circuits
US20040073593A1 (en) Hybrid carry look ahead/carry select adder including carry logic generating complementary hot carry signals, and method for producing the carry logic
JPH0612239A (ja) コンピュータaluにおける除算により生じさせられた不正確な結果を検出する装置

Legal Events

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

Payment date: 20020410

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee