KR19980026053A - 곱셈기의 설계 방법 - Google Patents

곱셈기의 설계 방법 Download PDF

Info

Publication number
KR19980026053A
KR19980026053A KR1019960044378A KR19960044378A KR19980026053A KR 19980026053 A KR19980026053 A KR 19980026053A KR 1019960044378 A KR1019960044378 A KR 1019960044378A KR 19960044378 A KR19960044378 A KR 19960044378A KR 19980026053 A KR19980026053 A KR 19980026053A
Authority
KR
South Korea
Prior art keywords
multiplier
algorithm
design
bits
present
Prior art date
Application number
KR1019960044378A
Other languages
English (en)
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 KR1019960044378A priority Critical patent/KR19980026053A/ko
Publication of KR19980026053A publication Critical patent/KR19980026053A/ko

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

본 발명은 곱셈기 설계 방식에 관한 것이다. 본 발명은 곱셈기 설계 방법에 있어서, 보-울리 알고리즘을 이용함으로써 곱셈기 구조가 간단해지고 곱셈기 설계 시간이 단축된다.

Description

곱셉기의 설계 방법
본 발명은 곱셈기의 설계 방법에 관한 것으로서, 특히 보-울리(Baugh-Wooley) 알고리즘을 이용한 곱셈기의 설계 방법에 관한 것이다.
일반적으로 곱셈기는 부쓰 엔코딩(Booth Encoding)이나 왈리스 트리(Wallace Tree) 등, 병렬 곱셈기에서 주로 사용하는 방식 회에도 보-울리 알고리즘이라는 알고리즘을 도입하여 사인 익스텐션(sign extention)을 없애는 방법을 제안하여 하드웨어의 낭비를 최소화하고자 한다.
일반적으로, NxN 곱셈의 경우 N개의 부분 프로덕트(partial product)가 존재하고 결과는 2N 비트로 나타내어진다. 그리고 이 2N 비트의 결과는 다시 N 비트로 라운딩(rounding)된다. 어레이 곱셈 방식(Array Multiplication)는 곱힘수(multiplicand)를 곱수(multiplier)의 각 비트와 논리적으로 앤드(AND)하여 다이아몬드 형태의 부분 프로덕트를 만들고 이를 모두 더함으로써 결과를 얻는 것이다. 다음의 예는 어레이 곱셈 방식을 이용하여 2개의 8비트 데이터를 곱할 때 생기는 부분 프로덕트를 나타낸 것이다.
1 1 0 1 1 0 0 1
x 1 1 1 0 0 0 1 1
---------------------
1 1 0 1 1 0 0 1
1 1 0 1 1 0 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 0 1 1 0 0 1
1 1 0 1 1 0 0 1
1 1 0 1 1 0 0 1
그러나 위와 같은 형태의 곱셈 방식은 우리가 손으로 계산하는 방식을 그대로 따르기 때문에 병렬로 일을 수행 할 수 있는 컴퓨터의 잇점을 살리지 못하여 좋은 성능을 얻기 힘들다. 단지, 상기 어레이 곱셈 방식에 따르면 부분 프로덕트가 다이아몬드 형태로 나타나기 때문에 곱셈기를 설계하는데 곱셈기의 구조가 간단하게 된다. 반면, 부분 프로덕트의 수가 8개나 되어서 곱셈기를 설계하는데 설계 시간이 많이 소요되는 단점이 있다. 이러한 단점을 극복하기 위해 수정된 부쓰 알고리즘(Modified Booth Algorithm)을 이용한다. 이는 우선 N개의 부분 프로덕트를 반으로 줄이기 위하여 제안된 것으로 보통의 경우 (N/2)개의 부분 프로덕트로 줄어들게 된다. 다음 식은 상기 어레이 곱셈 방식에 사용된 데이터를 수정된 부쓰 알고리즘에 적용했을 때 나타나는 부분 프로덕트를 보여준다.
0 0 1 1 0 1 1 0 0 1
0 0 1 1 1 0 0 0 1 1 0
----------------------------
1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 : - X (110)
0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 : + X (001)
1 1 1 1 1 0 0 1 0 0 1 1 0 1 : - 2X (100)
1 1 1 1 1 1 1 1 1 1 1 1 1 : - zero(111)
0 0 1 1 0 1 1 0 0 1 1 : + X (001)
|----------- 유효 ------------|
위의 예에서 주의해야 할 점은 부분 프로덕트의 8비트와 부호 확대 부분이다. 먼저 부분 프로덕트의 경우 앞서 말한 그대로라면 4개의 부분 프로덕트만 나와야 하는데 5개가 생성되어 있음을 볼 수 있다. 그 이유는 8비트의 데이터에 2비트가 추가되었기 때문이다. 추가된 2비트는 부분 프로덕트가 -X와 같이 음수를 가지는 경우를 위한 1비트와 부분 프로덕트가 -2X를 가질 경우 1비트 레프트 쉬프트(left shift)에 의하여 위의 1비트 쉬프트 아웃(shift out)되는 것을 막기 위한 나머지 1비트가 각각 MSB에 추가된다. 사인 익스텐션은 어레이 곱셈기에서는 필요없는 부분인데 이는 부분 프로덕트를 2의 보수(2's complement)로 표현함에 따른 부쓰 알고리즘의 단점이다.
상술한 바와 같이 종래 기술에 의하면, 사인 익스텐션이 발생하여 전체적인 하드웨어는 정방형의 레이아웃(layout)을 가지기 어렵게 된다. 라우팅(routing)이 복잡해지며 설계 시간이 증가하게 된다.
본 발명이 이루고자 하는 기술적 과제는, 부분 프로덕트가 감소되고 사인 익스텐션을 제거하여 신속한 하드웨어 오버헤드(overhead)를 얻을 수 있는 곱셈기 설계 방법을 제공하는데 있다.
도 1은 일반적인 16x16 곱셈기의 전체 블록도.
도 2는 본 발명의 보-울리 알고리즘을 이용하여 설계한 곱셈기의 배치도.
도 3은 상기 도 2의 콤프레서(compressor)의 논리 회로도.
도 4는 상기 도 1에 이용되는 부쓰 엔코더(Booth-Encoder)의 논리 회로도.
도 5는 상기 도 1에 이용되는 부쓰 디코더(Booth-Decoder)의 논리 회로도.
상기 과제를 이루기 위하여 본 발명은, 곱셈기 설계 방식에 있어서, 보-울리 알고리즘을 이용하는 것을 특징으로 하는 곱셈기 설계 방식을 제공한다.
바람직하기는, 상기 보-울리 알고리즘은 왈리스 트리에 적용한다.
상기 본 발명에 의하여 곱셈기 구조가 간단해지고 곱셈기 설계 시간이 단축된다.
이하, 본 발명을 상세히 설명하기로 한다.
사인 익스텐션을 제거하기 위하여 보-울리 알고리즘을 이용한다. 보-울리 알고리즘의 요지는 사인 익스텐션 부분을 몇 개의 동등 비트(equivqlent bit)로 전환하는 것인데 이를 식으로 나타내면 다음과 같다. 다음 식은 식을 간단히 하기 위하여 8x8 곱셈기를 설계하기 위한 것이다.
S=S0 2i+S1 2i+S2 2i= S0 2i+(S1 2i)22+(S2 2i)24----①
여기서 S0,S1,S2는 각 부분 프로덕트의 부호비트이다. 상기 식 ①을 간략화하기 위해 다음과 같이 전개한다.
2i=2j(2k+1-j-1)=2k+1-2j
=1-Sj
이므로
S=(1-)(216+210)+(1-)(216-212)+(1-)(216-214)
=[3-(++)]216+210+212+214-210-212-214
=[2-(++)]216+210+212+214+216-(28+210+212+214)216
=2i+1
=2i+1+210+211+···+215
=+1+210+211+···+215
=210+210+211+···+215
S=[2-(++)]216+210+212+214+210+211+213+215
S=210+212+214+210+211+213+215------- ②
상기 식 ②를 종래의 어레이 곱셈 방식과 수정된 부쓰 알고리즘에 적용하면 다음과 같다.
0 0 1 1 0 1 1 0 0 1
0 0 1 1 1 0 0 0 1 1 0
--------------------------
0 1 1 0 0 1 0 0 1 1 0
1 0 0 1 1 0 1 1 0 0 1 1
0 1 0 0 1 0 0 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1
0 0 1 1 0 1 1 0 0 1 1
1 1 1 1
|---------- 유효 -----------|
위의 예를 수정된 부쓰 알고리즘과 비교해보면 12개의 부호 확대 비트가 7개의 동등 비트로 감소하였음을 알 수 있다. 이 경우 별 이득이 없어 보이지만 곱셈기의 크기가 커질수록 사인 익스텐션 부분은 기하급수적으로 증가하는데 반하여 보-울리 방식에 의한 부분은 그리 많이 증가하지 않는다. 예를 들면 16x16의 경우 사인 익스텐션 부분은 36비트이지만 보-울리 알고리즘을 사용하면 이 부분은 단 15비트로 줄어들며 부동 소숫점의 더블 프리시젼(double precision)과 같이 54x54의 경우 676개의 비트가 단 26개의 동등 비트로 전환될 수 있다. 또한 위의 예에서 볼 수 있듯이 어느 정도 규칙적인 다이아몬드 형태의 부분 프로덕트 어레이를 얻을 수 있다는 장점을 얻을 수 있는 것이다.
상기 알고리즘을 하드웨어로 구현한 것을 도 1에 나타내었다. 병열 연산을 하기 위한 왈리스 트리 구조를 가지고 있으며, 각각의 작은 블록은 다양한 크기의 콤프레서 셀로 구성되어있다.
도 2는 본 발명의 보-울리 알고리즘을 이용하여 설계한 곱셈기의 배치도이다. 사인 익스텐션이 몇 개의 동등 비트로 전환되는 것은 곧바로 하드웨어에 영향을 주는데 도 2에서 볼 수 있듯이 어레이 곱셈기와 비슷한 배치도 구조를 가질 수 도 3은 상기 도 2의 콤프레서(compressor)의 논리 회로도이다. 주로 4개의 입력을 받아 두 개의 캐리(carry)와 섬(sum)으로 압축하는 4-2 콤프레서를 사용하고 있다. 또한 부쓰 알고리즘을 사용함에 따른 부쓰 엔코더(encoder), 부쓰 디코더(decoder)의 회로도를 도 4와 도 5에 각각 나타내었다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 기술적 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 명백하다.
상술한 바와 같이 본 발명에 따라 보-울리 알고리즘을 이용함으로써 부분 프로덕트의 수가 적고 사인 익스텐션이 제거되어 곱셈기의 구조가 간단해지고 설계 시간이 단축된다.

Claims (2)

  1. 곱셈기 설계 방식에 있어서, 보-울리 알고리즘을 이용하는 것을 특징으로 하는 곱셈기 설계 방식.
  2. 제1항에 있어서, 상기 보-울리 알고리즘은 왈리스 트리에 적용하는 것을 특징으로 하는 곱셈기 설계 방식.
KR1019960044378A 1996-10-07 1996-10-07 곱셈기의 설계 방법 KR19980026053A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960044378A KR19980026053A (ko) 1996-10-07 1996-10-07 곱셈기의 설계 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960044378A KR19980026053A (ko) 1996-10-07 1996-10-07 곱셈기의 설계 방법

Publications (1)

Publication Number Publication Date
KR19980026053A true KR19980026053A (ko) 1998-07-15

Family

ID=66325235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960044378A KR19980026053A (ko) 1996-10-07 1996-10-07 곱셈기의 설계 방법

Country Status (1)

Country Link
KR (1) KR19980026053A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160116286A (ko) * 2015-03-25 2016-10-07 삼성전자주식회사 병렬 곱셈기의 배치 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160116286A (ko) * 2015-03-25 2016-10-07 삼성전자주식회사 병렬 곱셈기의 배치 방법

Similar Documents

Publication Publication Date Title
EP0890899A2 (en) Multiplication method and apparatus
US6704762B1 (en) Multiplier and arithmetic unit for calculating sum of product
US5796645A (en) Multiply accumulate computation unit
Vassiliadis et al. Hard-wired multipliers with encoded partial products
US5161119A (en) Weighted-delay column adder and method of organizing same
US5343417A (en) Fast multiplier
US4366549A (en) Multiplier with index transforms modulo a prime or modulo a fermat prime and the fermat prime less one
JP3345894B2 (ja) 浮動小数点乗算器
US5038315A (en) Multiplier circuit
US4545028A (en) Partial product accumulation in high performance multipliers
KR19980026053A (ko) 곱셈기의 설계 방법
JPH09501528A (ja) 高速算術演算装置のけた上げ先見加算器段の数を減少させる構造及び方法
Jain et al. High-speed double precision computation of nonlinear functions
EP0314968A2 (en) Overlapped multiple-bit scanning multiplication system with banded partial product matrix
EP0326182A2 (en) High speed digital signal processor for signed digit numbers
US5914892A (en) Structure and method of array multiplication
Aggoun et al. Area-time efficient serial-serial multipliers
US7007053B1 (en) Area efficient realization of coefficient architecture for bit-serial FIR, IIR filters and combinational/sequential logic structure with zero latency clock output
Veena et al. Energy scalable Brent Kung adder with non-zeroing bit truncation
JPWO2006088085A1 (ja) 加算器、およびその合成装置、合成方法、合成プログラム、合成プログラム記録媒体
JP2790327B2 (ja) 剰余乗算回路および剰余乗算方法
JPH0635673A (ja) 乗算方法及び回路
KR950010451B1 (ko) 그룹 트리구조 알고리즘(GTSM ; Group Tree Structure Method)을 적용한 고속 승산기
ASHER et al. Adaptive booth algorithm for three-integers multiplication for reconfigurable mesh
Aggoun et al. Radix-2n serial–serial multipliers

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination