KR0161485B1 - A multiplier of booth algorithm using arithmetic unit - Google Patents

A multiplier of booth algorithm using arithmetic unit Download PDF

Info

Publication number
KR0161485B1
KR0161485B1 KR1019950059520A KR19950059520A KR0161485B1 KR 0161485 B1 KR0161485 B1 KR 0161485B1 KR 1019950059520 A KR1019950059520 A KR 1019950059520A KR 19950059520 A KR19950059520 A KR 19950059520A KR 0161485 B1 KR0161485 B1 KR 0161485B1
Authority
KR
South Korea
Prior art keywords
signal
bit
exclusive
output
subtotal
Prior art date
Application number
KR1019950059520A
Other languages
Korean (ko)
Other versions
KR970049461A (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 KR1019950059520A priority Critical patent/KR0161485B1/en
Publication of KR970049461A publication Critical patent/KR970049461A/en
Application granted granted Critical
Publication of KR0161485B1 publication Critical patent/KR0161485B1/en

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
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm

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

산술 연산 장치를 사용하되 연산 횟수를 줄여서 고속화를 실현한 새로운 부스 알고리즘 곱셈 연산 장치가 개시된다.A new booth algorithm multiplication operation apparatus using an arithmetic operation apparatus and reducing the number of operations to achieve high speed is disclosed.

본 발명에 따른 부스 알고리즘 곱셈 연산 장치는 부스 알고리즘에 의해 연산 횟수를 종래의 절반으로 줄이도록 함으로써 산술 연산 장치에 의해 고속의 곱셈 연산을 가능하게 하는 효과를 갖는다.The booth algorithm multiplication apparatus according to the present invention has an effect of enabling a fast multiplication operation by the arithmetic operation apparatus by reducing the number of operations by the booth algorithm to half the conventional one.

Description

산술 연산 장치를 이용한 부스 알고리즘 곱셈 연산 장치Booth Algorithm Multiplication Unit using Arithmetic Unit

제1도는 부스 엔코딩의 예를 도식적으로 설명하는 도면이다.1 is a diagram schematically illustrating an example of booth encoding.

제2도는 부스 알고리즘에 의한 곱셈 연산의 예를 도식적으로 설명하는 도면이다.2 is a diagram schematically illustrating an example of a multiplication operation by a booth algorithm.

제3도는 본 발명에 따른 부스 알고리즘 곱셈 연산 장치의 구성을 보이는 블록도이다.3 is a block diagram showing the configuration of a booth algorithm multiplication operation apparatus according to the present invention.

제4도는 제3도에 도시된 부스 엔코더의 출력을 보이는 도면이다.4 is a view showing the output of the booth encoder shown in FIG.

제5도는 제3도에 도시된 스페셜 레지스터의 구성을 보이는 블록도이다.5 is a block diagram showing the configuration of the special register shown in FIG.

본 발명은 승산기에 관한 것으로서 더욱 상세하게는 산술 연산 장치를 사용하되 연산 횟수를 줄여서 고속화를 실현한 부스 알고리즘 곱셈 연산 장치에 관한 것이다.The present invention relates to a multiplier, and more particularly, to a booth algorithm multiplication operation device using an arithmetic operation device to achieve high speed by reducing the number of operations.

마이크로 컴퓨터 등의 정보 처리 장치에 있어서, 곱셈 연산은 크게 두 가지의 방법으로 수행된다. 하나는 산술 연산 장치를 사용한 애드쉬프트(addshift) 방법이고, 다른 하나는 부스(Booth) 알고리즘을 채택한 전용 곱셈기를 사용하는 방법이다.In an information processing apparatus such as a microcomputer, a multiplication operation is largely performed in two ways. One is the addshift method using an arithmetic operation device, and the other is using a dedicated multiplier employing the Booth algorithm.

addshift 방법은 기존의 정보 처리 장치에 내장된 산술 연산 장치를 사용하기 때문에 추가되는 하드웨어가 불필요하다는 점에서는 유리하지만 n-bit*n-bit 연산의 경우 최소 n 사이클이 필요하기 때문에 속도면에서 매우 불리하다.The addshift method is advantageous in that it does not require additional hardware because it uses an arithmetic unit built into the existing information processing unit, but it is very disadvantageous in terms of speed since it requires a minimum n cycles for n-bit * n-bit operations. Do.

이에 반해 전용의 곱셈기를 사용하는 방법에서는 속도 면에서 매우 유리하지만 전용의 곱셈기 즉, 하드웨어가 필요하기 때문에 제품의 원가가 높아지는 단점이 있다.On the other hand, the method of using a dedicated multiplier is very advantageous in terms of speed, but there is a disadvantage in that the cost of the product increases because a dedicated multiplier, that is, hardware is required.

본 발명은 상기한 문제점의 적어도 일부를 개선하기 위하여 안출된 것으로서 산술 연산 장치를 구비한 정보 처리 장치에 있어서 약간의 하드웨어를 추가하여 부호가 있는 혹은 부호가 없는 곱셈 연산을 고속으로 처리할 수 있는 부스 알고리즘 곱셈 연산 장치를 제공하는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve at least some of the problems described above. In an information processing apparatus having an arithmetic operation apparatus, a booth capable of processing a signed or unsigned multiplication operation at high speed by adding a little hardware. An object of the present invention is to provide an algorithm multiplication operation apparatus.

상기의 목적을 달성하는 본 발명에 따른 부스 알고리즘 곱셈 연산장치는The booth algorithm multiplication apparatus according to the present invention for achieving the above object is

부스 알고리즘에 의해 부호가 있는 혹은 부호가 없는 곱셈 연산을 수행하는 장치에 있어서,In an apparatus for performing a signed or unsigned multiplication operation by a booth algorithm,

피승수를 래치하는 래치;A latch for latching the multiplicand;

상기 래치에 래치된 내용을 1비트 우측으로 쉬프트시켜 출력하는 제1쉬프트기;A first shifter for shifting the content latched in the latch to the right by one bit and outputting it;

그에 제공되는 제1선택 신호에 응답하여 상기 래치에 래치된 피승수 혹은 상기 제1쉬프트기에서 발생된 쉬프트된 피승수를 선택적으로 출력하는 제1멀티플렉서;A first multiplexer for selectively outputting a multiplier latched in the latch or a shifted multiplier generated in the first shifter in response to a first selection signal provided thereto;

그에 제공되는 연산 종류 선택 신호에 응답하여 상기 제1멀티플렉서 혹은 상기 부분합 레지스터에서 제공되는 두 개의 값을 가산 혹은 감산하는 산술 연산 장치;An arithmetic operation unit for adding or subtracting two values provided from the first multiplexer or the subtotal register in response to an operation type selection signal provided thereto;

상기 산술 연산 장치의 출력을 래치하여 2비트 좌측 쉬프트를 수행하는 제2쉬프트기;A second shifter which latches an output of the arithmetic operation unit and performs a 2-bit left shift;

승수 및 연산 결과를 래치하는 스페셜 레지스터;A special register for latching a multiplier and an operation result;

상기 스페셜 레지스터에 저장된 승수를 입력하여 제1선택 신호, 연산 종류 선택 신호, 그리고 부가 비트 신호를 발생하는 부스 엔코더;A booth encoder configured to input a multiplier stored in the special register to generate a first selection signal, an operation type selection signal, and an additional bit signal;

부분합을 저장하는 부분합 레지스터;A subtotal register for storing the subtotal;

상기 래치된 피승수의 최상위 비트와 부가 비트 신호를 입력하여 배타적 오아 연산을 수행하는 배타적 오아 연산기;An exclusive ore operator configured to perform an exclusive ore operation by inputting a most significant bit and an additional bit signal of the latched multiplicand;

상기 배타적 오아 연산기의 출력과 쉐도우 가산 신호를 입력하여 앤드 연산을 수행하는 앤드 연산기;An AND operator inputting an output of the exclusive OR operator and a shadow addition signal to perform an AND operation;

제1선택 신호에 응답하여 상기 제1배타적 오아 연산기의 출력과 부가 비트 신호를 선택적으로 출력하는 제2멀티플렉서;A second multiplexer for selectively outputting an output of the first exclusive OR operator and an additional bit signal in response to a first selection signal;

부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호에 응답하여 상기 앤드 연산기의 출력과 상기 제2멀티플렉서의 출력을 선택적으로 출력하는 제3멀티플렉서;A third multiplexer for selectively outputting the output of the AND operator and the output of the second multiplexer in response to a signal specifying a signed or unsigned multiplication operation;

상기 부분합 레지스터에 래치된 부분합의 최상위 비트, 상기 제3멀티플렉서의 출력, 그리고 상기 산술 연산 장치의 캐리 신호를 입력하여 전 가산 연산을 수행하여 합신호를 상기 부분합 레지스터의 (최상위 비트-1)번째의 비트로서 제공하는 전가산기;Input the most significant bit of the subtotal latch latched to the subtotal register, the output of the third multiplexer, and the carry signal of the arithmetic operation unit to perform a full addition operation, and add the sum signal to the (most significant bit-1) th of the subtotal register. A full adder serving as a bit;

상기 부분합 레지스터에 래치된 부분합의 최상위 비트와 상기 전가산기의 캐리 신호를 입력하여 배타적 논리합 연산을 수행하는 제2배타적 논리합 연산기;A second exclusive OR operator configured to perform an exclusive OR operation by inputting the most significant bit of the subtotal latched in the subtotal register and the carry signal of the full adder;

부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호에 응답하여 상기 앤드 연산기의 출력과 부가 비트 신호를 선택적으로 출력하는 제4멀티플렉서; 및A fourth multiplexer for selectively outputting the output of the AND operator and the additional bit signal in response to a signal specifying a signed or unsigned multiplication operation; And

상기 제2배타적 논리합 연산기의 출력과 상기 제4멀티플렉서의 출력을 입력하여 배타적 논리합 연산을 수행하고 그 결과를 상기 부분합 레지스터의 최상위 비트로서 제공하는 제3배타적 논리합 연산기를 구비함을 특징으로 한다. 이하 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.And a third exclusive OR operator configured to input an output of the second exclusive OR operator and an output of the fourth multiplexer to perform an exclusive OR operation and provide the result as the most significant bit of the subtotal register. Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

두 개의 정수(A;피승수(multiplicand), B;승수(multiplier))를 곱셈 연산함에 있어서 승수 B의 해당 자릿수가 1이면 피승수 A를 더해 주고, 0이면 단순히 쉬프트(shift)한다.When multiplying two integers (A; multiplicand and B; multiplier), the multiplier B adds a multiplicand A if it is 1, and if it is 0, it simply shifts.

이러한 경우 8비트 정수의 곱셈 연산을 위해서는 최대 8번에 걸쳐서 덧셈 연산을 수행하여야 한다.In this case, an addition operation must be performed up to eight times to multiply an 8-bit integer.

다시 말하면, 쉬프트되는 횟수 즉 승수의 비트들 중에서 0이 되는 비트가 많을수록 덧셈 연산의 횟수가 줄어듬으로 연산 속도가 증대될 수 있다.In other words, as the number of shifts, that is, the number of bits that become 0 among the bits of the multiplier, decreases the number of addition operations, the operation speed may increase.

이를 이용하여 승수에서 0을 값을 갖는 자릿수를 늘려서 연산 속도를 제고시키기 위해 도입된 것이 이른바 부스 알고리즘(Booth algorithm)이다. 부스 알고리즘은 승수의 자릿수를 절반으로 줄여서 곱셈 연산을 수행하도록 하는 것으로서 연산 속도가 종래의 방법에 비해 2배정도 향상되게 된다.The so-called Booth algorithm was introduced to increase the computation speed by increasing the number of digits having a zero value in the multiplier. The booth algorithm is designed to perform a multiplication operation by cutting the number of digits of the multiplier in half, and the calculation speed is approximately doubled compared to the conventional method.

이러한 부스 알고리즘의 원리는 다음과 같다. 일반적으로 ,,n+1, n, n-1,,로 구성되는 바이너리 수치에 있어서 n번째의 수는 다음과 같이 표현될 수 있다.The principle of this booth algorithm is as follows. In general, the nth number in a binary number consisting of n + 1, n, n-1 ,, can be expressed as follows.

여기서, k1=(0,1) k2=(0,1), k3=(0,1,2)이다.Where k1 = (0,1) k2 = (0,1) and k3 = (0,1,2).

예를 들면, 1101001이라는 바이너리 수치에 있어서 세 번째 자릿수를 네 번째 자릿수와 두 번째 자릿수로 나타낸다면 8=16-2*4이므로For example, in the binary number 1101001, if the third digit is represented by the fourth digit and the second digit, 8 = 16-2 * 4.

이다.to be.

즉, 부스 알고리즘은 홀수 위치에 있는 비트들을 짝수 비트 위치로 옮겨 주는 것이다. 이렇게 하면 홀수번째 비트들은 모두 0이기 때문에 덧셈 연산이 불필요하게 된다. 이렇게 홀수번째 비트들을 0으로 만들어 주는 것을 부스 엔코딩(booth encoding)이라 한다.In other words, the booth algorithm moves bits in odd positions to even bit positions. This eliminates the need for addition because the odd bits are all zeros. This way of making odd bits zero is called boot encoding.

제1도는 종래의 부스 엔코딩을 설명하기 위한 도면으로서, 1101001이라는 바이너리 수치를 부스 알고리즘에 의해 엔코딩한 것을 보이는 것이다.FIG. 1 is a diagram for explaining conventional booth encoding, and shows that a binary value of 1101001 is encoded by a booth algorithm.

제1도에 도시된 엔코딩 방법을 설명한다. 예를 들어 세 번째 자리수는 십진수로 8이며 이는 (16-8)로 표현될 수 있다. 이를 이진수로 표현하면The encoding method shown in FIG. 1 will be described. For example, the third digit is 8 decimal, which can be expressed as (16-8). If this is expressed in binary

이다.to be.

즉, 세 번째 자릿수는 멱수 1을 갖는 네 번째 자릿수에서 멱수 2를 갖는 두 번째 자릿수를 감산하는 형태로 표현된다.That is, the third digit is expressed by subtracting the second digit having the power 2 from the fourth digit having the power 1.

이를 계수로 나타내면 네 번째 자릿수에는 1을 분배하고 두 번째 자릿수에는 -2를 분배하는 것을 표현된다.In terms of coefficients, 1 is allocated to the fourth digit and -2 to the second digit.

따라서, 두 번째 자릿수는 세 번째 자릿수에서 넘어오는 -2, 본래 자신이 가지고 있던 0, 그리고 첫 번째 자릿수에서 넘어오는 0을 합쳐서 최종적으로 -2가 된다.Thus, the second digit adds -2 from the third digit, the original zero, and the zero from the first digit to finally become -2.

이러한 방법에 의해 1101001의 이진수는 2 -1 -2 1의 값으로 엔코딩된다.By this method, the binary number of 1101001 is encoded into the value 2 -1 -2 1.

부스 엔코딩된 값을 이용하여 곱셈 연산을 수행하는 방법을 제2도를 참조하여 설명한다. 설명의 편의를 위해 1001010인 피승수와 1101001인 승수를 곱하는 경우를 가정한다.A method of performing a multiplication operation using a booth encoded value will be described with reference to FIG. For convenience of explanation, it is assumed that a multiplier of 1001010 and a multiplier of 1101001 are multiplied.

승수 1101001은 부스 엔코딩의 결과 2 -1 -2 1이 된다.The multiplier 1101001 becomes 2 -1 -2 1 as a result of the booth encoding.

피승수 1001010과 부스 엔코딩된 값의 0번째 자릿수 1과의 곱셈 연산을 피승수1001010을 그대로 더해 주면 된다.Multiply the multiplicand 1001010 by the 0th digit 1 of the booth-encoded value and add the multiplicand 1001010 as it is.

피승수 1001010과 부스 엔코딩된 값의 첫 번째 자릿수 -2와의 곱셈 연산을 피승수 1001010을 우측으로 한 비트 쉬프트시켜 준 후, 쉬프트된 값을 반전시키고, 반전된 값에 1을 더해주면 된다. 또한, 실질적으로 부스 엔코딩된 값의 첫 번째 자릿수와 승산할 결과는 승수의 두 번째 자릿수와 승산한 것에 상응하므로 이를 두 비트 우측으로 쉬프트시킨 후에 0번째 자릿수와 승산한 결과에 더해준다.After multiplying the multiplicand 1001010 by the first digit -2 of the booth-encoded value, shift the bit 1001010 to the right by one bit, invert the shifted value, and add 1 to the inverted value. In addition, since the result of multiplying the first digit of the booth-encoded value substantially corresponds to the multiplication of the second digit of the multiplier, it is added to the result of multiplying with the zeroth digit after shifting it to the right of two bits.

피승수 1001010과 부스 엔코딩된 값의 세 번째 자릿수 -1과의 곱셈 연산은 피승수 1001010을 반전시키고, 반전된 값에 1을 더해주면 된다. 또한, 실질적으로 부스 엔코딩된 값의 두 번째 자릿수와 승산할 결과는 승수의 네 번째 자릿수와 승산한 것에 상응하므로 이를 네 비트 우측으로 쉬프트시킨 후에 (0번째 자릿수와 승산한 결과 + 두 번째 자릿수와 승산한 결과)에 더해 준다.Multiplying the multiplicand 1001010 by the third digit -1 of the booth-encoded value inverts the multiply 1001010 and adds 1 to the inverted value. Also, since the result of multiplying the second digit of the actual booth-encoded value corresponds to the multiplication of the fourth digit of the multiplier, after shifting it to the right by four bits (the result of multiplying with the zeroth digit + the second digit) 1 result).

피승수 1001010과 부스 엔코딩된 값의 세 번째 자릿수 2와의 곱셈 연산을 피승수 1001010을 우측으로 한 비트 쉬프트시켜 주면 된다. 또한, 실질적으로 부스 엔코딩된 값의 세 번째 자릿수와 승산할 결과는 승수의 여섯 번째 자릿수와 승산한 것에 상응하므로 이를 (0번째 자릿수와 승산한 결과 + 두 번째 자릿수와 승산한 결과 + 세 번째 자릿수와 승산한 결과)에 더해준다.Multiply the multiplicand 1001010 by the third digit 2 of the booth-encoded value by shifting the bit 1001010 to the right. Also, the result of multiplying the third digit of the actual booth-encoded value corresponds to the multiplication of the sixth digit of the multiplier, so that (the result of multiplying by the zeroth digit + the result of multiplying by the second digit + the third digit) Multiplication result).

실제의 장치에 있어서는 부스 엔코딩된 값의 최하위 비트부터 곱셈 연산을 수행하고 그 결과 값을 부분합으로 래치한다. 또한, 부스 엔코딩된 값의 하위 비트부터 차상위 비트와의 곱셈 연산을 수행하고 그 결과 값을 먼저의 부분합에 더해 준다. 이때 하위 비트와 그의 차상위 비트와의 곱셈 결과는 2비트의 차이가 있으므로 먼저의 부분합을 2비트 좌측으로 쉬프트시키고, 쉬프트된 결과 값과 새로이 형성된 결과 값을 가산 연산한다. 여기서, 좌측 쉬프트의 결과 떨어져 나간 하위 2비트는 최종 결과값의 하위 2비트가 된다.In an actual device, a multiplication operation is performed from the least significant bit of the booth encoded value and the result is latched into a subtotal. In addition, a multiplication operation is performed from the lower bit of the bus-encoded value to the next higher bit, and the result value is added to the first subtotal. At this time, since the multiplication result of the lower bit and its next higher bit has a difference of 2 bits, the first subtotal is shifted to the left of 2 bits, and the shifted result value and the newly formed result value are added and calculated. Here, the lower two bits separated by the result of the left shift become the lower two bits of the final result value.

