Field of the Invention
The present invention generally relates to logic circuits for computational devices, and more particularly to a barrel shifter or rotator.
Description of the Related Art
A shifter, or rotator, is a combinational logic circuit that can shift an operand data value by a specified number of places (bits), i.e., move the bits left or right within the data field. Shifters are useful for many computational applications including arithmetic operations, address generation, variable-length coding, and bit indexing, and have become essential to modern integrated circuit devices such as digital signal processors and general-purpose microprocessors.
In the simplest shifter circuit, each bit is incrementally shifted one place at a time, so shifting data by n bits would require n clock cycles. This delay is unacceptable for conventional systems having, e.g., 64-bit or 128-bit data values, so an improved design known as a barrel shifter has been devised which can shift long-bit values in a single clock cycle. Barrel shifters basically trade chip area of the integrated circuit (number of gates) for speed. A barrel shifter relies on a large number of cascaded multiplexers. The minimum number of 2:1 multiplexers required for an n-bit word is nlog2n; for example, a 64-bit barrel shifter requires 384 multiplexers. One common usage of a barrel shifter is in the hardware implementation of floating-point arithmetic. For a floating-point add or subtract operation, the significands of the two numbers must be aligned, which requires shifting the smaller number to the right and increasing its exponent until it matches the exponent of the larger number. This operation is conveniently accomplished by subtracting the exponents, and using the barrel shifter to shift the smaller number to the right by that difference, in one cycle.
The present invention is generally directed to a barrel shifter which uses a sign magnitude to 2's complement converter circuit to generate decoder signals for two or more cascaded multiplexer selectors. The sign magnitude to 2's complement converter circuit has a sign input which receives an input shift direction and has a magnitude input which receives an input shift amount. In the exemplary embodiment there are two selectors, so the sign magnitude to 2's complement converter circuit generates two decoder signals, and two select signals are derived from the decoder signals using two decoder circuits. The sign magnitude to 2's complement converter circuit can compute an output result as a 2's complement of the input shift amount using a shift direction as a sign input, assign a first portion of the output result to the first decoder signal, and assign a second portion of the output result to the second decoder signal. The encoding scheme using a sign magnitude to 2's complement converter circuit allows the decoder circuits to be relatively simple, for example, 3-to-8 decoders for an implementation adapted to shift a 64-bit operand value rather than the 4-to-9 decoder required in a conventional barrel shifter. For that implementation, the sign magnitude to 2's complement converter circuit can be optimized to generate the decoder signals using no more than three stages of gates. The invention also allows for smaller selector logic, e.g., a first selector which selects one group of 71 bits out of eight groups (as opposed to 72 bits in a conventional barrel shifter) and a second selector which selects one group of 64 bits out of eight groups (as opposed to nine groups in a conventional barrel shifter).
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
Barrel shifters (rotators) are extremely valuable for performing variable bit-length shift operations, particularly in execution units of a microprocessor. However, as the number of bits being shifted increases, the period of signal transfer along the horizontal bit direction increases, which can make the processing time of this component considerably large. While cascaded stage selectors can reduce this processing time, they considerably increase the complexity of the decoders and selectors. For example, in the prior art barrel shifter 10 seen in
It would, therefore, be desirable to devise an improved barrel shifter which could minimize or reduce the delay in the timing-critical decoder circuits. It would be further advantageous if the method could allow for a reduction in the number of selector inputs. The present invention achieves these benefits by replacing the invert with shift right circuit with a sign magnitude to 2's complement converter, which leads to more efficient encoding of the selection signals. The design of the sign magnitude to 2's complement converter can further be optimized to avoid any increase of the delay. These improvements contribute to faster operation and reduced area and power, as well as noise immunity improvement. As the number of bits to be shifted increases, the effectiveness of this scheme likewise increases.
With reference now to the figures, and in particular with reference to
As seen in
As seen further in
According to the above table, both the msb and lsb decoder outputs range from 0 to 7 for both the “shift left” and “shift right” cases which requires only 8-to-1 selection for both selectors 42, 44. In contrast, the truth table for the decoders of the prior art barrel shifter seen in
Selector 44 receives the 71-bit data from selector 42, and as seen in
Those skilled in the art will recognize that the two selectors 42, 44 with their corresponding shift level unit amounts (8 and 1) represent different levels of a hierarchical design for implementing a cascaded barrel shifter. Accordingly, other implementations of a barrel shifter based on the present invention may have a different hierarchy in which case the numbers of bits in the decoder signals, the number of selector stages, the number of groups created by the selectors, or the shift level unit amounts may vary from the disclosed embodiments. For example, a 64-bit shifter could alternatively be implemented in three stages each using a two-bit decoder signal, with shift level unit amounts of 16, 4 and 1 (four groups to select from at each selector stage). As a further example, a 512-bit rotator could also be implemented in three stages with each stage using a 3-bit decoder signal and shift level unit amounts of 64, 8 and 1 (eight groups to select from at each selector stage). In each of these alternative designs, the decoder signals are still generated by a sign magnitude to 2's complement converter. Thus, the specific details for the disclosed implementation 30 of a barrel shift are exemplary only, and should not be construed in a limiting sense.
The barrel shifter of the present invention may be used in a wide variety of applications which require shifting or rotation, and is particularly useful within execution units of a microprocessor. One particular application shown in
The present invention accordingly imparts several advantages over prior art barrel shifters. The use of the sign magnitude to 2's complement encoding allows not only for faster operation, but also requires less area of the integrated circuit (fewer gates), and thus leads to reduced power consumption. High speed operation can be achieved even for timing critical cases such as used in a one-cycle operation path. These benefits of the present invention are further amplified as the number of bits increases.
Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments, as well as alternative embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. It is therefore contemplated that such modifications can be made without departing from the spirit or scope of the present invention as defined in the appended claims.
This application is a continuation of copending U.S. patent application Ser. No. 13/538,001 filed Jun. 29, 2012, which is hereby incorporated.
Number | Name | Date | Kind |
---|---|---|---|
4785393 | Chu et al. | Nov 1988 | A |
4825400 | Simoncic et al. | Apr 1989 | A |
5124583 | Hatano et al. | Jun 1992 | A |
5272654 | Nix | Dec 1993 | A |
5555202 | Chu | Sep 1996 | A |
7395294 | Metzgen | Jul 2008 | B1 |
7415542 | Hennedy et al. | Aug 2008 | B2 |
Number | Date | Country |
---|---|---|
61-032139 | Feb 1986 | JP |
01-161433 | Jun 1989 | JP |
02-077933 | Mar 1990 | JP |
02-178831 | Jul 1990 | JP |
04-021025 | Jan 1992 | JP |
04-245323 | Sep 1992 | JP |
08-161149 | Jun 1996 | JP |
09-282142 | Oct 1997 | JP |
2010-140192 | Jun 2010 | JP |
Entry |
---|
Wikipedia, Signed Number Representations, Feb. 23, 2010, pp. 1-5. |
Fairchild Semiconductor Corporation, NCSZ27 Tinylogic (R) UHS 3-Input NOR Gate, Sep. 2004. |
Number | Date | Country | |
---|---|---|---|
20150149518 A1 | May 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13538001 | Jun 2012 | US |
Child | 14611223 | US |