Electrical computers and digital processing systems: processing – Instruction decoding – Decoding instruction to accommodate variable length...
Reexamination Certificate
1999-03-11
2002-01-15
Pan, Daniel H. (Department: 2171)
Electrical computers and digital processing systems: processing
Instruction decoding
Decoding instruction to accommodate variable length...
C711S119000, C341S078000
Reexamination Certificate
active
06339821
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a data processor with a plurality of general registers, for processing data stored in those general resisters.
2. Description of the Background Art
As an example, we will now describe a conventional data processor including 16 general registers and handling an add instruction with three operands.
FIG. 13
illustrates a format of an instruction written in the machine language (a language which a computer can understand) for a data processor. The instruction is 16 bits long in which a bit group a
4
designates an operation code and each of bit groups a
1
to a
3
designates an operand field.
Each bit group a
1
, a
2
, a
3
of the instruction in the machine language needs four bits to designate an address of a general resister. Thus, a bit group a
4
of the remaining four bits is assigned to the operation code.
Next, part of the conventional data processor is shown in FIG.
14
. Operand-field storage regions
31
,
32
, and
33
store the bit groups a
1
, a
2
, and a
3
, respectively. A register group
51
consists of
16
general resistors R
0
to R
15
to which addresses #R
0
to #R
15
are assigned, respectively. An example of the instructions executed by this data processor is shown in Table 1.
TABLE 1
Instruction INa
a4
a3
a2
a1
ADD
#R2
#R1
#R0
In Table 1, “ADD/#R
2
, #R
1
, #R
0
” forms an instruction INa, where “/” is a delimiter between the operation code and the operands; ADD is an operation code of a conventional add instruction, corresponding to the bit group a
4
in
FIG. 13
; and #R
2
, #R
1
, and #R
0
correspond to the bit groups a
3
, a
2
, and a
1
, respectively. At the time of execution of the instruction INa, selectors
52
a
and
52
b
read out data from the general registers R
0
and R
1
corresponding to the bit groups a
1
and a
2
, respectively, in the register group
51
. Since the operation code is ADD, an arithmetic circuit
53
adds data obtained by the selector
52
a
and data obtained by the selector
52
b
. Then, a selector
54
writes the output of the arithmetic circuit
53
into the general register R
2
corresponding to the bit group a
3
in the register group
51
.
In this fashion, the bit groups a
1
and a
2
designate storage sources of the data to be processed on the instruction INa and thus called “source operand,” while the bit group a
3
designates a storage destination of the data to processed on the instruction INa and thus called “destination operand”. In the conventional technique, one instruction has included all the source operands and the destination operand required to carry out one instruction.
In the above example, the bit group a
4
is a group of 4 bits, so the data processor can handle only 16 kinds of operation codes. To increase the number of operation codes to be handled by the processor more than 16, the number of bits of the instruction INa has to be increased. Thus, a 32-bit instruction has usually been adopted in the conventional technique. In this way, the increase in the number of operation codes to be handled by the processor results in the increase in the number of bits of the instruction INa.
SUMMARY OF THE INVENTION
A first aspect of the present invention is directed to a data processor comprising: a decoding portion receiving an instruction of a program in order, extracting at least one of first operand fields from predetermined bits of the instruction, and decoding an operation code, using the remaining bits; an operand-field storage portion including a first operand-field storage portion storing the first operand field received from the decoding portion, and a second operand-field storage portion storing a second operand field obtained on the basis of the first operand field; and a data processing portion with a plurality of registers, receiving the first operand field and the second operand field from the operand-field storage portion and processing data in registers designated by the first operand field and the second operand field out of the plurality of registers.
According to a second aspect of the present invention, the data processor of the first aspect further comprises: a control circuit detecting the completion of execution of the instruction. When the control circuit detects the completion of execution of the instruction, the operand-field storage portion transfers at least one of the first operand fields from the first operand-field storage portion to the second operand-field storage portion, as the second operand field.
According to a third aspect of the present invention, the data processor of the first aspect further comprises: a data calculation portion receiving at least one of the first operand fields from the decoding portion, calculating the second operand field from the first operand field, and storing the second operand field into the second operand-field storage portion.
According to a fourth aspect of the present invention, the data processor of the second aspect further comprises: a data holding portion saving data stored in the operand-field storage portion when an interruption occurs, and at the end of the interruption, returning the data to the operand-field storage portion.
According to a fifth aspect of the present invention, in the data processor of the first aspect, the decoding portion increases the number of the first operand fields with the instruction of a first kind, as compared with the instruction of a second kind. The data processor further comprises: a selector deciding whether to output the second operand field in the second operand-field storage portion to the processing portion or not depending on the second kind and the first kind of the instruction, respectively.
According to a sixth aspect of the present invention, in the data processor of the fifth aspect, the operation code includes a mode bit indicating whether the instruction is of the first kind or of the second kind.
In the data processor of the first aspect, part of the operand fields required to carry out the instruction is stored in the second operand-field storage portion. This avoids the necessity of including part of the operand fields in the instruction and increases the number of bits of the operation code in the instruction, thereby increasing the number of instructions that the data processor can handle.
In the data processor of the second aspect, when the execution of the instruction is completed, the first operand field can be set as the second operand field.
In the data processor of the third aspect, the data calculation portion can calculate the second operand field from the first operand field.
In the data processor of the fourth aspect, the contents in the operand-field storage portion remain unchanged before and after an interruption. This makes it possible to obtain a processing result originally intended.
In the data processor of the fifth aspect, an instruction using the second operand field in the second operand-field storage portion and an instruction including all operand fields required to carry out the instruction can be mixed in a single program.
In the data processor of the sixth aspect, the first kind and the second kind can be switched on an instruction basis.
Thus, an object of the present invention is to provide a data processor capable of increasing the number of operation codes it can handle, without increasing the number of bits of the instruction.
These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
REFERENCES:
patent: 4258419 (1981-03-01), Blahut et al.
patent: 4473881 (1984-09-01), Pilat et al.
patent: 4595911 (1986-06-01), Kregness et al.
patent: 5301285 (1994-04-01), Hanawa et al.
patent: 6189086 (2001-02-01), Yamaura
Ishida Akihiko
Maeda Hiromi
Shimazu Yukihiko
Chen Te
Pan Daniel H.
LandOfFree
Data processor capable of handling an increased number of... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data processor capable of handling an increased number of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data processor capable of handling an increased number of... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2818919