KR100403194B1 - 승산장치 - Google Patents
승산장치 Download PDFInfo
- Publication number
- KR100403194B1 KR100403194B1 KR10-2000-0034208A KR20000034208A KR100403194B1 KR 100403194 B1 KR100403194 B1 KR 100403194B1 KR 20000034208 A KR20000034208 A KR 20000034208A KR 100403194 B1 KR100403194 B1 KR 100403194B1
- Authority
- KR
- South Korea
- Prior art keywords
- multiplier
- bits
- multiplication
- bit
- significant
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
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)
Abstract
본 발명의 승산 장치는 피승수와 승수에서 최상위 부호 비트 및 최하위 비트를 제외하고 차상위 비트부터 순서대로 각각의 비트들에 대해 부호 비트와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트를 출력하는 제1판단부와 제2판단부, 제1판단부와 제2판단부 각각에서 출력되는 차상위의 활성화된 부호 일치 비트로부터 연속하여 활성화된 부호 일치 비트들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트들의 수에 1을 가산한 제1리딩부호수 및 제2리딩부호수를 출력하는 제1리딩부호 검출부와 제2리딩부호 검출부, 제1리딩부호수와 제2리딩부호수를 합산하여 합산결과를 출력하는 합산부, 피승수와 승수를 수신하여 피승수와 승수를 승산하여 승산 결과 데이터를 출력하는 곱셈부 및 피승수의 비트들의 수와 승수의 비트들의 수를 합한 피승수/승수 총비트수와 비교하여 합산결과가 피승수/승수 총비트수의 반 보다 작으면 활성화된 오버플로우 신호를 출력하고, 리딩부호수 합산결과가 피승수/승수 총비트수의 반과 동일하고 피승수의 부호 비트, 승수의 부호 비트 및 승산 결과 데이터의 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 활성화된 오버플로우 신호를 출력하고, 리딩부호수 합산결과가 피승수/승수 총비트수의 반과 동일하고 승산 결과 데이터의 최상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호를 출력하는 승산 제어부로 구성된다.
본 발명은 피승수 및 승수의 차상위 비트로부터 연속하여 부호 비트와 동일한 논리 값을 갖는 비트들의 수를 검출하여 오버플로우 발생 유무를 미리 판단함으로써 승산기 회로를 간단하게 구성할 수 있고, 승산시 승산 속도를 증가시킬 수 있고, 피승수와 승수에 대한 승산시 승산 결과의 유효 자리수를 미리 판단하여 승산 실행 시간을 예측하여 중앙처리장치의 성능을 향상시킬 수 있다.
Description
본 발명은 승산 장치에 관한 것으로, 특히 피승수 및 승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 승산결과 오버플로우 여부를 판단하여 승산기 구조를 간략화하고 승산 속도를 증가시키는 승산 장치에 관한 것이다.
일반적으로 중앙처리장치에는 데이터 연산을 위해 승산 장치가 필수적이며, 승산 장치는 고속이고, 저 전력인 것이 요구된다.
도 1은 종래의 일반적인 승산 장치의 구성도 이다.
도 1의 종래의 승산 장치는 피승수를 덧셈 연산 수행 후 좌측으로 한 비트씩 쉬프트 시키는 피승수 레지스터(1), 승수를 덧셈 연산 수행 후 우측으로 한 비트씩 쉬프트 시키는 승수 레지스터(2), 덧셈 결과를 저장하는 덧셈 결과 레지스터(3) 및승수 레지스터(2)의 최하위 비트(Least Segment Bit:LSB)가 하이 논리 값을 가지면 피승수 레지스터(1)에 저장된 데이터와 덧셈 결과 레지스터(3)에 저장된 데이터와 덧셈 연산을 수행하는 연산기(4)로 구성된다.
도 1의 종래의 승산 장치는 피승수와 승수의 승산 결과를 얻기 위해 승수의 비트 수만큼 연산기(4)에 의해 덧셈 연산을 하여야 하므로 승산 결과를 얻을 때까지 승수의 비트 수만큼의 클럭이 필요하며, 승산 결과 오버플로우(Over Flow)의 발생 유무는 피승수와 승수의 승산 결과가 저장된 덧셈 결과 레지스터(3)의 데이터에 의해 알 수 있다.
따라서 도 1의 종래의 승산 장치는 저속의 처리 속도를 가지고, 이로 인해 승산 장치의 성능이 저하되는 문제점을 가지고 있다.
도 2는 고속 처리가 가능한 종래의 배열 승산 장치의 구성도 이다.
도 2의 종래의 배열 승산 장치는 피승수의 각 비트들과 승수의 각 비트들을 부분 곱하는 앤드 연산부(5) 및 앤드 연산부(5)의 부분 곱한 결과를 자리수에 맞추어 덧셈을 수행하는 가산기로 구성된 덧셈부(6)로 구성된다.
예를 들어 피승수 A와 승수 B가 모두 8 비트이고 승산결과 C가 8 비트인 경우에, 피승수 A는 a7, a6, a5, a4, a3, a2, a1, a0로 승수는 b7, b6, b5, b4, b3, b2, b1, b0로 표기하고 앤드 연산부(5)에서 구한 부분 곱 Pij = ai AND bj라고 정의하면 덧셈부(6)는 다음의 연산을 수행한다.
P70 P60 P50 P40 P30 P20 P10 P00
P71 P61 P51 P41 P31 P21 P11 P01
P72 P62 P52 P42 P32 P22 P12 P02
P73 P63 P53 P43 P33 P23 P13 P03
P74 P64 P54 P44 P34 P24 P14 P04
P75 P65 P55 P45 P35 P25 P15 P05
P76 P66 P56 P46 P36 P26 P16 P06
+ P77 P67 P57 P47 P37 P27 P17 P07
---------------------------------------------------------
C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0
상기 예에서 원하는 곱셈 결과는 c7, c6, c5, c4, c3, c2, c1, c0 뿐이지만 오버플로우 검출을 위해서 c15, c14, c13, c12, c11, c10, c9, c8 의 불필요한 연산이 필요하며, 이러한 불필요한 연산을 수행하기 위하여 앤드 연산부(5) 및 덧셈부(6) 회로가 필요해지고, 불필요한 덧셈 수행을 위한 캐리 발생에 따른 캐리 전파 지연(Carry Propagation Delay) 시간이 필요하고, 이로 인해 동작 속도도 저하되는 문제점을 가지고 있다.
또한 도 2의 종래의 배열 승산 장치는 피승수와 승수의 승산시 승산 결과를 얻기 위한 승산 처리 시간을 예측할 수 없으므로 중앙처리장치의 승산 결과를 사용하는 명령어를 포함하는 프로그램 작성시 승산 처리 시간이 가장 긴 것을 고려하여야 하므로 중앙처리장치의 성능을 저하시킬 수 있는 문제점을 가지고 있다.
본 발명의 목적은 피승수 및 승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 승산결과 오버플로우 유무를 판단하여 승산 속도를 증가시키는 승산 장치를 제공하는 데 있다.
본 발명의 다른 목적은 원하는 곱셈 결과만을 연산하고, 오버플로우는 곱셈결과에 관계없이 별도의 간단한 장치에 의하여 검출함으로써, 승산 장치의 회로를 단순하게 구성할 수 있고, 오버플로우 연산을 위한 캐리 발생에 따른 캐리 전파 지연(Carry Propagation Delay) 시간이 필요 없으므로, 동작 속도를 증가시킬 수 있는 승산 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 피승수 및 승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 승산 결과 데이터의 유효 자릿수를 미리 판단하여 승산 실행 시간을 예측하고, 예측된 실행 시간이 중앙처리장치의 하나의 명령어를 수행하는 시간 보다 길 경우 승산 결과 데이터를 이용하는 명령어를 수행하기 전에 다른 명령어를 수행시킴으로써 중앙처리장치의 성능을 향상시킬 수 승산 장치를 제공하는 데 있다.
도 1은 종래의 승산 장치의 구성도,
도 2는 종래의 배열 승산 장치의 구성도,
도 3은 본 발명의 승산 장치의 제1실시례의 구성도 이다.
상기의 목적을 달성하기 위하여 본 발명의 승산 장치는 피승수의 최상위 부호 비트 및 최하위 비트를 제외한 차상위 비트부터 순서대로 각각의 비트들에 대해 최상위 부호 비트와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트를 출력하는 제1판단부; 승수의 최상위 부호 비트 및 최하위 비트를 제외한 차상위 비트부터 순서대로 각각의 비트들에 대해 최상위 부호 비트와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트를 출력하는 제2판단부; 제1판단부에서 출력되는 최상위의 활성화된 부호 일치 비트로부터 연속하여 활성화된 부호 일치 비트들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트들의 수에 1을 가산한 제1리딩부호수를 출력하는 제1리딩부호 검출부; 제2판단부에서 출력되는 최상위의 활성화된 부호 일치 비트로부터 연속하여 활성화된 부호 일치 비트들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트들의 수에 1을 가산한 제2리딩부호수를 출력하는 제2리딩부호 검출부; 제1리딩부호 검출부의 출력인 제1리딩부호수와 제2리딩부호 검출부의 출력인 제2리딩부호수를 합산하여 합산결과를 출력하는 합산부; 피승수와 승수를 수신하여 피승수와 승수를 승산하여 승산 결과 데이터를 출력하는 곱셈부; 및 합산부의 출력인 합산결과와 피승수의 비트들의 수와 승수의 비트들의 수를 합한 피승수/승수 총비트수와 비교하여 합산결과가 피승수/승수 총비트수의 반 보다 작거나 같은지를 판단하여 합산결과가 피승수/승수 총비트수의 반 보다 작으면 피승수와 승수의 승산 결과 데이터가 오버플로우임을 나타내는 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 피승수의 최상위 부호 비트, 승수의 최상위 부호 비트 및 승산 결과 데이터의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 승산 결과 데이터의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호를 출력하는 승산 제어부를 구비한 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여 본 발명의 승산 장치는 피승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 최상위 부호 비트와 일치하는 비트들의 총 개수를 나타내는 제1리딩부호수를 출력하는 제1리딩부호 검출부; 승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 최상위 부호 비트와 일치하는 비트들의 총 개수를 나타내는 제2리딩부호수를 출력하는 제2리딩부호 검출부; 제1리딩부호수 및 제2리딩부호수를 합산하여 합산결과를 출력하는 합산부; 피승수와 승수를 수신하여 피승수와 승수를 승산하여 승산 결과 데이터를 출력하는 곱셈부; 및 합산결과와 피승수의 비트 수와 승수의 비트 수를 합한 피승수/승수 총비트수와 비교하여 합산결과가 피승수/승수 총비트수의 반 보다 작거나 같은지를 판단하여 합산결과가 피승수/승수 총비트수의 반 보다 작으면 피승수와 승수의 승산 결과 데이터가 오버플로우임을 나타내는 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 피승수의 최상위 부호 비트, 승수의 최상위 부호 비트 및 승산 결과 데이터의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 승산 결과 데이터의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호를 출력하는 승산 제어부를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 승산 장치를 상세히 설명하고자 한다.
도 3은 본 발명의 승산 장치의 실시례의 구성도 이다.
도 3의 실시례인 본 발명의 승산 장치는 제1판단부(10), 제2판단부(20), 제1리딩부호 검출부(30), 제2리딩부호 검출부(40), 합산부(50), 곱셈부(60) 및 승산 제어부(70)로 구성된다.
제1판단부(10)는 피승수(A)의 최상위 부호 비트(an-1) 및 최하위 비트(a0)를 제외한 차상위 비트(an-2)로부터 순서대로 각각의 비트들에 대해 최상위 부호 비트(an-1)와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트(SAi)를 출력한다. 제2판단부(20)는 승수의 최상위 부호 비트(bm-1) 및 최하위 비트(a0)를 제외한 차상위 비트(bm-2) 부터 순서대로 각각의 비트들에 대해 최상위 부호 비트(bm-1)와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트(SBi)를 출력한다. 제1리딩부호 검출부(30)는 제1판단부(10)에서 출력되는 최상위의 활성화된 부호 일치 비트(SAn-2)로부터 연속하여 활성화된 부호 일치 비트(SAi)들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트(SAi)들의 수에 1을 가산한 제1리딩부호수(Z1)를 출력한다. 제2리딩부호 검출부(40)는 제2판단부(20)에서 출력되는 최상위의 활성화된 부호 일치 비트(SBm-2)로부터 연속하여 활성화된 부호 일치 비트(SBi)들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트(SBi)들의 수에 1을 가산한 제2리딩부호수(Z2)를 출력한다. 합산부(50)는 제1리딩부호수(Z1)와 제2리딩부호수(Z2)를 합산하여 합산결과(Z1+Z2)를 출력한다. 곱셈부(60)는 피승수(A)와 승수(B)를 수신하여 피승수(A)와 승수(B)를 승산하여 승산 결과 데이터(MD)를 출력한다. 승산 제어부(70)는 합산결과(Z1+Z2)와 피승수(A)의 비트(ai)들의 수(N)와 승수(B)의 비트(bi)들의 수(M)를 합한 피승수/승수 총비트수(N+M)와 비교하여 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반 보다 작거나 같은지를 판단하여 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반 보다 작으면 피승수(A)와 승수(B)의 승산 결과 데이터가 오버플로우(Over Flow)임을 나타내는 활성화된 오버플로우 신호(OF)를 출력하고, 합산결과(Z1+Z2)가 피승수/승수 총비트수의 반(N+M)과 동일하고 피승수(B)의 최상위 부호 비트(an-1), 승수의 최상위 부호 비트(bn-1) 및 승산 결과 데이터(MD)의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 활성화된 오버플로우 신호(OF)를 출력하고, 합산결과(Z1+Z2)가 피승수/승수 총비트수의 반(N+M)과 동일하고 승산 결과 데이터(MD)의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호(OF)를 출력한다.
승산 장치는 합산부(50)의 합산결과(Z1+Z2)를 수신하여 합산결과(Z1+Z2)에 따라 피승수(A)와 승수(B)의 승산시 승산 결과 데이터(MD)의 유효자리수를 나타내는 유효자리 판단신호(EF)를 출력하는 유효자리 판단부(80)를 더 구비하여 유효자리 판단신호(EF)에 의해 피승수(A)와 승수(B)의 승산시 곱셈부(60)의 출력인 승산결과 데이터(MD) 중 유효자리 이외의 비트들에 대해서는 로우 논리 값을 갖도록 마스크 처리한다.
승산 장치는 합산부(50)의 합산결과(Z1+Z2)를 수신하여 합산결과(Z1+Z2)에 따라 피승수(A)와 승수(B)의 승산 처리 시간(TIME)을 판단하는 승산처리시간 판단부(90)를 더 구비할 수 있다.
제1판단부(10) 및 제2판단부(20)는 최상위 부호 비트(an-1,bm-1) 및 최하위 비트(a0,b0)를 제외한 차상위 비트(an-2, bm-2) 부터 순서대로 각각의 비트(ai,bi)들과 배타 논리합 하는 다수의 배타 논리합부(XOR)들로 구성된다.
상기의 구성에 따른 본 발명인 승산 장치의 동작은 다음과 같다.
도 3의 실시례인 본 발명의 승산 장치는 피승수(A) 및 승수(B)가 양수 또는 음수에 관계없이 피승수(A)와 승수(B)를 승산할 수 있는 승산 장치를 도시한 것이다.
피승수(A)의 총비트수는 N비트이고, 승수(B)의 총비트수는 M비트이고, 피승수(A) 및 승수(B)의 최상위 비트인 부호 비트는 각각 an-1, bm-1 이라 하면 실시례인 본 발명의 승산 장치의 동작은 다음과 같다.
제1판단부(10) 및 제2판단부(20)는 각각 다수의 배타 논리합부(Exclusive OR Gate:XOR)로 구성되어 제1판단부(10)는 피승수(A)의 최상위 부호 비트(an-1)의 하위 비트(an-2)로부터 순서대로 차하위 비트(a1)까지 각각의 비트들(ai)과 배타 논리합 하여 최상위 부호 비트(an-1)의 2진 논리 값과 각각의 비트들(ai)의 2진 논리 값이 동일하면 로우 논리 값을 갖는, 즉 활성화된 부호 일치 비트(SAi)를 출력하고, 최상위 부호 비트(an-1)의 2진 논리 값과 각각의 비트들(ai)의 2진 논리 값이 같지 않으면 하이 논리 값을 갖는, 즉 비활성화된 부호 일치 비트(SAi)를 출력한다. 즉, 제1판단부(10)는 피승수(A)의 각각의 비트들(ai)이 최상위 부호 비트(an-1)가 동일한 논리 값을 갖는지를 판단하여 동일한 논리 값을 가지면 로우 논리 값을 갖도록 하는 부호 일치 비트(SAi)를 출력한다.
제2판단부(20)는 제1판단부(10)의 동작과 동일하다. 제1판단부(10) 및 제2판단부(20)는 다수의 배타 논리합부(XOR)들로 구성되나 배타 부정 논리합(Exclusive NOR Gate:XNOR)으로 구성할 수도 있으며, 배타 부정 논리합으로 구성되면 활성화된 부호 일치 비트(SAi)는 하이 논리 값을 가진다.
제1리딩부호 검출부(30)는 제1판단부(10)에서 출력되는 최상위의 활성화된 부호 일치 비트(SAn-2)로부터 연속하여 로우 논리 값을 갖는 활성화된 부호 일치 비트(SAi)들의 수를 검출한다. 검출된 연속하여 활성화된 부호 일치 비트(SAi)들의 수에 1을 가산한 제1리딩부호수(Z1)를 출력한다.
제2리딩부호 검출부(40)는 상기와 동일하게 제2판단부(20)에서 출력되는 최상위의 활성화된 부호 일치 비트(SBm-2)로부터 연속하여 로우 논리 값을 갖는 활성화된 부호 일치 비트(SBi)들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트(SBi)들의 수에 1을 가산한 제2리딩부호수(Z2)를 출력한다.
합산부(50)는 제1리딩부호수(Z1)와 제2리딩부호수(Z2)를 합산하여 합산결과(Z1+Z2)를 출력한다. 곱셈부(60)는 피승수(A)와 승수(B)를 수신하여 피승수(A)와 승수(B)를 승산하여 승산 결과 데이터(MD)를 출력한다.
승산 제어부(70)는 합산결과(Z1+Z2)와 피승수(A)의 비트(ai)들의 수(N)와 승수(B)의 비트(bi)들의 수(M)를 합한 피승수/승수 총비트수(N+M)와 비교한다. 비교결과 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반 보다 작거나 같은지를 판단한다. 만약 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반 보다 작으면 곱셈부(60)의 승산 결과 데이터(MD)는 항상 오버플로우가 발생되므로 승산 제어부(70)는 활성화된 오버플로우 신호(OF)를 출력한다. 만약 합산결과(Z1+Z2)가 피승수/승수 총비트수의 반(N+M)과 동일하고 피승수(A)의 최상위 부호 비트(an-1), 승수의 최상위 부호 비트(bn-1) 및 승산 결과 데이터(MD)의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 곱셈부(60)의 승산 결과 데이터(MD)는 항상 오버플로우가 발생되므로 승산 제어부(70)는 활성화된 오버플로우 신호(OF)를 출력한다. 또한 합산결과(Z1+Z2)가 피승수/승수 총비트수의 반(N+M)과 동일하고 승산 결과 데이터(MD)의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호(OF)를 출력한다.
예를 들어 피승수(A)는 4비트로 0011 이고, 승수(B)는 4비트로 0110 이면 제1판단부(10)의 출력인 부호 일치 비트(SAi)는 011 이고, 제2판단부(20)의 출력인 부호 일치 비트(SBi)는 110 이다. 따라서 부호 일치 비트(SAi)들인 011에서 피승수(A)의 활성화된 부호 일치 비트(SAi)는 0 이므로 제1리딩부호 검출부(30)의 출력인 제1리딩부호수(Z1)는 1+1=2 이다. 상기와 같은 방법에 의해 제2리딩부호 검출부(40)의 출력인 제2리딩부호수(Z2)는 0+1=1 이다. 합산부(50)의 합산결과(Z1+Z2)는 3 이고, 승산 제어부(70)는 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반인 4보다 작으므로 곱셈부(60)의 승산결과인 승산 결과 데이터(MD)는 항상 오버플로우가 발생되므로 활성화된 오버플로우 신호(OF)를 출력한다.
만약 피승수(A)는 0011 이고, 승수(B)는 4비트로 0010 이면 상기의 예에서알 수 있듯이 제1리딩부호수(Z1)는 2 이고, 승수(B)의 부호 일치 비트(SBi)는 010 이고, 제2리딩부호수(Z2)는 2 이다. 합산결과(Z1+Z2)는 4 이고, 피승수/승수 총비트수(N+M)의 반도 4로 합산결과(Z1+Z2)가 피승수/승수 총비트수(N+M)의 반과 동일하다. 따라서 피승수(A)의 최상위 부호 비트(an-1), 승수의 최상위 부호 비트(bn-1) 및 승산 결과 데이터(MD)의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수인지 또는 승산 결과 데이터(MD)의 최상위 두비트들의 논리 값이 모두 로우 논리 값을 갖는지를 판단하여야 한다. 상기의 예에서 승산 결과 데이터(MD)는 0110 이므로 피승수(A)의 최상위 부호 비트(an-1), 승수의 최상위 부호 비트(bn-1) 및 승산 결과 데이터(MD)의 최상위 부호 비트들의 2진 논리 값을 합한 결과는 짝수이고, 승산 결과 데이터(MD)의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 갖지 않으므로 상기의 예의 경우 승산 결과 데이터(MD)는 오버플로우가 발생되지 않으므로 승산 제어부(70)는 비활성화된 오버플로우 신호(OF)를 출력한다.
승산 장치는 합산부(50)의 합산결과(Z1+Z2)를 수신하여 합산결과(Z1+Z2)에 따라 피승수(A)와 승수(B)의 승산시 승산 결과 데이터(MD)의 유효자리수를 나타내는 유효자리 판단신호(EF)를 출력하는 유효자리 판단부(80)에 의해 피승수(A)와 승수(B)의 승산시 곱셈부(60)의 출력인 승산결과 데이터(MD) 중 유효자리 이외의 비트들에 대해서는 로우 논리 값을 갖도록 마스크 처리하여 승산 결과 데이터(MD)들 중 유효자리 이외의 비트들을 미리 로우 논리 값을 갖도록 하여 캐리에 의한 전파 지연 시간에 의한 지연 시간을 줄일 수 있다.
예를 들어 피승수 A와 승수 B가 모두 8 비트이고 승산결과 C가 8 비트인 경우에, 피승수 A는 a7, a6, a5, a4, a3, a2, a1, a0로 승수는 b7, b6, b5, b4, b3, b2, b1, b0로 표기하고 피승수와 승수의 부분 곱을 Pij = ai AND bj라고 정의하고, 오버플로우를 검출하는 제1리딩부호 검출부(30), 제2리딩부호 검출부(40), 합산부(50) 및 승산 제어부(70)에 의해 본 발명의 승산 장치는 다음의 연산만을 수행한다.
P70 P60 P50 P40 P30 P20 P10 P00
P61 P51 P41 P31 P21 P11 P01
P52 P42 P32 P22 P12 P02
P43 P33 P23 P13 P03
P34 P24 P14 P04
P25 P15 P05
P16 P06
+ P07
--------------------------------
C7 C6 C5 C4 C3 C2 C1 C0
상기 예에서 본 발명의 승산 장치는 원하는 곱셈 결과인 c7, c6, c5, c4, c3, c2, c1, c0 만을 연산하고, 오버플로우는 제1리딩부호 검출부(30), 제2리딩부호 검출부(40), 합산부(50) 및 승산 제어부(70)에 의하여 검출하므로, 본 발명의 승산 장치의 회로는 단순하게 구성되어 지고, 오버플로우 연산을 위한 캐리 발생에 따른 캐리 전파 지연 시간이 필요 없어지므로, 동작 속도도 증가될 수 있다.
예를 들어 피승수(A) 및 승수(B)의 비트수가 모두 32비트이고, 제1리딩부호수(Z1) 및 제2리딩부호수(Z2)가 각각 Z1, Z2 이면 Z1+Z2가 32 보다 작으면 피승수(A)와 승수(B)의 승산 결과 데이터는 반드시 231 보다 크므로 32 비트의 레지스터에 저장할 수 없어 오버플로우가 발생되므로 활성화된 오버플로우 신호(OF)를 출력한다. 만약 Z1+Z2가 32 보다 크거나 같고, 상기에서 설명한 바와 같이 승산 결과 데이터(MD)가 오버플로우가 발생되지 않는 경우 피승수(A)의 최대값은 2(32-M)- 1 이고, 승수(B)의 최대값은 2(32-N)- 1 이므로 피승수(A)와 승수(B)의 승산 결과 데이터의 최대값은 264-(M+N) 이다. 따라서 피승수(A)와 승수(B)의 승산시 합산부(50)의 출력인 합산결과(Z1+Z2)에 의해 피승수(A)와 승수(B)의 승산시 승산 결과 데이터(MD)의 유효자리수를 알 수 있다. 따라서 유효자리 판단부(80)는 합산결과(Z1+Z2)에 따라 미리 승산 결과 데이터(MD)의 유효자리수를 판단하여 승산 결과 데이터(MD)의 유효자리수를 나타내는 유효자리 판단신호(EF)를 출력하고, 곱셈부(60)는 유효자리 판단신호(EF)에 따라 승산결과 데이터(MD) 중 유효자리 이외의 비트들에 대해서는 로우 논리 값을 갖도록 마스크 처리한다.
또한 승산 장치는 합산부(50)로부터 출력되는 합산결과(Z1+Z2)에 따라 피승수(A)와 승수(B)의 승산 처리 시간(TIME)을 판단하는 승산처리시간 판단부(90)를 더 구비하여 피승수(A) 및 승수(B)에 따라 승산 처리 시간(TIME)을 미리 예측하여 중앙처리장치의 동작을 수행하기 위한 프로그램 작성시 승산 처리 시간(TIME)에 따라 승산 결과 데이터를 이용하는 명령어를 승산 명령어 다음에 위치시키거나 승산 처리 시간(TIME)이 경과한 후에 승산 결과 데이터를 이용하는 명령어를 위치시켜데이터 의존(Data Dependency)의 발생을 방지할 수 있고, 중앙처리장치의 성능을 향상시킬 수 있다.
본 발명의 승산 장치는 피승수 및 승수의 최상위 부호 비트와 일치하는 차상위 비트로부터 연속한 비트들의 수를 검출하여 오버플로우 발생 유무를 미리 판단함으로써 승산기의 구조를 간략화 시킬 수 있고, 승산시 승산 속도를 증가시킬 수 있고, 피승수와 승수에 대한 승산시 승산 결과 데이터의 유효자리수를 미리 판단하여 승산 실행 시간을 예측하여 중앙처리장치의 성능을 향상시킬 수 있다.
Claims (4)
- 피승수와 승수를 승산하는 승산 장치에 있어서,상기의 피승수의 최상위 부호 비트 및 최하위 비트를 제외한 차상위 비트부터 순서대로 각각의 비트들에 대해 최상위 부호 비트와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트를 출력하는 제1판단수단;상기의 승수의 최상위 부호 비트 및 최하위 비트를 제외한 차상위 비트부터 순서대로 각각의 비트들에 대해 최상위 부호 비트와 동일한지를 판단하여 동일하면 활성화된 부호 일치 비트를 출력하는 제2판단수단;상기의 제1판단수단에서 출력되는 최상위의 활성화된 부호 일치 비트로부터 연속하여 활성화된 부호 일치 비트들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트들의 수에 1을 가산한 제1리딩부호수를 출력하는 제1리딩부호 검출수단;상기의 제2판단수단에서 출력되는 최상위의 활성화된 부호 일치 비트로부터 연속하여 활성화된 부호 일치 비트들의 수를 검출하여 검출된 연속하여 활성화된 부호 일치 비트들의 수에 1을 가산한 제2리딩부호수를 출력하는 제2리딩부호 검출수단;상기의 제1리딩부호 검출수단의 출력인 제1리딩부호수와 상기의 제2리딩부호 검출수단의 출력인 제2리딩부호수를 합산하여 합산결과를 출력하는 합산 수단;상기의 피승수와 승수를 수신하여 피승수와 승수를 승산하여 승산 결과 데이터를 출력하는 곱셈 수단; 및상기의 합산 수단의 출력인 합산결과와 상기의 피승수의 비트들의 수와 상기의 승수의 비트들의 수를 합한 피승수/승수 총비트수와 비교하여 합산결과가 피승수/승수 총비트수의 반 보다 작거나 같은지를 판단하여 합산결과가 피승수/승수 총비트수의 반 보다 작으면 상기의 피승수와 승수의 승산 결과 데이터가 오버플로우임을 나타내는 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 상기의 피승수의 최상위 부호 비트, 상기의 승수의 최상위 부호 비트 및 상기의 승산 결과 데이터의 최상위 부호 비트들의 2진 논리 값을 합한 결과가 홀수이면 활성화된 오버플로우 신호를 출력하고, 합산결과가 피승수/승수 총비트수의 반과 동일하고 상기의 승산 결과 데이터의 차상위 두비트들의 논리 값이 모두 로우 논리 값을 가지면 활성화된 오버플로우 신호를 출력하는 승산 제어 수단을 구비한 것을 특징으로 하는 승산 장치.
- 제1항에 있어서, 상기의 승산 장치는 상기의 합산 수단의 합산결과를 수신하여 합산결과에 따라 상기의 피승수와 승수의 승산시 승산 결과 데이터의 유효자리수를 나타내는 유효자리 판단신호를 출력하는 유효자리 판단수단을 더 구비하여 유효자리 판단신호에 의해 상기의 피승수와 승수의 승산시 상기의 곱셈 수단의 출력인 승산결과 데이터 중 유효자리 이외의 비트들에 대해서는 로우 논리 값을 갖도록 마스크 처리하는 것을 특징으로 하는 승산 장치.
- 제1항에 있어서, 상기의 승산 장치는 상기의 합산 수단의 합산결과를 수신하여 합산결과에 따라 상기의 피승수와 승수의 승산 처리 시간을 판단하는 승산처리시간 판단수단을 더 구비한 것을 특징으로 하는 승산 장치.
- 제1항에 있어서, 상기의 제1판단수단 및 제2판단수단은 최상위 부호 비트 및 최하위 비트를 제외한 차상위 비트부터 순서대로 각각의 비트들과 부호 비트를 배타 논리합 하는 다수의 배타 논리합 수단들로 구성된 것을 특징으로 하는 승산 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0034208A KR100403194B1 (ko) | 2000-06-21 | 2000-06-21 | 승산장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0034208A KR100403194B1 (ko) | 2000-06-21 | 2000-06-21 | 승산장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020000917A KR20020000917A (ko) | 2002-01-09 |
KR100403194B1 true KR100403194B1 (ko) | 2003-10-23 |
Family
ID=19673004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0034208A KR100403194B1 (ko) | 2000-06-21 | 2000-06-21 | 승산장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100403194B1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107451A (en) * | 1990-01-30 | 1992-04-21 | The Boeing Company | Method and apparatus for pipelined detection of overflow in residue arithmetic multiplication |
US5539685A (en) * | 1992-08-18 | 1996-07-23 | Kabushiki Kaisha Toshiba | Multiplier device with overflow detection function |
JPH09245019A (ja) * | 1996-03-11 | 1997-09-19 | Oki Electric Ind Co Ltd | 積和演算回路 |
KR0135487B1 (ko) * | 1993-06-01 | 1998-06-15 | 세끼모또 타다히로 | 고속 소형 디지탈 곱셈기 |
JPH11126157A (ja) * | 1997-10-24 | 1999-05-11 | Matsushita Electric Ind Co Ltd | 乗算方法および乗算回路 |
KR0176883B1 (ko) * | 1996-01-09 | 1999-05-15 | 구자홍 | 복소수 승산기 |
-
2000
- 2000-06-21 KR KR10-2000-0034208A patent/KR100403194B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107451A (en) * | 1990-01-30 | 1992-04-21 | The Boeing Company | Method and apparatus for pipelined detection of overflow in residue arithmetic multiplication |
US5539685A (en) * | 1992-08-18 | 1996-07-23 | Kabushiki Kaisha Toshiba | Multiplier device with overflow detection function |
KR0135487B1 (ko) * | 1993-06-01 | 1998-06-15 | 세끼모또 타다히로 | 고속 소형 디지탈 곱셈기 |
KR0176883B1 (ko) * | 1996-01-09 | 1999-05-15 | 구자홍 | 복소수 승산기 |
JPH09245019A (ja) * | 1996-03-11 | 1997-09-19 | Oki Electric Ind Co Ltd | 積和演算回路 |
JPH11126157A (ja) * | 1997-10-24 | 1999-05-11 | Matsushita Electric Ind Co Ltd | 乗算方法および乗算回路 |
Also Published As
Publication number | Publication date |
---|---|
KR20020000917A (ko) | 2002-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0377837B1 (en) | Floating point unit having simultaneous multiply and add | |
EP0483864B1 (en) | Hardware arrangement for floating-point addition and subtraction | |
EP0657804B1 (en) | Overflow control for arithmetic operations | |
US5530663A (en) | Floating point unit for calculating a compound instruction A+B×C in two cycles | |
JPH02294819A (ja) | 浮動小数点数演算処理装置 | |
EP0847551A1 (en) | A set of instructions for operating on packed data | |
US8370415B2 (en) | Overflow detection and clamping with parallel operand processing for fixed-point multipliers | |
US4941119A (en) | Method and apparatus for predicting an overflow in an integer multiply | |
US6499044B1 (en) | Leading zero/one anticipator for floating point | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
KR100403194B1 (ko) | 승산장치 | |
EP0436905A2 (en) | High performance adder using carry predictions | |
US5117384A (en) | Method and apparatus for exponent adder | |
JPH02294821A (ja) | 浮動小数点数演算処理装置 | |
US5113364A (en) | Concurrent sticky-bit detection and multiplication in a multiplier circuit | |
US5940312A (en) | Signed binary logarithm system | |
US5430669A (en) | Apparatus for finding the square root of a number | |
EP1282034A2 (en) | Elimination of rounding step in the short path of a floating point adder | |
EP0520298A2 (en) | Arithmetic circuit | |
EP0328779A2 (en) | Apparatus for branch prediction for computer instructions | |
US7051062B2 (en) | Apparatus and method for adding multiple-bit binary-strings | |
GB2337621A (en) | Determining a scaling factor | |
US5801978A (en) | Overflow detection for integer-multiply instruction | |
EP0438962A2 (en) | Method and apparatus for exponent adder | |
SU1348825A1 (ru) | Устройство дл суммировани чисел с плавающей зап той |
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: 20121011 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20131014 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20141006 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20151005 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |