US5742801A - Microprocessor to which additional instructions are added and instructions addition method thereof - Google Patents
Microprocessor to which additional instructions are added and instructions addition method thereof Download PDFInfo
- Publication number
- US5742801A US5742801A US08/595,765 US59576596A US5742801A US 5742801 A US5742801 A US 5742801A US 59576596 A US59576596 A US 59576596A US 5742801 A US5742801 A US 5742801A
- Authority
- US
- United States
- Prior art keywords
- instructions
- additional
- register
- storing means
- instruction
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 24
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Definitions
- the present invention generally relates to a microprocessor to which additional instructions can be added and an instructions addition method. More specifically, the present invention relates to a microprocessor having fixed-value registers or unrewritable registers, such as a RISC processor, for executing the additional instructions in the microprocessor, and the instructions addition method.
- a microprocessor having fixed-value registers or unrewritable registers, such as a RISC processor, for executing the additional instructions in the microprocessor, and the instructions addition method.
- processing apparatuses in which instructions are read out, interpreted and executed, are often utilized as an architecture for a development tool or a debugger. To perform such tasks, additional instructions, such as instructions for the development tool or the debugger, are needed.
- one object of the present invention is to provide a novel microprocessor, in which instructions are read out, interpreted and executed, which can execute the additional instructions while maintaining the compatibility of software for the additional instructions to prepared instructions in the processor.
- Another object of the present invention is to provide a novel instructions addition method to a microprocessor, that can easily add additional instructions without considerable modification of circuits in the processor.
- FIG. 1 is a block diagram of a general microprocessor in which the present invention is applied;
- FIG. 2 is an internal block diagram of an instruction generation unit in a microprocessor according to the present invention.
- FIG. 3 is an internal block diagram of an alternative embodiment of the instruction generation unit in a microprocessor according to the present invention.
- FIG. 1 there is illustrated a block diagram of a general microprocessor in which the present invention is applied.
- the microprocessor 1 shown in FIG. 1 includes a bus management unit 2, an address generation unit 3, an instruction generation unit 4, a processing unit 5, and a register unit 6.
- the bus management unit 2 is connected to the address generation unit 3, instruction generation unit 4, processing unit 5, and the register unit 6, and data or addresses external to the microprocessor are inputted through the bus management unit 2 into the address generation unit 3, the instruction generation unit 4, the processing unit 5, and the register unit 6.
- the address generation unit 3 includes, for example, a program counter, and is configured to transfer out addresses.
- the instruction generation unit 4 decodes instructions and generates various signals, such as timing signals and control signals.
- the processing unit 5 executes various instructions, such as arithmetic of integers and logical operations.
- the register unit 6 stores information, such as data and addresses.
- the register unit 6 includes a fixed-value register, or an unrewritable register which is defined as a fixed-value register, as discussed below.
- load instructions of which destination is a fixed-value register are executed as non-operation instructions, defined hereinbelow its NOP instructions.
- additional instructions are added by utilizing instructions of which destination is the fixed-value register.
- the microprocessor 1 may include thirty-two wide-use registers r0 to r31, where the register r0 is a zero register which is one of the fixed-value registers.
- the register r0 in this example stores a zero value.
- the zero register can be appointed or designated as a source register or a destination register in the instruction codes.
- the register r0 is an unrewritable register which stores a zero value the microprocessor 1 executes NOP instructions responding to a load instructions in which the register r0 is appointed as a destination register.
- the microprocessor 1 includes the following load instruction (1) between registers dr1 and sr1 included in the load instruction (1).
- the register sr1 is defined as a source register and the register dr1 is defined as a destination register. Further suppose that the following load instruction (2) is executed in the microprocessor 1.
- the load instruction to write the contents of the register r2 into the register r0 operates as a NOP instructions' operation.
- the microprocessor 1 there are some instances in which some instructions are required to be added.
- One of those instances for example, is to prepare a register into which data in the microprocessor can be written for a use as a developing tool of a microprocessor, and to add instructions which can be written into the register by instructions from the microprocessor 1.
- the microprocessor 1 may be constructed so that when a decoder in the microprocessor 1 decodes instructions which designate a fixed-value register as a destination register, the additional instructions can be added by utilizing the decode signals.
- the above additional instructions are, for example, instructions for a developing tool, instructions for debugging, instructions for electric communication, instructions for user defining, and so on.
- FIG. 2 shows an internal block diagram of an instruction generation unit 4 in a microprocessor 1 of a first embodiment according to the present invention.
- the instruction generation unit 4 includes an instruction register 41, an instruction decoder 42, a control circuit 43, an additional instruction decoder 44, and a timing generator 45.
- the instruction generation unit 4 receives instruction codes from the bus management unit 2, seen in FIG. 1, and stores those instruction codes in the instruction register 41. Then, the instruction codes stored in the instruction register 41 are transferred to an instruction decoder 42 and then decoded by the decoder 42. The data decoded by the instruction decoder 42 are then transferred to a control circuit 43.
- the control circuit 43 generates various signals, such as timing signals and control signals, according to the above decoded instructions by the instruction decoder 42, and the generated signals are then transferred to a data path.
- instruction codes stored in the instruction register 41 are provided to the instruction decoder 44.
- the additional instruction decoder 44 decodes a field for instruction distinction (opcode) and a field for destination register appointment or designation (destination register operand) in instruction codes.
- the instructions indicate load instructions and the destination register is a fixed-value register
- the fixed-value register is register r0 which is a zero register that stores a zero value
- the additional instruction decoder 44 generates an active signal to the timing generator 45.
- the internal data bus 47 in the microprocessor 1 is connected to an additional register 46 used for adding instructions.
- the above timing generator 45 generates a write-signal to the additional register 46.
- the write-signal is utilized for writing instructions into the additional register 46, by a cycle of writing data into the destination register, and then the additional instructions are written into the additional register 46.
- a field for instruction distinction (opcode) and a field for destination register appointment or designation (destination register operand) in instruction codes are decoded by the instruction decoder 42 or the additional instruction decoder 44.
- the additional instruction decoder 44 outputs an active signal to the timing generator 45.
- the timing generator 45 generates a write-signal to the additional register 46 by a cycle of writing data into the destination register. Then source data are stored into the additional register 46, which is connected to the internal data bus 47, and are transferred by the above write signal at the time when wide-use registers are rewritten.
- the register r0 is appointable as a source register or a destination register. However, when the register r0 stores a zero value it is unrewritable. Accordingly, in such a circumstance, the microprocessor 1 executes NOP instructions responding to load instructions in which the register r0 is appointed as a destination register.
- FIG. 3 there is illustrated an internal block diagram of another instruction generation unit 4 in the microprocessor 1 of a second embodiment according to the present invention.
- the instruction generation unit 4 includes an instruction register 41, an instruction decoder 42, a control circuit 43, and an additional control signal generator 48.
- the instruction decoder 42 includes an additional instruction decoder section 42a.
- the instruction register 41 is connected to the bus management unit 2, seen if FIG. 1.
- the instruction decoder 42 is connected to the instruction register 41, and the control circuit 43.
- the additional control signal generator 48 is connected to the additional instruction decoder section 42a in the instruction decoder 42.
- Each output from the control circuit 43 is connected to one input line of the corresponding OR gates 49a included in gate circuit unit 49.
- Each output from the additional control signal generator 48 and the ground lines are connected to the other input of each OR gate 49a in the gate circuit unit 49, as seen in FIG. 3.
- the outputs from the OR gates 49a are defined as control signals and are transferred to a data path.
- Instruction generation unit 4 of this second embodiment is similar in function to the instruction generation unit of the above-mentioned first embodiment. That is, the instruction generation unit 4 receives instruction codes from the bus management unit 2, stores those instruction codes into the instruction register 41, and transfers various signals, such as timing signals and control signals, generated from the instruction codes, to a data path through the control circuit 43. In the above procedure, the instruction codes stored in the instruction register 41 are transferred to the instruction decoder 42 and then decoded by the decoder 42. At this time, the additional instruction decoder section 42a is prepared in the instruction decoder 42 in the instruction generation unit 4 of this second embodiment. The additional instruction decoder section 42a determines whether or not the instruction codes, which are transferred to the instruction decoder 42, indicate NOP instructions.
- the instruction codes decoded in the instruction decoder unit 42, except the additional instruction decoder section 42a, are transferred to the control circuit 43.
- the additional instruction decoder section 42a determines that an instruction code indicates a NOP instruction
- the decoder section 42a transfers an active signal to the additional control signal generator 48.
- the control circuit 43 generates various signals, such as timing signals and control signals, according to the above decoded instructions by the instruction decoder 42, and the various signals are then transferred to a data path through the gate circuit unit 49 which, as noted above, includes OR gates 49a.
- Instruction codes of which a destination register is appointed (or designated) to the above register r0, which is one kind of fixed-value registers operate as NOP instructions in the microprocessor 1. Accordingly, instructions by the instruction codes can be considered as NOP instructions. Therefore, in this embodiment, it is supposed that the additional instruction decoder section 42a also considers other instruction codes of which a destination register is appointed to a fixed-value register as NOP instructions, and the additional instruction decoder section 42a provides an active signal to the addition control signal generator 48.
- NOP instructions are prepared for additional instruction use beforehand when the microprocessor is designed.
- the plural NOP instructions are assigned to different instruction codes. Instruction codes are decoded in the additional instruction decoder section 42a, and if the instruction codes are determined to be NOP instructions, the additional control signal generator 48 provides an active signal.
- the NOP instructions include NOP instructions of various cycles, such as one cycle NOP instructions, two cycle NOP instructions, and three cycle instructions, so as to cope with various kinds of additional instructions.
- instructions of which a destination register is appointed to a fixed-value register or NOP instructions which operate by a similar cycle to additional instructions is selected.
- instruction codes of the above instructions or NOP instructions are provided from the bus management unit 2 to the instruction register 41.
- the instruction codes are decoded in the additional instruction decoder section 42a, and the decoded signals and signals which indicate each cycle are then provided to the gate circuit unit 49.
- special instructions which are used for various kinds of applications can be added.
- the present microprocessor includes a fixed-value register or an unrewritable register. Furthermore, the present microprocessor includes a special decoder in an instruction generation unit in the microprocessor. The decoder decodes instructions which appoint a fixed-value register or an unrewritable register in a register unit as a destination register. Furthermore, the present microprocessor includes a special decoder in an instruction generation unit in the microprocessor. The decoder decodes instructions which appoint a fixed-value register or an unrewritable register in a register unit as a destination register. Additional instructions are added by utilizing the decoded signals generated by the decoder.
- the register While instructions which appoint (or designate) such a register as a destination register operate as NOP instructions, the register operates as a normal unrewritable register to signals of program control fields, such as a program counter control, a divergence control, or signals of bus control fields. Accordingly, on the ground of adding a store unit for additional instructions use, such as a user definition register, and writing data in a microprocessor into the store unit, additional instructions are added easily.
- data can be read from a device external to the microprocessor, such as a development tool. Therefore, the testing of circuits of a microprocessor may be realized easily.
- the development tool such as a ROM emulator or an in-circuit emulator (ICE) may also be realized easily.
- the microprocessor according to the present invention includes instructions which operate similar to NOP instructions before adding additional instructions.
- the microprocessor includes units for utilizing the NOP instructions. Therefore, when instructions are added, data path control signals can be generated easily on the basis of the decoded signals of the instructions.
- the microprocessor according to the present invention includes a gate circuit unit in the latter part of a control signal generation unit. Accordingly, data path control signals generated from the above decoded signals can be inputted to a data path easily. Therefore, a minimum change of hardware of the microprocessor makes it possible to realize addition or modification of instructions easily.
- a microprocessor to which instructions including a plurality of addressing modes can be added are realized easily in the same way as using other rewritable registers.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Executing Machine-Instructions (AREA)
Abstract
A microprocessor to which additional instructions from outside of the microprocessor are added and an instructions addition method are provided. The microprocessor includes an unrewritable register and if an instruction decoder in the microprocessor decodes additional instructions which appoint or designate the unrewritable register as a destination register, the additional instructions are added to the microprocessor on the basis of the decoded signals of the additional instructions. The present microprocessor can execute instructions addition while maintaining the compatibility of software for the additional instructions to prepared instructions in the microprocessor.
Description
1. Field of the Invention
The present invention generally relates to a microprocessor to which additional instructions can be added and an instructions addition method. More specifically, the present invention relates to a microprocessor having fixed-value registers or unrewritable registers, such as a RISC processor, for executing the additional instructions in the microprocessor, and the instructions addition method.
2. Discussion of the Background
Generally, processing apparatuses in which instructions are read out, interpreted and executed, are often utilized as an architecture for a development tool or a debugger. To perform such tasks, additional instructions, such as instructions for the development tool or the debugger, are needed.
However, when adding these additional instructions, the compatibility of the software for the additional instructions to prepared instructions in the processor has to be maintained. Conventionally, circuits in the processor were modified in order to maintain the compatibility of the software. As a result, such circuitry is complicated and the costs involved in developing such circuitry are high.
Accordingly, one object of the present invention is to provide a novel microprocessor, in which instructions are read out, interpreted and executed, which can execute the additional instructions while maintaining the compatibility of software for the additional instructions to prepared instructions in the processor.
Another object of the present invention is to provide a novel instructions addition method to a microprocessor, that can easily add additional instructions without considerable modification of circuits in the processor.
A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
FIG. 1 is a block diagram of a general microprocessor in which the present invention is applied;
FIG. 2 is an internal block diagram of an instruction generation unit in a microprocessor according to the present invention; and
FIG. 3 is an internal block diagram of an alternative embodiment of the instruction generation unit in a microprocessor according to the present invention.
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views and more particularly to FIG. 1 thereof, there is illustrated a block diagram of a general microprocessor in which the present invention is applied.
The microprocessor 1 shown in FIG. 1 includes a bus management unit 2, an address generation unit 3, an instruction generation unit 4, a processing unit 5, and a register unit 6. The bus management unit 2 is connected to the address generation unit 3, instruction generation unit 4, processing unit 5, and the register unit 6, and data or addresses external to the microprocessor are inputted through the bus management unit 2 into the address generation unit 3, the instruction generation unit 4, the processing unit 5, and the register unit 6. The address generation unit 3 includes, for example, a program counter, and is configured to transfer out addresses. The instruction generation unit 4 decodes instructions and generates various signals, such as timing signals and control signals. The processing unit 5 executes various instructions, such as arithmetic of integers and logical operations. The register unit 6 stores information, such as data and addresses. In this embodiment, the register unit 6 includes a fixed-value register, or an unrewritable register which is defined as a fixed-value register, as discussed below. Normally, in a microprocessor which includes fixed-value register, load instructions of which destination is a fixed-value register are executed as non-operation instructions, defined hereinbelow its NOP instructions. In this embodiment, additional instructions are added by utilizing instructions of which destination is the fixed-value register.
For example, the microprocessor 1 may include thirty-two wide-use registers r0 to r31, where the register r0 is a zero register which is one of the fixed-value registers. The register r0 in this example stores a zero value. In such a microprocessor 1, the zero register can be appointed or designated as a source register or a destination register in the instruction codes.
Since, the register r0 is an unrewritable register which stores a zero value the microprocessor 1 executes NOP instructions responding to a load instructions in which the register r0 is appointed as a destination register.
To illustrate, suppose that the microprocessor 1 includes the following load instruction (1) between registers dr1 and sr1 included in the load instruction (1).
1d dr1, sr1 (1)
In the above expression, the register sr1 is defined as a source register and the register dr1 is defined as a destination register. Further suppose that the following load instruction (2) is executed in the microprocessor 1.
1d r1, r2 (2)
When the above instruction (2) is executed, contents of the register r2 are copied into the register r1.
On the other hand, suppose that the following load instruction (3) is executed in the microprocessor 1.
1d r0, r2 (3)
In this circumstances, since the register r0 is an unrewritable register, the load instruction to write the contents of the register r2 into the register r0 operates as a NOP instructions' operation.
In the microprocessor 1, there are some instances in which some instructions are required to be added. One of those instances, for example, is to prepare a register into which data in the microprocessor can be written for a use as a developing tool of a microprocessor, and to add instructions which can be written into the register by instructions from the microprocessor 1. In such a case, the microprocessor 1 may be constructed so that when a decoder in the microprocessor 1 decodes instructions which designate a fixed-value register as a destination register, the additional instructions can be added by utilizing the decode signals.
The above additional instructions are, for example, instructions for a developing tool, instructions for debugging, instructions for electric communication, instructions for user defining, and so on.
Furthermore, in the case where the instructions designate a fixed-value register as a destination, if the architecture which operates the instructions to become instructions for writing data into a special register for a developing tool, a testing register, a register for debugging, and so on is prepared, instructions addition can be executed easily.
FIG. 2 shows an internal block diagram of an instruction generation unit 4 in a microprocessor 1 of a first embodiment according to the present invention.
In FIG. 2, the instruction generation unit 4 includes an instruction register 41, an instruction decoder 42, a control circuit 43, an additional instruction decoder 44, and a timing generator 45. The instruction generation unit 4 receives instruction codes from the bus management unit 2, seen in FIG. 1, and stores those instruction codes in the instruction register 41. Then, the instruction codes stored in the instruction register 41 are transferred to an instruction decoder 42 and then decoded by the decoder 42. The data decoded by the instruction decoder 42 are then transferred to a control circuit 43. The control circuit 43 generates various signals, such as timing signals and control signals, according to the above decoded instructions by the instruction decoder 42, and the generated signals are then transferred to a data path.
Also, instruction codes stored in the instruction register 41 are provided to the instruction decoder 44. The additional instruction decoder 44 decodes a field for instruction distinction (opcode) and a field for destination register appointment or designation (destination register operand) in instruction codes. In the case that the instructions indicate load instructions and the destination register is a fixed-value register, in the above example, the fixed-value register is register r0 which is a zero register that stores a zero value, and the additional instruction decoder 44 generates an active signal to the timing generator 45.
Continuing to refer to FIG. 2, the internal data bus 47 in the microprocessor 1 is connected to an additional register 46 used for adding instructions. In the case where the signal decoded by the instruction decoder 44 is active, the above timing generator 45 generates a write-signal to the additional register 46. The write-signal is utilized for writing instructions into the additional register 46, by a cycle of writing data into the destination register, and then the additional instructions are written into the additional register 46.
The operation of the microprocessor 1 of the above-mentioned first embodiment of the present invention will now be explained with reference to FIGS. 1 and 2.
First, a field for instruction distinction (opcode) and a field for destination register appointment or designation (destination register operand) in instruction codes, which are transferred from the bus management unit 2 and are stored into the instruction register 41, are decoded by the instruction decoder 42 or the additional instruction decoder 44. In the case where the instructions indicate load instructions and the destination register is register r0, the additional instruction decoder 44 outputs an active signal to the timing generator 45.
At this time, if the signal decoded by the additional instruction decoder 44 is active, the timing generator 45 generates a write-signal to the additional register 46 by a cycle of writing data into the destination register. Then source data are stored into the additional register 46, which is connected to the internal data bus 47, and are transferred by the above write signal at the time when wide-use registers are rewritten.
By using instruction codes decoded by the instruction decoder 42, the register r0 is appointable as a source register or a destination register. However, when the register r0 stores a zero value it is unrewritable. Accordingly, in such a circumstance, the microprocessor 1 executes NOP instructions responding to load instructions in which the register r0 is appointed as a destination register.
Referring now to FIG. 3, there is illustrated an internal block diagram of another instruction generation unit 4 in the microprocessor 1 of a second embodiment according to the present invention.
In this embodiment, the instruction generation unit 4 includes an instruction register 41, an instruction decoder 42, a control circuit 43, and an additional control signal generator 48. The instruction decoder 42 according to this embodiment, includes an additional instruction decoder section 42a. The instruction register 41 is connected to the bus management unit 2, seen if FIG. 1. The instruction decoder 42 is connected to the instruction register 41, and the control circuit 43. The additional control signal generator 48 is connected to the additional instruction decoder section 42a in the instruction decoder 42. Each output from the control circuit 43 is connected to one input line of the corresponding OR gates 49a included in gate circuit unit 49. Each output from the additional control signal generator 48 and the ground lines are connected to the other input of each OR gate 49a in the gate circuit unit 49, as seen in FIG. 3. The outputs from the OR gates 49a are defined as control signals and are transferred to a data path.
The instruction codes decoded in the instruction decoder unit 42, except the additional instruction decoder section 42a, are transferred to the control circuit 43. However, when the additional instruction decoder section 42a determines that an instruction code indicates a NOP instruction, the decoder section 42a transfers an active signal to the additional control signal generator 48. The control circuit 43 generates various signals, such as timing signals and control signals, according to the above decoded instructions by the instruction decoder 42, and the various signals are then transferred to a data path through the gate circuit unit 49 which, as noted above, includes OR gates 49a.
Instruction codes of which a destination register is appointed (or designated) to the above register r0, which is one kind of fixed-value registers, operate as NOP instructions in the microprocessor 1. Accordingly, instructions by the instruction codes can be considered as NOP instructions. Therefore, in this embodiment, it is supposed that the additional instruction decoder section 42a also considers other instruction codes of which a destination register is appointed to a fixed-value register as NOP instructions, and the additional instruction decoder section 42a provides an active signal to the addition control signal generator 48.
Furthermore, in the microprocessor 1 of this embodiment, plural NOP instructions are prepared for additional instruction use beforehand when the microprocessor is designed. In this embodiment, the plural NOP instructions are assigned to different instruction codes. Instruction codes are decoded in the additional instruction decoder section 42a, and if the instruction codes are determined to be NOP instructions, the additional control signal generator 48 provides an active signal. At this time, it is preferred that the NOP instructions include NOP instructions of various cycles, such as one cycle NOP instructions, two cycle NOP instructions, and three cycle instructions, so as to cope with various kinds of additional instructions.
The operation of the microprocessor according to the above second embodiment will now be explained with reference to FIGS. 1 and 3.
First, instructions of which a destination register is appointed to a fixed-value register or NOP instructions which operate by a similar cycle to additional instructions is selected. Then, instruction codes of the above instructions or NOP instructions are provided from the bus management unit 2 to the instruction register 41. The instruction codes are decoded in the additional instruction decoder section 42a, and the decoded signals and signals which indicate each cycle are then provided to the gate circuit unit 49. As a result, special instructions which are used for various kinds of applications can be added.
As mentioned above, the present microprocessor includes a fixed-value register or an unrewritable register. Furthermore, the present microprocessor includes a special decoder in an instruction generation unit in the microprocessor. The decoder decodes instructions which appoint a fixed-value register or an unrewritable register in a register unit as a destination register. Furthermore, the present microprocessor includes a special decoder in an instruction generation unit in the microprocessor. The decoder decodes instructions which appoint a fixed-value register or an unrewritable register in a register unit as a destination register. Additional instructions are added by utilizing the decoded signals generated by the decoder. That is, while instructions which appoint (or designate) such a register as a destination register operate as NOP instructions, the register operates as a normal unrewritable register to signals of program control fields, such as a program counter control, a divergence control, or signals of bus control fields. Accordingly, on the ground of adding a store unit for additional instructions use, such as a user definition register, and writing data in a microprocessor into the store unit, additional instructions are added easily.
Also, since instructions which appoints (or designates) a fixed-value register or an unrewritable register as a destination register operate as NOP instructions normally. Accordingly, even if additional instructions are added in a microprocessor, compatibility of software of the additional instructions with that of the microprocessor's own instructions is easily realized.
Further, in the microprocessor according to the present invention, data can be read from a device external to the microprocessor, such as a development tool. Therefore, the testing of circuits of a microprocessor may be realized easily. In addition, the development tool, such as a ROM emulator or an in-circuit emulator (ICE) may also be realized easily.
Further, the microprocessor according to the present invention includes instructions which operate similar to NOP instructions before adding additional instructions. The microprocessor includes units for utilizing the NOP instructions. Therefore, when instructions are added, data path control signals can be generated easily on the basis of the decoded signals of the instructions.
Furthermore, the microprocessor according to the present invention includes a gate circuit unit in the latter part of a control signal generation unit. Accordingly, data path control signals generated from the above decoded signals can be inputted to a data path easily. Therefore, a minimum change of hardware of the microprocessor makes it possible to realize addition or modification of instructions easily.
Furthermore, according to the present invention, a microprocessor to which instructions including a plurality of addressing modes can be added, are realized easily in the same way as using other rewritable registers.
Claims (28)
1. A microprocessor for reading instructions, interpreting said instructions, and executing said instructions, including an unrewritable register and an instruction generation unit, wherein said instruction generation unit comprises:
an instruction register for receiving additional instruction codes, which express additional instructions, from outside of said microprocessor and storing said additional instruction codes;
a first instruction decoder connected to said instruction register for decoding at least a part of said additional instruction codes and for generating decoded signals;
a control circuit connected to said instruction decoder for receiving said decoded signals and generating signals on the basis of said decoded signals for executing said additional instructions;
a second instruction decoder connected to said instruction register for decoding other parts of said additional instruction codes, for determining whether said additional instructions are load instructions and whether said additional instructions designate said unrewritable register as a destination register, and for generating an active signal if said second instruction decoder determines that said additional instructions are load instructions and designates said unrewritable register as a destination register;
a timing generator connected to said second instruction decoder for receiving said active signal and for generating a write-signal by a cycle of writing data into a destination register; and
an additional register connected to said timing generator through a data bus for storing said signals generated by said control circuit, on the basis of said write-signal.
2. The microprocessor according to claim 1, wherein said unrewritable register is a fixed-value register.
3. The microprocessor according to claim 1, wherein said additional instruction codes include a field for instructions distinction and a field for designation of said destination register.
4. A microprocessor for reading instructions, interpreting said instructions, and executing said instructions, including an unrewritable register and an instruction generation unit, wherein said instruction generation unit comprises:
an instruction register for receiving additional instruction codes, which express additional instructions from outside of said microprocessor, and storing said additional instruction codes;
an instruction decoder connected to said instruction register for decoding at least a part of said additional instructions codes and for generating decoded signals, wherein said instruction decoder further includes an additional instruction decoder section for decoding other parts of said instruction codes, for determining whether said additional instructions are NOP instructions, and for generating an active signal if said additional instructions are NOP instructions;
a control circuit connected to said instruction register for receiving said decoded signals and for generating signals on the basis of said decoded signals for executing said additional instructions;
an additional control signal generator connected to said additional instruction decoder section for receiving said activate signal and for generating additional control signals; and
an additional register connected to said additional control signal generator and said control circuit through a gate circuit unit and a data path, for storing said signals generated by said control circuit on the basis of said additional control signals.
5. The microprocessor according to claim 4, wherein said additional instruction decoder section decides that said additional instructions are said NOP instructions if said other parts of said additional instruction codes indicate that said additional instructions designate said unrewritable register as a destination register.
6. The microprocessor according to claim 4, wherein said additional instructions include plural NOP instructions and said plural NOP instructions are assigned to different additional instruction codes.
7. The microprocessor according to claim 4, wherein said unrewritable register is a fixed-value register.
8. The microprocessor according to claim 5, wherein said unrewritable register is a fixed-value register.
9. The microprocessor according to claim 4, wherein said additional instruction codes include a field for instructions distinction and a field for destination register designation.
10. The microprocessor according to claim 5, wherein said additional instruction codes include a field for instructions distinction and a field for destination register designation.
11. A processing apparatus, comprising:
unrewritable storing means;
determining means for determining whether additional instructions from outside of
said processing apparatus designates said unrewritable storing means as a destination storing means; and
additional instructions storing means for storing said additional instructions,
wherein said additional instructions are stored into said additional instructions storing means if said determining means determines that said additional instructions designate said unrewritable storing means as a destination storing means.
12. The processing apparatus according to claim 11, wherein said unrewritable storing means is a fixed-value storing means.
13. The processing apparatus according to claim 11, wherein instruction codes of said additional instructions include a field for instructions distinction and a field for designation of said destination storing means.
14. The processing apparatus according to claim 12, wherein instruction codes of said additional instructions include a field for instructions distinction and a field for designation of said destination storing means.
15. A processing apparatus, comprising:
deciding means for deciding whether additional instructions from outside of said processing apparatus are NOP instructions; and
active signal generation means for generating an active signal if said deciding means decides that said additional instructions are NOP instructions;
wherein said additional instructions are added to said processing apparatus on the basis of said active signal.
16. The processing apparatus according to claim 15, further comprising unrewritable storing means, wherein said deciding means decides that additional instructions are regarded as said NOP instructions if said additional instructions designate said unrewritable storing means as a destination storing means.
17. The processing apparatus according to claim 16, wherein said unrewritable storing means is a fixed-value storing means.
18. The processing apparatus according to claim 16, wherein instructions codes of said additional instructions include a field for instructions distinction and a field for designation of a destination storing means.
19. The processing apparatus according to claim 15, wherein said additional instructions include plural NOP instructions and said plural NOP instructions are assigned to different additional instruction codes.
20. An instructions addition method to a processing apparatus, comprising the steps of:
decoding additional instructions from outside of said processing apparatus;
deciding whether said additional instructions designate unrewritable storing means in said processing apparatus as a destination storing means; and
storing said additional instructions into additional instructions storing means if it is decided that said additional instructions designates said unrewritable storing means as a destination storing means.
21. The instructions addition method according to claim 20, wherein said unrewritable storing means is a fixed-value storing means.
22. An instructions addition method according to claim 20, wherein instruction codes of said additional instructions include a field for designation of said destination storing means and the step of storing stores said additional instructions into said additional instructions storing means if said step of deciding decides that said field for designation of said destination in said additional instructions express to designate said unrewritable storing means as a destination storing means.
23. An instructions addition method according to claim 21, wherein instruction codes of said additional instructions include a field for designation of said destination storing means and the step of storing stores said additional instructions into said additional instructions storing means if said step of deciding decides that said field for designation of said destination in said additional instructions express to designate said unrewritable storing means as a destination storing means.
24. An instructions addition method to a processing apparatus, comprising the steps of:
deciding whether additional instructions from outside of said processing apparatus are NOP instructions;
generating an active signal if said step of deciding decides that said additional instructions are NOP instructions; and
adding said additional instructions to said processing apparatus on the basis of said active signal.
25. The instructions addition method according to claim 24, further comprising the step of regarding said additional instructions as said NOP instructions if said additional instructions designate an unrewritable storing means in said processing apparatus as a destination storing means.
26. The instructions additional method according to claim 25, wherein instruction codes of said additional instructions include a field for designation of said destination storing means and wherein the step of regarding regards said additional instructions as said NOP instructions if said field for designation of said destination express to designate said unrewritable storing means as a destination storing means.
27. The instructions addition method according to claim 25, wherein said unrewritable storing means is a fixed-value storing means.
28. An instructions addition method according to claim 24, wherein said additional instructions include plural NOP instructions, and wherein the step of generating generates said active signal if said step of deciding decides that said additional instructions are one of said plural NOP instructions.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1627495 | 1995-02-02 | ||
JP7-016274 | 1995-02-02 | ||
JP8935395 | 1995-04-14 | ||
JP7-089253 | 1995-04-14 | ||
JP7-140540 | 1995-06-07 | ||
JP7140540A JPH08339298A (en) | 1995-02-02 | 1995-06-07 | Instruction addition method in microprocessor and microprocessor using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
US5742801A true US5742801A (en) | 1998-04-21 |
Family
ID=27281334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/595,765 Expired - Lifetime US5742801A (en) | 1995-02-02 | 1996-02-02 | Microprocessor to which additional instructions are added and instructions addition method thereof |
Country Status (2)
Country | Link |
---|---|
US (1) | US5742801A (en) |
JP (1) | JPH08339298A (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030118162A1 (en) * | 2001-12-06 | 2003-06-26 | Masanori Itoh | Tone detector |
US20030123647A1 (en) * | 2001-12-17 | 2003-07-03 | Masanori Itoh | Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals |
US20030152280A1 (en) * | 2001-09-25 | 2003-08-14 | Yukio Kadowaki | Image processing device, image processing method, and image reading method |
US6647488B1 (en) | 1999-11-11 | 2003-11-11 | Fujitsu Limited | Processor |
US20030223522A1 (en) * | 2002-03-22 | 2003-12-04 | Masanobu Fukushima | Bit synchronizing circuit |
US20040136599A1 (en) * | 2002-11-01 | 2004-07-15 | Yukio Kadowaki | Image processing apparatus and image processing method |
US20040190049A1 (en) * | 2002-12-27 | 2004-09-30 | Masanori Itoh | Printing system, printing management device, print server, printing method, and storage medium |
US20040218425A1 (en) * | 2003-04-30 | 2004-11-04 | Masanobu Fukushima | Method and circuit for elastic storing capable of adapting to high-speed data communications |
US20040257610A1 (en) * | 2003-03-20 | 2004-12-23 | Masanori Itoh | Service providing apparatus that shares print environments |
US20040263870A1 (en) * | 2003-06-20 | 2004-12-30 | Masanori Itoh | Method and apparatus for providing a service for sharing a printing environment |
US20050084169A1 (en) * | 2003-09-30 | 2005-04-21 | Yukio Kadowaki | Image processing apparatus that can generate coded data applicable to progressive reproduction |
US20050082816A1 (en) * | 2003-10-16 | 2005-04-21 | Martin Judy A. | Birthday calendar |
US10140023B2 (en) | 2015-07-27 | 2018-11-27 | Samsung Electronics Co., Ltd. | Memory device and memory system including the same |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781823A (en) * | 1972-07-28 | 1973-12-25 | Bell Telephone Labor Inc | Computer control unit capable of dynamically reinterpreting instructions |
US4028670A (en) * | 1976-02-06 | 1977-06-07 | International Business Machines Corporation | Fetch instruction for operand address calculation |
US4167229A (en) * | 1975-03-22 | 1979-09-11 | Karl M. Reich Maschinenfabrik Gmbh | Screw strip and method for forming the same |
US4419726A (en) * | 1981-01-16 | 1983-12-06 | Sperry Corporation | Instruction decoding in data processing apparatus |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US4876639A (en) * | 1983-09-20 | 1989-10-24 | Mensch Jr William D | Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit |
US4972317A (en) * | 1986-10-06 | 1990-11-20 | International Business Machines Corp. | Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory |
US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
US5454086A (en) * | 1992-08-11 | 1995-09-26 | International Business Machines Corporation | Dynamic program analyzer facility |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
-
1995
- 1995-06-07 JP JP7140540A patent/JPH08339298A/en active Pending
-
1996
- 1996-02-02 US US08/595,765 patent/US5742801A/en not_active Expired - Lifetime
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781823A (en) * | 1972-07-28 | 1973-12-25 | Bell Telephone Labor Inc | Computer control unit capable of dynamically reinterpreting instructions |
US4167229A (en) * | 1975-03-22 | 1979-09-11 | Karl M. Reich Maschinenfabrik Gmbh | Screw strip and method for forming the same |
US4028670A (en) * | 1976-02-06 | 1977-06-07 | International Business Machines Corporation | Fetch instruction for operand address calculation |
US4419726A (en) * | 1981-01-16 | 1983-12-06 | Sperry Corporation | Instruction decoding in data processing apparatus |
US4876639A (en) * | 1983-09-20 | 1989-10-24 | Mensch Jr William D | Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit |
US4841476A (en) * | 1986-10-06 | 1989-06-20 | International Business Machines Corporation | Extended floating point operations supporting emulation of source instruction execution |
US4972317A (en) * | 1986-10-06 | 1990-11-20 | International Business Machines Corp. | Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory |
US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
US5454086A (en) * | 1992-08-11 | 1995-09-26 | International Business Machines Corporation | Dynamic program analyzer facility |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647488B1 (en) | 1999-11-11 | 2003-11-11 | Fujitsu Limited | Processor |
US7349579B2 (en) | 2001-09-25 | 2008-03-25 | Ricoh Company, Ltd. | Image processing device, image processing method, and image reading method |
US20030152280A1 (en) * | 2001-09-25 | 2003-08-14 | Yukio Kadowaki | Image processing device, image processing method, and image reading method |
US20030118162A1 (en) * | 2001-12-06 | 2003-06-26 | Masanori Itoh | Tone detector |
US7227943B2 (en) | 2001-12-06 | 2007-06-05 | Ricoh Company, Ltd. | Tone detector |
US20060008074A1 (en) * | 2001-12-17 | 2006-01-12 | Masanori Itoh | Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals |
US7804942B2 (en) | 2001-12-17 | 2010-09-28 | Ricoh Company, Ltd. | Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals |
US20030123647A1 (en) * | 2001-12-17 | 2003-07-03 | Masanori Itoh | Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals |
US7035394B2 (en) | 2001-12-17 | 2006-04-25 | Ricoh Company, Ltd. | Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals |
US20030223522A1 (en) * | 2002-03-22 | 2003-12-04 | Masanobu Fukushima | Bit synchronizing circuit |
US7251304B2 (en) | 2002-03-22 | 2007-07-31 | Ricoh Company, Ltd. | Bit synchronizing circuit configured to obviate errors from meta-stability |
US20040136599A1 (en) * | 2002-11-01 | 2004-07-15 | Yukio Kadowaki | Image processing apparatus and image processing method |
US7321693B2 (en) | 2002-11-01 | 2008-01-22 | Ricoh Company, Ltd. | Image processing apparatus and image processing method including adjustment of coded data to specified target size |
US20040190049A1 (en) * | 2002-12-27 | 2004-09-30 | Masanori Itoh | Printing system, printing management device, print server, printing method, and storage medium |
US7460261B2 (en) | 2002-12-27 | 2008-12-02 | Ricoh Company, Ltd. | Printing system, printing management device, print server, printing method, and storage medium |
US20040257610A1 (en) * | 2003-03-20 | 2004-12-23 | Masanori Itoh | Service providing apparatus that shares print environments |
US20050146950A1 (en) * | 2003-04-30 | 2005-07-07 | Masanobu Fukushima | Method and circuit for elastic storing capable of adapting to high-speed data communications |
US6885594B2 (en) | 2003-04-30 | 2005-04-26 | Ricoh Company, Ltd. | Method and circuit for elastic storing capable of adapting to high-speed data communications |
US20040218425A1 (en) * | 2003-04-30 | 2004-11-04 | Masanobu Fukushima | Method and circuit for elastic storing capable of adapting to high-speed data communications |
US20040263870A1 (en) * | 2003-06-20 | 2004-12-30 | Masanori Itoh | Method and apparatus for providing a service for sharing a printing environment |
US7788377B2 (en) | 2003-06-20 | 2010-08-31 | Ricoh Company, Ltd. | Method and apparatus for providing a service for sharing a printing environment |
US20050084169A1 (en) * | 2003-09-30 | 2005-04-21 | Yukio Kadowaki | Image processing apparatus that can generate coded data applicable to progressive reproduction |
US7512281B2 (en) | 2003-09-30 | 2009-03-31 | Ricoh Company, Ltd. | Image processing apparatus that can generate coded data applicable to progressive reproduction |
US20050082816A1 (en) * | 2003-10-16 | 2005-04-21 | Martin Judy A. | Birthday calendar |
US10140023B2 (en) | 2015-07-27 | 2018-11-27 | Samsung Electronics Co., Ltd. | Memory device and memory system including the same |
Also Published As
Publication number | Publication date |
---|---|
JPH08339298A (en) | 1996-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5740461A (en) | Data processing with multiple instruction sets | |
US5933642A (en) | Compiling system and method for reconfigurable computing | |
Sloss et al. | ARM system developer's guide: designing and optimizing system software | |
KR100327778B1 (en) | Data processing method using multiple instruction sets | |
US5430862A (en) | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution | |
US5742801A (en) | Microprocessor to which additional instructions are added and instructions addition method thereof | |
US20100011191A1 (en) | Data processing device with instruction translator and memory interface device to translate non-native instructions into native instructions for processor | |
US4562538A (en) | Microprocessor having decision pointer to process restore position | |
US5684983A (en) | Microprocessor executing multiple register transfer operations with a single instruction with derivation of destination register numbers from source register | |
US5680632A (en) | Method for providing an extensible register in the first and second data processing systems | |
US5991872A (en) | Processor | |
KR960011683A (en) | Microprocessors that execute instructions with operand fields, including parts used as part of opcode | |
EP0226991B1 (en) | Data-processing device | |
JP3716604B2 (en) | Information processing device | |
JPS5938677B2 (en) | Control word transfer control device | |
JP2806075B2 (en) | Microcomputer | |
US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
EP0134386A2 (en) | Method and apparatus for executing object code instructions compiled from a high-level language source | |
US20020004877A1 (en) | Method and system for updating user memory in emulator systems | |
US6996702B2 (en) | Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention | |
JP2731618B2 (en) | emulator | |
JPH03204028A (en) | Central processing unit | |
JP2851192B2 (en) | Addition / subtraction processing method with carry in parallel processing unit | |
JPH0683987A (en) | Microcomputer | |
Chalk et al. | Fetching and Executing Instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RICOH COMPANY, LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FUKUSHIMA, MASANOBU;KADOWAKI, YUKIO;ITOH, MASANORI;REEL/FRAME:007931/0929;SIGNING DATES FROM 19960415 TO 19960416 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |