US5928318A - Clamping divider, processor having clamping divider, and method for clamping in division - Google Patents
Clamping divider, processor having clamping divider, and method for clamping in division Download PDFInfo
- Publication number
- US5928318A US5928318A US08/923,926 US92392697A US5928318A US 5928318 A US5928318 A US 5928318A US 92392697 A US92392697 A US 92392697A US 5928318 A US5928318 A US 5928318A
- Authority
- US
- United States
- Prior art keywords
- divisor
- dividend
- division
- quotient
- output
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
Definitions
- the present invention relates to a clamping divider having a clamping function applicable to image processors and multimedia information processors, an information processor having such a clamping divider, and a method of clamping in division.
- the image data processing involves intensity calculations that involve clamping.
- the clamping is an operation to fix a result of an execution to a maximum or a minimum if the result is out of a range defined by the maximum and minimum.
- a division execution of "a/b” is carried out according to, for example, Newton-Raphson algorithm. This algorithm employs the steps of:
- a prior art When carrying out a division with the clamping, a prior art first calculates a quotient of the division. If the quotient is out of a range defined by predetermined maximum and minimum, the quotient is clamped to the maximum or minimum, to provide a final result of the division execution.
- FIG. 1 shows a clamping divider according to a prior art. A division and the clamping carried out by the prior art according to the algorithm Newton will be explained based on pipeline cycles.
- a divisor is set in a register 50 and a dividend in a register 51.
- the divisor is standardized so that it is equal to or greater than 1 and below 2.
- the register 50 provides an output b1 to a priority encoder 60, which provides an encoded result b2 to a barrel shifter 61.
- the barrel shifter 61 also receives the output b1 of the register 50 and provides a shifted result b3 to a register 52.
- the register 52 provides an output b4 to a ROM 62, which provides an accessed value b5 to a register 53.
- the value b5 is an approximate value of the reciprocal of the divisor.
- the second and third cycles correspond to the step A of the algorithm Newton.
- a selector 70 receives an output b6 from the register 53 and an output b7 from a register 54 and selects the output b6 as a selector output b8.
- a selector 71 receives the output b4 from the register 52 and an output b9 from the register 51 and selects the output b4 as a selector output b10.
- a selector 72 receives a value b11 of "2" and a rounding value b12 and selects the rounding value b11 as a selector output b13.
- the selector outputs b8, b10, and b13 are supplied to a multiple accumulator (MAC) 63 having an adder/subtracter and a multiplier.
- the outputs b8 and b10 serve as multiplication terms and the output b13 as an addition term, so that the MAC 63 calculates "2-b8 ⁇ b10" and provides an output b14 to the register 54.
- the selector 70 receives the outputs b6 and b7 of the registers 53 and 54 and selects the output b7 as the selector output b8.
- the selector 71 receives the outputs b4 and b9 of the registers 52 and 51 and selects the output b4 as the selector output b10.
- the selector 72 receives the values b11 and b12 and selects the value b12 as the selector output b13.
- the selector outputs b8, b10, and b13 are supplied to the MAC 63, which calculates "b8 ⁇ b10," carries out a rounding process, and provides a result b14 to the register 54.
- the fourth and fifth cycles increase the accuracy of the reciprocal of the divisor obtained in the third cycle and correspond to the step B of the algorithm Newton.
- a sixth cycle and following cycles repeat the operations of the fourth and fifth cycles until required accuracy is obtained on the reciprocal of the divisor.
- the selector 70 selects the output b7 between the outputs b6 and b7 of the registers 53 and 54 and provides the selected one as the selector output b8.
- the selector 71 selects the output b9 between the outputs b4 and b9 of the registers 52 and 51 and provides the selected one as the selector output b10.
- the selector 72 selects the rounding value b12 between the values b11 and b12 and provides the selected one as the selector output b13.
- the selector outputs b8, b10, and b13 are supplied to the MAC 63, which provides a resultant output b14 to the register 54.
- the barrel shifter 64 receives the output b7 of the register 54 and the output b15 of the register 55 and shifts the output b7 in a direction opposite to the shifting direction of the second cycle by the same number of bits as in the second cycle, thereby providing a shifted output b16, i.e., a quotient. This corresponds to the step C of the algorithm Newton. Storing the output b2 of the priority encoder 60 in the register 55 may be finished before the cycle to operate the barrel shifter 64.
- the output b16 of the barrel shifter 64 is supplied to a clamp judge circuit 65, which determines whether or not the quotient must be clamped and provides, as an output b17, one of the maximum clamp value, minimum clamp value, and quotient.
- the clamping divider of the prior art of FIG. 1 must calculate a quotient before the clamping. Therefore, the prior art needs a long time to provide a final result, i.e., the output b17 of the circuit 65, to deteriorate a division calculating speed. In addition, the prior art must separately have the dedicated clamp judge circuit 65 to increase the size of the clamping divider.
- An object of the present invention is to provide a compact clamping divider capable of speedily carrying out division and clamping.
- Another object of the present invention is to provide a compact and high speed information processor having a clamping divider.
- Still another object of the present invention is to provide a method of carrying out division and clamping at high speed.
- a first aspect of the present invention provides a clamping divider that clamps a result of division to a maximum clamp value 2 m (m being an integer) if a quotient is equal to or larger than 2 m , and to a minimum clamp value 2 n (n being an integer) if the quotient is equal to or smaller than 2 n .
- the clamping divider has a bit shifter, a multiple accumulator (MAC), and an output circuit.
- the bit shifter When determining whether or not the quotient is equal to or larger than the maximum clamp value, the bit shifter shifts a divisor or a dividend in a higher or lower direction by m bits respectively, and when determining whether or not the quotient is equal to or smaller than the minimum clamp value, the bit shifter shifts the divisor or dividend in a higher or lower direction by n bits respectively.
- the MAC subtracts the shifted dividend or divisor from the divisor or dividend, and according to a result of the subtraction, determines whether or not the result of division must be clamped to the maximum or minimum clamp value, before actually calculating the quotient. According to the determination made by the MAC, the output circuit provides a final result of division.
- the first aspect carries out the clamping before calculating a quotient instead of carrying out the clamping on a calculated quotient, thereby shortening a division execution time.
- the first aspect employs the MAC, which is originally used for calculating a quotient, to make the determination whether or not the clamping must be carried out, thereby eliminating the dedicated clamp judge circuit of the prior art and reducing the size of the clamping divider.
- the first aspect prefferably set the maximum clamp value to "1" or smaller, standardize a dividend by shifting the same similar to a divisor, and use the MAC to calculate a quotient by multiplying the shifted dividend by the. reciprocal of the divisor.
- Limiting the maximum clamp value to "1" or below may eliminate a shift operation to be carried out after multiplying a divisor by a dividend according to the Newton-Raphson method. This shortens a division calculating time and reduces the size of the clamping divider further.
- a second aspect of the present invention provides a processor having the clamping divider of the first aspect, a unit for instructing the clamping divider to stop the present division execution by a division instruction if the clamping divider determines that the present division execution must be clamped, and a unit for instructing the clamping divider to start a next division execution by a next division instruction if the same follows just after the division instruction.
- the second aspect is capable of finishing a division execution in a short time, improving throughput, shortening a total execution time, simplifying a system, and making the system compact.
- a third aspect of the present invention provides a method of clamping a result of division.
- the method executes a division according to the Newton-Raphson algorithm and clamps a result of the division to a maximum clamp value of 2 m (m being an integer) if a quotient of the division is equal to or larger than the maximum clamp value, and to a minimum clamp value of 2 n (n being an integer) if the quotient is equal to or smaller than the minimum clamp value.
- the method shifts a divisor (or a dividend) in a higher (or lower) direction by m bits with the use of a bit shifter.
- the method When determining whether or not the quotient is equal to or smaller than the minimum clamp value, the method shifts the divisor (or dividend) in a higher (or lower) direction by n bits with the use of the bit shifter.
- the method employs a multiple accumulator (MAC), which is originally used to calculate a quotient, to subtract the shifted dividend or divisor from the divisor or dividend. According to a result of the subtraction, the method determines whether or not the division result must be clamped to the maximum or minimum clamp value, before actually calculating the quotient.
- MAC multiple accumulator
- the third aspect terminates the division at once and starts the next division. This improves the throughput of pipelines in the clamping divider when processing consecutive division instructions and shortens a total execution time.
- FIG. 1 shows a clamping divider according to a prior art
- FIG. 2 shows a clamping divider according to a first embodiment of the present invention
- FIG. 3 shows a multiple accumulator (MAC) incorporated in the clamping divider of FIG. 2;
- FIG. 4A shows the execution timing of the next division instruction when the clamping divider determines in the second and third cycles that a quotient will be within a range defined by clamp values
- FIG. 4B shows the execution timing of the next division instruction when the clamping divider determines in the second cycle that a quotient will be out of the range
- FIG. 4C shows the execution timing of the next division instruction when the clamping divider determines in the third cycle that a quotient will be out of the range
- FIG. 5 shows a clamping divider according to a second embodiment of the present invention
- FIG. 6A shows an information processor according to a third embodiment of the present invention
- FIG. 6B shows the details of the information processor of FIG. 6A
- FIG. 7A shows a sequence of enable signals when no clamping determination is made in the information processor of FIG. 6B;
- FIG. 7B shows a sequence of the enable signals when a clamping divider in the information processor of FIG. 6B determines in the second and third cycles that a quotient will be within a range defined by clamp values;
- FIG. 7C shows a sequence of the enable signals when the clamping divider determines in the second cycle that a quotient will be out of the range
- FIG. 7D shows a sequence of the enable signals when the clamping divider determines in the third cycle that a quotient will be out of the range.
- FIG. 2 shows a clamping divider according to the first embodiment of the present invention.
- the clamping divider has a priority encoder 20 for standardizing a divisor to a value that is equal to or greater than 1 and below 2, an input barrel shifter 21 for shifting the divisor by receiving an encoded result from the priority encoder 20 and the divisor, a ROM 22 for storing the approximate value of the reciprocal of each divisor, a multiple accumulator (MAC) 23, an output barrel shifter 24 for carrying out a shift operation to provide a result of division, and a bit shifter 25 for bit-shifting a dividend so that the dividend is used for the clamping.
- the MAC 23 has an adder/subtracter and a multiplier, to carry out division, find the reciprocal of the divisor, and determine whether or not a division result must be clamped.
- the clamping divider also has a register 10 for holding the divisor, a register 11 for holding the dividend, a register 12 for holding the output of the input barrel shifter 21, a register 13 for holding the output of the ROM 22, an output register 14 for holding the output of the MAC 23, a maximum clamp value, or a minimum clamp value, and a register 15 for holding the output of the priority encoder 20.
- the clamping divider further has a selector 30 for selecting one of the outputs of the registers 13 and 14 and providing the MAC 23 with the selected one, a selector 31 for selecting one of the outputs of the registers 11 and 12 and providing the MAC 23 with the selected one, a selector 32 for selecting one of the output of the register 10, a value a11 that is "2,” and a rounding value a12 that is added for a rounding process and providing the MAC 23 with the selected one, and a selector 33 for selecting one of the output of the MAC 23, the maximum clamp value a16, and the minimum clamp value a17 and providing the output register 14 with the selected one.
- FIG. 3 shows the details of the MAC 23 shown in FIG. 2.
- the MAC 23 has the multiplier 231, the adder/subtracter 232, and a selector 233.
- the multiplier 231 receives the output a8 of the selector 30 and the output a10 of the selector 31, calculates the product of the outputs, and provides a result c1 to the selector 233.
- the selector 233 selects the output c1 or the output a13 of the selector 32 and provides an output c2 to the adder/subtracter 232.
- the adder/subtracter 232 receives the output a14 of the bit shifter 25 and the output c2, calculates the sum or difference of the outputs, and provides the output a15 of the MAC 23.
- the maximum clamp value is 2 m and the minimum clamp value is 2 m (m and n being each an integer). Accordingly, determining whether or not a division result must be clamped to the maximum clamp value is equal to checking to see if A/B ⁇ 2 m , i.e., (2 -m ⁇ A-B) ⁇ 0, where A is a dividend and B is a divisor.
- Hardware employs binary expression. Accordingly, multiplying a given figure by 2 -m is equivalent to shifting the figure in a lower direction by m bits if m is positive, and in a higher direction by -m bits if m is negative. This shifting operation is carried out by the bit shifter 25. Thereafter, the MAC 23 carries out the subtraction, and if a result of the subtraction is positive, it is determined that the division result must be clamped to the maximum clamp value. Determining whether or not the division result must be clamped to the minimum clamp value is equal to checking to see if A/B ⁇ 2 n , i.e., (2 -n ⁇ A-B) ⁇ 0. The checking is carried out similar to that with the maximum clamp value. If a result of the subtraction is negative, it is determined that the division result must be clamped to the minimum clamp value.
- a divisor is set in the register 10 and a dividend in the register 11.
- the divisor is standardized to a value equal to or larger than 1 and below 2.
- the register 10 provides an output a1 to the priority encoder 20, which provides an output a2.
- the input barrel shifter 21 receives the outputs a1 and a2 and provides a shifted result a3 to the register 12.
- the selector 32 selects the output a1 of the register 10 among the output a1 and the values a11 and a12 and provides the selected one as an output a13 to the MAC 23.
- the bit shifter 25 receives the output a9 of the register 11 and provides a shifted output a14 corresponding to the maximum clamp value to the MAC 23.
- the output a14 is obtained by shifting the output a9 (dividend) of the register 11 in a lower direction by m bits. If “m” is negative, the output a14 is obtained by shifting the output a9 in a higher direction by -m bits.
- the output a13 of the selector 32 and the output a14 of the bit shifter 25 are supplied to the MAC 23, which calculates "a13-a14" and provides a result a15. If the result a15 is positive, a quotient will be greater than the maximum clamp value.
- the division operation is terminated at once, and the selector 33 selects the maximum clamp value a16 among the output a15 of the MAC 23, the maximum clamp value a16, and the minimum clamp value a17 and provides the selected one as an output a18 to the output register 14.
- the output a18 is a final result of the output division operation. If another division instruction follows, it is executed at once through the pipelines. If the output a15 of the MAC 23 is negative, the division operation in question is continued.
- the output a4 of the register 12 is supplied to the ROM 22, which provides an output a5 to the register 13.
- the output a5 is an approximate value of the reciprocal of the divisor.
- the selector 32 selects the output a1 of the register 10 among the output a1 and the values a11 and a12 and provides the selected one as an output a13 to the MAC 23.
- the output a9 of the register 11 is supplied to the bit shifter 25, which provides an output a14 corresponding to the minimum clamp value to the MAC 23. If "n" of the minimum clamp value 2 n (n being an integer) is positive, the output a14 of the bit shifter 25 is obtained by shifting the output a9 in a lower direction by n bits.
- the output a14 is obtained by shifting the output a9 in a higher direction by -n bits.
- the MAC 23 receives the outputs a13 and a14, calculates "a13-a14," and provides an output a15. If the output a15 is negative, the quotient will be below the minimum clamp value. In this case, the division operation is terminated at once, and the selector 33 selects the minimum clamp value a17 among the output a15 of the MAC 23, the maximum clamp value a16, and the minimum clamp value a17 and provides the selected one as an output a18 to the output register 14. The output a18 is a final result of the division. If another division instruction follows, it is executed at once through the pipelines. If the output a15 of the MAC 23 is positive, the division operation in question is continued.
- the selector 30 selects the output a6 of the register 13 between the output a6 and the output a7 of the output register 14 and provides the selected one as the selector output a8 to the MAC 23.
- the selector 31 selects the output a4 of the register 12 between the output a4 and the output a9 of the register 11 and provides the selected one as the selector output a10 to the MAC 23.
- the selector 32 selects the value a11 of "2" among the output a1 of the register 10 and the values a11 and a12 and provides the selected one as the selector output a13 to the MAC 23.
- the MAC 23 receives the selector outputs a8, a10, and a13 in which the outputs a8 and a10 serve as multiplication terms and the output a13 as an addition term.
- the MAC 23 calculates "2-a8 ⁇ a10" and provides a result thereof as the output a15 to the output register 14 through the selector 33.
- the selector 30 selects the output a7 between the outputs a6 and a7 of the registers 13 and 14 and provides the selected one as the selector output a8 to the MAC 23.
- the selector 31 selects the output a4 between the outputs a4 and a9 of the registers 12 and 11 and provides the selected one as the selector output a10 to the MAC 23.
- the selector 32 selects the rounding value a12 among the output a1 of the register 10 and the values a11 and a12 and provides the selected one as the selector output a13 to the MAC 23.
- the MAC 23 receives the selector outputs a8, a10, and a13, calculates "a8 ⁇ a10," carries out a rounding process, and provides a result thereof as the output a15 to the output register 14 through the selector 33.
- the fourth and fifth cycles carry out the step B of the algorithm Newton, i.e., improving the accuracy of the reciprocal of the divisor found in the third cycle.
- a sixth cycle and following cycles repeat the operation of the fifth cycle until the accuracy of the reciprocal of the divisor reaches a required level.
- the selector 30 selects the output a7 between the outputs a6 and a7 of the register 13 and output register 14 and provides the selected one as the selector output a8 to the MAC 23.
- the selector 31 selects the output a9 between the outputs a4 and a9 of the registers 12 and 11 and provides the selected one as the selector output a10 to the MAC 23.
- the selector 32 selects the rounding value a12 among the output a1 of the register 10 and the values a11 and a12 and provides the selected one as the selector output a13 to the MAC 23.
- the MAC 23 receives the selector outputs a8, a10, and a13 and provides a result as the output a15 to the output register 14 through the selector 33.
- the output barrel shifter 24 receives the outputs a7 and a19 of the output register 14 and register 15, shifts the output a7 opposite to the shifting direction of the second cycle by the same number of bits as in the second cycle, and provides an output a20.
- the output a20 is a final result of the division. This completes the step C of the algorithm Newton.
- the first embodiment of the present invention carries out the clamping without the dedicated clamp judge circuit.
- the first embodiment employs the MAC 23, which originally serves to calculate a quotient, for determining whether or not the clamping must be carried out during a free time of the pipeline processes that use the MAC 23, to thereby reduce the size of the clamping divider.
- the first embodiment carries out the clamping determination before calculating a quotient and executes the clamping based on the determination, instead of carrying out the clamping on the quotient. This shortens an execution time of division and the clamping.
- the first embodiment of the present invention determines, on each division execution, whether or not the clamping must be carried out before calculating a quotient of the division. If it is determined that the clamping must be carried out, the first embodiment quickly selects a clamp value as a final result of the division and terminates the division instruction. At the same time, the first embodiment proceeds to the next division instruction or another process with the use of pipelines.
- FIGS. 4A to 4C show the timing of making a clamping determination and the timing of executing the next division instruction.
- clock cycles 1 to 5 correspond to the first to fifth cycles mentioned above
- a clock cycle 6 corresponds to the cycle of passing data through the barrel shifter 24. If there is a next division instruction in the pipelines, it will quickly be started from a waiting state.
- the cycles 2 and 3 determine that a quotient will be in the range defined by the clamp values, and the next division execution is started from the cycle 5 by the next division instruction.
- the cycle 2 determines that a quotient will be out of the range, and the next division execution is started from the cycle 3.
- the cycle 3 determines that a quotient will be out of the range, and the next division execution is started from the cycle 4. In this way, the next division execution is quickly started, to improve the throughput of the clamping divider when processing consecutive division instructions and shorten an overall execution time.
- the second cycle determines whether or not a quotient exceeds the maximum clamp value and the third cycle whether or not the quotient is below the minimum clamp value.
- These executions of the second and third cycles may be replaced with each other. In some case, one of the clamping determination operations may be omitted.
- the MAC 23 is used for an original purpose of the division execution. It is important that the MAC 23 is used to carry out the clamping operations (in the second and third cycles in the first embodiment) before the MAC 23 is used for the original purpose (in the fourth cycle in the first embodiment) of calculating a quotient.
- FIG. 5 shows a clamping divider according to the second embodiment of the present invention. The characteristics of this divider will be explained.
- An input selector 34 selects the output a1 (a divisor) of a register 10 or the output a9 (a dividend) of a register 11 and supplies the selected one as an output a19 to an input barrel shifter 21, unlike the first embodiment that directly supplies the output a1 to the input barrel shifter 21. Since the second embodiment is capable of supplying the dividend, i.e., the output a9 of the register 11 to the input barrel shifter 21, the dividend may be shifted in advance when a multiple accumulator (MAC) 23 multiplies the reciprocal of the divisor by the dividend in the last cycle.
- MAC multiple accumulator
- a selector 35 is used instead of the selector 31 of the first embodiment.
- the selector 35 selects the output a3 of the input barrel shifter 21 or the output a4 of a register 12 and supplies the selected one as an output a10 to the MAC 23.
- the second embodiment limits a maximum clamp value to "1" so that a dividend may be shifted in advance by the same number of bits as for a divisor, instead of carrying out the shift operation in the last stage of a division execution. This is made because a division result is always clamped to the maximum clamp value if the dividend causes a bit overflow.
- the second embodiment provides, in addition to the effect of the first embodiment, an effect of omitting the shift operation from the last stage (step B) of the algorithm Newton because the second embodiment limits the maximum clamp value to "1" or smaller. This results in further shortening a division execution time.
- the second embodiment is able to omit one barrel shifter (see the output barrel shifter 24 in FIG. 2), to make the clamping divider compact as shown in FIG. 5.
- FIG. 6A shows an information processor having a clamping divider 300, according to the third embodiment of the present invention.
- the information processor also has a unit 400 for instructing the clamping divider 300 to stop executing a division if the clamping divider 300 determines that a division result must be clamped, and a unit 500 for instructing the clamping divider 300 to start the next division if it follows just after the stopped division execution.
- This structure realizes the functions of the divider of any one of the first and second embodiments.
- the combination of units 400 and 500 are equivalent to a control signal generator 700 (FIG. 6B) for generating an operation fixed signal and write enable signals.
- the operation fixed signal indicates that a division result has been fixed.
- the write enable signals are the signals for writing data into registers 10 to 15 contained in the clamping divider 300.
- the registers 10 to 15 correspond to the registers 10 to 15 of the clamping divider of FIG. 2.
- the control signal generator 700 In response to a signal a15 indicating whether or not the clamping must be carried out, the control signal generator 700 generates the write enable signals for the registers 10 to 15 and the operation fixed signal a25 in respective clock cycles.
- FIG. 7A shows a sequence of the write enable signals for the registers 10 to 15 when no clamping is carried out.
- the enable signal for the register 15 may be provided in any one of clock cycles 3, 4, and 5.
- the write enable signals are basically generated according to the sequence of FIG. 7A. If a result of a given division execution must be clamped, the sequence of FIG. 7A for the next division execution is started from a clock cycle next to the clock cycle in which the result of the given division execution is clamped. If no clamping is made, the operation fixed signal a25 is enabled in clock cycle 5 in the sequence of FIG. 7A. If the clamping is made, the operation fixed signal a25 is enabled in the clock cycle in which the clamping is made.
- FIGS. 6A and 6B improve the total throughput of the information processor and shorten an overall execution time.
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)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23800396A JP3352887B2 (ja) | 1996-09-09 | 1996-09-09 | クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法 |
JP8-238003 | 1996-09-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
US5928318A true US5928318A (en) | 1999-07-27 |
Family
ID=17023698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/923,926 Expired - Fee Related US5928318A (en) | 1996-09-09 | 1997-09-05 | Clamping divider, processor having clamping divider, and method for clamping in division |
Country Status (2)
Country | Link |
---|---|
US (1) | US5928318A (ja) |
JP (1) | JP3352887B2 (ja) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260054B1 (en) * | 1998-10-29 | 2001-07-10 | Neomagic Corp. | Reciprocal generator using piece-wise-linear segments of varying width with floating-point format |
US6282684B1 (en) | 1997-10-23 | 2001-08-28 | Sony Corporation | Apparatus and method for recovery of data in a lossy transmission environment |
US6295008B1 (en) * | 1999-02-12 | 2001-09-25 | Sony Corporation | Method and apparatus for truncated decoding |
US6418548B1 (en) | 1999-02-12 | 2002-07-09 | Sony Corporation | Method and apparatus for preprocessing for peripheral erroneous data |
US6473876B1 (en) | 1999-06-29 | 2002-10-29 | Sony Corporation | Method and apparatus for encoding of bitstreams using rotation |
US6519369B1 (en) | 1999-02-12 | 2003-02-11 | Sony Corporation | Method and apparatus for filter tap expansion |
US6539517B1 (en) | 1999-11-09 | 2003-03-25 | Sony Corporation | Data transformation for explicit transmission of control information |
US6549672B1 (en) | 1999-06-29 | 2003-04-15 | Sony Corporation | Method and apparatus for recovery of encoded data using central value |
US6553381B2 (en) | 1999-06-29 | 2003-04-22 | Sony Corporation | Time-varying randomization for data synchronization and implicit information transmission |
US6581170B1 (en) | 1997-10-23 | 2003-06-17 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US6591398B1 (en) | 1999-02-12 | 2003-07-08 | Sony Corporation | Multiple processing system |
US6598065B1 (en) * | 1999-12-23 | 2003-07-22 | Intel Corporation | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal |
US6621936B1 (en) | 1999-02-12 | 2003-09-16 | Sony Corporation | Method and apparatus for spatial class reduction |
US6754371B1 (en) | 1999-12-07 | 2004-06-22 | Sony Corporation | Method and apparatus for past and future motion classification |
KR100456035B1 (ko) * | 2002-10-11 | 2004-11-08 | 주식회사 모티스 | 나눗셈 장치 |
US6963999B2 (en) | 1997-10-23 | 2005-11-08 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US20060129625A1 (en) * | 2004-12-15 | 2006-06-15 | Sun Microsystems, Inc. | Low latency integer divider and integration with floating point divider and method |
US20060184594A1 (en) * | 2005-02-16 | 2006-08-17 | Arm Limited | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation |
US20060184602A1 (en) * | 2005-02-16 | 2006-08-17 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
WO2008069390A1 (en) * | 2006-12-07 | 2008-06-12 | Electronics And Telecommunications Research Institute | Apparatus and method for generating mean value |
US20100250639A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
US20100293211A1 (en) * | 2006-12-07 | 2010-11-18 | Electronics And Telecommunications Research Institute | Apparatus and method for generating mean value |
US9086890B2 (en) | 2012-01-06 | 2015-07-21 | Oracle International Corporation | Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated |
US20160085511A1 (en) * | 2014-09-19 | 2016-03-24 | Sanken Electric Co., Ltd. | Arithmetic processing method and arithmetic processor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4999801A (en) * | 1988-07-15 | 1991-03-12 | Fujitsu Limited | Floating point operation unit in division and square root operations |
US5046038A (en) * | 1989-07-07 | 1991-09-03 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
US5307303A (en) * | 1989-07-07 | 1994-04-26 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
US5475630A (en) * | 1991-09-05 | 1995-12-12 | Cyrix Corporation | Method and apparatus for performing prescaled division |
US5798955A (en) * | 1994-12-15 | 1998-08-25 | Kabushiki Kaisha Toshiba | High-speed division and square root calculation unit |
-
1996
- 1996-09-09 JP JP23800396A patent/JP3352887B2/ja not_active Expired - Fee Related
-
1997
- 1997-09-05 US US08/923,926 patent/US5928318A/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4999801A (en) * | 1988-07-15 | 1991-03-12 | Fujitsu Limited | Floating point operation unit in division and square root operations |
US5046038A (en) * | 1989-07-07 | 1991-09-03 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
US5307303A (en) * | 1989-07-07 | 1994-04-26 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
US5475630A (en) * | 1991-09-05 | 1995-12-12 | Cyrix Corporation | Method and apparatus for performing prescaled division |
US5798955A (en) * | 1994-12-15 | 1998-08-25 | Kabushiki Kaisha Toshiba | High-speed division and square root calculation unit |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581170B1 (en) | 1997-10-23 | 2003-06-17 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US6282684B1 (en) | 1997-10-23 | 2001-08-28 | Sony Corporation | Apparatus and method for recovery of data in a lossy transmission environment |
US6963999B2 (en) | 1997-10-23 | 2005-11-08 | Sony Corporation | Source coding to provide for robust error recovery during transmission losses |
US6260054B1 (en) * | 1998-10-29 | 2001-07-10 | Neomagic Corp. | Reciprocal generator using piece-wise-linear segments of varying width with floating-point format |
US6295008B1 (en) * | 1999-02-12 | 2001-09-25 | Sony Corporation | Method and apparatus for truncated decoding |
US6418548B1 (en) | 1999-02-12 | 2002-07-09 | Sony Corporation | Method and apparatus for preprocessing for peripheral erroneous data |
US6519369B1 (en) | 1999-02-12 | 2003-02-11 | Sony Corporation | Method and apparatus for filter tap expansion |
US6535148B1 (en) * | 1999-02-12 | 2003-03-18 | Sony Corporation | Method and apparatus for truncated decoding |
US6621936B1 (en) | 1999-02-12 | 2003-09-16 | Sony Corporation | Method and apparatus for spatial class reduction |
US6591398B1 (en) | 1999-02-12 | 2003-07-08 | Sony Corporation | Multiple processing system |
US6549672B1 (en) | 1999-06-29 | 2003-04-15 | Sony Corporation | Method and apparatus for recovery of encoded data using central value |
US7224838B2 (en) | 1999-06-29 | 2007-05-29 | Tetsujiro Kondo | Method and apparatus for recovery of encoded data using central value |
US6473876B1 (en) | 1999-06-29 | 2002-10-29 | Sony Corporation | Method and apparatus for encoding of bitstreams using rotation |
US6553381B2 (en) | 1999-06-29 | 2003-04-22 | Sony Corporation | Time-varying randomization for data synchronization and implicit information transmission |
US6539517B1 (en) | 1999-11-09 | 2003-03-25 | Sony Corporation | Data transformation for explicit transmission of control information |
US6754371B1 (en) | 1999-12-07 | 2004-06-22 | Sony Corporation | Method and apparatus for past and future motion classification |
US6598065B1 (en) * | 1999-12-23 | 2003-07-22 | Intel Corporation | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal |
KR100456035B1 (ko) * | 2002-10-11 | 2004-11-08 | 주식회사 모티스 | 나눗셈 장치 |
US20060129625A1 (en) * | 2004-12-15 | 2006-06-15 | Sun Microsystems, Inc. | Low latency integer divider and integration with floating point divider and method |
US7539720B2 (en) | 2004-12-15 | 2009-05-26 | Sun Microsystems, Inc. | Low latency integer divider and integration with floating point divider and method |
US8015228B2 (en) * | 2005-02-16 | 2011-09-06 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
US20060184602A1 (en) * | 2005-02-16 | 2006-08-17 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
US7747667B2 (en) | 2005-02-16 | 2010-06-29 | Arm Limited | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation |
US20060184594A1 (en) * | 2005-02-16 | 2006-08-17 | Arm Limited | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation |
US8965946B2 (en) | 2005-02-16 | 2015-02-24 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
WO2008069390A1 (en) * | 2006-12-07 | 2008-06-12 | Electronics And Telecommunications Research Institute | Apparatus and method for generating mean value |
US20100293211A1 (en) * | 2006-12-07 | 2010-11-18 | Electronics And Telecommunications Research Institute | Apparatus and method for generating mean value |
US20100250639A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
US8452831B2 (en) | 2009-03-31 | 2013-05-28 | Oracle America, Inc. | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
US9086890B2 (en) | 2012-01-06 | 2015-07-21 | Oracle International Corporation | Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated |
US20160085511A1 (en) * | 2014-09-19 | 2016-03-24 | Sanken Electric Co., Ltd. | Arithmetic processing method and arithmetic processor |
JP2016062404A (ja) * | 2014-09-19 | 2016-04-25 | サンケン電気株式会社 | 演算処理方法及び演算処理装置 |
US9851947B2 (en) * | 2014-09-19 | 2017-12-26 | Sanken Electric Co., Ltd. | Arithmetic processing method and arithmetic processor having improved fixed-point error |
Also Published As
Publication number | Publication date |
---|---|
JPH1083279A (ja) | 1998-03-31 |
JP3352887B2 (ja) | 2002-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5928318A (en) | Clamping divider, processor having clamping divider, and method for clamping in division | |
US6904446B2 (en) | Floating point multiplier/accumulator with reduced latency and method thereof | |
US6209017B1 (en) | High speed digital signal processor | |
US7949696B2 (en) | Floating-point number arithmetic circuit for handling immediate values | |
KR920010914B1 (ko) | 집적 데이타 처리기 | |
US5105378A (en) | High-radix divider | |
US5457805A (en) | Microcomputer enabling high speed execution of product-sum operation | |
US5633897A (en) | Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm | |
JPH07168697A (ja) | 倍精度除算回路および方法 | |
US6463451B2 (en) | High speed digital signal processor | |
US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
JPH0667851A (ja) | オーバーフロー検出機能付き乗算装置 | |
US5954790A (en) | Method and apparatus for parallel prediction and computation of massive cancellation in floating point subtraction | |
EP0869432B1 (en) | Multiplication method and multiplication circuit | |
WO1996037819A1 (en) | Method for performing a 'rotate through carry' operation | |
US5696713A (en) | Method for faster division by known divisor while maintaining desired accuracy | |
US5539684A (en) | Method and apparatus for calculating floating point exponent values | |
KR19980043591A (ko) | 정보 보호용 모듈러 승산 장치 | |
KR930005426B1 (ko) | 캐리/세이브 가산기 승산 유니트에서 감산 절차를 간편하게 하는 장치 및 방법 | |
US5946223A (en) | Subtraction/shift-type dividing device producing a 2-bit partial quotient in each cycle | |
US5204962A (en) | Processor with preceding operation circuit connected to output of data register | |
US5432726A (en) | Arithmetic unit for quantization/inverse quantigation | |
US5208769A (en) | Unsigned integer multiply/divide circuit | |
RU2276805C2 (ru) | Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой | |
US11126691B1 (en) | Apparatus and method for generating a vector of elements with a wrapping constraint |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARAKI, YOSHITSUGU;REEL/FRAME:008790/0690 Effective date: 19970826 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20110727 |