KR100223738B1 - Floating arithmetic apparatus of processing division and square root with a data path - Google Patents

Floating arithmetic apparatus of processing division and square root with a data path Download PDF

Info

Publication number
KR100223738B1
KR100223738B1 KR1019960076251A KR19960076251A KR100223738B1 KR 100223738 B1 KR100223738 B1 KR 100223738B1 KR 1019960076251 A KR1019960076251 A KR 1019960076251A KR 19960076251 A KR19960076251 A KR 19960076251A KR 100223738 B1 KR100223738 B1 KR 100223738B1
Authority
KR
South Korea
Prior art keywords
signal
register
input
square root
division
Prior art date
Application number
KR1019960076251A
Other languages
Korean (ko)
Other versions
KR19980056981A (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 KR1019960076251A priority Critical patent/KR100223738B1/en
Publication of KR19980056981A publication Critical patent/KR19980056981A/en
Application granted granted Critical
Publication of KR100223738B1 publication Critical patent/KR100223738B1/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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 가산기와 데이터 패스를 공용화하여 제곱근과 나눗셈을 별도로 연산할 수 있도록 함으로써 회로를 경제적으로 구성할 수가 있는 플로우팅 연산장치에 관한 것으로, 본 발명의 구성은, 나눗셈 연산을 위한 로버트슨 알고리즘이 테이블화되어 있는 PLA와, 가산기의 출력신호를 2비트 시프트하여 출력하는 시프터와, 상기 시프터의 출력신호를 저장하여 상기 PLA로 입력되도록 하는 레지스터와, 상기 PLA로부터 매회 2비트씩 출력되는 몫이 저장되는 포지티브 레지스터 및 네거티브 레지스터와, 나눗셈 연산을 제어하기 위한 제어신호를 출력하는 나눗셈 컨트롤러로 구성되어 나눗셈 연산을 수행하고, 제곱근 명령신호에 따라 2비트씩 시프트되는 신호를 출력하는 포지티브 레지스터와, 상기 포지티브 레지스터로부터 입력되는 신호에 따라 신호를 생성하여 가산기로 출력하는 제2입력신호 발생부와, 부호신호를 판단하여 양이면 피제수의 2의 보수를 가산기로 출력하고, 음이면 그대로 피제수를 가산기로 출력하는 제1입력신호 발생부와, 가산기에서 발생되는 부호신호에 의해 매클럭마다 업데이트되는 입력 레지스터와, 제곱근 연산을 제어하기 위한 제어신호를 출력하는 제곱근 컨트롤러로 구성되어 제곱근 연산을 수행하는 것을 특징으로 한다.The present invention relates to a floating computing device capable of economically constructing a circuit by allowing an adder and a data path to be shared so that square root and division can be separately calculated. The structure of the present invention is a Robertson algorithm table for division calculation. A PLA, a shifter for shifting the output signal of the adder by 2 bits, and outputting the register, a register for storing the shifter output signal and inputting the PLA to the PLA, and a quotient output 2 bits each time from the PLA. A positive register and a negative register, and a division controller configured to output a control signal for controlling the division operation, performing a division operation, and outputting a signal shifted by two bits according to a square root command signal, and the positive register. Depending on the signal input from A second input signal generator for outputting to the adder; a second input signal generator for judging a sign signal and outputting the two's complement of the dividend if positive, and outputting the dividend to an adder if negative; The input register is updated every clock by the code signal generated by the signal, and the square root controller for outputting a control signal for controlling the square root operation is characterized by performing a square root operation.

Description

하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치Floating computing unit that can handle division and square root with one data path

본 발명은 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치에 관한 것으로, 특히 가산기와 데이터 패스를 공용화하여 제곱근과 나눗셈을 별도로 연산할 수 있도록 함으로써 회로를 경제적으로 구성할 수가 있는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치에 관한 것이다.The present invention relates to a floating computing device capable of processing division and square roots in one data path. In particular, the circuit can be economically constructed by allowing an adder and a data path to be shared so that square roots and division can be separately calculated. A floating computing device capable of processing division and square roots in one data path.

과학적인 전문분야에서는 유효숫자에 대한 정밀을 요하지 않는 엄청나게 크거나 작은 크기를 갖는 숫자들이 종종 사용된다. 예를들어, 십진법을 사용하면 천문학자는 1030이상이 되는 큰 숫자를 다루어야만 하고, 화학자는 10-30이하가 되는 작은 숫자를 사용해야만 한다. 또한, 물리학자는 천문학자와 화학자가 필요로 하는 영역의 숫자를 모두 필요로 하게 된다. 이와 같이 극도로 작거나 큰 숫자는 최종숫자까지 정확하게 계산될 수가 없는데, 임의의 유효수자만을 계산하여 결과를 얻는 것만으로 충분한 경우가 많다. 예를들면, 십진수 (2, 637, 485, 968, 463, 425, 463, 774, 856, 308, 291)는 매우 큰 수이다. 하지만, 어떤 누구라도 이와 같은 정도의 정밀을 요하는 경우는 극히 드물다. 만약, 상기 십진수가 5자리의 유효숫자를 갖는다면, 상기 십진수는 (2, 637, 500, 000,000,000,000,000,000,000,000)로서 표현해도 충분하게 된다. 그렇지만, 이를 그대로 표현하는 것은 매우 어리석은 일이다. 왜냐하면, 이와 같은 십진수는 플로우팅 포인트 포맷(floating point format)을 이용하여 표현하면 2.6375×1030과 같이 간단하게 표현될 수가 있고, 알아보기도 매우 쉽게 되기 때문이다.In the scientific specialty, numbers of very large or small sizes are often used that do not require precision of significant figures. For example, using the decimal system, astronomers must deal with large numbers greater than 10 30 and chemists must use small numbers less than 10 -30 . In addition, physicists need both the number of areas that astronomers and chemists need. Such extremely small or large numbers cannot be accurately calculated to the last digit, but it is often sufficient to calculate only any significant digits and obtain a result. For example, decimal numbers (2, 637, 485, 968, 463, 425, 463, 774, 856, 308, 291) are very large numbers. However, it is extremely rare for anyone to require this level of precision. If the decimal number has five significant digits, the decimal number may be represented as (2, 637, 500, 000,000,000,000,000,000,000,000). However, it is very foolish to express it as it is. This is because such a decimal number can be simply expressed as 2.6375 × 10 30 if it is represented using a floating point format, and it is very easy to recognize.

일반적으로 컴퓨터에서는 이와 같은 플로우팅 포인트 포맷을 이용하여 연산이 이루어지게 되는데, 이와 같이 컴퓨터에서 이루어지게 되는 플로우팅 포인트 숫자의 이진 연산은 매우 간단하게 이루어진다. 종래의 컴퓨터에서의 플로팅 연산을 위한 플로우팅 연산장치는, 나눗셈과 제곱근을 별도로 연산하기 때문에 각각의 데이터 패스(data path)를 이용하는 구조로 이루어진다.In general, a computer performs calculation using this floating point format. As described above, a binary operation of a floating point number performed by a computer is very simple. In the conventional computer, the floating computing device for floating calculations has a structure using separate data paths because the division and square roots are calculated separately.

따라서, 종래에는 나눗셈과 제곱근을 연산하기 위해서 각각의 데이터 패스를 필요로 하므로 많은 하드웨어 구성요소를 필요로 하게 되어 칩사이즈(chip size)가 증가되는 문제점이 있다.Therefore, in the related art, each data path is required to calculate the division and the square root, which requires many hardware components, thereby increasing the chip size.

본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위한 것으로서, 가산기와 데이터 패스를 공용화하여 제곱근과 나눗셈을 별도로 연산할 수 있도록 함으로써 회로를 경제적으로 구성할 수가 있는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치를 제공하는데 그 목적이 있다.The present invention is to solve the problems of the prior art as described above, divide and square root into a single data path that can be economically configured circuit by adding the adder and the data path so that the square root and the division can be calculated separately An object of the present invention is to provide a floating computing device capable of processing.

도1은 본 발명의 실시예에 따른 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치의 회로 구성도,1 is a circuit diagram of a floating computing device capable of processing division and square roots in one data path according to an embodiment of the present invention;

도2는 본 발명의 실시예에 따른 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치의 로버트슨 다이어그램.FIG. 2 is a Robertson diagram of a floating computing device capable of processing division and square roots in one data path in accordance with an embodiment of the present invention. FIG.

* 도면의 주요부분에 대한 부호설명* Explanation of symbols on the main parts of the drawings

1 : 나눗셈 컨트롤러 2 : 제곱근 컨트롤러1: division controller 2: square root controller

3 : PLA 4 : 입력 레지스터3: PLA 4: input register

5 : 제1입력신호 발생부 6 : 가산기5: first input signal generator 6: adder

7, 10, 12 : 시프터 8, 9, 11 : 레지스터7, 10, 12: shifters 8, 9, 11: registers

13 : 스티키 비트 발생부 14 : 제2입력신호 발생부13: sticky bit generator 14: second input signal generator

15 : 제곱근 입력 발생부15: square root input generator

상기 목적을 달성하기 위한 수단으로서 본 발명은, 나눗셈 연산을 위한 로버트슨 알고리즘이 테이블화 되어 있는 PLA와, 가산기의 출력신호를 2비트 시프트하여 출력하는 시프터와, 상기 시프터의 출력신호를 저장하여 상기 PLA로 입력되도록 하는 레지스터와, 상기 PLA로부터 매회 2비트씩 출력되는 몫이 저장되는 포지티브 레지스터 및 네거티브 레지스터와, 나눗셈 연산을 제어하기 위한 제어신호를 출력하는 나눗셈 컨트롤러로 구성되어 나눗셈 연산을 수행하고, 제곱근 명령신호에 따라 2비트씩 시프트되는 신호를 출력하는 포지티브 레지스터와, 상기 포지티브 레지스터로부터 입력되는 신호에 따라 신호를 생성하여 가산기로 출력하는 제2입력신호 발생부와, 부호신호를 판단하여 양이면 피제수의 2의 보수를 가산기로 출력하고, 음이면 그대로 피제수를 가산기로 출력하는 제1입력신호 발생부와, 가산기에서 발생되는 부호신호에 의해 매클럭마다 업데이트되는 입력 레지스터와, 제곱근 연산을 제어하기 위한 제어신호를 출력하는 제곱근 컨트롤러로 구성되어 제곱근 연산을 수행하는 것을 특징으로 한다.The present invention as a means for achieving the above object, the PLA is a table of Robertson algorithm for the division operation, a shifter for shifting the output signal of the adder by two bits, and the output signal of the shifter to store the PLA And a divider controller for outputting a control signal for controlling the divide operation, and a divider controller. A positive register for outputting a signal shifted by two bits according to the command signal, a second input signal generator for generating a signal according to the signal input from the positive register, and outputting the signal to an adder; Outputs 2's complement to adder, if negative The first input signal generator for outputting the number to the adder, the input register is updated every clock by the code signal generated by the adder, and the square root controller for outputting a control signal for controlling the square root operation to perform the square root operation It is characterized by performing.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도1은 본 발명의 실시예에 따른, 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치의 회로 구성도이다. 도1에 도시되어 있는 바와 같이 본 발명의 실시예에 따른 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치의 구성은, 입력 레지스터(4)와, 상기 입력 레지스터(4)의 출력단에 연결되어 있는 제1입력신호 발생부(5)와, 상기 제1입력신호 발생부(5)의 출력단에 연결되어 있는 가산기(6)와, 가산기(6)의 출력단에 연결되어 있는 시프터(7)와, 시프터(7)의 값을 저장하기 위한 레지스터와, 레지스터(8)의 출력단에 연결되어 가산기(6)로 신호를 되먹임시키는 제2입력신호 발생부(14)와, 레지스터(8)의 출력단에 연결되어 있는 PLA(3)와, PLA(3)의 출력단에 연결되어 있는 포지트브 레지스터(9) 및 네거티브 레지스터(11)와, 상기 포지트브 레지스터(9) 및 네거티브 레지스터(11)에 각각 연결되어 있는 시프터(10, 12)와, 레지스터(8, 9, 11)에 연결되어 있는 스티키 비트 발생부(13)와, 제곱근 입력 발생부(15)와, 나눗셈 및 제곱근 연산을 제어하기 위한 나눗셈 컨트롤러(1) 및 제곱근 컨트롤러(2)로 이루어진다.1 is a circuit diagram of a floating computing device capable of processing division and square roots in one data path according to an embodiment of the present invention. As shown in FIG. 1, a configuration of a floating computing device capable of processing division and square roots in one data path according to an embodiment of the present invention includes an input register 4 and an input register 4. A first input signal generator 5 connected to an output terminal, an adder 6 connected to an output terminal of the first input signal generator 5, and a shifter connected to an output terminal of the adder 6; 7), a register for storing the value of the shifter 7, a second input signal generator 14 connected to the output terminal of the register 8 to feed back the signal to the adder 6, and the register 8; PLA (3) is connected to the output terminal of the, the positive register (9) and negative register (11) connected to the output terminal of the PLA (3), the positive register (9) and negative register (11) Connected to the shifters 10 and 12 and the registers 8, 9 and 11, respectively. Made of a sticky bit generating section 13, a root input generation unit 15, a division controller (1) and the square root of the controller 2 for controlling the division and square root operations.

상기 구성에 의한 본 발명의 실시예에 따른 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치의 동작은 다음과 같이 이루어진다.The operation of the floating computing device capable of processing the division and the square root in one data path according to the embodiment of the present invention by the above configuration is performed as follows.

본 발명의 실시예에서는 동작선택 신호(Div/Sqrt)에 따라 나눗셈 컨트롤러(1) 또는 제곱근 컨트롤러(2)가 선택되어 동작하게 됨으로써 나눗셈 연산 또는 제곱근 연산이 이루어진다. 여기에서는, 상기한 나눗셈 연산과 제곱근 연산이 이루어지는 과정을 나누어서 설명하기로 하고, 익스텐디드 프레시전의 경우에 64비트의 프랙션 비트와, 15비트의 지수 비트와, 1비트의 부호비트를 갖는 것으로 가정한다.In the embodiment of the present invention, the division controller 1 or the square root controller 2 is selected and operated according to the operation selection signal Div / Sqrt, thereby performing a division operation or a square root operation. Here, the division process and the square root operation described above will be described separately, and in the case of an extended presentation, it has a 64-bit fractional bit, a 15-bit exponential bit, and a 1-bit sign bit. Assume

1. 나눗셈 연산1. Division operation

나눗셈 연산의 기본적인 알고리즘은 SRT(Sweeny, Robertson, Tocher) 알고리즘을 사용하며, 이 알고리즘에 의하면, 2비트씩 포지티브 몫과 네거티브 몫을 구한 후에, 마지막 사이클에서 포지티브값에서 네거티브값을 뺀 값을 몫으로 정하는 방식이다. 따라서, 68비트의 출력을 얻기 위해서는 34번의 연산이 필요하고, 그 후에 포지티브값과 네거티브값의 차이를 구해 값을 구할 수가 있다.The basic algorithm of the division operation uses the SRT (Sweeny, Robertson, Tocher) algorithm, which calculates the positive and negative quotients by two bits and then divides the positive values by the negative values in the last cycle. This is how you decide. Therefore, in order to obtain an output of 68 bits, 34 operations are required. After that, the difference between the positive value and the negative value can be obtained to obtain a value.

부호신호(Qi)는 64비트의 입력 레지스터(4)에 저장된 후, 제1입력신호 발생부(5)로 출력된다.The code signal Qi is stored in the 64-bit input register 4 and then output to the first input signal generator 5.

상기 제1입력신호 발생부(5)에는 입력 레지스터(4)로부터 입력되는 부호신호와, 제1버스(ABUS)로부터 입력신호를 나누기 위한 제수신호(Divisor)가 입력된다. 이때, 상기 제1입력신호 발생부(5)의 출력신호는 PLA(3)로부터 출력되는 3비트의 신호(Adder_Abus selection)에 의해서 결정된다.A code signal input from the input register 4 and a divisor signal for dividing an input signal from the first bus ABUS are input to the first input signal generator 5. At this time, the output signal of the first input signal generator 5 is determined by a 3-bit signal (Adder_Abus selection) output from the PLA (3).

가산기(6)는 상기 제1입력신호 발생부(5)로부터 입력되는 신호와 제2입력신호 발생부(14)로부터 입력되는 신호를 가산하여 부호신호(Qi)로서 출력하게 된다.The adder 6 adds a signal input from the first input signal generator 5 and a signal input from the second input signal generator 14 and outputs it as a code signal Qi.

상기 가산기(6)의 출력신호(Adder_out)는 시프터(7)에서 2비트 시프된 후에 레지스터(8)에 저장되며, 이와 같이 레지스터(8)에 저장된 신호(Rem_register)의 상위 4비트는 PLA(3)로 출력된다.The output signal Adder_out of the adder 6 is stored in the register 8 after being shifted two bits by the shifter 7, and thus the upper four bits of the signal Rem_register stored in the register 8 are PLA (3). Will be printed).

PLA(3)는 제수신호(Divisor)의 상위 4비트와 상기 레지스터(8)로부터 입력되는 신호(Rem_register)의 상위 4비트를 비교하는데, 이때 도2에 도시되어 있는 바와 같은 로버트슨 다이어그램(Rorbertson diagram)을 테이블화하여 이용하게 된다. 즉, PLA(3)는 도2의 로버트슨 다이어그램을 논리 테이블화한 것이다. PLA(3)는 제수신호(Divisor)의 상위 4비트와 상기 레지스터(8)로부터 입력되는 신호(Rem_register)의 상위 4비트를 비교하여 몫을 결정한 후에, 제1입력신호 발생부(5)에서 제수신호(Divisor)에 -2, -1, 0, 1, 2배를 한 값을 생성되도록 한다.The PLA 3 compares the upper four bits of the divisor signal with the upper four bits of the signal Rem_register inputted from the register 8, where a Robertson diagram as shown in FIG. Table is used. That is, PLA 3 is a logical table of the Robertson diagram of FIG. The PLA 3 compares the upper four bits of the divisor signal Divisor with the upper four bits of the signal Rem_register input from the register 8 to determine the quotient, and then divides the divisor in the first input signal generator 5. Generate a value that is multiplied by -2, -1, 0, 1, or 2 to the divisor.

이와 같은 과정이 34회 반복되면, 매회때마다 PLA(3)로부터 출력되는 2비트의 신호(pos_Q, neg_Q)에 의해서 포지티브 레지스터(9)와 네거티브 레지스터(11)에는 각각 68비트의 포지티브값(Pos_req)과 네거티브값(Neg_req)이 저장된다.When the above process is repeated 34 times, the positive register 9 and the negative register 11 are 68-bit positive values (Pos_req) by the 2-bit signals pos_Q and neg_Q output from the PLA 3 each time. ) And the negative value (Neg_req) are stored.

스티키 비트 발생부(sticky bit generator) (13)에서는 레지스터(8)에 저장되어 있는 값(Rem_register)과, 포지티브 레지스터(9)의 최하위 비트값과 네거티브 레지스터(11)의 최하위 비트값과, 부호비트를 입력으로 받아, 4비트의 스티키 신호를 만든 뒤에 이를 포지티브 레지스터(9)의 최하위 2비트와 네거티브 레지스터(11)의 최하위 2비트로 교체하여 제3버스(RBUS)로 이를 출력한다.In the sticky bit generator 13, the value (Rem_register) stored in the register 8, the least significant bit value of the positive register 9, the least significant bit value of the negative register 11, and the sign bit After receiving the input signal, the 4-bit sticky signal is made and then replaced by the least significant 2 bits of the positive register 9 and the least significant 2 bits of the negative register 11 and outputs it to the third bus (RBUS).

2. 제곱근 연산2. Square Root Operations

제곱근을 구하는데 사용하는 알고리즘은 다음과 같다. 먼저, 두 이진수 A, Q의 관계가 아래와 같다고 할때 다음과 같은 방법으로 A에서 Q를 구하면된다.The algorithm used to find the square root is First, suppose the relationship between two binary numbers A and Q is as follows.

Q = √A = 0. q1 q2 q3 q4 q5 ........................ qnQ = √A = 0. q1 q2 q3 q4 q5 ........................ qn

A = Q2= 0. a1 a2 a3 a4 a5 ........................ a2n-1 a2nA = Q 2 = 0. a1 a2 a3 a4 a5 ........................ a2n-1 a2n

먼저, 두자리씩 짝지은 A값 a1 a2 로부터 01을 빼는 것으로 시작한다. 그래서 결과값이 양이 나오면, 몫 q1을 1로 하고, q1 01을 a1 a2 a3 a4에서 뺀다. 그러나, 결과값이 음이 나오면 몫 q1을 0으로 하고, q1 11을 더한다. 따라서 66비트의 몫을 구하기 위해서는 66 사이클을 필요로 하게 된다.First, we start by subtracting 01 from the two-digit paired A value a1 a2. So when the result is positive, we take quotient q1 as 1 and subtract q1 01 from a1 a2 a3 a4. However, if the result is negative, the quotient q1 is zero, and q1 11 is added. Therefore, 66 cycles are required to obtain the 66-bit quotient.

먼저, 제곱근 시작신호(start_sqrt)가 제곱근 컨트롤러(2)에서 생성되면, 제곱근 입력 생성부(15)에 제곱근 입력신호(sqrt_input)로서 제1버스(ABUS)로부터 68비트의 신호(0, A_bus[63:0], 000)가 입력되어 포지티브 레지스터(9)로 전송된다. 이 경우에, 만약 제곱근 입력 생성부(15)는 지수 입력신호(Exp_LSB)를 판별하여, 지수의 값이 홀수일 경우에는 상기 제곱근 입력신호(sqrt_input)가 1비트 시프트되어 포지티브 레지스터(9)에 입력되도록 하고, 지수값이 짝수일 경우에는 제곱근 입력신호(sqrt_input)가 시프트됨이 없이 포지티브 레지스터(9)에 입력되도록 한다.First, when the square root start signal start_sqrt is generated by the square root controller 2, a 68-bit signal (0, A_bus [63) from the first bus ABUS as the square root input signal sqrt_input is input to the square root input generator 15. : 0], 000) is input to the positive register 9. In this case, if the square root input generator 15 determines the exponential input signal Exp_LSB, and if the value of the exponent is odd, the square root input signal sqrt_input is shifted by one bit and input to the positive register 9. When the exponent value is even, the square root input signal sqrt_input is input to the positive register 9 without being shifted.

다음에, 제곱근 컨트롤러(2)에서 제곱근 명령신호(Sqrt_op)가 하이상태로 펄싱(pulsing)되면 포지티브 레지스터(9)는 저장된 값(Pos_reg)을 2비트씩 시프트해가면서 레지스터(8)로 최상위 2비트를 출력되도록 함으로써, 레지스터(8)의 최하위 2비트와 교체되도록 한다. 이와 같이 레지스터(8)에 저장된 값은 제2입력신호 발생부(14)로 출력되어 저장된다. 따라서, 제2입력신호 발생부(14)의 최하위 2비트에는 포지티브 레지스터(9)의 최상위 2비트값(Pose_reg[67:66])이 저장되고, 제2입력신호 발생부(14)의 상위 65비트에는 레지스터(8)의 상위 65비트 값(Rem_register[67:2])이 저장된다. 그리고, 레지스터(8)의 최하위 2비트는 0으로 대체된다. 상기 제2입력신호 발생부(14)에 저장되어 있는 68비트 신호(Adder_Bbus)는 가산기(6)로 입력되고, 가산기(6)의 다른 한쪽입력으로는 제1입력신호 발생부(5)로부터 68비트의 신호(Adder_Abus)가 입력되는데, 이때 제1입력신호 발생부(5)에서는 제곱근 컨트롤러(2)에서 제곱근 시작신호(start_sqrt)가 출력될 때, 저장된 값의 2의 보수를 출력하게 된다. 다음에, 입력신호 발생부(5)에서는 부호신호(Qi)를 판단하여, 부호신호(Qi)가 양이면 입력 레지스터(4)의 값(Sqrt_Q_Reg)과 최하위 2비트로서 01을 결합한 값을 2의 보수를 취하여 출력하고, 부호신호(Qi)가 음이면 입력 레지스터(4)의 값(Sqrt_Q_Reg)과 최하위 2비트로서 11을 결합한 값을 출력하게 된다. 그리고, 상기 입력 레지스터(4)는 매클럭의 연산이 끝날 때마다 65비트의 자신의 값과, 부호신호(Qi)를 결합한 값으로 업데이트된다. 이와 같은 과정이 64회 지나면 제곱근값이 입력 레지스터(4)에 발생된다.Next, when the square root command signal Sqrt_op is pulsed high in the square root controller 2, the positive register 9 shifts the stored value Pos_reg by two bits, and the most significant two bits into the register 8 are applied. Is outputted, so that the least significant two bits of the register 8 are replaced. The value stored in the register 8 is output to the second input signal generator 14 and stored. Therefore, the most significant two bit value (Pose_reg [67:66]) of the positive register 9 is stored in the least significant two bits of the second input signal generator 14, and the upper 65 of the second input signal generator 14 is stored. The upper 65 bit value (Rem_register [67: 2]) of the register 8 is stored in the bit. The least significant two bits of the register 8 are replaced with zeros. The 68-bit signal Adder_Bbus stored in the second input signal generator 14 is input to the adder 6, and the other input of the adder 6 is 68 from the first input signal generator 5. The bit signal Adder_Abus is input. At this time, the first input signal generator 5 outputs two's complement of the stored value when the square root start signal start_sqrt is output from the square root controller 2. Next, the input signal generator 5 determines the sign signal Qi. If the sign signal Qi is positive, the value of combining the value Sqrt_Q_Reg of the input register 4 with 01 as the least significant two bits is set to two. If the sign signal Qi is negative, the output is taken with a complement, and the value Sqrt_Q_Reg of the input register 4 is combined with 11 as the least significant two bits. The input register 4 is updated with the combined value of the 65 bits and the sign signal Qi each time the operation of the clock is completed. After this process 64 times, the square root value is generated in the input register (4).

이상에서 설명한 본 발명은 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러가지 치환, 변형 및 변경이 가능하므로, 전술한 실시예 및 도면에 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes within the scope without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains, and thus is limited to the above-described embodiments and drawings. It is not.

본 발명은 가산기와 데이터 패스를 공용화하여 제곱근과 나눗셈을 별도로 연산할 수 있도록 함으로써 회로를 경제적으로 구성할 수가 있으며, 칩사이즈를 줄일 수가 있고, 처리속도를 증가시킬 수가 있는 잇점을 갖는다.The present invention has the advantage that the circuit can be economically constructed, the chip size can be reduced, and the processing speed can be increased by allowing the adder and the data path to be shared so that square root and division can be separately calculated.

Claims (5)

나눗셈 연산을 위한 로버트슨 알고리즘이 테이블화 되어 있는 PLA와, 가산기의 출력신호를 2비트 시프트하여 출력하는 시프터와, 상기 시프터의 출력신호를 저장하여 상기 PLA로 입력되도록 하는 레지스터와, 상기 PLA로부터 매회 2비트씩 출력되는 몫이 저장되는 포지티브 레지스터 및 네거티브 레지스터와, 나눗셈 연산을 제어하기 위한 제어신호를 출력하는 나눗셈 컨트롤러로 구성되어 나눗셈 연산을 수행하고, 제곱근 명령신호에 따라 2비트씩 시프트되는 신호를 출력하는 포지티브 레지스터와, 상기 포지티브 레지스터로부터 입력되는 신호에 따라 신호를 생성하여 가산기로 출력하는 제2입력신호 발생부와, 부호신호를 판단하여 양이면 피제수의 2의 보수를 가산기로 출력하고, 음이면 그대로 피제수를 가산기로 출력하는 제1입력신호 발생부와, 가산기에서 발생되는 부호신호에 의해 매클럭마다 업데이트되는 입력 레지스터와, 제곱근 연산을 제어하기 위한 제어신호를 출력하는 제곱근 컨트롤러로 구성되어 제곱근 연산을 수행하는 것을 특징으로 하는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치.PLA, where Robertson algorithm for division operation is tabled, a shifter for shifting the output signal of the adder by 2 bits, and a register for storing the shifter output signal and being input to the PLA, and 2 each time from the PLA. It consists of a positive register and a negative register which store the quotient output bit by bit, and a division controller which outputs a control signal for controlling the division operation to perform a division operation and output a signal shifted by 2 bits according to the square root command signal. A positive register, a second input signal generator for generating a signal according to a signal input from the positive register, and outputting the signal to an adder, and if the sign signal is positive, a two's complement of the dividend is output to the adder. A first input signal generator for outputting the dividend as it is; Division and square root in one data path, comprising a square root controller for outputting a control signal for controlling the square root operation and an input register updated every clock by a sign signal generated from the signal. Floating computing device that can handle. 제1항에 있어서, 상기 연산장치는 2비트씩 포지티브 몫과 네거티브 몫을 구한 후에, 마지막 사이클에서 포지티브값에서 네거티브값을 뺀 값을 몫으로 정함으로써 나눗셈 연산을 하는 것을 특징으로 하는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치.The data path of claim 1, wherein the operation unit performs a division operation by obtaining a positive quotient and a negative quotient by 2 bits, and then, by setting the quotient of the negative value minus the negative value in the last cycle as the quotient. Floating operation unit that can handle division and square roots. 제1항에 있어서, 상기 제1입력신호 발생부의 출력신호는 PLA로부터 출력되는 3비트의 신호에 의해서 결정되는 것을 특징으로 하는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치.The floating computing device of claim 1, wherein the output signal of the first input signal generator is determined by a 3-bit signal output from the PLA. 제1항에 있어서, 상기 PLA는 제수신호의 상위 4비트와 레지스터로부터 입력되는 신호의 상위 4비트를 비교하여 몫을 결정함으로써 제1 입력신호 발생부에서 제수신호에 -2, -1, 0, 1, 2배를 한 값이 생성되도록 하는 것을 특징으로 하는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치.The first input signal generator generates a negative signal of -2, -1, 0, by determining the quotient by comparing the upper 4 bits of the divisor signal with the upper 4 bits of the signal input from the register. A floating computing device capable of processing division and square roots in one data path, characterized in that the value is multiplied by one or two times. 청구항1에 있어서, 상기 제곱근 입력 생성부는 지수 입력신호를 판별하여, 지수의 값이 홀수일 경우에는 상기 제곱근 입력신호가 1비트 시프트되어 포지티브 레지스터에 입력되도록 하고, 지수값이 짝수일 경우에는 제곱근 입력신호가 시프트됨이 없이 포지티브 레지스터에 입력되도록 하는 것을 특징으로 하는 하나의 데이터 패스로 나눗셈과 제곱근을 처리할 수 있는 플로우팅 연산장치.The method of claim 1, wherein the square root input generation unit determines an exponent input signal, and if the value of the exponent is odd, the square root input signal is shifted by one bit to be input to the positive register. A floating computing device capable of processing division and square roots in one data path, characterized in that the signal is input to a positive register without being shifted.
KR1019960076251A 1996-12-30 1996-12-30 Floating arithmetic apparatus of processing division and square root with a data path KR100223738B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960076251A KR100223738B1 (en) 1996-12-30 1996-12-30 Floating arithmetic apparatus of processing division and square root with a data path

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960076251A KR100223738B1 (en) 1996-12-30 1996-12-30 Floating arithmetic apparatus of processing division and square root with a data path

Publications (2)

Publication Number Publication Date
KR19980056981A KR19980056981A (en) 1998-09-25
KR100223738B1 true KR100223738B1 (en) 1999-10-15

Family

ID=19492124

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960076251A KR100223738B1 (en) 1996-12-30 1996-12-30 Floating arithmetic apparatus of processing division and square root with a data path

Country Status (1)

Country Link
KR (1) KR100223738B1 (en)

Also Published As

Publication number Publication date
KR19980056981A (en) 1998-09-25

Similar Documents

Publication Publication Date Title
US6230179B1 (en) Finite field multiplier with intrinsic modular reduction
EP0411491B1 (en) Method and apparatus for performing division using a rectangular aspect ratio multiplier
CN107769791B (en) Apparatus and method for fixed-to-floating point conversion and negative power detector of 2
EP0149248A2 (en) Method and apparatus for division using interpolation approximation
CA2225899A1 (en) A method and apparatus for finite field multiplication
EP0441121A2 (en) Arithmetic operation apparatus for elementary function
US5184318A (en) Rectangular array signed digit multiplier
KR19990013698A (en) Calculation method and device
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
EP0464493A2 (en) High-radix divider
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
KR100203468B1 (en) Arithmetic apparatus for floating point numbers
US6167420A (en) Multiplication method and multiplication circuit
EP0416308A2 (en) Rectangular array signed digit multiplier
JPH05250146A (en) Arithmetic operation circuit executing integer involution processing
US11119731B2 (en) Apparatus and method for rounding
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
US4935890A (en) Format converting circuit for numeric data
US5365471A (en) Divider for performing signed division using a redundant signed digit
US5825681A (en) Divider/multiplier circuit having high precision mode
KR100223738B1 (en) Floating arithmetic apparatus of processing division and square root with a data path
GB2549153A (en) Apparatus and method for supporting a conversion instruction
US6014683A (en) Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point
JPH0346024A (en) Floating point computing element
US4047011A (en) Modular apparatus for binary quotient, binary product, binary sum and binary difference generation

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee