← Back to Patent Explorer
US5235686A Expired / Lapsed US ⏱️ 0.0 years remaining

Computer system having mixed macrocode and microcode

Assignee: Texas Instruments Inc
•
Filing: 1990-12-20
•
Granted: 1993-08-10
•
Expires: 2010-12-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system uses microcode subroutines to execute complex macroinstructions. Each macroinstruction is used to index a table. Simple macroinstructions have a single microinstruction counterpart in the table, and such microinstruction is performed directly in order to execute that macroinstruction. The table entry corresponding to more complex macroinstructions is a jump microinstruction, with the target of the microcode jump being an appropriate subroutine in microcode memory.

Inventors

  • 👤 Patrick W. Bosshart

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 03:20
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30145; G06F9/22; G06F9/26; G06F9/262; G06F9/268; G06F9/28; G06F9/30003; G06F9/3005; G06F9/30054; G06F9/30061; G06F9/3017; G06F9/30174

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 357 words
A digital computer system having the ability to execute certain machine instructions in a single clock cycle, comprising: (a) a central processor for executing machine instructions wherein certain machine instructions are executed by executing a single microcode instruction and certain other machine instructions are executed by executing a routine of microcode instructions; (b) a main memory coupled to said central processor and having machine instructions stored therein to be executed by said central processor, (c) a microcode memory coupled to said central processor having microcode instructions including a first set and a second set of microcode instructions stored therein, said first of said microcode instructions being addressed by a starting microinstruction address, said first set of microcode instructions containing microcode instructions of a first type having a type field portion indicating that the instruction is one of a single microcode instruction for executing a machine instruction and microcode instructions of a second type having a type field portion indicating a routine of multiple microcode instructions which must be executed to perform a single machine instruction, said second set corresponding to said routines of multiple microcode instructions; (d) a machine instruction decoder coupled to said main memory and operative to fetch a machine instruction from said memory and to generate said starting microinstruction address in said microcode memory, wherein said starting microinstruction address points to said microinstruction having a one-to-one correspondence to said machine instruction; and (e) decode and transfer means coupled to said central processor and said microcode memory to decode and transfer said microcode instructions from said microcode memory at said microinstruction address to said central processor for execution by said central processor; (f) said decode and transfer means including means responsive to decoding of said microcode instruction in said first set to determine the type field thereof, and means responsive to said instructions of said first type for causing said machine instruction decoder to process the next available machine instruction and responsive to said microcode instructions of said second type for causing a jump to a microcode routine which is executed to completion before causing said machine instruction decoder to process the next machine instruction.
Claim 2
Dependent Claim 357 words
A digital computer system having the ability to execute certain machine instructions in a single clock cycle, comprising: (a) a central processor for executing machine instructions wherein certain machine instructions are executed by executing a single microcode instruction and certain other machine instructions are executed by executing a routine of microcode instructions; (b) a main memory coupled to said central processor and having machine instructions stored therein to be executed by said central processor, (c) a microcode memory coupled to said central processor having microcode instructions including a first set and a second set of microcode instructions stored therein, said first of said microcode instructions being addressed by a starting microinstruction address, said first set of microcode instructions containing microcode instructions of a first type having a type field portion indicating that the instruction is one of a single microcode instruction for executing a machine instruction and microcode instructions of a second type having a type field portion indicating a routine of multiple microcode instructions which must be executed to perform a single machine instruction, said second set corresponding to said routines of multiple microcode instructions; (d) a machine instruction decoder coupled to said main memory and operative to fetch a machine instruction from said memory and to generate said starting microinstruction address in said microcode memory, wherein said starting microinstruction address points to said microinstruction having a one-to-one correspondence to said machine instruction; and (e) decode and transfer means coupled to said central processor and said microcode memory to decode and transfer said microcode instructions from said microcode memory at said microinstruction address to said central processor for execution by said central processor; (f) said decode and transfer means including means responsive to decoding of said microcode instruction in said first set to determine the type field thereof, and means responsive to said instructions of said first type for causing said machine instruction decoder to process the next available machine instruction and responsive to said microcode instructions of said second type for causing a jump to a microcode routine which is executed to completion before causing said machine instruction decoder to process the next machine instruction.
Claim 3
Dependent Claim 38 words
The system of claim 1, wherein all of the microcode instructions in the first set are located contiguously in memory, and wherein a portion of each machine code instruction is used to directly address the corresponding microcode instruction.
Claim 4
Dependent Claim 207 words
An instruction prefetch queue circuit for a computer system, comprising: (a) an instruction queue of length n and having a head, for holding macroinstructions to be performed; (b) a program counter queue of length n, having a head, for holding program counters therein corresponding to the macroinstructions in said instruction queue, and operating in step with said instruction queue; (c) a pipeline controller coupled to said instruction queue for selecting an instruction from said instruction queue; (d) first means responsive to said selected instruction to generate a starting microinstruction address; and (e) second means responsive to said starting microinstruction address operable to fetch a starting microcode instruction, and subsequent to completing said fetch, operable to remove instructions from said head of said instruction queue and to remove a program counter from said head of said program counter queue and operable to return said fetched microcode instruction to a processor for execution; wherein said selected instruction is the instruction closest to the head of said instruction queue which said second means has not yet commenced to fetch, thereby preventing the instruction selected for generating a starting microinstruction address from being at the head of said instruction queue when said second means is fetching at least one starting microinstruction.
Claim 5
Dependent Claim 207 words
An instruction prefetch queue circuit for a computer system, comprising: (a) an instruction queue of length n and having a head, for holding macroinstructions to be performed; (b) a program counter queue of length n, having a head, for holding program counters therein corresponding to the macroinstructions in said instruction queue, and operating in step with said instruction queue; (c) a pipeline controller coupled to said instruction queue for selecting an instruction from said instruction queue; (d) first means responsive to said selected instruction to generate a starting microinstruction address; and (e) second means responsive to said starting microinstruction address operable to fetch a starting microcode instruction, and subsequent to completing said fetch, operable to remove instructions from said head of said instruction queue and to remove a program counter from said head of said program counter queue and operable to return said fetched microcode instruction to a processor for execution; wherein said selected instruction is the instruction closest to the head of said instruction queue which said second means has not yet commenced to fetch, thereby preventing the instruction selected for generating a starting microinstruction address from being at the head of said instruction queue when said second means is fetching at least one starting microinstruction.
Claim 6
Dependent Claim 54 words
The queue of claim 3, further comprising: a multiplexer having data inputs coupled to said instruction queue and to said pipeline controller and controlled by said pipeline controller, instructions in said instruction queue being directed to said data inputs of said multiplexer, said pipeline controller accessing said instructions by said controlling of said multiplexer.
Claim 7
Dependent Claim 126 words
The instruction prefetch queue of claim 3, wherein said microinstructions comprise microinstructions of a first type having a type field portion indicating that the instruction is one of a single microcode instruction which executes a machine instruction and microcode instructions of a second type having a type field portion indicating a routine of multiple microcode instructions which must be executed by said computer system to perform a single machine instruction, and wherein said second means when returning to the processor a starting microinstruction of said second type, is operable to cancel any further starting microinstruction fetches in progress, so that said fetches do not compete and instructions and program counter corresponding to said fetches of said microinstructions are not removed from the heads of the queues.
Claim 8
Dependent Claim 33 words
The instruction prefetch queue of claim 5, wherein upon completion of the execution of said routine, said second means is further operable to restart the fetch of any such canceled starting microinstruction fetches.
Claim 9
Dependent Claim 221 words
An instruction prefetch queue for a computer system, comprising: (a) an instruction queue of length n, having a head, for holding macroinstructions to be performed; (b) a program counter queue of length n, and having a head, for holding program counters therein corresponding to the macroinstructions in said instruction queue; (c) a pipeline controller coupled to said instruction queue for selecting an instruction from said queue and generating a starting microinstruction address in response to said instruction; (d) first means responsive to said microinstruction address to provide a microcode instruction; and (e) second means operable to fetch a starting microcode instruction and subsequent to completing said fetch operable to remove an instruction from said instruction queue and to remove a program counter from said program counter queue and operable to return said fetched microcode instruction to a processor for execution; wherein said selected instruction is the instruction closest to the head of the queue which said second means has not yet commenced to fetch, thereby preventing the instruction selected for generating a starting microinstruction address from being at the head of said instruction queue when said second means is fetching at least one starting microinstruction; (f) said pipeline controller including means to access any of the first m instructions in the queue, where m is less than or equal to n.
Claim 10
Dependent Claim 221 words
An instruction prefetch queue for a computer system, comprising: (a) an instruction queue of length n, having a head, for holding macroinstructions to be performed; (b) a program counter queue of length n, and having a head, for holding program counters therein corresponding to the macroinstructions in said instruction queue; (c) a pipeline controller coupled to said instruction queue for selecting an instruction from said queue and generating a starting microinstruction address in response to said instruction; (d) first means responsive to said microinstruction address to provide a microcode instruction; and (e) second means operable to fetch a starting microcode instruction and subsequent to completing said fetch operable to remove an instruction from said instruction queue and to remove a program counter from said program counter queue and operable to return said fetched microcode instruction to a processor for execution; wherein said selected instruction is the instruction closest to the head of the queue which said second means has not yet commenced to fetch, thereby preventing the instruction selected for generating a starting microinstruction address from being at the head of said instruction queue when said second means is fetching at least one starting microinstruction; (f) said pipeline controller including means to access any of the first m instructions in the queue, where m is less than or equal to n.
Claim 11
Independent Claim 272 words
A method of executing certain machine instructions in a digital processor in a single clock cycle, comprising the steps of: (a) providing a central processor for executing machine instructions; (b) providing a main memory coupled to said central processor and having machine instructions to be executed by said central processor stored therein; (c) decoding a machine instruction into its corresponding starting microcode address; (d) providing a microcode memory coupled to said central processor having microcode instructions including a first set of microcode instructions stored therein, a first set of said microcode instructions being addressed by said starting microcode address, said microcode instructions in said first set containing microcode instructions of a first type having a type field portion indicating that the instruction is one of a single microcode instruction corresponding to a machine instruction and containing microcode instructions of a second type having a type field portion indicating that a routine of multiple instructions must be executed to perform a single machine instruction; (e) generating a microcode instruction corresponding to said microcode address; (f) transferring said microcode instructions from said microcode memory to said central processor for execution therein; (g) determining the type field from said microcode instructions; (h) responsive to said microcode instructions of said first type, causing a next instruction to be executed to be the next available machine instruction, thereby enabling said digital processor to execute said machine instruction in a single cycle; and (i) causing said next instruction to be executed to be a jump to a microcode routine which is executed to completion before executing the next instruction responsive to said microcode instructions of said second type.
Claim 12
Independent Claim 272 words
A method of executing certain machine instructions in a digital processor in a single clock cycle, comprising the steps of: (a) providing a central processor for executing machine instructions; (b) providing a main memory coupled to said central processor and having machine instructions to be executed by said central processor stored therein; (c) decoding a machine instruction into its corresponding starting microcode address; (d) providing a microcode memory coupled to said central processor having microcode instructions including a first set of microcode instructions stored therein, a first set of said microcode instructions being addressed by said starting microcode address, said microcode instructions in said first set containing microcode instructions of a first type having a type field portion indicating that the instruction is one of a single microcode instruction corresponding to a machine instruction and containing microcode instructions of a second type having a type field portion indicating that a routine of multiple instructions must be executed to perform a single machine instruction; (e) generating a microcode instruction corresponding to said microcode address; (f) transferring said microcode instructions from said microcode memory to said central processor for execution therein; (g) determining the type field from said microcode instructions; (h) responsive to said microcode instructions of said first type, causing a next instruction to be executed to be the next available machine instruction, thereby enabling said digital processor to execute said machine instruction in a single cycle; and (i) causing said next instruction to be executed to be a jump to a microcode routine which is executed to completion before executing the next instruction responsive to said microcode instructions of said second type.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-08-09 1997-02-08 1997-08-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-08-09 2001-02-08 2001-08-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-08-09 2005-02-08 2005-08-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag