KR100477913B1 - 부스알고리즘을이용한멀티플라이어 - Google Patents

부스알고리즘을이용한멀티플라이어 Download PDF

Info

Publication number
KR100477913B1
KR100477913B1 KR1019970079331A KR19970079331A KR100477913B1 KR 100477913 B1 KR100477913 B1 KR 100477913B1 KR 1019970079331 A KR1019970079331 A KR 1019970079331A KR 19970079331 A KR19970079331 A KR 19970079331A KR 100477913 B1 KR100477913 B1 KR 100477913B1
Authority
KR
South Korea
Prior art keywords
multiplier
partial
stage
bits
compressor
Prior art date
Application number
KR1019970079331A
Other languages
English (en)
Other versions
KR19990059134A (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 주식회사 하이닉스반도체
Priority to KR1019970079331A priority Critical patent/KR100477913B1/ko
Publication of KR19990059134A publication Critical patent/KR19990059134A/ko
Application granted granted Critical
Publication of KR100477913B1 publication Critical patent/KR100477913B1/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
    • 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/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • 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/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products

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

1. 청구 범위에 기재된 발명이 속하는 기술 분야
본 발명은 부스 알고리즘을 이용한 멀티플라이어에 관한 것임.
2. 발명이 해결하고자 하는 기술적 과제
AND-NAND 게이트를 이용하여 부분 적을 만들고 이를 에딩할 경우 많은 수의 에딩 단이 필요하여 에딩 시간 및 회로의 면적이 증가하는 문제점을 해결하기 위함.
3. 발명의 해결 방법의 요지
부스 알고리즘을 이용하므로써 부분 적(patial product)의 수를 감소시키고 컴프레서(compressor)를 이용한 어레이 에더단을 통해 가산기의 단수를 감소시키며 이를 2단계로 나누어 실시하므로써 멀티플라이어의 속도 및 집적도를 향상시킴.
4. 발명의 중요한 용도
디지털 신호 처리(DSP)의 필터링 기술 및 마이크로 프로세서 등의 고속의 연산처리를 요구하는 분야.

Description

부스 알고리즘을 이용한 멀티플라이어
본 발명은 부스 알고리즘을 이용하여 부분 적(partial product)을 생성하고 이를 콤프레서(compressor)를 이용한 어레이 가산기를 이용하여 가산하므로써 연산 속도를 향상시키고 회로의 집적도를 개선할 수 있는 멀티플라이어(multiplier)의 구조에 관한 것이다.
일반적으로 멀티플라이어의 설계시에는 속도 및 집적도의 두가지 요소를 우선적으로 고려하여야 하며, 종래에는 멀티플라이어의 설계에 Dadda's 알고리즘, Baugh-Wooley 알고리즘 등을 사용하여 연산 속도를 향상시키고자 하였다. Baugh-Wooley 알고리즘은 곱셈 연산을 수행하기 위하여 구해지는 연산식을 그 형태 그대로 AND-NAND 게이트를 이용하여 구현하므로써 부분 적(partial product)을 만들고 이를 애딩 트리(adding tree)를 이용하여 연산을 수행하여, 레이아웃과 회로상의 구현이 용이하고 회로 면적을 감소시키기 용이한 장점이 있다. 그러나 이 방법은 수식과 같은 수의 애딩단이 필요하여 가산에 필요한 시간이 증가되어 결과적으로 전체 연산 속도가 저하되는 문제점이 있다.
이와 같이 연산 속도가 저하되는 문제점을 해결하기 위하여 부스(Booth's) 알고리즘을 이용한 멀티플라이어가 개발되었다. 그러나 부스 알고리즘을 이용한 멀티플라이어는 트리(tree) 구조상에서 여러 가지 크기의 데이터 패스 폭을 갖게 되고, 이에 따라 회로 내에 버려지는 부분이 과도하게 발생하여 회로의 집적도를 저하시키는 문제점이 있다.
따라서, 본 발명은 부스 알고리즘을 이용하여 2단계로 연산을 수행하여 연산 속도를 향상시키고 컴프레서를 이용한 어레이 가산기를 이용하여 불필요한 면적을 줄이므로써 회로의 집적도를 향상시킬 수 있는 멀티플라이어를 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 멀티플라이어는 승수 및 피승수의 입력에 따라 각각의 데이터 버스 라인을 통해 입력되는 데이터를 렛치 회로에 렛치한 후 멀티플랙서를 이용하여 상기 승수를 상위 비트 및 하위 비트로 분리하는 입력단과, 상기 상위 비트 및 하위 비트로 분리된 승수와 상기 피승수에 대해 부스 알고리즘을 이용하여 다수의 부분 적을 생성하는 부분 적 생성단과, 상기 다수의 부분 적, 전 단계로부터 구해진 부분 합과 부분 캐리 및 보수 연산 비트를 입력으로 하여 덧셈을 수행하고 부분 합, 부분 캐리 및 다음 단으로 전파하기 위한 캐리를 출력하는 어레이 에더단과, 상기 어레이 에더단의 출력을 모두 더하여 곱셈 결과를 얻는 전파 에더단을 포함하여 구성되는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명에 따른 멀티플라이어의 블록도이다. 이는 크게 랫치(latch)를 이용하여 입출력을 제어하는 입출력 블록(11)과 입력을 받아 연산을 하고 이를 다시 출력단으로 보내는 연산 블록(12)으로 나누어진다. 또한, 연산 블록(12)은 부분 적(partial product) 생성단(121), 어레이 에더(array adder)단(122) 및 전파 에더(propagation adder)단(123)으로 구성된다. 이러한 멀티플라이어는 연산을 2단계로 구분하여 64×32비트의 연산을 2회 실시하므로써 64×64비트 연산을 수행할 수 있다.
먼저, 입출력 블록(11)의 동작은 다음과 같다. 입력단은 랫치를 이용하여 처음 클럭에서의 입력과 다음 클럭에서의 입력을 구분한다. 즉, 버스 A 및 버스 B로부터 랫치를 이용하여 승수(mply) 및 피승수(mpcd)를 입력 받고 이를 멀티플랙서(MUX)를 이용하여 이를 2단계로 나누어 곱셈 연산을 수행하기 위한 입력을 준비를 한다. 출력단은 입력단과 같은 형태의 랫치를 이용하여 구성되었으며, 출력단의 결과를 피드백(feedback)시켜 상위 32비트가 입력되었을 때 에딩하기 위한 부분이다.
연산 블록(12)의 동작은 다음과 같다. 먼저, 연산 블록(12)의 부분 적 생성단(121)은 입력단으로부터 승수의 하위 32비트를 부스 인코더로 입력 받아 부분 적을 생성하는 부분으로 부스 알고리즘을 이용하여 설계하였다. 부스 알고리즘을 이용하여 부분 적을 생성할 경우에는 승수(mply) 비트 수의 반보다 하나 더 많은 수만큼의 부분 적 결과가 생성되어 다른 알고리즘을 사용하는 경우보다 어레이 에더단의 수를 감소시킬 수 있다. 부스 인코더로 32 비트의 승수가 입력되면 승수에 0을 추가하고 연속되는 3개의 입력 값을 이용하여 다음 [표 1]과 같은 방법으로 부분 적을 만든다.
[표 1]
Figure pat00001
즉, A0 A1 A2 … A30 A31의 승수에 대해 A0 A1 A2, A2 A3 A4, A4 A5 A6과 같은 방법으로 입력 값을 조합하여 이에 따른 부분적을 생성한다.
이와 같이 하여 0, ±1 및 ±2의 5가지의 값이 만들어 지며, 이를 이용한 부분 적을 에딩단에서 연산하게 된다. 이러한 부분 적 생성중의 사인(sign) 비트 처리시에는 generation 방법을 사용한다. 이는 extension 방법으로 부분 적을 생성할 경우 부분 적의 크기가 다음 단의 에딩 연산 후에 한 비트씩 커져 어레이 에더단에서 불필요하게 소모되는 면적을 줄이기 위함이다. 실제로, generation 방법으로 부분 적을 생성할 경우에는 에딩단의 연산 결과로 나온 각 텀(term)들의 크기를 일정하게 만들어 모듈(module)화가 가능하게 된다.
다음으로, 부분 적 생성단(121)의 결과를 받아 곱셈 연산을 하는 어레이 에더단(122)의 동작은 다음과 같다.
어레이 에더단(122)은 64비트의 데이터를 입력받는 다수의 4_2 컴프레서(compress)(C1 내지 C9)를 이용하여 구성된다. 컴프레서는 2개의 전가산기를 조합한 장치로 볼 수 있으며, 4개의 입력과 전단에서 만들어진 케리(carry)를 입력으로 하여 합(sum)과 케리 및 다음 단으로 보내는 케리를 만든다. 즉, 5입력-3출력의 에더 동작을 하게 된다. 본 발명에서는 어레이 에더단(122) 내의 다수의 컴프레서를 여러 가지 크기의 모듈 형태로 나누어 구성하였는데, 이는 회로의 설계를 간편화하고 레이아웃시의 면적을 조절하기 쉽게 하여 불필요한 면적의 소모를 감소시키기 위해서이다. 이에 따라 모듈화된 어레이 에더단으로 구현한 멀티플라이어를 사용할 경우 칩의 면적을 개선시킴은 물론 비용 또한 효과적으로 감소시킬 수 있다.
어레이 에더단(122)에서 연산된 합과 캐리는 전파 에더단(123)으로 입력되어 모두 더해지게 된다. 전파 에더단(123)은 32비트 및 64비트 캐리-룩어헤드(Carry-LookAhead ;CLA) 가산기가 사용된다. 이때, 먼저 얻어지는 32비트의 결과는 한 사이클에서 32비트의 정수(integer) 연산이 가능하기 때문에 정수연산을 할 경우 보다 구분된 연산을 수행하게 된다.
도 2는 본 발명에 따른 어레이 가산기단의 상세 블록도이고, 도 3은 이 어레이 가산기에 사용되는 모듈의 상세 구성도이다. 도 2의 각 어레이 가산기 모듈을 도 3을 참조하여 설명하면 다음과 같다.
어레이 에더단(122)의 제 1 컴프레서(C1)는 1개의 전가산기(FA)를 포함한 66비트 모듈(도 3의 31)로서 첫 번째 부분 적(PP0), 부분 합, 부분 캐리 및 32개의 보수 연산을 위한 텀(term)을 더하고 하위 2비트(0∼1)의 곱셈 결과를 출력하는 부분이다. 제 2 및 내지 5 컴프레서(C2 내지 C5)는 67비트 모듈(도 3의 32)로 65비트 컴프레서에 구 대의 전가산기를 추가하여 구성되며, 나머지 부분 적(PP1 내지 PP16)을 각각 4개씩 입력받아 에딩하는 역할을 한다. 두번째 단의 제 6 및 제 7 컴프레스(C6 및 C7)는 72비트 모듈(33 및 34)로, 캐리를 연산하는 과정에서의 차이를 고려하여 A형(C6, 도 3의 33)과 B형(C7, 도 3의 34)으로 구분하여 구현하였고 A형 모듈의 컴프레서(C6, 도 3의 33)로부터 하위 8비트(2∼9)의 곱셈 결과가 출력된다. 여기에서, 제 7 컴프레서의 출력 중 7비트가 제 9 컴프레서로 되는데, 이와 같이 다른 형태로 구분하여 구현하므로써 연산시 패스되는 비트 처리를 용이하게 하고 모듈의 크기를 더욱 작게 할 수 있다. 세번째 단의 제 8 컴프레서(C8)는 74비트 모듈(도 3의 35)로, 이 74비트 모듈의 컴프레서(C8, 도 3의 35)에 의해 하위 16비트(10∼25)의 곱셈 결과가 출력된다. 마지막 단의 제 9 컴프레서(C9)는 72비트 모듈(도 3의 33)로, 72비트 모듈 컴프레서 A형을 다시 사용하여 구현하였고 하위 6비트(26∼31)의 곱셈 결과가 출력된다.
상술한 바와 같이 본 발명에 따르면, 부스 알고리즘을 이용한 어레이 에더단의 감소 및 연산을 2단계로 나누어 실시하므로써 처리 시간을 감소시키고, 에더단에서의 비트 처리를 여러 가지 모듈의 컴프레서를 이용하여 실시하므로써 소자의 크기를 줄일 수 있으며, 고속 연산 처리를 요구하는 모든 회로에 응용이 가능하고 비용을 절감시킬 수 있는 탁월한 효과가 있다.
도 1은 본 발명에 따른 멀티플라이어의 블록도.
도 2는 본 발명에 따른 어레이 가산기단의 상세 블록도.
도 3은 도 2의 어레이 가산기에서 사용되는 모듈의 상세 구성도.
〈도면의 주요 부분에 대한 부호 설명〉
11 : 입출력 블록 12 : 연산 블록
121 : 부분 적 생성단 122 : 어레이 에더단
123 : 전파 에더단 C1 내지 C9 : 컴프레서

Claims (3)

  1. 승수 및 피승수의 입력에 따라 각각의 데이터 버스 라인을 통해 입력되는 데이터를 렛치 회로에 렛치한 후 멀티플랙서를 이용하여 상기 승수를 상위 비트 및 하위 비트로 분리하는 입력단과,
    상기 상위 비트 및 하위 비트로 분리된 승수와 상기 피승수에 대해 부스 알고리즘을 이용하여 다수의 부분 적을 생성하는 부분 적 생성단과,
    상기 다수의 부분 적, 전 단계로부터 구해진 부분 합과 부분 캐리 및 보수 연산 비트를 입력으로 하여 덧셈을 수행하고 부분 합, 부분 캐리 및 다음 단으로 전파하기 위한 캐리를 출력하는 어레이 에더단과,
    상기 어레이 에더단의 출력을 모두 더하여 곱셈 결과를 얻는 전파 에더단을 포함하여 구성되는 것을 특징으로 하는 부스 알고리즘을 이용한 멀티플라이어.
  2. 제 1 항에 있어서, 상기 어레이 에더단은 다수의 전가산기를 조합하여 구성한 다양한 모듈을 갖는 다수의 컴프레서로 구성되며,
    상기 다수 컴프레서는
    첫 번째 부분적, 부분 합, 부분 캐리 및 다수 개의 보수 연산을 위한 텀(term)을 더하고 하위 2비트의 곱셈 결과를 출력하며, 1개의 전가산기를 포함한 제1 비트 모듈로 구성한 제1 컴프레서;
    상기 첫 번째 부분적을 제외한 나머지 부분 적을 각각 4개씩 입력받아 에딩하며, 2대의 전가산기를 포함한 제2 비트모듈로 구성된 다수의 제2 컴프레서;
    캐리를 연산하는 과정에서의 차이를 고려하여 구성되고, 하위 8비트의 곱셈 결과를 출력하며, 제3 비트 모듈로 구성된 제3 컴프레서;
    하위 16비트의 곱셈 결과를 출력하며, 제3 비트 모듈로 구성되 제4컴프레서;
    하위 6비트의 곱셈 결과를 출력하며, 제5 비트 모듈로 구성된 제5 컴프레서를 포함하는 것을 특징으로 하는 부스 알고리즘을 이용한 멀티플라이어.
  3. 제 1 항에 있어서, 상기 전파 에더단의 에더는 캐리-룩어헤드 에더인 것을 특징으로 하는 부스 알고리즘을 이용한 멀티플라이어.
KR1019970079331A 1997-12-30 1997-12-30 부스알고리즘을이용한멀티플라이어 KR100477913B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970079331A KR100477913B1 (ko) 1997-12-30 1997-12-30 부스알고리즘을이용한멀티플라이어

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970079331A KR100477913B1 (ko) 1997-12-30 1997-12-30 부스알고리즘을이용한멀티플라이어

Publications (2)

Publication Number Publication Date
KR19990059134A KR19990059134A (ko) 1999-07-26
KR100477913B1 true KR100477913B1 (ko) 2005-08-29

Family

ID=37304262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970079331A KR100477913B1 (ko) 1997-12-30 1997-12-30 부스알고리즘을이용한멀티플라이어

Country Status (1)

Country Link
KR (1) KR100477913B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168530A (en) * 1978-02-13 1979-09-18 Burroughs Corporation Multiplication circuit using column compression
JPH0474219A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 高速乗算器
JPH06282419A (ja) * 1993-03-25 1994-10-07 Mitsubishi Electric Corp 乗算器
KR950024062A (ko) * 1994-01-08 1995-08-21 문정환 54비트 곱셈기
JPH09245019A (ja) * 1996-03-11 1997-09-19 Oki Electric Ind Co Ltd 積和演算回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168530A (en) * 1978-02-13 1979-09-18 Burroughs Corporation Multiplication circuit using column compression
JPH0474219A (ja) * 1990-07-17 1992-03-09 Toshiba Corp 高速乗算器
JPH06282419A (ja) * 1993-03-25 1994-10-07 Mitsubishi Electric Corp 乗算器
KR950024062A (ko) * 1994-01-08 1995-08-21 문정환 54비트 곱셈기
JPH09245019A (ja) * 1996-03-11 1997-09-19 Oki Electric Ind Co Ltd 積和演算回路

Also Published As

Publication number Publication date
KR19990059134A (ko) 1999-07-26

Similar Documents

Publication Publication Date Title
Zimmermann Efficient VLSI implementation of modulo (2/sup n//spl plusmn/1) addition and multiplication
US8229992B2 (en) Fused booth encoder multiplexer
Farooqui et al. General data-path organization of a MAC unit for VLSI implementation of DSP processors
Pekmestzi Multiplexer-based array multipliers
Abdelgawad et al. High speed and area-efficient multiply accumulate (MAC) unit for digital signal prossing applications
JPS6297033A (ja) 乗算装置
Cheng et al. Delay-insensitive carry-lookahead adders
EP0862110A2 (en) Wallace-tree multipliers using half and full adders
Mokrian et al. A reconfigurable digital multiplier architecture
Chang et al. Design and implementation of low-power digit-serial multipliers
KR100477913B1 (ko) 부스알고리즘을이용한멀티플라이어
Ismail et al. High performance complex number multiplier using booth-wallace algorithm
US6151617A (en) Multiplier circuit for multiplication operation between binary and twos complement numbers
Varghese et al. High Speed Low Power Radix 4 Approximate Booth Multiplier
KR950006581B1 (ko) 영역 유효 평면도를 갖는 올림수 저장 가산기로 구성되는 2진 트리 승산기
Schwarz et al. Parallel high-radix nonrestoring division
JP3201231B2 (ja) 単位加算器
Parker et al. Optimal value for the Newton-Raphson division algorithm
Jaberipur et al. Modulo-(2 q− 3) Multiplication with Fully Modular Partial Product Generation and Reduction
Ren et al. Design of a 16-bit CMOS divider/square-root circuit
KR100420410B1 (ko) 리던던트 바이너리 연산을 이용한 실수-복소수 승산기
Behera et al. Analysis of Combinational Delay in Signed Binary Multiplier
Kobayashi A fast multi-operand multiplication scheme
Sairam et al. FPGA Implementation of Area Efficient 16-Bit Vedic Multiplier Using Higher Order Compressors
Kumar Multipliers Based on Carry Arrest Multi-Operand Addition

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee