KR0169264B1 - 연산장치와 연산방법 - Google Patents

연산장치와 연산방법 Download PDF

Info

Publication number
KR0169264B1
KR0169264B1 KR1019890019415A KR890019415A KR0169264B1 KR 0169264 B1 KR0169264 B1 KR 0169264B1 KR 1019890019415 A KR1019890019415 A KR 1019890019415A KR 890019415 A KR890019415 A KR 890019415A KR 0169264 B1 KR0169264 B1 KR 0169264B1
Authority
KR
South Korea
Prior art keywords
bit
dividend
divisor
quotient
overflow
Prior art date
Application number
KR1019890019415A
Other languages
English (en)
Other versions
KR900010545A (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
Priority claimed from JP63326451A external-priority patent/JP2664750B2/ja
Priority claimed from JP1041566A external-priority patent/JP2726479B2/ja
Application filed by 아오이 죠이치, 가부시키가이샤 도시바 filed Critical 아오이 죠이치
Publication of KR900010545A publication Critical patent/KR900010545A/ko
Application granted granted Critical
Publication of KR0169264B1 publication Critical patent/KR0169264B1/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
    • 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/5353Restoring division
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

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

Abstract

내용없음.

Description

연산장치와 연산방법
제1도는 본 발명의 제1실시예에 따른 감산시프트형 연산장치를 나타낸 도면.
제2도(a) 내지 제2도(d)는 제1도에 도시된 감산시프트형 연산장치의 처리동작을 설명하기 위한 플로우차트.
제3도(a)와 제3도(b)는 본 발명의 제1실시예를 위한 몫비트 결정테이블을 나타낸 도면.
제4도는 본 발명의 감산시프트형 연산장치를 나타낸 도면.
제5도와 제6도(a) 및 제6도(b)는 본 발명의 제2실시예에 따른 연산장치의 처리동작을 나타낸 플로우차트이다.
* 도면의 주요부분에 대한 부호의 설명
1 : 연산장치 3 : 몫산출회로
5 : 제어회로 7 : 레지스터
9 : 시프터 11 : 멀티 플렉서
15 : 시프터, 101 : 피제수 레지스터
102 : 부호비트 레지스터 103 : 시프터
104 : 제수 레지스터 105 : 부호비트 레지스터
106 : 시프터 107 : 보수기
108 : 가산기 109 : 몫점검회로
112 : 제어회로 113 : 시프트 레지스터
114 : ALZERO플래그
[산업상의 이용분야]
본 발명은 감산시프트형 제산알고리즘을 이용하여 연산을 수행하기 위한 연산회로와 그 연산방법에 관한 것으로, 특히 피제수(被除數)와 제수(除數)의 부호화동작과 오버플로우(overflow)의 검출동작이 개선된 제산장치를 사용하는 연산장치와 연산방법에 관한 것이다.
[종래의 기술과 그 문제점]
감산시프트형 제산알고리즘이, 예컨데 정보처리장치 등에시 실행되는 부호비트를 포함하는 제산동작에 사용된다(1980년 Kindai-Kagaku co., Ltd의 Horikoshi에 의해 발표된 컴퓨터의 고속연산시스템: High-speed operation System of A Computer 참조).
이리한 부호비트를 포함하는 감산시프트형 제산알고리즘은 피제수의 절대치와 그 제수의 절대치를 취해서 양수(陽數)의 절대치로 연산하고 피제수와 제수의 부호를 이용하여 몫과 나머지를 결정하도록 구성되어 있다.
이러한 제산동작에서의 오버플로우, 즉 예컨대 16비트를 초과하는 오버플로우상태는 제산동작에서의 차이가 피제수-(제수x 216)에서 0으로 되거나 감산동작에서 상위자리로부터의 차용(borrow)이 없는 경우에 예컨대 비부호화 16비트 표현에 의해 몫을 나타낼 수 없다는 결과로부터 검출되고, 이 제산동작에서 몫이 부호화비트 표현에 포함되는 경우의 오버플로우 전체의 반복연산이 종료될 때까지 검출되지 않기 때문에 드물게 직면하게 되는 오버플로우의 비정상적인 사건에 대해 부득이하게 하나의 전사이클시간을 취해야만 하므로 연산효율이 저하되는 원인으로 되고 있다.
이에 관련하여, 상기한 제산동작에서 필요로 하는 전체의 클럭수는,
진체의 클럭수 = 반복처리에 필요한 클럭수 × 반복횟수
+ 절대치를 구하기 위해 필요한 클럭수 × 2
+ 부호를 보정하는데 필요한 클럭수 × 2
로 된다.
여기서 반복처리에서의 시프트는, 예컨대 ALV(Arithmetic logic operation unit)에 의해 수행되면, 반복처리시 3 ∼ 4클럭을 취하게 되는데, 이는 전체의 처리에 대한 모든 클럭수의 절반이 반복처리를 제외한 클럭수에 의해 사용되어짐을 의미하고 있다.
이러한 종래 시스템에 있어서, 반복처리에 부가하여 소비시간은 전처리(pre-processing)와 후처리(post-processing)와 같은 부호비트를 포함하는 제산동작과 마주치게 되는 바, 즉 필요한 반복처리의 개시는 피제수와 제수의 절대치를 구한 다음 마지막으로 부호 동등성에 기초하여 몫과 나머지를 구하는 것에 따른다. 이러한 종래 시스템에서의 문제는 각 반복연산에 대한 클럭수가 고속제산동작을 수행하는 시프트처리용 하드웨어에 의해 감소되어질 수 있더라도 복잡한 오버헤드(over head)에 기인하여 기대되는 범위에 대해 전체의 처리를 위한 클럭수는 감소시킬 수 없고, 또 하드웨어 증강 애 적합한 고속장치를 실현할 수 없으므로, 반복연산에 필요한 시간의 감소와 복잡한 오버헤드의 감소가 중요한 과제로 되고 있다.
[발명의 목적]
본 발명은 상기한 사정을 감안하여 발명된 것으로, 오버플로우의 검출과, 부호화 피제수와 제수를 사용하는 제산동작의 실행에 대한 복잡한 오버헤드의 처리를 감소시킬 수 있으면서 충분한 고속동작을 실현할 수 있도록 된 개선된 알고리즘을 사용하는 연산장치와 연산방법을 제공함에 그 목적이 있다.
[발명의 구성 및 작용]
상기한 목적을 달성하기 위해 본 발명은, 제산동작시 부호화 피제수와 제수가 부가된 감산시프트형 제산알고리즘을 사용하여 몫과 나머지를 구하기 위한 연산장치에 있어서, 피제수와 제수는 연산처리를 위한 입력값으로서 인가됨과 더불어 감산동작은 피제수와 제수의 부호가 상호 동일한 경우 반복되고, 가산동작은 피제수와 제수의 부호가 상호 다른 경우 반복되는 것을 특징으로 한다.
또한 본 발명은, 피제수와 제산동작의 중간결과에 대응되는 수치가 순차적으로 저장되는 피제수 메모리수단과; 상기 피제수의 부호비트가 저장되는 제 1부호비트 저장 수단; 상기 피제수 메모리수단의 수치를 1비트 상위비트측으로 시프트시키는 제 1시프트수단; 제수가 저장되는 제수 메모리수단; 상기 제수의 부호비트가 저장되는 제 2부호 비트 저장수단; 상기 제수 메모리수단의 제수를 상기 제수 메모리수단의 제수 비트수와 상기 피제수 메모리수단의 피제수 비트수 사이의 차이만큼 상위비트측으로 시프트 시키는 제 2시프트수단; 상기 제 1부호비트 저장수단의 값이 상기 제 2부호비트 저장수단의 값과 동일한 경우 상기 제 1시프트수단의 출력과 상기 제 2시프트수단의 출력을 감산처리하는 반면, 상기 제 1부호비트 저장수단의 값과 상기 제2부호비트 저장수단의 값이 다른 경우에는 상기 제 1시프트수단의 출력과 상기 제 2시프트수단의 출력을 가산처리하는 연산수단; 이 연산수단에 의한 연산결과가 0인지의 여부, 캐리 또는 차용이 있는지의 여부를 결정해서 상기 제 1부호비트 저장수단에 저장된 부호비트값을 기초로 몫비트값을 결정하고, 상기 제 1 및 제 2부호저장수단과 상기 제 1시프트수단 및 상기 연산수단에 연결된 몫산출수단; 이 몫산출수단에 의해 산출되는 몫비트가 제 1값인 경우 상기 연산수단의 연산결과를 선택해서 상기 피제수 메모리수단애 저장시키는 반면, 상기 몫산출수단에 의해 산출되는 몫비트가 제2값인 경우 상기 제 1시프트 수단의 출력을 선택하여 상기 피제수 메모리수단에 저장시키는 셀렉트수단 및; 상기 연산수단에 의한 연산이 소정 횟수 수행되도록 상기 피제수 및 제수 메모리수단과, 제1 및 제2부호비트 저장수단, 제 1 및 제 2시프트수단, 연산수단, 몫산출수단 및, 셀렉트수단을 제어하는 제어수단을 구비하여 구성된 것을 특징으로 한다.
이러한 본 발명에 따르면, 종래의 연산장치의 경우처럼 반복되는 전처리시 피제수와 제수의 절대치를 구하지 않고서도 연산처리에서와 같이 피제수와 제수가 사용된다.
따라서, 연산처리가 부가된 부호에 의해 실행되므로 부호보정처리가 생략될 수 있다.
그리고, 감산시프트형 제산알고리즘을 사용함에 따라 부호비트로서 최상위 유효비트에 의한 제산동작을 실행하기 위한 제산장치에 있어서, 연산방법은 반복적인 연산의 더 이전의 스테이지에서의 오버플로우의 검출, 즉 반복적인 연산 부분 동안에 오버플로우를 검출하는데 사용된다.
즉, 이러한 목적을 실현하기 위해, 피제수와 제수의 크기가 서로 동일한지의 여부를 결정하기 위한 부호결정수단과; 몫의 최상위비트를 계산하기 위한 사이클 또는 몫의 최상위비트 이외를 산출하기 위한 사이클을 결정하기 위한 사이클결정수단; 제산동작시 몫의 비트가 1인가의 여부를 결정하기 위한 비트결정수단; 피제수와 제수가 상호 동일한 크기인 경우와 사이클이 몫의 최상위비트의 계산을 위한 사이클일 경우 및, 몫의 비트가 1로 계산될 경우 오버플로우의 존재를 결정하고, 피제수와 제수의 부호가 상호 다른 경우와, 사이클이 몫의 최상위비트와 달리 계산되기 위한 사이클인 경우 및, 계산된 몫의 최상위비트가 음(負)의 값(1)인 경우에 오버플로우의 존재를 결정하기 위한 오버플로우결정수단 및; 상기 각 수단의 동작을 제어하는 연산제어수단으로 구성되어 있다.
이러한 본 발명의 연산수단과 연산방법에 따르면, 계산된 몫의 최상위비트가 피제수와 제수의 부호 동일성에 따라 1이거나 계산된 몫의 최상위비트가 피제수와 제수의 부호 비동일성에 따라 1인 경우에는 몫의 다른 하나와 몫의 최상위비트 사이에서의 일치되는 시점에서 제산동작시의 오버플로우를 검출할 수 있게 된다.
따라서, 오버플로우의 검출만을 위해 종래의 연산장치를 사용하는 것이 필요치 않게 되고, 또한 오버플로우의 발생에 따른 소정의 무의미한 연산시간이 요구되는 것 없이 제산동작이 완료될 수 있으므로 전체적으로 제산처리가 고속으로 실행될 수 있게 된다.
[실시예]
이하, 예시도면을 참조해서 본 발명에 따른 연산장치와 그 연산방법을 상세히 설명한다.
제1도는 본 발명의 제 1실시예에 따른 연산장치의 구성을 나타낸 도면으로, 이 제1도의 연산장치는 32비트 피제수와 16비트 제수를 대상으로 연산을 수행하며 16비트 몫과 16비트 나머지를 수반하는 연산결과를 산출할 수 있는 것이다.
피제수 레지스터(101)에는 초기치로서의 32비트 피제수가 저장되고, 연산처리에서의 연산의 중간결과(나머지의 일부분)가 연속적으로 저장될 수 있다. 부호비트를 포함하는 제산연산에 대해, 저장되어지는 피제수가 부호비트의 하나로서 피제수 레지스터(101)에 저장된다 피제수의 부호비트는 부호비트 레지스터(102)에 저장된다. 시프터(103)는 상기 피제수 레지스터(101)내의 값을 1비트 상위비트 위치로 시프트시켜서 시프트출력을 전달하든가, 피제수 레지스터(101)내에 저장된 값을 그를 통해 지나가게 허용한다.
한편, 제수 레지스터(104)에는 16비트제수가 저장되고, 부호비트를 포함하는 제산동작시에 대해 피제수의 경우와 같이 제수 레지스터에 부호비트를 포함하는 하나로서 제수가 저장될 수 있다. 제수의 부호비트는 부호비트 레지스더(105)에 저장된다. 시프터(106)는 제수 레지스터(104)에 저장된 시프트 되어질 16비트 제수를 요구된 몫의 비트수에 대응하는 비트수, 즉 16비트보다 상위인 비트위치로 시프트시키고, 그곳에 고정시키게 된다.
보수기(107; complementer)는 피제수와 제수가 동일한 부호를 갖는 경우 시프터(106)의 출려을 보수화하고, 피제수와 제수의 부호가 서로 다른 경우에는 그를 통해 지나가도록 시프터(106)의 출력을 허용하게 된다. 여기서, 시프터(103)와 보수기(107)의 각 32비트출력은 각각 가산기(108)의 제 1 및 제 2포트에 입력된다. 가산기(108)는 상기 시프터(103)의 출력과 상기 보수기(107)의 출력에 대한 가산연산을 수행하게 된다. 이때, 가산결과가 0인 것을 나타내는 제로플래그와 캐리발생여부를 나타내는 신호는 몫결정회로(109)에 공급된다. 상기 부호비트 레지스터(102, 105)의 각 부호비트와 상기 시프터(103)의 오버플로우 출력도 상기 몫결정회로(109)에 공급된다. 따라서, 몫결정회로(109)는 이들 정보를 기초로 몫비트를 결정하여 몫비트를 시프트 레지스터(113)에 1비트씩 공급하게 된다. 여기서, 상기 몫결정회로(109)에는 가산결과가 0인 경우 1로 설정되는 ALZERO 플래그(114)가 포함되어 있다. 그리고, 셀렉터(111)는 상기 결정된 몫비트를 기초로 상기 가산기(108)와 시프터(103)의 출력중 1개를 선택하여 상기 피제수 레지스터에 저장시키게 되고, 또 제어회로(112)는 상기 각 회로를 제어해서 반복적 인 연산을 실행시키는 작용을 하게 된다. 또 상기한 구성요소 이외에도 도시되지는 않았지만 다른 내부버스, 각 레지스터간의 버스, 범용레지스터화일 등이 적절하게 설치된다.
여기서, 상기 제1도에 도시된 연산장치에 구성된 제어회로의 상세한 처리단계에 대해 제2도(a) 내지 제2도(d)를 참조해서 설명한다.
제2도(a)는 주플로우차트를 나타낸 도면으로, 먼저 ALZERO플래그(14)가 0으로 초기화되고, 연산장치는 부호비트가 포함된 제산동작인가의 여부를 점검하여, YES이면 연산장치는 부호비트 레지스터(102, 105)에 저장되어질 피제수와 제수의 부호를 허용하고, 다음 소정의 오버플로우를 점검하기 위한 연산 1을 수행하게 된다
제2도(b)는 소정의 오버플로우를 점검하기 위한 연산 1을 수행하기 위한 서브루틴 플로우차트로서, 먼저 피제수 레지스터(101)에 저장된 32비트 피제수가 가산기(108)의 제1포트에 공급되고, 이어 부호비트 레지스터(102, 105)의 값을 참조하여 피제수와 제수의 부호가 상호 동일하다면, 상기 제수 레지스터(104)에 저장된 16비트 제수를 시프터(106)에 의해 16비트 단위로 상위비트측으로 시프트시켜 보수기(107)에 의해 보수화를 수행한 다음 가산기(108)의 제 2포트에 공급하게 된다.
이에 대해 상기 피제수와 제수의 부호가 상호 다르다면 연산장치는 상기 제수 레지스티(104)에 저장된 16비트 제수를 시프터(106)에 의해 상위비트측으로 16비트 시프트시켜 보수기(107)를 그대로 통과시키게 되고, 이어 가산기(108)의 제 2포트에 공급되는 제수는 그 가산기(108)에 의해 가산동작이 실행된다.
여기서, 이러한 관계에 대해 제3도(a)를 참조해서 설명한다.
이 연산장치에서는 제3도(a)에 도시된 테이블의 a, d에서 처럼 피제수와 제수의 부호가 동등한 경우에는 제산동작이 반복되는 반면, 그 피제수와 제수의 부호가 다른 경우이면 가산동작이 반복됨에 따라 절대치의 감산이 수행된다. 본 실시에에서는 가산기(108)가 연산수단으로 사용되고 있으므로 전자의 경우에는 가산기를 사용하여 연산시 수행되도록 제수가 보수화되고 있다. 이 연산의 결과, 몫비트가 1인 경우에는 그 몫이 17비트 이상의 오버플로우로 결정되어 연산처리는 종료된다. 여기서, 몫비트는 다음의 기준에 의해 결정되는 바, 이 기준은 연산 1뿐만 아니라 연산 2에도 적용된다.
(1) 연산결과 0인 경우, 몫비트 =1
(2) 부호비트가 포함된 제산인 경우,
몫비트 = 피제수의 부호, EXOR.캐리
(3) 부호비트가 부가되지 않은 제산인 경우
몫비트 = 시프터(103)의 오버플로우와, OR 캐리
여기서, 상기 (1)의 경우는 피제수가 제수에 의해 정확하게 나누어져 나머지가 없음을 의미하고,(2)의 경우에 대해 제3도(a)를 참조해서 설명하면, 지금 몫비트:1을 구하기 위해 │피제수││제수│ 인 것이 필요하게 되며, 피제수의 부호가 양(正: 0)경우에는 몫비트=1이 구해지는 피제수 │제수│일 때 캐리가 발생된다. 이 때문에 제3도(a)에 도시된 바와 같이 피제수의 부호가 0인 경우 캐리가 1일때 몫비트는 1이고, 캐리가 0일 때 몫비트=0으로 된다. 여기서, 상기 피제수의 부호가 음(1)인 경우를 가정하면, 이 경우 몫 비트=1이 얻어지는 │피제수││제수 1 일 때 캐리는 발생되지 않게 되고, 상기 피제수의 부호가 1인 경우에는 제3도(a)에 도시된 바와 같이 캐리=0에서 몫비트=1인 반면, 캐리=1에서 몫비트=0으로 된다.
또, 오버플로우의 점검에서는 상기 시프터(103)의 시프트동작이 아직 수행되지 않으므로 시프터는 오버플로우를 포함하지 않게 된다. 따라서, 연산 1의 경우, 상기한 바와 같이 제산동작이 실행될 때 캐리만이 참조된다.
그리고, 상기 연산 1이 종료된 다음 연산 2가 반복적으로 수행되는데, 이 연산 2의 단계는 제2도(c)와 제2도(d)에 도시된 바와 같이 수행된다. 즉, 연산 2에서 피제수 레지스터(101)의 값을 시프터(103)에 의해 1비트 상위비트측으로 시프트시킨 값과, 제수 레지스더(104)의 값을 시프터(106)에 의해 상위 비트측으로 16비트 시프트시켜서 선택적인 보수동작에 의해 얻어지는 값을 가산기(108)의 입력포트에 공급하게 된다.
이에 따라 가산동작이 수행되어 상기 연산 1에 의해 표시된 기준을 이용하여 몫비트를 결정하게 되고, 결정된 몫비트는 상기 시프트 레지스터(113)의 최하위비트측으로 시프트시키게 된다. 여기서, 만일 몫비트=1인 경우 상기 가산기(108)에 의한 가산결과는 상기 셀렉터(111)에 의해 선택되어 상기 피제수 레지스터(101)에 저장되는 반면, 상기 몫비트=0인 경우에는 상기 시프터(103)의 출력이 상기 셀렉터(111)에 의해 선택되어 상기 피제수 레지스터(101)에 저장되고, 상기 결정기준이 ALZERO=0인 경우에만 적용 되도록 할 수 있다. 만일, 연산결과가 0인 경우에는 ALZERO=1로 되므로 후속의 반복연산에서는 몫비트가 항상 0으로 된다. 이러한 ALZERO플래그(114)를 이용함으로써 피제수가 음(負)인 경우 상기 결정기준에 기초하여 잘못된 몫비트가 출력되는 것을 방지할 수 있게 된다.
이어, 상기 연산 2를 16회 반복적인 형태로 수행함으로써 16비트몫이 순차적으로 구해지고, 16비트의 나머지가 상기 피제수 레지스터(101)의 상위 16비트측에서 구해지게 된다. 이때 구해진 몫에 대해서는 절대치로서 표현되지만, 나머지에 대해서는 피제수를 부호가 부가된 채 연산에 이용하므로 부호가 포함된 표현으로 되어 있고, 이 때문에 나머지의 부호보정처리가 생략될 수 있다.
그리고, 상기 연산 2가 종료되면, 제2도(a)에 도시된 바와 같이 부호가 포함된 제산동작의 경우 부호비트 레지스터(102, 105)의 부호비트를 참조하게 되며, 피제수와 제수의 부호가 상호 다른 경우에는 절대치로서 구해진 몫의 부호반전처리동작이 수행된다. 또, 이 연산장치는 피제수의 부호의 일치를 점검하여 제수의 부호와 피제수의 부호를 구해내고, 이어 이 연산장치는 부호가 일치하지 않는 경우이면 오버플로우를 결정하는 반면 일치하는 경우이면 보정연산결과를 구해낸 다음 일련의 처리단계를 종료하게 된다.
이러한 본 발명의 제 1실시예에 따르면 부호가 부가된 피제수와 제수를 그대로 취급해서 보수기(107)와 가산기(108)로 구성된 연산수단을 이용하여 피제수와 제수가 동일한 부호를 갖으면 감산동작을 수행하는 반면 다른 부호를 갖으면 가산동작을 수행하게 되므로 반복적 전처리를 생략할 수 있게 된다. 또 구해진 나머지는 부호가 포함되어 있기 때문에 나머지의 부호를 보정하기 위한 후처리도 생략할 수 있게 되고, 더욱이 반복연산처리는 종래기술과 마찬가지로 고속의 하드웨어장치로 적합하게 수행할 수 있게 되는 결과, 본 발명에 따른 연산장치는 전체의 고속하드웨어장치에 적용시킬 수 있는 고속처리가 가능해지게 된다.
한편, 본 발명은 상기한 제1실시예로만 한정되지는 않는 바, 비록 상기 실시예에서는 연산수단으로서 보수기(107)와 가산기(108)을 사용했지만, 예컨대 보수기와 감산기를 사용할 수도 있고, 이 경우 제수에 대한 보수화는 피제수와 제수가 상호 다른 경우에만 실행되도록 하고, 부호비트를 포함하는 제산동작의 경우에만 다음과 같은 기준을 기초로 하여 몫비트를 결정하도록 하면 좋다.
몫비트= ∼(피제수의 부호, EXOR 차용)
단, ~는 부정
제4도는 본 발명의 제 2실시예에 따른 연산장치를 나타낸 도면으로, 이 제4도에 도시된 연산장치는 제산장치를 포함하여 구성되면서, 몫을 구하기 위한 반복적인 연산이 수행되는 도중에 오버플로우의 발생을 수행해서 오버플로우가 발생된 시점에서 제산처리를 정지시키게 되어 있다. 상기 제산장치는 32비트 피제수와 16비트 제수의 부호비트를 포함한 제산동작을 수행하여 16비트의 몫과 나머지를 구해내게 되고, 이러한 제산동작은 대응되는 기본적인 알고리즘에 의해 반복적으로 수행된다.
이 제4도에 도시된 구성에서 제산장치는 크게 제산동작을 수행하는 연산장치(1)와, 이 연산장치(1)에 의해 실행되는 연산결과에 따라 몫을 계산하는 몫산출회로(3) 및, 제산처리를 제어하는 제어회로(5)로 크게 나누어져 있다.
연산장치(1)는 그 일측입력단에서 레지스터(7; XR)에 저장된 값을 공급받고, 레지스터(7)에는 제산동작을 개시하는 경우 32비트 피제수의 절대치(이하, │피제수│로 표시함)가 공급되어 저장되고, 반복연산이 실행되는 경우에 상기 레지스터(7)에는 저장된 값을 1비트 좌측으로 시프트시킨 값 또는 연산장치의 출력으로 되는 반복연산결과의 중간결과(나머지의 일부분)가 공급되어 그 값이 유지되며, 이 유지되는 값은 연산장치(1) 또는시프터(9)에 공급된다. 이 경우 시프터(9)는 상기 레지스터(7)로부터 공급되는 │피제수 │와 나머지의 일부분을 좌측으로 1비트 시프트시키고, 이 시프터(9)의 좌측 시프트 값이 멀티플렉서(11: 이하 MUX라 함)에 공급되는데 이 MUX(11)에는 상기 연산장치(11)로부터 │피제수│와 부분적인 나머지도 인가되므로 MUX(11)는 이들 입력을 교대로 선택하게 된다 즉, MUX(11)는 제산동작의 개시시 │피제수│를 선택하게 되고, 상기 연산장치(1)에 의해 제산동작이 종료되는 경우 연산장치(1)로부터의 나머지의 일부분의 출력을 선택하게 되며, 상기 레지스터(7)에 나머지의 일부분을 저장 후 후속연산의 개시시 시프터(9)의 출력을 선택하게 된다.
그리고, 상기 연산장치(1)는 다른 입력단에 레지스터(13: YR)로부터의 값을 받은 다음 시프터(15)로부터 시프트되는 값을 인가받게 되고, 이 경우 상기 레지스터(13)는 16비트 제수의 절대치(이하, │제수│라 표시함)를 인가받아 저장하는 형태의 것이 이용되며, 이 레지스터(13)의 │제수│와 │ 피제수│의 최상위비트를 조정하기 위해 │제수│를 시프트시키게 된다.
그리고, 상기 연산장치(1)는 상기 레지스터(7)와 시프터(15)로부터 값을 수신하게 되면, 상기 레지스터(7)의 값으로부터 상기 시프터(15)의 값을 감산하고, 그 감산결과를 MUX(11)에 나머지의 일부분으로서 공급하게 된다. 또, 상기 연산장치(1)는 감산처리에서 차용이 있는지의 여부 또는 감산결과가 0인지의 여부를 나타내는 연산정보를 몫산출회로(3)에 공급하게 된다. 이에 따라, 몫산출회로(3)는 상기 연산장치(1)로부터의 반복적인 연산정보에 의해 피제수와 제수의 부호에 대해 연산하여 1비트몫을 구하게 된다. 또, 이 몫산출회로(3)에는 감산회로에서 차용이 발생된 경우 몫비트가 0으로 셋트되는 반면, 감산처리의 결과가 0으로 되는 경우 또는 감산처리에서 차용이 발생되지 않는 경우 몫비트가 1로 셋트된다. 따라서, 산출된 절대치 형태의 몫은 레지스터(17)에 순차적으로 공급되어 저장된다. 즉, 연산처리에서 오버플로우가 발생되지 않는 경우 상기 몫산출회로에서는 16회의 반복적인 감산동작에 대한 몫이 구해져 레지스터(17)에 공급되고, 이와 같이 해서 감산동작이 종료됨에 따라 16비트몫이 레지스터(17)에 저장되며, 이 레지스터(17)에 저장된 절대치 형태의 몫은 부호가 고려되지 않기 때문에 부호의 결정이 이루어지게 되는데, 에컨대 피제수와 제수의 부호가 상호 다른 경우에도 몫이 음수(負數)로 되므로 레지스터(17)에 저장된 몫부호가 반전된다.
또, 상기 몫산출회로(3)에서는 산출된 몫비트가 0 또는 1인지를 나타내는 정보를 제어회로(5)에 공급하는 한편, 피제수의 부호와 제수의 부호에 기초해서 그 피제수와 제수의 부호가 상호 동일한 부호인가의 여부를 결정하게 되는데, 이 결정처리는 예컨대 EXOR(exclusive logic OR)게이트에 의해 수행되고, 그 결정결과는 제어회로(5)에 공급된다.
그리고, 상기 제어회로(5)는 감산처리시 제어센터로서 기능하는 회로로서, 상기 연산장치(1)의 감산 또는 다른 연산을 제어함과 더불어 상기 몫산출회로(3)의 몫산출연산을 제어하게 되고, 이 경우 상기 제어회로(5)는 상기 몫산출회로(3)에 의해 산출된 몫의 최상위비트 상태를 나타내는 프리오버플래그(19: pre-over-flag. 이하 PO플래그라 함)를 구비하고 있다. 이 PO플래그(19)는 예컨대 몫의 최상위비트가 0이면 0으로 설정되는 반면 몫의 최상위비트가 1이면 1로 설정된다 또, 상기 제어회로(5)는 상기 연산장치(1)가 몫을 산출해내는 반복적인 연산사이클인가 또는 몫의 최상위비트 이후의 몫비트를 산출하기 위한 연산사이클인가를 결정하게 되는데, 이러한 결정은 에컨대 반복적인 연산의 횟수를 인식하는 예컨대 카운터를 참조해서 이루어지게 된다. 더욱이, 상기 제어회로(5)는 오버플로우가 발생되었는지의 여부를 결정해서 오버플로우가 발생된 경우 제산동작을 중지시키기 위한 명령을 전송하게 되는 바, 여기서 오버플로우의 형태는 다음과 같다.
먼저, 제1오버플로우가 │피제수│로부터 16비트 좌측으로 시프트된 제수를 감산한 결과, 또는 그와 같이 함으로써 차용이 발생되지 않는 사실을 기초로 검출된다 즉, 감산의 결과에 따라 제어회로(5)는 감산동작에서 오버플로우가 발생되는 것을 결정하게 되는데, 이는 상기와 동일한 알고리즘을 사용하여 실행된다.
본 발명의 특징으로 되는 제 2 및 제 3 오버플로우의 검출에 대해 제5도에 도시된 제어회로(5)의 제어플로우차트를 참조해서 설명한다.
먼저 피제수와 제수의 부호가 단계 100에서 몫산출회로(3)에 유지된 후, 단계 110에서 몫의 최상위비트를 구하기 위해 연산장치(1)에 의해 감산동작이 수행된다.
산출된 몫의 최상위비트가 1로 되고, 피제수와 제수가 서로 동일한 부호로 되면(단계 120, YES), 제어회로(5)는 감산동작에서 야기되는 오버플로우를 결정하여(단계 130) 제산동작을 정지시킨다. 이에 따라 제2오버플로우가 검출된다.
한편, 몫의 최상위비트가 0이면서 피제수와 제수의 부호가 서로 다르다면(단계 120,NO), 몫의 최상위비트에 따른 몫의 최하위비트를 계산할 수 있다(단계 140).
피제수와 제수의 부호가 서로 다르고(단계 150, NO), 계산된 몫의 비트 = 1임과 더불어 몫의 최상위비트 = 1이면(단계 160, YES), 제어회로(5)는 제산이 오버플로우인 것으로 결정하여 (단계 130) 제산동작을 정지시킨다. 이는 제 3오버플로우의 검출에 대응된다.
한편, 피제수와 제수의 부호가 서로 동일한 경우에는(단계 150, YES), 몫의 하위비트의 게산이 계속 수행되어(단계 170, NO) 상기와 같이 오버플로우가 발생되었는가의 여부가 결정된다. 이에 따라, 제어회로(5)는 오버플로우의 발생여부를 결정하게 된다.
이상에서 설명한 바와 같이 본 발명의 제 2실시예가 구성되어 있는 바, 이하 본 발명의 제 2실시예에 대한 제산동작알고리즘의 단계를 제6도(a)와 제6도(b)를 참조해서 설명한다.
(1) 피제수와 재수의 부호를 몫산출회로(3)에 공급해시 저장시키게 된다.
(2) 피제수와 제수의 절대치가 취해져 피제수가 MUX(11)를 매개해서 레지스트(9)에 인가되어 저장되는 반면 제수가 레지스트(13)에 인가되어 저장된다.
(3) 상기 레지스트(13)의 제수가 시프터(15)에 인가되어 좌측으로 16비트 시프트되고, 이 좌측으로 시프트된 │제수│가 연산장치(1)에 인가되어 상기 레지스터(7)로부터 인가되는 │피제수│로부터 감산된다.
(4) 이 감산동작에서 감산결과가 0이거나 차용이 발생되는 경우 몫이 16비트로 표시 될 수 없게 되므로 이 시점에서 오버플로우가 발생된 것으로 결정된다.
(5) 만일 오버플로우가 발생되지 않는 경우에는 상기 레지스터(7)내의 피제수가 시프터(9)에 의해 좌측으로 1비트 시프트되어 MUX(11)를 매개해서 레지스티(7)에 재차 인가된다.
(6) 상기 레지스터(13)내의 │제수│가 시프터(15)에 의해 16비트 시프트된 다음 연산장치(1)에 인가되어 상기 레지스터(7)로부터 공급되는 값으로부터 감산된다.
(7) 이 감산동작에서 차용이 발생되면 몫의 최상위비트는 0으로 되고, 감산의 결과가 0이거나 차용이 발생되지 않는 경우에는 몫의 최상위비트가 1로 되며, 이 시점에서 피제수와 제수의 부호가 상호 동일한 경우이면 몫이 부호비트에 들어가는 것으로 되어 오버플로우로 된다.
한편, 피제수와 제수의 부호가 상호 다르면, 이 시점에서 오버플로우가 확정되지 않고 이하의 반복연산에서 몫비트 = 1로 되는 시점에서 오버플로우가 확정되며, 이러한 경우에 몫의 최상위비트가 1로 된 것을 나타내기 위해 PO플래그(19)가 1로 설정되고, 이러한 연산결과가 MUX(11)에 의해 선택된 다음 레지스터(7)에 인가되어 부분적인 나머지로서 지장된다.
(8) 상기 레지스티(7)의 나머지의 일부분이 시프터(9)에 인가되어 좌측으로 1비트 시프트된 다음 레지스터(7)에 재차 인가되어 저장된다.
(9) 상기 레지스터(13)내의 제수가 시프터(15)에 인가되어 좌측으로 16비트 시프트되고, 이 좌측으로 시프트된 값이 연산장치(1)에 인가되어 나머지의 일부분으로부터 감산된 다음 레지스터(7)에 저장된다.
(10) 이 감산결과에서 차용이 발생되는 경우에는 몫비트가 0으로 되는 반면, 감산결과가 0이거나 감산동작에서 차용이 발생되지 않으면, 몫비트가 1로 되고, 감산결과 즉 나머지의 일부분이 레지스터(7)에 유지되며, 이 시점에서 상기와 같이 PO플래그(19)가 1로 설정되는 경우에 몫비트가 1로 되면, 이 시점에서 오버플로우가 확정되어 일련의 제산동작이 정지된다.
(11) 상기한 일련의 연산동작이 오버플로우가 발생되지 않는 한 15회 반복되어 몫이 상위 비트로부터 순차적으로 상기 몫산출회로(3)에 의해 계산되고, 이와 같이 해서 산출되는 16비트 몫이 레지스터(17)에서, 16비트의 나머지는 레지스터(7)의 상위 16비트에서 절대치로 얻어지게 된다.
(12) 피제수와 제수의 부호가 서로 다른 경우에는 몫이 음수로 되므로 레지스터(17)의 몫이 반전된다.
(13) 피제수가 음수로 되면 나머지가 음수로 되므로 그 나머지의 부호가 반전된다
이와 같이 해서 제산처리가 수행되는데, 에컨대 몫이 8000(16진수 2바이트표시), 즉 몫의 최상위비트가 1로 되는 반면 다른 몫비트가 0으로 되는 경우 PO플래그(19)가 1로 설정되지만, 상기 단계(8) 내지 단계(10)에서 산출되는 몫비트가 모두 0으로 되기 때문에 오버플로우로 결정되지 않고 정확한 제산결과가 얻어지게 된다.
상기한 처리에 따라 몫이 어떠한 형태로 되어도 제산동작을 최후까지 수행하지 않고서 오버플로우를 조기에 검출할 수 있게 된다.
[발명의 효과]
이상에서 설명한 바와 같이 본 발명에 의하면, 부호가 포함된 제산의 경우에 피제수와 제수의 절대치를 구하지 않고 양자의 부호가 동일한 경우에는 감산처리, 다른 부호일 경우에는 가산처리를 수행하도록 되어 있으므로 반복연산 전후의 오버헤드가 축소되어 하드웨어량에 알맞는 고속화를 실현할 수 있게 된다.
또, 몫을 산출하는 반복연산에서 오버플로우가 검출되므로 반복연산의 최후에 오버플로우를 검출하는 처리사이클을 설계해 줄 필요가 없어 제산시간을 단축시킬 수 있고, 또한 오버플로우가 검출된 시점에서 제산을 중지시키게 되므로 오버플로우가 생기는 경우 무의미한 연산시간을 줄일 수 있는 결과, 제산처리의 고속화을 도모할 수 있는 연산장치와 연산방법을 제공할 수 있다.

Claims (18)

  1. 피제수와 제산동작의 중간결과에 대응되는 수치가 순차적으로 저장되는 피제수 메모리수단과; 상기 피제수의 부호비트가 저장되는 제 1부호비트 저장수단; 상기 피제수 메모리수단의 수치를 1비트 상위비트측으로 시프트시키는 제 1시프트 수단; 제수가 저장되는 제수 메모리수단; 상기 제수의 부호비트가 저장되는 제 2부호비트 저장수단; 상기 제수 메모리수단의 제수를 상기 제수 메모리수단의 제수 비트수와 상기 피제수 메모리수단의 피제수 비트수 사이의 차이만큼 상위비트측으로 시프트시키는 제 2시프트수단; 상기 제 1부호비트 저장수단의 값이 상기 제 2부호비트 저장수단의 값과 동일한 경우 상기 제 1시프트수단의 출력과 상기 제2시프트수단의 출력을 감산처리하는 반면, 상기 제 1부호비트 저장수단의 값과 상기 제 2부호비트 지장수단의 값이 다른 경우에는 상기 제 1시프트수단의 출력과 상기 제 2시프트수단의 출력을 가산처리하는 연산수단; 이 연산수단에 의한 연산결과가 0인지의 여부, 캐리 또는 차용이 있는지의 여부를 결정해서 상기 제 1부호비트 저장수단에 저장된 부호비트값을 기초로 몫비트값을 결정하고, 상기 제 1 및 제 2부호저장수단과 상기 제 1시프트수단 및 상기 연산수단에 연결된 몫산출수단; 이 몫산출수단에 의해 산출되는 몫비트가 제 1값인 경우 상기 연산수단의 연산결과를 선택해서 상기 피제수 메모리수단에 저장시키는 반면, 상기 몫산출수단에 의해 산출되는 몫비트가 제 2값인 경우 상기 제 1시프트수단의 출력을 선택하여 상기 피제수 메모리수단에 저장시키는 셀렉트수단 및; 상기 연산수단애 의한 연산이 소정 횟수 수행되도록 상기 피제수 및 제수 메모리 수단과, 제 1 및 제 2부호비트 저장수단, 제 1 및 제 2시프트수단, 연산수단, 몫산출수단 및, 셀렉트수단을 제어하는 제어수단을 구비하여 구성된 것을 특징으로 하는 연산 장치.
  2. 제1항에 있어서, 상기 피제수 메모리수단이 초기치로서 32비트피제수를 저장하고, 연산처리의 중간결과가 순차로 저장되며, 부호 비트를 포함하는 제산처리에 수반되는 경우 상기 저장된 피제수를 부호화된 것으로 저장하기 위한 피제수 레지스터로 이루어진 것을 특징으로 하는 연산장치.
  3. 제1항에 있어서, 상기 제 1부호비트 저장수단이 부호화 피제수의 부호비트를 저장하는 부호비트 레지스트를 포함하여 구성된 것을 특징으로 하는 연산장치.
  4. 제1항에 있어서, 상기 제2부호비트 저장수단이 부호화 제수의 부호비트를 저장하기 위한 부호비트 레지스터로 이루어진 것을 특징으로 하는 연산장치.
  5. 제1항에 있어서, 상기 제 1시프트수단이 제산동작의 제2 및 반복단계에 상기 피제수 메모리수단의 값을 1비트상위비트측으로 시프트시킴과 더불어, 피제수 메모리수단의 값이 상기 제산동작의 제 1단계를 통해 지나가도록 허용하기 위한 시프터로 이루어진 것을 특징으로 하는 연산장치.
  6. 제1항에 있어서, 상기 제 2시프트수단은 상기 제수 메모리수단의 소정 비트수의 제수를 상기 피제수의 비트수와 제수의 비트수 사이의 차이에 대응하는 비트수 만큼 상위비트측으로 시프트시키는 시프터로 구성된 것을 특징으로 하는 연산장치.
  7. 제1항에 있어서, 상기 제수 메모리수단은 소정 비트의 제수를 저장하면서, 상기 제수가 부호화되는 경우에는 부호화 제수로서 저장하게 되는 제수 레지스터로 구성된 것을 특징으로 하는 연산장치.
  8. 제1항에 있어서, 상기 연산수단은 상기 제 2시프트수단의 출력을 보수화하는 보수기와, 제 1 및 제 2포트에 상기 제 1시프트수단의 소정 비트수 출력과 상기 보수기의 소정 비트의 출력을 입력받아 이들 출력을 연산하는 가산기로 구성된 것을 특징으로 하는 연산장치.
  9. 제1항에 있어서, 상기 몫산출수단은 가산동작의 결과=0을 나타내는 상기 연산수단으로부터의 제로플래그와, 캐리의 존재여부를 나타내는 신호, 상기 제 1 및 제 2부호비트 저장수단의 부호비트 및, 상기 제 1시프트수단의 오버플로우출력을 인가 받고, 이들 입력신호정보의 논리동작을 기초로 몫비트를 결정함과 더불어 그 몫비트를 상기 제 1시프트수단으로 1비트씩 시프트시키며, 상기 가산결과가 0으로 되면 1로 실정되는 ALZERO플래그를 저장하기 위한 플래그수단과, 상기 피제수의 부호비트와 캐리의 존재이부를 나타내는 상기 신호를 인가받는 배타적 OR게이트를 더 포함하여 구성된 것을 특징으로 하는 연산장치.
  10. 제1항에 있어서, 상기 선택수단은 상기 연산수단의 출력과, 상기 제 1시프트수단의 출력중에서 하나를 선택하여 상기 피제수 저장수단에 저장시키도록 된 것을 특징으로 하는 연산장치.
  11. 제1항에 있어서, 상기 제어수단이 다수의 레지스터와, 내부버스 및, 레지스터와 레지스터 사이의 통로의 적어도 하나를 포함하는 회로수단과, 회로수단을 제어하는 제어프로그램을 내장한 마이크로프로세서를 갖춘 제어회로로 이루어지고, 상기 버스를 매개하면서 반복형태로 가산 또는 감산동작을 수행하는 것을 특징으로 하는 연산장치.
  12. 부호비트로서 최상위비트를 갖춘 피제수와 제수 사이에서 몫을 구하기 위해 제산동작을 수행하는 제산장치를 포함한 연산장치에 있어서, 상기 피제수와 제수의 부호가 동일한지의 여부를 결정하기 위한 부호결정수단과; 몫의 최상위비트를 산출하기 위한 제 1사이클과 몫의 최상위비트 이외의 비트를 산출하기 위한 제 2사이클을 상기 제산동작에서 결정하기 위한 사이클결정수단; 산출된 몫비트가 음수(負數)인지의 여부를 결정하는 비트결정수단; 상기 부호결정수단이 상기 피제수와 제수의 부호가 동일하다고 결정하는 경우와, 상기 사이클결정수단이 제 1사이클이라고 결정하는 경우, 상기 비트결정수단이 몫의 비트가 음수임을 결징하는 경우 제산처리에서 오버플로우가 있음을 결정하는 반면, 상기 부호결정수단이 피제수와 제수의 부호가 동일하지 않다고 결정하는 경우, 상기 사이클결정수단이 제 2사이클을 결정하는 경우, 상기 비트결수단에 의해 몫의 비트가 음수이면서 이미 구해진 몫의 최상위비트가 부수임을 결정하는 경우에 상기 제산에서의 오버플로우가 있음을 결정하는 오버플로우결정수단 및; 상기 부호결정수단, 사이클결정수단, 비트결정수탄, 오버플로우결정수단을 관리하여 연산처리의 절차를 제어하는 연산제어수단을 구비하여 구성되고; 상기 부호결정수단은 상기 피제수와 제수의 부호가 서로 동일한가의 여부를 결정하기 위한 배타적 OR게이트를 구비하여 이루어지고; 상기 사이클결정수단과 상기 신호결정수단 및 상기 비트결정수단이 상기 오버플로우결정수단에 각각 동작적으로 연결되고, 상기 연산제어수단이 상기 부호결정수단과, 사이클결정수단, 비트결정수단 및, 오버플로우결정수단에 연결된 것을 특징으로 하는 연산장치.
  13. 제12항에 있어서, 상기 사이클결정수단이 소프트웨어프로그램을 저장하기 위한 독출전용메모리(ROM)로 구성되고, 상기 연산처리가 몫을 산출하기 위한 반복 연산사이클인지 또는 연결된 카운터의 내용과 관련되는 동안 최상위비트에 따른 몫비트를 산출하기 위한 사이클인지를 결정하여 동시에 반복연산횟수를 설정하도록 된 것을 특징으로 하는 연산장치.
  14. 제12항에 있어서, 상기 부호결정수단은 몫비트가 양 또는 음인지를 결정하기 위한 소프트웨어프로그램을 저장하기 위한 ROM으로 구성되고, 상기 몫산출수단에 의해 수행되는 감산처리에서 차용이 발생되는 경우 상기 몫비트가 상기 비트결정수단에 의해 0으로 설정되는 반면 감산처리의 결과가 0으로 되는 경우라던지 상기 감산처리에서 차용이 발생되지 않는 경우 몫비트가 1로 설정되는 것을 특징으로 하는 연산장치.
  15. 제12항에 있어서, 상기 오버플로우결정수단은 제 1 내지 제 3오버플로우 결정을 수행하기 위한 소프트웨어프로그램이 저장되는 ROM을 포함하여 구성되고; 상기 제 1오버플로우결정은 상위비트측을 16비트 시프트된 제수의 절대치를 피제수의 절대치로부터 감산하고, 이 감산동작의 결과가 0'이거나 차용이 발생되지 않는 경우 제산동작의 오버플로우가 있음을 결정하여 제산동작을 정지시킴으로써 수행되고, 상기 제 2오버플로우결정은 피제수와 제수의 부호가 몫산출회로에 유지된 다음 감산동작시 연산장치에 의해 몫의 최상위비트를 산출하여, 이 산출된 몫의 최상위비트가 1이면서 피제수와 제수의 부호가 상호 동일한지를 결정하여 제산동작을 징지시킴으로써 수행되며, 상기 제 3 오버플로우결정은 몫의 최상위비트가 0이거나 상기 피제수와 제수의 부호가 상호 다르면, 몫비트에 계속되는 몫의 최상위비트를 산출하여, 이 산출된 몫비트가 1인 경우, 몫의 최상위비트가 1인 경우, 피제수와 제수의 부호가 상호 다른 경우 제산통작의 오버플로우를 결정하여 제산동작을 정지시킴으로써 수행되는 것을 특징으로 하는 연산장치.
  16. 제12항에 있어서, 상기 연산제어수단이 멀티플렉서와 다수의 레지스터로 구성되고, 연산이 실행되도록 함과 더불어 상기 오버플로우결정수단이 제산동작에서 오버플로우를 검출한 경우 연산동작의 정지를 허용하도록 상기 사이클결정수단에 의한 결정결과에 따라 상기 멀티플렉서와 레지스터가 제어되며; 상기 연산제어수단이 내부버스와 레지스터 사이의 통로 및 범용레지스터를 더 포함하고, 상기 연산제어수단 및 상기 오버플로우결정수단이 상기 사이클결정수단에 연결되며, 상기 레지스터와 레지스터 사이의 통로가 레지스터와 연산수단의 모든 요소를 연결하는 상기 내부버스 사이에 연결된 것을 특징으로 하는 연산장치.
  17. 제12항에 있어서, 상기 연산제어수단은 감산처리시 연산처리를 실행하기 위한 연산장치로부터 인가되는 연산정보를 기초로 몫을 산출해내는 형태의 몫산출회로를 더 구비하여 구성되고, 이 몫산출회로는 차용이 발생되면 몫비트를 1으로 설정하는 반면 감산처리의 결과가 0이거나 감산처리에서 차용이 발생되지 않으면 몫비트를 1로 설정하여, 감산처리 도중에 차용이 발생되지 않는 경우 소정 횟수의 감산처리를 반복하여 몫을 산출해낸 다음 산출된 몫의 소정 비트를 그 몫산출회로에 결합된 레지스터에 전송하고, 산출된 몫비트가 0 또는 1인것을 나타내는 정보를 상기 비트결정수단에 공급해주며, 상기 배타적 OR게이트를 사용하여 피제수와 제수의 부호가 동일한가의 여부를 결정해서 그 결정결과를 상기 비트결정수단에 인가하고, 상기 비트결정수단과 상기 레지스터 및 상기 연산장치에 연결된 것을 특징으로 하는 연산장치.
  18. 제12항에 있어서, 상기 연산제어수단은 감산동작시 연산장치의 연산동작과 몫산출회로의 몫 산출동작을 제어하기 위한 소프트웨이프로그램을 저장하고, 상기 오버플로우결정수단에 의한 오버플로우의 결정 및 몫산출회로에 의해 산출된 몫의 최상위비트의 상태를 나타내는 프리오버플로우 PO플래그의 결정에 응답해서 제산동작을 정지시키기 위한 명령을 공급하기 위한 독출전용메모리(ROM)를 구비하여 구성된 것을 특징으로 하는 연산장치.
KR1019890019415A 1988-12-24 1989-12-23 연산장치와 연산방법 KR0169264B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP88-326451 1988-12-24
JP63-326451 1988-12-24
JP63326451A JP2664750B2 (ja) 1988-12-24 1988-12-24 演算装置及び演算処理方法
JP1-41566 1989-02-23
JP1041566A JP2726479B2 (ja) 1989-02-23 1989-02-23 除算装置
JP89-14566 1989-02-23

Publications (2)

Publication Number Publication Date
KR900010545A KR900010545A (ko) 1990-07-07
KR0169264B1 true KR0169264B1 (ko) 1999-01-15

Family

ID=26381207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890019415A KR0169264B1 (ko) 1988-12-24 1989-12-23 연산장치와 연산방법

Country Status (2)

Country Link
US (1) US5097435A (ko)
KR (1) KR0169264B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04172526A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 浮動小数点除算器
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
GB2266607A (en) * 1992-04-27 1993-11-03 Intel Corp Preventing operations which cause overflow in an arithmetic and logic unit
EP0593073A1 (en) * 1992-10-16 1994-04-20 Matsushita Electric Industrial Co., Ltd. A processor incorporating shifters
JP2803506B2 (ja) * 1992-12-25 1998-09-24 三菱電機株式会社 除算器
US5689721A (en) * 1993-05-18 1997-11-18 Cyrix Corporation Detecting overflow conditions for negative quotients in nonrestoring two's complement division
JPH0721012A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 割り算器
US5426600A (en) * 1993-09-27 1995-06-20 Hitachi America, Ltd. Double precision division circuit and method for digital signal processor
US5493523A (en) * 1993-12-15 1996-02-20 Silicon Graphics, Inc. Mechanism and method for integer divide involving pre-alignment of the divisor relative to the dividend
US7516172B1 (en) * 1994-01-26 2009-04-07 United Microelectronics Corp. Method for finding quotient in a digital system
US5517439A (en) * 1994-02-14 1996-05-14 Matsushita Electric Industrial Co., Ltd. Arithmetic unit for executing division
US5574677A (en) * 1994-11-23 1996-11-12 Exponential Technology, Inc. Adaptive non-restoring integer divide apparatus with integrated overflow detect
US5754460A (en) * 1995-05-26 1998-05-19 National Semiconductor Corporation Method for performing signed division
US5615113A (en) * 1995-06-16 1997-03-25 Cyrix Corporation Early signaling of no-overflow for nonrestoring twos complement division
US5675528A (en) * 1995-06-16 1997-10-07 Cyrix Corporation Early detection of overflow and exceptional quotient/remainder pairs for nonrestoring twos complement division
KR0154791B1 (ko) * 1995-10-31 1998-11-16 김광호 병렬처리용 나눗셈회로
US5805489A (en) * 1996-05-07 1998-09-08 Lucent Technologies Inc. Digital microprocessor device having variable-delay division hardware
GB2341950B (en) * 1998-06-10 2003-03-12 Lsi Logic Corp Digital processing
JP2000347836A (ja) * 1999-06-04 2000-12-15 Sony Corp 高次基数除算器およびその方法
JP3886870B2 (ja) 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
NZ524378A (en) * 2003-02-24 2004-12-24 Tait Electronics Ltd Binary shift and subtract divider for phase lock loops
TW200540698A (en) * 2004-06-15 2005-12-16 Tatung Co Ltd Addressing type asynchronous divider
KR100901478B1 (ko) * 2006-12-07 2009-06-08 한국전자통신연구원 나눗셈기의 평균값 출력 장치 및 출력 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5534455B2 (ko) * 1974-05-31 1980-09-06
JPS63245518A (ja) * 1987-03-31 1988-10-12 Toshiba Corp 除算演算装置
US4872214A (en) * 1988-04-01 1989-10-03 Digital Equipment Corporation Method and apparatus for high performance division

Also Published As

Publication number Publication date
US5097435A (en) 1992-03-17
KR900010545A (ko) 1990-07-07

Similar Documents

Publication Publication Date Title
KR0169264B1 (ko) 연산장치와 연산방법
US4021655A (en) Oversized data detection hardware for data processors which store data at variable length destinations
US4849923A (en) Apparatus and method for execution of floating point operations
JP3609512B2 (ja) 演算器
US5136536A (en) Floating-point ALU with parallel paths
CA1170372A (en) Data processor having carry apparatus supporting a decimal divide operation
EP0487814A2 (en) Overflow determination for three-operand alus in a scalable compound instruction set machine
US3986015A (en) Arithmetic unit for use in a digital data processor and having an improved system for parity check bit generation and error detection
EP0529101B1 (en) Floating-point dividing circuit
EP0295788B1 (en) Apparatus and method for an extended arithmetic logic unit for expediting selected operations
EP0063361B1 (en) Correction circuit for approximate quotient
US3234367A (en) Quotient guess divider
US5903486A (en) Device for digitally carrying out a division operation
US4692891A (en) Coded decimal non-restoring divider
US5867413A (en) Fast method of floating-point multiplication and accumulation
EP0505175A2 (en) Preprocessor of division device employing high radix division system
US5506800A (en) Self-checking complementary adder unit
EP0436905A2 (en) High performance adder using carry predictions
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
JPH01302425A (ja) 浮動小数点加減算回路
US5748518A (en) Data processing divider
US4010359A (en) Circuit arrangement for adding and subtracting
JPS6051728B2 (ja) 高速演算処理方式
US20030046672A1 (en) Development system of microprocessor for application program including integer division or integer remainder operations
JP2664750B2 (ja) 演算装置及び演算処理方法

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee