KR19990017434A - 고속 곱셈장치 - Google Patents
고속 곱셈장치 Download PDFInfo
- Publication number
- KR19990017434A KR19990017434A KR1019970040361A KR19970040361A KR19990017434A KR 19990017434 A KR19990017434 A KR 19990017434A KR 1019970040361 A KR1019970040361 A KR 1019970040361A KR 19970040361 A KR19970040361 A KR 19970040361A KR 19990017434 A KR19990017434 A KR 19990017434A
- Authority
- KR
- South Korea
- Prior art keywords
- multiplier
- bit
- signed
- sine
- partial product
- Prior art date
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
고속 곱셈장치는 입력되는 하나 또는 모두의 언사인드 넘버의 피승수 및 승수를 사인드 넘버로 변환하여 고속 곱셈 연산을 수행하도록 하기 위한 것으로서, 고속 곱셈 장치에 있어서, 입력되는 n비트의 사인드 또는 언사인드 넘버의 피승수 및 승수중 언사인드 넘버를 사인드 넘버로 변환하여 출력하는 사인 발생수단과, 상기 사인 발생수단에서 발생된 사인드 넘버에 대하여 부스(Booth) 알고리즘을 수행하여 파셜 프로덕트를 생성하는 부스 인코딩수단으로 구성됨에 그 요지가 있다.
Description
본 발명은 고속 곱셈장치에 관한 것으로, 특히 고속 곱셈장치에 관한 것이다.
그래픽이나 멀티미디어 프로세서 혹은 마이크로 프로세서내에서 수행되는 연산 중 가장 큰 비중을 차지하며, 프로세서의 성능에 큰 영향을 미치는 기능이 곱셈 연산이다.
상기 프로세서들이 가지는 곱셈은 단순한 n*n비트 곱셈뿐만 아니라 두 개의 복소수를 곱하는 기능인 컴플렉스 멀티피케이션(Complex multipication), 두 벡터의 도트(Dot), 크로스 프로덕트(Cross product)를 구하는 기능, 두 벡터의 내적을 구하는 곱셈 등 등의 다양한 기능을 나타내고 있다.
이런 곱셈 연산은 특성상 사인드, 언사인드 넘버(signed, unsigned number)로 이루어진 두 수치의 곱으로 이루어지는 것이 일반적이다.
이하, 종래 기술에 따른 고속 곱셈장치에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 1 은 종래 기술에 따른 곱셈장치의 블럭 구성도로서, 입력되는 n비트의 피승수 및 승수에 대하여 부스(Booth) 알고리즘을 수행하여 n/2비트의 파셜 프로덕트를 출력하는 부스 인코더(1)와, 상기 부스 인코더(1)의 n/2비트의 파셜 프로덕트에 대하여 압축 알고리즘을 수행하여 두 개의 2n비트 데이터로 압축하여 출력하는 파셜 프로덕트 로우 압축부(2)와, 상기 파셜 프로덕트 로우 압축부(2)의 2n비트 데이터를 가산하여 2n비트의 곱셈 연산 데이터를 출력하는 가산부(3)로 구성된다.
도 2 는 도 1 의 파셜 프로덕트 로우(partial product row)의 압축 방법(compression Method) 예시도이다.
이와 같이 구성된 종래 기술에 따른 고속 곱셈장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
먼저, 부스 인코더(1)는 입력되는 n비트의 피승수 및 승수에 대하여 부스 알고리즘을 수행하여 n/2비트의 파셜 프로덕트로 출력한다.
그러면 파셜 프로덕트 로우 압축부(2)는 부스 인코더(1)의 n/2비트의 파셜 프로덕트에 대하여 도 2 에 도시된 바와 같은 압축 알고리즘을 수행하여 두 개의 2n비트 데이터로 출력한다.
이에 따라 가산부(3)는 상기 파셜 프로덕트 로우 압축부(2)에서 출력된 두 개의 2n비트 데이터를 가산하여 2n비트의 곱셈 연산 데이터를 출력한다.
이에 따라 가산부(3)는 상기 6비트인 두 개의 데이터를 가산하여 곱셈 연산에 따른 6비트의 최종 곱셈 연산 데이터(C)를 출력한다.
그러나 종래 기술에 따른 곱셈장치에 있어서는 입력되는 피승수 및 승수가 사인드 넘버(signed number)이어야만 정확한 곱셈 연산이 이루어지지 피승수 및 승수중 하나 또는 모두 언사인드 넘버(unsigned number)라면 곱셈 연산시 오류가 발생하는 문제점이 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 하나 또는 모두의 언사인드 넘버의 피승수 및 승수를 사인드 넘버로 변환하여 고속 곱셈 연산을 수행하도록 한 고속 곱셈장치를 제공하는데 그 목적이 있다.
도 1 - 종래 기술에 따른 곱셈장치의 블럭 구성도
도 2 - 본 발명에 따른 고속 곱셈장치의 일실시예 블럭 구성도
도 3 - 도 2 의 사인(sign) 발생부의 일부 블럭 구성도
도 4 - 도 2 의 일실시예에 따른 8*8비트 곱셈을 위한 사인 확장(sign extention) 방법 예시도
도 5 - 도 4 의 파셜 프로덕트 로우(partial product row)의 압축 방법(compression Method) 예시도
도면의 주요부분에 대한 부호의 설명
110 : 사인 발생부 120 : 부스 인코더
130 : 파셜 프로덕트 로우 압축부 140 : 가산부
상기와 같은 목적을 달성하기 위한 본 발명에 따른 고속 곱셈장치의 특징은, 입력되는 n비트의 사인드 또는 언사인드 넘버의 피승수 및 승수중 언사인드 넘버를 사인드 넘버로 변환하여 출력하는 사인 발생부를 포함하여 구성되는데 있다.
이하, 본 발명에 따른 고속 곱셈장치에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 3 은 본 발명에 따른 고속 곱셈장치의 일실시예 블럭 구성도로서, 입력되는 n비트의 사인드 또는 언사인드 넘버의 피승수 및 승수중 언사인드 넘버를 사인드 넘버로 변환하여 출력하는 사인 발생부(110)와, 상기 사인 발생부(110)에서 발생된 두 개의 사인드 넘버에 대하여 부스(Booth) 알고리즘을 수행하여 n/2비트의 파셜 프로덕트를 출력하는 부스 인코더(120)와, 상기 부스 인코더(120)의 n/2비트의 파셜 프로덕트에 대하여 압축 알고리즘을 수행하여 두 개의 2n비트 데이터를 출력하는 파셜 프로덕트 로우 압축부(130)와, 상기 파셜 프로덕트 로우 압축부(130)의 2n비트 데이터를 가산하여 2n비트의 곱셈 연산 데이터를 출력하는 가산부(140)로 구성된다.
그리고 도 3 은 도 2 의 사인(sign) 발생부의 일부 블럭 구성도로서, 상기 사인 발생부(110)는 외부에서 곱셈 연산을 위해 입력되는 지시 비트와 피승수(A)의 최상위 비트(MSB)를 논리곱하여 피승수(A)의 사인 비트를 출력하는 제 1 앤드 게이트(111)와, 상기 외부에서 곱셈 연산을 위해 입력되는 지시 비트와 승수(B)의 최상위 비트를 논리곱하여 승수(B)의 사인 비트를 출력하는 제 2 앤드 게이트(112)로 구성된다.
아울러 도 4 는 도 2 의 일실시예에 따른 8*8비트 곱셈을 위한 사인 확장(sign extention) 방법 예시도이고, 도 5 는 도 4 의 파셜 프로덕트 로우(partial product row)의 압축 방법(compression Method) 예시도이다.
이와 같이 구성된 본 발명에 따른 고속 곱셈장치의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
먼저, 사인 발생부(110)는 입력되는 n비트의 사인드 또는 언사인드 넘버의 피승수(A) 및 승수(B)중 언사인드 넘버를 사인드 넘버로 변환하여 출력한다.
아울러 사인 발생부(110)는 상기 입력되는 n비트의 사인드 또는 언사인드 넘버의 피승수(A) 및 승수(B)중 사인드 넘버를 사인드 넘버로 변환하여 출력한다.
즉 사인 발생부(110)는 상기 피승수(A)의 사인 비트의 값과 동일한 값으로 한 비트를 추가하여 n+1로 변환하고 승수(B)의 비트의 값과 동일한 값으로 두 비트를 추가하여 n+2로 변환한다.
여기서 사인 발생부(110)는 도 3 에 도시된 바와 같이 내부의 제 1 앤드 게이트(111)는 외부에서 곱셈 연산을 위해 입력되는 지시 비트와 피승수(A)의 최상위 비트(MSB;Most Significant Bit)를 논리곱하여 피승수(A)의 사인 비트(Sign Bit)를 출력한다.
그리고 제 2 앤드 게이트(112)는 상기 외부에서 곱셈 연산을 위해 입력되는 지시 비트와 승수(B)의 최상위 비트(MSB;Most Significant Bit)를 논리곱하여 두 개의 승수(B) 사인 비트(Sign Bit)를 출력한다.
여기서 지시 비트는 외부에서 곱셈 연산을 위해 입력되는 비트로 2비트로 구성되며 한 비트[1]는 상기 제 1 앤드 게이트(111)로, 다른 한 비트[0]는 상기 제 2 앤드 게이트(112)로 입력된다.
이후 사인 발생부(110)는 도 3 에 도시되지 않은 다른 블럭을 이용하여 상기 피승수(A)의 사인 비트(Sign Bit)는 n+1비트로, 두 개의 승수(B) 사인 비트(Sign Bit)는 각각 n+2비트로 출력한다.
그러면 부스 인코더(120)는 상기 사인 발생부(110)에서 출력된 서로 다른 비트의 피승수(A) 및 승수(B)에 대하여 부스(Booth) 알고리즘을 수행하여 n/2비트의 파셜 프로덕트를 생성한다.
이에 따라 파셜 프로덕트 로우 압축부(130)는 상기 부스 인코더(120)의 n/2비트의 파셜 프로덕트에 대하여 압축 알고리즘을 수행하여 두 개의 2n비트 파셜 프로덕트 로우를 출력한다.
그러면 가산부(140)는 상기 파셜 프로덕트 로우 압축부(130)에서 출력된 두 개의 2n비트 파셜 프로덕트 로우를 가산하여 2n비트의 곱셈 연산 데이터(C)를 출력한다.
상기의 곱셈 연산 과정을 예를 들어 상세히 설명하면 다음과 같다.
먼저, 사인 발생부(110)는 n비트의 사인드 또는 언사인드 넘버의 피승수(A) 및 승수(B)에 대하여 피승수(A)의 최상위 비트의 값과 동일한 값으로 한 비트를 더하여 n+1비트를 구하고 승수(B)의 최상의 비트의 값과 동일한 값으로 두 비트를 더하여 n+2비트를 구한다.
즉, 사인 발생부(110)내 제 1 앤드 게이트(111)는 외부로부터 곱셈 연산을 위해 입력되는 지시 비트와 피승수(A)의 최상위 비트를 논리곱하여 한 개의 피승수(A)의 사인 비트를 출력한다.
아울러 제 2 앤드 게이트(112)는 외부로부터 곱셈 연산을 위해 입력되는 지시 비트와 승수(B)의 최상위 비트를 논리곱하여 한 개의 승수(B)의 사인 비트를 출력한다.
그러면 부스 인코더(120)는 도 4 에 도시된 바와 같이 외부에서 가해진 피승수 및 승수(각각 8비트)와 부가되는 사인 비트(피승수 1비트, 승수 2비트)를 각가 합한 9비트의 피승수 및 10비트의 승수에 대하여 승산한다.
이후 부스 인코더(120)는 상기 발생된 각각의 파셜 프로덕트 로우와 외부에서 인가된 사인 확장 블럭 및 보수를 취하기 위한 변수(a0, ···, a3)에 대하여 부스 알고리즘을 수행하여 5(=10/2)개의 파셜 프로덕트 로우를 출력한다.
여기서 도 4 는 총 10개의 파셜 프로덕트 로우중 4개의 파셜 프로덕트 로우만 나타낸 것이다.
이에 따라 파셜 프로덕트 로우 압축부(130)는 상기 부스 인코더(120)의 5개의 파셜 프로덕트 로우에 한 개의 추가적인 파셜 프로덕트 로우를 가산한 후 내부의 전가산기(미도시)를 이용하여 압축한 후 압축기(미도시)에 의해 압축 알고리즘을 수행하여 2n비트의 파셜 프로덕트 로우를 출력한다.
여기서 압축기는 4 to 2 압축기이다.
예를 들면 도 5 에 도시된 바와 같이 파셜 프로덕트 압축부(2)내 전가산기는 상기 6개의 파셜 프로덕트 로우를 3개씩 가산하여 2개의 파셜 프로덕트 로우를 만든 후 총 4개의 파셜 프로덕트 로우를 출력한다.
그리고 4 to 2 압축기는 상기 전가산기에서 출력된 4개의 파셜 프로덕트 로우에 대하여 4 to 2 압축 알고리즘을 수행하여 두 개의 파셜 프로덕트 로우를 출력한다.
그러면 가산기(140)는 상기 두 개의 파셜 프로덕트 로우를 가산하여 2n비트의 곱셈 연산 데이터(C)를 출력한다.
이상에서 설명한 바와 같이 본 발명에 따른 고속 곱셈장치는 하나 또는 모두의 언사인드 넘버의 피승수 및 승수를 사인드 넘버로 변환하여 고속 곱셈 연산을 수행하도록 함으로써 고속 곱셈 연산시 발생하는 오류를 줄이도록 하여 데이터 처리 속도를 향상시킬 수 있는 효과가 있다.
Claims (3)
- 고속 곱셈 장치에 있어서, 입력되는 소정 비트의 사인드 또는 언사인드 넘버의 피승수 및 승수중 하나 또는 모두의 언사인드 넘버를 사인드 넘버로 변환하여 출력하는 사인 발생수단과; 상기 사인 발생수단에서 발생된 사인드 넘버에 대하여 부스(Booth) 알고리즘을 수행하여 파셜 프로덕트를 생성하는 부스 인코딩수단을 포함하여 구성된 것을 특징으로 하는 고속 곱셈장치.
- 제 1 항에 있어서, 상기 사인 발생수단은 입력되는 소정 비트의 사인드 또는 언사인드 넘버의 피승수 및 승수중 하나 또는 모두의 사인드 넘버를 사인드 넘버로 변환하여 출력하는 것을 더 포함함을 특징으로 하는 고속 곱셈장치.
- 제 1 항에 있어서, 상기 사인 발생수단은 상기 소정 비트의 피승수 및 승수 입력중 피승수는 상기 피승수의 사인 비트의 값과 동일한 값으로 1비트를, 승수는 상기 승수의 사인 비트의 값과 동일한 값으로 2비트를 부가하여 사인드 넘버로 변환함임을 특징으로 하는 고속 곱셈장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040361A KR19990017434A (ko) | 1997-08-23 | 1997-08-23 | 고속 곱셈장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040361A KR19990017434A (ko) | 1997-08-23 | 1997-08-23 | 고속 곱셈장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990017434A true KR19990017434A (ko) | 1999-03-15 |
Family
ID=66047066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970040361A KR19990017434A (ko) | 1997-08-23 | 1997-08-23 | 고속 곱셈장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990017434A (ko) |
-
1997
- 1997-08-23 KR KR1019970040361A patent/KR19990017434A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6233597B1 (en) | Computing apparatus for double-precision multiplication | |
US10949168B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
Kodali et al. | FPGA implementation of vedic floating point multiplier | |
US5343417A (en) | Fast multiplier | |
Reddy et al. | Design of approximate booth squarer for error-tolerant computing | |
Sousa | Efficient method for magnitude comparison in RNS based on two pairs of conjugate moduli | |
Dhanabalan et al. | Realization of Resource Efficient Block RAM Based Eight Bit Adder in FPGA | |
CN110879697B (zh) | 一种近似计算tanh函数的装置 | |
JP2006172035A (ja) | 除算・開平演算器 | |
US6173304B1 (en) | Joint optimization of modified-booth encoder and partial product generator | |
CN115658008A (zh) | 一种资源复用型超越函数运算实现方法 | |
CN110825346A (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
US5999962A (en) | Divider which iteratively multiplies divisor and dividend by multipliers generated from the divisors to compute the intermediate divisors and quotients | |
CN113157247B (zh) | 一种可重构整型-浮点型乘法器 | |
US7840628B2 (en) | Combining circuitry | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application | |
KR19990017434A (ko) | 고속 곱셈장치 | |
US7739323B2 (en) | Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator | |
KR100295646B1 (ko) | 왈리스 트리를 이용한 곱셈방법 | |
Patel et al. | Efficient Tree Multiplier Design by using Modulo 2 n+ 1 Adder | |
CN116126283B (zh) | 一种fpga卷积加速器的资源占用率优化方法 | |
Li et al. | An Area-Power-Efficient Multiplier-less Processing Element Design for CNN Accelerators | |
CN115617307A (zh) | 一种资源复用型超越函数运算实现装置 | |
Aoki et al. | High-radix CORDIC algorithms for VLSI signal processing | |
KR100580255B1 (ko) | 복수 개의 동일한 부분곱 계산 모듈을 포함하는 다중곱셈기 및 다중 곱셈 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |