The above and other objects, advantages and features of the present invention will be more apparent from the following description of certain preferred embodiments taken in conjunction with the accompanying drawings, in which:
The invention will be now described herein with reference to illustrative embodiments. Those skilled in the art will recognize that many alternative embodiments can be accomplished using the teachings of the present invention and that the invention is not limited to the embodiments illustrated for explanatory purposes.
It should be noted that a serial operation described in the present embodiment is not limited only to an operation executed in units of 1 bit. For example, the serial operation includes an operation performed with respect to data in units of blocks each having a length equal to or larger than 1 bit and shorter than a word length of the data.
An instruction code supplied from the system bus 11 via the bus interface 27 is stored through the internal data bus 33 to the instruction register 24. The instruction code stored in the instruction register 24 is decoded by the instruction decoder 23, so the signals for controlling the operation unit 21 and the register file 22 are generated. The instruction register 24 outputs, for example, a jumping destination address contained in an instruction code to the program counter 25. The program counter 25 increments an address of a program to be executed and holds the incremented address, or holds a jumping destination address supplied from the instruction register 24.
The instruction decoder 23 outputs an operation type indication signal “OPR” which indicates a type of an operation to the operation unit 21, based upon an instruction code stored in the instruction register 24. The instruction decoder 23 outputs a write register control signal “WRC” (including “WS” and “WRN”), an operation target register control signal “TRC” (including “TRR” and “TRN”), and an operation source register control signal “SRC” (including “SRR” and “SRN”) to the register file 22. The register file 22 outputs data “TRD” which is stored in the indicated register to the operation unit 21 in a serial manner, based upon the operation target register control signal TRC. Also, the register file 22 outputs data “SRD” of the indicated register to the operation unit 21 in a serial manner, based upon the operation source register control signal SRC. Furthermore, the register file 22 stores an operation result “WD” which is outputted from the operation unit 21 in a serial manner via a register write bus 31 to the indicated register, based upon the write register control signal WRC. The operation unit 21 performs an operation indicated by the operation type indication signal OPR with respect to data inputted from the register file 22. An operation result is outputted to the register write bus 31 and the serial-to-parallel converting circuit 28. The serial-to-parallel converting circuit 28 converts operation results which are outputted from the operation unit 21 in a serial manner into parallel data, and then, outputs these parallel data to the internal data bus 33 and the internal address bus 32. The parallel-to-serial converting circuit 29 captures the parallel data outputted to the internal data bus 33, and converts the captured parallel data to serial data, and then outputs the converted serial data to the register write bus 31.
The target register number decoder 221 decodes an entered target register number “TRN” so as to output target register read enable signals “TRF0” to “TRFn” in synchronism with a target register read signal “TRR.” The source register number decoder 222 decodes an entered source register number “SRN” so as to output source register read enable signals “SRE0” to “SREn” in synchronism with a source register read signal “SRR.” The write register number decoder 223 decodes an entered write register number “WRN” so as to output write enable signals “WRE0” to “WREn” in synchronism with a write signal “WS”.
The register units 260 to 26n selected based upon the write enable signals WRE0 to WREn capture the write data WD which are transferred via the register write bus 31 in a serial manner to store the captured write data WD there into. The register units 260 to 26n selected based upon the target register read enable signals TRE0 to TREn, and the source register read enable signals SRE0 to SREn output target register read data TRD and source register read data SRD to the operation unit 21 in a serial manner, respectively.
As shown in
The register 26 capable of storing there into data constructed of “m” bits stores write data WD which are transferred in a serial manner into designated bit positions in units of 1 bit. The register 26 reads the stored m-bit-data in a parallel manner, and outputs the read m-bit data to the data selecting circuits 61 and 62.
The write bit counter 43 corresponds to a binary counter which is counted up every clock by being triggered by the write enable signal WRE. In other words, the write bit counter 43 counts write bit positions of the register 26 from “0” to “m.” Based upon a count value of the write bit counter 43, the write bit decoder 53 outputs a signal for designating a write bit position of the register 26.
The target read bit counter 41 corresponds to a binary counter which is counted up every clock by being triggered by the target register read enable signal TRE. In other words, the target read bit counter 41 counts bit positions read from the register 26 from “0” to “m.” Based upon a count value of the target read bit counter 41, the target read bit decoder 51 outputs a signal for designating a bit position read from the register 26 to the target read data selecting circuit 61.
The source read bit counter 42 corresponds to a binary counter which is counted up every clock by being triggered by the source register read enable signal SRE. In other words, the source read bit counter 42 counts bit positions read from the register 26 from “0” to “m.” Based upon a count value of the source read bit counter 42, the source read bit decoder 52 outputs a signal for designating a bit position read from the register 26 to the source read data selecting circuit 62.
The target read data selecting circuit 61 selects 1 bit of data, which is outputted from the register 26, based upon a signal outputted from the target read bit decoder 51, and outputs the selected data. Since the target read bit counter 41 counts up the bit position, a read position is shifted in units of 1 bit. Therefore, the target read data selecting circuit 61 outputs the data stored in the register 26 in a serial manner as the target register read signal TRD.
The source read data selecting circuit 62 selects data by 1 bit, which is outputted from the register 26, based upon a signal outputted from the source read bit decoder 52, and outputs the selected data. Every time the source read bit counter 42 counts up the bit position, a read position is shifted in units of 1 bit. Therefore, the source read data selecting circuit 62 outputs the data stored in the register 26 in a serial manner as the source register read signal SRD.
As described above, each of sets made from counters and decoders has been arranged in such a manner that the respective counter/decoder sets can be independently operated. Therefore, the same register 26 may be designated by a target register and a source register. Also, writing operations and reading operations may be performed at respective timing. In other words, the respective sets made from the counters and the decoders may be alternatively operated in parallel modes within a consistent range.
Next, a description is made of data wiring/reading operations of the register file 22. First, a description is made of an operation that data is written in the register file 22, and the written data is read therefrom with reference to
a) represents a clock signal indicating timing of data read and data write with symbols applied to clock cycles of the clock signal. Hereinafter, the timing will be described based upon these clock cycles. The timing at which data is written in the register 26 is indicated by clock cycles T11 to T14, whereas the timing at which data is readout from the register 26 is indicated by clock cycles T15 to T17.
In order to store data in the register file 22, parallel data is converted to serial data, and the serial data is stored via a register write bus to a designated register. Therefore, write data (
When the writing operation is commenced, the write signal WS is inputted to the write register number decoder 223 in combination with the write register number WRN (
The write bit counter 43 commences a counting operation by receiving the write enable signal WREn as a trigger signal. As shown in
The write data WD is inputted via the register write bus 31 to the register unit 26n in synchronism with the clock signal (
In the clock cycles T15 to T17 corresponding to a reading period, first of all, in the clock cycle T15, both the target register read signal TRR and the source register read signal SRR, which designate registers from which data are read, are applied to the register file 22 in combination with a register number “n” (
Next, reading operations immediately after a register writing operation will now be described with reference to
The write bit counter 43 commences a counting operation by receiving the write enable signal WRE as a trigger signal. As shown in
The write data WD is inputted via the register write bus 31 to the register unit 26n in synchronism with the clock signal (
A data reading operation from a register is commenced, which is delayed by 1 clock cycle from the commencement of the writing operation. In the clock cycle T22, the register read signals (TRR and SRR) are applied to the register file 22 in combination with the register numbers “n” (TRN and SRN) (
Although the description has been made of the data processing unit including one operation unit, the present invention may be alternatively applied to another data processing unit including a plurality of operation units. In the case where the data processing unit is provided with the plurality of operation units, when an operation result of a first block outputted from a first operation unit is written in a register, this first block is read without waiting definitions of operation results about all of blocks, so an operation of a second operation unit can be commenced. A delay from starting of the operation of the first operation unit until starting of the operation of the second operation unit corresponds to only an operating time of the first block. As described above, in the register file 22, the reading operation with respect to the register 26 is carried out while the LSB of the data is employed as a reference, and the reading operation is executed such that the reading operation is overlapped with the writing operation. As a result, latency that occurs, when either a serial operation processing or an operation in units of blocks is carried out, can be reduced, so an improvement of processing performance can be realized.
Referring to
The target register read signal TRR is entered to the read register number decoder 221 in combination with the target register number TRN in a clock cycle T31 (
The target read bit counter 41 commences a counting operation by receiving the target register read enable signal TREn as a trigger signal. As indicated in
In synchronism with this operation, the target register read data TRD is outputted from the register unit 26n. In other words, data “a” of a bit “0” in the clock cycle T31, data “b” of a bit 1 in the clock cycle T32, data “c” of a bit 2 in the clock cycle T33, . . . , data “e” of a bit “m” in the clock T35 are sequentially supplied to the operation unit 21 (
On the other hand, the write signal WS is inputted to the write register number decoder 223 in combination with the write register number WRN (
The write bit counter 43 commences a counting operation by receiving the write enable signal WREn as a trigger signal. The write bit counter 43 is reset to “0” in the clock cycle T31, and is incremented to “1” in the clock cycle T32, and also, is incremented to “2” in the clock-cycle T33, and then, the count value thereof becomes a maximum value “m” in the clock cycle T35. A value of the write bit counter 43 is decoded by the write bit decoder 53, and the decoded value designate a write bit position of a write register. Operation results (
As described above, in the register file 22, the writing operation with respect to the register 26 is carried out while the LSB of the data is employed as a reference, and the writing operation is executed such that the reading operation is overlapped with the reading operation. As a result, latency that occurs, when either a serial operation processing or an operation in units of blocks is carried out, can be reduced, so improvement of processing performance can be realized.
In the above-described embodiment, the data are read from the register file 22 in units of 1 bit and the data are written in the register file 22 in units of 1 bit. For example, as represented in
A data writing operation to the register 26 is carried out in a similar manner. That is, a write enable signal is outputted to a flip-flop which corresponds to each of the bits of the register 26. As a result, the data is written only in such a flip-flop of a bit designated by this write enable signal. Accordingly, serial data may be sequentially written in the respective flip-flops of the register 26.
Alternatively, the above-described reading and writing operation may be carried out with respect to each block having multiple bits. That is, when the operation unit 21 performs operations for data divided every block having a plurality of bits in a serial manner, the operation unit 21 may read the data from the register file 22 every block and may write the read data in the register file 22 every block. For example, as shown in
Block positions to be outputted are counted by the counter 44. The count values are decoded by the decoder 54, and then, the decoded count values are outputted to the read data selecting circuit 64. In the read data selecting circuit 64, output data of 4 buffers “64i” to “64(i+3)” at the designated positions among the buffers 640 to 64m become valid in response to a block selecting signal outputted from the decoder 54, and then, the valid output data are outputted as serial data of “RD0” to “RD3.” A data writing operation to the register 26 is carried out in a similar manner. That is, a write enable signal is outputted to a flip-flop which corresponds to each of the blocks of the register 26. As a result, the data is written only in such a flip-flop of a block designated by this write enable signal. Accordingly, serial data which are supplied in units of blocks may be sequentially written in the respective flip-flops of the register 26 in units of 4 bits.
As described above, the data are read from the register file 22 in units of blocks, and the operation is performed for the read data in units of blocks, and then, the resulting data are stored in the register file 22, or the serial-to-parallel converting circuit 28 in units of blocks. With respect to this operation, since the number of bits is increased, a total number of operations in units of blocks is decreased; and if operation times of block units are equal to each other, then an overall operation time is decreased. However, when the number of bits for a block is increased, an operation time such as a carry is increased, so the number of bits for the block cannot be excessively increased. Therefore, desirably, the number of bits for the block is approximately 4 bits to 8 bits.
As described above, the normal operation can be carried out by processing these data from the data of the LSB side irrespective of the data of the MSB side. Therefore, all of the data to be used in the operation are handled in units of blocks each having a length equal to or larger than 1 bit and shorter than the word length of the data; when these data are transferred and operated, the LSB or the data block containing the LSB is firstly transferred, and operated. The LSB or the data block containing the LSB is firstly readout from the register file, and then, the read data block is supplied to the operation unit as the operation source data and the operation target data. The operation unit sequentially performs the operation processing with respect to the data from the data having the LSB, and then, rewrites the processed data in the register file as the operation result data. As a result, the latency occurred when the operation processing is carried out can be reduced, so the improvement in the processing performance can be realized. It should be noted that there is an arithmetic logical unit (ALU) which executes an arithmetical operation and a logical operation as a general example for the operation unit. However, the operation unit of the present invention is not limited to the ALU, but may be realized by, for instance, a floating point processing unit (FPU), or another operation unit which executes a data operation processing. In the embodiment of the present invention, the description has been made of the operation unit which processes the data from the LSB side, the operation unit may process the data from the MSB side in a similar manner. By carrying out the data process operation in a sequence adapted to a property of operation, it becomes possible to realize the improvement of processing performance.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2006/208106 | Jul 2006 | JP | national |