WO2006030639A1 - バレルシフト装置 - Google Patents

バレルシフト装置 Download PDF

Info

Publication number
WO2006030639A1
WO2006030639A1 PCT/JP2005/015863 JP2005015863W WO2006030639A1 WO 2006030639 A1 WO2006030639 A1 WO 2006030639A1 JP 2005015863 W JP2005015863 W JP 2005015863W WO 2006030639 A1 WO2006030639 A1 WO 2006030639A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
shift
control signal
bit
output
Prior art date
Application number
PCT/JP2005/015863
Other languages
English (en)
French (fr)
Inventor
Kazufumi Tanoue
Daisuke Takeuchi
Tomoko Chiba
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to EP05776815A priority Critical patent/EP1821195B1/en
Priority to JP2006535692A priority patent/JP4129280B2/ja
Priority to DE602005023050T priority patent/DE602005023050D1/de
Priority to US10/578,780 priority patent/US7461108B2/en
Publication of WO2006030639A1 publication Critical patent/WO2006030639A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices

Definitions

  • the present invention relates to a barrel shift apparatus that performs a left-right shift process of multi-bit data in digital signal processing.
  • a conventional barrel shift apparatus includes a multi-stage selector.
  • Patent Document 1 As a conventional barrel shift device having a multi-stage selector configuration, for example, there is Patent Document 1.
  • the barrel shift device described in Patent Document 1 has a structure in which shift circuits composed of selectors that select whether or not there is a force to shift by a control signal are combined in multiple stages. For example, to achieve any shift between left 15-bit shift and right 16-bit shift, a shift circuit with 1-bit, 2-bit, 4-bit, 8-bit left shift function and 16-bit right shift, respectively. This can be achieved by combining multiple shift circuits with functions. In this case, to realize the right 5-bit shift, the 1-bit left shift circuit, 2-bit left shift circuit, 8-bit left shift circuit, and 16-bit right shift circuit should be activated.
  • FIG. 10 is a schematic view when a pipeline structure is introduced into the barrel shift device described in Patent Document 1.
  • the first shift circuit 10 shifts the input data based on the first control signal and outputs it as intermediate data 30.
  • the first shift circuit 10 is composed of a 1-bit left shift circuit 11, a 2-bit left shift circuit 12, and a 4-bit left shift circuit 13. An arbitrary shift from a left 7-bit shift to a 0-bit shift is possible. Realize the shift.
  • the intermediate data holding circuit 30 holds the intermediate data that is the output of the first shift circuit 10, and outputs it to the next second shift circuit.
  • the control signal holding circuit 40 holds and outputs the second control signal.
  • the second shift circuit 50 shifts the intermediate data based on the second control signal output from the control signal holding circuit 40 and outputs it as output data.
  • the second shift circuit 50 is composed of an 8-bit left shift circuit 51 and a 16-bit right shift circuit 52.
  • Patent Document 1 JP 2000-293354 A (Page 7, Fig. 1)
  • the bit width of the data increases each time it passes through each shift circuit constituting the first shift circuit, and this increases the bit width of the intermediate data from which the first shift circuit power is also output.
  • the present invention solves the above-described conventional problems, and an object thereof is to suppress an increase in power due to the nopline structure by controlling the data storing operation of the intermediate data holding circuit.
  • the barrel shift device of the present invention receives input data having a predetermined bit width, and shifts the input data left and right by a total shift amount obtained by combining the first shift amount and the second shift amount.
  • the barrel shift device that outputs as the output data after the desired shift, the input data is received, the input data is shifted based on a first control signal that controls the first shift amount, and is output as intermediate data Control for holding and outputting the first shift means, intermediate data holding means for holding intermediate data of the first shift means force, and the second control signal for controlling the second shift amount A signal holding unit; receiving the intermediate data held in the intermediate data holding unit; and the control signal holding unit A second shift means for shifting the received intermediate data based on the second control signal output from the second control signal and outputting the shifted intermediate data as the output data after the desired shift.
  • the second shift means force is also output as output data after the desired shift among all data elements constituting the intermediate data from the first shift means.
  • Decoding means for detecting a digit position in the intermediate data of a data element excluding a part or all of the data elements other than the data element is provided, and the intermediate data holding means is provided at the digit position detected by the decoding means.
  • the intermediate data On the basis of the intermediate data, a part or all of the data elements other than the data element output as the output data after the second shift means force desired shift is removed, Characterized in that it newly holds data elements of the previous SL including the digit positions of data elements to be output as output data after the second shift means force desired shift even without.
  • the present invention provides the barrel shift device, wherein the decoding means includes all data elements constituting intermediate data of the first shifting means force based on all of the information indicated by the second control signal.
  • the second shift means force is characterized by detecting the digit position in the intermediate data of only the data element output as the output data after the desired shift.
  • the decoding unit includes all data constituting intermediate data of the first shift unit force based on a part of information indicated by the second control signal. Detecting the digit position in the intermediate data of the data elements excluding some data elements other than the data elements output as the output data after the second shift means force desired shift among the elements.
  • the second control signal is a control signal including a plurality of bit signals
  • the intermediate data holding means is a predetermined one of the second control signals. Based on the bit signal, among all the data elements constituting the intermediate data from the first shift means, the data elements other than the data elements that are output as the output data after the desired shift are also included in the second shift means force. It is characterized in that it retains and outputs the data element of the digit position with a part removed.
  • the barrel shift device of the present invention receives input data having a predetermined bit width and receives a first shift amount. And a barrel shift device that shifts the input data left and right by a total shift amount combining the second shift amount and outputs it as output data after a desired shift, receives the input data, and receives the first shift amount.
  • a first shift means for shifting the input data based on a first control signal for controlling the output and outputting it as intermediate data; and an intermediate data holding means for holding the intermediate data from the first shift means
  • a control signal holding means for holding and outputting a second control signal for controlling the second shift amount, and intermediate data held in the intermediate data holding means, and receiving an output of the control signal holding means
  • a second shift means for shifting the received intermediate data based on the second control signal and outputting it as output data after the desired shift.
  • the first control signal is received and, based on the first control signal, the digit position of the data element included in the input data among all the data elements constituting the intermediate data having the first shift means power
  • the intermediate data holding means is included in at least the input data among all the data elements constituting the intermediate data based on the digit position detected by the decoding means. It is characterized in that a data element at a digit position including the data element to be stored is newly held.
  • the present invention provides the barrel shift device, wherein the decoding means includes all data elements constituting intermediate data of the first shift means force based on all of the information indicated by the first control signal. Among them, the digit position in the intermediate data of only the data element included in the input data is detected.
  • the decoding unit includes all data constituting intermediate data of the first shift unit force based on part of information indicated by the first control signal. Of the elements, a digit position in the intermediate data of a data element excluding a part of a data element other than the data element included in the input data is detected.
  • the first control signal is a control signal composed of a signal of a plurality of bits
  • the intermediate data holding means is a predetermined 1 of the first control signal. Based on the bit signal, data elements other than the data elements included in the input data out of all the data elements constituting the intermediate data from the first shift means. A data element at a digit position from which a part of the element is removed is held and output.
  • the second control signal for controlling the shift amount applied by the second shift means is decoded using the decode means, so that the intermediate data is output as output data.
  • the intermediate data holding means operates to hold at least the intermediate data element at the digit position. Therefore, unnecessary data elements that are not output as final data are not stored by the intermediate data holding means, but the data elements that have been held before are kept held, so that it is possible to save power.
  • the first control signal for controlling the shift amount applied by the first shift means is decoded using the decode means, so that all data elements constituting the intermediate data are decoded.
  • the intermediate data holding means operates to hold at least the intermediate data element at this digit position. Therefore, data elements that are not data elements of the input data are not stored by the intermediate data holding means, and the data elements that have been held before are kept, so that it is possible to save power.
  • the intermediate data holding means force inserted by the pipeline structure ⁇ is applied by the second shift means until data is output. Since the information on the shift amount to be used is used as a control signal and the operation of holding data elements that are not finally output by the intermediate data holding means is suppressed, it is possible to realize power saving.
  • the shift amount information applied by the first shift means between the data input and the intermediate data holding means inserted by the pipeline structure is stored. Since it is used as a control signal and the operation of storing and holding unnecessary data elements in the intermediate data holding means is suppressed, it is possible to realize power saving.
  • FIG. 1 is a schematic view of a barrel shift device according to a first embodiment of the present invention.
  • FIG. 2 is a diagram for explaining the operation of an 11-bit right shift process according to the first embodiment of the present invention.
  • FIG. 3 is a diagram for explaining the operation of the intermediate data holding circuit according to the first embodiment of the present invention.
  • FIG. 4 is a diagram for explaining the operation of the intermediate data holding circuit according to the first embodiment of the present invention. It is a figure
  • FIG. 5 is a schematic view of a barrel shift device according to a second embodiment of the present invention.
  • Fig. 6 is an operation explanatory diagram of 11-bit right shift processing according to the second embodiment of the present invention.
  • FIG. 7 is an operation explanatory diagram of the intermediate data holding circuit according to the second embodiment of the present invention.
  • FIG. 8 is an operation explanatory diagram of the intermediate data holding circuit according to the second embodiment of the present invention.
  • FIG. 9 is an operation explanatory diagram of the intermediate data holding circuit according to the second embodiment of the present invention.
  • FIG. 10 is a schematic diagram showing a configuration of a conventional technique.
  • Control signal holding circuit (Control signal holding means)
  • FIG. 1 A schematic diagram of the barrel shift apparatus of the first embodiment is shown in FIG.
  • the barrel shifter according to the present embodiment is divided by a pipeline register, and a shift process is executed in a multistage processing stage.
  • reference numeral 10 denotes a first shift circuit, which shifts input data based on a first control signal having a 3-bit data power and outputs intermediate data to the intermediate data holding circuit 30.
  • the first shift circuit 10 includes three shift circuits: a 1-bit left shift circuit 11, a 2-bit left shift circuit 12, and a 4-bit left shift circuit 13. Each of these three shift circuits 11, 12, 13 receives corresponding bit data of the first control signal. In other words, depending on the combination of each bit data of the first control signal, any shift amount from the left 7-bit shift to the 0-bit shift (first 1 shift amount).
  • Reference numeral 50 denotes a second shift circuit that receives the intermediate data output from the intermediate data holding circuit 30, performs a predetermined shift process following the shift process in the first shift circuit 10, Complete the desired shift as a body and output the output data.
  • the second shift circuit 50 includes an 8-bit left shift circuit 51 and a 16-bit right shift circuit 52.
  • the second shift circuit 50 performs a shift (shift of the second shift amount) process under the control of the second control signal input from the outside in the same manner as the first shift circuit 10.
  • the second control signal is not directly input to the second shift circuit 50.
  • the second control signal is input to the decode circuit 20 and also input to the second shift circuit 50 via the control signal holding circuit 40 that temporarily holds the second control signal.
  • the second control signal input to the second shift circuit 50 via the control signal holding circuit 40 is divided into two and input to the two shift circuits 51 and 52 in the second shift circuit 50, respectively. . Then, a shift process following the shift process by the first shift circuit 10 is performed by a combination of the shift processes by the two shift circuits 51 and 52, and the input data is arbitrarily shifted between the left 15-bit shift and the right 16-bit shift. , I.e., the desired shift is completed and output.
  • the decoding circuit 20 to which the second control signal has been input has an intermediate data element of the output data output as a result of the shift processing by the second shift circuit 50 among the data elements of the intermediate data.
  • the digit position in the data holding circuit 30 is detected based on the second control signal, and the detection result is output to the intermediate data holding circuit 30.
  • the intermediate data holding circuit 30 outputs only the data element at the digit position output from the second shift circuit 50 as output data or the data at the output digit position. Holds data elements that include elements and exclude some unnecessary data that is not reflected in the output data.
  • the intermediate data holding circuit 30 can omit unnecessary storage operations as much as it is not necessary to hold unnecessary data elements that are not output as data elements of output data. Can be realized.
  • the first control signal C1 [2: 0] shown in FIG. 2 is 3-bit data, and three 1-bit data C It consists of 1 [0], Cl [l], Cl [2].
  • the 1-bit left shift circuit 11, the 2-bit left shift circuit 12, and the 4-bit left shift circuit 13 that constitute the first shift circuit 10 respectively have bit data C1 [0], Cl [ l], controlled by CI [2].
  • 1-bit data C1 [0], Cl [2] of the first control signal is active "Hi"
  • 1-bit data CI [1] of the first control signal Force passive state "Lo”.
  • the input data input to the first shift circuit 10 is shifted based on the first control signal C1 [2: 0].
  • 1-bit left shift processing is performed by the 1-bit left shift circuit 11, and the value 0 is filled in the 0th bit data, which is output as 17-bit width data.
  • the 2-bit left shift processing circuit 12 does not perform the shift process, and the 17th bit data and the 18th bit data are sign-extended and output as 19-bit width data.
  • the 4-bit left shift circuit 13 performs 4-bit left shift processing, and the value 0 is filled in the 0th bit data, the first bit data, the second bit data, and the third bit data. Are output to the intermediate data holding circuit 30 as intermediate data of 23-bit width data.
  • the second control signal C2 [l: 0] is 2-bit data, and is composed of 1-bit data C2 [0] and C2 [l].
  • the 8-bit left shift circuit 51 and the 16-bit right shift circuit 52 constituting the second shift circuit 50 are controlled by the bit data C2 [0] and C2 [l] of the second control signal.
  • Each of the decoding circuits 20 uses the second control signal C2 [1: 0] to indicate to which digit position of the intermediate data the data element of the output data output after the shift processing in the second shift circuit 50 is output. And the detection result is output to the intermediate data holding circuit 30. This digit position detection operation will be described in detail.
  • the bit data C2 [l] of the second control signal is in the active state “Hi”, and the second control signal
  • the bit data C2 [0] in the passive state becomes “Lo”
  • the second shift circuit 50 performs 16-bit right shift processing, so the 16th to 22nd bit digits of the intermediate data
  • the intermediate data holding circuit 30 newly stores and holds data elements at the digit positions of the 16th to 22nd bits of the intermediate data based on the detection result of the digit position of the decoding circuit 20, and these are detected. Digit positions from the 0th bit to the 15th bit other than the specified digit position As for the data element, the previous retained data element is continuously retained as it is.
  • the control signal holding circuit 40 holds the second control signal C2 [l: 0] and outputs it to the second shift circuit 50.
  • the 8-bit left shift circuit 51 and the 16-bit right shift circuit 52 constituting the second shift circuit 50 are each set of bit data C2 [0] and C2 [1] of the second control signal as the control signal holding circuit 40, respectively. It is controlled by the output after being held in Hereinafter, for simplicity, the signal held in the control signal holding circuit 40 is also expressed as the second control signal C2 [l: 0].
  • the bit data C2 [l] of the second control signal is active "Hi"
  • the bit data C2 [0] force of the second control signal is passive "Lo". Become.
  • the output of the intermediate data holding circuit 30 input to the second shift circuit 50 is shifted according to the second control signal C2 [l: 0].
  • the 8-bit left shift processing circuit 51 does not perform shift processing, and the sign positions from the 23rd bit to the 30th bit are sign-extended and output as 31-bit width data.
  • the 16-bit right shift circuit 52 performs 16-bit right shift processing, sign-extends the digit position of the 15th bit, and outputs it as output data of 16-bit width data.
  • FIG. 3 is an explanatory diagram of the operation of the intermediate data holding circuit 30.
  • the intermediate data holding circuit 30 operates as follows based on the output of the decoding circuit 20 according to the state of the second control signal C2 [1: 0].
  • the bit data C2 [l] of the second control signal is in the active state "Hi” and the bit data C2 [0] of the second control signal is in the passive state "Lo"
  • 8 bits Since the left shift processing circuit 51 does not perform the shift process, the 16-bit right shift processing circuit 52 performs the 16-bit right shift process, and the second shift circuit 50 performs the 16-bit right shift process.
  • the intermediate data holding circuit 30 stores and holds the data elements at the digit positions from the 16th bit to the 22nd bit, which are shifted to the right by 16 bits in the intermediate data and remain in the 16-bit width of the output data.
  • FIG. 4 is an explanatory diagram of the operation of the intermediate data holding circuit 30.
  • the decoding circuit 20 may decode a part of the second control signal C2 [l: 0].
  • the bit data (predetermined 1-bit data) C2 [l] of the second control signal is output to the intermediate data holding circuit 30 as it is.
  • the intermediate data holding circuit 30 operates as follows based on the output of the decoding circuit 20 according to the state of the bit data C2 [l] of the second control signal.
  • Bit data C2 [l] of the second control signal is in the passive state "Lo". As described in FIG. 3, the bit data C2 [0] of the second control signal is in any state. Even so, the data elements at the digit positions from the 0th bit to the 15th bit in the intermediate data include the output data output from the second shift circuit 50, so the 0th bit Data elements at the digit positions from the bit to the 15th bit are stored and held in the intermediate data holding circuit 30.
  • bit data C2 [1] of the second control signal is in the active state "Hi", as described in FIG. 3, the bit data C2 [0] of the second control signal is Even in the state, the data elements in the digit positions from the 8th bit to the 22nd bit in the intermediate data have the Since the output data output from the second shift circuit 50 is included, the data elements at the digit positions from the 8th bit to the 22nd bit are stored and held in the intermediate data holding circuit 30.
  • the digit position including at least the data element serving as the output data is detected by the decode circuit 20, and the data element at the digit position including the output data is stored and held in the intermediate data holding circuit 30 and partially In some cases, sign extension data or data padded with value 0 is stored.
  • the arithmetic shift process has been described as a premise, but the sign extension may be replaced with the value 0 extension for the logical shift process. The same applies to other shift processes.
  • FIG. 5 shows a schematic diagram of the barrel shift apparatus of the second embodiment.
  • the barrel shifter of FIG. 5 in the present embodiment is divided by a pipeline register and shift processing is executed in a multistage processing stage, as in the first embodiment.
  • the configuration of the barrel shift device of the present embodiment will be described with reference to FIG.
  • the description will be made on the premise of a barrel shift device capable of arbitrarily arithmetically shifting 16-bit data (input data having a predetermined bit width) in a range of 15 bits from the left to 16 bits from the right.
  • the control signal received by the decode circuit 60 is not the second control signal but the first control signal.
  • the digit position in the inter-data holding circuit 30 is detected based on the input first control signal.
  • the decoding circuit 60 outputs at least the digit of the data output from the first shift circuit 10 to which the data element of the input data shifted by the first shift circuit is output. Detect position.
  • the intermediate data holding circuit 30 holds only the data elements obtained by excluding some or all of the data elements other than the data elements of the input data among all the data elements constituting the intermediate data. The held data element is output to the second shift circuit 50.
  • the data to be held in the intermediate data holding circuit 30 can be reduced, and unnecessary storage operations can be suppressed, so that power saving can be achieved.
  • the first control signal C1 [2: 0] is 3-bit data, and includes 1-bit data C1 [0], Cl [l], and C 1 [2].
  • the 1-bit left shift circuit 11, the 2-bit left shift circuit 12, and the 4-bit left shift circuit 13 constituting the first shift circuit 10 are each bit data C1 [0], Cl [l], Controlled by CI [2].
  • the bit data C1 [0] and Cl [2] of the first control signal is active “Hi”, and the bit data CI [1] of the first control signal is passive. State "Lo".
  • the input data input to the first shift circuit 10 is shifted based on the first control signal C 1 [2: 0].
  • 1-bit left shift processing is performed by the 1-bit left shift circuit 11, and a data element having a value of 0 is filled in the digit position of the 0th bit, and is output as 17-bit width data.
  • the 2-bit left shift processing circuit 12 does not perform shift processing, and the 17th bit and the 18th bit are sign-extended and output as 19-bit width data.
  • the 4-bit left shift circuit 13 performs a 4-bit left shift process, and the 0th bit, the 1st bit, the 2nd bit, and the 3rd bit have a data element of value 0. Are filled in, and are output to the intermediate data holding circuit 30 as intermediate data of 23-bit width data.
  • the decoding circuit 60 starts from the first control signal C1 [2: 0], and the data element of the input data is intermediate. The digit position of the data is detected and the detection result is output to the intermediate data holding circuit 30.
  • the bit data C1 [0] and Cl [2] of the first control signal is active “Hi”, and the bit data Cl [l] of the first control signal is passive. Since the state becomes “Lo” and the first shift circuit 10 is subjected to the left shift processing of 5 bits, the data elements at the digit positions from the 5th bit to the 20th bit of the intermediate data are input data. It turns out to be a data element.
  • the intermediate data holding circuit 30 stores and holds data elements at the digit positions from the fifth bit to the 20th bit of the intermediate data, and from the 0th bit. For the data element at the digit position of the 4th bit, 21st bit, and 22nd bit, the previous retained data element is retained continuously. Then, at the stage of output to the second shift circuit 50, data elements with a value of 0 are output for the digit positions of the 0th bit to the 4th bit, and the digits from the 5th bit to the 20th bit are output. For the position, the stored data element is output, and the 21st bit and 22nd bit are sign-extended and output.
  • the sign of the input data is output at the higher digit position than the retained data, and the lower order than the retained data.
  • a data element with a value of 0 is output at the digit position.
  • the control signal holding circuit 40 holds the second control signal C2 [l: 0] and outputs it to the second shift circuit 50.
  • the 8-bit left shift circuit 51 and the 16-bit right shift circuit 52 constituting the second shift circuit 50 hold the bit data C2 [0] and C2 [1] of the second control signal in the control signal holding circuit 40, respectively. It is controlled by the output after being done.
  • the signal held in the control signal holding circuit 40 is also expressed as the second control signal C2 [l: 0].
  • the bit data C2 [l] of the second control signal is active "Hi"
  • the bit data C2 [0] of the second control signal is passive "Lo". Become.
  • the output of the intermediate data holding circuit 30 input to the second shift circuit 50 is shifted based on the second control signal C2 [1: 0].
  • the 8-bit left shift processing circuit 51 does not perform the shift process, and the 23rd to 30th bits are sign-extended and output as 31-bit width data.
  • 16-bit right shift circuit 52 performs 16-bit right shift processing, the 15th bit is sign-extended, and 16-bit Output as output data of width data.
  • FIG. 7 is an explanatory diagram of the operation of the intermediate data holding circuit 30.
  • the intermediate data holding circuit 30 operates as follows based on the output of the decoding circuit 60 according to the state of the first control signal C1 [2: 0].
  • Bit data C1 [0] of the first control signal is in an active state “Hi”, and bit data CI [1] and C1 [2] of the first control signal are in a passive state “Lo”.
  • the 1-bit left shift processing circuit 11 shifts 1 bit to the left
  • the 2-bit left shift processing circuit 12 and the 4-bit left shift processing circuit 13 do not perform shift processing
  • the first shift circuit 10 Since the data is shifted 1 bit to the left, the intermediate data holding circuit 30 is used as intermediate data.
  • Data elements at the digit positions from the first bit 1 to the 16th bit, which are the output digit positions of the input data, are used. Stored and retained.
  • Bit data CI [1] of the first control signal is in an active state “Hi”, and bit data C1 [0] and C1 [2] of the first control signal are in a passive state “Lo”.
  • the 2-bit left shift processing circuit 12 shifts the left by 2 bits
  • the 1-bit left shift processing circuit 11 and the 4-bit left shift processing circuit 13 do not perform the shift process
  • the first shift circuit 10 As the intermediate data is shifted to the left by 2 bits, the intermediate data holding circuit 30 stores and holds the data elements from the 2nd bit to the 17th bit which are the digit positions where the input data is output. .
  • Bit data C1 [0], CI [1] of the first control signal is in an active state “Hi”, and bit data C1 [2] of the first control signal is in a passive state “Lo”.
  • the 1-bit left shift processing circuit 11 shifts 1 bit to the left
  • the 2-bit left shift processing circuit 12 shifts 2 bits to the left.
  • the first shift circuit 10 shifts 3 bits to the left
  • the intermediate data holding circuit 30 the data elements from the third bit to the 18th bit, which are the digit positions to which the input data is output, are stored and held.
  • Bit data C1 [2] of the first control signal is in an active state “Hi”, and bit data C1 [0] and CI [1] of the first control signal are in a passive state “Lo”.
  • the 4-bit left shift processing circuit 13 shifts the left by 4 bits, the 1-bit left shift processing circuit 11 and the 2-bit left shift processing circuit 12 do not perform the shift process, and the first shift processing circuit 10 Is shifted left by 4 bits, so the intermediate data holding circuit 30 stores and holds the data elements from the 4th bit to the 19th bit, which are the output data output digit positions.
  • Bit data C1 [0], C1 [2] of the first control signal is in an active state “Hi”, and bit data CI [1] of the first control signal is in a passive state “Lo”.
  • the 1-bit left shift processing circuit 11 shifts 1 bit to the left
  • the 4-bit left shift processing circuit 13 shifts 4 bits to the left. Since the first shift processing circuit 10 shifts left by 5 bits, the intermediate data includes the 5th bit to the 20th bit, which is the digit position where the input data is output. The data element is stored and held in the intermediate data holding circuit 30.
  • Bit data CI [1], C1 [2] of the first control signal is in an active state “Hi”, and bit data C2 [0] of the first control signal is in a passive state “Lo”.
  • the 2-bit left shift processing circuit 12 shifts the left by 2 bits
  • the 4-bit left shift processing circuit 13 shifts the left by 4 bits. Since the first shift processing circuit 10 shifts 6 bits to the left, the intermediate data includes the 6th bit to the 21st bit, which is the output digit position of the input data. The data element is stored and held in the intermediate data holding circuit 30.
  • bit data C1 [0], CI [1], C1 [2] of the first control signal are all in an active state “Hi”, 1-bit left shift processing circuit 11, 2-bit left shift processing Since the circuit 12 and the 4-bit left shift processing circuit, that is, the first shift processing circuit 10 shifts 7 bits to the left, the intermediate data starts from the 7th bit which is the digit position where the input data is output. Data elements up to the 22nd bit are stored and held in the intermediate data holding circuit 30. Thus, only the data element of the input data among all the data elements constituting the intermediate data is newly stored and held in the intermediate data holding circuit 30.
  • FIG. 8 is an operation explanatory diagram of the intermediate data holding circuit.
  • the decode circuit 60 may decode a part of the first control signal C1 [2: 0].
  • the first control signal Cl [2: l] is decoded and output to the intermediate data holding circuit 30.
  • the intermediate data holding circuit 30 operates as follows based on the output of the decoding circuit 60 according to the state of the first control signal CI [1: 0].
  • bit data CI [1] and C1 [2] of the first control signal are both in the passive state “Lo”, as described with reference to FIG. 7, the bit data C1 of the first control signal Regardless of the state of [0], the data elements from the 0th bit to the 16th bit in the intermediate data contain the data elements of the input data, so the 16th bit from the 0th bit The data element at the digit position up to the bit is stored and held in the intermediate data holding circuit 30.
  • bit data CI [1] of the first control signal is in the active state “Hi” and the bit data C1 [2] of the first control signal is in the passive state “Lo”, FIG.
  • the bit data C1 [0] of the first control signal is in any state, the data elements at the digit positions from the second bit to the 18th bit in the intermediate data. Since the data element of the input data is included, the data elements at the digit positions from the second bit to the 18th bit are stored and held in the intermediate data holding circuit 30.
  • the bit data C1 [2] of the first control signal is in the active state “Hi” and the bit data C 1 [1] of the first control signal is in the passive state “Lo”, As explained using Fig. 7, regardless of the state of bit data C1 [0] of the first control signal, the data elements at the digit positions from the 4th bit to the 20th bit in the intermediate data Includes the data element of the input data, so that the data elements at the digit positions from the 4th bit to the 20th bit are stored and held in the intermediate data holding circuit 30.
  • bit data CI [1] and C1 [2] of the first control signal are both in the active state "Hi", as described with reference to FIG. 7, the bit data C1 of the first control signal Regardless of the state of [0], the data element of the digit position from the 6th bit to the 22nd bit in the intermediate data includes the data element of the input data, so the 6th bit From 22nd The data elements at the digit positions up to the bit are stored and held in the intermediate data holding circuit 30.
  • FIG. 9 is an explanatory diagram of the operation of the intermediate data holding circuit.
  • the decode circuit 60 may decode a part of the first control signal C1 [2: 0].
  • the bit data C1 [2] of the 1-bit first control signal which is smaller than that shown in FIG. 8, is output to the intermediate data holding circuit 30 as it is.
  • the intermediate data holding circuit 30 operates as follows based on the output of the decoding circuit 60 according to the state of the bit data C1 [2] of the first control signal.
  • bit data C1 [2] of the first control signal is in the passive state “Lo”, as described with reference to FIG. 7, the bit data C1 [0] and Cl [ In any state of [l], the data elements at the digit positions from the 0th bit to the 18th bit in the intermediate data contain the data elements of the input data. Data elements at the digit positions up to the 18th bit are stored and held in the intermediate data holding circuit 30.
  • the bit data C1 [2] of the first control signal is in the active state “Hi”, as described with reference to FIG. 7, the first control signal bit data C1 [0] and Cl [l ],
  • the data elements at the digit positions from the 4th bit to the 22nd bit in the intermediate data include the data element of the input data, so the 22nd to the 22nd
  • the data elements at the digit positions up to this bit are stored and held in the intermediate data holding circuit 30.
  • At least the data element of the input data is stored and held in the intermediate data holding circuit 30, and the sign extension data and the value 0 padded data are partially stored.
  • the power that is most effective for power saving in the case of FIG. 7 is decoded by decoding a part of the first control signal C1 [2: 0] as shown in FIGS.
  • the circuit 60 can be simplified.
  • the operation of the intermediate data holding circuit 30 is controlled in the second embodiment.
  • the barrel shift device of the present invention controls the operation of the intermediate data holding circuit inserted between the shift circuits by the pipeline structure and suppresses the operation of storing and holding unnecessary data elements not reflected in the output data. This makes it possible to save power in the barrel shift device, which is useful as a component of a semiconductor device that performs multi-bit data left / right shift processing in digital signal processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)
  • Dram (AREA)

Abstract

 バレルシフト装置をパイプラインレジスタで分割し、シフト処理を多段処理ステージで実行する場合に、第2のシフト回路50のシフト量を制御する第2の制御信号をデコード回路20でデコードすることにより、第2のシフト回路50から最終的に出力データとして出力されるデータ要素が中間データ保持回路30での中間データのどの桁位置にあるかを検出する。中間データ保持回路30は、上記デコード回路20の桁位置の検出結果に基づいて中間データ中のデータ要素のうち、最終的に出力されるデータ要素のみを保持し、出力データには反映されない不用なデータ要素は保持しない。従って、中間データ保持回路30でのデータ格納動作を制御して、パイプライン構造化による電力増加が抑制される。

Description

明 細 書
バレルシフト装置
技術分野
[0001] 本発明は、デジタル信号処理における多ビットデータの左右シフト処理を行うバレ ルシフト装置に関するものである。
背景技術
[0002] 従来のバレルシフト装置は、多段のセレクタにより構成される。一方、信号処理にお いてスループットを向上させる目的で、バレルシフト装置をパイプラインレジスタで分 割し、シフト処理を多段処理ステージで実行する必要性が生じて 、る。
[0003] 従来の多段セレクタ構成のバレルシフト装置として、例えば、特許文献 1がある。特 許文献 1記載のバレルシフト装置は、制御信号によりシフトする力 ないかを選択す るセレクタにより構成されるシフト回路を多段に組合わせた構造を持つ。例えば、左 1 5ビットシフトから右 16ビットシフトの間で任意のシフトを実現する場合、それぞれ 1ビ ット、 2ビット、 4ビット、 8ビットの左シフト機能を持つシフト回路と 16ビット右シフト機能 を持つシフト回路を多段に組合わせることにより実現できる。この場合、右 5ビットシフ トを実現するには、 1ビット左シフト回路、 2ビット左シフト回路、 8ビット左シフト回路と 1 6ビット右シフト回路をアクティブにすればよい。
[0004] 以下に図 10を用いて特許文献 1記載のバレルシフト装置にパイプライン構造を導 入した際の構成及びその動作の説明を詳細に行う。
[0005] 図 10は特許文献 1記載のバレルシフト装置にパイプライン構造を導入した際の概 略図である。第 1のシフト回路 10は入力データを第 1の制御信号に基づいてシフト処 理し中間データ 30として出力する。ここで、第 1のシフト回路 10は 1ビット左シフト回 路 11と 2ビット左シフト回路 12と 4ビット左シフト回路 13とから構成されており、左 7ビッ トシフトから 0ビットシフトまでの任意のシフトを実現する。
[0006] 中間データ保持回路 30は第 1のシフト回路 10の出力である中間データを保持し、 次の第 2のシフト回路へ出力する。
[0007] 制御信号保持回路 40は第 2の制御信号を保持し、出力する。 [0008] 第 2のシフト回路 50は中間データを制御信号保持回路 40の出力する第 2の制御 信号に基づいてシフト処理し出力データとして出力する。ここで、第 2のシフト回路 50 は 8ビット左シフト回路 51と 16ビット右シフト回路 52とから構成されており、第 1のシフ ト回路でのシフト処理と組合わせることにより入力データの左 15ビットシフトから右 16 ビットシフトの間の任意のシフトを実現する。
特許文献 1 :特開 2000— 293354号公報 (第 7頁、第 1図)
発明の開示
発明が解決しょうとする課題
[0009] し力しながら、従来のパイプラインレジスタで分割するバレルシフト装置の技術では
、第 1のシフト回路を構成する各シフト回路を経由するごとにデータのビット幅が大き くなり、これにより、第 1のシフト回路力も出力される中間データのビット幅が大きくなり
、更には、中間データ保持回路の実装規模が増大してしまうため、消費電力が増加 するという課題があった。
[0010] 本発明は上記従来の課題を解決するものであり、中間データ保持回路のデータの 格納動作を制御することにより、ノ ィプライン構造ィ匕による電力増加を抑制することを 目的とする。
課題を解決するための手段
[0011] 上記目的を達成するために、本発明のバレルシフト装置では、中間データ保持回 路に保持する中間データのうち、最終出力データとして出力されるデータ要素以外 の全部又は一部の不用なデータ要素の格納動作を抑制するようにする。
[0012] すなわち、本発明のバレルシフト装置は、所定のビット幅の入力データを受け、第 1 のシフト量及び第 2のシフト量を組み合わせた合計シフト量だけ前記入力データを左 右シフトして、所望シフト後の出力データとして出力するバレルシフト装置において、 前記入力データを受け、前記第 1のシフト量を制御する第 1の制御信号に基づいて 前記入力データをシフトし、中間データとして出力する第 1のシフト手段と、前記第 1 のシフト手段力 の中間データを保持するための中間データ保持手段と、前記第 2の シフト量を制御する前記第 2の制御信号を保持し、出力する制御信号保持手段と、 前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手段 の出力する前記第 2の制御信号に基づいて、前記受けた中間データをシフトさせて、 前記所望シフト後の出力データとして出力する第 2のシフト手段とを備えると共に、前 記第 2の制御信号を受け、この第 2の制御信号に基づき、前記第 1のシフト手段から の中間データを構成する全てのデータ要素のうち、前記第 2のシフト手段力も所望シ フト後の出力データとして出力されるデータ要素以外のデータ要素を一部又は全部 除いたデータ要素の前記中間データ内での桁位置を検出するデコード手段を備え、 前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づい て、前記中間データのうち、前記第 2のシフト手段力 所望シフト後の出力データとし て出力されるデータ要素以外のデータ要素の一部又は全部が除かれ、少なくとも前 記第 2のシフト手段力 所望シフト後の出力データとして出力されるデータ要素を含 む桁位置のデータ要素を新たに保持することを特徴とする。
[0013] 本発明は、前記バレルシフト装置において、前記デコード手段は、前記第 2の制御 信号が示す情報の全部に基づいて、前記第 1のシフト手段力 の中間データを構成 する全てのデータ要素のうち、前記第 2のシフト手段力 所望シフト後の出力データと して出力されるデータ要素のみの前記中間データ内での桁位置を検出することを特 徴とする。
[0014] 本発明は、前記バレルシフト装置において、前記デコード手段は、前記第 2の制御 信号が示す情報の一部に基づいて、前記第 1のシフト手段力 の中間データを構成 する全てのデータ要素のうち、前記第 2のシフト手段力 所望シフト後の出力データと して出力されるデータ要素以外のデータ要素を一部除いたデータ要素の前記中間 データ内での桁位置を検出することを特徴とする。
[0015] 本発明は、前記バレルシフト装置において、前記第 2の制御信号は複数のビット信 号からなる制御信号であって、前記中間データ保持手段は、前記第 2の制御信号の 所定の 1ビット信号に基づいて、前記第 1のシフト手段からの中間データを構成する 全てのデータ要素のうち、前記第 2のシフト手段力も所望シフト後の出力データとして 出力されるデータ要素以外のデータ要素が一部除かれた桁位置のデータ要素を保 持及び出力することを特徴とする。
[0016] 本発明のバレルシフト装置は、所定のビット幅の入力データを受け、第 1のシフト量 及び第 2のシフト量を組み合わせた合計シフト量だけ前記入力データを左右にシフト して、所望シフト後の出力データとして出力するバレルシフト装置において、前記入 力データを受け、前記第 1のシフト量を制御する第 1の制御信号に基づいて前記入 力データをシフトし、中間データとして出力する第 1のシフト手段と、前記第 1のシフト 手段からの中間データを保持するための中間データ保持手段と、前記第 2のシフト量 を制御する第 2の制御信号を保持し、出力する制御信号保持手段と、前記中間デー タ保持手段に保持された中間データを受け、前記制御信号保持手段の出力する前 記第 2の制御信号に基づいて、前記受けた中間データをシフトさせて、前記所望シフ ト後の出力データとして出力する第 2のシフト手段とを備えると共に、前記第 1の制御 信号を受け、この第 1の制御信号に基づき、前記第 1のシフト手段力もの中間データ を構成する全てのデータ要素のうち、前記入力データに含まれるデータ要素の桁位 置を検出するデコード手段とを備え、前記中間データ保持手段は、前記デコード手 段で検出された前記桁位置に基づいて、前記中間データを構成する全てのデータ 要素のうち、少なくとも前記入力データに含まれるデータ要素を含む桁位置のデータ 要素を新たに保持することを特徴とする。
[0017] 本発明は、前記バレルシフト装置において、前記デコード手段は、前記第 1の制御 信号が示す情報の全部に基づいて、前記第 1のシフト手段力 の中間データを構成 する全てのデータ要素のうち、前記入力データに含まれるデータ要素のみの前記中 間データ内での桁位置を検出することを特徴とする。
[0018] 本発明は、前記バレルシフト装置において、前記デコード手段は、前記第 1の制御 信号が示す情報の一部に基づいて、前記第 1のシフト手段力 の中間データを構成 する全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ 要素の一部を除いたデータ要素の前記中間データ内での桁位置を検出することを 特徴とする。
[0019] 本発明は、前記バレルシフト装置において、前記第 1の制御信号は複数ビットの信 号からなる制御信号であって、前記中間データ保持手段は、前記第 1の制御信号の 所定の 1ビットの信号に基づいて、前記第 1のシフト手段からの中間データを構成す る全てのデータ要素のうち、前記入力データに含まれるデータ要素以外のデータ要 素の一部が除かれた桁位置のデータ要素を保持及び出力することを特徴とする。
[0020] 以上により、本発明では、第 2のシフト手段で施されるシフト量を制御する第 2の制 御信号を、デコード手段を用いてデコードすることにより、中間データから出力データ として出力されるデータ要素の桁位置を検出し、中間データ保持手段では、少なくと も前記桁位置の中間データ要素を保持するように動作する。従って、最終データとし て出力されない不用なデータ要素を中間データ保持手段で格納せず、以前保持し ていたデータ要素を保持し続けるので、その分、省電力化が可能となる。
[0021] また、本発明では、第 1のシフト手段で施されるシフト量を制御する第 1の制御信号 を、デコード手段を用いてデコードすることにより、中間データを構成する全てのデー タ要素のうち、少なくとも入力データに含まれるデータ要素の桁位置を検出し、中間 データ保持手段では、少なくともこの桁位置の中間データ要素を保持するように動作 する。従って、入力データのデータ要素でないデータ要素を中間データ保持手段で 格納せず、以前保持していたデータ要素を保持し続けるので、その分、省電力化が 可能となる。
発明の効果
[0022] 以上説明したように、本発明のバレルシフト装置によれば、パイプライン構造ィ匕によ り挿入される中間データ保持手段力 データを出力するまでの間の第 2のシフト手段 で施されるシフト量の情報を制御信号として用いて、中間データ保持手段での最終 的には出力されないデータ要素の保持動作を抑制したので、省電力化を実現するこ とが可能となる。
[0023] また、本発明のバレルシフト装置によれば、データの入力からパイプライン構造ィ匕 により挿入される中間データ保持手段までの間の第 1のシフト手段で施されるシフト 量の情報を制御信号として用いて、中間データ保持手段での不要なデータ要素の 格納保持の動作を抑制したので、省電力化を実現することが可能となる。
図面の簡単な説明
[0024] [図 1]図 1は本発明の第 1の実施の形態のバレルシフト装置の概略図である。
[図 2]図 2は本発明の第 1の実施の形態の 11ビット右シフト処理の動作説明図である [図 3]図 3は本発明の第 1の実施の形態の中間データ保持回路の動作説明図である 圆 4]図 4は本発明の第 1の実施の形態の中間データ保持回路の動作説明図である
[図 5]図 5は本発明の第 2の実施の形態のバレルシフト装置の概略図である。
[図 6]図 6は本発明の第 2の実施の形態の 11ビット右シフト処理の動作説明図である
[図 7]図 7は本発明の第 2の実施の形態の中間データ保持回路の動作説明図である
[図 8]図 8は本発明の第 2の実施の形態の中間データ保持回路の動作説明図である
[図 9]図 9は本発明の第 2の実施の形態の中間データ保持回路の動作説明図である
[図 10]図 10は従来の技術の構成を示す概略図である。
符号の説明
10 第 1のシフト回路 (第 1のシフト手段)
11 1ビット左シフト回路
12 2ビット左シフト回路
13 4ビット左シフト回路
20、 60 デコード回路 (デコード手段)
30 中間データ保持回路(中間データ保持手段)
40 制御信号保持回路 (制御信号保持手段)
50 第 2のシフト回路 (第 2のシフト手段)
51 8ビット左シフト回路
52 16ビット右シフト回路
Cl [2 : 0] 第 1の制御信号
C1 [0] 第 1の制御信号の 1ビットデータ
(所定の 1ビット信号) C2[l : 0] 第 2の制御信号
C2[0] 第 2の制御信号の 1ビットデータ
(所定の 1ビット信号)
Hi 信号のアクティブな状態
Lo 信号のパッシブな状態
0 値 0の出力
S 符号拡張出力
H データ保持出力
発明を実施するための最良の形態
[0026] 以下、本発明の実施の形態について図面を参照しながら説明する。
[0027] (第 1の実施の形態)
第 1の実施の形態のバレルシフト装置の概略図を図 1に示す。
[0028] 本実施の形態におけるバレルシフト装置は、図 1に示すように、パイプラインレジス タで分割され、多段処理ステージでシフト処理が実行される。
[0029] ここでは、この図 1を用いて、本実施の形態のバレルシフト装置の構成を説明する。
尚、本実施の形態では、簡単のため 16ビットデータ (所定のビット幅の入力データ)を 左 15ビットから右 16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提 として説明する。
[0030] 図 1において、 10は第 1のシフト回路であり、 3ビットデータ力もなる第 1の制御信号 に基づいて入力データをシフト処理し、中間データ保持回路 30へ中間データを出力 する。この第 1のシフト回路 10は、 1ビット左シフト回路 11、 2ビット左シフト回路 12及 び 4ビット左シフト回路 13の 3つのシフト回路で構成される。これら 3つのシフト回路 1 1、 12、 13は、それぞれ、前記第 1の制御信号のうち対応するビットデータを受ける。 すなわち、第 1の制御信号の各ビットデータの組み合わせにより、 3つのシフト回路 1 1、 12、 13でのシフト処理を組み合わせて、左 7ビットシフトから 0ビットシフトまでの任 意のシフト量 (第 1のシフト量)を実現する。
[0031] 50は第 2のシフト回路であって、中間データ保持回路 30の出力する中間データを 受け、第 1のシフト回路 10におけるシフト処理に続いて所定のシフト処理を行い、全 体として所望のシフトを完成させ、出力データを出力する。この第 2のシフト回路 50は 、図 1に示すように、 8ビット左シフト回路 51と 16ビット右シフト回路 52とから構成され る。また、この第 2のシフト回路 50は、第 1のシフト回路 10と同様に外部から入力され る第 2の制御信号の制御によりシフト(第 2のシフト量のシフト)処理を行うのである力 第 2の制御信号は第 2のシフト回路 50へ直接入力されない。第 2の制御信号は、デコ ード回路 20に入力されると共に、第 2の制御信号を一旦保持する制御信号保持回路 40を介して第 2のシフト回路 50に入力される。この制御信号保持回路 40を介して第 2のシフト回路 50に入力された第 2の制御信号は、 2分割され、第 2のシフト回路 50 中の 2つのシフト回路 51及び 52にそれぞれ入力される。そして、 2つのシフト回路 51 及び 52によるそれぞれのシフト処理の組み合わせにより、第 1のシフト回路 10による シフト処理に続くシフト処理を行い、入力データの左 15ビットシフトから右 16ビットシ フトの間の任意のシフト、すなわち、所望のシフトを完成させ、出力する。
[0032] 一方、第 2の制御信号が入力されたデコード回路 20は、中間データのデータ要素 のうち、第 2のシフト回路 50によりシフト処理された結果として出力される出力データ のデータ要素の中間データ保持回路 30中の桁位置を、第 2の制御信号に基づいて 検出し、その検出結果を中間データ保持回路 30に対して出力する。このデコード回 路 20の検出結果を用いて、中間データ保持回路 30は、出力データとして第 2のシフ ト回路 50から出力される桁位置のデータ要素のみ、又は、この出力される桁位置の データ要素を含むデータ要素であって且つ出力データに反映されない不用なデー タを一部除いたデータ要素を保持する。このようなデコード回路 20の働きにより、中 間データ保持回路 30は、出力データのデータ要素として出力されない不用なデータ 要素を保持しなくても済む分だけ不用な格納動作を省略できるので、省電力化が可 能である。
[0033] 次に、図 2を用いて、本実施の形態のバレルシフト装置について、具体的なシフト 処理の動作説明を行う。ここでは、シフト処理の具体例として、 11ビット右シフト処理 を行った場合について説明する。また、図中の" 0"は値 0を、 "S"は符号拡張を、 "H "は保持データを示す。
[0034] 図 2に示す第 1の制御信号 C1 [2 : 0]は 3ビットデータであり、 3つの 1ビットデータ C 1 [0]、 Cl [l]、 Cl [2]から構成される。第 1のシフト回路 10を構成する 1ビット左シフ ト回路 11、 2ビット左シフト回路 12、 4ビット左シフト回路 13は、それぞれ、第 1の制御 信号の各ビットデータ C1 [0]、 Cl [l]、 CI [2]により制御される。 11ビット右シフト処 理時は第 1の制御信号の 1ビットデータ C1 [0]、 Cl [2]がアクティブな状態" Hi"、ま た、第 1の制御信号の 1ビットデータ CI [1]力パッシブな状態 "Lo"となる。第 1のシフ ト回路 10に入力された入力データは第 1の制御信号 C1 [2: 0]に基づいてシフト処 理される。
[0035] まず、 1ビット左シフト回路 11で 1ビット左シフト処理され、 0番目のビットデータには 値 0が埋められ、 17ビット幅データとして出力される。次に、 2ビット左シフト処理回路 12ではシフト処理されず、 17番目のビットデータ及び 18番目のビットデータが符号 拡張され、 19ビット幅データとして出力される。更に、 4ビット左シフト回路 13では 4ビ ット左シフト処理され、 0番目のビットデータ、 1番目のビットデータ、 2番目のビットデ ータ、及び 3番目のビットデータには値 0が埋められ、 23ビット幅データの中間データ として中間データ保持回路 30へ出力される。
[0036] 第 2の制御信号 C2[l : 0]は 2ビットデータであり、 1ビットデータ C2[0]、 C2[l]で 構成される。第 2のシフト回路 50を構成する 8ビット左シフト回路 51、 16ビット右シフト 回路 52は、第 2の制御信号の各ビットデータ C2[0]、 C2[l]で制御される。デコード 回路 20は、それぞれ、第 2のシフト回路 50でのシフト処理後出力される出力データ のデータ要素が中間データのどの桁位置に出力されているかを第 2の制御信号 C2[ 1 : 0]から検出し、この検出結果を中間データ保持回路 30へ出力する。この桁位置 の検出動作を具体的に説明すると、例えば、 11ビット右シフト処理時は第 2の制御信 号のビットデータ C2[l]がアクティブな状態" Hi"、また、第 2の制御信号のビットデー タ C2[0]がパッシブな状態" Lo"となり、第 2のシフト回路 50では 16ビット右シフト処 理が施されるので、中間データの 16番目のビットから 22番目までのビットの桁位置の データ要素が出力データのデータ要素として出力されることが分かる。従って、中間 データ保持回路 30はデコード回路 20の桁位置の検出結果に基づいて、中間データ の 16番目のビットから 22番目までのビットの桁位置のデータ要素を新たに格納保持 し、これら検出された桁位置以外の 0番目のビットから 15番目のビットまでの桁位置 のデータ要素に関しては以前の保持データ要素をそのまま継続して保持する。
[0037] 制御信号保持回路 40は第 2の制御信号 C2[l : 0]を保持し、第 2のシフト回路 50 へ出力する。第 2のシフト回路 50を構成する 8ビット左シフト回路 51、 16ビット右シフ ト回路 52はそれぞれ第 2の制御信号の各ビットデータ C2[0]、C2[1]が制御信号保 持回路 40に保持された後の出力により制御される。以下、簡単のため制御信号保持 回路 40に保持された後の信号も第 2の制御信号 C2[l : 0]と表現する。 11ビット右シ フト処理時は第 2の制御信号のビットデータ C2[l]がアクティブな状態" Hi"、また、 第 2の制御信号のビットデータ C2[0]力パッシブな状態 "Lo"となる。第 2のシフト回 路 50に入力された中間データ保持回路 30の出力は前記第 2の制御信号 C2[l : 0] に基づ!/ヽてシフト処理される。
[0038] まず、 8ビット左シフト処理回路 51ではシフト処理されず、 23番目のビットから 30番 目のビットまでの桁位置が符号拡張され、 31ビット幅データとして出力される。次に、 16ビット右シフト回路 52では 16ビット右シフト処理され、 15番目のビットの桁位置が 符号拡張され、 16ビット幅データの出力データとして出力される。
[0039] 図 3は中間データ保持回路 30の動作説明図である。中間データ保持回路 30は第 2の制御信号 C2 [1: 0]の状態によりデコード回路 20の出力に基づ 、て、以下のよう に動作する。
[0040] 第 2の制御信号の各ビットデータ C2[0]、 C2[l]が共にパッシブな状態" Lo"のとき 、 0番目のビットから 15番目のビットまでの桁位置の中間データのデータ要素がその まま 16ビットの出力データとして出力されるので、その 0番目のビットから 15番目のビ ットまでの桁位置の中間データのデータ要素が中間データ保持回路 30に格納保持 される。
[0041] 第 2の制御信号のビットデータ C2[0]がアクティブな状態" Hi"で、また、第 2の制御 信号のビットデータ C2[l]がパッシブな状態" Lo"のとき、 8ビット左シフト処理回路 5 1により 8ビット左シフトされ、 16ビット右シフト処理回路 52ではシフト処理されずその ままであり、第 2のシフト回路 50では 8ビット左シフトされることになるため、中間データ の中で 8ビット左シフトされて出力データの 16ビット幅に残る 0番目のビットから 7番目 のビットまでの桁位置のデータ要素が中間データ保持回路 30に格納保持される。 [0042] 第 2の制御信号のビットデータ C2[l]がアクティブな状態" Hi"で、また、第 2の制御 信号のビットデータ C2[0]がパッシブな状態" Lo"のとき、 8ビット左シフト処理回路 5 1ではシフト処理されずそのままであり、 16ビット右シフト処理回路 52により 16ビット 右シフト処理され、第 2のシフト回路 50では 16ビット右シフト処理されることになるた め、中間データの中で 16ビット右シフトされて出力データの 16ビット幅に残る 16番目 のビットから 22番目のビットまでの桁位置のデータ要素が中間データ保持回路 30に 格納保持される。
[0043] 第 2の制御信号の各ビットデータ C2[0]、 C2[l]が共にアクティブな状態" Hi"のと き、 8ビット左シフト処理回路 51により 8ビット左シフトされ、 16ビット右シフト処理回路 52により 16ビット右シフト処理され、第 2のシフト処理回路 50では 8ビット右シフト処理 されることになるため、中間データの中で 8ビット右シフトされて出力データの 16ビット 幅に残る 8番目のビットから 22番目のビットまでの桁位置のデータ要素が中間データ 保持回路 30に格納保持される。
[0044] このように、中間データを構成する全てのデータ要素のうち、出力データとなるデー タ要素のみが中間データ保持回路 30に格納保持されることになる。
[0045] 図 4は中間データ保持回路 30の動作説明図である。デコード回路 20は第 2の制御 信号 C2[l : 0]の一部の信号をデコードするようにしてもよい。ここでは、第 2の制御 信号のビットデータ (所定の 1ビットデータ) C2[l]をそのまま中間データ保持回路 30 に出力する。中間データ保持回路 30は第 2の制御信号のビットデータ C2[l]の状態 によりデコード回路 20の出力に基づ 、て、以下のように動作する。
[0046] 第 2の制御信号のビットデータ C2[l]力パッシブな状態 "Lo"のとき、図 3で説明し たように、第 2の制御信号のビットデータ C2[0]が何れの状態であっても、中間デー タ中の 0番目のビットから 15番目のビットまでの桁位置のデータ要素には、第 2のシフ ト回路 50から出力される出力データが含まれるので、 0番目のビットから 15番目のビ ットまでの桁位置のデータ要素が中間データ保持回路 30に格納保持される。
[0047] また、第 2の制御信号のビットデータ C2 [1]がアクティブな状態" Hi"のとき、図 3で 説明したように、第 2の制御信号のビットデータ C2[0]が何れの状態であっても、中 間データ中の 8番目のビットから 22番目のビットまでの桁位置のデータ要素には、第 2のシフト回路 50から出力される出力データが含まれているので、 8番目のビットから 22番目のビットまでの桁位置のデータ要素が中間データ保持回路 30に格納保持さ れる。
[0048] このように、少なくとも出力データとなるデータ要素を含む桁位置がデコード回路 20 により検出され、その出力データを含む桁位置のデータ要素が中間データ保持回路 30に格納保持され、一部に符号拡張データ、又は値 0を埋めたデータが格納される 場合もある。
[0049] 上記図 3の場合が省電力に最も効果的であるが、第 2の制御信号 C2[l : 0]の一部 についてデコードすることによりデコード回路 20の回路を簡単ィ匕することができる。
[0050] 以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値 0拡張に置き換えればよい。また、他のシフト処理についても同様である。
[0051] このようにして、第 1の実施の形態においては中間データ保持回路 30の動作を制 御することにより、中間データ保持回路 30を構成する記憶回路への不用なデータ要 素の格納動作を防ぎ、以前のデータ要素を引き続き保持することにより、従来の技術 と比べて中間データ保持回路 30の省電力化と第 2のシフト回路の活性ィ匕を抑えるこ とによる省電力化が可能となる。
[0052] (第 2の実施の形態)
第 2の実施の形態のバレルシフト装置の概略図を図 5に示す。
[0053] 本実施の形態における図 5のバレルシフト装置は、第 1の実施の形態と同様に、ノ ィプラインレジスタで分割され、多段処理ステージでシフト処理が実行される。
[0054] 先ず、図 5を用いて、本実施の形態のバレルシフト装置の構成を説明する。尚、本 実施の形態では、簡単のため 16ビットデータ(所定のビット幅の入力データ)を左 15 ビットから右 16ビットの範囲で任意に算術シフト可能なバレルシフト装置を前提として 説明する。また、第 1の実施の形態において、図 1を用いて説明したバレルシフト装 置と同一構成については、同一符号を付し、その説明を省略する。
[0055] 図 5におけるバレルシフト装置力 第 1の実施の形態において示した図 1のバレルシ フト装置と異なるのは、デコード回路 60の受ける制御信号が第 2の制御信号ではなく 第 1の制御信号であり、第 1のシフト回路 10によりシフトされた入力データ要素の、中 間データ保持回路 30中における桁位置を、入力された第 1の制御信号に基づいて 検出する点である。この第 1の制御信号に基づく検出では、デコード回路 60は、第 1 のシフト回路 10から出力されるデータのうち、少なくとも第 1のシフト回路によるシフト 後の入力データのデータ要素が出力される桁位置を検出する。そして、この検出結 果を受けた中間データ保持回路 30は、中間データを構成する全てのデータ要素の うち、前記入力データのデータ要素以外のデータ要素を一部又は全部除いたデータ 要素のみを保持し、この保持していたデータ要素を第 2のシフト回路 50へ出力する。
[0056] これにより、中間データ保持回路 30に保持すべきデータを縮小することができ、不 用な格納動作を抑制できるので省電力化が可能である。
[0057] 次に、図 6を用いて、本実施の形態のバレルシフト装置について、具体的なシフト 処理の動作説明を行う。ここでは、シフト処理の具体例として、 11ビット右シフト処理 を行った場合について説明する。また、図中の" 0"は値 0を、 "S"は符号拡張を、 "H "は保持データを示す。
[0058] 第 1の制御信号 C1 [2 : 0]は 3ビットデータであり、 1ビットデータ C1 [0]、 Cl [l]、 C 1 [2]で構成される。第 1のシフト回路 10を構成する 1ビット左シフト回路 11、 2ビット 左シフト回路 12、 4ビット左シフト回路 13はそれぞれ第 1の制御信号の各ビットデータ C1 [0]、 Cl [l]、 CI [2]により制御される。 11ビット右シフト処理時は第 1の制御信 号のビットデータ C1 [0]、 Cl [2]がアクティブな状態" Hi"、また、第 1の制御信号の ビットデータ CI [1]力パッシブな状態 "Lo"となる。第 1のシフト回路 10に入力された 入力データは前記第 1の制御信号 C 1 [ 2: 0]に基づ 、てシフト処理される。
[0059] まず、 1ビット左シフト回路 11で 1ビット左シフト処理され、 0番目のビットの桁位置に は値 0のデータ要素が埋められ、 17ビット幅データとして出力される。次に、 2ビット左 シフト処理回路 12ではシフト処理されず、 17番目のビットと 18番目のビットとが符号 拡張され、 19ビット幅データとして出力される。更に、 4ビット左シフト回路 13では 4ビ ット左シフト処理され、 0番目のビット、 1番目のビット、 2番目のビット、及び 3番目のビ ットの桁位置には値 0のデータ要素が埋めれら、 23ビット幅データの中間データとし て中間データ保持回路 30へ出力される。
[0060] デコード回路 60は第 1の制御信号 C1 [2 : 0]から、入力データのデータ要素が中間 データのどの桁位置に出力されているかを検出し、その検出結果を中間データ保持 回路 30へ出力する。 11ビット右シフト処理時は第 1の制御信号のビットデータ C1 [0] 、 Cl [2]がアクティブな状態" Hi"、また、第 1の制御信号のビットデータ Cl [l]がパ ッシブな状態" Lo"となり、第 1のシフト回路 10の部分では、 5ビット左シフト処理が施 されるので、中間データの 5番目のビットから 20番目のビットまでの桁位置のデータ 要素が入力データのデータ要素であることが分かる。
[0061] 中間データ保持回路 30はデコード回路 60の出力に基づいて、中間データの 5番 目のビットから 20番目のビットまでの桁位置のデータ要素を格納保持し、 0番目のビ ットから 4番目のビット、及び 21番目のビット、 22番目のビットの桁位置のデータ要素 に関しては以前の保持データ要素を継続して保持する。そして、第 2のシフト回路 50 へ出力する段階で、 0番目のビットから 4番目のビットの桁位置については値 0のデー タ要素を出力し、 5番目のビットから 20番目のビットまでの桁位置については格納保 持したデータ要素を出力し、 21番目のビット、 22番目のビットについては符号拡張し て出力する。このように、本実施の形態では、算術シフト演算の場合を示しているの で、保持したデータより上位の桁位置には、入力データの符号が出力され、また、保 持したデータより下位の桁位置には、値 0のデータ要素が出力される。
[0062] 制御信号保持回路 40は第 2の制御信号 C2[l : 0]を保持し、第 2のシフト回路 50 へ出力する。第 2のシフト回路 50を構成する 8ビット左シフト回路 51、 16ビット右シフ ト回路 52はそれぞれ第 2の制御信号のビットデータ C2[0]、C2[1]が制御信号保持 回路 40に保持された後の出力により制御される。以下、簡単のため制御信号保持回 路 40に保持された後の信号も第 2の制御信号 C2[l : 0]と表現する。 11ビット右シフ ト処理時は第 2の制御信号のビットデータ C2 [l]がアクティブな状態" Hi"、また、第 2 の制御信号のビットデータ C2 [0]がパッシブな状態" Lo"となる。第 2のシフト回路 50 に入力された中間データ保持回路 30の出力は前記第 2の制御信号 C2 [1 : 0]に基 づいてシフト処理される。
[0063] まず、 8ビット左シフト処理回路 51ではシフト処理されず、 23番目のビットから 30番 目のビットが符号拡張され、 31ビット幅データとして出力される。次に、 16ビット右シ フト回路 52では 16ビット右シフト処理され、 15番目のビットが符号拡張され、 16ビット 幅データの出力データとして出力される。
[0064] 図 7は中間データ保持回路 30の動作説明図である。中間データ保持回路 30は第 1の制御信号 C1 [2 : 0]の状態によりデコード回路 60の出力に基づ 、て、以下のよう に動作する。
[0065] 第 1の制御信号のビットデータ C1 [0]、 CI [1]、 C1 [2]が全てパッシブな状態" Lo "のとき、 0番目のビットから 15番目のビットまでの桁位置の入力データのデータ要素 がそのまま 16ビットの中間データとして第 1のシフト回路 10から出力されるので、 0番 目のビットから 15番目のビットまでの桁位置の中間データのデータ要素が中間デー タ保持回路 30に格納保持される。
[0066] 第 1の制御信号のビットデータ C1 [0]がアクティブな状態" Hi"で、また、第 1の制御 信号のビットデータ CI [1]、 C1 [2]がパッシブな状態" Lo"のとき、 1ビット左シフト処 理回路 11により 1ビット左シフトされ、 2ビット左シフト処理回路 12及び 4ビット左シフト 処理回路 13ではシフト処理されずそのままであり、第 1のシフト回路 10としては 1ビッ ト左シフトすることとなるため、中間データとしては、入力データの出力される桁位置 である 1番目のビッ 1から 16番目のビットまでの桁位置のデータ要素が中間データ保 持回路 30に格納保持される。
[0067] 第 1の制御信号のビットデータ CI [1]がアクティブな状態" Hi"で、また、第 1の制御 信号のビットデータ C1 [0]、 C1 [2]がパッシブな状態" Lo"のとき、 2ビット左シフト処 理回路 12により 2ビット左シフトされ、 1ビット左シフト処理回路 11及び 4ビット左シフト 処理回路 13ではシフト処理されずそのままであり、第 1のシフト回路 10としては 2ビッ ト左シフトすることとなるため、中間データとしては、入力データの出力される桁位置 である 2番目のビットから 17番目のビットまでのデータ要素が中間データ保持回路 30 に格納保持される。
[0068] 第 1の制御信号のビットデータ C1 [0]、 CI [1]がアクティブな状態" Hi"で、また、 第 1の制御信号のビットデータ C1 [2]がパッシブな状態" Lo"のとき、 1ビット左シフト 処理回路 11により 1ビット左シフトされ、且つ、 2ビット左シフト処理回路 12により 2ビッ ト左シフトされ、また、 4ビット左シフト処理回路 13ではシフト処理されずそのままであ り、第 1のシフト回路 10としては 3ビット左シフトすることとなるため、中間データとして は、入力データの出力される桁位置である 3番目のビットから 18番目のビットまでの データ要素が中間データ保持回路 30に格納保持される。
[0069] 第 1の制御信号のビットデータ C1 [2]がアクティブな状態" Hi"で、また、第 1の制御 信号のビットデータ C1 [0]、 CI [1]がパッシブな状態" Lo"のとき、 4ビット左シフト処 理回路 13により 4ビット左シフトされ、 1ビット左シフト処理回路 11及び 2ビット左シフト 処理回路 12ではシフト処理されずそのままであり、第 1のシフト処理回路 10としては 4ビット左シフトすることとなるため、中間データとしては、入力データの出力される桁 位置である 4番目のビットから 19番目のビットまでのデータ要素が中間データ保持回 路 30に格納保持される。
[0070] 第 1の制御信号のビットデータ C1 [0]、 C1 [2]がアクティブな状態" Hi"で、また、 第 1の制御信号のビットデータ CI [1]がパッシブな状態" Lo"のとき、 1ビット左シフト 処理回路 11により 1ビット左シフトされ、且つ、 4ビット左シフト処理回路 13により 4ビッ ト左シフトされ、また、 2ビット左シフト処理回路 12ではシフト処理されずそのままであ り、第 1のシフト処理回路 10としては 5ビット左シフトすることとなるため、中間データと しては、入力データの出力される桁位置である 5番目のビットから 20番目のビットまで のデータ要素が中間データ保持回路 30に格納保持される。
[0071] 第 1の制御信号のビットデータ CI [1]、 C1 [2]がアクティブな状態" Hi"で、また、 第 1の制御信号のビットデータ C2[0]がパッシブな状態" Lo"のとき、 2ビット左シフト 処理回路 12により 2ビット左シフトされ、且つ、 4ビット左シフト処理回路 13により 4ビッ ト左シフトされ、また、 1ビット左シフト処理回路 11ではシフト処理されずそのままであ り、第 1のシフト処理回路 10としては 6ビット左シフトすることとなるため、中間データと しては、入力データの出力される桁位置である 6番目のビットから 21番目のビットまで のデータ要素が中間データ保持回路 30に格納保持される。
[0072] 第 1の制御信号のビットデータ C1 [0]、 CI [1]、 C1 [2]が全てアクティブな状態" H i"のとき、 1ビット左シフト処理回路 11、 2ビット左シフト処理回路 12及び 4ビット左シフ ト処理回路、すなわち、第 1のシフト処理回路 10により 7ビット左シフトされるため、中 間データとしては、入力データの出力される桁位置である 7番目のビットから 22番目 のビットまでのデータ要素が中間データ保持回路 30に格納保持される。 [0073] このように、中間データを構成する全てのデータ要素のうち、入力データのデータ 要素のみが中間データ保持回路 30に新たに格納保持されることになる。
[0074] 図 8は中間データ保持回路の動作説明図である。デコード回路 60は第 1の制御信 号 C1 [2 : 0]の一部の信号をデコードするようにしてもよい。ここでは、第 1の制御信 号 Cl [2 : l]をデコードして中間データ保持回路 30に出力する。中間データ保持回 路 30は第 1の制御信号 CI [1: 0]の状態によりデコード回路 60の出力に基づいて、 以下のように動作する。
[0075] 第 1の制御信号のビットデータ CI [1]、 C1 [2]が共にパッシブな状態" Lo"のとき、 図 7を用いて説明したように、第 1の制御信号のビットデータ C1 [0]が何れの状態で あっても、中間データ中の 0番目のビットから 16番目のビットまでのデータ要素には、 入力データのデータ要素が含まれるので、 0番目のビットから 16番目のビットまで桁 位置のデータ要素が中間データ保持回路 30に格納保持される。
[0076] 第 1の制御信号のビットデータ CI [1]がアクティブな状態" Hi"で、また、第 1の制御 信号のビットデータ C1 [2]力パッシブな状態 "Lo"のとき、図 7を用いて説明したよう に、第 1の制御信号のビットデータ C1 [0]が何れの状態であっても、中間データ中の 2番目のビットから 18番目のビットまでの桁位置のデータ要素には、入力データのデ ータ要素が含まれるので、 2番目のビットから 18番目のビットまでの桁位置のデータ 要素が中間データ保持回路 30に格納保持される。
[0077] 第 1の制御信号のビットデータ C1 [2]がアクティブな状態" Hi"で、また、第 1の制御 信号のビットデータ C 1 [ 1 ]力パッシブな状態 "Lo"のとき、図 7を用いて説明したよう に、第 1の制御信号のビットデータ C1 [0]が何れの状態であっても、中間データ中の 4番目のビットから 20番目のビットまでの桁位置のデータ要素には、入力データのデ ータ要素が含まれるので、 4番目のビットから 20番目のビットまでの桁位置のデータ 要素が中間データ保持回路 30に格納保持される。
[0078] 第 1の制御信号のビットデータ CI [1]、 C1 [2]が共にアクティブな状態" Hi"のとき 、図 7を用いて説明したように、第 1の制御信号のビットデータ C1 [0]が何れの状態 であっても、中間データ中の 6番目のビットから 22番目のビットまでの桁位置のデー タ要素には、入力データのデータ要素が含まれるので、 6番目のビットから 22番目の ビットまでの桁位置のデータ要素が中間データ保持回路 30に格納保持される。
[0079] このように、少なくとも入力データに含まれるデータ要素が中間データ保持回路 30 に格納保持され、一部に符号拡張データ、値 0を埋めたデータが格納されることにな る。
[0080] 図 9は中間データ保持回路の動作説明図である。デコード回路 60は第 1の制御信 号 C1 [2 : 0]の一部の信号をデコードするようにしてもよい。ここでは、図 8を用いて示 した場合よりも更に少ない、 1ビットの第 1の制御信号のビットデータ C1 [2]をそのまま 中間データ保持回路 30に出力する。中間データ保持回路 30は第 1の制御信号のビ ットデータ C1 [2]の状態によりデコード回路 60の出力に基づ 、て、以下のように動作 する。
[0081] 第 1の制御信号のビットデータ C1 [2]がパッシブな状態" Lo"のとき、図 7を用いて 説明したように、第 1の制御信号のビットデータ C1 [0]及び Cl [l]が何れの状態であ つても、中間データ中の 0番目のビットから 18番目のビットまでの桁位置のデータ要 素には、入力データのデータ要素が含まれるので、 0番目のビットから 18番目のビッ トまでの桁位置のデータ要素が中間データ保持回路 30に格納保持される。
[0082] 第 1の制御信号のビットデータ C1 [2]がアクティブな状態" Hi"のとき、図 7を用いて 説明したように、第 1の制御信号ビットデータ C1 [0]及び Cl [l]が何れの状態であつ ても、中間データ中の 4番目のビットから 22番目のビットまでの桁位置のデータ要素 には、入力データのデータ要素が含まれるので、 4番目のビットから 22番目のビットま での桁位置のデータ要素が中間データ保持回路 30に格納保持される。
[0083] このように、少なくとも入力データのデータ要素が中間データ保持回路 30に格納保 持され、一部に符号拡張データ、値 0埋めのデータが格納されることになる。
[0084] 上記図 7の場合が省電力に最も効果的である力 上記図 8、図 9のように第 1の制御 信号 C1 [2: 0]の一部につ 、てデコードすることによりデコード回路 60の回路を簡単 ィ匕することがでさる。
[0085] 以上、算術シフト処理を前提に述べたが、論理シフト処理については符号拡張を値
0拡張に置き換えればよい。また、他のシフト処理についても同様である。
[0086] このようにして、第 2の実施の形態においては中間データ保持回路 30の動作を制 御することにより、中間データ保持回路 30を構成する記憶回路への不用なデータの 格納動作を防ぎ、従来の技術と比べて中間データ保持回路 30の省電力化が可能と なる。
産業上の利用可能性
本発明のバレルシフト装置は、パイプライン構造ィ匕によりシフト回路間に挿入される 中間データ保持回路の動作を制御し、出力データに反映されない不用なデータ要 素の格納保持の動作を抑制することにより、バレルシフト装置の省電力化が可能とな るので、デジタル信号処理における多ビットデータの左右シフト処理を行う半導体装 置の構成要素等として有用である。

Claims

請求の範囲
[1] 所定のビット幅の入力データを受け、第 1のシフト量及び第 2のシフト量を組み合わ せた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力デー タとして出力するバレルシフト装置において、
前記入力データを受け、前記第 1のシフト量を制御する第 1の制御信号に基づいて 前記入力データをシフトし、中間データとして出力する第 1のシフト手段と、
前記第 1のシフト手段力 の中間データを保持するための中間データ保持手段と、 前記第 2のシフト量を制御する第 2の制御信号を保持し、出力する制御信号保持手 段と、
前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手 段の出力する前記第 2の制御信号に基づいて、前記受けた中間データをシフトさせ て、前記所望シフト後の出力データとして出力する第 2のシフト手段とを備えると共に 前記第 2の制御信号を受け、この第 2の制御信号に基づき、前記第 1のシフト手段 力もの中間データを構成する全てのデータ要素のうち、前記第 2のシフト手段力 所 望シフト後の出力データとして出力されるデータ要素以外のデータ要素の一部又は 全部を除いたデータ要素の前記中間データ内での桁位置を検出するデコード手段 を備え、
前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づ いて、前記中間データのうち、前記第 2のシフト手段力 所望シフト後の出力データと して出力されるデータ要素以外のデータ要素の一部又は全部が除かれ、少なくとも 前記第 2のシフト手段力 所望シフト後の出力データとして出力されるデータ要素を 含む桁位置のデータ要素を新たに保持する
ことを特徴とするバレルシフト装置。
[2] 請求項 1記載のバレルシフト装置において、
前記デコード手段は、前記第 2の制御信号が示す情報の全部に基づいて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、前記第 2のシ フト手段力 所望シフト後の出力データとして出力されるデータ要素のみの前記中間 データ内での桁位置を検出する
ことを特徴とするバレルシフト装置。
[3] 請求項 1記載のバレルシフト装置において、
前記デコード手段は、前記第 2の制御信号が示す情報の一部に基づいて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、前記第 2のシ フト手段から所望シフト後の出力データとして出力されるデータ要素以外のデータ要 素の一部を除いたデータ要素の前記中間データ内での桁位置を検出する
ことを特徴とするバレルシフト装置。
[4] 請求項 1記載のバレルシフト装置において、
前記第 2の制御信号は複数ビットの信号力 なる制御信号であって、
前記中間データ保持手段は、前記第 2の制御信号の所定の 1ビットの信号に基づ いて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、 前記第 2のシフト手段力 所望シフト後の出力データとして出力されるデータ要素以 外のデータ要素の一部が除かれた桁位置のデータ要素を保持及び出力する ことを特徴とするバレルシフト装置。
[5] 所定のビット幅の入力データを受け、第 1のシフト量及び第 2のシフト量を組み合わ せた合計シフト量だけ前記入力データを左右にシフトして、所望シフト後の出力デー タとして出力するバレルシフト装置において、
前記入力データを受け、前記第 1のシフト量を制御する第 1の制御信号に基づいて 前記入力データをシフトし、中間データとして出力する第 1のシフト手段と、
前記第 1のシフト手段力 の中間データを保持するための中間データ保持手段と、 前記第 2のシフト量を制御する第 2の制御信号を保持し、出力する制御信号保持手 段と、
前記中間データ保持手段に保持された中間データを受け、前記制御信号保持手 段の出力する前記第 2の制御信号に基づいて、前記受けた中間データをシフトさせ て、前記所望シフト後の出力データとして出力する第 2のシフト手段とを備えると共に 前記第 1の制御信号を受け、この第 1の制御信号に基づき、前記第 1のシフト手段 力もの中間データを構成する全てのデータ要素のうち、前記入力データに含まれる データ要素の桁位置を検出するデコード手段とを備え、
前記中間データ保持手段は、前記デコード手段で検出された前記桁位置に基づ いて、前記中間データを構成する全てのデータ要素のうち、少なくとも前記入力デー タに含まれるデータ要素を含む桁位置のデータ要素を新たに保持する
ことを特徴とするバレルシフト装置。
[6] 請求項 5記載のバレルシフト装置にぉ 、て、
前記デコード手段は、前記第 1の制御信号が示す情報の全部に基づいて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、前記入力デー タに含まれるデータ要素のみの前記中間データ内での桁位置を検出する
ことを特徴とするバレルシフト装置。
[7] 請求項 5記載バレルシフト装置において、
前記デコード手段は、前記第 1の制御信号が示す情報の一部に基づいて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、前記入力デー タに含まれるデータ要素以外のデータ要素の一部を除いたデータ要素の前記中間 データ内での桁位置を検出する
ことを特徴とするバレルシフト装置。
[8] 請求項 5に記載のバレルシフト装置において、
前記第 1の制御信号は複数ビットの信号力 なる制御信号であって、
前記中間データ保持手段は、前記第 1の制御信号の所定の 1ビットの信号に基づ いて、前記第 1のシフト手段力もの中間データを構成する全てのデータ要素のうち、 前記入力データに含まれるデータ要素以外のデータ要素の一部が除かれた桁位置 のデータ要素を保持及び出力する
ことを特徴とするバレルシフト装置。
PCT/JP2005/015863 2004-09-14 2005-08-31 バレルシフト装置 WO2006030639A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP05776815A EP1821195B1 (en) 2004-09-14 2005-08-31 Barrel shift device
JP2006535692A JP4129280B2 (ja) 2004-09-14 2005-08-31 バレルシフト装置
DE602005023050T DE602005023050D1 (de) 2004-09-14 2005-08-31 Barrel-shift-vorrichtung
US10/578,780 US7461108B2 (en) 2004-09-14 2005-08-31 Barrel shift device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-267007 2004-09-14
JP2004267007 2004-09-14

Publications (1)

Publication Number Publication Date
WO2006030639A1 true WO2006030639A1 (ja) 2006-03-23

Family

ID=36059894

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/015863 WO2006030639A1 (ja) 2004-09-14 2005-08-31 バレルシフト装置

Country Status (8)

Country Link
US (1) US7461108B2 (ja)
EP (1) EP1821195B1 (ja)
JP (1) JP4129280B2 (ja)
KR (1) KR100774068B1 (ja)
CN (1) CN100468315C (ja)
DE (1) DE602005023050D1 (ja)
TW (1) TW200627267A (ja)
WO (1) WO2006030639A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378017B2 (en) 2012-12-29 2016-06-28 Intel Corporation Apparatus and method of efficient vector roll operation
CN104243085A (zh) * 2013-06-08 2014-12-24 阿尔卡特朗讯 用于编码重组位数据的方法、装置和基站控制器
CN109217878B (zh) * 2017-06-30 2021-09-14 重庆软维科技有限公司 一种数据处理装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293354A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 演算処理装置
US20030131029A1 (en) * 2002-01-08 2003-07-10 Bandy James Henry Barrel shifter
JP2003337694A (ja) * 2002-05-21 2003-11-28 Sharp Corp シフト回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780716A (en) * 1985-11-01 1988-10-25 Nec Corporation Semiconductor integrated switching apparatus
JPH0391028A (ja) * 1989-09-04 1991-04-16 Mitsubishi Electric Corp パイプライン処理装置
JP3034408B2 (ja) * 1993-09-30 2000-04-17 株式会社東芝 シフト回路及び可変長符号復号器
JP3378444B2 (ja) * 1996-08-08 2003-02-17 株式会社東芝 シフト回路
US5822231A (en) * 1996-10-31 1998-10-13 Samsung Electronics Co., Ltd. Ternary based shifter that supports multiple data types for shift functions
CA2373432C (en) * 2000-03-09 2005-02-08 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxiliary transformation
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
KR20030066997A (ko) * 2002-02-06 2003-08-14 주식회사 하이닉스반도체 데이터 출력 버퍼 블록 및 이의 구동 방법
JP4593071B2 (ja) * 2002-03-26 2010-12-08 シャープ株式会社 シフトレジスタおよびそれを備えた表示装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293354A (ja) 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 演算処理装置
US20030131029A1 (en) * 2002-01-08 2003-07-10 Bandy James Henry Barrel shifter
JP2003337694A (ja) * 2002-05-21 2003-11-28 Sharp Corp シフト回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1821195A4

Also Published As

Publication number Publication date
JP4129280B2 (ja) 2008-08-06
KR20060065738A (ko) 2006-06-14
CN1898639A (zh) 2007-01-17
JPWO2006030639A1 (ja) 2008-05-15
CN100468315C (zh) 2009-03-11
KR100774068B1 (ko) 2007-11-06
EP1821195A1 (en) 2007-08-22
EP1821195B1 (en) 2010-08-18
TW200627267A (en) 2006-08-01
US7461108B2 (en) 2008-12-02
DE602005023050D1 (de) 2010-09-30
US20070180007A1 (en) 2007-08-02
EP1821195A4 (en) 2009-01-07

Similar Documents

Publication Publication Date Title
US8458445B2 (en) Compute units using local luts to reduce pipeline stalls
US20050289323A1 (en) Barrel shifter for a microprocessor
US5598362A (en) Apparatus and method for performing both 24 bit and 16 bit arithmetic
EP1058185A1 (en) A multiply and accumulate apparatus and a method thereof
US5440504A (en) Arithmetic apparatus for digital signal processor
US6754870B2 (en) CRC operation unit and CRC operation method
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
US20110153995A1 (en) Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same
WO2006030639A1 (ja) バレルシフト装置
US6442729B1 (en) Convolution code generator and digital signal processor which includes the same
JP3607116B2 (ja) 演算処理装置
US6738792B1 (en) Parallel mask generator
WO2005085990A1 (en) A high speed shifter circuit
JP3191442B2 (ja) ビタビ復号用演算装置
US6681236B2 (en) Method of performing operations with a variable arithmetic
JP3250363B2 (ja) 演算装置
JP3476618B2 (ja) バレルシフト演算装置
JP2001186021A (ja) 誤り検出装置及びそれを内蔵した演算処理装置
JP3525582B2 (ja) ビット操作回路
JPH1146148A (ja) 演算処理装置とその利用装置
JP3521558B2 (ja) 伝送装置
JPH0750596A (ja) 符号化装置及び符号化方法
JP4258350B2 (ja) 演算処理装置
JPH07225673A (ja) 演算装置
JPH08137666A (ja) 演算装置およびその演算方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200580001400.3

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2006535692

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005776815

Country of ref document: EP

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): 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 LV 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

WWE Wipo information: entry into national phase

Ref document number: 1020067008458

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 10578780

Country of ref document: US

Ref document number: 2007180007

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1020067008458

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 10578780

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2005776815

Country of ref document: EP