KR920006323B1 - 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기 - Google Patents

스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기 Download PDF

Info

Publication number
KR920006323B1
KR920006323B1 KR1019900008199A KR900008199A KR920006323B1 KR 920006323 B1 KR920006323 B1 KR 920006323B1 KR 1019900008199 A KR1019900008199 A KR 1019900008199A KR 900008199 A KR900008199 A KR 900008199A KR 920006323 B1 KR920006323 B1 KR 920006323B1
Authority
KR
South Korea
Prior art keywords
modified
skip
adder
multiplier
output
Prior art date
Application number
KR1019900008199A
Other languages
English (en)
Other versions
KR910020549A (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 KR1019900008199A priority Critical patent/KR920006323B1/ko
Priority to US07/638,449 priority patent/US5181185A/en
Priority to JP03015984A priority patent/JP3115009B2/ja
Priority to GB9100849A priority patent/GB2244572B/en
Priority to ITMI910076A priority patent/IT1245097B/it
Priority to FR9100362A priority patent/FR2662829B1/fr
Priority to DE4101004A priority patent/DE4101004C2/de
Priority to CN91100375A priority patent/CN1020806C/zh
Publication of KR910020549A publication Critical patent/KR910020549A/ko
Application granted granted Critical
Publication of KR920006323B1 publication Critical patent/KR920006323B1/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/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3876Alternation of true and inverted stages

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)
  • Electromagnetism (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

내용 없음.

Description

스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기
제1도는 종래의 수정형 부스(Booth) 알고리즘을 사용하는 배열식 병렬 승산기를 나타낸 다이어그램.
제2도는 종래에 수정형 부스(Booth) 알고리즘과 월리스(Wallace) 트리를 사용하는 병렬 승산기를 나타낸 다이어그램.
제3도는 이 발명에 따른 병렬 승산기를 나타낸 다이어그램.
제4도는 이 발명에 따른 스킵배열(Skip Array)상태를 나타낸 다이어그램.
제5도는 월리스 트리의 구조를 나타낸 다이어그램으로서 (a)는 일반적인 월리스 트리의 구조, (b)는 이 발명에 따른 수정형 월리스트리의 구조.
제6도는 이 발명에 따른 전가산기 CMOS셀을 나타낸 회로도로서, (a)는 정입력-부출력 셀을 나타낸 회로, (b)는 부입력-정출력 셀을 나타낸 회로.
제7도는 이 발명에 따른 병렬 승산기에서 마지막 연산시 사용되는 하이브리드 프리픽스(Hybrid Prefix)가산기이다.
* 도면의 주요부분에 대한 부호의 설명
X : 피승수 Y : 승수
C : 올림수 S : 합
CL1,CL11 : 제1행 피연산자 가산셀 CL2,CL12 : 제2행 피연산자 가산셀
CL3, CL13 : 제3행 피연산자 가산셀 61,71,81,91,92,93 : 전기산기
MBE : 수정형 부스 부호기 HPA : 하이브리드 프리픽스 가산기
SAP : 스킵배열 MWT : 수정형 월리스 트리
FAD : 고속 가산기
이 발명은 병렬승산기에 관한 것으로서, 보다 상세하게는 수정형 부스(Booth) 알고리즘, 스킵 배열, 수정형 월리스 트리를 사용하는 2진수 병렬승산기에 관한 것이다. 병렬 승산기, 컴퓨터 연산장치(ALU), 팩시밀리(FAX), 신호처리시스템, 행렬 연산기(승산, Convolution 등), 특수목적용 칩 등과 같은, 여러가지 응용시스템에서 중요하게 사용되고 있는 2진수 병렬승산기의 칩(Chip)면적을 감소시키고 승산속도를 증가시키기 위한 여러가지 방법들이 제안되고 있다. 예를들어, John Wiley & Sons Co에서 발행한COMPUTER ARITHMETIC 1979, 페이지 129∼212 및 1978년 5월 29일자 발행된 NIKKEI ELECTRONICS, 페이지 76∼89의 기재에서 수정형 부스 알고리즘을 사용하는 병렬승산기는 속도를 크게 증가시킬 수 있다고 알려져 있다.
종래에 병렬 승산기는 기술된 바와 같이, 그 이용분야가 광범위한 만큼 다양한 알고리즘과 기술로 설계되고 있다. 현재까지 개발된 병렬 승산기중에서 비교적 성능이 우수하고 실제로 많이 사용되고 있는 것은 크게 두가지 종류가 있다. 두가지 방식은, 모두가 승산의 초기단계에서 수정형 부스(Booth)알고리즘을 사용하여 n/2개의 부분곱 행을 생성한다. 여기서 n은 피승수와 승수 각각의 입력비트수이다. 병렬 승산기 내부회로중 가장 비중이 크고 중요한 부분은 다수의 피연산자 가산회로로서 다수(n/2개)의 부분곱 행을 가산하여 두개의 행으로 감축시키게 되며, 이 부분을 구현하는데 있어서 첫째 방식은 전가산기 배열을 사용하고, 둘째 방식은 월리스 트리(Wallace Tree)를 사용한다.
첫번째, 배열을 이용한 승산기는 2차원 배열로 구성되고 각 셀은 기본적으로 전가산기를 사용한다. 이 승산기는 셀의 출력이 바로 다음행의 입력으로 순차적으로 전달되고 고유 특성을 가지고 있으며, 이와 같은 특성으로 인하여 0(n)의 지연시간 복잡도를 가지게 되어 계산시간이 근본적으로 느리다는 단점이 있다.
제1도는 배열을 이용한 병렬 승산기의 전반적인 구성이 도시되어 있다. 제1도의 병렬승산기에서 피승수(X)와 승수(Y)를 곱하는 경우 16비트의 자리수를 가지는 피승수(X)는 각각의 제1행 피연산자 가산셀(CL1), 제2행 피연산자 가산셀(CL2)…제8행 피연산자 가산셀(CL8)에 입력되고, 16비트의 자리수를 가지는 승수(Y)는 수정형 부스 부호기(MBE)에 입력된다.
수정형 부스 부호기(MBE)는 승수(Y)를 받아 수정형 부스알고리즘에 따라 부호화된 출력을 각각의 제1행 피연산자 가산셀(CL1), 제2행 피연산자 가산셀(CL3)…제8행 피연산자 가산셀(CL8)에 입력시킨다. 부호화된 출력은 3비트의 신호로써 수정형 부스 알고리즘에 의하여 연산된 값이 출력된다.
상기 각각의 제1행 내지 제8행 피연산자 가산셀들은 피승수(X)의 값과 수정형 부스 부호기(MBE)에서 부호화된 출력값을 각각 연산하고 제1행 피연산자 가산셀(CL1)에서 연산된 값은 다음 제2행 피연산자 가산셀(CL2)에서 연산된 값과 더해진다. 이때 상기 제2행 피연산자 가산셀(CL2)에서 연산된 값은 피승수의 값과 수정형 부스 부호기(MBE)에서 부호화된 출력값을 미리 연산한 값이 된다.
이와 같이 제1행 피연산자 가산셀(CL)의 연산값과, 제2행 피연산자 가산셀(CL2)의 연산값과, 제3행 피연산자 가산셀(CL2)의 연산값…순으로 순차적으로 더하여 고속 가산기(Fast Adder: FAD)에 입력되고, 또한 그의 보수 승산을 위하여 제1행 피연산자 가산셀(CL1), 제2행 피연산자 가산셀(CL2)…에서 최하위의 두비트와 그의 보수를 취하기 위한 두비트, 즉 각 행당 4비트가 고속 가산기(FAD)에 입력되어 고속 가산기(FAD)에서 가산된 값이 피승수(X)와 승수(Y)를 곱하는 2n비트의 승산된 값이 된다.
이와 같이 병렬승산기에서는 각행의 출력이 바로 다음행으로 순차적으로 전달되는 것을 알 수 있다. 승산시간이 입력비트의 수에 비례하여 느리기 때문에 고속의 승산을 요하는 응용분야에서는 성능이 크게 저하되며 승산 비트의 수가 클수록 성능 저하가 크다. 따라서, 승산 비트의 수가 작고 상대적으로 고속을 요하지 않으며 칩 면적이 작어야 할 경우에만 제1도의 병렬 승산기가 쉽게 적용될 수 있는 제한을 가지고 있다.
두번째, 월리스트리를 이용한 병렬승산기는 계산시간 복잡도가 0(log n)으로 빠르다는 특성에도 불구하고 칩 면적이 크고 그 구조가 불규칙적이라는 원리적인 문제점을 가지고 있다. 따라서 가능한한 칩 면적이 작아야 하고 설계비용이 저렴해야 하는 경우에는 곤란하게 된다. 또한 제6도에서 보는 바와 같이 일반적인 NMOS나 CMOS설계에서 셀의 올림수 출력은 1게이트 지연되어 출력되고 합출력은 올림수 출력을 이용하여 그 다음 게이트 지연후에 합하여 2게이트 지연후에 출력되는 특성을 지니는데 이때 올림수 출력은 합출력이 출력될 때까지 대기상태에 있게 된다. 즉, 먼저 출력된 올림수 출력이 다음 연산에 바로 계산되지 못한다는 문제점을 가지고 있다. 제2도는 이와 같은 월리스(Wallace)트리를 사용하는 병렬승산기의 전반적인 구성을 나타내고 있고, 제5도의 (a)는 월리스(Wallace)트리의 구조를 나타내고 있다.
위에서 언급한 두가지 병렬 승산기의 마지막 계산 단계는 두개의 행을 더하는 가산기이다. 종래의 승산기에서 이용하는 Carry Lookahead 가산기를 비롯한 가산회로는 칩면적과 속도면에서 상반된 문제점을 가지고 있다. 즉 계산시간을 빠르게 설계한 가산기는 칩면적이 크게 증가하게 된다. 따라서 작은 칩면적에서 고속으로 가산을 수행하는 효율적인 고성능 가산기가 요구된다.
이 발명의 목적은 승산기의 칩 면적을 감소시키고 승산시간을 단축하여 고속의 병렬 승산을 수행할 수 있는 수정형 부스 알고리즘, 스킵배열, 수정형 월리스 트리를 사용하는 병렬 승산기를 제공하고자 하는 것이다. 승산기의 승산시간을 단축하기 위하여 지연시간의 복잡도(Complexity)를 0(log n)으로 하고, 스킵배열, 수정형 월리스 트리구조, 하이브리드 프리픽스 가산기를 사용하여 달성할 수 있다.
이 발명의 다른 목적은, 승산기 구조의 규칙성(Regularity)을 향상시켜 칩면적을 감소시키고 설계가 용이한 병렬승산기를 제공하고자 하는 것이다. 승산기 구조의 규칙성 향상은 스킵 배열 및 하이브리드 프리픽스 가산기를 사용함으로써 달성될 수 있다.
이하, 이 발명의 바람직한 실시예를 첨부된 도면에 따라 상세하게 설명한다.
제3도는 이 발명에 따른 병렬승산기를 나타낸 다이어그램으로서 병렬 승산기의 전체적인 구성이 도시되어 있다.
이 발명은 승수(Y)의 비트값을 수정형 부스 알고리즘으로 연산하여 부호화된 신호를 출력시키는 수정형 부스 부호기(MBE)와, 상기 수정형 부스 부호기(MBE)에 연결되고 피승수(X)의 값과 수정형 부스 부호기(MBE)의 부호화된 신호를 연산시켜 부분곱을 생성시키고 부분곱들을 스킵간격만큼씩 이동시켜 더하는 스킵 배열(SAP)과, 상기 스킵배열(SAP)에 연결되어 스킵 배열에서 출력된 2진 비트들을 그 속으로 가산시키는 수정형 월리스트리(MWT)와, 상기 수정형 월리스트리(MWT)에 연결되어 수정형 월리스트리에서 연산되어 출력된 두행의 값을 가산시키는 하이브리드 프리픽스 가산기(HPA)로 구성된다.
여기서 각각 n비트인 피승수(X)와 승수(Y)를 병렬승산하기 위하여 승산의 초기단계에서 수정형 부스 알고리즘을 적용하여 n/2개의 부분곱행을 생성한다. 여기서 n는 입력 비트 수로서 제3도는 n이 16인 경우이다. 이때, 수정형 부스 부호기(MBE)는 승수(Y)를 받아 3* (n/2)개의 부호화된 출력을 스킵배열(SAP)에 입력시킨다.
스킵배열(SAP)은 피승수(X)와 수정형 부스 부호기(MBE)의 출력을 받아 부분곱을 생성시켜 연산한후 그 출력을 수정형 월리스트리(MWT)에 입력시키게 된다.
상기에서 부분곱을 생성시키는 과정은 제1도의 회로와 동일하다. 특히, 스킵배열(SAP)은 n/2개의 부분곱행을 이용하여 n/log(n/2)개로 감소시킨다. 스킵배열은 0(log n)의 계산속도를 유지하면서 승산기 구조의 규칙성을 향상시켜 칩면적을 작게하고 설계가 용이하게 된다. 그리고 스킵 배열(SAP)에서 생성된 결과를 더하여 2개의 행으로 압축하기 위하여 수정형 월리스 트리를 사용한다. 수정형 월리스 트리는 셀의 올림수 출력의 대기상태를 제거함으로써 기존의 월리스 트리보다 계산속도가 빠르게 된다.
스킵배열과 수정형 월리스 트리의 각 셀을 정입력-부출력 셀과 부입력-정출력 셀로 설계하여 상호 교대로 배치함으로써 계산속도를 단축시키고 칩면적을 감소시킨다.
마지막으로 두개의 행을 더하기 위한 가산회로로써 칩면적이 작고 속도가 빠른 하이브리드 프리픽스 가산기(HPA)를 사용한다.
이 발명과, 배열을 이용한 병렬승산기와 비교하면 칩면적은 커지지만 계산시간 0(n)에서 0(log n)으로 현저하게 단축된다. 또한 월리스 트리를 이용한 병렬승산기와 비교하면 스킵 배열과 수정형 월리스 트리의 0(2n2log n)에서 0(nllog n+2N2)로 감소되어 전체적인 칩면적이 작아지고, 계산시간은 둘다 0(log n)이지만 실용적인 범위(128비트 이하)에서는 더 빠르게 된다. 이 회로에는 n비트의 두 수를 승산하기 위하여 수정형 부스부호기(MBE), 스킵배열(SAP), 수정형 월리스트리(MWT) 및 하이브리드 프리픽스 가산기(HPA)가 조합되어 사용되며 최종적으로 2n비트의 결과를 출력하게 된다. 즉, 수정형 부스알고리즘을 이용하여 승수(Y)의 각 비트를 수정형 부스 부호기(MBE)에 입력하여 (n/2) *3개의 부호화된 출력선을 발생시킨다. i번째 행의 세개의 부호화된 출력신호는 다음과 같이 구해진다.
다음에 나타나는 식들에서“/”-로서 논리부정(NOT)를 나타낸다.
Figure kpo00001
여기서, i의 범위는 0≤i≤n/2-l이고, y-1의 값은 0이다. 3개의 출력선당 하나의 부분곱 행을 생성하게되므로, 수정형 부스 부호기의 출력선과 n개의 피승수를 부분곱을 생성할 수 있는 각각의 피연산자 가산셀에 입력하여 n/2개의 부분곱 행을 생성한다. i번째 부분곱 행의 j번째 비트는 다음과 같이 구해진다.
PiJ=(ONE1·xj+TWO1·xJ-1)
Figure kpo00002
NEG1
여기서 i의 범위는 0≤i≤n/2-1이고 j의 범위는 0≤j≤n이며, x-l의 값은 0이고 xn은 부호확장으로서 그 값은 Xn-1과 같다.
이와 같이 구해진 부분곱 Pi,J는 행을 나타내는 첨가 i가 0에서부터 1씩 증가함에 따라 그 행의 부분곱들이 좌측으로 2비트씩 이동(Shift)되어 열을 나타내는 첨가 j의 값이 2씩 증가하게 된다.
n/2개의 부분 곱행은 스킵배열(SAP)을 사용하여 n/log(n/2)개로 감축된다. 제3도에서의 스킵 배열의 구성이 제4도에 나타나 있다. n/2개의 부분곱행을 연산하는 스킵배열(SAP)은 제1행 피연산자 가산셀(CL11), 제2행 피연산자 가산셀(CL12)…제8행 피연산자 가산셀(CL18)로 구성되고, 제1행 피연산자 가산셀(CL11)은 3칸씩 스킵되어 제4행 피연산자 가산셀(CL14)과 연산처리되며, 제2행 피연산자 가산셀(CL12)은 3칸식 스킵되어 제5행 피연산자 가산셀(CL15)과 연산처리되는 순으로 각각의 피연산자 가산셀들은 3칸씩 스킵되어 연산되도록 구성한다.
상기 스킵배열(SAP)은 기존의 배열을 변형시킨 것으로 각 셀은 전가산기로 구성된다. 스킵 배열에서의 계산시간을 부분곱 행수의 대수값(log(n/2))에 비례하도록 설정하기 위하여 스킵 간격은 n/2(log(n/2))으로 정해진다. n/2개의 부분곱행은 n/(2log(n/2))개씩 하나의 군(group)을 형성하게 되며 모두 log(n/2)개의 군을 형성한다. 처음 세개의 군은 전가산기 셀에서 일시에 더해지므로 스킵의 회수는 log(n/2)-3이며 스킵배열에서의 계산시간은 log(n/2)-2이다. 스킵배열상에서 상위군의 각 셀의 올림수 출력과 합출력은 바로 다음 군의 대응되는 행으로 입력된다. 이때 올림수 출력은 한자리(Weight) 높은 셀로 입력된다. 스킵(Skip)배열에서의 i번째 행 j번째 열의 전가산기 셀의 올림수 출력 Ci,J와 합출력 Si,J는 다음과 같이 구해진다.
Ci,j= fC(Pi,j, Si,-n/2log(n/2) j, C1-n/2log(n/2), j-1)
Si,j= fS(Pi,j, Si-n/2log(n/2),j, CI -n/2log(n/2), j-1)
여기서 fc와 fs는 각각 전가산기의 올림수 출력과 합출력을 구하는 함수이고, 세개의 인자는 각각 피가수, 가수, 앞 자리에서 전달된 올림수를 나타낸다. 이들 세 인자 사이에는 교환법칙(Commutative Law)이 성립한다. i의 범위는 n/log(n/2) ≤i≤n/2-1, j의 범위는 2i≤j≤2i+n이고, 0번째 행에서 (n/log(n/2) -1)번째 행사이의 범위 즉, 0≤i≤n/log(n/2)-1의 범위에서는 Ci,j=0, Si,j=Pi,j로 정의한다. i와 j값의 범위를 벗어나서 정의되지 않는 Pi,j, Si,j, Ci,j는 존재하지 않는 값이며 0으로 간주될 수 있다.
스킵배열에서 출력된 n/log(n/2)개의 비트행들은 수정형 월리스트리에 입력되어 두개의 행으로 감축된다. 수정형 월리스트리는 셀의 올림수 출력 대기상태를 제거함으로써 기존의 월리스트리보다 계산속도가 빠르다. 제6도에서 보는 바와 같이 CMOS설계에서 전가산기 셀의 올림수 출력은 1게이트 지연후에 출력되고 합출력은 올림수 출력을 이용하여 그 다음 게이트 지연후에 합하여 2게이트 지연후에 출력되는 특성을지니는데, 기존의 월리스트리에서 올림수 출력은 합출력이 출력될 때까지 대기상태에 있게 된다. 이러한 올림수 출력의 대기 상태를 제거하고 계산속도를 단축시키기 위하여 이 발명은 수정형 월리스 트리(MWT)에서 먼저 출력된 올림수 출력들을 합출력이 출력될 때까지 대기시키지 않고 곧바로 다음 셀에 입력함으로써 트리에서의 전체적인 계산시간을 단축시킨다. 이때 각각의 전가산기 셀은 다음에 설명되는 바와 같이, 정입력-부출력 셀과 부입력-정출력 셀을 교대로 배치한다. 수정형 월리스트리의 한 예가 제5도의 (b)에 도시되어 있으며, 수정형 월리스트리는 기존의 월리스트리와 거의 동일한 칩면적을 가지면서도 계산 시간이 빠르다.
일반적인 월리스트리에서는 제5도(a)와 같이 구성된다. 스킵배열에서 연산된 연산값(P0∼P8)은 전가산기(11), (21), (31)에 입력된다. 전가산기(11), (21), (3l)에서 가산된 결과의 올림수(C) 및 합(S)은 각각 다음 단계의 전가산기(41), (42)에 입력되어 가산되는 방식으로 전가산기(43), (44)를 통하여 두비트의 연산출력이 발생된다.
제2도는 종래의 수정형 부스 알고리즘과 월리스트리를 사용한 병렬승산기를 나타낸 다이어그램으로서 여기서 사용된 월리스트리의 구조는 제5도(a)와 같은 구조를 가지고 있으나 전가산기에서는 일반적으로 정입력-정출력 셀을 사용한다. 전가산기(44)의 최종 올림수(C) 및 합(C)은 고속 가산기(FAD)에서 연산되어 승산된 값이 출력된다. 전가산기에서 FApn은 정입력-부출력 셀을 나타내고 FAnp는 부입력-정출력의 셀을 나타낸다.
제5도(b)는 이 발명에 따른 수정형 월리스 트리의 구조를 나타내고 있는 것으로, 스킵배열(SAP)에서 연산된 연산값(P0∼P8)이 입력되는 전가산기(61), (71), (81)와, 상기 전가산기(61), (71), (81)의 출력측에 연결되어 전가산기(61), (71), (81)에서 가산된 값의 올림수(C)들을 가산시키는 전가산기(91)와, 상기 전가산기(61), (7l), (81)의 출력측에 연결되어 전가산기(61), (71), (81)에서 가산된 합(S)들을 가산시키는 전가산기(92)와, 상기 전가산기(91), (92)의 출력측에 연결되어 전가산기(91)의 합(S)과 전가산기(91), (92)의 올림수(C)들을 가산시키는 전가산기(93)와, 전가산기(92), (93)의 출력측에 연결되어 전가산기(93)의 올림수(C)와 전가산기(92), (93)의 합(S)들을 가산시키는 전가산기(94)로 구성된다. 이 회로에서는 올림수(C)는 올림수만 가산하는 전가산기에 입력되고 합(S)은 합(S)들을 가산하는 전가산기를 사용하여 가산되게 함으로써 대기상태가 발생되는 것을 방지할 수 있다. 여기서 스킵배열과 수정형 월리스트리의 각 셀은 기본적으로 전가산기이다. 상기 병렬 승산기에서는 이 셀을 정입력-부출력 셀과 부입력-정출력 셀로 구성하여 각각의 셀을 교대 배치함으로써 셀에서의 지연시간을 단축시키고 칩면적을 감소시킨다. 각 셀을 이와 같이 구성하면, 셀 출력부의 반전기(Inverter)를 제거하게 되어 각 셀에서 1게이트 지연씩 빨라지고 게이트 수는 감소하게 된다. 전가산기의 정입력-부출력 셀의 논리식은,
Cout'=(Cin(a+b) +a · b)'
Sum'= (Cout'(a+b+cin) +a·b·cin)'
으로 표시되고, 제6도(a)는 상기식을 CMOS회로로 구성한 것이다.
또한 부입력-정출력 셀의 논리식은,
Cout=((Cin'+a'·b') · (a'+b'))'
Sum=((Cout+a'·b'·cin') · (a'+b'+cin'))'
으로 나타낼 수 있다. 제6도(b)는 이를 CMOS회로로 구성한 것이다. 여기서, a, b, cin은 입력신호이고, 특히 cin은 앞자리(Weight)에서 전달되는 올리수 입력이다.
승산기의 최종 단계인 가산을 효율적으로 수행하기 위하여 하이브리드 프리픽스 가산기(HPA)를 사용한다. 하이브리드 프리픽스 가산기는 칩 면적이 작고 계산속도가 빠른 우수한 성능의 가산기로서 이를 본 병렬 승산기에 적용함으로써 승산기 전체의 성능을 향상시킨다. 각 셀의 논리적 기능은 다음과 같다.
Figure kpo00003
제7도는 상기식을 표현한 하이브리드 프리픽스 가산기의 구성을 나타내고 있고, 16비트의 두수(Q16,Q15,…Ql), (b16,b15,…bl)를 더하여 결과(S17,S16…S1)을 구하게 된다. p와 g에서의 두개의 하부첨자는 각각 제7도에서의 행과 열을 나타내고, ai, bi, ci, si는 각각 i번째의 피가수, 가수, 올림수, 합을 표시한다.
상기한 각각의 셀들은 NMOS트랜지스터 및 PMOS트랜지스터들로서 회로를 구성하여 상기 식들이 연산처리되게 할 수가 있으며, 상기한 하이브리드 프리픽스 가산기는 IEEE INTERNATIONAL CONFER-ENCE ON COMPUTER DESIGN학술지에 1987년 8월에 "VLSI Design of High-Speed, Low-Area Addition Circutry"로 이 발명과 동일한 발명자가 발표한 적이 있다.
이 발명에서는 최종단계의 올림수 및 합의 출력을 하이브리드 프리픽스 가산기(HPA)를 사용하여 신속하게 처리하여 보다 빠른 연산효과를 얻을 수 있다.(이에 대한 구체적인 설명은 상기 IEEE지를 참조바람.)
이 발명의 병렬 승산기는 배열을 이용한 병렬 승산기와 비교하여 칩 면적은 크지만, 계산시간 0(n)에서 0(log n)으로 현저하게 단축된다. 현재까지 가장 빠른 병렬승산 알고리즘으로 알려진 월리스트리를 이용한 병렬 승산기와 비교해 보면, 스킵배열과 수정형 월리스트리의 칩면적이 기존 월리스트리의 0(2n'log n)에서 0(n2log n+2n2)로 감소되어 전체적인 첩면적이 작아지고 계산 시간은 둘다 0(log n)이지만 실용적인 범위(128비트 이하)에서는 월리스트리를 이용한 병렬 승산기보다 빠르며 다음과 같은 효과를 얻을 수 있다.
1) 병렬 승산기의 가산시간 복잡도(Complexity)가 0(log n)인 빠른 승산을 수행한다. 승산기 구조의 규칙성(Regularity)이 향상되고, 칩면적이 감소하여 설계가 용이하고 설계비용이 감소한다.
2) 스킵 배열의 개발로 0(log n)의 계산시간을 유지하면서 상당한 규칙성을 가지게 되어 칩면적이 감소하고 설계가 용이하다.
3) 수정형 월리스트리의 개발로 전가산기 셀의 올림수 출력 대기상태를 제거하여 기존 월리스트리보다 계산시간이 단축된다.
4) 하이브리드 프리픽스의 가산기의 사용으로 계산시간이 빠르고 규칙적인 구조를 가지며 칩면적이 작다.
5) 정입력-부출력 셀과 부입력-정출력 셀의 교대 배치로 셀에서의 지연시간을 단축시키고 셀의 게이트수 감소로 칩면적이 감소한다.
6) 배열을 이용한 병렬 승간기와 비교하여 칩면적은 크지만 계산시간이 0(n)에서 0(log n)으로 현저하게 단축된다. 또한 월리스트리를 이용한 병렬 승산기와 비교하여, 스킵 배열과 수정형 월리스트리의 칩면적이 기존 월리스트리의 0(2n2log n)에서 0(n2log n+2n2)로 감소되어 전체적인 칩면적이 작아지고, 계산시간을 둘다 0(log n)이지만 실용적인 범위(128비트 이하)에서는 더 빠르다.
7) 긍극적으로 성능이 우수한 병렬 승산기가 개발되고, 부수적으로 고성능의 다수 피연산자 가산회로가 개발된다.
8) 각종 병렬 승산기, 컴퓨터 연산장치(ALU), 팩시밀리(FAX), 신호처리, 행렬연산, 및 특수 목적용칩 등의 응용분야에 이 발명의 병렬 승산기를 효과적으로 응용함으로써 전체적인 시스템의 성능향상을 기할수 있다.

Claims (10)

  1. 승수(Y)의 비트값을 수정형 부스 알고리즘으로 연산하여 부호화된 신호를 출력시키는 수정형 부스 부호기(MBE)와; 상기 수정형 부기 부호기(MBE)에 연결되고 피승수(X)의 값과 수정형 부스 부호기(MBE)의 부호화된 신호를 연산시켜 부분곱을 생성시키고 부분곱들을 스킵간격만큼씩 이동시켜 더하는 스킵배열(SAP)과; 상기 스킵 배열(SAP)에 연결되어 스킵배열에서 출력된 2진 비트들을 고속으로 가산시키는 수정형 월리스트리(MWT)와; 상기 수정형 월리스트리(MWT)에 연결되어 수정형 월리스트리에서 연산되어 출력된 두행의 값을 가산시키는 하이브리드 프리픽스 가산기(HPA)와; 로 구성된 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
  2. 제1항에 있어서, 스킵 배열(SAP)은, n/2개의 부분곱행을 n/log(n/2)개로 감축하기 위해 다수의 피연산자 가산을 수행하는 제1행 피연산자 가산셀(CL11) 내지 제8행 피연산자 가산셀(CL18)로 구성되고, 상기 각각의 제1행 내지 제8행 피연산자 가산셀(CL11∼CL18)은 n/(2log(n/2))간격으로 스킵되어 다음행의 피연산자 가산셀(CL3∼CL18)과 연산처리되게 구성한 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
  3. 제1항에 있어서, 수정형 월리스트리(MWT)는 스킵 배열(SAP)에서 연산된 연산값(P0-P8)이 입력되는 전가산기(61) (71) (81)와; 상기 전가산기(61) (71) (81)의 출력측에 연결되어 전가산기(61) (71) (81)에서 가산된 값의 올림수(C)들을 가산시키는 전가산기(91)와; 상기 전가산기(61) (71) (8l)의 출력측에 연결되어 전가산기(61) (71) (8l)에서 가산된 합(S)들을 가산시키는 전가산기(92)와; 상기 전가산기(91) (92)의 출력측에 연결되어 전가산기(91)의 합(S)과 전가산기(91) (92)의 올림수(C)들을 가산시키는 전가산기(93)와; 전가산기(92) (93)의 출력측에 연결되어 전가산기(93)의 올림수(C)와 전가산기(92) (93)의 합(S)들을 가산시키는 전가산기(94)와; 로 구성된 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
  4. 제1항에 있어서, 하이브리드 프리픽스 가산기(HPA)는 pg셀, bp셀, bn셀, white셀, sum셀들을 포함하고 다음과 같은 식들을 만족하는 회로들로 구성된 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
    Figure kpo00004
  5. 제1항 또는 제2항에 있어서, 스킵 배열(SAP)의 스킵간격은 n/2(log(n/2))이고, n/2개의 부분곱행은 n/(2log(n/2))개씩 하나의 군을 형성시키도록 구성하여 스킵 횟수는 log(n/2)-3이고, 스킵배열의 계산시간은 logz(n/2)-2가 되게 한 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
  6. 제3항에 있어서, 수정형 월리스트리(MWT)는 스킵배열(SAP)의 연산값을 가산하는 전가산기(61), (71), (8l)와, 자리올림수(C)들을 가산하는 전가산기(91)와, 합(S)들을 가산하는 전가산기(92)와, 연산마무리 단계의 전가산기(93) (94)로 구성되고; 상기 전가산기(91) (92) (94)들은 부입력-정출력의 셀들로 구성하며, 상기 전가산기(61) (71) (81) (93)들은 정입력-부출력 셀들로 구성시킨 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
  7. 제6항에 있어서, 전가산기로 사용되는 정입력-부출력 셀들은 다음식을 만족하는 CMOS트랜지스터로 구성시킨 스킵배열과 수정형 월리스트리를 사용하는 병렬승산기.
    Cout'=(Cin(a+b)+ a·b)'
    Sum'= (Cout(a+b+cin)+ a·b·cin)'
  8. 제6항에 있어서, 전가산기로 사용되는 부입력-정입력 셀들은 다음식을 만족하는 CMOS트랜지스터들로 구성시킨 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
    Cout=((Cin'+a'·b') · (a'+b′))'
    Sum=((Cout+a'·b'·cin') · (a'+b'+cin')'
  9. 승수(Y)의 비트값을 수정형 부스 알고리즘으로 연산하여 부호화된 신호를 출력시키는 수정형 부스 부호기(MBE)와 ; 상기 수정형 부스 부호기(MBE)에 연결되고 피승수(X)의 값과 수정형 부스 부호기(MBE)의 부호화된 신호를 연산시켜 부본곱을 생성시키고 부분곱들을 스킵 간격만큼씩 이동시켜 더하는 스킵배열(SAP)과 ; 상기 스킵 배열(SAP)에 연결되어 스킵배열에서 출력된 2진 비트들을 고속으로 가산시키는 수정형 월리스트리(MWT)와; 상기 수정형 월리스트리(MWT)에 연결되어 수정형 월리스트리에서 연산되어 출력된 두행의 값을 가산시키는 하이브리드 프리픽스 가산기(HPA)와, 로 구성된 스킵배열과 수정형 월리스트리를 사용하는 병렬승산기.
  10. 제9항에 있어서, 하이브리드 프리픽스 가산기(HPA)가 일반적인 고속 가산기로 사용되는 스킵 배열과 수정형 월리스트리를 사용하는 병렬승산기.
KR1019900008199A 1990-05-31 1990-05-31 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기 KR920006323B1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR1019900008199A KR920006323B1 (ko) 1990-05-31 1990-05-31 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기
US07/638,449 US5181185A (en) 1990-05-31 1991-01-04 Parallel multiplier using skip array and modified wallace tree
JP03015984A JP3115009B2 (ja) 1990-05-31 1991-01-14 跳躍配列と修正形ワラストリーとを使用する並列乗算器
GB9100849A GB2244572B (en) 1990-05-31 1991-01-15 Parallel binary multiplier
ITMI910076A IT1245097B (it) 1990-05-31 1991-01-15 Moltiplicatore parallelo che usa un allineamento ed un decodificatore di wallace ad albero
FR9100362A FR2662829B1 (fr) 1990-05-31 1991-01-15 Multiplicateur parallele utilisant un reseau de saut et un arbre de wallace modifie.
DE4101004A DE4101004C2 (de) 1990-05-31 1991-01-15 Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
CN91100375A CN1020806C (zh) 1990-05-31 1991-01-15 使用跳跃阵列和变形华莱士树的并行乘法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019900008199A KR920006323B1 (ko) 1990-05-31 1990-05-31 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기

Publications (2)

Publication Number Publication Date
KR910020549A KR910020549A (ko) 1991-12-20
KR920006323B1 true KR920006323B1 (ko) 1992-08-03

Family

ID=19299764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900008199A KR920006323B1 (ko) 1990-05-31 1990-05-31 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기

Country Status (8)

Country Link
US (1) US5181185A (ko)
JP (1) JP3115009B2 (ko)
KR (1) KR920006323B1 (ko)
CN (1) CN1020806C (ko)
DE (1) DE4101004C2 (ko)
FR (1) FR2662829B1 (ko)
GB (1) GB2244572B (ko)
IT (1) IT1245097B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0721159A1 (en) * 1995-01-03 1996-07-10 Texas Instruments Incorporated Multiple-input binary adder
US5978827A (en) * 1995-04-11 1999-11-02 Canon Kabushiki Kaisha Arithmetic processing
US6066178A (en) * 1996-04-10 2000-05-23 Lsi Logic Corporation Automated design method and system for synthesizing digital multipliers
JP3652447B2 (ja) * 1996-07-24 2005-05-25 株式会社ルネサステクノロジ ツリー回路
KR100425673B1 (ko) * 1996-09-10 2004-06-12 엘지전자 주식회사 피피알기법을이용한곱셈방법
US5943250A (en) * 1996-10-21 1999-08-24 Samsung Electronics Co., Ltd. Parallel multiplier that supports multiple numbers with different bit lengths
US5974437A (en) * 1996-12-02 1999-10-26 Synopsys, Inc. Fast array multiplier
US5935202A (en) * 1997-03-25 1999-08-10 International Business Machines Corporation Compressor circuit in a data processor and method therefor
US6029187A (en) * 1997-10-28 2000-02-22 Atmel Corporation Fast regular multiplier architecture
US7313585B2 (en) * 2003-08-30 2007-12-25 Hewlett-Packard Development Company, L.P. Multiplier circuit
US7769797B2 (en) * 2004-01-20 2010-08-03 Samsung Electronics Co., Ltd. Apparatus and method of multiplication using a plurality of identical partial multiplication modules
CN106445471B (zh) * 2016-10-13 2018-06-01 北京百度网讯科技有限公司 处理器和用于在处理器上执行矩阵乘运算的方法
CN107977191B (zh) * 2016-10-21 2021-07-27 中国科学院微电子研究所 一种低功耗并行乘法器
CN111258633B (zh) * 2018-11-30 2022-08-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111258546B (zh) * 2018-11-30 2022-08-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111258545B (zh) * 2018-11-30 2022-08-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110209374B (zh) * 2019-05-23 2021-04-20 浙江大学 一种基于racetrack memory的乘法器及其操作方法
CN110378477B (zh) * 2019-08-30 2023-09-08 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4153938A (en) * 1977-08-18 1979-05-08 Monolithic Memories Inc. High speed combinatorial digital multiplier
JPS5663649A (en) * 1979-10-26 1981-05-30 Nec Corp Parallel multiplication apparatus
FR2524175A1 (fr) * 1982-03-25 1983-09-30 Labo Cent Telecommunicat Structure de multiplieur rapide en circuit integre mos
US4556948A (en) * 1982-12-15 1985-12-03 International Business Machines Corporation Multiplier speed improvement by skipping carry save adders
JPS60105042A (ja) * 1983-08-05 1985-06-10 テキサス インスツルメンツ インコ−ポレイテツド マルチレベル論理回路
JPS60237534A (ja) * 1984-05-09 1985-11-26 Toshiba Corp 並列乗算器
US4575812A (en) * 1984-05-31 1986-03-11 Motorola, Inc. X×Y Bit array multiplier/accumulator circuit
JPS6158036A (ja) * 1984-08-29 1986-03-25 Toshiba Corp 乗算器
JPS61114338A (ja) * 1984-11-09 1986-06-02 Hitachi Ltd 乗算器
GB2189630B (en) * 1986-04-23 1990-02-14 Stc Plc Multiplier
JPS6378229A (ja) * 1986-09-20 1988-04-08 Fujitsu Ltd 乗算器の単位回路
US4809211A (en) * 1986-09-25 1989-02-28 Texas Instruments Incorporated High speed parallel binary multiplier
US4918639A (en) * 1987-11-03 1990-04-17 International Business Machines Corporation Overlapped multiple-bit scanning multiplication system with banded partial product matrix
JPH01228023A (ja) * 1988-03-08 1989-09-12 Nec Corp 全加算器
JPH083787B2 (ja) * 1988-10-21 1996-01-17 株式会社東芝 単位加算器および並列乗算器

Also Published As

Publication number Publication date
ITMI910076A0 (it) 1991-01-15
IT1245097B (it) 1994-09-13
JPH0520030A (ja) 1993-01-29
KR910020549A (ko) 1991-12-20
CN1020806C (zh) 1993-05-19
JP3115009B2 (ja) 2000-12-04
US5181185A (en) 1993-01-19
DE4101004C2 (de) 1994-08-11
FR2662829A1 (fr) 1991-12-06
FR2662829B1 (fr) 1995-10-20
ITMI910076A1 (it) 1992-07-15
GB2244572B (en) 1993-12-01
GB9100849D0 (en) 1991-02-27
GB2244572A (en) 1991-12-04
CN1056939A (zh) 1991-12-11
DE4101004A1 (de) 1991-12-05

Similar Documents

Publication Publication Date Title
KR920006323B1 (ko) 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기
EP1576493B1 (en) Method, device and system for performing calculation operations
Tiwari et al. Multiplier design based on ancient Indian Vedic Mathematics
US4168530A (en) Multiplication circuit using column compression
US20110264719A1 (en) High radix digital multiplier
US5796645A (en) Multiply accumulate computation unit
US4868777A (en) High speed multiplier utilizing signed-digit and carry-save operands
Besli et al. A novel redundant binary signed-digit (RBSD) Booth's encoding
Sharma et al. Modified booth multiplier using wallace structure and efficient carry select adder
US6151617A (en) Multiplier circuit for multiplication operation between binary and twos complement numbers
EP0326182A2 (en) High speed digital signal processor for signed digit numbers
US4935892A (en) Divider and arithmetic processing units using signed digit operands
KR950006581B1 (ko) 영역 유효 평면도를 갖는 올림수 저장 가산기로 구성되는 2진 트리 승산기
Beuchat et al. Multiplication algorithms for radix-2 RN-codings and two's complement numbers
US5954791A (en) Multipliers with a shorter run time
Takagi Arithmetic unit based on a high-speed multiplier with a redundant-binary addition tree
RU2148270C1 (ru) Устройство умножения
USRE38387E1 (en) Multiplier circuit for multiplication operation between binary and twos complement numbers
Shanmukh et al. Design of 32-bit MAC unit using fast adders and vedic multiplier
Sainath et al. Approximate Radix-4 Booth Multipliers for Error Analysis
SUREKHA et al. Pre Encoded Multipliers Based on Non Redundant Radix-4 Design Using Modified Wallace Scheme
Biswas et al. Multiplexer Based Array Multipliers
JYOTHI et al. Implementation of Modified Booth Algorithm for Power Critical Applications
RAMANI et al. High Performance Add-Multiply Operator Design using Modified Booth Recoder
Choe et al. Complexity of merged two's complement multiplier-adders

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080729

Year of fee payment: 17

LAPS Lapse due to unpaid annual fee