이를 부스 엔코딩된 값의 최상위 비트까지 반복하고, 쉬프트의 결과 떨어져 나간 8개의 하위 비트와 최종 부분합을 결합시켜 16비트의 최종 승산 값을 얻는다.This is repeated to the most significant bit of the booth-encoded value, and the final subtotal value of 16 bits is obtained by combining the final subtotals with the eight lower bits that resulted from the shift.

제2도에 있어서 첫 번째 연산과정(100)은 피승수 1001010과 부스 엔코딩된 값의 0번째 자릿수 1과의 곱셈 연산 과정을 보이는 것이다.In FIG. 2, the first calculation process 100 shows a multiplication operation between the multiplicand 1001010 and the 0th digit 1 of the booth encoded value.

윗줄의 0000000001001010은 피승수인 0000000001001010과 부스 엔코딩된 값의 0번째 자릿수 1과를 곱한 결과이다.The upper row of 0000000001001010 is the result of multiplying the multiplicand 0000000001001010 by the 0th digit 1 of the booth encoded value.

밑줄의 0은 하기의 -1 연산 동작에 따른 1의 가산 동작과 동기시키기 위하여 구비된 것이다. 본 발명에서는 이를 쉐도우 가산(shadow addition)이라 한다.The underline 0 is provided to synchronize with the addition operation of 1 according to the following -1 operation. In the present invention, this is referred to as shadow addition.

세 번째 줄은 피승수인 0000000001001010과 부스 엔코딩된 값의 0번째 자릿수와 1과를 곱한 최종 결과를 보이는 것이다. 여기서, 점선으로 그려진 박스 안의 비트들은 부분합으로 래치되는 비트들을 의미하고, 그 옆의 굵은 선으로 표기된 비트들은 최종 승산 값의 최하위 2비트를 구성하는 것이다.The third line shows the final result by multiplying the multiplicand 0000000001001010 by the 0th digit of the booth encoded value and 1. Here, the bits in the box drawn by dotted lines mean bits that are latched into subtotals, and the bits indicated by the thick line next to them constitute the least significant two bits of the final multiplication value.

두 번째 연산 과정(200)은 피승수 1001010과 부스 엔코딩된 값의 첫 번째 자릿수 -2와의 곱셈 연산 과정 및 첫 번째 연산 과정의 결과값과의 합을 보이는 것이다.The second operation 200 shows a sum of the multiplication operation of the multiplicand 1001010 and the first digit -2 of the booth encoded value and the result of the first operation process.

윗줄의 11111101101011은 피승수인 0000000001001010과 부스 엔코딩된 값의 첫 번째 자릿수 -2 곱셈이 있어서 쉬프트 및 인버젼의 결과를 보이는 것이다. 피승수인 0000000001001010을 -2와 곱한다고 하는 것은 피승수를 2비트 우측으로 쉬프트시키고, 이를 반전시킨 후 다시 그 결과에 1을 더하는 것이다.The upper row of 11111101101011 has a multiplicative multiplier of 0000000001001010 and the first digit -2 multiplication of the booth encoded value, resulting in shift and inversion. Multiplying the multiplicand 0000000001001010 by -2 shifts the multiplicand to the right by 2 bits, inverts it, and adds 1 to the result again.

밑줄의 1은 -2 연산 동작에 따른 1의 가산 동작을 구비된 것이다.The underscore 1 has an addition operation of 1 according to the -2 arithmetic operation.

세 번째 줄은 피승수 10001010과 부스 엔코딩된 값의 첫 번째 자릿수 -2와의 곱셈 연산의 결과값 및 첫 번째 연산 과정(100)의 결과값과의 합을 보이는 것이다. 여기서, 점선으로 그려진 박스 안의 비트들은 부분합으로 래치되는 비트들을 의미하고, 그 옆의 굵은 선으로 표기된 비트들은 최종 승산값의 차상위 2비트를 구성하는 것이다.The third line shows the sum of the result of the multiplication operation of the multiplicand 10001010 with the first digit -2 of the booth encoded value and the result of the first operation process 100. Here, the bits in the box drawn by dotted lines mean bits that are latched in a subtotal, and the bits indicated by the thick line next to them constitute the next two bits of the final multiplication value.

세 번째 연산 과정(300)은 피승수 1001010과 부스 엔코딩된 값의 두 번째 자릿수 -1과의 곱셈 연산 과정 및 두 번째 연산 과정(200)의 결과 값과의 합을 보이는 것이다.The third operation 300 is a multiplication operation between the multiplicand 1001010 and the second digit -1 of the booth-encoded value and the sum of the result of the second operation 200.

윗줄의 11111011010은 피승수인 0000000001001010과 부스 엔코딩된 값의 두 번째 자릿수 -1과의 곱셈에 있어서 반전된 결과를 보이는 것이다. 피승수인 0000000001001010을 -1과 곱한다고 하는 것은 피승수를 반전시킨 후 다시 그 결과에 1을 더하는 것이다.11111011010 in the top row shows the inverted result of multiplying the multiplicand 0000000001001010 by the second digit -1 of the booth encoded value. Multiplying the multiplicand 0000000001001010 by -1 inverts the multiplicand and adds 1 to the result again.

밑줄의 1은 -1 연산 동작에 따른 1의 가산 동작을 구비된 것이다.The underline 1 has an addition operation of 1 according to the -1 calculation operation.

세 번째 줄은 피승수 1001010과 부스 엔코딩된 값의 두 번째 자릿수 -1과의 곱셈 연산의 결과값 및 두 번째 연산 과정(200)의 결과값과의 합을 보이는 것이다. 여기서, 점선으로 그려진 박스안의 비트들은 부분합으로 래치되는 비트들을 의미하고, 그 옆의 굵은 선으로 표기된 비트들은 최종 승산 값의 차상위 2비트를 구성하는 것이다.The third line shows the sum of the result of the multiplication operation of the multiplicand 1001010 and the second digit -1 of the booth encoded value and the result of the second operation process 200. Here, the bits in the box drawn by dotted lines mean bits that are latched in a subtotal, and the bits indicated by the thick line next to them constitute two next higher bits of the final multiplication value.

네 번째 연산 과정(400)은 피승수 1001010과 부스 엔코딩된 값의 세 번째 자릿수 2와의 곱셈 연산 과정 및 세 번째 연산 과정(300)의 결과 값과의 합을 보이는 것이다.The fourth operation 400 shows a sum of a multiplication operation of the multiplicand 1001010 and the third digit 2 of the booth encoded value and the result of the third operation 300.

윗줄의 0010010100은 피승수인 0000000001001010과 부스 엔코딩된 값의 세 번째 자릿수 2와의 곱셈에 있어서 쉬프트의 결과를 보이는 것이다. 피승수인 0000000001001010을 2와 곱한다고 하는 것은 피승수를 쉬프트시키는 것이다.The upper line 0010010100 shows the result of the shift in multiplication of the multiplicand 0000000001001010 with the third digit 2 of the booth encoded value. Multiplying the multiplicand 0000000001001010 by 2 is to shift the multiplicand.

밑줄의 0은 첫 번째 연산과정(100)에서와 같이 상기한 -1 연산 동작에 따른 1의 가산 동작과 동기시키기 위하여 구비된 것이다.The underline 0 is provided to synchronize with the addition operation of 1 according to the above -1 operation operation as in the first operation process 100.

세 번째 줄은 피승수 1001010과 부스 엔코딩된 값의 세 번째 자릿수 2와의 곱셈 연산의 결과값 및 세 번째 연산 과정(300)의 결과 값과의 합을 보이는 것이다. 여기서, 점선으로 그려진 박스 안의 비트들은 부분합으로 래치되는 비트들을 의미하고, 그 옆의 굵은 선으로 표기된 비트들은 최종 승산값의 차상위 2비트를 구성하는 것이다.The third line shows the sum of the result of the multiplication operation of the multiplicand 1001010 with the third digit 2 of the booth encoded value and the result of the third operation 300. Here, the bits in the box drawn by dotted lines mean bits that are latched in a subtotal, and the bits indicated by the thick line next to them constitute the next two bits of the final multiplication value.

최종 승산값은 100 내지 400 과정에서 떨어져 나간 8비트와 부분합을 연결함으로써 얻어진다.The final multiplication value is obtained by concatenating the subtotals with the 8 bits apart in 100 to 400 steps.

제3도는 본 발명에 따른 부스 알고리즘 곱셈 연산 장치의 구성을 보이는 블록도이다.3 is a block diagram showing the configuration of a booth algorithm multiplication operation apparatus according to the present invention.

제3도에 도시된 장치는 래치(10), 제1쉬프트기(12), 제1멀티플렉서(14), 산술 연산 장치(16), 스페셜 레지스터(18), 부스 엔코더(20), 제2쉬프트기(22), 부분합 레지스터(24), 배타적 오아 연산기(26), 앤드 연산기(28), 제2멀티플렉서(30), 제3멀티플렉서(32), 전가산기(34), 제2배타적 논리합 연산기(36), 제4멀티플렉서(38), 그리고 제3배타적 논리합 연산기(40)를 구비한다.The apparatus shown in FIG. 3 includes a latch 10, a first shifter 12, a first multiplexer 14, an arithmetic operation device 16, a special register 18, a booth encoder 20, and a second shift. (22), subtotal register (24), exclusive OR operator (26), AND operator (28), second multiplexer (30), third multiplexer (32), full adder (34), second exclusive OR operator ( 36), a fourth multiplexer 38, and a third exclusive OR operator 40.

래치(10)는 피승수를 래치한다.The latch 10 latches the multiplicand.

제1쉬프트기(12)는 래치(10)에 래치된 내용을 1비트 우측으로 쉬프트시켜 출력한다.The first shifter 12 shifts the content latched in the latch 10 to the right by one bit and outputs the shifted content.

제1멀티플렉서(14)는 제공되는 제1선택 신호(SHIFT)에 응답하여 래치(10)에 래치된 피승수 혹은 제1쉬프트기(12)에 발생된 쉬프트된 피승수를 선택적으로 출력한다.The first multiplexer 14 selectively outputs a multiplier latched in the latch 10 or a shifted multiplier generated in the first shifter 12 in response to the provided first selection signal SHIFT.

산술 연산 장치(16)는 그에 제공되는 연산 종류 선택 신호에 응답하여 제1멀티플렉서 혹은 부분합 레지스터(24)에서 제공되는 두 개의 값을 가산 혹은 감산하거나 쉐도우 가산 동작을 수행한다.The arithmetic operation unit 16 adds or subtracts two values provided from the first multiplexer or the subtotal register 24 or performs a shadow addition operation in response to the operation type selection signal provided thereto.

스페셜 레지스터(18)는 승수를 래치하여 매 연산 과정마다 2비트씩 순차적으로 쉬프트 동작을 수행하고, 매 자릿수의 연산 결과를 저장한다.The special register 18 latches a multiplier to sequentially perform a 2-bit shift operation for every operation, and stores the operation result of every digit.

부스 엔코더(20)는 스페셜 레지스터(18)에서 하위의 3비트를 독출하고, 이를 부스 알고리즘에 따라 엔코딩하며, 그 결과에 따라 제1선택 신호(SHIFT), 연산 종류 선택 신호(FUNCTION), 그리고 부가 비트 신호(ADD_SUB)를 발생한다. 여기서, SHIFT 신호는 부스 엔코딩된 값이 2 혹은 -2일 때 발생되고, ADD_SUB는 부스 엔코딩된 값이 음수일 때 발생된다. 쉐도우 가산 신호(ZERO_ADD)는 부스 엔코딩된 값이 양수일 때 발생된다.The booth encoder 20 reads out the lower 3 bits from the special register 18 and encodes it according to the booth algorithm, and according to the result, the first selection signal SHIFT, the operation type selection signal FUNCTION, and the addition. Generate the bit signal ADD_SUB. Here, the SHIFT signal is generated when the booth encoded value is 2 or -2, and the ADD_SUB is generated when the booth encoded value is negative. The shadow addition signal ZERO_ADD is generated when the booth encoded value is positive.

FUNCTION 신호는 부스 엔코딩된 값이 음수일 때는 A-B, rm 외의 경우에는 A+B이고, 그리고 쉐도우 가산 동작시는 A+0이다.The FUNCTION signal is A-B if the booth encoded value is negative, A + B for non-rm, and A + 0 for shadow addition.

제2쉬프트기(22)는 매 자릿수 연산 동작의 마지막에서 산술 연산 장치(16)의 출력을 래치하고, 이를 2비트 좌측 쉬프트를 수행하여 최종 승산값의 차상위 2비트를 뽑아 냄과 더불어 쉬프트된 결과에서 하위 8비트를 부분합 레지스터(24)에 제공하는 동작을 수행한다.The second shifter 22 latches the output of the arithmetic operation unit 16 at the end of every digit calculation operation, performs a 2-bit left shift, extracts the next higher 2 bits of the final multiplication value, and shifts the result. Provides the lower 8 bits to the subtotal register 24.

부분합 레지스터(24)는 매 자릿수의 연산 동작의 결과 발생되는 부분합을 래치하고, 다음의 연산을 위하여 산술 연산 장치(16)에 제공한다.The subtotal register 24 latches the subtotal generated as a result of the calculation operation of every digit and provides it to the arithmetic operation unit 16 for the next operation.

제1배타적 오아 연산기(26)는 래치(10)에 래치된 피승수의 최상위 비트(MCAND_MSB)와 부가 비트 신호(ADD_SUB)를 입력하여 배타적 오아 연산을 수행한다.The first exclusive OR operator 26 performs an exclusive OR operation by inputting the most significant bit MCAND_MSB and the additional bit signal ADD_SUB of the multiplicand latched in the latch 10.

앤드 연산기(28)는 제1배타적 오아 연산기(26)의 출력과 쉐도우 가산 신호(ZERO_ADD)의 반전 신호를 입력하여 앤드 연산을 수행한다.The AND operator 28 inputs an output of the first exclusive OR operator 26 and an inverted signal of the shadow addition signal ZERO_ADD to perform an AND operation.

제2멀티플렉서(30)는 제1선택 신호(SHIFT)에 응답하여 제1배타적 오아 연산기의 출력(26)과 부가 비트 신호(ADD_SUB)를 선택적으로 출력한다.The second multiplexer 30 selectively outputs the output 26 of the first exclusive OR operator and the additional bit signal ADD_SUB in response to the first selection signal SHIFT.

제3멀티플렉서(34)는 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호(SIGNED/UNSIGNED)에 응답하여 앤드 연산기(28)의 출력과 제2멀티플렉서(30)의 출력을 선택적으로 출력한다.The third multiplexer 34 selectively outputs the output of the AND operator 28 and the output of the second multiplexer 30 in response to a signal SIGNED / UNSIGNED specifying a signed or unsigned multiplication operation.

전가산기(34)는 부분합 레지스터에 래치된 부분합의 최상위 비트(PARTIAL_MSB), 제3멀티플렉서(32)의 출력, 그리고 산술 연산 장치(16)의 캐리 신호를 입력하여 전 가산 연산(full addition)을 수행하여 합신호(SUM)를 상기 부분합 레지스터의 (최상위 비트-1)번째 비트로서 제공한다.The full adder 34 inputs the most significant bit PARTIAL_MSB of the subtotal latched in the subtotal register, the output of the third multiplexer 32, and the carry signal of the arithmetic operation unit 16 to perform a full addition. The sum signal SUM is provided as the (most significant bit-1) th bit of the subtotal register.

제2배타적 논리합 연산기(36)는 부분합 레지스터(24)에 래치된 부분합의 최상위 비트(PARTIAL_MSB)와 전가산기(34)의 캐리 신호를 입력하여 배타적 논리합 연산을 수행한다.The second exclusive OR operator 36 performs an exclusive OR operation by inputting the most significant bit PARTIAL_MSB of the subtotals latched in the subtotal register 24 and the carry signal of the full adder 34.

제4멀티플렉서(38)는 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호(SIGNED/UNSIGNED)에 응답하여 앤드 연산기(28)의 출력과 부가 비트 신호(ADD_SUB)를 선택적으로 출력한다.The fourth multiplexer 38 selectively outputs the output of the AND operator 28 and the additional bit signal ADD_SUB in response to a signal SIGNED / UNSIGNED specifying a signed or unsigned multiplication operation.

제3배타적 논리합 연산기(40)는 제2배타적 논리합 연산기(36)의 출력과 제4멀티플렉서(38)의 출력을 입력하여 배타적 논리합 연산을 수행하고 그 결과를 부분합 레지스터의 최상위 비트로서 제공한다.The third exclusive OR operator 40 inputs the output of the second exclusive OR operator 36 and the output of the fourth multiplexer 38 to perform an exclusive OR operation and provides the result as the most significant bit of the subtotal register.

제3도에 도시된 장치의 동작을 상세히 설명한다. 먼저, 부스 엔코딩된 결과를 자릿수별 연산 동작마다 더하거나 빼기 위해서는 n-bit X n-bit 곱셈 연산의 경우 n+1 bit의 산술 연산 장치가 필요하다. 그 이유는 최대 2*피승수를 더하거나 빼야 하기 때문이다.The operation of the apparatus shown in FIG. 3 will be described in detail. First, in order to add or subtract a booth-encoded result for each digit operation, an n + 1 bit arithmetic unit is required for n-bit X n-bit multiplication. This is because a maximum of 2 * multiplicands must be added or subtracted.

그러나, 곱셈 연산만을 위해서 n+1 bit의 산술 연산 장치를 사용한다는 것은 하드웨어 상의 낭비이기 때문에 본 발명에서는 전가산기(34)를 추가하여 n+1 bit의 감산/가산기를 구현하였다.However, since the use of an n + 1 bit arithmetic unit only for the multiplication operation is a waste of hardware, the present invention implements an n + 1 bit subtracter / adder by adding a full adder 34.

1. 부호가 있는 곱셈 연산1. Signed multiplication

1) 먼저, 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호(SIGNED/UNSIGNED)를 0으로 만든다.First, zero the signal (SIGNED / UNSIGNED) that specifies a signed or unsigned multiplication operation.

부분합 레지스터(24)를 0으로 초기화한다.The subtotal register 24 is initialized to zero.

피승수를 래치(10)에 래치한다.The multiplicand is latched in the latch 10.

스페셜 레지스터(18)의 최하위 비트(LSB)를 0으로 하고, 첫 번째 비트 이후에 승수를 로드한다.The least significant bit (LSB) of the special register 18 is set to 0, and a multiplier is loaded after the first bit.

2) 다음과 같은 동작을 8번 수행한다.2) Perform the following eight times.

산술 연산 장치(16)의 결과값과 전가산기(34) 및 제3배타적 논리합 연산기(40)의 출력을 연결(concatenation)하여 부분합 레지스터(24)에 제공한다. 또한 스페셜 레지스터(18)에 저장된 내용을 2비트 우측 쉬프트시킨다. 이때 스페셜 레지스터(18)의 상위 2비트는 산술 연산 장치(16)에서 결과된 값의 하위 2비트로 채운다.The result value of the arithmetic operation unit 16 and the outputs of the full adder 34 and the third exclusive OR operator 40 are concatenated and provided to the subtotal register 24. Also, the contents stored in the special register 18 are shifted two bits to the right. The upper two bits of the special register 18 are filled with the lower two bits of the result of the arithmetic operation unit 16.

3) 1),2)과정을 수행한 후에, 부분합 레지스터(24)의 값이 최종 곱셈 결과의 상위 워드가 되고, 스페셜 레지스터(18)의 비트16에서 비트1까지의 데이터가 하위 워드가 된다.3) After performing steps 1) and 2), the value of the subtotal register 24 becomes the upper word of the final multiplication result, and the data from bits 16 to bit 1 of the special register 18 becomes the lower word.

2. 부호가 없는 곱셈 연산2. Unsigned Multiplication

1) 먼저, 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호(SIGNED/UNSIGNED)를 1로 만든다.1) First, make a signal (SIGNED / UNSIGNED) that specifies a signed or unsigned multiplication operation.

2) 만약 승수의 최상위 비트(MSB)가 1이라면 부분합 레지스터(24)에 피승수 값을 더해 준다. 왜냐하면 부호가 없는 곱셈 연산에서 승수의 최상위 비트(MSB)는 부호 비트가 아니기 때문이다.2) If the most significant bit (MSB) of the multiplier is 1, the multiplicand value is added to the subtotal register 24. This is because, in an unsigned multiplication operation, the most significant bit (MSB) of the multiplier is not a sign bit.

3) 최종 결과값은 부호가 있는 곱셈 연산에서와 같다.3) The final result is the same as in signed multiplication.

여기서, 전가산기(34)의 입력 신호 결정은 우선 입력 A의 경우 부호가 있는/부호가 없는 곱셈 모두 부분합 레지스터(24)의 최상위 비트가 입력되게 되고, 입력 B의 경우에는 부호가 있는 곱셈 연산이면 승수의 최상위 비트가 부호 비트로 작용하고 부호가 없는 곱셈 연산의 경우 부호 비트로 작용하지 않기 때문에 두 경우가 서로 다르다.Here, for the input signal determination of the full adder 34, the most significant bit of both the signed / unsigned multiplication register 24 is input for the input A, and the signed multiplication operation for the input B. The two cases are different because the most significant bit of the multiplier acts as the sign bit and does not act as the sign bit for an unsigned multiplication operation.

첫째, 부호가 있는 곱셈 연산의 경우 입력 B에는 승수의 최상위 비트와 ADD-SUB 신호를 XOR해서 들어가야 한다. 그 이유는 부스 엔코딩한 결과 ADD_SUB 신호가 1인 경우 부호가 바뀌기 때문이다. 그리고 이 값에 반전된 ZERO_ADD가 앤드 연산되는 것은 부스 엔코딩된 결과가 ZERO인 경우 입력은 0이어야 하기 때문이다.First, in a signed multiplication operation, input B must have an XOR of the most significant bit of the multiplier and the ADD-SUB signal. This is because the sign is changed when the ADD_SUB signal is 1 as a result of booth encoding. And the ZERO_ADD inverted to this value is ANDed because the input should be 0 when the booth encoded result is ZERO.

둘째, 부호가 있는 곱셈 연산의 경우 입력 B에는 SHIFT 신호가 1인 경우 승수의 최상위 비트 값과 ADD_SUB 신호를 배타적 논리합한 것과 같고, SHIFT 신호가 1인 경우에는 ADD_SUB 신호가 입력으로 쓰여진다.Second, in the case of a signed multiplication operation, the input B is equivalent to the exclusive OR of the most significant bit value of the multiplier and the ADD_SUB signal when the SHIFT signal is 1, and the ADD_SUB signal is written as an input when the SHIFT signal is 1.

그리고 산술 연산 장치(16)의 연산 결과가 부분합 레지스터(24)에 쓰여질 때 최상위 비트는 부호가 있는 곱셈 연산의 경우와 부호가 없는 곱셈 연산의 경우가 다르게 적용된다.When the arithmetic operation result of the arithmetic operation unit 16 is written to the subtotal register 24, the most significant bit is applied differently for the signed multiplication operation and for the unsigned multiplication operation.

첫째, 부호가 있는 곱셈 연산의 경우 이 비트는 이전 부분합 레지스터(24)의 최상위 비트와 거기에 더해질 (부스 엔코딩 출력과 부호확장된 승수의 곱)의 최상위 비트 그리고 전가산기(34)에서 출력되는 캐리 값에 의해 결정된다.First, for signed multiply operations, this bit is the most significant bit of the previous subtotal register 24, plus the most significant bit of the multiplication of the boot encoding output and the signed multiplier, and the carry output from the full adder 34. Determined by the value.

즉, 세 가지 값 중에서 홀수 개가 1의 값을 가지면 이 비트는 1이 된다. 여기서, (부스 엔코딩 출력과 부호 확장된 승수의 곱)은 (ADD_SUB .XOR. 승수의 MSB) .AND. (/ZERO_ADD)로 결정된다.That is, if an odd number of three values has a value of 1, this bit becomes 1. Here, (the product of the boot encoding output and the sign extended multiplier) is (ADD_SUB .XOR.MSB of the multiplier) .AND. Determined by (/ ZERO_ADD).

둘째, 부호가 없는 곱셈 연산의 경우 부호가 있는 곱셈 연산의 경우처럼 세 가지 값에 의해 결정이 된다. 다른 점은 (부스 엔코딩 출력과 부호 확장된 승수의 곱) 대신에 (부스 엔코딩 출력과 부호 확장되지 않은 승수의 곱)이 사용된다. 이 값은 부호가 없는 곱셈에서는 승수의 값이 항상 양수이기 때문에 ADD_SUB의 값이 곧바로 사용될 수 있다.Second, unsigned multiplication is determined by three values as in signed multiplication. The difference is that the product of the boot encoding output and the unsigned multiplier is used instead of the product of the boot encoding output and the unsigned multiplier. In unsigned multiplication, the value of ADD_SUB can be used directly because the value of the multiplier is always positive.

제4도는 제3도에 도시된 3비트 부스 엔코더의 출력 값을 나타낸다. 이 출력값 중에서 ADD-SUB는 0일 때 피승수에 양수(1, 2)를 곱해서 더하도록 하고, 1일 때 음수(-1, -2)를 곱해서 더하도록 하는 신호이다.4 shows the output value of the 3-bit busbar encoder shown in FIG. Of these output values, ADD-SUB is a signal that multiplies the multiplicands by a positive number (1, 2) when 0, and multiplies by a negative number (-1, -2) when 1 is added.

그리고 SHIFT는 1일 때 피승수에 2를 곱하게 해준다. 그리고 0을 곱할때는 ZERO_ADD 신호가 1이 된다.And SHIFT lets you multiply the multiplicand by 2 when it is 1. When multiplying by zero, the ZERO_ADD signal is 1.

제5도는 제3도에 도시된 스페셜 레지스터의 구성을 보이는 것이다.FIG. 5 shows the configuration of the special register shown in FIG.

상술한 바와 같이 본 발명에 따른 부스 알고리즘 곱셈 연산 장치는 부스 알고리즘에 의해 연산 횟수를 종래의 절반으로 줄이도록 함으로써 산술 연산 장치에 의해 고속의 곱셈 연산을 가능하게 하는 효과를 갖는다.As described above, the booth algorithm multiplication apparatus according to the present invention has the effect of enabling a fast multiplication operation by the arithmetic operation apparatus by reducing the number of operations by the booth algorithm to half of the conventional one.

Claims (1)

부스 알고리즘에 의해 부호가 있는 혹은 부호가 없는 곱셈 연산을 수행하는 장치에 있어서, 피승수를 래치하는 래치; 상기 래치에 래치된 내용을 1비트 우측으로 쉬프트시켜 출력하는 제1쉬프트기; 그에 제공되는 제1선택 신호에 응답하여 상기 래치에 래치된 피승수 혹은 상기 제1쉬프트기에서 발생된 쉬프트된 피승수를 선택적으로 출력하는 제1멀티플렉서; 그에 제공되는 연산 종류 선택 신호에 응답하여 상기 제1멀티플렉서 혹은 상기 부분합 레지스터에서 제공되는 두 개의 값을 가산 혹은 감산하는 산술 연산 장치; 상기 산술 연산 장치의 출력을 래치하여 2비트 좌측 쉬프트를 수행하는 제2쉬프트기; 승수 및 연산 결과를 래치하는 스페셜 레지스터; 상기 스페셜 레지스터에 저장된 승수를 입력하여 제1선택 신호, 연산 종류 선택 신호, 그리고 부가 비트 신호를 발생하는 부스 엔코더; 부분합을 저장하는 부분합 레지스터; 상기 래치된 피승수의 최상위 비트와 부가 비트 신호를 입력하여 배타적 오아 연산을 수행하는 배타적 오아 연산기; 상기 배타적 오아 연산기의 출력과 쉐도우 가산 신호를 입력하여 앤드 연산을 수행하는 앤드 연산기; 제1선택 신호에 응답하여 상기 제1배타적 오아 연산기의 출력과 부가 비트 신호를 선택적으로 출력하는 제2멀티플렉서; 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호에 응답하여 상기 앤드 연산기의 출력과 상기 제2멀티플렉서의 출력을 선택적으로 출력하는 제3멀티플렉서; 상기 부분합 레지스터에 래치된 부분합의 최상위 비트, 상기 제3멀티플렉서의 출력, 그리고 상기 산술 연산 장치의 캐리 신호를 입력하여 전 가산 연산을 수행하여 합신호를 상기 부분합 레지스터의 (최상위 비트-1)번째의 비트로서 제공하는 전가산기; 상기 부분합 레지스터에 래치된 부분합의 최상위 비트와 상기 전가산기의 캐리 신호를 입력하여 배타적 논리합 연산을 수행하는 제2배타적 논리합 연산기; 부호가 있는 혹은 부호가 없는 곱셈 연산을 지정하는 신호에 응답하여 상기 앤드 연산기의 출력과 부가 비트 신호를 선택적으로 출력하는 제4멀티플렉서; 및 상기 제2배타적 논리합 연산기의 출력과 상기 제4멀티플렉서의 출력을 입력하여 배타적 논리합 연산을 수행하고 그 결과를 상기 부분합 레지스터의 최상위 비트로서 제공하는 제3배타적 논리합 연산기를 포함하는 부스 알고리즘 곱셈 연산 장치.An apparatus for performing a signed or unsigned multiplication operation by a booth algorithm, comprising: a latch for latching a multiplicand; A first shifter for shifting the content latched in the latch to the right by one bit and outputting it; A first multiplexer for selectively outputting a multiplier latched in the latch or a shifted multiplier generated in the first shifter in response to a first selection signal provided thereto; An arithmetic operation unit for adding or subtracting two values provided from the first multiplexer or the subtotal register in response to an operation type selection signal provided thereto; A second shifter which latches an output of the arithmetic operation unit and performs a 2-bit left shift; A special register for latching a multiplier and an operation result; A booth encoder configured to input a multiplier stored in the special register to generate a first selection signal, an operation type selection signal, and an additional bit signal; A subtotal register for storing the subtotal; An exclusive ore operator configured to perform an exclusive ore operation by inputting a most significant bit and an additional bit signal of the latched multiplicand; An AND operator inputting an output of the exclusive OR operator and a shadow addition signal to perform an AND operation; A second multiplexer for selectively outputting an output of the first exclusive OR operator and an additional bit signal in response to a first selection signal; A third multiplexer for selectively outputting the output of the AND operator and the output of the second multiplexer in response to a signal specifying a signed or unsigned multiplication operation; Input the most significant bit of the subtotal latch latched to the subtotal register, the output of the third multiplexer, and the carry signal of the arithmetic operation unit to perform a full addition operation, and add the sum signal to the (most significant bit-1) th of the subtotal register. A full adder serving as a bit; A second exclusive OR operator configured to perform an exclusive OR operation by inputting the most significant bit of the subtotal latched in the subtotal register and the carry signal of the full adder; A fourth multiplexer for selectively outputting the output of the AND operator and the additional bit signal in response to a signal specifying a signed or unsigned multiplication operation; And a third exclusive OR operator configured to input an output of the second exclusive OR operator and an output of the fourth multiplexer to perform an exclusive OR operation and provide the result as the most significant bit of the subtotal register. .
KR1019950059520A 1995-12-27 1995-12-27 A multiplier of booth algorithm using arithmetic unit KR0161485B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950059520A KR0161485B1 (en) 1995-12-27 1995-12-27 A multiplier of booth algorithm using arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950059520A KR0161485B1 (en) 1995-12-27 1995-12-27 A multiplier of booth algorithm using arithmetic unit

Publications (2)

Publication Number Publication Date
KR970049461A KR970049461A (en) 1997-07-29
KR0161485B1 true KR0161485B1 (en) 1999-01-15

Family

ID=19445230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950059520A KR0161485B1 (en) 1995-12-27 1995-12-27 A multiplier of booth algorithm using arithmetic unit

Country Status (1)

Country Link
KR (1) KR0161485B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (en) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 Floating-Point Complex Arithmetic Unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (en) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 Floating-Point Complex Arithmetic Unit

Also Published As

Publication number Publication date
KR970049461A (en) 1997-07-29

Similar Documents

Publication Publication Date Title
US4286256A (en) Method and means for arithmetic coding utilizing a reduced number of operations
US5262976A (en) Plural-bit recoding multiplier
JP2000347836A (en) High-order radix divider and method therefor
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
JP2585649B2 (en) Division circuit
US3878985A (en) Serial-parallel multiplier using booth{3 s algorithm with combined carry-borrow feature
EP0398568A2 (en) Multiplier circuit
KR920003494B1 (en) Real time 2's complement number code multification method and circuit
KR100218825B1 (en) Multiplication device and sum of products calculation device
EP0428942B1 (en) Plural-bit recoding multiplier
US4677583A (en) Apparatus for decimal multiplication
US5574677A (en) Adaptive non-restoring integer divide apparatus with integrated overflow detect
KR0158647B1 (en) Multiplier using both signed number and unsigned number
KR0161485B1 (en) A multiplier of booth algorithm using arithmetic unit
JP3660075B2 (en) Dividing device
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
US5691930A (en) Booth encoder in a binary multiplier
KR19980043591A (en) Modular multiplication device for information protection
Bashagha et al. A new digit-serial divider architecture
US6148318A (en) Square root extraction circuit and floating-point square root extraction device
JP2777265B2 (en) High radix square root arithmetic unit
JP2803442B2 (en) Square root device
US5253194A (en) Digital multiplier
KR0136488B1 (en) Parallel multiplier

Legal Events

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

Payment date: 20060728

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee