KR100332112B1 - Method of processing an exponent - Google Patents
Method of processing an exponent Download PDFInfo
- Publication number
- KR100332112B1 KR100332112B1 KR1019990065149A KR19990065149A KR100332112B1 KR 100332112 B1 KR100332112 B1 KR 100332112B1 KR 1019990065149 A KR1019990065149 A KR 1019990065149A KR 19990065149 A KR19990065149 A KR 19990065149A KR 100332112 B1 KR100332112 B1 KR 100332112B1
- Authority
- KR
- South Korea
- Prior art keywords
- exponent
- bias
- division
- multiplication
- processing method
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 13
- 238000012545 processing Methods 0.000 title abstract description 9
- 238000003672 processing method Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 abstract description 3
- 238000012937 correction Methods 0.000 description 9
- 238000010606 normalization Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 지수 처리 방법에 관한 것으로, 지수에 고정된 바이어스를 가산하여 바이어스된 지수를 생성하는 단계와, 연산 코드에 따라 연산의 종류를 파악하는 단계와, 상기 연산이 덧셈 또는 뺄셈일 경우 지수의 자리수를 맞추는 덧셈 또는 뺄셈을 실시하는 단계와, 상기 연산이 곱셈일 경우 상기 바이어스된 지수끼리의 덧셈을 실시한 후 바이어스를 복원하는 단계와, 상기 연산이 나눗셈일 경우 상기 바이어스된 지수끼리의 뺄셈을 실시하는 단계와, 상기 각 연산을 실시한 후 오버플로우 또는 언더플로우를 체크하는 단계로 이루어져, 처리 속도를 증가시킬 수 있고 집적도를 향상시킬 수 있는 지수 처리 방법에 관해 제시된다.The present invention relates to an exponential processing method, comprising: generating a biased exponent by adding a bias fixed to an exponent; identifying a type of operation according to an operation code; and when the operation is addition or subtraction, Performing addition or subtraction to match the digit, performing the addition of the biased exponents if the operation is multiplication, restoring the bias, and subtracting the biased exponents if the operation is division. And an overflow or underflow check after performing each of the above operations, and an index processing method capable of increasing a processing speed and improving an integration degree is provided.
Description
본 발명은 마이크로프로세서(microprocessor)의 수치 연산에 관련된 기능을 효과적으로 처리하기 위한 지수 처리 방법에 관한 것으로, 특히 부동 소수점 연산, 그 중에서도 곱셈, 나눗셈의 동작 처리에 있어서 속도 및 성능을 향상시키기 위한 지수 처리 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an exponential processing method for effectively processing functions related to numerical operations of a microprocessor, and more particularly to exponential processing for improving speed and performance in floating point operations, inter alia, multiplication and division operations. It is about a method.
기존의 지수 연산은 MSB(Most Significant Bit) 1 비트를 사인비트(Sign bit)로 처리하거나 2n-1(n은 지수의 범위)의 수치를 바이어스(BIAS) 처리해 줌으로써음수값에 대한 연산을 해결한다. 이러한 방식은 지수 연산을 수행함에 있어서 사인 비트의 상호 비교 기능이 요구되거나, 나눗셈을 실시한 후 발생하는 바이어스 상쇄로 인한 소멸, 또는 곱셈을 실시한 후 발생하는 바이어스의 더블링(doubling)으로 인한 증가분에 대해서 어떤 조치가 추가되어야 한다. 즉, 소멸된 바이어스를 보상하거나 더블링되는 바이어스를 제거하기 위한 로직이 반드시 포함되어야 한다.Existing exponential operation solves operation on negative value by processing 1 bit of Most Significant Bit (MSB) as Sign bit or Biasing value of 2 n-1 (n is range of exponent). do. This approach requires the ability to compare the sine bits in exponential operations, to the loss due to bias cancellation after division, or to an increase due to doubling of bias after multiplication. Action should be added. That is, logic to compensate for the dissipated bias or to eliminate the doubled bias must be included.
이러한 기존의 방법을 사용해서 바이어스를 보정할 경우에는 가산기(Adder)를 한번 더 통과해야 하므로 로직이 복잡해지게 되고, 사이즈(Size)나 속도면에서도 비효율적인 단점이 있다. 더구나 설계 과정에서 오류를 발견하기 어려워지고, 오류에 대한 검증(Modify) 또한 수월하지 않아 결과적으로 총체적인 개발 비용이 증가하게 된다.When the bias is corrected using this conventional method, the logic must be complicated because it needs to pass through the adder once more, and there are disadvantages in terms of size and speed. Moreover, it is difficult to find errors in the design process, and it is not easy to verify the errors, resulting in an overall development cost increase.
바이어스(BIAS)를 이용한 기존의 지수 연산 방법에 대해 상세히 설명하면 다음과 같다.The conventional exponential calculation method using the bias (BIAS) will be described in detail as follows.
우선 정의부터 내려본다면 지수의 허용 범위는 (-2n-1) < e < (2n-1)이 되는데, 이때 n은 지수의 길이이다. 위의 공식이 성립하는 이유는 n 비트로 표현할 수 있는 경우의 수가 2n가지이며, 이 2n가지 경우는 지수가 음수인 경우와 양수인 경우를 모두 포함하기 때문이다. 즉, 2n가지 경우중에서 절반은 음수를 표현한 것이고, 나머지 절반은 양수에 해당된다. 만일 MSB를 사인 비트(es)라고 가정하면,(N-1) 만큼의 범위가 두개(MSB가 0일 때와 1일 때) 존재하게 되므로 표현 가능한 수는 (-2n-1)< e <(2n-1)이 되는 것이다. 이러한 원리로 곱셈 및 나눗셈 연산에서 지수의 가감 연산을 실시한다면 한가지 문제점이 발생하게 된다. 그것은 연산을 실시하기 위한 두개의 연산자(Operand)에서 지수의 부호가 어떤 상태인가에 따라 연산하는 방법이 달라지게 된다는 것이다. 가령 연산(Operator)이 나눗셈(Divide)이라고 한다면 가수 (Fraction) 부분은 원래 의도했던대로 실질적인 나눗셈을 실시하게 되지만, 지수 (Exponent) 부분은 서로 덧셈을 해주어야 할지 뺄셈을 해주어야 할지 즉각적으로 알수가 없다. 두 지수의 부호가 서로 같다면 원래 의도했던대로 뺄셈을 해주면 되겠지만, 두 지수의 부호가 반대일 경우는 서로 더해 주어야만 하기 때문이다. 물론 이때 연산 결과의 부호도 상황에 따라 달라지게 마련이다. 이러한 조건들을 모두 감지할 수 있는 로직(Logic)을 실제로 구현해 낸다고 할지라도, 오버플로우/언더플로우 (Overflow/Underflow)에 대한 제어가 너무 복잡해지게 되기 때문에 좀더 수월한 연산 처리를 위해 바이어스라는 개념이 발생하게 된 것이다.First, from the definition, the allowable range of the exponent is (-2 n-1 ) <e <(2 n-1 ), where n is the length of the exponent. The above formula holds because the number of cases that can be expressed by n bits is 2 n , and these 2 n cases include both negative and positive cases. That is, half of 2 n cases represent negative numbers, and the other half correspond to positive numbers. If we assume that the MSB is the sine bit (e s ), there are two ranges (N-1) (when the MSB is 0 and 1), so the number that can be represented is (-2 n-1 ) <e <(2 n-1 ). On this principle, one problem arises if the exponent is added or subtracted from the multiplication and division operations. That is, the two operators (Operand) to perform the operation depends on the state of the sign of the exponent. For example, if the operator is Divide, the Fraction part performs the actual division as originally intended, but the Exponent part does not know immediately whether to add or subtract each other. If the signs of the two exponents are the same, you can subtract as originally intended, but if the signs of the two exponents are opposite, you have to add them together. Of course, the sign of the operation result will also vary depending on the situation. Even if you actually implement logic that can detect all of these conditions, the control of overflow / underflow becomes so complicated that the concept of bias arises for easier computation. It is.
이러한 기존의 방법중에서 가장 대표적인 것이 '2n-1바이어스 방식'이다. 지수의 표현가능 구간을 (-2n-1)< e <(2n-1)에 두는 것이 아니라, 좌우변에 2n-1을 더해 줌으로써 0 < e < 2n이라는 새로운 구간을 사용하는 것이다. 따라서 음의 지수 구간은 0 < e < 2n-1이 되고, 2n-1≤e < 2n이 0을 포함한 양의 지수 구간이 된다. 예를들어 n=8이라고 한다면, 28-1즉, 128이 바이어스가 되어 1≤p < 255 라는 새로운 구간이 만들어지게 된다. p는 바이어스가 안된 e와 구분하기 위해서 바이어스된 지수 (BIASed exponent)의 개념으로 쓴 것이다. 이때 1∼128의 BIASed를 -127 < e < 127 에 대응시킬 수 있으므로, 이들의 상호 연관 관계를 유지하면서 연산하도록 한다면 지수에 있어서의 골치아픈 음수는 생각하지 않아도 될 것이다. 이로 인해서 두 지수의 실질적인 부호가 어떠한지에 상관없이 나눗셈 연산에서는 무조건 두 지수의 차를 구하도록 구현해 낼 수 있는 것이다.The most representative of these conventional methods is the 2 n-1 bias method. Instead of putting the representable interval of the exponent at (-2 n-1 ) <e <(2 n-1 ), we use the new interval 0 <e <2 n by adding 2 n-1 to the left and right sides. . Therefore, the negative exponential interval is 0 <e <2 n-1 , and 2 n-1 ≤ e <2 n is a positive exponential interval including 0. For example, if n = 8, 2 8-1 , or 128, is biased to create a new interval of 1≤p <255. p is written in the concept of BIASed exponent to distinguish it from unbiased e. At this time, BIASed of 1 to 128 can be mapped to -127 <e <127. Therefore, if the calculation is performed while maintaining their correlation, the troublesome negative numbers in the exponent will not be considered. Thus, regardless of the actual sign of the two exponents, the division operation can be implemented to find the difference between the two exponents.
바이어스를 이용한다면 이러한 편리함을 제공해 주는 대신에 바이어스 보정을 위한 로직(Logic)이 추가로 요구된다. 왜냐하면 바이어스된 지수(BIASed exponent)끼리 빼거나 더해주면 바이어스가 서로 상쇄되거나 더블링되는 현상이 발생하게 되기 때문이다. 예를 들어 140 - 120 = 20의 연산에서 바이어스를 128로 가정하면, 바이어스된 값(Biased value)이므로 실제값으로는 12-(-8)로 보아야 옳다. 바이어스된 값끼리의 연산 결과는 반드시 바이어스된 값이 되어야 한다. 따라서 20으로 나온 결과 값은 실질적으로는 -108을 가리키고 있는 것이다. 결과값에 대한 보정을 위해서는 연산중에 상쇄됐던 바이어스를 보상해 주어야 한다.Using bias does not provide this convenience, but additional logic for bias correction is required. This is because subtracting or adding biased exponents causes the biases to cancel or double. For example, assuming a bias of 128 in an operation of 140-120 = 20, since the biased value is a biased value, the actual value should be 12-(-8). Computation results between biased values must be biased values. Therefore, the resulting value of 20 actually points to -108. Correction of the results requires compensation of the bias that has been canceled during the operation.
덧셈에서의 보정은 나눗셈과 반대로 바이어스 값만큼 빼 주어야 하는데, 이렇게 바이어스 보정에 대한 알고리즘이 추가로 요구됨에도 불구하고 지수에 대한 사인 비트를 따로 두는 것보다 로직이 더 단순해진다. 그것은 사인 비트를 비교 분석하는 로직이 공간이나 속도면에서 더 비효율적이기 때문이다.The correction in addition must be subtracted by the bias value as opposed to division, which makes the logic simpler than leaving the sine bits for the exponent separately, although additional algorithms for bias correction are required. This is because the logic for comparing and analyzing sine bits is more inefficient in space or speed.
오버플로우/언더플로우를 체킹하는 방법도 바이어스된 로직(BIASed logic)이 더 간단하다. 연산 결과값이 주어진 전체 구간보다 작을때 언더플로우, 더 클때 오버플로우로 처리하면 되기 때문이다. 이렇듯 '2n-1BIAS 방식' 연산은 상당히 진보된 알고리즘으로써 많은 장점이 있음에도 불구하고 몇가지 중요한 문제점을 안고 있다. 그것은 연산자(operand)의 크기에 따라 다른 BIAS가 요구된다는 것이다. 이것은 개발적인 측면에서 매우 중요한 의미를 지니게 된다. FPU(Floating Point Unit)의 연산자(operand)의 크기가 현재 64비트라고 가정하자. 이때 필요에 의해 스펙이 바뀌게 될 경우 예를들어 연산자 크기를 80비트로 수정하게 되고, 그에 따라 지수의 범위에도 변화가 예상된다면 당연히 BIAS도 변경해 주어야 할 것이다. 말하자면 설계 변경에 매우 민감하게 반응한다는 것이다. 이로 인해 개발 기간과 그에 따른 비용이 증가할 것이며, 신속한 기술 개발로 국제 시장에서 경쟁력을 키워야 하는 입장에서는 즉각적인 대응에 가장 큰 장애가 아닐 수 없다. 또 한가지 문제가 있다면, 물론 지수에 사인 비트를 두는 것보다는 더 진보된 형태이긴 하지만, BIAS 보정을 위한 로직이 있음으로 인해 궁극적으로 그 만큼의 성능 저하를 피할수는 없다는 점이다.Checking overflow / underflow is also simpler with BIASed logic. This is because when the result value of the operation is smaller than the total interval given, it is treated as underflow and when it is larger, it is overflowed. As described above, the '2 n-1 BIAS' operation is a fairly advanced algorithm and has some important problems despite its many advantages. That means different BIAS are required depending on the size of the operator. This is very important in terms of development. Assume that the size of the operator of the floating point unit (FPU) is currently 64 bits. In this case, if the specification is changed as necessary, for example, the size of the operator is changed to 80 bits, and accordingly, if the range of the exponent is expected, the BIAS must also be changed. In other words, they are very sensitive to design changes. This will increase the development period and the resulting cost, which is the biggest obstacle to immediate response from the point of rapid technological development to increase competitiveness in the international market. Another problem is that, of course, it is more advanced than putting a sine bit in the exponent, but because of the logic for BIAS correction, you can't ultimately avoid that performance penalty.
도 1은 종래의 지수 처리 방법을 설명하기 위해 도시한 흐름도로서, 두 연산자(Operand)의 지수 사인부(Exponent sign part)를 서로 빼 줌으로써, 연산 결과에 대한 부호를 판단하도록 하는 로직이 포함되어있다.FIG. 1 is a flowchart illustrating a conventional exponential processing method, and includes logic for determining the sign of an operation result by subtracting an exponent sign part of two operators. .
두 지수(ea, eb)의 사인 비트(Sea, Seb)가 입력되면 연산 코드에 의해 곱셈 연산인지 나눗셈 연산인지를 판단한다(101). 곱셈 연산일 경우 두 지수(ea, eb)의 사인 비트(Sea, Seb)를 비교하여(102) 두 지수의 사인 비트가 같으면 양의 부호를 가진채 지수의 실질적인 덧셈(True Addition)을 수행한 후(103) 후정규화 로직 (postnormalization logic)을 실시한다(104). 그리고 캐리가 1인지를 판단하여 (105) 1일 경우 후정규화 로직을 수행한 후(113) 종료하고, 1이 아닐 경우 후정규화 로직을 수행하지 않고 종료한다. 두 지수의 사인 비트를 비교한 결과 두 지수의 사인 비트가 같지 않고 첫번째 지수가 두번째 지수보다 크면(106) 지수의 실질적인 뺄셈(True Subtraction)을 실시하고(112), 그렇지 않을 경우 두번째 지수의 사인비트를 첫번째 지수의 사인비트로 대체한 후(107) 지수의 실질적인 뺄셈을 실시한다 (112). 지수의 실질적인 뺄셈을 실시한 후 캐리가 1인지를 비교하고(105) 그에 따라 후정규화 로직을 수행한 후(113) 종료한다.When the sine bits Sea and Seb of the two exponents e a and e b are input, it is determined by the operation code whether it is a multiplication operation or a division operation (101). In the case of a multiplication operation, the sine bits (Sea, Seb) of the two exponents (e a , e b ) are compared (102), and if the sine bits of the two exponents are the same, a true addition of the exponents with a positive sign is performed. After that (103), postnormalization logic is performed (104). If it is determined that the carry is 1 (105), it is terminated after performing the post normalization logic (113) if it is 1, and if it is not 1, it ends without performing the post normalization logic. Comparing the sine bits of the two exponents shows that if the sine bits of the two exponents are not equal and the first exponent is greater than the second exponent (106), then the actual subtraction of the exponent is performed (112), otherwise the sine bits of the second exponent Is replaced with the sine bit of the first exponent (107) followed by a substantial subtraction of the exponent (112). After carrying out the substantial subtraction of the exponent, the carry is compared to see if it is 1 (105) and accordingly performs the postnormalization logic (113) and ends.
나눗셈일 경우 전정규화 로직(prenormalization logic)을 수행한 후(108) 두 지수의 사인 비트가 같은지를 비교한다(109). 두 사인 비트가 같지 않을 경우 단계 (103)으로 천이하여 그 이후의 단계를 수행한다. 두 사인 비트가 같을 경우 첫번째 지수가 두번째 지수보다 크면(110) 지수의 실질적인 뺄셈(True Subtraction)을 수행하고(112), 그렇지 않을 경우 두번째 지수의 사인비트의 부호를 전환시켜 첫번째지수의 사인비트로 대체한 후(111) 지수의 실질적인 뺄셈을 수행한다(112). 지수의 실질적인 뺄셈을 실시한 후 캐리가 1인지를 비교하고(105) 그에 따라 후정규화 로직을 수행한 후(113) 종료한다.In the case of division, after performing prenormalization logic (108), the sign bits of the two exponents are compared (109). If the two sign bits are not equal, the process transitions to step 103 and the subsequent steps are performed. If the two sine bits are the same, if the first exponent is greater than the second exponent (110), perform a true subtraction of the exponent (112); otherwise, switch the sign of the sine bit of the second exponent to replace the sine bit of the first exponent. And then perform a substantial subtraction of the exponent (111). After carrying out the substantial subtraction of the exponent, the carry is compared to see if it is 1 (105) and accordingly performs the postnormalization logic (113) and ends.
상기와 같은 지수 처리 방법은 여러번의 조건 분기를 수행하여야 하는데, 조건 분기는 수행속도를 저하시키는 매우 비효율적인 로직이다. 또한, 흐름도에는 표시하지 않았지만 각각의 분기에는 2n-1에 해당하는 BIAS 보정을 위한 로직을 포함하고 있는데, 그로 인해서 가산기(Adder)를 한번 더 수행해야 하는 문제도 내포하고 있다.The exponential processing method as described above must perform several conditional branching, which is a very inefficient logic that slows down the execution speed. In addition, although not shown in the flowchart, each branch includes logic for correcting BIAS corresponding to 2 n-1 , which also includes a problem of having to perform an adder once more.
따라서, 본 발명은 상술한 종래의 지수 처리 방법의 여러가지 문제점을 해결하여 속도를 향상시킬 수 있는 지수 처리 방법을 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide an index processing method capable of improving the speed by solving various problems of the conventional index processing method described above.
상술한 목적을 달성하기 위한 본 발명은 지수에 고정된 바이어스를 가산하여 바이어스된 지수를 생성하는 단계와, 연산 코드에 따라 연산의 종류를 파악하는 단계와, 상기 연산이 덧셈 또는 뺄셈일 경우 지수의 자리수를 맞추는 덧셈 또는 뺄셈을 실시하는 단계와, 상기 연산이 곱셈일 경우 상기 바이어스된 지수의 덧셈을 실시하고 바이어스를 복원하는 단계와, 상기 연산이 나눗셈일 경우 상기 바이어스된 지수의 뺄셈을 실시하는 단계와, 상기 각 연산을 실시한 후 오버플로우 또는 언더플로우를 체크하는 단계를 포함하여 이루어진 것을 특징으로 한다.The present invention for achieving the above object is to add a bias fixed to the exponent to generate a biased exponent, to determine the type of operation according to the operation code, and if the operation is addition or subtraction of the exponent Performing addition or subtraction to match the digits, performing addition of the biased exponent and restoring the bias if the operation is multiplication, and subtracting the biased exponent if the operation is division; And checking for overflow or underflow after performing each operation.
도 1은 종래의 지수 처리 방법을 설명하기 위해 도시한 흐름도.1 is a flowchart illustrating a conventional index processing method.
도 2는 본 발명에 따른 지수 처리 방법을 설명하기 위해 도시한 흐름도.2 is a flowchart illustrating an index processing method according to the present invention.
본 발명의 지수 처리 방법의 원리를 설명하면 다음과 같다. 상기한 바와 같이 가수(Fraction) 부분은 곱셈과 나눗셈에서 정상적인 곱셈과 나눗셈 동작을 하게 되지만, 지수(Exponent) 부분은 각각 덧셈과 뺄셈을 수행하게 되는데, 이때 발생되는 바이어스(BIAS) 보정 문제를 하드웨어(Hardware)적으로 구현함으로써 불필요한 로직(Logic)을 줄이고, 그만큼 전체적인 연산에 있어서의 속도의 향상을 가져올 수 있도록 한다.The principle of the exponential treatment method of the present invention is as follows. As described above, the fraction part performs normal multiplication and division operations in the multiplication and division, but the exponent part performs addition and subtraction, respectively. Hardware implementation reduces the unnecessary logic and increases the speed of the overall operation.
본 발명에서도 BIAS를 사용하지만, 지수의 크기에 무관한 고정된 바이어스 (Fixed BIAS) -1을 사용하여 연산 결과에 대한 BIAS 보정 작업을 수행하지 않고도 보다 빠르고 정확하게 원하는 결과값을 얻어낼 수 있다. 본 발명의 기초가 된 수학적 분석과 몇가지 예제를 든다면 다음과 같다.Although the present invention uses BIAS, it is possible to obtain a desired result more quickly and accurately without performing a BIAS correction operation on the calculation result by using fixed BIAS-1 regardless of the index size. The mathematical analysis underlying the present invention and some examples are as follows.
곱셈multiplication
ea+ eb= (ea-1) + (eb-1)e a + e b = (e a -1) + (e b -1)
= pa+ pb+ 1 ------ ①= p a + p b + 1 ------ ①
위에서 ①은 지수 ea및 eb에 고정된 바이어스(Fixed BIAS) -1을 각각 인가했하여 바이어스된 지수 pa및 pb를 생성하였을 때, 곱셈 연산 후에 발생되는 결과값에 대해 보정해 주어야 할 '1'이 요구되는 원리를 표현한 것이다. 이것도 엄밀히 말한다면 보정이라고 할 수 있으나, 가산기(Adder)의 캐리(Carry) 단자에 1을 인가함으로써 보정에 필요한 로직을 따로 구성할 필요가 없게 된 것이다. 연산이 곱셈이라는 사실이 감지될 때, 그 신호를 캐리(Carry)의 입력 단자로 들어가도록 하면 저절로 BIAS 보정이 이루어지는 원리이다.The above ① should be corrected for the result value generated after the multiplication operation when the fixed BIAS-1 is applied to the exponents e a and e b to generate the biased exponents p a and p b , respectively. '1' represents the required principle. Strictly speaking, this can be called correction, but by applying 1 to the carry terminal of the adder, there is no need to configure the logic necessary for the correction. When it is detected that arithmetic is a multiplication, it is the principle that BIAS correction is made by inputting the signal into Carry's input terminal.
나눗셈Division
ea- eb= (ea-1) - (eb-1)e a -e b = (e a -1)-(e b -1)
= pa- pb-1 ----------②= p a -p b -1 ---------- ②
= pa+ (/pb+1) - 1 ------③= p a + (/ p b +1)-1 ------ ③
= pa+ /pb------------④= p a + / p b ------------ ④
②는 고정된 바이어스 -1을 인가하였을 경우에, 나눗셈 연산후에 발생되는 결과값에 대해 보정해 주어야 할 '-1'이 요구되는 원리를 표현한 것이다. 이것은 ③에서 보여주는 것처럼 pb를 보수화시킴으로써 발생되는 '1'과 BIAS의 '-1'을 서로 상쇄시킬 수 있을 것이다. 결과적으로 나눗셈에서는 BIAS에 대한 보정작업 대신에 pb의 보수화(Complementation)를 구현함으로써 탁월한 성능을 발휘하게 되는 것이다. 따라서, ④는 나눗셈 연산에 있어서의 등가 공식이 될 것이다. 위의 분석을 토대로 기존의 사인비트를 이용한 방식을 개량한 '2n-1BIASed 방식'에 비교해서 본 발명에서 제시하는 방식의 연산이 수행 능력이나 집적도, 투명한 설계로 인한 디버깅(Debugging)의 용이함 등 대부분의 관점에서 더 우수하다는 사실을 쉽게 유추해 낼 수 있을 것이다.② represents the principle that '-1' is required to be corrected for the result value after division operation when fixed bias -1 is applied. This can offset '1' generated by conserving p b and '-1' of BIAS as shown in (3). As a result, division achieves excellent performance by implementing p b complementation instead of correcting BIAS. Thus, ④ will be the equivalent formula in the division operation. Compared to the '2 n-1 BIASed method', which is an improved method using the existing sign bit based on the above analysis, the operation of the method proposed in the present invention is easier to debug due to performance, integration, and transparent design. You can easily infer that it is better in most respects.
이제 몇가지 예를 다음과 같은 기본적인 정의를 바탕으로 해서 제시하고자 한다.Here are some examples based on the following basic definitions.
pa= ea+ bias = ea-1p a = e a + bias = e a -1
pb= eb+ bias = eb-1p b = e b + bias = e b -1
pa- pb- 1 = pa- {-(/pb+1)}-1p a -p b -1 = p a -{-(/ p b +1)}-1
= pa+ /pb+ (1-1)= p a + / p b + (1-1)
= pa+ /pb = p a + / p b
본 발명에서의 BIAS는 지수의 길이와 무관하지만, 기존의 방법과의 비교를 수월하게 하기 위해서 n=8이라고 가정한다. 여기에 '-1'이라는 고정된 바이어스 (Fixed BIAS)를 인가하게 된다면 표현 가능한 수치의 범위는 -128 ≤p ≤126 이 될것이다.Although the BIAS in the present invention is independent of the length of the index, it is assumed that n = 8 to facilitate the comparison with the existing method. If you apply a fixed BIAS of '-1' to this, the range of values that can be expressed would be -128 ≤p ≤126.
① (A*B)에서 지수부 연산 (ea+eb)를 수행① Performs exponential operation (e a + e b ) in (A * B)
00010010 + 01010001 = ea+ eb는00010010 + 01010001 = e a + e b is
00010001 + 01010000 + 1 = (ea-1) + (eb-1) = pa+ pb+ 100010001 + 01010000 + 1 = (e a -1) + (e b -1) = p a + p b + 1
가 된다. 이는 -1을 바이어스한 것이므로 01100010이 되고, 이를 10진수로 표현하면 18+81=99가 된다.Becomes Since this is a bias of -1, it becomes 01100010, which is expressed in decimal notation 18 + 81 = 99.
② (A÷B)에서 지수부 연산 (ea-eb)를 수행② Performs exponential operation (e a- e b ) at (A ÷ B)
00010010 - 01010001 = ea- eb는00010010-01010001 = e a -e b is
00010001 + 10101110 = pa+ /pb 00010001 + 10101 110 = p a + / p b
가 된다. 이를 10진수로 표현하면 18-81=-63이다.Becomes In decimal format, 18-81 = -63.
③ (B÷A)에서 지수부 연산 (eb-ea)를 수행③ Perform the exponential operation (e b -e a ) at (B ÷ A)
01010001 - 00010010 = eb- ea는01010001-00010010 = e b -e a is
01010000 + 11101110 = pb+ /pa 01010000 + 11101110 = p b + / p a
가 된다. 이를 10진수로 표현하면 81-18=63이다.Becomes In decimal, 81-18 = 63.
이상에서 설명된 본 발명에 따른 지수 처리 방법의 실시 예를 도 2를 참조하여 상세히 설명하기로 한다.An embodiment of the index processing method according to the present invention described above will be described in detail with reference to FIG. 2.
지수 ea및 eb에 고정된 바이어스 -1을 가산하여 바이어스된 지수 pa및 pb를 생성한다(201). 이들은 감산기(Decrementor)로 구현되며, 연산 코드(op code)에 따라서 세가지 방법으로 구현된다(202). 즉, 연산 코드 디코더에서 제어 신호를 입력하고 그 신호에 따른 연산자의 종류를 파악하여 해당되는 연산을 수행하도록 한다. 연산 코드 디코더에 입력되는 제어 신호가 두 연산자의 덧셈 및 뺄셈을 수행하고자 하는 신호일 경우 두 지수의 자리수를 맞추는 덧셈 및 뺄셈 로직으로 분기하여 덧셈 및 뺄셈을 수행한다(203). 연산 코드 디코더에 입력되는 제어 신호가 두 연산자의 곱셈 또는 나눗셈 연산일 경우 본 발명에서 표현된 방식의 바이어스된 지수를 이용한 계산을 수행하게 된다. 즉, 곱셈 연산일 경우 지수의 덧셈을 실시하고 바이어스를 복원한다(204). 나눗셈 연산일 경우 전정규화 로직을 실시한 후(205) 지수의 뺄셈을 실시한다(206). 나눗셈 연산의 경우 바이어스 알고리즘이 필요하지 않다. 지수의 덧셈 또는 뺄셈을 실시하여 곱셈 또는 나눗셈 연산을 실시한 후 후정규화 로직을 실시하고(207) 오버플로우/언더플로우를 체크한 후(208) 종료한다.The biases -1 fixed to exponents e a and e b are added to produce biased exponents p a and p b (201). These are implemented as a decrementor and implemented in three ways, depending on the op code (202). That is, the operation code decoder inputs a control signal, grasps the type of operator according to the signal, and performs a corresponding operation. If the control signal inputted to the operation code decoder is a signal for performing addition and subtraction of two operators, branching is performed to the addition and subtraction logic for matching the digits of the two exponents to perform addition and subtraction (203). When the control signal input to the operation code decoder is a multiplication or division operation of two operators, a calculation using a biased exponent of the method represented in the present invention is performed. That is, in the case of a multiplication operation, the exponent is added and the bias is restored (204). In the case of the division operation, the normalization logic is performed (205) and the exponent subtraction is performed (206). The division algorithm does not require a bias algorithm. After the exponent addition or subtraction is performed to perform the multiplication or division operation, post-normalization logic is performed (207), and the overflow / underflow is checked (208).
상기에서 곱셈 연산을 수행할 경우 곱셈 연산이 수행되는 것을 알리는 액티브(active) 하이 상태의 신호가 초기 캐리 입력(initial carry input)으로 들어가는 가산기가 포함된다. 가산기를 통해 공급되는 캐리는 지수의 덧셈 연산에서 발생하는 바이어스를 보정해 주는 역할을 한다.When the multiplication operation is performed, an adder for inputting an active high signal to an initial carry input, which indicates that the multiplication operation is performed, is included. The carry supplied by the adder compensates for the bias caused by the exponent addition operation.
또한, 상기에서 나눗셈 연산을 수행할 경우 나눗셈 연산이 수행되는 것을 알리는 액티브 로우 상태의 신호가 초기 캐리 입력으로 들어가는 가산기가 포함된다. 이때의 가산기는 곱셈 연산을 수행할 때 사용되는 가산기와 동일한 것으로, 곱셈 연산과 반대 상태의 신호가 초기 입력으로 들어간다.In addition, when the division operation is performed, an adder for inputting an active low signal to the initial carry input indicating that the division operation is performed is included. The adder at this time is the same as the adder used when performing a multiplication operation, and a signal opposite to the multiplication operation enters an initial input.
본 실시 예에서 가수(Mantissa)에 관련된 내용은 기존의 방식대로 수행되므로 따로 언급하지는 않았다. 가수(Mantissa) 처리부와 지수(Exponent) 처리부는 항상 동시에 제어를 받도록 되어 있으므로 도 2가 수행되는 동안에 가수(Mantissa) 처리부도 병렬적으로 고유의 특정 작업을 수행하게 된다. 곱셈의 경우에는 지수 (Exponent) 연산후에 가수(Mantissa)의 정규화(Normalization)를 수행하고, 나눗셈의 경우에는 지수(Exponent) 연산 전에 가수(Mantissa)의 정규화를 수행하게 된다.In this embodiment, since the contents related to the mantissa are performed in a conventional manner, they are not mentioned separately. Since the mantissa processing unit and the exponent processing unit are always controlled at the same time, the mantissa processing unit also performs a specific specific task in parallel while FIG. 2 is performed. In the case of multiplication, the normalization of the mantissa is performed after the exponent operation, and in the case of division, the normalization of the mantissa is performed before the exponent operation.
상술한 바와 같이 본 발명에 의하면 -1의 고정된 바이어스를 사용하여 지수부의 연산을 실시함으로써 처리 속도를 증가시킬 수 있고, 집적도를 향상시킬 수 있다.As described above, according to the present invention, the processing speed can be increased and the degree of integration can be improved by performing the calculation of the exponent part using a fixed bias of -1.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990065149A KR100332112B1 (en) | 1999-12-29 | 1999-12-29 | Method of processing an exponent |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990065149A KR100332112B1 (en) | 1999-12-29 | 1999-12-29 | Method of processing an exponent |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010065277A KR20010065277A (en) | 2001-07-11 |
KR100332112B1 true KR100332112B1 (en) | 2002-04-10 |
Family
ID=19632353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990065149A KR100332112B1 (en) | 1999-12-29 | 1999-12-29 | Method of processing an exponent |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100332112B1 (en) |
-
1999
- 1999-12-29 KR KR1019990065149A patent/KR100332112B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20010065277A (en) | 2001-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5530663A (en) | Floating point unit for calculating a compound instruction A+B×C in two cycles | |
US8626813B1 (en) | Dual-path fused floating-point two-term dot product unit | |
CA1324217C (en) | Pipelined floating point adder for digital computer | |
US8185570B2 (en) | Three-term input floating-point adder-subtractor | |
KR20150059082A (en) | High performance floating-point adder with full in-line denormal/subnormal support | |
CN108694037B (en) | Apparatus and method for estimating shift amount when floating point subtraction is performed | |
US20190278826A1 (en) | Apparatus for performing modal interval calculations based on decoration configuration | |
US4941119A (en) | Method and apparatus for predicting an overflow in an integer multiply | |
JPH09212337A (en) | Floating-point arithmetic processor | |
US6947962B2 (en) | Overflow prediction algorithm and logic for high speed arithmetic units | |
US5337265A (en) | Apparatus for executing add/sub operations between IEEE standard floating-point numbers | |
JP3753275B2 (en) | Most significant bit position prediction method | |
KR100332112B1 (en) | Method of processing an exponent | |
CN108153513B (en) | Leading zero prediction | |
Vassiliadis et al. | Brief communication Condition code predictor for fixed-point arithmetic units | |
KR100431707B1 (en) | Method for processing exponents on multiplication/division operation of floating point operation | |
US11797300B1 (en) | Apparatus for calculating and retaining a bound on error during floating-point operations and methods thereof | |
KR100385233B1 (en) | Exponent unit for data processing system | |
JPH01282633A (en) | Non-normalized number processing system | |
JP2723707B2 (en) | Normalization circuit | |
JPS63158626A (en) | Arithmetic processing unit | |
KR100259095B1 (en) | Adder having normalization function | |
JPH05204606A (en) | Floating point arithmetic system and unit | |
KR200222599Y1 (en) | Floating point type normalizer | |
JPH03217938A (en) | Floating deciaml rounding normalizing device |
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: 20110222 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |