KR100245944B1 - 승산장치 - Google Patents

승산장치 Download PDF

Info

Publication number
KR100245944B1
KR100245944B1 KR1019960056860A KR19960056860A KR100245944B1 KR 100245944 B1 KR100245944 B1 KR 100245944B1 KR 1019960056860 A KR1019960056860 A KR 1019960056860A KR 19960056860 A KR19960056860 A KR 19960056860A KR 100245944 B1 KR100245944 B1 KR 100245944B1
Authority
KR
South Korea
Prior art keywords
adder
shifter
inverter
partial product
bit
Prior art date
Application number
KR1019960056860A
Other languages
English (en)
Other versions
KR970062889A (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 다니구찌 이찌로오
Publication of KR970062889A publication Critical patent/KR970062889A/ko
Application granted granted Critical
Publication of KR100245944B1 publication Critical patent/KR100245944B1/ko

Links

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
    • 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/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • 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
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)

Abstract

본 발명에서는, 시프터/인버터(113~120)를 그중 어느 것도 분할하지 않고, 그들의 한 단부를 가지런히 배열하여 위에서 아래로 순서대로 배열하고, 제1차 가산기(138)의 상위 가산기(33) 및 제 1차 가산기(139)의 하위 가산기(34)를, 그들 각각의 한쪽 단부를 시프터/인버터(113~120)의 단부에 맞추면서 시프터/인버터(116)와 시프터/인버터(117) 사이의 동일한 행에 배열하며, 또 제1차 가산기(138)의 하위 가산기(37) 및 제2차 가산기의 하위 가산기(38)를, 시프터/인버터(113)의 바로 위에 위쪽을 향해 가산기(37, 38)의 순서로 배열하며, 또한 제1차 가산기(139)의 상위 가산기(35) 및 제2차 가산기(140)의 상위 가산기(36)를, 시프터/인버터(120)의 바로 아래에 아래를 향해 가산기(35, 36)의 순서로 배열하는 구성으로 하였다. 본 발명에 의하면, 승산기의 필요 면적이 대폭 축소된다.

Description

승산장치
본 발명은 승산장치(multiplication element)에 관한 것으로서, 특히 월레스 트리(Wallace tree)를 사용한 승산장치에 관한 것이다.
승산은 컴퓨터에 있어서 가장 많이 사용되는 연산의 하나로서, 고속의 계산 시스템을 구성할 때 승산 속도를 향상시키는 것은 필수이다. 이와 같은 고속의 승산을 실현하기 위한 방법으로서 승수(mutiplier)를 수정해서 부분곱(partial products)의 총수를 감소시키는 부스(Booth)의 알고리즘이 잘 알려져 있다. 또, 부분곱을 트리(tree) 형상으로 가산하고 또 부분곱의 총수를 순차 감소시키는 월레스 트리를 사용하는 승산장치도 잘 알려져 있다.
도 19는 상기 2가지 방법을 사용한 승산기의 구성을 도시한 블럭도이다. 이러한 구성은, 예컨대, 일본국 특허 공개 공보 평성3-177922호에 기재되어 있다. 피승수(101) 및 승수(102)는, 예컨대, 모두 16비트로 구성된다. 부스 엔코더(Booth encoder)(103)는 승수(102)를 수정한 승수(본 명세서에서 「수정 승수」라고 칭한다)를 출력한다.
일반적으로, n차 부스의 알고리즘을 사용해서 수정 승수를 구하면 부분곱의 총수를 원초적으로 n분의 1로 감소시킬 수 있다. 여기에서, 「원초적」이라는 것은 피승수와 수정 승수의 1비트 연산에 의해서 얻어지는 부분곱의 총수에 관한 것을 의미하고, 이러한 부분곱을 제0차 부분곱이라고 칭한다.
부스 알고리즘의 차수가 많아지면 제0차 부분곱에 필요한 회로 규모가 커지고, 이에 따라 제 0차 부분곱의 생성에 필요한 소요 시간도 커지므로, 통상은 2차의 부스 알고리즘이 사용된다. 도 19에 도시된 실시예에서, 2차 부스 알고리즘이 채용되고. 16비트의 1/2에 상당하는 8비트분의 승수를 출력하는 부스 엔코드 요소(45~52)가 부스 엔코더(103)에 마련되어 있다.
부스 엔코드 요소(45~52)의 출력(104~111)은 수정 승수임과 동시에 시프터/인버터(113~120) 각각의 제어 신호이기도 하다. 2차 부스 알고리즘에 있어서는 수정 승수가 1인 경우에는 피승수를 그대로 하고, 2인 경우에는 1비트 이동시키고 또 수정 승수가 음수인 경우에는 반전시킴으로써 연산을 실행한다. 따라서, 시프터/인버터(113~120)는 각각 출력(104~111)에 따라서 피승수(101)를 그대로 두거나, 1비트 이동시키거나, 그들을 반전시키는 것에 의해서 제 0차 부분곱(121~128)을 생성한다.
부스 엔코드 요소(45~52)는 참조부호가 증가하는 순서로 자릿수가 높아지므로, 그의 출력(104~111)에 의해서 제어되는 시프터/인버터(113~120)에 의해 생성되는 제0차 부분곱(121~128)도 이러한 순서로 자릿수가 높아진다. 그리고, 2차 부스 알고리즘이 채용되고 있으므로, 수정 승수에 있어서 자릿수가 1비트 높을수록 제0차 부분곱에 있어서는 자릿수가 2비트 높아진다.
제0차 부분곱(121~128)은 월레스 트리부(129)에 입력되고, 트리 형상으로 서로 가산되어 제 1차 부분곱, 제2차 부분곱, ---이 생성된다. 부분곱의 차수가 높을수록 그 수는 감소된다.
도 20은 월레스 트리부(129)의 구성을 개략적으로 예시하는 블럭도이다. 「개략적」이라고 한 것은 부분곱끼리의 비트를 정합시키는 상태가 도시되어 있지 않기 때문이다. 월레스 트리부(129)는 제1차 가산기(138, 139) 및 제2차 가산기(140)를 갖는다. 제1차 가산기(138)에는 4개의 제0차 부분곱(121~124)이 부가되고, 한쌍(즉, 총 2개)의 제1차 부분곱(141)을 생성한다. 또, 제1차 가산기(139)에는 4개의 제 0차 부분곱(125~128)이 부가되고, 한쌍의 제1차 부분곱(142)을 생성한다. 또, 제2차 가산기(140)에는 2쌍(즉, 총 4개)의 제 1차 부분곱(141, 142)이 부가되고, 한쌍의 최종 부분곱(제 2차 부분곱이기도 함)(130)을 생성한다.
도 21은 제 1차 가산기(138)의 구성을 예시하는 회로도이다. 4입력(캐리-인(carry-in)을 구비함) 2출력(캐리-아웃(carry-out)을 구비함)의 가산 요소(P101~P01n)가 순차 직렬로 접속되어 있다. 이들 가산 요소(P10101~P01n)는 모두 캐리-인단자(CI), 부분곱(121~124)의 각각의 1비트를 수신하는 입력 단자(11~14), 캐리-인단자(CI)와 입력단자(11~14)에 부가되는 합계 5비트의 가산 결과의 하위 비트를 출력하는 합계(sum) 단자(S), 모두 동일 자릿수의 상위 비트를 출력하는 캐리 단자(C) 및 캐리-아웃 단자(CO)를 구비한다(CI+I1+I2+I3+I4=C×2+CO×2+S). 그리고, 가산 요소(P01i)의 캐리-아웃 단자(CO)는 가산 요소(P01(i+1))의 캐리-인 단자(CI)에 접속된다(1≤i≤n-1).
제 1차 가산기(139) 및 제2차 가산기(140)도 마찬가지로 구성되지만, 후술하는 바와 같이 제 1차 가산기(138, 139)에서는 n=23으로, 제2차 가산기(140)에서는 n=32 또는 24로 설정된다.
도 22는 4입력 2출력의 가산 요소의 구성을 예시하는 회로도이다. 이와 같은 논리 게이트의 조합에 의해서 상기 동작을 실행하는 가산 요소를 실현할 수 있고, 캐리-인 단자(CI)의 입력은 캐리-아웃 단자(CO)의 출력에 영향을 주지 않는다.
한쌍의 최종 부분곱(130)은 최종 가산부(131)에서 가산되어 승산 결과(74)가 얻어진다. 최종 가산부(131)는 그의 동작을 고속으로 실행하기 위해서 캐리 룩 어헤드 방식(carry look ahead method)을 이용한다.
도 23~도 26은 4개 모두 도 19에 도시된 종래의 연산장치의 구성중 시프터/인버터(113~120)와, 제 1차 가산기(138, 139) 및 제2차 가산기(140)의 접속관 계만을 상세하게 도시한 회로도이다. 도 23은 가상선 Q4Q4에 의해서 도 25와, 가상선 Q5Q5에 의해서 도 24와 각각 연속한다. 또, 도 26은 가상선 Q6Q6에 의해서 도 24와, 가상선 Q7Q7에 의해서 도 25와 각각 연속한다.
통상, 월레스 트리부(129)는 이와 같이 그 구성요소인 제 1차 가산기(138, 139) 및 제2차 가산기(140)가 시프터/인버터(113~120)와 혼재해서 배치된다.
시프터/인버터(113~120)는 피승수(101)가 16비트이고, 1비트 좌측으로 이동할 경우도 상정해서 17 비트의 시프터/인버터 요소로 구성된다. 예를 들어, 시프터/인버터(113)는 최하위 비트에서 최상의 비트로 향하는 순으로 시프터/인버터 요소(B101~B117)를 행방향으로 배열해서 구비하고 있다. 마찬가지로, 시프터/인버터(114~120)는 각각 시프터/인버터 요소(B201~B217, B301~B317, B401~417, B501~B517, B601~B617, B701~B717, B801~B817)를 구비한다.
제 1차 가산기(138)는 가산 요소(P101~P123)를 구비한다. 4개의 제4차 부분곱(113~116)은 순차 2비트씩 자릿수가 다르므로, 가산 요소의 수는 17+(4-1)×2=23 개로 된다. 마찬가지로, 제1차 가산기(139)는 가산 요소(P201~P223)를 구비한다.
제1 차 가산기(138)에 부가되는 제0차 부분곱중 최하위 비트와 제 1차 가산기(139)에 부가되는 제0차 부분곱중 최하위 비트는 4×2-8 비트 다르므로, 양자의 출력인 한쌍의 제 1차 부분곱을 수신하는 제2차 가산기(140)는, 23+8=31개의 가산 요소(P301~P331)에 부가하여, 제1차 가산기(139)의 최상위 비트의 캐리 단자(C)의 출력을 수신하는 가산 요소(P332)를 또한 구비한다.
도면에서, 기호 「/」가 붙여진 배선은 여러개의 비트를 일괄하여 나타내는 배선으로서, 그 근방에 붙여진 숫자는 그 비트의 총수를 나타낸다. 단, 비트 총수가 2인 경우에는 특별히 숫자를 붙이지 않았다.
시프터/인버터(113)에서 얻어지는 제0차 부분곱(121)은 1비트씩 가산 요소(P101~P117)에 부가된다. 마찬가지로, 제0차 부분곱(122~128)은 각각 가산 요소(P101~P119, P105~P121, P107~P123, P201~P217, P203~P219, P205~P221, P207~P223)에 부가된다.
제1차 부분곱(141)중 각 가산 요소(P101~P123)의 합계 단자(S)에서 얻어지는 것은 각각 제2차 가산기(140)의 가산 요소(P301~P323)에 부가된다. 그리고, 각 가산 요소(P101~P123)의 캐리 단자(C)에서 얻어지는 것은 각각 제2차 가산기(140)의 가산 요소(P302~P324)에 부가된다. 각 가산 요소에 있어서 캐리 단자(C)에서 얻어지는 것은 합계 단자(S)에서 얻어지는 것보다 1비트 상위이기 때문이다.
마찬가지로, 제1차 부분곱(142)중 각 가산 요소(P201~P223)의 합계 단자(S)에서 얻어지는 것은 각각 제2차 가산기(140)의 가산 요소(P309~P331)에 부가된다. 그리고, 각 가산 요소(P201~P223)의 캐리 단자(C)에서 얻어지는 것은 각각 제2차 가산기(140)의 가산 요소(P310~P332)에 부가된다.
통상, 시프터/인버터와 가산기로 이루어지는 이와 같은 배열은 상호간에 신호를 전달하는 배선이 번잡하게 되는 것을 회피하기 위해서, 1비트분의 회로폭을 동일하게 취한다. 따라서, 월레스 트리형으로 가산이 진행함에 따라(즉, 가산기의 차수가 증대함에 따라)가산기의 배치에 필요한 행방향의 폭은 증대한다. 도 23~도 26에 도시된 예에 따라 설명하면, 제2차 가산기(140)의 폭은 제1차 가산기(138, 139)의 폭보다 넓다.
이와 같은 넓은 구조를 필요로 하지 않도록 2가지 방법이 채택된다. 첫째로, 가산 요소(P301~P308)를 생략하는 것이다. 이들 각각의 가산 요소(P101~P108)에서 2개 이하의 입력밖에 부가되지 않고, 따라서 가산 요소(P301~P308)는 그들에 각각 입력되는 값을 그대로 출력하는데 불과하기 때문에 생략가능하다.
두번째로의 배열의 정돈이다. 도 27은 시프터/인버터(113~120)와 가산기(138~140)의 좌측 단부를 맞추어 배치한 상태를 개략적으로 도시한 블럭도이다. 이들간의 신호 전달 관계는 도 23~도 26과 동일하므로, 번잡을 회피하기 위해 간략화시켜 도시하고 있다. 단, 가산 요소(P310~P308)는 생략되고, 제2차 가산기(140)의 폭은 가산기(138, 139)의 폭보다 1비트분만큼 넓다.
그러나, 이와 같이 배열을 정돈하여도 승산장치의 배치에 필요한 영역 폭은 제1차 가산기(138, 139) 및 제 2차 가산기(140)의 폭(23~24비트분)으로 거의 결정되어버린다. 시프터/인버터(113~120)가 요구하는 폭은 17비트분이고, 6~7비트분의 폭을 갖는 빈영역 DS1, DS2이 존재하게 되어 면적의 효율적인 이용이 저해된다.
이와 같은 빈영역은 승수의 비트수가 증대함에 따라, 그리고, 제0차 부분곱의 수가 증가함에 따라 증대된다. 또, 가산기의 차수가 증가함에 따라서, 그 경향은 더욱 현저해진다. 승산장치에 있어서는 전체 구성의 대부분을 시프터/인버터 및 가산기의 배열이 차지하므로, 승수의 비트수가 증대하면, 승산장치의 전체 면적을 축소시켜 제조 비용을 감소시킬 수 없다. 또, 배선 길이가 길어져서 성능 저하를 초래할 우려도 있다. 그리고, 마이크로프로세서가 취급하는 정보의 비트수가 증대하는 경향에 있는 것은 말할 필요도 없다.
본 발명의 목적은 이러한 문제점을 해결하기 위해서 이루어진 것으로서, 승산장치에 필요한 면적을 축소시키는 기술을 제공하는 것이며, 이에 의해서 상기 승산장치를 구비하는 반도체 집적회로의 비용 절감을 성취하는 것이다.
제1도는 제2도~제4도와 함께 본 발명의 가본적 사상을 도시한 블럭도.
제2도는 제 1도, 제3도및 제4도와 함께 본 발명의 기본적 사상을 도시한 블럭도.
제3도는 제1도, 제2도및 제4도와 함께 본 발명의 기본적 사상을 도시한 블럭도.
제4는 제1도~제3도와 함께 본 발명의 기본적 사상을 도시한 블럭도.
제5도는 본 발명의 실시예 1을 도시한 블럭도.
제6도는 본 발명의 실시예 2를 도시한 블럭도.
제7도는 본 발명의 실시예 3의 구성을 도시한 블럭도.
제8도는 본 발명의 실시예 4의 구성을 도시한 블럭도.
제9도는본 발명의 실시예 5의 구성을 도시한 블럭도.
제10도는 본 발명의 실시예 6의 구성을 도시한 블럭도.
제11도는 본 발명의 실시예 7의 구성을 도시한 블럭도.
제12도는 본 발명의 실시에 8의 구성을 도시한 블럭도.
제13도는 최종 가산부(131)의 구성을 도시한 블럭도.
제14도는 본 발명의 실시예 9의 구성을 도시한 블럭도.
제15도는 본 발명의 실시예 9의 다른 구성을 도시한 블럭도.
제16도는 본 발명의 실시예 10의 구성을 도시한 블럭도.
제17도 및 제18도는 본 발명의 실시예 11의 구성을 도시한 블럭도.
제19도는 종래의 승산기의 구성을 도시한 블럭도.
제20도는 종래의 기술을 도시한 블럭도.
제21도 및 제22도는 종래의 기술을 도시한 회로도.
제23도는 제24~제26도와 함께 종래의 기술을 도시한 블럭도.
제24도는 제23, 25 및 26과 함께 종래의 기술을 도시한 블럭도.
제25도는 제23,24 및 26과 함께 종래의 기술을 도시한 블럭도.
제26도는 제23도~ 제25도와 함께 종래의 기술을 도시한 블럭도.
제27도는 종래의 기술을 도시한 블럭도.
* 도면의 주요 부분에 대한 부호의 설명
1, 3, 5, 7, 9, 11, 13, 15 : 상위부
2, 4, 6, 8, 10, 12, 14, 16 : 하위부
17, 19, 21, 23, 25, 27, 29, 31, 39, 40, 43 : 상위 부분곱
18, 20, 22, 24, 26, 28, 30, 32, 41, 42, 44 : 하위 부분곱
33, 35, 36, : 상위 가산기, 34, 37, 38 : 하위 가산기
129 : 월레스 트리부 45~52 : 엔코드 요소
103 : 부스 엔코더 70, 75 : 가산 요소
72 : 전단 가산기 73 : 후단 가산기
131 : 최종 가산기 121~128 : 제0차 부분곱
113~120 : 시프터/인버터 138, 139 : 제1차 가산기
140 : 제2차 가산기
본 발명의 제1국면에 따른 승산장치는, 피승수와, 승수에 기초해 얻어지는 여러개의 수정 승수를 입력으로 하여, 상기 여러개의 수정 승수의 각각에 대응한 제0차 부분곱을 생성하는 여러개의 부분곱 생성부, 제j차(0≤j≤i-1) 부분곱을 특정수마다 가산해서 제 i 차(1≤i)부분곱을 생성하는 적어도 하나의 제 i 차가 가산기를 갖고, 부분곱의 수를 순차 감소시키면서 트리 형상의 가산을 실행하여 한쌍의 최종 부분곱을 출력하는 월레스 트리부 및 상기 최종 부분곱을 가산함으로써 상기 피승수와 상기 승수의 승산 결과를 얻는 최종 가산기를 구비한다. 그리고, 상기 월레스 트리부의 상기 제 i 차 가산기의 각각은 상기 승산 결과의 특정 자릿수를 경계로 해서 분리되고 서로 다른 행에 배치되는 상위 가산기와 하위 가산기를 갖는다.
본 발명의 제2국면에 따른 승산장치는, 제1국면에 따른 승산장치에 있어서, 상기 제1차 가산기를 한쌍 마련하되, 한쪽의 상기 제1차 가산기의 상기 상위 가산기를 다른쪽의 상기 제 1차 가산기의 상기 가산기보다 행방향으로 짧게 하고, 다른쪽의 상기 제1차 가산기의 상기 하위 가산기를 한쪽의 상기 제1차 가산기의 상기 하위 가산기보다 행방향으로 짧게 한 것이다. 그리고, 상기 한쪽의 상기 제1차 가산기의 상기 상위 가산기와 상기 다른쪽의 상기 제1차 가산기의 상기 하위 가산기는 동일한 행에 배치된다.
본 발명의 제3국면에 따른 승산장치는, 제1국면에 따른 승산장치에 있어서, 상기 제1차 가산기를 한쌍 마련하되, 한쪽의 상기 제1차 가산기의 상기 하위 가산기를 다른쪽의 상기 제1차 가산기의 상기 하위 가산기에 대해서 다른쪽의 상기 제1차 가산기의 상기 상위 가산기와는 반대측에 배치한 것이다.
본 발명의 제1국면에 따른 승산장치에 의하면, 월레스 트리 구조를 채용하는 승산장치에 있어서 행방향으로 가장 긴 배치 영역을 필요로 하는 제 i 차 가산기의 각각을 상위 가산기와 하위 가산기로 분할하고 이들을 서로 다른 행에 배치함으로써, 행방향으로 필요한 배치영역의 길이를 감소시킬 수 있다.
본 발명의 제2국면에 따른 승산장치에 의하면, 한쌍의 제1차 가산기를 모두 최종 부분곱의 특정 자릿수를 경계로 해서 분리시킴으로써, 상위 가산기의 길이 및 하위 가산기의 길이가 제1차 가산기끼리 다르다. 따라서, 짧은 쪽의 상위 가산기와 짧은 쪽의 하위 가산기를 동일한 행에 배치하는 것에 의해서, 승산장치 전체의 행방향 치수를 감소시킬 수 있다.
본 발명의 제3국면에 따른 승산장치에 의하면, 제1차 부분곱의 상위 자릿수와 하위 자릿수를 서로 반대방향으로 끌어내는 것에 의해서, 어떤 방향으로 제1차 이후의 부분곱을 산출할 필요가 있는 경우, 그 전체를 우회시킬 필요없이 상위 자릿수 또는 하위 자릿수만을 우회시키는 것만으로 가능하게 한다.
본 발명의 상기 및 그밖의 목적, 특징, 국면 및 이익들은 첨부 도면을 참조로 설명하는 이하의 상세한 설명으로부터 더욱 명백해질 것이다.
이하, 본 발명의 실시예를 첨부도면을 참조로 상세하게 설명한다.
A . 기본적 사상
도 1~도 4개는 4개 모두 본 발명의 기본적 사상을 도시한 회로도이다. 도 2는 가상선 Q1Q1에서 도 1과, 가상선 Q2Q2에서 도 3과 각각 연속한다. 또, 도 4는 가상선 Q3Q3에서 도 3과 연속한다. 도 1~도 4에는 도 23~도 26과 대응한 요소만이 도시되어 있고, 도 19에 도시된 구성중 도 23~ 도 26에서 생략된 부분, 즉, 부스 엔코더(103) 또는 최종 가산부(131)는 도1~도 4에서도 생략되어 있다.
본 발명의 기본적인 사상은 구조적인 것과 방법적인 것의 2가지로 파악된다. 제1방법은 월레스 트리를 구성하는 가산기를 특정 자릿수에서 분할하여 다른 행에 배치하는 것이고, 제2방법은 월레스 트리에 있어서의 누적적인 가산을 2분해서 각각을 공간적으로 서로 다른 방향을 향해 진행시키는 것이다.
시프터/인버터(113)는 최하위, 더욱 정확하게는 승산 결과의 최하위부터 15비트째와 16비트째 사이를 경계로 해서 상위 2비트분의 시프터/인버터 요소(B116~B117)를 갖는 상위부(1)와 하위 15비트분의 시프터/인버터 요소(B101~B115)를 갖는 하위부(2)의 2개로 구성되어 있다고 볼 수 있다. 마찬가지로, 시프터/인버터(114)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(114) 자체의 최하위로부터 13비트째와 14비트째를 경계로 해서)상위 4비트분의 시프터/인버터 요소(B214~B217)를 갖는 상위부(3)와 하위 13비트분의 시프터/인버터 요소(B201~B213)를 갖는 하위부(4)의 2개로 구성되어 있다고 볼수 있다. 시프터/인버터(115)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(115) 자체의 최하위로부터 11비트째와 12비트째를 경계로 해서) 상위 6비트분의 시프터/인버터 요소(B312~B317)를 갖는 상위부(5)와 하위 11비트분의 시프터/인버터 요소(B301~B311)를 갖는 하위부 (6)의 2개로 구성되어 있다고 볼 수 있다. 시프터/인버터(116)은 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(116) 자체의 최하위로부터 9비트째와 10비트째를 경계로 해서) 상위 8비트분의 시프터/인버터 요소(B410~B409)를 갖는 상위부(7)와 하위 9비트분의 시프터/인버터 요소(B401~B417)를 갖는 하위부(8)의 2개로 구성되어 있다고 볼 수 있다.
또, 시프터/인버터(117)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(117) 자체의 최하위로부터 7비트째와 8비트째를 경계로 해서) 상위 10비트분의 시프터/인버터 요소(B508~B517)를 갖는 상위부(9)와 하위 7비트분의 시프터/인버터 요소(B501~B507)를 갖는 하위부(10)의 2개로 구성되어 있다고 볼 수 있다. 시프터/인버터(118)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(118) 자체의 최하위로부터 5비트째와 6비트째를 경계로 해서)상위 12비트분의 시프터/인버터 요소(B606~B617)를 갖는 상위부(11)와 하위 5비트분의 시프터/인버터 요소(B601~B605)를 갖는 하위부(12)의 2개로 구성되어 있다고 볼 수 있다. 시프터/인버터(119)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(119) 자체의 최하위로부터 3비트째와 4비트째를 경계로 해서) 상위 14비트분의 시프터/인버터 요소(B704~B417)를 갖는 상위부(13)와 하위 3비트분의 시프터/인버터 요소(B701~B703)를 갖는 하위부(14)의 24개로 구성되어 있다고 볼 수 있다. 시프터/인버터(120)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서(시프터/인버터(120)자체의 최하위로부터 1비트째와 2비트째를 경계로 해서) 상위 16비트분의 시프터/인버터 요소(B802~B817)를 갖는 상위부(15)와 하위 1비트분의 시프터/인버터 요소(B801)를 갖는 하위부(16)의 2개로 구성되어 있다고 볼 수 있다.
상위부(1, 3, 5, 7, 9, 11, 13, 15)에서는 제0차 부분곱의 상위측 부분인 상위 부분곱(17, 19, 21, 23, 25, 27, 29, 31)이 각각 출력된다. 또, 하위부(2, 4, 6, 8, 10, 12, 14, 16)에서는 제0차 부분곱의 하위측 부분인 하위 부분곱(18, 20, 22, 24, 26, 28, 30, 32)이 각각 출력된다. 상위 부분곱(17)과 하위 부분곱(18)은 부분곱(121)을, 상위 부분곱(19)과 하위 부분곱(20)은 부분곱(122)를, 상위 부분곱(21)과 하위 부분곱(22)는 부분곱(123)을, 상위 부분곱(23)과 하위 부분곱(24)는 부분곱(124)를, 상위 부분곱(25)과 하위 부분곱(26)은 부분곱(125)을, 상위 부분곱(27)과 하위 부분곱(28)은 부분곱(126)을, 상위 부분곱(29)과 하위 부분곱(30)은 부분곱(127)을, 상위 부분곱(31)과 하위 부분곱(32)은 부분곱(128)을 각각 구성한다.
제1차 가산기(138)는 최하위, 더욱 정확하게는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서 상위 8비트분의 가산 요소(P116~P123)를 갖는 상위 가산기(33)와 하위 15비트분의 가산 요소(P101~P115)를 갖는 하위 가산기(37)의 2개로 구성되어 있다고 볼수 있다. 또 제1차 가산기(139)는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서 (제1차 가산기(139)자체의 7비트째와 8비트째 사이를 경계로 해서)상위 16비트분의 가산 요소(P208~P223)를 갖는 상위 가산기(35)와 하위 7비트분의 가산 요소(P201~P207)를 갖는 하위 가산기(34)의 2개로 구성되어 있다고 볼 수 있다.
또, 제2차 가산기(140)는 최하위, 더욱 정확하게는 승산 결과의 최하위로부터 15비트째와 16비트째 사이를 경계로 해서 상위 17비트분의 가산 요소(P306~P332)를 갖는 상위 가산기(36)와 하위 15비트분의 가산 요소(P301~P315)를 갖는 하위 가산기(38)의 2개로 구성되어 있다고 볼 수 있다.
제1방법에 따라서 설명하면, 제1차 가산기(138)를 구성하는 상위 가산기(33) 및 하위 가산기(37)는 서로 다른 행에 배치되어 있다. 마찬가지로, 제1차 가산기(139)를 구성하는 상위 가산기(35) 및 하위 가산기(34)는 서로 다른 행에 배치되어 있고, 또 제2차 가산기(140)를 구성하는 상위 가산기(36) 및 하위 가산기(38)도 서로 다른 행에 배치되어 있다. 따라서, 상기와 같이 시프터/인버터(113~120), 제1차 가산기(138, 139) 및 제2차 가산기(140)가 배열된 경우에는 그의 행방향 폭의 최대값은 상위 가산기(36)가 갖는 17비트를 초과할 수 없다.
즉, 본 발명에 의하면, 종래에 있어서 행방향 폭 감소의 방해 원인으로 되었던 제 1차 가산기(138, 139) 및 제 2차 가산기(140)를 분할 배열하는 것에 의해 행방향 폭을 감소시킬 수 있게 한다.
제2방법에 따라서 설명하면, 제 0차 부분곱의 상위 부분곱(17, 19, 21, 23, 25, 27, 29, 31)이 도 1~도 4에 있어서 아래쪽으로 전달되고, 제1차 가산기(138, 139)의 각각의 상위 가산기(33, 35)에 의해서 각각 제 1차 부분곱의 상위 부분곱(39, 40)이 얻어지고, 또 제 2차 가산기(140)의 상위 가산기(36)에 의해서 제 2차 부분곱의 상위 부분곱(43)이 얻어진다.
한편, 제 0차 부분곱의 하위 부분곱(18, 20, 22, 24, 26, 28, 30, 32)이 도 1~도 4에 있어서 위쪽으로 전달되고, 제1차 가산기(138, 139)의 각각의 하위 가산기(37, 34)에 의해서 각각 제1차 부분곱의 하위 부분곱(42, 41)이 얻어지며, 또 제 2차 가산기(140)의 하위 가산기(38)에 의해서 제2차 부분곱의 하위 부분곱(44)이 얻어진다.
이와 같이 공간적으로 다른 2방향으로의 누적적인 가산은, 제 1차 가산기(138, 139) 및 제2차 가산기(140)를 분할해서 배열하는 것에 의해 용이하게 구현될 수 있다. 이에 의해, 상하 양방향으로 제 1차 이후의 부분곱을 산출해 낼 필요가 있어도 그 전체를 우회시킬 필요가 없으며, 상위 비트 또는 하위 비트만을 우회시키는 것만으로 충분하다.
이와 같이, 제1차 가산기(138, 139) 및 제 2차 가산기(140)를 분할 배열한 경우에도 캐리 단자(C) 및 캐리-아웃 단자(CO)에서는 신호를 얻을 수 있다. 예를 들면, 하위 가산기(34)의 최상위 비트에 대응하는 가산 요소(P207)의 캐리 단자(C)에서는 신호(61)가 얻어진다. 또, 가산 요소(P207)의 캐리-아웃 단자(CO)에서는 신호(62)가 얻어진다. 단, 도 2에서, 이 신호는 상위 가산기(33)의 최하위 비트에 대응하는 가산 요소(P116)의 캐리-인 단자(CI)에 부가되므로 도시되지 있지 않다. 하위 가산기(37)의 최상위 비트에 대응하는 가산 요소(P115)의 캐리 단자(C)에서는 신호(63)가, 캐리-아웃 단자(CO)에서는 신호(64)가 각각 얻어진다. 또, 하위 가산기(38)의 최상위 비트에 대응하는 가산 요소(P315)의 캐리 단자(C)에서는 신호(65)가, 캐리-아웃 단자(CO)에서는 신호(66)가 각각 얻어진다. 이들 신호의 전달에 관한 변형예는 이후「C. 캐리의 처리」에서 설명된다.
B. 시프터/인버터 및 가산기의 배열
도 1~도 4에 도시된 바와 같은 배열의 상태에서는 행방향 폭의 최대값을 작게 제어할 수는 있지만, 면적의 이용효율을 높이기 위해서는 도 27에 도시된 바와 같이 시프터/인버터(113~120), 제1차 가산가(138, 139) 및 제 2차 가산기(140)의 단부를 맞추어 배열하는 것이 바람직하다. 본 절에 있어서는 개시되는 각종 실시예에서는 면적의 이용 효율을 높이는 배열의 변형예를 제공한다.
(B-1). [실시예 1]
도 5는 본 발명의 실시예 1의 구성을 도시한 블럭도이다. 시프터/인버터(113~120), 제1차 가산기(138,139)및 제2차 가산기(140)의 상호간의 제 0차 ~제 2차 부분곱의 전달 관계는 도 1~도 4에 도시된 것과 마찬가지이므로, 도면의 번잡을 회피하기 위해 도 5에 있어서는 생략하였다.
도 5에 있어서는 시프터/인버터(113~120)의 어느것도 분할하지 않고 그들의 한쪽 단부를 나란히 맞추고 참조부호 순으로 위에서 아래로 배열하였다. 제 1차 가산기(138)의 상위 가산기(33)와 제1차 가산기(139)의 하위 가산기(34)는 각각의 한쪽 단부를 시프터/인버터(113~120)의 단부에 맞추면서 시프터/인버터(116)와 시프터/인버터(117) 사이의 동일 행에 배열하였다. 또, 제1차 가산기(138)의 하위 가산기(37)와 제2차 가산기의 하위 가산기(38)는 시프터/인버터(113)의 바로 위에 위쪽을 향해 차례로 배열되어 있다. 또, 제1차 가산기(139)의 상위 가산기(35)와 제2차 가산기의 상위 가산기(36)는 시프터/인버터(120)의 바로 아래에 아래쪽을 향해 차례로 배열되어 있다.
구체적으로는 상위부(1, 3, 5, 7)의 각각의 최상위 비트에 대응하는 시프터/인버터 요소(B117, B217, B317, B417), 상위 가산기(33)의 최상위 비트에 대응하는 가산 요소(P123), 상위부(9, 11, 13, 15)의 최상위 비트에 대응하는 요소(B517, B617, B717, B817), 상위 가산기(35)의 최상위 비트에 대응하는 가산 요소(P223), 상위 가산기(36)의 최상위 비트에 대응하는 가산 요소(P332)가 위에서 아래로 차례로 동일한 열(도면중 좌측단의 열)에 배열되어 있다.
한편, 하위 가산기(38, 37)의 각각의 최하위 비트에 대응하는 가산 요소(P301, P101), 하위부(2, 4, 6, 8)의 각각의 최하위 비트에 대응하는 시프터/인버터 요소(B101, B201, B301, B401), 하위 가산기(34)의 최하위 비트에 대응하는 가산 요소(P201), 하위부 (10, 12, 14, 16)의 최하위 비트에 대응하는 요소(B501, B601, B701, B801), 하위 가산기(36)의 최하위 비트에 대응하는 가산 요소(P316)가 위에서 아래로 차례로 동일한 열(도 5중 우측단의 열)에 배열되어 있다.
제1차 가산기(138)중 상위 가산기(33)의 비트수는 그의 하위 가산기(37)의 비트수보다 적다. 또, 제1차 가산기(139)중 하위 가산기(34)의 비트수는 그의 상위 가산기(35)의 비트수보다 적다. 따라서, 상위 가산기(33)와 하위 가산기(34)를 동일한 행에 배치해도, 그의 행방향 폭은 제1차 가산기(138, 139)보다 작아진다.
또, 제0차 부분곱을 생성하는 시프터/인버터의 상위부와 하위부의 경계를 승산 결과를 최하위로부터 15비트째와 16비트째의 경계로 해서 승산 결과의 대략 중앙부근에서 취하고 있다. 바꾸어 말하면, 시프터/인버터의 모두를 분할할 수 있는 위치에 경계를 취하고 있다. 이 때문에, 제2차 가산기(140)는 모두 17비트를 초과하지 않는 비트수의 상위부(36) 및 하위부(38)로 분할되어 배치된다.
따라서, 종래의 경우에는 볼 수 있었던 빈영역 DS1, DS2이 내부에 형성되지 않고 면적을 효율적으로 이용해서 시프터/인버터(113~120), 제1차 가산기(138, 139) 및 제2차 가산기(140)의 배열의 집적도를 향상시킬 수 있다.
물론, 하위 가산기(38)의 최상위 비트에 대응하는 가산 요소(P315) 및 하위 가산기(37)의 최상위 비트에 대응하는 가산 요소(P115)를 도 5의 좌측단의 열에 나란히 배치할 수도 있고, 상위 가산기(35)의 최하위 비트에 대응하는 가산 요소(P208)를 도 5의 우측단의 열에 배치해도 좋다.
(B-2).[실시예 2]
도 6은 본 발명의 실시예 2의 구성을 도시한 블럭도이다. 실시예 1과는 달리, 제1차 가산기(138)의 상위 가산기(33), 제1차 가산기(139)의 하위 가산기(34)가 서로 다른 행에 배치되어 있다. 그리고, 동일한 시프터/인버터를 구성하는 상위부 및 하위부도 서로 다른 행에 배치되어 있다. 또, 제2차 가산기(140)의 하위 가산기(38)가 배치되는 행, 제1차 가산기(138)의 하위 가산기(37)가 배치되는 행, 제1차 가산기(139)의 상위 가산기(35)가 배치되는 행 및 제 2차 가산기(140)의 상위 가산기(36)가 배치되는 행에도 시프터/인버터의 상위부 또는 하위부가 배치되어 있다.
구체적으로는, 위로부터 순서대로 제1행째에는 시프터/인버터(113)의 상위부(1)와 제2차 가산기(140)의 하위 가산기(38)가, 제2행째에는 시프터/인버터(114)의 상위부(3)와 제1차 가산기(138)의 하위 가산기(37)가, 제 3행째에는 시프터/인버터(115)의 상위부(5)와 시프터/인버터(113)의 하위부(2)가, 제4행째에는 시프터/인버터(116)의 상위부(7)와 시프터/인버터(114)의 하위부(4)가, 제 5행째에서는 제 1차 가산기(138)의 상위 가산기(33)와 시프터/인버터(115)의 하위부(6)가, 제 6행째에는 시프터/인버터(117)의 상위부(9)와 시프터/인버터(116)의 하위부(8)가, 제 7행째에는 시프터/인버터(118)의 상위부(11)와 제1차 가산기(139)의 하위 가산기(34)가, 제 8행째에는 시프터/인버터(119)의 상위부(13)와 시프터/인버터(117)의 하위부(10)가, 제 9행째에는 시프터/인버터(120)의 상위부(15)와 시프터/인버터(118)의 하위부(12)가, 제 10 행째에는 제1차 가산기(139)의 상위부(35)와 시프터/인버터(119)의 하위부(14)가, 제 11 행째에는 제2차 가산기(140)의 상위 가산기(36) 와 시프터/인버터(120)의 하위부(16)가 각각 배치되어 있다.
이와 같은 배열에 있어서 행방향 폭을 결정하는 것은 제 3, 4, 8, 9행으로서, 그 폭은 21비트분에 상당한다. 이것은 실시예 1에 있어서의 행방향의 폭이 7비트분이었던 것과 비교하면, 배열에 필요한 영역이 행방향으로 큰 것을 나타내고 있다. 그러나, 행수는 실시예 1에 있어서 13 행 필요했던 것에 비해, 실시예 2에 있어서는 11행 필요하여 열방향으로 작은 영역에 배열하는 것이 가능하다.
즉, 실시예 2를 적용하는 것에 의해, 열방향으로 큰 영역을 준비할 수 없는 경우라도 빈영역을 내부에 형성하지 않고 유효하게 면적을 이용해서 시프터/인버터 및 가산기 배열을 구현할 수 있다.
(B-3).[실시예 3]
도 7은 본 발명의 실시예 3의 구성을 도시한 블럭도이다. 실시예 1에서 도 5를 참조해서 설명한 배열에 대해서 부스 엔코더 요소(45~52)를 배치하는 방법을 설명한다.
도 7에 있어서는 상위부(1, 3, 5, 7, 9, 11, 13, 15), 하위부(2, 4, 6, 8, 10, 12, 14, 16), 상위 가산기(33, 35, 36)및 하위 가산기(34, 37, 38)의 구성은 이미 도 1~도 6에 있어서 도시된 것과 동일하므로, 이들은 단순한 비트수에 따른 행방향의 폭을 가진 블럭으로서 도시되어 있다. 단, 제0차 부분곱의 상위 부분곱(17, 19, 21, 23, 25, 27, 29, 31)및 하위 부분곱(18, 20, 22, 24, 26, 28, 30, 32), 제1차 부분곱의 상위 부분곱(39, 40) 및 하위 부분곱(41, 42) 및 제 2차 부분곱의 상위 부분곱(43) 및 하위 부분곱(44)은 개념적으로 화살표로 도시되어 있다. 정확한 제0차 내지 제2차 부분곱의 전달 관계는 도 1~도 4에 도시되어 있는 것과 동일하다.
시프터/인버터(113~120)가 배치되어 있는 행의 상위부측에는 부스 엔코드 요소(45~52)가 각각 배치되어 있다. 그리고, 수정 승수인 제어 신호(104~111)가 각각 시프터/인버터(113~120)에 부가된다.
이와 같이 본 실시예에 의하면, 모든 제어 신호를 동일한 행에 배치된 시프터/인버터에 부가하면 되므로, 제어 신호 배선이 단순화되고 그의 설치가 용이하게 된다.
(B-4).[실시예 4]
도 8은 본 발명의 실시예 4의 구성을 도시한 블럭도이다. 실시예 1에서 도 5를 사용해서 설명한 배열에 대해서 부스 엔코드 요소(45~52)를 배치하는 방법을 도시하고 있다.
시프터/인버터(113~120)가 배치되어 있는 행에는 부스 엔코드 요소(45~52)가 각각 배치되어 있다. 단, 실시예 3에 있어서 도 7에 도시된 구성과는 달리 시프터/인버터의 상위부와 하위부 사이에 끼여 배치되어 있다. 시프터/인버터의 상위부의 행방향의 폭은 각 시프터/인버터에 따라서 다르므로, 부스 엔코드 요소(45~52)는 행방향으로 어긋나게 배치된다(동일한 열에는 배치되지 않는다).
그리고, 수정 승수인 제어 신호(104~111)가 부스 엔코스 요소(45~52)의 좌우로 출력되고 있다. 즉, 부스 엔코드 요소(45)의 좌측으로 출력되는 제어 신호(104)는 시프터/인버터(113)의 상위부(1)로, 우측으로 출력되는 제어 신호(104)는 시프터/인버터(113)의 하위부(2)로 각각 전달된다. 마찬가지로, 부스 엔코드 요소(46)의 좌측으로 출력되는 제어 신호(105)는 시프터/인버터(114)의 상위부(3)로, 우측으로 출력되는 제어 신호(105)는 시프터/인버터(114)의 하위부(4)로, 부스 엔코드 요소(47)의 좌측으로 출력되는 제어 신호(106)는 시프터/인버터(115)의 상위부(5)로, 우측으로 출력되는 제어 신호(106)는 시프터/인버터(115)의 하위부(6)로, 부스 엔코드 요소(48)의 좌측으로 출력되는 제어 신호(107)는 시프터/인버터(116)의 상위부(7)로, 우측으로 출력되는 제어신호(107)는 시프터/인버터(116)의 하위부(8)로, 부스 엔코드 요소(49)의 좌측으로 출력되는 제어 신호(108)는 시프터/인버터(117)의 상위부(9)로, 우측으로 출력되는 제어 신호(108)는 시프터/인버터(117)의 하위부(10)로, 부스 엔코드 요소(50)의 좌측으로 출력되는 제어 신호(109)는 시프터/인버터(118)의 상위부(11)로, 우측으로 출력되는 제어 신호(109)는 시프터/인버터(118)의 하위부(12)로, 부스 엔코드 요소(51)의 좌측으로 출력되는 제어 신호(110)는 시프터/인버터(119)의 상위부(13)로, 우측으로 출력되는 제어 신호(110)는 시프터/인버터(119)의 하위부(14)로, 부스 엔코드 요소(52)의 좌측으로 출력되는 제어 신호(111)는 시프터/인버터(120)의 상위부(15)로, 우측으로 출력되는 제어 신호(111)는 시프터/인버터(120)의 하위부(16)로 각각 전달된다.
이와 같이, 본 실시예에 의하면 실시예 3과 마찬가지로 제어 신호의 배선이 단순화되어 그의 설치가 용이하게 된다. 또, 부스 엔코드 요소 행방향으로 어긋나게 배치되므로, 피승수와 평행하게(즉 상하방향에서)승수가 부가되는 경우에도 승수를 부스 엔코드 요소로 전달하는 배선도 단순화되어 그의 설치가 용이하게 된다.
(B-5).[실시예 5]
도 9는 본 발명의 실시예 5의 구성을 도시한 블럭도이다. 실시예 2에서 도 6을 사용해서 설명한 배열에 대해서 부스 엔코드 요소(45~52)를 배치하는 방법을 도 9에 도시하고 있다.
시프터/인버터(113~120)의 각각의 상위부(1, 3, 5, 7, 9, 11, 13, 15)가 배치되어 있는 행의 좌측에 부스 엔코드 요소(45~52)가 각각 배치되어 있다. 이러한 배치에 의하면, 부스 엔코드 요소는 자신으로부터 2 행분만큼 아래에 위치하는 하위부로 제어 신호를 전달할 필요가 있으으모, 이러한 전달에 필요한 배선이 행을 가로질러 배선이 복잡하게 된다.
그러나, 제어 신호의 필요한 배선은 기껏해야 수개 이하이므로, 배선의 복잡화에 따른 면적의 증가는 작다. 따라서, 이와 같은 배치를 실행해도 실시예 1에서 얻어지는 효과를 거의 손상시키는 일은 없다.
(B-6).[실시예 6]
도 10은 본 발명의 실시예 6에 구성을 도시한 블럭도이다. 실시예 2에서 도 6을 사용해서 설명한 배열에 대해서 부스 엔코드 요소(45~52)를 배치하는 방법을 도시하고 있다.
시프터/인버터(113~120)의 각각의 상위부(1, 3, 5, 7, 9, 11, 13, 15)가 배치되어 있는 행의 우측에 부스 엔코드 요소(45~52)가 각각 배치되어 있다. 이러한 배치를 실행해도 실시예 5와 마찬가지로, 배선의 복잡화에 따른 면적의 증가는 작으므로, 실시예 3에서 얻어지는 효과를 거의 손상시키는 일은 없다.
또, 승산장치의 설계상 열방향 길이보다 행방향 폭에 대한 제한이 느슨한 경우에 실시예 3과 같이 행수를 억제하는 배열이 실행된다. 따라서, 그와 같은 제한하에서 피승수와 평행하게 승수가 부가되는 경우에는 실시예 4보다 실시예 6이 바람직하다.
(B-7).[실시예 7]
도 11은 본 발명의 실시예 7의 구성을 도시한 블럭도이다. 실시예 2에서 도 6을 사용해서 설명한 배열에 대해서 부스 엔코드 요소(45~52)를 배치하는 방법을 도 11에 도시하고 있다.
실시예 3이나 실시예 7에 있어서는 동일한 시프터/인버터를 구성하는 상위부 및 하위부가 서로 2 행분만큼 떨어진 행에 배치되어 있다. 그리고, 실시예 7에서는 동일한 시프터/인버터를 구성하는 상위부가 배치된 행과 하위부가 배치된 행사이의 행에, 대응하는 부스 엔코드 요소가 배치된다.
구체적으로, 제2행째에는 시프터/인버터(114)의 상위부(3)와 제 1차 가산기(138)의 하위 가산기(37) 사이에 부스 엔코드 요소(45)가, 제3행째에는 시프터/인버터(115)의 상위부(5)와 시프터/인버터(113)의 하위부(2) 사이에 부스 엔코드 요소(46)가, 제 4행째에는 시프터/인버터(116)의 상위부(7)와 시프터/인버터(114)의 하위부(4) 사이에 부스 엔코드 요소(47)가, 제 5행째에는 제1차 가산기(138)의 상위 가산기(33)와 시프터/인버터(115)의 하위부(6) 사이에 부스 엔코드 요소(48)가, 제 7행째에는 시프터/인버터(118)의 상위부(11)와 제1차 가산기(139)의 하위 가산기(34) 사이에 부스 엔코드 요소(49)가, 제 8행째에는 시프터/인버터(119)의 상위부(13)와 시프터/인버터(117)의 하위부(10) 사이에 부스 엔코드 요소(50)가, 제 9행째에는 시프터/인버터(120)의 상위부(15)와 시프터/인버터(118)의 하위부(12) 사이에 부스 엔코드 요소(51)ㄱ, 제 10행째에는 제1차 가산기(139)의 상위 가산기(35)와 시프터/인버터(119)의 하위부(14) 사이에 부스 엔코드 요소(52)가 각각 배치된다.
이와 같은 배치에 의해서, 부스 엔코드 요소(45)의 좌측으로 출력되는 제어 신호(104)를 시프터/인버터(113)의 상위부(1)로 전달하는 배선의 길이와 우측으로 출력되는 제어 신호(104)를 시프터/인버터(113)의 하위부(2)로 전달하는 배선의 길이를 거의 동일하게 설계할 수가 있다. 따라서, 동일한 시프터/인버터에 있어서의 동작시간의 어긋남을 억제할 수가 있다.
물론, 피승수와 평행하게 승수가 부가되는 경우에 있어서의 실시예 4, 실시예 6의 효과는 실시예 7에 있어서도 발휘된다.
C. 캐리의 처리
A 절에서 약간 언급했지만, 하위 가산기(34)의 최상위 비트에 대응히는 가산요소(P207)의 캐리 단자(C)로부터는 신호(61)가, 가산 요소(P207)의 캐리-아웃 단자(CO)로부터는 신호(62)가, 하위 가산기(37)의 최상위 비트에 대응하는 가산 요소(P115)의 캐리 단자(C)로부터는 신호(63)가, 캐리-아웃 단자(CO)로부터는 신호(64)가, 하위 가산기(38)의 최상위 비트에 대응하는 가산 요소(P315)의 캐리 단자(C)로 부터는 신호(65)가, 캐리-아웃 단자(CO)로부터는 신호(66)가 각각 얻어진다.
신호(61~66)는 모두 승산 결과의 아래로부터 16비트째에 있어서 가산될 값을 갖고, 이하의 실시예에 있어서는 이들의 처리에 대한 변형예가 설명된다.
(C-1).[실시예 8]
도 12는 본 발명의 실시예 8의 구성을 도시한 블럭도이다. 실시예 1에서 도 2를 사용해서 설명한 배열에 있어서 신호(61~66)를 가산하기 위한 (캐리 가산용)4입력 2출력의 가산 요소(70)를 더 마련한 구성이 도시되어 있다. 하위 부분곱(44)은 신호(65)와 각각 이외의 부분인 신호군(44a)으로 구성되어 있다.
도 2에 있어서는 가산 요소(P0116)의 캐리-인 단자(CI)에 부가되고 있었기 때문에 생략되었던 신호(62)가 신호(61, 63, 64)와 함께 가산 요소(70)의 4입력에 부가된다. 또, 가산 요소(70)의 캐리-인 단자(CI)에는 요소(P315)의 캐리-아웃 단자(CO)로부터의 신호(66)가 부가된다.
이 결과, 가산 요소(70)의 합계 단자(S) 및 캐리 단자(C)로부터 각각 신호(67, 68)가 얻어지고, 캐리-아웃 단자(CO)로부터 신호(69)가 얻어진다. 신호(65, 67)는 모두 승산 결과의 아래로부터 16비트째에 있어서 가산될 값이고, 신호(68, 69)는 모두 승산 결과의 아래로부터 17비트째에 있어서 가산될 값이다. 즉, 승산결과의 아래로부터 16비트째에서는 신호(65, 67)과 제 2차 부분곱의 상위 부분곱(43)의 최하위 비트의 2개의 데이타를 가산할 필요가 있고, 승산 결과의 아래로부터 17비트째에서는 신호(68, 69)와 제 2차 부분곱의 상위 부분곱(43)의 최하위 비트보다 1비트만큼 상위인 2개의 데이타를 가산할 필요가 있다.
도 13은 최종 가산부(131)의 구성을 도시한 블럭도이다. 최종 가산부(131)는 상위 가산기(36)와 마찬가지로 17비트분만큼 도 21에 도시되는 바와 같이 접속된 4입력 2출력 가산 요소로 구성된 전단 가산기(72)와, 32비트분의 2입력 1출력 가산 요소로 구성된 후단 가산기(74)로 구성되어 있다.
전단 가산기(72)는 제2차 부분곱의 상위 부분곱(43)과 신호(65, 67~69)를 수신하여, 비트마다 한쌍을 이루는 신호군(71)을 출력한다. 후단 가산기(73)는 신호군(44a)을 하위측에서, 신호군(71)을 상위측에서 각각 가산처리하여 승산 결과(74)를 출력한다.
이와 같은 구성에 의해서, 후단 가산기(73)에는 비트마다 한쌍의 입력밖에 제공되지 않고(즉, 신호군(44a, 71)은 어떠한 비트에 있어서도 서로 겹치는 일이 없다), 이것을 캐리 룩 어헤드 방식 등에 의해 용이하게 실현할 수가 있다. 또, 전단 가산기(72)에 있어서 가산처리가 실행되고 있을 때에는 후단 가산기(73)의 하위측 (신호군(44a)이 입력하는 비트)의 가산처리를 병행해서 실행할 수 있으므로, 전단 가산기(72)를 마련하는 것에 의한 속도 저하는 발생하지 않는다. 이와 같이, 본 실시예에 의하면 실시예 1의 효과를 손상시키는 일이 없고 속도의 지연도 없이 캐리의 처리를 실행할 수가 있다.
또한, 본 실시예에서는 실시예 1에 있어서의 캐리의 처리에 대해서 설명하였지만, 다른 실시예 2~7에 대해서도 마찬가지로 해서 적용할 수가 있다.
(c-2).[실시예 9]
도 14는 본 발명의 실시예 9의 구성을 도시한 블럭도이다. 실시예 1에서 도 5를 사용해서 설명한 배열에 있어서 신호(61~63)를 가산하기 위한(캐리가산용) 2입력(캐리-인 단자(CI) 구비)2출력의 가산 요소(75)를 더 마련한 구성이 도시되어 있다.
A절에서는 신호(62)가 가산 요소(P116)의 캐리-인 단자(CI)에 제공되고 있지만, 본 실시예에 있어서는 신호(64)가 제공된다. 신호(64)도 제1차 가산기의 하위 가산기의 캐리라는 점에서 신호(62)와 등가이기 때문이다.
또, 신호(62)는 가산 요소(P208)의 캐리-인 단자(CI)에 제공된다. 이와 같은 신호(62, 64)의 제공 방법은 물론 도 23~ 도 26에서 설명된 종래기술과 공통된 기술이다.
한편, 신호(61, 63)는 가산 요소(75)의 2입력에 인가되고, 신호(66)는 가산요소(75)의 캐리-인 단자(CI)에 인가된다.
이상과 같은 구성에 의해서, 가산 요소(75)에 있어서의 가산 결과는 많아도 1+1+1=11로서, 이것을 출력하기 위해서는 1비트의 신호면 충분하다. 즉, 가산 요소(75)가 출력하는 것은 각각 1비트의 신호(67, 68)만으로 충분하고, 캐리-아웃 단자(CO)는 필요없다. 따라서, 가산 요소(75)의 구성을 가산 요소(70)의 구성보다 간소화시킬 수 있고, 또 신호(69)를 전달하기 위한 배선도 불필요하다.
물론, 신호(62, 64)가 서로 등가인 것에 의해서, 이들을 교체하는 것도 가능하다. 도 15는 도 14에 도시된 구성에 대해서 신호(62, 64)를 교체한 구성을 도시한 것이다.
또한, 본 실시예에서는 실시예 1에 있어서의 캐리의 처리에 대해서 설명했지만, 다른 실시예 2~7에 대해서도 마찬가지로 해서 적용할 수가 있다.
또, 본 실시예에서는 제0차 부분곱이 8개인 경우에 대해서 설명했지만, 제 0차 부분곱의 수가 더욱 증가해서 월레스 트리의 가산 단수(차수(order))가 증가하면, 캐리의 입출력의 조합의 자유도가 증가하여 본 실시예의 기술적 사상에 의해서 얻어지는 효과는 더욱 현저해진다.
(C-3).[실시예 10]
도 16은 본 발명의 실시예 10의 구성을 도시한 블럭도이다. 실시예 1에서 도 5를 사용해서 설명한 배열에 있어서 신호(61~66)의 전달 상태를 도시한 것이다.
제1차 가산기의 하위 가산기에서 쌍으로서 얻어지는 캐리의 한쪽인 신호(62, 64)는 제1차 가산기의 상위 가산기(33, 35)에 캐리-인으로서 인가된다(도 16에 있어서는 신호(62)가 가산 요소(P116)에, 신호(64)가 가산 요소(P208)에 각각 인가되고 있지만, 이들은 교체해도 좋다).
그런데, 도 4에 있어서는 제2차 가산기(140)의 상위 가산기(36)의 가산 요소(P316)에는 상위 가산기(33)로부터의 (보다 정확하게는 가산 요소(P116)의 합계 단자(S)에서 출력되는)1비트와 상위 가산기(35)로부터의 (보다 정확하게 가산 요소(P208)의 합계 단자(S)에서 출력되는) 1비트의 2비트밖에 입력되고 있지 않다.
본 실시예에 있어서는 제2차 가산기에 속하는 가산 요소(P316)의 다른 입력 단자인 캐리-인 단자(CI) 및 2개의 입력 단자에 각각 제2차 가산기(140)의 하위 가산기(38)의 가산 요소(P315)에서 쌍으로서서 얻어지는 캐리의 한쪽인 신호(66)와 제1차 가산기에 속하는 가산 요소(P115, P207)에서 쌍으로 얻어지는 캐리의 다른쪽 신호(63, 61)를 인가하는 상태가 도시되어 있다.
이와 같이 해서, 신호(61~64, 66)를 전달함에 의해서, 캐리 가산용의 가산 요소를 별도로 마련할 필요가 없어져서 하드웨어량을 감소시킬 수 있다.
이 때, 제2차 가산기(140)의 하위 가산기(38)의 가산 요소(P315)에서 쌍으로서 얻어지는 캐리의 다른쪽 신호(65)는 제 2차 부분곱의 하위 부분곱(44) 중에서 최상위 비트에 대응하므로, 후단 가산기(73)중의 신호(65)에 대응하는 비트(즉, 제2차 부분곱의 하위 부분곱(43)의 최하위 비트)에 있어서의 캐리-인으로서 후단 가산기(73)에 인가될 수 있다. 따라서, 최종 가산기(131)에 있어서 전단 가산기(72)도 생략할 수 있어 더욱더 하드웨어량을 감소시킬 수 있다.
본 실시예에서는 실시예 1에 있어서의 캐리의 처리에 대해서 설명했지만, 물론 다른 실시예 2~7에 대해서도 마찬가지로 해서 적용할 수가 있다.
(C-4).[실시예 11]
앞서의 실시예에서는 월레스 트리의 제 1차~제 2차 가산기를 4입력 2출력의 가산 요소로 구성한 경우에 대해서 설명해 왔지만, 3입력 2출력의 가산 요소로 구성할 수도 있다.
도 17은 제 1차 가산기(132, 133), 제2차 가산기(134, 135), 제 3차 가산기(136), 제4차 가산기(137)에 의해서 월레스 트리부(129)를 구성한 경우를 예시하는 블럭도이다.
제1차 가산기(132)에는 제0차 부분곱(121~123)이, 제1차 가산기(133)에는 제0차 부분곱(124~126)이, 제2차 가산기(134)에는 제 1차 가산기(132)의 출력 및 제1차 부분곱(133)의 출력의 상위측(이들은 모두 제1차 부분곱임)이, 제2차 가산기(135)에는 제1차 가산기(133)의 출력의 하위측(이것은 제 1차 부분곱임)및 제0차 부분곱(127, 128)이, 제 3차 가산기(136)에는 제 2차 가산기(134)의 출력 및 제2차 가산기(135)의 출력의 상위측(이것은 모두 제2차 부분곱임)이, 제 4차 가산기)(137)에는 제3차 가산기(136)의 출력(이것은 제3차 부분곱임) 및 제2차 가산기(135)의 출력의 하위측(이것은 제 2차 부분곱임)이 각각 인가된다. 그리고, 제 4차 가산기(137)는 최종 부분곱(130)을 출력한다.
이와 같이, 월레스 트리부(129)의 가산 단수(차수)가 많아지더라도 본 발명을 적용할 수 있다. 도 18은 3입력 2출력의 가산 요소로서 월레스 트리부를 구성한 경우의 부분곱의 전달을 도시한 블럭도이다. 제 1차 가산기의 일부인 상위 가산기(201)는 상위부(1, 3, 5)에서 제0차 부분곱으로서 출력되는 신호를 가산하고, 제1차 부분곱으로서 출력되는 2개의 출력을 모두 제2차 가산기의 일부인 상위 가산기(205)에 인가한다. 또, 제 1차 가산기의 일부인 상위 가산기(202)는 상위부(7, 9, 11)에서 제 0차 부분곱으로서 출력되는 신호를 가산하고, 제 1차 부분곱으로서 출력되는 2개의 출력 중의 한쪽을 상위 가산기(205)에 부가한다.
상위 가산기(202)의 2개 출력중 다른쪽은 상위부(13, 15)에서 제 0차 부분곱으로서 출력되는 신호와 함께 제 2차 가산기의 일부인 상위 가산기(206)에 부가된다. 상위 가산기(206)에서 제2차 부분곱으로서 출력되는 2개 출력중 한쪽은 제 2차 부분곱으로서 상위 가산기(205)에서 출력되는 신호와 함께 제 3차 가산기의 일부인 상위 가산기(207)에 부가된다. 상위 가산기(207)은 제 3차 부분곱으로서 출력되는 2개의 출력을 모두 제 4차 가산기의 일부인 상위 가산기(208)에 부가 한다. 상위 가산기(208)에는 또한 상위 가산기(206)에서 제2차 부분곱으로서 출력되는 2개 출력중 다른쪽이 부가되며, 상위 가산기(208)는 제4차 부분곱으로서 기능하는 신호를 출력한다.
제 1차 가산기의 일부인 하위 가산기(203)는 하위부(12, 14, 16)에서 제0차 부분곱으로서 출력되는 신호를 가산하고, 제1차 부분곱으로서 출력되는 2개의 출력을 모두 제2차 가산기의 일부인 하위 가산기(209)에 부가한다. 또, 제1차 가산기의 일부인 하위 가산기(204)는 하위부(6, 8, 10)에서 제 0차 부분곱으로서 출력되는 신호를 가산하고, 제1차 부분곱으로서 출력되는 2개 출력중 한쪽을 하위 가산기(209)에 부가한다.
하위 가산기(204)의 2개 출력중 다른쪽은 하위부(2, 4)에서 제0차 부분곱 으로서 출력되는 신호와 함께 제2차 가산기의 일부인 하위 가산기(210)에 부가된다. 하위 가산기(210)에서 제 2차 부분곱으로서 출력되는 2개 출력중 한쪽은 제2차 부분곱으로서 하위 가산기(209)에서 출력되는 신호와 함께 제3차 가산기의 일부인 하위 가산기(211)에 부가된다. 하위 가산기(211)는 제3차 부분곱으로서 출력되는 2개의 출력을 모두 제4차 가산기의 일부인 하위 가산기(212)에 부가한다. 하위 가산기(212)에는 딴 하위 가산기(210)에서 제 2차 부분곱으로서 출력되는 2개 출력중 다른쪽이 부가되며, 하위 가산기(212)는 제4차 부분곱으로서 기능하는 신호를 출력한다.
도 18에 도시된 구성은 도 1~도 4에 도시된 구성에 대응하며, 따라서 도 5~도 16에 도시된 바와 같은 실시예와 마찬가지로 각 시프터/인버터, 가산기를 배열하여 면적의 효율적 이용을 도모할 수가 있다.
상기 실시예에 있어서는 부스의 알고리즘을 이용한 경우에 대해서 설명했지만, 부스의 알고리즘을 이용하지 않는 경우에 있어서도 적용할 수 있는 것은 물론이다.
본 발명의 제1국면에 따른 승산장치에 의하면, 월레스 트리를 채용하는 승산장치에 있어서 행방향으로 가장 긴 배치영역을 필요로 하는 제i차 가산기의 각각을 상위 가산기와 하위 가산기로 분할하고 이들을 서로 다른 행에 배치하는 것에 의해서, 행방향으로 필요한 배치영역의 길이를 단축시킬 수 있다.
본 발명의 제2국면에 따른 승산장치에 의하면, 한쌍의 제1차 가산기를 모두 최종 부분곱의 특정 자릿수를 경계로 해서 분리함으로써, 상위 가산기의 길이 및 하위 가산기의 길이는 제1차 가산기끼리 다르다. 따라서, 짧은 쪽의 상위 가산기와 짧은 쪽의 하위 가산기를 동일한 행에 배치하는 것에 의해서, 승산장치 전체의 행방향의 치수를 단축시킬 수 있다.
본 발명의 제3국면에 따른 승산장치에 의하면, 제1차 부분곱의 상위 자릿수와 하위 자릿수를 서로 반대방향으로 끌어냄으로써, 어떠한 방향으로 제1차 이후의 부분곱을 산출할 필요가 있더라도 그 전체를 우회시킬 필요없이 상위 자릿수 또는 하위 자릿수만을 우회시키면 충분하다.
이상 개시된 실시예는 모든 예시적인 것으로서 본 발명의 범위를 제한하는 것이 아니다. 본 발명의 범위는 첨부된 특허청구의 범위에 의해서 한정되며, 그와 동등한 의미 및 범주내의 모든 변경을 포함하는 것으로 해석된다.

Claims (3)

  1. 피승수와, 승수에 기초해 얻어지는 여러개의 수정 승수를 수신하여, 상기 여러개의 수정 승수에 대응한 제0차 부분곱을 생성하는 여러개의 부분곱 생성부와, 열로 배열된 다수의 비트를 갖는 적어도 하나의 제i차(1≤i) 가산기를 갖는 행 어레이로 형성되며, 사전결정된 수의 제j차(0≤j≤i-1) 부분곱을 가산해서 제 i차 부분곱을 발생하되, 상기 부분곱의 수를 순차적으로 감소시키면서 트리(tree) 형상으로 부분곱을 가산해서 한쌍의 최종 부분곱을 출력하는 월레스 트리부(a Wallace tree circuit)와, 상기 최종 부분곱 쌍을 가산해서 상기 피승수와 상기 승수의 승산 결과를 얻는 최종 가산기를 포함하되, 상기 월레스 트리부의 상기 적어도 하나의 제 i 차 가산기는 상기 승산 결과의 특정 자릿수를 경계로 해서 상위 가산기와 하위 가산기로 분리되며, 상기 상위 가산기와 상기 하위 가산기는 서로 다른 행에 배치되는 승산장치.
  2. 제1항에 있어서, 상기 제1차 가산기는 한쌍 마련되고, 한쪽의 상기 제1차 가산기의 상기 상위 가산기는 다른쪽의 상기 제1차 가산기의 상기 상위 가산기보다 행방향으로 짧고, 다른쪽의 상기 제1차 가산기의 상기 하위 가산기는 한쪽의 상기 제1차 가산기의 상기 하위 가산기보다 행방향으로 짧고, 상기 한쪽의 상기 제1차 가산기의 상기 상위 가산기와 상기 다른쪽의 상기 제1차 가산기의 상기 하위 가산기가 동일한 행에 배치되는 승산장치.
  3. 제1항에 있어서, 상기 제1차 가산기는 한쌍 마련되고, 한쪽의 상기 제1차 가산기의 상기 하위 가산기는 다른쪽의 상기 제1차 가산기의 상기 하위 가산기에 대해서 다른쪽의 상기 제1차 가산기의 상기 상위 가산기의 반대측에 배치되는 승산장치.
KR1019960056860A 1996-02-27 1996-11-23 승산장치 KR100245944B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP04011196A JP3532338B2 (ja) 1996-02-27 1996-02-27 乗算装置
JP96-040111 1996-02-27

Publications (2)

Publication Number Publication Date
KR970062889A KR970062889A (ko) 1997-09-12
KR100245944B1 true KR100245944B1 (ko) 2000-03-02

Family

ID=12571752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960056860A KR100245944B1 (ko) 1996-02-27 1996-11-23 승산장치

Country Status (4)

Country Link
US (1) US5867415A (ko)
JP (1) JP3532338B2 (ko)
KR (1) KR100245944B1 (ko)
TW (1) TW313653B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100403938B1 (ko) * 1999-06-10 2003-11-01 한국전자통신연구원 대칭키 암호용 고속 (7, 3) 덧셈기
US6434587B1 (en) 1999-06-14 2002-08-13 Intel Corporation Fast 16-B early termination implementation for 32-B multiply-accumulate unit
JP4282193B2 (ja) * 2000-01-13 2009-06-17 株式会社ルネサステクノロジ 乗算装置
US7225217B2 (en) * 2001-10-09 2007-05-29 The Regents Of The University Of California Low-power Booth-encoded array multiplier
US6978426B2 (en) * 2002-04-10 2005-12-20 Broadcom Corporation Low-error fixed-width modified booth multiplier
US7313585B2 (en) * 2003-08-30 2007-12-25 Hewlett-Packard Development Company, L.P. Multiplier circuit
JP2005182238A (ja) * 2003-12-17 2005-07-07 Renesas Technology Corp 演算装置
US7433912B1 (en) 2004-02-19 2008-10-07 Sun Microsystems, Inc. Multiplier structure supporting different precision multiplication operations
JP5630870B2 (ja) * 2011-02-18 2014-11-26 ルネサスエレクトロニクス株式会社 半導体集積回路のレイアウト方法及びプログラム
CN111258545B (zh) * 2018-11-30 2022-08-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473559A (en) * 1993-01-14 1995-12-05 Mitsubishi Denki Kabushiki Kaisha Hardware implemented multiplier

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940002479B1 (ko) * 1990-03-20 1994-03-24 후지쓰 가부시끼가이샤 고속 디지탈 병렬승산기(multiplier)
US5325320A (en) * 1992-05-01 1994-06-28 Seiko Epson Area efficient multiplier for use in an integrated circuit
US5257217A (en) * 1992-05-01 1993-10-26 Seiko Epson Corporation Area-efficient multiplier for use in an integrated circuit
JP2859779B2 (ja) * 1992-06-17 1999-02-24 三菱電機株式会社 乗算器
US5504915A (en) * 1993-08-05 1996-04-02 Hyundai Electronics America Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
JP2600591B2 (ja) * 1993-11-19 1997-04-16 日本電気株式会社 乗算器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473559A (en) * 1993-01-14 1995-12-05 Mitsubishi Denki Kabushiki Kaisha Hardware implemented multiplier

Also Published As

Publication number Publication date
US5867415A (en) 1999-02-02
TW313653B (en) 1997-08-21
JP3532338B2 (ja) 2004-05-31
KR970062889A (ko) 1997-09-12
JPH09231056A (ja) 1997-09-05

Similar Documents

Publication Publication Date Title
Dadda Some schemes for parallel multipliers
US6029187A (en) Fast regular multiplier architecture
KR940002479B1 (ko) 고속 디지탈 병렬승산기(multiplier)
US4639857A (en) Digital data processor incorporating an orthogonally connected logic cell array
EP0239899A1 (en) Multiplier array circuit
US5504915A (en) Modified Wallace-Tree adder for high-speed binary multiplier, structure and method
US4718031A (en) Multiplying circuit
EP0613082B1 (en) 4:2 adder and multiplier circuit employing the same
GB2373602A (en) Multiplication logic with column compression
EP1475697A1 (en) Arithmetic circuit
EP0101318B1 (en) Digital filters
KR100245944B1 (ko) 승산장치
US5161119A (en) Weighted-delay column adder and method of organizing same
US4441158A (en) Arithmetic operation circuit
Ngai et al. Regular, area-time efficient carry-lookahead adders
US6018758A (en) Squarer with diagonal row merged into folded partial product array
US6065033A (en) Wallace-tree multipliers using half and full adders
JPH07191832A (ja) 2進数2乗回路
US7461107B2 (en) Converter circuit for converting 1-redundant representation of an integer
US5327368A (en) Chunky binary multiplier and method of operation
WO1999012093A1 (en) Multiplier sign extension
EP0073116B1 (en) Integrated data processing circuits
US20020147756A1 (en) Carry ripple adder
Pang Architectures for pipelined Wallace tree multiplier-accumulators
JP3477816B2 (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: 20081126

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee