KR0172308B1 - 변형 부스 곱셈기 - Google Patents
변형 부스 곱셈기 Download PDFInfo
- Publication number
- KR0172308B1 KR0172308B1 KR1019950062109A KR19950062109A KR0172308B1 KR 0172308 B1 KR0172308 B1 KR 0172308B1 KR 1019950062109 A KR1019950062109 A KR 1019950062109A KR 19950062109 A KR19950062109 A KR 19950062109A KR 0172308 B1 KR0172308 B1 KR 0172308B1
- Authority
- KR
- South Korea
- Prior art keywords
- output
- signals
- adder
- multiplier
- bit
- 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
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
-
- 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/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5306—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
- G06F7/5312—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
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
본 발명은 DSP(Digital Signal Processor)나 코프로세서(Coprocessor)에 필수적으로 사용되는 변형 부스 곱셈기(Modified Booth Multiplier)에 관한 것이다.
본 발명은 기존의 부스 곱셈기를 구성하는 2보수기와 콘디션널 쉬프터 및 제로기 대신에 비교적 간단한 구조인 2보수기와 멀티플렉서를 사용하여 설계 면적을 줄이고 처리 속도를 향상시킨다.
Description
제1도는 종래의 변형 부스 곱셈기의 구성도.
제2도는 본 발명에 의한 변형 부스 곱셈기의 구성도.
제3도는 제2도의 연산부의 세부 구성도.
* 도면의 주요부분에 대한 부호의 설명
20 : 2보수기 21,22,23,24 : 3비트 부스 인코더
31,32,33,34,61,62,63,64,65,66,67,68,69 : 멀티플렉서
41,42,43,44 : 연산부 50 : 가산부
51,52 : 가산 어레이 53 : 2입력 가산기
71,72,73,74,75,76,77,78,79 : 앤드 게이트
본 발명은 DSP(Digital Signal Processor)나 코프로세서(Coprocessor)에 필수적으로 사용되는 변형 부스 곱셈기(Modified Booth Multiplier)에 관한 것으로, 특히 멀티플렉서를 이용하는 변형 부스 곱셈기에 관한 것이다.
종래의 변형 부스 곱셈기는 제1도에 도시한 바와 같이 피승수(Y)를 2보수로 만들 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지를 결정하는 4개의 3비트 부스 인코더(1,2,3,4), 4개의 콘디션널 2보수기(Conditional 2's Complimentor)(5,7, 9,11) , 4개의 콘디션널 쉬프터(Conditional Shifter) 및 제로(Zero)기(6,8,10,12), 2개의 가산 어레이(Adder Array)(13,14), 및 가산기(15)로 구성된다.
일반적으로 빠른 처리 속도를 요구하는 곱셈기로 변형 부스 곱셈기가 사용되는데, 그 원리는 다음과 같다.
2보수로 표현된 어떤 수(X)는 일반적으로 다음 식 1로 표현할 수 있다.
위의 식 1은 다시 아래 식2와 같이 표현할 수 있다.
여기서 N은 0, 2, 4, …, m-1 이다.
만약 m-1이 2의 배수가 아니면 2의 배수가 되도록 확장시킨다.
위의 식2의 ( -xi+12 + xi+ xi-1)항을 이용하여 아래 표 1과 같은 3부스 인코더 테이블을 만들 수 있다.
피승수를 Y라 하면 X * Y는 일반적으로 다음과 같이 식3으로 표현할 수 있다.
3비트 부스 인코더(1,2,3,4)에서 피승수(Y)를 2보수시킬 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지 결정하여 뒤에 있는 콘디션널 2보수기(5,7,9,11)와 콘디션널 쉬프터 및 제로기(6,8,10,12)를 통해 피승수(Y)를 위의 표1의 사인 디지트 번호(Sign Digit Number)에 맞도록 연산 처리한다.
또한 피승수(Y)를 8비트라고 가정하면 콘디션널 쉬프터 및 제로기(6,8,10,12)로 부터 출력되는 9비트의 새로 연산된 4개의 수(Y')를 얻게된다. 이것을 두단의 가산 어레이(13,14)를 통해 2개로 줄이고 최종적으로 2입력 가산기(15)를 통해 가산하여 곱셈값을 얻게 된다.
그러나 종래의 변형 부스 곱셈기는 콘디션널 2보수기와 콘디션널 쉬프터 및 제로기를 4개 사용해야 하므로 회로가 복잡해지고 면적이 커지며 처리 속도가 느린 문제점이 있었다.
상기 문제점을 개선하기 위해 안출된 본 발명은 하나의 2보수기와 멀티플렉서로 구현하여 전체 칩 면적을 줄이고 속도를 향상시키기 위한 변형 부스 곱셈기를 제공함에 그 목적이 있다.
상기 목적을 달성하기 위해 본 발명은 승수와 '0'을 3비트로 나누어 피승수를 2보수로 만들 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지 결정하는 다수의 3비트 부스 인코더, 피승수를 2보수로 만들어 피승수 2보수를 출력하는 2보수기, 상기 다수의 3비트 부스 인코더로 부터 각각 출력되는 2보수 신호에 따라 상기 피승수와 상기 2보수기로 부터 출력되는 피승수 2보수 중에서 하나를 선택하는 다수의 제1멀티플렉서, 상기 다수의 제1멀티플렉서로 부터 각각 출력되는 신호를 상기 다수의 3비트 부스 인코더로 부터 각각 출력되는 쉬프트 신호와 제로신호에 따라 연산하여 출력하는 다수의 연산부, 및 상기 다수의 연산부로 부터 각각 출력되는 신호들을 가산하여 최종 곱셈값을 출력하는 가산부를 포함하여 구성되는 것을 특징으로 한다.
이하 첨부한 도면을 참조하여 본 발명의 일실시예를 상세히 설명한다.
제2도는 본 발명에 의한 변형 부스 곱셈기의 구성도이다.
본 발명에 의한 변형 부스 곱셈기는 제2도에 도시한 바와 같이 다수의 3비트 부스 인코더(21,22,23,34), 2보수기(20), 다수의 멀티플렉서(31,32,33,34), 다수의 연산부(41,42,43,44), 및 가산부(50)로 구성된다.
3비트 부스 인코더(21,22,23,24)는 승수(X)와 '0'을 3비트로 나누어 피승수(Y)를 2보수로 만들 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들것인지 결정하는 것으로, 승수(X)가 8비트인 경우 4개로 이루어진다.
즉, 3비트 부스 인코더(21,22,23,24)는 8비트의 승수(X)를 각각 '0, x(0), x(1)', 'x(1), x(2), x(3)', 'x(3), x(4), x(5)', 및 'x(5), x(6), x(7)'의 3비트로 4개로 나누어 피승수(Y)를 2보수로 만들 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지 결정한다.
2보수기(20)는 피승수(Y)를 2보수로 만들어 피승수 2보수(/Y)를 출력한다.
멀티플렉서(31,32,33,34)는 다수의 3비트 부스 인코더(21,22,23,24)로 부터 각각 출력되는 2보수 신호(twoc)에 따라 피승수(Y)와 2보수기(20)로 부터 출력되는 피승수 2보수(/Y) 중에서 하나를 선택하여 출력하는 것으로, 3비트 부스 인코더(21,22,23,24)와 동일하게 4개로 이루어진다.
연산부(41,42,43,44)는 다수의 멀티플렉서(31,32,33,34)로 부터 각각 출력되는 신호를 다수의 3비트 부스 인코더(21,22,23,24)로 부터 각각 출력되는 쉬프트 신호(Shift)와 제로신호(Zero)에 따라 연산하여 출력하는 것으로, 3비트 부스 인코더(21,22,23,24) 및 멀티플렉서(31,32,33,34)와 동일하게 4개로 이루어진다.
이때, 연산부(41,42,43,44)는 3비트 부스 인코더로 부터 출력되는 쉬프트 신호(Shift)에 따라 멀티플렉서로 부터 출력되는 신호와 '0'을 입력으로 하여 각각 쉬프트시키는 다수의 멀티플렉서(61,62,63,64,65,66,67,68,69), 및 3비트 부스 인코더로 부터 출력되는 제로신호(Zero)와 다수의 제2멀티플렉서(61,62,63,64,65,66,67,68,69)로 부터 각각 출력되는 신호를 논리곱하여 가산부(50)로 출력하는 다수의 앤드 게이트(71,72,73,74,75,76,77,78,79)로 구성된다.
여기서, 멀티플렉서(61,62,63,64,65,66,67,68,69)는 피승수(Y)가 8비트인 경우 9개로 이루어지고, 앤드 게이트(71,72,73,74,75,76,77,78,79)는 멀티플렉서(61,62,63,64,65,66,67,68,69)와 동일하게 9개로 이루어진다.
가산부(50)는 다수의 연산부(41,42,43,44)로 부터 각각 출력되는 신호들을 가산하여 최종 곱셈값을 출력하는 것으로, 4개의 연산부(41,42,43,44) 중에서 3개의 연산부(41,42,43)로 부터 각각 출력되는 신호들을 가산하여 2개의 신호를 출력하는 가산 어레이(Adder Array)(51), 4개의 연산부(41,42,43,44) 중에서 나머지 하나의 연산부(44)로 부터 출력되는 신호와 가산 어레이(51)로 부터 출력되는 2개의 신호들을 가산하여 2개의 신호를 출력하는 가산 어레이(52), 및 가산 어레이(52)로 부터 출력되는 2개의 신호들을 가산하여 최종 곱셈값을 출력하는 2입력 가산기(53)로 구성된다.
이와 같이 구성되는 본 발명에 의한 변형 부스 곱셈기의 동작을 승수(X)가 8비트인 경우를 예로들어 설명한다.
3비트 부스 인코더(21,22,23,24)에서는 8비트의 승수(X)를 각각 '0, x(0), x(1)', 'x(1), x(2), x(3)', 'x(3), x(4), x(5)', 및 'x(5), x(6), x(7)'의 3비트로 4개로 나눈후 피승수(Y)를 2보수로 만들 것인지 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지를 결정하기 위해 2보수신호(twoc), 쉬프트신호(Shift), 및 제로신호(Zero)를 출력한다.
또한, 2보수기(20)에서는 입력되는 피승수(Y)를 2보수로 만들어 피승수 2보수(/Y)를 출력한다.
첫번째단의 멀티플렉서(31,32,33,34)에서는 해당하는 3비트 부스 인코더(21,22,23,24)에서 출력되는 2보수 신호(twoc)에 따라 입력되는 피승수(Y)와 2보수기(20)로 부터 출력되는 피승수 2보수(/Y) 중에서 하나를 선택하여 출력한다.
첫째단의 멀티플렉서(31,32,33,34)에서 출력되는 신호값은 각 8비트로 나뉘어져 두번째단의 멀티플렉서(61,62,63,64,65,66,67,68,69)에서 '0'과 함께 해당하는 3비트 부스 인코더(21,22,23,24)로 부터 출력되는 쉬프트 신호(Shift)에 따라 각각 쉬프트되거나 또는 그대로 출력된다.
두번째단의 멀티플렉서(61,62,63,64,65,66,67,68,69)에서 선택되어 출력되는 9개의 신호값은 앤드 게이트(71,72,73,74,75,76,77,78,79)에서 해당하는 3비트 부스 인코더(21,22,23,24)로 부터 출력되는 제로 신호(Zero)와 논리곱되어 9비트로 출력된다.
이때, 연산부(41,42,43,44)에서는 멀티플렉서(61,62,63,64,65,66,67,68,69)와 앤드 게이트(71,72,73,74,75,76,77,78,79)를 통해 각각 연산 처리가 되므로 각각 9비트의 신호를 출력하게 된다. 즉, 연산부(41,42,43,44)로 부터 출력되어 가산부(50)로 입력되는 신호는 4개의 9비트 신호가 된다.
연산부(41,42,43,44)로 부터 출력되는 4개의 9비트 값중에서 세개의 9비트 값은 가산 어레이(51)에서 가산되어 2개의 9비트 값으로 출력되고, 나머지 하나의 9비트 값은 가산 어레이(51)로 부터 출력되는 2개의 9비트 값과 가산 어레이(52)에서 가산되어 2개의 9비트 값으로 출력된다.
마지막으로 가산 어레이(52)로 부터 출력되는 2개의 9비트 값은 2입력 가산기(53)에서 가산되어 최종 곱셈 값으로 출력된다.
이상에서 설명한 바와 같이 본 발명은 기존의 부스 곱셈기를 구성하는 2보수기와 콘디션널 쉬프터 및 제로기 대신에 비교적 간단한 구조인 2보수기와 멀티플렉서를 사용하여 설계 면적을 줄이고 처리 속도를 향상시키는 효과를 가져온다.
Claims (8)
- 승수(X)와 '0'을 3비트로 나누어 피승수(Y)를 2보수로 만들 것인지, 쉬프트시킬 것인지, 또는 '0'으로 만들 것인지 결정하는 다수의 3비트 부스 인코더(21,22,23,24), 피승수(Y)를 2보수로 만들어 피승수 2보수(/Y)를 출력하는 2보수기(20), 상기 다수의 3비트 부스 인코더(21,22,23,24)로 부터 각각 출력되는 2보수 신호(twoc)에 따라 상기 피승수(Y)와 상기 2보수기(20)로 부터 출력되는 피승수 2보수(/Y) 중에서 하나를 선택하는 다수의 제1멀티플렉서(31,32,33,34), 상기 다수의 제1멀티플렉서(31,32,33,34)로 부터 각각 출력되는 신호를 상기 다수의 3비트 부스 인코더(21,22,23,24)로 부터 각각 출력되는 쉬프트 신호(Shift)와 제로신호(Zero)에 따라 연산하여 출력하는 다수의 연산부(41,42,43,44), 및 상기 다수의 연산부(41,42,43,44)로 부터 각각 출력되는 신호들을 가산하여 최종 곱셈값을 출력하는 가산부(50)를 포함하여 구성되는 것을 특징으로 하는 변형 부스 곱셈기.
- 제1항에 있어서, 상기 3비트 부스 인코더는 승수(X)가 8비트인 경우 4개로 이루어지는 것을 특징으로 하는 변형 부스 곱셈기.
- 제2항에 있어서, 상기 제1멀티플렉서는 4개로 이루어지는 것을 특징으로 하는 변형 부스 곱셈기.
- 제3항에 있어서, 상기 연산부는 4개로 이루어지는 것을 특징으로 하는 변형 부스 곱셈기.
- 제4항에 있어서, 상기 연산부는 상기 3비트 부스 인코더로 부터 출력되는 쉬프트 신호(Shift)에 따라 상기 제1멀티플렉서로 부터 출력되는 신호와 '0'을 입력으로 하여 각각 쉬프트시키는 다수의 제2멀티플렉서(61,62,63,64,65,66,67,68,69), 및 상기 3비트 부스 인코더로 부터 출력되는 제로신호(Zero)와 다수의 제2멀티플렉서(61,62,63,64,65,66,67,68,69)로 부터 각각 출력되는 신호를 논리곱하여 상기 가산부(50)로 출력하는 다수의 앤드 게이트(71,72,73,74,75,76,77,78,79)를 포함하여 구성되는 것을 특징으로 하는 변형 부스 곱셈기.
- 제5항에 있어서, 상기 제2멀티플렉서는 피승수(Y)가 8비트인 경우 9개로 이루어지는 것을 특징으로 하는 변형 부스 곱셈기.
- 제6항에 있어서, 상기 앤드 게이트는 9개로 이루어지는 것을 특징으로 하는 변형 부스 곱셈기.
- 제4항에 있어서, 상기 가산부(50)는 상기 4개의 연산부(41,42,43,44)중에서 3개의 연산부(41,42,43)로 부터 각각 출력되는 신호들을 가산하여 2개의 신호를 출력하는 제1가산 어레이(Adder Array)(51), 상기 4개의 연산부(41,42,43,44) 중에서 나머지 하나의 연산부(44)로 부터 출력되는 신호와 상기 제1가산 어레이(51)로 부터 출력되는 2개의 신호들을 가산하여 2개의 신호를 출력하는 제2가산 어레이(52), 및 상기 제2가산 어레이(52)로 부터 출력되는 2개의 신호들을 가산하여 최종 곱셈값을 출력하는 2입력 가산기(53)를 포함하여 구성되는 것을 특징으로 하는 변형 부스 곱셈기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950062109A KR0172308B1 (ko) | 1995-12-28 | 1995-12-28 | 변형 부스 곱셈기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950062109A KR0172308B1 (ko) | 1995-12-28 | 1995-12-28 | 변형 부스 곱셈기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970049451A KR970049451A (ko) | 1997-07-29 |
KR0172308B1 true KR0172308B1 (ko) | 1999-03-30 |
Family
ID=19446116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950062109A KR0172308B1 (ko) | 1995-12-28 | 1995-12-28 | 변형 부스 곱셈기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0172308B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150125098A (ko) * | 2014-04-29 | 2015-11-09 | 연세대학교 산학협력단 | 부스 알고리즘 인코더 및 곱셈기 |
-
1995
- 1995-12-28 KR KR1019950062109A patent/KR0172308B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150125098A (ko) * | 2014-04-29 | 2015-11-09 | 연세대학교 산학협력단 | 부스 알고리즘 인코더 및 곱셈기 |
Also Published As
Publication number | Publication date |
---|---|
KR970049451A (ko) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0239899B1 (en) | Multiplier array circuit | |
US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
KR940002479B1 (ko) | 고속 디지탈 병렬승산기(multiplier) | |
US6609143B1 (en) | Method and apparatus for arithmetic operation | |
JPH0612229A (ja) | 乗累算回路 | |
KR960002061A (ko) | 부동소수점수를 위한 산술연산장치 | |
GB2373883A (en) | Logic circuit for performing binary addition or subtraction | |
US5862068A (en) | Arithmetic circuit for calculating a square-root of a sum of squares | |
KR100627993B1 (ko) | 3입력 분할 가산기 | |
US4823300A (en) | Performing binary multiplication using minimal path algorithm | |
KR0172308B1 (ko) | 변형 부스 곱셈기 | |
KR100290906B1 (ko) | 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법 | |
KR100513160B1 (ko) | 감소된 면적을 갖는 캐리 예측 가산기 | |
JPH0346024A (ja) | 浮動小数点演算器 | |
US5883825A (en) | Reduction of partial product arrays using pre-propagate set-up | |
KR19980032055A (ko) | 제산장치 | |
US5119325A (en) | Multiplier having a reduced number of partial product calculations | |
GB2226165A (en) | Parallel carry generation adder | |
JPH0822451A (ja) | 演算器およびマイクロプロセッサ | |
JP2606326B2 (ja) | 乗算器 | |
US6263357B1 (en) | Parallel multiplier | |
RU2753184C1 (ru) | Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде | |
JP3077880B2 (ja) | スティッキービット検出回路 | |
KR0136486B1 (ko) | 변형 부스 곱셈기 | |
US6546410B1 (en) | High-speed hexadecimal adding method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050923 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |