WO2005119426A1 - Complex logarithmic alu - Google Patents
Complex logarithmic alu Download PDFInfo
- Publication number
- WO2005119426A1 WO2005119426A1 PCT/EP2005/005912 EP2005005912W WO2005119426A1 WO 2005119426 A1 WO2005119426 A1 WO 2005119426A1 EP 2005005912 W EP2005005912 W EP 2005005912W WO 2005119426 A1 WO2005119426 A1 WO 2005119426A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- look
- complex
- alu
- input
- output
- Prior art date
Links
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/4806—Computations with complex numbers
Definitions
- the present invention relates generally to computing and digital signal processing, and more particularly to pipelined logarithmic arithmetic in an arithmetic logic unit (ALU).
- ALUs have traditionally been used to implement various arithmetic functions, such as addition, subtraction, multiplication, division, etc., on real and/or complex numbers.
- Conventional systems use either fixed-point or floating-point number ALUs.
- ALUs using real logarithmetic of limited precision are also known. For example, see “Digital filtering using logarithmic arithmetic" (N. G. Kingsbury and P. J. W. Rayner, Electron. Lett. (Jan. 28, 1971) , Vol. 7, No.
- EEEEEEEE is the 8-bit exponent
- MMM...MM is the 23-bit mantissa.
- the 24th most significant bit of the mantissa is always 1 (except for true zero), and therefore omitted.
- the actual value of the mantissa is thus: 1.MMMMMMMMMMMMMMMMMMM.
- the zero exponent is 01111111 , and thus the number +1.0 may be written as: 0 01111111.0000000000000000000. Representing true zero would require a negatively infinite exponent, which is not practical, so an artificial zero is created by interpreting the all zeros bit pattern to be true zero instead of 2 ⁇ 127 .
- the smaller number is selected to be right- shifted a number of binary places equal to the exponent difference to align the points before adding the mantissas, with their implied 1's replaced.
- a barrel shifter may be used, which is similar in structure and complexity to a fixed-point multiplier. After adding and more particularly subtracting, leading zeros must be left-shifted out of the mantissa while incrementing the exponent.
- addition and subtraction are also complicated operations in floating-point arithmetic. In purely linear format, additions and subtractions with fixed-point numbers are simple, while multiplications, divisions, squares, and square roots are more complicated.
- Multipliers are constructed as a sequence of "shift and conditionally add" circuits that have inherently a large number of logic delays.
- Fast processors may use pipelining to overcome this delay, but this typically complicates programming. It is therefore of interest to minimize the pipelining delay in a fast processor.
- the floating-point number representation is a hybrid between logarithmic and linear representation. The exponent is the whole part of log to the base-2 of the number, while the mantissa is a linear fractional part. Because multiplication is complicated for linear representations and adds are complicated for logarithmic representations, this explains why both are complicated for the hybrid floating-point representations. To overcome this, some known systems, such as those cited above, have used a purely logarithmic representation.
- the present invention relates to an arithmetic logic unit (ALU) that performs arithmetic computations with real and/or complex numbers represented in a logarithmic format.
- ALU arithmetic logic unit
- logadd allows the log of the sum of a and b to be computed using only addition and subtraction operations, where the value of log q (1+q "r ) is determined using a look-up table.
- the present invention provides an ALU for performing logarithmic operations on complex input operands represented in a logpolar format.
- the ALU includes memory and a processor.
- the memory stores a look-up table used to determine logarithms of complex numbers in the logpolar format, while the processor generates an output logarithm of complex input operands represented in logpolar format using the stored look-up table.
- the present invention provides an ALU for performing logarithmic operations on both real and complex numbers represented in a logarithmic format.
- An exemplary ALU according to this embodiment also comprises memory and a processor.
- the memory stores two look-up tables, one for determining logarithms of real numbers and one for determining logarithms of complex numbers.
- the processor comprises a shared processor that generates an output logarithm based on input operands represented in a logarithmic format using the real look-up table for real input operands and the complex look-up table for complex input operands.
- the processor may comprise a butterfly circuit configured to simultaneously generate an output logarithm for both logadd and logsub operations.
- the processor may comprise a look-up controller and an output accumulator, where the look-up controller computes one or more partial outputs based on the look-up table(s).
- the partial outputs may be determined during one or more iterations, or may be determined during one or more stages of a pipeline.
- the output accumulator generates the output logarithm based on the partial outputs.
- Figure 1 illustrates a plot comparison between IEEE floating-point format and true logarithmic format for real numbers.
- Figure 2 illustrates a chart comparison between IEEE floating-point format and true logarithmic format for real numbers.
- Figure 3 illustrates a block diagram of a linear interpolator.
- Figure 4 illustrates a plot comparison between the true F-functions and an exponential approximation.
- Figures 5A and 5B illustrate quantizing regions for logpolar and Cartesian representations, respectively.
- Figure 6 illustrates a block diagram of one exemplary ALU for simultaneously performing logadd and logsub operations.
- Figure 7 illustrates an implementation of a 16-point FFT using the ALU of Figure 6.
- Figure 8 illustrates a block diagram of an exemplary ALU according to the present invention.
- Figure 9 illustrates a block diagram of an exemplary look-up controller for the ALU of
- Figure 8 illustrates additional details of an exemplary ALU according to the present invention.
- Figures 11A-1 1 C illustrate different allocations for complex numbers relative to real numbers.
- the present invention provides an ALU for performing logarithmic arithmetic on complex and/or real numbers in a logarithmic format.
- the ALU performs logarithmic arithmetic on complex numbers represented in a logpolar format using one or more look-up tables.
- the ALU performs logarithmic arithmetic on both complex and real numbers represented in a logarithmic format using at least one complex and one real look- up table, respectively.
- Logarithmic operations implemented in an ALU generally require a specific number format.
- conventional processors may format real or complex numbers in a fixed-point binary format or a floating-point format.
- the fixed point format is a purely linear format. Therefore, additions and subtractions with fixed-point numbers are simple, while multiplications are more complicated.
- Floating-point numbers are a hybrid between logarithmic and linear representations. Therefore, addition, subtraction, multiplication, and division are all complicated in floating-point format.
- a purely logarithmic format may be used with an appropriate algorithm to solve the addition and subtraction problem associated with the logarithmic format.
- Equation (2) a 32-bit pure logarithmic format then looks substantially identical to the (S8.23) IEEE floating-point representation. Pure logarithmic: S xx...xx.xx...xx (-1) ⁇ 2 ⁇ x - x - x - x IEEE: S EE...EE.MM...MM (-l) S x(1 + 0.MM...MM)x2 "EE - EE
- the whole part of log to the base-2 may be offset by 127 as in the IEEE format so that the number 1.0 is represented in either format by: 0 01111111.0000000000000000000.
- an offset of 128 could be used, in which case 1.0 is represented by: - 0 10000000.0000000000000000000.
- 127 or 128 as the preferred offset is a matter of implementation.
- the all zeros pattern may be defined as an artificial true zero, as in the IEEE floatingpoint format.
- the smallest representable value is: 0 00000000.0000000000000000000, which for base-2 represents a logarithm equal to -127, which is 5.88 x 10 ⁇ 39 . If desired, this all- zeros format may, as in the IEEE case, be reserved to represent an artificial true zero. In this scenario, the smallest representable number is: 0 00000000.00000000000000000000001 , which is a base-2 logarithm equal to almost -127, which still corresponds to approximately 5.88 x 10 '39 .
- the quantization accuracy of the IEEE mantissa which has a value between 1 and 2, is the LSB value of 2 "23 , an accuracy of between 2 "23 and 2 "24 (0.6 to 1.2 x 10 "7 ).
- logarithms to other bases such as base-e
- real numbers may then be stored in 32-bit sign plus logmagnitude format denoted by: S xxxxxxx . xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, or (S7.24) for short.
- the logmagnitude part may be a signed, fixed-point quantity wherein the leftmost bit is the sign bit, not to be confused with the sign S of the represented number.
- Equation (3) represents the quantization accuracy of the base-e log representation.
- Figure 2 compares the IEEE Floating-point Format (with +127 offset) with the base-e format (with +64 offset) and the base-2 format (with +127 offset). Choosing the base is in fact equivalent to determining a trade-off between dynamic range and precision within the fixed word length, and is equivalent to moving the point in steps of less than one whole bit.
- Interpolation Method Interpolation may be used to reduce the number of values to be stored in the look-up table. To facilitate later discussions, the following examines interpolation in greater detail.
- the accuracy of the linear interpolative term F a '(x 0 ) must also be of the order 2 "25 . Because F a '(x 0 ) is multiplied by dx, which is less than 2 "11 , the accuracy of F a '(x 0 ) must be 2 "14 .
- a 14 x 13 bit multiplier is required to form dx -F a ' .
- Such a multiplier inherently performs 13 shift-and-add operations, and thus includes approximately 13 logic delays. The complexity and delay of a multiplier may be reduced somewhat by using Booth's algorithm, however the conventional multiplier may be used as a benchmark.
- Figure 3 illustrates an exemplary block diagram of a conventional ALU that implements the above-discussed linear interpolation.
- A log e (a)
- B log ⁇ (b). Because there may be a need to do backwards interpolation for subtraction to avoid singularity, as discussed below, Figure 3 illustrates interpolation from X M , a value of x 0 one more than the most significant 16 bit part of x.
- Look-up table 30 for F a contains the value of F a at X M + 1 , therefore, and the value for F a ' contained may be the value at the median of the interval, namely the value of F a ' computed at X M + 0.5.
- Multiplier 40 multiplies the 14-bit F a '(X M ) value by the 13 bit two's complement of the least significant 13 bits of x, X L .
- multiplier 40 is configured so that the result is the 27- bit product of F a '(X M ) and ( X L +1 L S B )-
- the LSB of the 27-bit product may be input as the borrow to subtractor 50, and the remaining 26 bits subtracted from the 26-bit F a '(X M ) value to yield the interpolated value to 26 bits, which is then added to the larger of A and B in output adder 20, rounding up the result C to 31 bits of logmagnitude by means of a carry-in bit of '1 '.
- F s '(x) T ⁇ 7. 0) which tends to infinity as x tends to 0.
- Iterative Logarithmic Operations As an alternative to the above-described interpolation process and to reduce the storage requirements, an iterative solution may be used.
- the iterative solution uses two relatively smaller look-up tables to compute a logarithm output using an iterative process based on tabulated functions.
- the logadd function table also referred to herein as the F a -table, stores 50 values based on Equation (4) for base-10 and for values of x between 0.0 and 4.9 in steps of 0.1.
- Equation (12) generically defines the function and correction tables for any base q.
- the two-table iterative process comprises accepting a 3-step process in return for avoidance of multiplications and a 100-fold reduction in the look-up table sizes.
- the total number of logic delays required for three iterations may in fact be less than the number of logic delays through the repetitive add/shift structure of a multiplier.
- the above-discussed reduction of look-up table size is useful when silicon area and/or precision are of primary importance.
- the value for log-io(3 - 2) may be computed similarly. The starting approximation is the log of the larger number i.e. 0.4771.
- the function is zero to 12 binary places for r > 13, so again a 4-bit whole part of r only need be considered. If one bit is used for a sign, then the logmagnitude part is only 15 bits long, for example 4.11 format or 5.10 format, and the above figures may be adjusted accordingly.
- a direct look-up table for the function is excessively large. For example, to give accuracy and dynamic range comparable to the IEEE 32-bit floating-point standard, A and B should have 7-bit whole parts, 24-bit fractional parts and a sign bit each in the base-e case.
- one implementation of the invention comprises splitting r into most significant (MS) and least significant (LS) parts, r M and r , respectively.
- MS and LS parts address two much smaller tables, F and G, respectively, as will be described below.
- the MS portion represents a "rounded-up" version of the input value, while the LS portion represents the difference between the rounded-up version and the original full argument value.
- r M be the most significant 14 bits of r ⁇ 32 and r L be the least significant 15 bits of r, as shown in Equation (14).
- r M xxxxx .
- xxxxxxxxx r L OOOOO.OOOOOOOOOOOOOOOOOxxxxxxxxxxxxxxxxx
- r and r may be denoted as (5.9) and (15) for short.
- Other splits of r into most and least significant bit parts are equally useable by obvious modifications to the method, and some considerations for preferring a particular split, discussed further below, concern the ability to re-use the same F and G tables for other wordlengths (e.g., 16 bits) or for complex operations.
- x be the value of r M augmented by the greatest possible value of r L , i.e., 00000.00000000011111111111 111. It will be realized that this is just the original r-value with its least significant 15 bits set to 1's.
- the desired answer comprises the sum of functions: log e (1 + e "rM+ ), log ⁇ (1 + e- r'M+ ), (19) log ⁇ (1 + e- r"M+ ), etc., that depend only on the most significant 14 bits of their respective r-arguments, which may then be obtained from a look-up table of only 16,384 words.
- the prime(s) used to qualify the denoted r-values do not represent a derivative.
- the succession of r-values r, r', r", etc. is derived by accumulating to the preceding value the value just obtained from the logadd function look-up table (F a ) and adding a value depending on the least significant 15-bits of r, namely the value
- a correction look-up table i.e., the G-table, which has 32,768 words because r L " is a 15-bit value.
- the stored values are computed from r M + and r "
- the function and correction look-up tables may be directly addressed by r M and r , respectively.
- a positive correction value may be stored in the G-table. This positive correction value is added to the previous r-argument, instead of storing a negative value and subtracting it.
- the minimum correction value of the G-table may be subtracted from the stored values to reduce the number of bits stored, and added back whenever a value is pulled from the table. For base-2, a value of 8 is appropriate for the minimum correction value and does not even need to be added back in some implementations.
- the iteration is then: 1. Initialize the output accumulator value C to the larger of A and B. 2. Initialize r to A - B if A is larger, or B - A if B is larger. 3. Split r into r and r . 4. Look-up F a (r M + ) and G(r L " ) as addressed by r M and r , respectively. 5.
- the desired answer comprises the sum of functions: log e (1 - e- rM+ ), log e (1 - e- r'M+ ), (24) log e (1 - e 'r"M+ ), etc., that depend only on the most significant 14 bits of the respective full wordlength r-values, which may be given by a look-up table of only 16,384 words.
- the look-up tables for logsub may be constructed to be directly addressed by r M and r L although the stored values are computed from r M + and r L ⁇ .
- the prime(s) used to modify the denoted r-values do not represent a derivative.
- STOPJTHRESHOLD is chosen so that any contribution from a further iteration will be less than half an LSB. This occurs at 17.32 for base-e (can use 18) with 24 binary places after the point, or at 24 for base-2 with 23 binary places after the point.
- a base less than base-2 may be found that gives a STOPJTHRESHOLD of 31, which would then use an F-function defined over the whole address space addressable by the selected MSBs of r.
- a base greater than base-e may be found that gave a STOPJTHRESHOLD of 15, with the same property.
- the practical advantages of base-2 seem greater than any advantage of using a full address space for the F-tables.
- STOPJTHRESHOLD is simply 1 or 2 greater than the number of binary places of the log-representation after the point.
- the accuracy after a finite number of iterations is improved if the final argument used to address the F-table, e.g., r ⁇ + , is rounded down rather than up from r M ' . If the two-table iterative process always performs a fixed number of iterations, or if the process otherwise identifies the final iteration, the argument of F may be rounded down on the final iteration.
- the final iteration may be identified, for example, by r being within a certain range (-6 for base-e, or ⁇ 8 for base-2) of STOPJTHRESHOLD, indicating that the next iteration is bound to exceed STOPJTHRESHOLD.
- the address to the F-table may be reduced by 1 if the leftmost bit of r is zero on the final iteration.
- the final F-table contents are simply computed for a rounded-down argument.
- the only difference between the LOGSUB and LOGADD algorithms is the use of the look-up table F s rather than F a .
- both are of size 16,384 words, they may be combined into a single function F-table with an extra address bit to select the + or - version, denoted by F(r M ,opcode), where the extra argument "opcode" is the extra address bit having the value 0 or 1 to indicate whether to apply the LOGADD or LOGSUB algorithm.
- the peripheral logic i.e. input and output accumulators and adders/subtractors
- it costs little to duplicate the peripheral logic to form an independent adder and subtractor.
- Yet another possibility considered below is to exploit the similarity between the functions F a and -F s .
- r M + may comprise either r M augmented by the largest possible value of r L (0.00000000011111111111 ) or may comprise r M augmented by 0.000000001.
- the function can be constructed as a look-up table addressed by X M .
- F a (X M ) F S (X M ) for large values of X M and, for 32-bit arithmetic and an argument range between 16 and 24, may both be approximated adequately by: where X M ⁇ is the whole part (bits to the left of the point) of X M and X 2 is the fractional part, i.e. bits to the right of the point.
- the function in brackets may be stored in a small exponential lookup table.
- a right shifter may implement the whole part so that only the fractional bits need address the exponential function, reducing the table size.
- Figure 4 illustrates the similarities between the exponential approximation (E) and the true function values (F a , F s ).
- Figure 4 also illustrates the approximate silicon area required to implement the function tables for logadd and logsub operations.
- a base-2 logarithmic scale as the vertical scale means the height represents the wordlength of a binary value.
- the horizontal scale represents the number of such values. Therefore, the area below the curve represents the number of bits of ROM required to store the curve values.
- the exponential function E is cyclic however, its values repeating except for a right shift for every increment of 1. Thus, only one cycle addressed by the fractional part XM 2 need be stored and the result shifted a number of places given by X M ⁇ .
- the exponential function E therefore, requires very small tables.
- the minimum value of G(X L ) depends on the split of the 31 -bit logmagnitude between X M and X .
- X is of the form 5.8 then X is of the form O.OOOOOOOOxxxxxxxxxxxxx and less than 2 "8 .
- the minimum value of G 7.5
- the minimum value of G 9.5. Because the value of X increases by at least the value of G at each cycle, X will exceed 24 within 3 cycles as long as the three G values are on average greater than 8. In the following, the assumption of 32-bit arithmetic is maintained for the purposes of illustration.
- a base value of 8 may be subtracted from the stored values.
- radio communication signals may utilize both real and complex number representations.
- typical applications for real and complex signal processing include radio signal processing.
- signals received at an antenna contain radio noise, and can be represented by a sequence of complex-number samples. It is usually desirable to recover information using the weakest possible signals relative to the noise, so as to maximize range.
- the complex representation of samples gathered from the antenna therefore does not require high precision digitization, as it is not useful to employ quantizing accuracy much better than the expected noise levels. After processing the complex noise signal to recover information and correct errors, however, the noise is hopefully removed; the resulting information may now require a higher precision representation.
- speech may be represented by a sequence of real-number samples, but because the processed raw antenna signal raises the fidelity of the signal to noise ratio of the speech, a higher precision digital representation may be required.
- a signal processor that provides both high precision arithmetic on real numbers and lower precision arithmetic on complex numbers is therefore of interest in radio applications such as cellphones and cellphone systems.
- Such a processor may comprise a memory for program storage, a data memory for storing the real and complex data being processed, a real and complex Arithmetic/logic Unit (ALU), and input and output arrangements that may include analog-to-digital and digital-to-analog converters.
- ALU Arithmetic/logic Unit
- the data memory stores words of the same word length for which the ALU is designed; it is logical to use the same word length for real and complex numbers so that they can be stored in the same memory.
- the present invention does not require this.
- 16-bit words are sufficient for speech processing. Therefore, it is of interest to determine if a 16-bit complex representation provides adequate dynamic range for representing noise signals received by the antenna. This was proven to be the case in the first digital cellphones manufactured and sold by L.M. Ericsson in Europe and by its US affiliate Ericsson- GE in the 1988-1997 time period, which used a 15-16 bit logpolar representation comprising an 8-bit logamplitude and a 7 bit phase. These products also used direct digitization of the radio signal into complex logpolar form according to U.S.
- Patent Numbers 5,048,059; 5,148,373 and 5,070,303 which were implemented in combination, and are hereby incorporated by reference.
- any base may be used for the logarithm of the amplitude. If base-e is used, the logamplitude expresses the instantaneous signal level in Nepers. As known in the art, 1 Neper equals 8.686 decibels (dB) approximately, so an 8-bit logamplitude in the format xxxx.xxxx represents a signal level varying over a range of 0 to 15 and 15/16ths Nepers, -139 dB. The quantizing error is half the least significant bit or +/- 1/32 of a Neper or 0.27 dB, which is a percentage error of approximately 3.2%.
- this error is uniformly distributed between +/- 3.2% and has an RMS value of 1/3 rd of the peak, i.e. around 1%.
- the quantizing noise is thus 1/100 lh of the signal level, i.e. 40 dB below the signal level, and may be less if over-sampling is used - i.e. sampling at greater than the Nyquist rate of 1 sample per second per Hz of signal bandwidth.
- An advantage of logpolar representation is that this quantizing accuracy stays constant over the whole range of signal levels.
- a quantizing noise of -40 dB with a total dynamic range of 139 dB is considered more than adequate for most radio signal applications.
- Figure 5A illustrates how the complex plane is segmented into elemental areas using logpolar representation in contrast with the Cartesian representation of Figure 5B.
- the white 'hole" in the middle of the logpolar chart is where the signal level is less than 0000.0000 Nepers while the outer circle is the highest signal level of 1111.1111 Nepers. If the lower limit of 0000.0000 is chosen to be 10 dB below radio noise level, this ensures that noise excursions will be adequately represented, and that the statistics of the noise are not unduly corrupted by the number representation. Thus, the outer circle then represents a signal level of 129 dB over noise, which is unlikely to be exceeded even by the strongest signals.
- the finite number of bits used to represent phase angle also causes quantizing error and noise.
- logpolar format of xxxx.xxxxx for logamplitude and O.xxxxxxx (modulo 2 ⁇ ) for phase is suggested when a 16-bit wordlength is used.
- the quantizing noise of the xxxx.xxxxx format is reduced by log e (2) or 3.18 dB to -49 dB.
- phase-first format provides a logical format for portraying this.
- phase-first format provides a logical format for portraying this.
- add and subtract little distinction can be made between add and subtract, as combining numbers differing by 0 degrees (i.e. adding) or 180 degrees (i.e. subtracting) are just two points within the whole range of relative phase angles to be considered.
- the product of two complex numbers is obtained by fixed point addition of the logamplitude part (taking note of underflow or overflow) and fixed point addition of the phase parts ignoring overflow, as the angle is computed modulo-2 ⁇ .
- the rollover upon binary addition exactly corresponds to modulo-2 ⁇ arithmetic, as required for phase computations.
- the quotient of two logpolar complex numbers is obtained by fixed point subtraction.
- Equation (30) represent two Cartesian complex numbers, zi and z 2 , in logpolar format for base-e, Z ⁇ and Z 2 .
- the look-up table may have an optimum structure. For example, for 16- bit logpolar arithmetic, it may be useful to store, in pairs, values for addresses differing by ⁇ in their ⁇ -component, giving a 16,384 x 32-bit ROM, or half that if conjugate symmetry is exploited. A complex logarithmic addition and a complex logarithmic subtraction of the same pair of input values may then be done simultaneously in one cycle. Simultaneous adds and subtracts of a pair of values in one cycle are known as Butterfly operations, and are typically performed in a Butterfly circuit.
- FIG. 6 illustrates an exemplary ALU comprising a low-precision complex Butterfly circuit 100.
- Butterfly circuit 100 comprises magnitude accumulator 102, phase accumulator 104, selector 106, look-up table 108, sum combiner 110, and difference combiner 112.
- Ri is greater than R 2
- Magnitude accumulator 102 and phase accumulator 104 output the computed differences to look-up table 108.
- Look-up table 108 contains logarithmic values for complex numbers of all angles. The logmagnitude difference and the phase difference address look-up table 108 to provide two logpolar values F(Z) and F(Z + ⁇ ). If desired, this table may be halved in size by always using a positive angular argument and conjugating the output F(Z) values when the original angular address is negative.
- Magnitude accumulator 102 also controls selector 106 to select either or Z 2 as Z , based on the larger of Ri and R 2 .
- Selector 106 provides Z L to sum combiner 110 and difference combiner 112.
- Combiners 110, 112 add Z L to the two look-up table outputs F(Z) and F(Z + ⁇ ) to yield the sum output logarithm and the difference output logarithm associated with the two input complex numbers, thereby performing a complex Butterfly in one operation.
- Butterfly operations are often useful for performing Fast Fourier Transforms (FFTs) needed for various signal processing operations, such as Orthogonal Frequency Division Multiplex (OFDM) signal decoding.
- FFTs Fast Fourier Transforms
- FIG. 7 illustrates the implementation of an exemplary 16-point FFT using multiple complex butterfly circuits 100, e.g., those shown in Figure 6.
- Butterfly circuit 100 combines pairs of values, selected 8 apart in the 16-element array. Selected sum and difference outputs are then modified in their angular part to effect the complex rotations known as twiddles.
- the angles are modified by modulo-2 ⁇ addition of the bit patterns illustrated. Modulo-2 ⁇ addition is simply modulo-128 addition when 7-bit angular parts are used, as illustrated.
- such an FFT may be implemented using a single column of 8 butterfly circuits 100 successively to implement each of the four columns of computations in turn. Further, a single butterfly circuit 100 may be repeatedly used 32 times to perform the FFT. These options depend on the desired trade-off between speed and size or cost.
- the advantage of logpolar quantization compared to Cartesian representation of complex values may be realized by considering the problem of representing a signal to, say 1% accuracy, when the signal can appear anywhere over a 60 dB dynamic range. This may arise in receivers for burst-mode transmissions that provide the receiver with no warning about the expected signal level.
- a complex number format fitting within the 32-bit wordlength of the high-precision real format is for example illustrated by (0.xxxxxxxxxxxxxxx; xxxxx.xxxxxxxxxxxx) or (0.15; 5.12) for short in the phase-first format.
- Choosing the number of bits of phase to be 2 or 3 more than the number of bits to the right of the binary point for logamplitude gives similar quantizing error for phase and amplitude.
- the least significant bit of log(r) is a displacement in the radial direction that is slightly greater than the displacement of one least significant bit of theta in the tangential direction.
- the quantizing noise is more than 80 dB below the signal level, for all signal levels. This is more than adequate for radio signal processing in normal applications, and may be useful for simulation when it is desired to ensure that quantizing effects are negligible, or for critical applications such as interference cancellation with extreme differences between large unwanted and small wanted signals.
- the result is the value having the larger logmagnitude if the difference in their logmagnitudes is so great that the least significant bits of log(r) or ⁇ will not be affected.
- ⁇ may be limited to the range 0 to just less than %, and is thus of the form O.Oxxxxxxxxxxxxxxxx, having only 14 variable bits.
- ⁇ 0.10000000000... for the angular difference. This value is exactly equivalent to real subtraction of the logmagnitudes, the angle of the result being one of the two input argument angles, and is best performed by using the F s function for real arithmetic.
- Z the value of Z really only needs 30 variable bits.
- Z M + Z M + dZ, where dZ has a real part of 0.0001 or 0.000011111111 and an imaginary part of 0 or 0.111111111111 , i.e., 1 LSB less than 2 ⁇ .
- Z ' L is defined as Z M + - Z.
- the function log e [1 - e "Z + j depends only on the 8 most significant bits of R and the 7 most significant bits of ⁇ , and therefore may be pre-calculated and stored in a 32,768-word table + directly addressed by Z M . Thus, it is unnecessary to form Z M during processing.
- the function - log ⁇ (l - e "Zu" ) depends only on the 7 LSBs of R and the 8 LSBs of ⁇ and can also be pre-computed and stored as a 32,768-word look-up table, the G-function for complex arithmetic.
- two extra address bits may be provided to select the table for real addition, the table for real subtraction, and the table for complex addition/subtraction.
- the function may be denoted by F(r m , opcode) where r M is 14 of the 15 bits of the argument for the complex case and the 15 th bit is part of the 2-bit opcode.
- the two-bit opcode is thus allocated as shown in the table below: 00 Real addition 01 Real subtraction 1x Complex addition/subtraction, where x is the 15 th bit of the main argument
- the ALU stores a selected portion of a look-up table for each stage of the pipeline. At least one stage of the pipeline executes the selected portion of the look-up table using a stage input represented in a logpolar format to generate a partial output associated with the stage. By combining the partial outputs, the multi-stage pipeline generates the logarithmic output.
- ⁇ ⁇ , it can be seen that the operation is equivalent to real subtraction. The result in this case depends only on R, for which a special look-up table may be used in a one- shot operation.
- the existing look-up table for real subtraction may be used. This may be done by performing the real subtraction algorithm using the 14 bits Oxxxx.xxxxxxxxx of R to address the F s part of the F-table and the remaining three bits of R extended with 12 zeros to be the initial value of R . The real iteration is then performed apart from accumulating only the desired bits of precision in the output register corresponding to the reduced complex precision, and use of an earlier termination criterion than R > 18. For example R > 9 could suffice.
- Common ALU for Real and Complex Logarithmic Arithmetic Complex and real numbers may be used to represent various signals within a single system.
- conventional processors may include separate ALUs - one for implementing complex logarithmic arithmetic and one for implementing real logarithmic arithmetic.
- two separate ALUs take up considerable silicon space.
- such ALUs may require prohibitively large look-up tables. Therefore, it would be beneficial to have a single ALU that implements both real and complex logarithmic arithmetic with reasonably sized look-up tables.
- Figure 8 illustrates one exemplary ALU 200 for performing both real and complex logarithmic arithmetic.
- ALU 200 includes input accumulator 210, look-up controller 220, and output accumulator 230.
- input accumulator 210 computes a difference between two real or complex inputs
- look-up controller 220 and output accumulator 230 collectively generate an output logarithm based on the real or complex output of input accumulator 210 using a real look-up table or a complex look-up table depending on the input.
- Two real or complex numbers A and B represented in a logarithmic format to be added or subtracted are presented in succession to input accumulator 210.
- ALU 200 loads the first number A into input accumulator 210 and output accumulator 230.
- the second number, B, with its angular part ⁇ or associated sign changed 180 degrees for subtraction, is then presented to the input accumulator 210.
- output accumulator 230 holds the larger of A and B, while input accumulator 230 holds
- the quantity X equates to the quantity r in the foregoing equations for real numbers, and equates to the quantity Z in the foregoing equations for complex numbers.
- look-up controller 220 determines two outputs, partial output L and correction output Y.
- Look-up controller 220 outputs partial output L to output accumulator 230 along with an ADD pulse, causing the accumulation of partial output L with the existing contents of output accumulator 230.
- Look-up controller 230 outputs correction output Y to input accumulator 210 along with an ADD pulse causing the accumulation of Y with the existing contents of input accumulator 210, thus creating a new value of X.
- the cycle repeats until Y meets or exceeds a predetermined value. Once Y meets or exceeds the predetermined value, the cycle stops, look-up controller 220 generates a READY signal indicating that the desired answer is available from output accumulator 230 as the output C, and the state of the ALU 200 returns to the initial state, where it waits for a new pair of A and B input values.
- Figure 9 provides additional details of one exemplary look-up controller 220 for real or complex logarithmic arithmetic operations.
- Look-up controller 220 includes an F-table 222, a G- table 224, combiner 226, and sequencer 228.
- F-table 222 and G-table 224 include a complex look-up table for determining the logarithms of complex numbers and/or a real look-up table for determining the logarithms of real numbers. While the F-table 222 and G-table 224 illustrated in Figure 9 include both complex and real look-up tables, those skilled in the art will appreciate that F-table 222 and/or G-table 224 may include only one of the complex and real look-up tables.
- the start strobe is applied to sequencer 228 as the first 32-bit logarithmic quantity A is applied to accumulators 210 and 230.
- Sequencer 228 provides a load 1 pulse to input accumulator 210 and a load 2 pulse to output accumulator 230, causing them to store the 32-bit A-quantity.
- a second strobe is applied to sequencer 228 as the second 32-bit logarithmic quantity B is applied to the accumulators 210, 230.
- Sequencer 228 provides an accumulate pulse to input accumulator 210. If input accumulator 210 outputs a "borrow" pulse, indicating that the logmagnitude of B was greater than the logmagnitude of A, sequencer 228 outputs another load 2 pulse to output accumulator 230, causing it to store the B value including the sign or phase of the number B in output accumulator 230, overwriting A.
- the most significant part of X, X M is applied to the F look-up table 222, while the least significant part of X, X L , is applied to the G look-up table 224.
- the sign logic part of input accumulator 210 XOR's the signs of the numbers A and B to determine whether the F a part of look-up table 222 should be used (same signs imply addition) or whether F s should be used (different signs imply subtraction). The XOR of the signs thus forms an extra address bit to the F table 222.
- the F s part of the look-up table 222 stores a negative value that is appropriately accumulated in accumulators 210 and 230 without needing to indicate separately whether a logaddition or logsubtraction operation is in progress. Otherwise, in order to save storing the sign bit of all F s , it may be omitted from the look-up table and the value of the +/- bit supplied from the sign logic may be used, as all F a values are positive and all F s values are negative. Storing the true negative value of F s less the sign bit is different than negating the value and storing a positive value, which would then have to be subtracted from output accumulator 230 and combiner 226. When look-up table size compression is considered, it will be seen that the latter has advantages. Look-up table compression is discussed further in U.S. Patent Application Serial No. (Attorney Docket No.
- the input accumulator 210 comprises two independent parts, an R-part 210A and a ⁇ -part 210B.
- the same input accumulator 210 as is used for real arithmetic may be used for complex arithmetic if the carry output from the ⁇ -part 210B of the input accumulator is prevented from propagating into the R-part 210A, or vice versa in the case of ⁇ -first bit order.
- the bits that address the complex F-table 222 come partly from ⁇ and partly from R. If ⁇ occupies the position occupied by the LSBs of R in the real-number case, then the connections between the input accumulator and the F-table 222 must be changed for complex operation.
- the most significant bits of ⁇ would swap places with the least significant bits of R in this implementation, so that the most significant bits of R and ⁇ would occupy the bit positions occupied by the most significant bits of R in the real case, and the least significant bits of R and ⁇ would occupy the bit positions occupied by the least significant bits of R in the real case.
- To keep the R-bits connected such as to form an R-adder 226A and the ⁇ bits likewise to form an independent ⁇ -adder 226B then requires that the carry bits of three adder stages be rerouted for complex as compared to real. If this is done, then to avoid crossing of connections from real to complex, the output accumulator 230 and adder 226 is configured likewise.
- Figure 11 A shows a straightforward allocation of bits 1 to 32 to a real logarithmic value starting with the sign bit S in position 1 followed by a 31 bit logmagnitude in format 8.23 and showing the split into most significant part X M of format 5.9 and least significant part XL in format 0.14.
- Underneath is shown a straightforward allocation of bits 1-32 to a logamplitude in format 5.12 and a phase angle in format 0.15, and the division of the logamplitude into a most significant part R in format 4.4 and a least significant 8-bit R L , while the phase is divided into 7-bit most and least significant parts with the bit corresponding to ⁇ shown separately.
- a number of misalignments between real and complex are evident from Figure 11 A.
- Figure 11 C shows a bit allocation that achieves the same bits addressing the F-table 222 for both real and complex.
- the sign bit S and the most significant part X M are placed contiguously to address the F a and G tables for real arithmetic, making a 15-bit address altogether, and the same 15-bits in the complex case comprise the 8-bit R M and 7-bit ⁇ M . Likewise the 15 bits comprised of R and ⁇ L overlap the 14 bits of X L) which address the G-table 224 ROM. In the real case, the bit number 2 is just ignored when addressing the G-table 224 in real, as it is half the size of the complex table.
- Figure 11 C also shows that the bit order within the most significant and least significant parts is arbitrary but can be chosen to maximize the number of carry connections from one adder stage to the next in significance that remain unchanged between real and complex operation.
- a simple solution is not to attempt to combine the complex and real F-table 222 into one large table, which would therefore have to use the same address bits in both cases, but to use separate tables that are connected to the appropriate address bits, selected from input accumulator 210 differently for the real and complex cases.
- separate address- decoders can be used for real and complex.
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007513851A JP2008502037A (en) | 2004-06-04 | 2005-06-02 | Complex logarithm ALU |
EP05769168A EP1769334A1 (en) | 2004-06-04 | 2005-06-02 | Complex logarithmic alu |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57738604P | 2004-06-04 | 2004-06-04 | |
US60/577,386 | 2004-06-04 | ||
US11/142,760 US7689639B2 (en) | 2004-06-04 | 2005-06-01 | Complex logarithmic ALU |
US11/142,760 | 2005-06-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2005119426A1 true WO2005119426A1 (en) | 2005-12-15 |
Family
ID=35450233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2005/005912 WO2005119426A1 (en) | 2004-06-04 | 2005-06-02 | Complex logarithmic alu |
Country Status (4)
Country | Link |
---|---|
US (1) | US7689639B2 (en) |
EP (1) | EP1769334A1 (en) |
JP (1) | JP2008502037A (en) |
WO (1) | WO2005119426A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152410A (en) * | 2006-12-15 | 2008-07-03 | Advanced Telecommunication Research Institute International | Arithmetic processor and program |
WO2023135033A1 (en) * | 2022-01-13 | 2023-07-20 | Robert Bosch Gmbh | Radar system and method for operating a radar system |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10985811B2 (en) | 2004-04-02 | 2021-04-20 | Rearden, Llc | System and method for distributed antenna wireless communications |
US11451275B2 (en) | 2004-04-02 | 2022-09-20 | Rearden, Llc | System and method for distributed antenna wireless communications |
US11394436B2 (en) | 2004-04-02 | 2022-07-19 | Rearden, Llc | System and method for distributed antenna wireless communications |
US7558582B2 (en) * | 2004-04-21 | 2009-07-07 | Agilent Technologies, Inc. | Method and system for collecting and surveying radio communications from a specific protected area of operations in or around a compound |
US7353008B2 (en) * | 2004-04-21 | 2008-04-01 | Agilent Technologies, Inc. | Method and system for optimizing decibel data conversion |
US7809535B2 (en) * | 2006-09-29 | 2010-10-05 | D. E. Shaw Research, Llc | Numerical techniques for dynamics simulation |
US9547327B2 (en) * | 2006-11-09 | 2017-01-17 | Alan N. Willson, Jr. | Excess-fours processing in direct digital synthesizer implementations |
WO2011013251A1 (en) * | 2009-07-31 | 2011-02-03 | 株式会社 東芝 | Signal receiving apparatus and communication system |
US11190947B2 (en) | 2014-04-16 | 2021-11-30 | Rearden, Llc | Systems and methods for concurrent spectrum usage within actively used spectrum |
US11189917B2 (en) * | 2014-04-16 | 2021-11-30 | Rearden, Llc | Systems and methods for distributing radioheads |
US10194346B2 (en) | 2012-11-26 | 2019-01-29 | Rearden, Llc | Systems and methods for exploiting inter-cell multiplexing gain in wireless cellular systems via distributed input distributed output technology |
US9329936B2 (en) | 2012-12-31 | 2016-05-03 | Intel Corporation | Redundant execution for reliability in a super FMA ALU |
US10164698B2 (en) | 2013-03-12 | 2018-12-25 | Rearden, Llc | Systems and methods for exploiting inter-cell multiplexing gain in wireless cellular systems via distributed input distributed output technology |
RU2767777C2 (en) | 2013-03-15 | 2022-03-21 | Риарден, Ллк | Systems and methods of radio frequency calibration using the principle of reciprocity of channels in wireless communication with distributed input - distributed output |
GB2513884B (en) | 2013-05-08 | 2015-06-17 | Univ Bristol | Method and apparatus for producing an acoustic field |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) * | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US8750365B1 (en) | 2013-11-27 | 2014-06-10 | Redline Communications, Inc. | System and method for multi-threaded OFDM channel equalizer with coprocessor |
US8711921B1 (en) * | 2013-11-27 | 2014-04-29 | Redline Communications, Inc. | System and method for multi-threaded MIMO OFDM channel equalizer |
US8711920B1 (en) * | 2013-11-27 | 2014-04-29 | Redline Communications, Inc. | System and method for multi-threaded OFDM channel equalizer |
US11290162B2 (en) | 2014-04-16 | 2022-03-29 | Rearden, Llc | Systems and methods for mitigating interference within actively used spectrum |
GB2530036A (en) | 2014-09-09 | 2016-03-16 | Ultrahaptics Ltd | Method and apparatus for modulating haptic feedback |
MX2017010252A (en) | 2015-02-20 | 2018-03-07 | Ultrahaptics Ip Ltd | Algorithm improvements in a haptic system. |
KR102515997B1 (en) | 2015-02-20 | 2023-03-29 | 울트라햅틱스 아이피 엘티디 | Perception in haptic systems |
CN104991756B (en) * | 2015-06-19 | 2018-04-17 | 南京航空航天大学 | A kind of floating data guard method of data link transmission process |
US10818162B2 (en) | 2015-07-16 | 2020-10-27 | Ultrahaptics Ip Ltd | Calibration techniques in haptic systems |
WO2017196204A1 (en) | 2016-05-13 | 2017-11-16 | Oracle International Corporation | Methods for constructing lookup tables for division and square root implementations |
US10268275B2 (en) | 2016-08-03 | 2019-04-23 | Ultrahaptics Ip Ltd | Three-dimensional perceptions in haptic systems |
ES2663168B2 (en) * | 2016-10-10 | 2018-08-16 | Universidad De Sevilla | Digital electronic circuit for the calculation of sines and cosines of multiples of an angle |
US11531395B2 (en) | 2017-11-26 | 2022-12-20 | Ultrahaptics Ip Ltd | Haptic effects from focused acoustic fields |
EP3729418A1 (en) | 2017-12-22 | 2020-10-28 | Ultrahaptics Ip Ltd | Minimizing unwanted responses in haptic systems |
EP3787806A1 (en) | 2018-05-02 | 2021-03-10 | Ultrahaptics Ip Ltd | Blocking plate structure for improved acoustic transmission efficiency |
US11098951B2 (en) | 2018-09-09 | 2021-08-24 | Ultrahaptics Ip Ltd | Ultrasonic-assisted liquid manipulation |
ES2762747A1 (en) * | 2018-11-22 | 2020-05-25 | Univ Sevilla | ELECTRONIC DEVICE CALCULATOR OF TRIGONOMETRIC FUNCTIONS (Machine-translation by Google Translate, not legally binding) |
ES2762745B2 (en) * | 2018-11-22 | 2021-11-26 | Univ Sevilla | ELECTRONIC DEVICE CALCULATING TRIGONOMETRIC FUNCTIONS AND USES OF THE SAME |
EP3906462A2 (en) | 2019-01-04 | 2021-11-10 | Ultrahaptics IP Ltd | Mid-air haptic textures |
US11842517B2 (en) | 2019-04-12 | 2023-12-12 | Ultrahaptics Ip Ltd | Using iterative 3D-model fitting for domain adaptation of a hand-pose-estimation neural network |
CN114375442A (en) * | 2019-09-24 | 2022-04-19 | 国立大学法人东京工业大学 | Embedded small instruction set processor |
EP4042413A1 (en) | 2019-10-13 | 2022-08-17 | Ultraleap Limited | Dynamic capping with virtual microphones |
US11374586B2 (en) | 2019-10-13 | 2022-06-28 | Ultraleap Limited | Reducing harmonic distortion by dithering |
US11693625B2 (en) * | 2019-12-04 | 2023-07-04 | Flex Logix Technologies, Inc. | Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation |
US11715453B2 (en) | 2019-12-25 | 2023-08-01 | Ultraleap Limited | Acoustic transducer structures |
US11816267B2 (en) | 2020-06-23 | 2023-11-14 | Ultraleap Limited | Features of airborne ultrasonic fields |
US11886639B2 (en) | 2020-09-17 | 2024-01-30 | Ultraleap Limited | Ultrahapticons |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5572252A (en) * | 1978-11-24 | 1980-05-30 | Nippon Gakki Seizo Kk | Mixing circuit for digital logarithmic value signal |
US4433604A (en) * | 1981-09-22 | 1984-02-28 | Texas Instruments Incorporated | Frequency domain digital encoding technique for musical signals |
US4747067A (en) * | 1986-10-14 | 1988-05-24 | Raytheon Company | Apparatus and method for approximating the magnitude of a complex number |
SE463540B (en) | 1988-09-19 | 1990-12-03 | Ericsson Telefon Ab L M | SEAT TO DIGITALIZE ANY RADIO SIGNALS IN A RADIO COMMUNICATION SYSTEM AND DEVICE TO EXERCISE THE SET |
SE463584B (en) | 1989-04-20 | 1990-12-10 | Ericsson Telefon Ab L M | SET AND DEVICE PROVIDES ANY DIGITAL SEATING OF THE TIME OR PHASES OF A SIGNAL PULSE TAG |
JPH03241423A (en) * | 1990-02-20 | 1991-10-28 | Anritsu Corp | Vector log arithmetic circuit |
US5070303A (en) | 1990-08-21 | 1991-12-03 | Telefonaktiebolaget L M Ericsson | Logarithmic amplifier/detector delay compensation |
US5914990A (en) * | 1995-11-22 | 1999-06-22 | Telefonaktiebolaget Lm Ericsson | Filtering in a receiver that uses log-polar signal processing |
JPH09292977A (en) * | 1996-04-26 | 1997-11-11 | Hitachi Ltd | Approximate value generation circuit for logarithmic function |
US5944774A (en) | 1997-09-26 | 1999-08-31 | Ericsson Inc. | Methods apparatus and computer program products for accumulating logarithmic values |
US6711596B1 (en) | 1999-05-14 | 2004-03-23 | University Of Newcastle Upon Tyne | Method and apparatus for determining the approximate valve of a logarithmic function |
US7284027B2 (en) * | 2000-05-15 | 2007-10-16 | Qsigma, Inc. | Method and apparatus for high speed calculation of non-linear functions and networks using non-linear function calculations for digital signal processing |
-
2005
- 2005-06-01 US US11/142,760 patent/US7689639B2/en not_active Expired - Fee Related
- 2005-06-02 JP JP2007513851A patent/JP2008502037A/en active Pending
- 2005-06-02 WO PCT/EP2005/005912 patent/WO2005119426A1/en active Application Filing
- 2005-06-02 EP EP05769168A patent/EP1769334A1/en not_active Withdrawn
Non-Patent Citations (6)
Title |
---|
6 JULY 1997: "PROCEEDINGS 13TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC. ASILOMAR, CA, JULY 6 - 9, 1997, IEEE SYMPOSIUM ON COMPUTER ARITHMETIC, LOS ALAMITOS, CA", IEEE COMP. SOC. PRESS, article "Arithmetic co-transformations in the real and complex logarithmic number systems", pages: 190 - 199 |
ARNOLD M ET AL.: "JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND V!DEO TECHNOLOGY", vol. 33, March 2003, KLUWER ACADEMIC PUBLISHERS, article "FAST FOURIER TRANSFORMS USING THE COMPLEX LOGARITHMIC NUMBER SYSTEM", pages: 325 - 335 |
ARNOLD M ET AL: "FAST FOURIER TRANSFORMS USING THE COMPLEX LOGARITHMIC NUMBER SYSTEM", JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND VIDEO TECHNOLOGY, KLUWER ACADEMIC PUBLISHERS, DORDRECHT, NL, vol. 33, no. 3, March 2003 (2003-03-01), pages 325 - 335, XP001159410, ISSN: 0922-5773 * |
ARNOLD M G ET AL INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "Arithmetic co-transformations in the real and complex logarithmic number systems", PROCEEDINGS 13TH IEEE SYMPOSIUM ON COMPUTER ARITHMETIC. ASILOMAR, CA, JULY 6 - 9, 1997, IEEE SYMPOSIUM ON COMPUTER ARITHMETIC, LOS ALAMITOS, CA : IEEE COMP. SOC. PRESS, US, 6 July 1997 (1997-07-06), pages 190 - 199, XP010241209, ISBN: 0-8186-7846-1 * |
CHICHYANG CHEN ET AL: "Pipelined computation of LNS addition/subtraction with very small lookup tables", COMPUTER DESIGN: VLSI IN COMPUTERS AND PROCESSORS, 1998. ICCD '98. PROCEEDINGS. INTERNATIONAL CONFERENCE ON AUSTIN, TX, USA 5-7 OCT. 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 5 October 1998 (1998-10-05), pages 292 - 297, XP010310302, ISBN: 0-8186-9099-2 * |
YAN WANG ET AL: "Low complexity OFDM receiver using Log-FFT for coded OFDM system", 2002 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS. PROCEEDINGS (CAT. NO.02CH37353), vol. 3, 2002, IEEE PISCATAWAY, NJ, USA, pages 445 - 448, XP002348180, ISBN: 0-7803-7448-7 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152410A (en) * | 2006-12-15 | 2008-07-03 | Advanced Telecommunication Research Institute International | Arithmetic processor and program |
WO2023135033A1 (en) * | 2022-01-13 | 2023-07-20 | Robert Bosch Gmbh | Radar system and method for operating a radar system |
Also Published As
Publication number | Publication date |
---|---|
US7689639B2 (en) | 2010-03-30 |
JP2008502037A (en) | 2008-01-24 |
EP1769334A1 (en) | 2007-04-04 |
US20050273483A1 (en) | 2005-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7689639B2 (en) | Complex logarithmic ALU | |
CN115934030B (en) | Arithmetic logic unit, method and equipment for floating point number multiplication | |
US5717620A (en) | Improved-accuracy fast-Fourier-transform butterfly circuit | |
WO1996028774A1 (en) | Exponentiation circuit utilizing shift means and method of using same | |
WO2005073841A1 (en) | Implementation of the cordic algorithm for complex phase rotation | |
US7711764B2 (en) | Pipelined real or complex ALU | |
CA1258537A (en) | Apparatus and method for approximating the magnitude of a complex number | |
US7065546B2 (en) | Method of performing quantization within a multimedia bitstream utilizing division-free instructions | |
WO2001007992A1 (en) | Method and system for generating a trigonometric function | |
WO2022170811A1 (en) | Fixed-point multiply-add operation unit and method suitable for mixed-precision neural network | |
JP5229314B2 (en) | CORDIC arithmetic circuit and method | |
KR20070018981A (en) | Complex logarithmic alu | |
JP5733379B2 (en) | Processor and calculation method | |
CN107015783B (en) | Floating point angle compression implementation method and device | |
US5685008A (en) | Computer Processor utilizing logarithmic conversion and method of use thereof | |
US20140372493A1 (en) | System and method for accelerating evaluation of functions | |
US5696986A (en) | Computer processor utilizing logarithmic conversion and method of use thereof | |
CN114860193A (en) | Hardware operation circuit for calculating Power function and data processing method | |
JP2645422B2 (en) | Floating point processor | |
US8924447B2 (en) | Double precision approximation of a single precision operation | |
WO1994014245A1 (en) | A device for conversion of a binary floating-point number into a binary 2-logarithm or the opposite | |
Low et al. | A fast and compact circuit for integer square root computation based on Mitchell logarithmic method | |
JP5305392B2 (en) | IQ data square sum route calculation means | |
CN110688090B (en) | Floating point multiplication method, circuit and equipment for AI (artificial intelligence) calculation | |
Lakshmi et al. | Low latency VLSI architecture for the radix-4 CORDIC algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DPEN | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101) | ||
DPEN | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007513851 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020067025542 Country of ref document: KR Ref document number: 200580018166.5 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2005769168 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 8022/DELNP/2006 Country of ref document: IN |
|
WWP | Wipo information: published in national office |
Ref document number: 1020067025542 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 2005769168 Country of ref document: EP |