This U.S. non-provisional patent application claims priority under 35 U.S.C. §119 of Korean Patent Application No. 10-2010-0089620, filed on Sep. 13, 2010, the entire contents of which are hereby incorporated by reference.
The present invention disclosed herein relates to a divider and a method of operating the same, and more particularly, to a divider including a memory and a method of operating the same.
In a MIMO (Multi Input Multi Output) transmitting/receiving (TX/RX) scheme, if an RX terminal uses an MMSE (Minimum Mean-Squared Error) receiving method, the complexity of hardware for implementation of the RX terminal increases with an increase in the number of TX/RX antennas. In particular, the number of dividers for calculation of an inverse matrix in the RX terminal increases rapidly with an increase in the number of antennas. For example, a 4×4 MIMO TX/RX scheme requires calculating a 4×4 inverse matrix in the RX terminal. An 8×8 MIMO TX/RX scheme requires calculating an 8×8 inverse matrix in the RX terminal. Herein, the divider performs a floating-point division operation.
That is, a floating-point division operation is performed to calculate the inverse matrix. The floating-point division operation requires the longest calculation time among the 4 basic arithmetic operations. Thus, the floating-point division operation may degrade the operation performance of the RX terminal. What is therefore required is a divider that can reduce the inverse matrix calculation time in order to improve the operation performance of the RX terminal.
The present invention provides a divider having a small area and an improved operation speed and a method of operating the same.
In some embodiments of the present invention, a method of operating a divider includes: storing a look-up table including a predetermined range of values; determining an exponent of a divisor received from an external, and obtaining one of the values included in the look-up table, on the basis of the bits except the most significant bit of the divisor; calculating an initial value by multiplying one of the values included in the look-up table and a dividend received from an external; and shifting the initial value by the exponent of the most significant bit.
In some embodiments, the obtaining of one of the values included in the look-up table includes obtaining one of the values included in the look-up table, on the basis of the lower bits with respect to the most significant bit.
In other embodiments, the look-up table includes an address corresponding to each of the values included in the look-up table, and the values corresponding to the address decrease as the value of the address increases.
In further embodiments, the obtaining of one of the values included in the look-up table includes determining the address according to the value of the bits except the most significant bit.
In still further embodiments, the values included in the look-up table have a prescribed scale, and the right-shifting of the initial value includes right-shifting the initial value by the number of bits corresponding to the prescribed scale.
In other embodiments of the present invention, a divider includes: a memory configured to store table values included in a predetermined range; a controller configured to receive a divisor, generate an address expressed in a plurality of bits according to the bits except the most significant bit of the divisor, and receive the table value corresponding to the address from the memory; and a multiplier configured to receive a dividend and calculate an initial value by multiplying the dividend and the table value corresponding to the address, wherein the controller determines an exponent of the divisor and right-shifts the initial value by the exponent of the divisor.
In some embodiments, the controller generates the address according to the lower bits of the most significant bit of the divisor. Herein, the controller may generate the bits of the divisor, corresponding to the number of bits expressing the address, as the address.
In other embodiments, the memory stores the table values having a prescribed scale, and the controller right-shifts the initial value by the number of bits corresponding to the prescribed scale. The memory may store the table values such that the value obtained by dividing the table values by the prescribed scale is greater than about 0.5 and equal to or smaller than about 1.
The accompanying drawings are included to provide a further understanding of the present invention, and are incorporated in and constitute a part of this specification. The drawings illustrate exemplary embodiments of the present invention and, together with the description, serve to explain principles of the present invention. In the drawings:
Preferred embodiments of the present invention will be described below in more detail with reference to the accompanying drawings. The present invention may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present invention to those skilled in the art. Throughout the specification and drawings, like reference numerals denote like elements.
Throughout the disclosure, when one element (or component, unit, part, etc.) is referred to as being ‘connected’ to another element (or component, unit, part, etc.), it should be understood that the former may be ‘directly connected’ to the latter, or ‘indirectly (or electrically) connected’ to the latter through at least one intervening element (or component, unit, part, etc.). Also, when one element is referred to as comprising (or including or having) some elements, it should be understood that the element may comprise (or include or have) other elements as well as those elements, unless otherwise specified.
Referring to
A division operation is performed by dividing a dividend by the divisor DVS. A division operation may be performed by multiplying a dividend by a multiplicative inverse. Herein, the multiplicative inverse may be prestored. A division operation is performed by multiplying a dividend by the prestored multiplicative inverse.
However, it may be difficult to store all ranges of multiplicative inverses. In this case, considering only divisors DVS equal to or greater than about 1 and smaller than about 2, only multiplicative inverses greater than about 0.5 and equal to or smaller than about 1 may be stored. Also, divisors DVS that are not equal to or greater than about 1 and smaller than about 2 may be controlled to be equal to or greater than about 1 and smaller than about 2. That is, multiplicative inverses that are not greater than about 0.5 and equal to or smaller than about 1 may be controlled to be greater than about 0.5 and equal to or smaller than about 1.
For example, it is assumed that the divisor DVS is 3. Multiplicative inverses greater than about 0.5 and equal to or smaller than about 1 are stored. The multiplicative inverse corresponds to ⅓. In this case, ⅔ obtained by multiplying ⅓ by 2 is greater than about 0.5 and equal to or smaller than about 1. The dividend is multiplied by ⅔. The multiplication result is divided by 2 to obtain a desired calculation result. The multiplication of ⅓ by 2 and the division of the multiplication result by 2 may be performed by a shifting operation. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to
Referring to
The controller 110 is electrically connected to the memory 120 and the multiplier 130. The controller 110 includes a shifter 112 and an address generator 114. The controller 110 receives a divisor DVS for division from an external device.
The address generator 114 generates an address ADDR with reference to the received divisor DVS. The controller 110 transmits the generated address ADDR to the memory 120. The controller 110 may receive a table value TVAL corresponding to the address ADDR from the memory 120. The controller 110 transmits the received table value TVAL to the multiplier 130.
The shifter 112 determines an exponent of the received divisor DVS. For example, the received divisor DVS is right-shifted until it does not include a logic value ‘1’, and 1 is subtracted from the shift count number to determine the exponent of the divisor DVS.
The shifter 112 right-shifts the bits included in an initial value IVAL received from the multiplier 130, as the number of bits corresponding to the scale of a look-up table LUT. The shifter 112 right-shifts the bits included in the initial value IVAL, as the exponent of the divisor DVS.
The memory 120 is electrically connected to the controller 110. The memory 120 stores a look-up table LUT including values corresponding to multiplicative inverses. Herein, the multiplicative inverses are greater than about 0.5 and equal to or smaller than about 1 (hereinafter referred to as a normal range).
The look-up table LUT has a prescribed scale. For example, the look-up table LUT may include values ranging from 217 to 216. In this case, the look-up table LUT has a scale of 217.
The memory 120 receives an address ADDR from the controller 110. The memory 120 provides a table value TVAL corresponding to the received address ADDR to the controller 110.
For example, the memory 120 may include a memory controller (not illustrated). The memory controller may receive an address ADDR, read a table value TVAL corresponding to the received address ADDR, and provide the table value TVAL to the controller 110.
Examples of the memory 120 include ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), flash memory devices, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), and FRAM (Ferroelectric RAM).
The multiplier 130 is electrically connected to the controller 110. The multiplier 130 receives a dividend DVD from an external device. The multiplier 130 receives a table value TVAL from the controller 110. The multiplier 130 calculates an initial value IVAL by multiplying the dividend DVD and the table value TVAL received from the controller 110. The calculated initial value IVAL is transmitted to the controller 110.
The controller 110 receives the initial value IVAL. The shifter 112 shifts the received initial value IVAL. The controller 110 outputs the shift result value.
The memory 120 of
The values stored in the memory 120 correspond to the multiplicative inverses included in the normal range. That is, in the first look-up table LUT1 and the second look-up table LUT2, the values ranging from 217 to 216 correspond respectively to the values included in the normal range. Herein, the first look-up table LUT1 and the second look-up table LUT2 have a scale of 217. When the values included in the first look-up table LUT1 and the second look-up table LUT2 are divided by 217, the values included in the normal range are obtained.
The initial value IVAL are calculated by multiplying the dividend DVD and the table value TVAL. Because the table value TVAL having a scale of 217 is multiplied by the dividend DVD to calculate the initial value IVAL, the controller 110 right-shifts the initial value IVAL by 17 bits. The right-shifting of the initial value IVAL by 17 bits provides the effect of the dividing the initial value IVAL by 217.
The memory 120 has a prescribed resolution. The first look-up table LUT1 has a 10-bit resolution. That is, the first look-up table LUT1 has 210 addresses. The 210 addresses correspond respectively to the values ranging from 216 to 217.
The second look-up table LUT2 has a 12-bit resolution. That is, the second look-up table LUT2 has 212 addresses. The 212 addresses correspond respectively to the values ranging from 216 to 217. Consequently, the look-up table LUT1 with a higher accuracy is provided as the number of addresses included in the look-up table LUT stored in the memory 120 of
For example, when generating the first and second look-up tables LUT1 and LUT2, an address and values corresponding to the address are stored according to Equation (1).
In Equation (1), K denotes the scale of the first look-up table LUT1 or the second look-up table LUT2. R denotes the resolution of the first look-up table LUT1 or the second look-up table LUT2. That is, R in the first look-up table LUT1 may be 10. Also, R in the second look-up table LUT2 may be 12. i denotes an address, and VALUEi denotes a value corresponding to i.
Referring to
In step S120, the controller 110 generates the address ADDR and determines the exponent. The controller 110 may generate the address ADDR on the basis of the divisor DVS. Even when the divisor DVS is not equal to or greater than about 1 and smaller than about 2, the controller 110 generates the address ADDR corresponding to the value included in the look-up table LUT. This will be described in detail with reference to
The controller 110 determines the exponent of the received divisor DVS. For example, the shifter 112 may determine the exponent of the received divisor DVS by right-shifting the received divisor DVS until it does not include a logic value ‘1’ and subtracting 1 from the shift count number. For example, if the logic value of the divisor DVS is ‘1100’, when the logic value ‘1100’ is right-shifted until it does not include a logic value ‘1’, the shift count number is 4. In this case, the exponent is ‘3’. This will be described in detail with reference to
In step S130, the table value TVAL is determined. The memory 120 transmits the table value TVAL, which corresponds to the address ADDR received from the controller 110, to the controller 110. Consequently, the divisor DVS is mapped to the value included in the look-up table LUT. The controller 110 transmits the received table value TVAL to the multiplier 130.
In step S140, the table value TVAL and the dividend DVD are multiplied to calculate the initial value IVAL. The initial value IVAL calculated by the multiplier 130 is transmitted to the controller 110.
In step S150, the shifter 112 shifts the bits included in the initial value IVAL. The bits included in the initial value IVAL are right-shifted on the basis of the exponent of the divisor and the scale of the look-up table LUT.
The look-up table LUT has a prescribed scale. For example, the look-up table LUT including values ranging from 217 to 216 has a scale of 217. The initial value IVAL is right-shifted by the number of bits corresponding to the scale of the look-up table LUT, thereby achieving the effect of dividing the initial value IVAL by the scale of the look-up table LUT.
Not only the divisor DVS that is equal to or greater than about 1 and smaller than about 2, but also the divisor DVS that is not equal to or greater than about 1 and smaller than about 2, are mapped in the look-up table LUT. On the other hand, the look-up table LUT stores only the values corresponding to the multiplicative inverses included in the normal range. When the divisor DVS that is not equal to or greater than about 1 and smaller than about 2 is mapped to any one value of the look-up table, the calculated initial value IVAL is divided by a predetermined number. Thus, the bits included in the initial value IVAL are right-shifted by the exponent of the divisor DVS.
In the following description of
Referring to
Referring to
In
In
As described with reference to
The logic value ‘11000’ received as the divisor DVS corresponds to a decimal number ‘24’. The decimal number ‘24’ is not greater than or equal to about 1 and smaller than about 2. According to an exemplary embodiment of the present invention, in order to map the divisor DVS, which does not range from 1 to 2, to the look-up table LUT, the lower bits as many as the number of bits corresponding to the resolution of the first look-up table LUT1 with respect to the most significant bit MSB are determined as the address ADDR. When the address ADDR is determined except the most significant bit MSB, the calculated initial value IVAL is right-shifted by the exponent of the divisor DVS. Because the scale value of the first look-up table LUT1 is reflected in the initial value IVAL, the bits constituting the initial value IVAL are right-shifted by the number of bits corresponding to the scale of the first look-up table LUT1.
In
It is assumed that the dividend DVD is a decimal number ‘10000’. The table value TVAL ‘0x15555’ corresponds to a decimal number ‘87381’. A decimal number ‘10000’ multiplied by a decimal number ‘87381’ is ‘873810000’. The controller 110 receives the bits corresponding to a decimal number ‘873810000’ that is the initial value IVAL. The controller 110 right-shifts the bits of the initial value IVAL by the exponent of the divisor DVS. That is, the controller 110 right-shifts the bits of the initial value IVAL by 4 bits. The controller 110 right-shifts the bits of the initial value IVAL by the bits corresponding to the scale of the first look-up table LUT1. That is, the controller 110 right-shifts the bits of the initial value IVAL by 17 bits. Consequently, the bits of the initial value IVAL are right-shifted by 21 bits. A decimal number ‘873810000’ (i.e., the initial value IVAL) divided by a decimal number ‘221’ equals about ‘416.66508’. A decimal number ‘10000’ divided by a decimal number ‘24’ equals about ‘416.66667’.
According to an exemplary embodiment of the present invention, the look-up table including the values corresponding to the multiplicative inverses of the normal range is stored in the memory 120. The divisor DVS not included in the normal range is normalized and mapped to the value stored in the memory 120. Thus, the divider 100 has a high operation speed and requires a small storage space.
As described above, the present invention can provide a divider having a small area and an improved operation speed and a method of operating the same.
The above-disclosed subject matter is to be considered illustrative and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Number | Date | Country | Kind |
---|---|---|---|
10-2010-0089620 | Sep 2010 | KR | national |