Extensible central processing unit
AssigneeMotorola, Inc.
InventorsCharles F. Studor, James S. Divine
Life of this patent
Estimating the term…
Abstract
An extensible central processing unit (CPU) (12 or 12'). By modifying the architecture of a new or prior art CPU, a new or prior art CPU can be made extensible so that new instructions can be added in a simple and cost effective manner to meet differing customer needs. The term "extensible" in regard to a CPU is used to mean that new instructions can be added to the CPU simply by adding certain designated circuitry, without the need to significantly change the existing CPU circuitry. In some embodiments, the additional designated circuitry may include control circuitry in the form of CPU control extension circuitry (52 or 152). In some embodiments, the additional circuitry may include non-control circuitry in the form of execution unit extension circuitry (153).
Claims55
An extensible central processing unit, comprising:
- an execution unit, comprising:
- a first set of control inputs for receiving a first set of control signals, wherein in response to receiving the first set of control signals all of said execution unit is directly controlled by the first set of control signals;
- a second set of control inputs for receiving a second set of control signals, wherein in response to receiving only the second set of control signals all of said execution unit is directly controlled by the second set of control signals;
- a plurality of status registers which are all status registers which exist within said central processing unit;
- a first set of status outputs for providing a set of status signals which indicate a current state of the execution unit;
- and
- a second set of status outputs which also provide the same set of status signals which indicate the same current state of the execution unit;
- and
- a first control unit, coupled to said execution unit said first control unit providing the first set of control signals to said execution unit, and said first control unit receiving said set of status signals from said execution unit via the first set of status outputs.
A central processing unit, comprising:
- an execution unit, comprising:
- a first set of control inputs for receiving a first set of control signals, wherein if the first set of control signals is received by said execution unit, then all of said execution unit is directly controlled by the first set of control signals;
- a second set of control inputs for receiving a second set of control signals, wherein if the second set of control signals is received by said execution unit, then all of said execution unit is directly controlled by the second set of control signals;
- a plurality of status registers which are all status registers which exist within said central processing unit;
- a first set of status outputs for providing a set of status signals which indicate a current state of the execution unit;
- and
- a second set of status outputs which also provide the same set of status signals which indicate the same current state of the execution unit;
- a decode circuit for providing decode output signals;
- a first control unit, coupled to said execution unit and to said decode circuit, said first control unit receiving the decode output signals from said decode circuit, said first control unit providing the first set of control signals to said execution unit, and said first control unit receiving said set of status signals from said execution unit;
- a select circuit for providing a first enable/disable signal and a second enable/disable signal;
- first disable means, coupled to said select circuit for receiving the first enable/disable signal, and coupled between said execution unit and said first control unit, said first disable means for selectively enabling and disabling transfer of the first set of control signals to said first set of control inputs based upon the first enable/disable signal;
- a second control unit, coupled to said execution unit, said second control unit providing the second set of control signals;
- and
- second disable means, coupled to said select circuit for receiving the second enable/disable signal, and coupled between said execution unit and said second control unit, said second disable means for selectively enabling and disabling transfer of the second set of control signals to said second set of control inputs based upon the second enable/disable signal;
- wherein an extensible control instruction transfers control of said execution unit from said first control unit to said second control unit.
A central processing unit, comprising:
- an execution unit;
- a bus for transferring instructions, including a special control transfer instruction;
- first control circuitry, coupled to said execution unit and coupled to said bus for receiving the transferred instructions including the special control transfer instruction, said first control circuitry decoding the transferred instructions and providing decoded instructions and control signals to said execution unit before the special control transfer instruction is transferred by said bus to said first control circuitry;
- and
- second control circuitry, coupled to said execution unit and coupled to said bus, said second control circuitry decoding the transferred instructions and providing decoded instructions and control signals to said execution unit in lieu of the first control circuitry and after execution by said execution unit of the special control transfer instruction.
A central processing unit, comprising:
- a first control unit for generating a first set of execution unit control signals;
- a second control unit for generating a second set of execution unit control signals;
- an execution unit, coupled to said first control unit and to said second control unit, said execution unit being controlled by only one of the first and second sets of execution unit control signals when an instruction other than a special control transfer instruction is being executed, said execution unit is controlled by both the first and second sets of execution unit control signals during a portion of the special control transfer instruction;
- and
- state sequencer circuitry, coupled to said first control unit and to said second control unit, said state sequencer circuitry initiating a transfer of control of said execution unit from the first set of execution unit control signals to the second set of execution unit control signals as a result of receiving the special control transfer instruction.
A method for operating a data processing system, the data processing system having a first control unit, having a second control unit, and having an execution unit which is controlled by a plurality of control signals, the method comprising the steps of:
- receiving a control transfer instruction;
- during execution of a first portion of the control transfer instruction, providing the plurality of control signals from the first control unit to said execution unit, and not from the second control unit to said execution unit;
- and
- during execution of a second portion of the control transfer instruction, providing said plurality of control signals from both the first and the second control units to said execution unit.
A data processor, comprising:
- an execution unit comprising a plurality of execution unit buses;
- a bus for transferring instructions, including a special control transfer instruction;
- first control circuitry, coupled to said execution unit and to said bus, said first control circuitry controlling said execution unit before the special control transfer instruction is transferred by said bus;
- second control circuitry, coupled to said execution unit and to said bus, said second control circuitry controlling said execution unit after execution of the special control transfer instruction has been completed;
- and
- an execution unit extension circuit, coupled to at least one of said plurality of execution unit buses, and coupled to said second control circuitry by way of at least one control signal;
- and
- wherein during execution of a first portion of the control transfer instruction, said first control circuitry controls said execution unit, and during execution of a second portion of the control transfer instruction, both said first control circuitry and said second control circuitry control said execution unit.
A data processor, comprising:
- a first control unit which generates a first set of execution unit control signals;
- a second control unit which generates a second set of execution unit control signals;
- an execution unit, coupled to said first control unit and to said second control unit, said execution unit being controlled by both the first and second sets of execution unit control signals when a special control transfer instruction is being executed, said execution unit having a plurality of internal execution unit buses;
- an execution unit extension circuit, coupled to at least one of said plurality of internal execution unit buses, and coupled to said second control unit for receiving at least one execution unit extension control signal;
- a first state sequencer circuit, said first state sequencer circuit initiating a transfer of control of said execution unit from the first set of execution unit control signals to the second set of execution control signals as a result of receiving the special control transfer instruction;
- and
- a second state sequencer circuit, coupled to said first state sequencer circuit, said second state sequencer circuit returning control of said execution unit from the second set of execution control signals to the first set of execution unit control signals;
- and
- wherein said execution unit is controlled by both the first and second sets of execution unit control signals during a portion of the special control transfer instruction, and wherein the first set of execution unit control signals have a predetermined pattern of logic states during said portion of the special control transfer instruction, and wherein the second set of execution unit control signals also have the predetermined pattern of logic states during said portion of the special control transfer instruction.
In a data processing system having an extensible central processing unit, said extensible central processing unit having an execution unit for executing instructions, said execution unit having a first set of control inputs and a second set of control inputs each for receiving control signals, a method of executing an extensible control instruction, the method comprising the steps of:
- said central processing unit receiving the extensible control instruction;
- and
- in response to said central processing unit receiving the extensible control instruction said execution unit executing a no operation (NOP) instruction;
- wherein if said first set of control inputs is active, the method further comprising the steps of:
- said execution unit receiving control signals at said first set of control inputs;
- activating said second set of control inputs of said execution unit;
- said execution unit receiving control signals at said second set of control inputs;
- and
- deactivating said first set of control inputs of said execution unit.
In a data processing system having an execution unit adapted to perform a plurality of predetermined operations, and an instruction execution control circuit adapted to control the operation of the execution unit in response to each of a plurality of predetermined instructions, including a control transfer instruction, a method comprising the steps of:
- during operation of the data processing system in at least one mode:
- said control circuit receiving each of the plurality of predetermined instructions;
- and
- in response to said control circuit receiving one of said plurality of predetermined instructions other than the control transfer instruction:
- said control circuit controlling the execution unit in the execution of said one instruction ;
- but
- in response to said control circuit receiving said control transfer instruction:
- said control circuit initiating a transfer of control of said execution unit from the control circuit.
In a data processing system having an execution unit, the method comprising the steps of:
- providing in said execution unit, a first set of inputs and a second set of inputs;
- providing in the data processing system a first set of instructions and a second set of instructions;
- receiving, in the data processing system, a first instruction belonging to the first set of instructions, the first instruction not being included in the second set of instructions;
- in response to receiving the first instruction, controlling the execution unit via control signals provided at the first set of inputs;
- receiving, in the data processing system, an extensible control instruction different from the first instruction;
- in response to receiving the extensible control instruction enabling the data processing system to receive the second set of instructions;
- receiving, in the data processing system, a second instruction which is part of the second set of instructions but is not included in the first set of instructions;
- in response to receiving the second instruction, controlling the execution unit via control signals provided at the second set of inputs;
- receiving a second extensible control instruction different from the first instruction;
- in response to receiving the second extensible control instruction enabling the data processing system to receive the first set of instructions;
- receiving any instruction in the first set of instructions;
- and
- in response to receiving said any instruction, controlling the execution unit via control signals provided at the first set of inputs.
A method for processing a first and a second instruction in a central processing unit, the method comprising the steps of:
- receiving a first instruction at a first set of inputs, the first instruction belonging to a first instruction set, the first instruction being included in a second instruction set;
- processing the first instruction;
- receiving a transfer instruction at the first set of inputs, where the transfer instruction is different from the first instruction;
- transferring control of the execution unit from the first set of inputs to a second set of inputs in response to the transfer instruction;
- receiving a second instruction at the second set of inputs, the second instruction belonging to a second instruction set but not belonging to the first instruction set;
- processing the second instruction;
- and
- receiving a third instruction and a fourth instruction at the first set of inputs prior to receiving the transfer instruction, the third and fourth instructions belonging to the first instruction set, the third and fourth instructions sequentially performing a first algorithmic function.
An integrated circuit comprising:
- an execution unit comprising a plurality of execution unit buses;
- a bus for transferring instructions, including a special control transfer instruction;
- first control circuitry, coupled to said execution unit and to said bus, said first control circuitry controlling said execution unit before the special control transfer instruction is transferred by said bus;
- second control circuitry, coupled to said execution unit and to said bus, said second control circuitry controlling said execution unit after execution of the special control transfer instruction has been completed;
- and
- an execution unit extension circuit, coupled to at least one of said plurality of execution unit buses, and coupled to said second control circuitry by way of at least one control signal;
- and
- wherein during execution of a first portion of the control transfer instruction said first control circuitry controls said execution unit, and during execution of a second portion of the control transfer instruction said second control circuitry controls said execution unit.
In a data processing system having an execution unit for executing instructions, a method of executing an extensible control instruction, the method comprising the steps of:
- said execution unit receiving a first set of control signals at a first set of control inputs;
- receiving the extensible control instruction;
- in response to receiving the extensible control instruction said data processing system activating said second set of control inputs and deactivating said first set of control inputs;
- receiving a second set of control signals at said second set of control inputs;
- executing a first instruction corresponding to the second set of control inputs;
- and
- in response to executing the first instruction said data processing system activating said first set of control inputs and deactivating said second set of control inputs.
Dependencies are inferred from the claim text.