Multiple control stores in a pipelined microcontroller for handling jump and return subroutines
First Claim
1. A microcontroller for controlling a digital device, said microcontroller comprising:
- at least three control memories each for storing a set of microinstructions, each microinstruction being formed of a control field for controlling said digital device, a jump address field specifying the location in other control memory of the next microinstruction to be executed should said each microinstruction be a jump to subroutine or a return from subroutine instruction and an instruction field specifying whether that particular microinstruction is a jump microinstruction, return microinstruction, or requires neither action;
at least three address registers one for each control memory and containing the address of the next microinstruction to be fetched;
means for fetching said microinstructions from each of said control memories in every clock cycle;
an instruction register coupled to the respective memories and digital device for receiving the control field and instruction field of a microinstruction fetched from one of said control memories;
a multiplexor coupled between said instruction register to select the instruction field of one of the microconstructions being fetched from said respective control memories;
interconnection means coupled between each of said control memories and the address registers of the other control memories for supplying a jump address to the address registers of said other control memories;
logic means coupled to said instruction field portion of said instruction register and to said address registers to specify one of said registers as a program counter, one of said registers as a jump address register and one of said address registers as a return from subroutine register; and
means responsive to said logic means to increment said program counter, to load a new address into said jump address register and to keep said return from subroutine register current contents.
4 Assignments
0 Petitions
Accused Products
Abstract
A microcontroller for controlling a digital device which controller is formed of a plurality of control stores each of which is provided with a register counter to address different locations within corresponding control store. Each control store is accessed each clock cycle and an instruction register is provided to receive one of the fetched microinstructions from the selected control store. In this summer, a microinstruction is presented to the instruction register each clock cycle even though the previous microinstruction was a conditional branch, a jump to subroutine or a return to subroutine instruction. In order to accommodate jump to subroutine and corresponding return from subroutine instructions, the respective address of the return subroutine is stored in a push-down stack for presentation to a selected one of the above-referred-to register counters in an order the reverse of the order in which those addresses were placed on the top of the stack.
53 Citations
10 Claims
-
1. A microcontroller for controlling a digital device, said microcontroller comprising:
-
at least three control memories each for storing a set of microinstructions, each microinstruction being formed of a control field for controlling said digital device, a jump address field specifying the location in other control memory of the next microinstruction to be executed should said each microinstruction be a jump to subroutine or a return from subroutine instruction and an instruction field specifying whether that particular microinstruction is a jump microinstruction, return microinstruction, or requires neither action; at least three address registers one for each control memory and containing the address of the next microinstruction to be fetched; means for fetching said microinstructions from each of said control memories in every clock cycle; an instruction register coupled to the respective memories and digital device for receiving the control field and instruction field of a microinstruction fetched from one of said control memories; a multiplexor coupled between said instruction register to select the instruction field of one of the microconstructions being fetched from said respective control memories; interconnection means coupled between each of said control memories and the address registers of the other control memories for supplying a jump address to the address registers of said other control memories; logic means coupled to said instruction field portion of said instruction register and to said address registers to specify one of said registers as a program counter, one of said registers as a jump address register and one of said address registers as a return from subroutine register; and means responsive to said logic means to increment said program counter, to load a new address into said jump address register and to keep said return from subroutine register current contents. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A microcontroller for controlling a digital device, said microcontroller comprising:
-
at least three control memories each for storing a set of microinstructions, each microinstruction being formed of a control field for controlling said digital device, a jump address field specifying the location in other control memory of the next microinstruction to be executed should said each microinstruction be a jump to subroutine or a return from subroutine instruction and an instruction field specifying whether that particular microinstruction is a jump microinstruction, return microinstruction, or requires neither action; at least three address registers one for each control memory and containing the address of the next microinstruction to be fetched; means for fetching said microinstructions from each of said control memories in every clock cycle; an instruction register coupled to the respective memories and digital device for receiving the control field and instruction field of a microinstruction fetched from one of said control memories; a multiplexor coupled between said respective control memories and said instruction register to select the instruction field and control field of one of the microinstructions being fetched from said respective control memories; interconnection means coupled between each of said control memories and the address registers of the other control memories for supplying a jump address to the address registers of said other control memories; logic means coupled to said instruction field portion of said instruction register and to said address registers to specify one of said registers as a program counter, one of said registers as a jump address register and one of said address registers as a return from subroutine register; means responsive to said logic means to increment said program counter, to load a new address into said jump address register and to keep said return from subroutine register current contents; condition select means for receiving a condition signal from said digital device specifying that a conditional branch is required in the execution of a sequence of said microinstructions; and said logic means being coupled between said condition select means and said plurality of address registers to select which control memory supplies the next microinstruction upon receipt of a condition signal from said digital device. - View Dependent Claims (8, 9, 10)
-
Specification