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

Computer processing unit employing a separate millicode branch history table

Assignee: International Business Machines Corp
•
Filing: 1995-01-06
•
Granted: 1997-05-27
•
Expires: 2015-01-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer processing system includes a first memory that stores instructions belonging to a first instruction set architecture and a second memory that stores instructions belonging to a second instruction set architecture. An instruction buffer is coupled to the first and second memories, for storing instructions that are executed by a processor unit. The system operates in one of two modes. In a first mode, instructions are fetched from the first memory into the instruction buffer according to data stored in a first branch history table. In the second mode, instructions are fetched from the second memory into the instruction buffer according to data stored in a second branch history table. The first instruction set architecture may be system level instructions and the second instruction set architecture may be millicode instructions that, for example, define a complex system level instruction and/or emulate a third instruction set architecture.

Inventors

  • 👤 Philip G. Emma
  • 👤 Joshua W. Knight, III
  • 👤 Thomas R. Puzak
  • 👤 James R. Robinson
  • 👤 A. James Van Norstrand, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 11:08
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3804; G06F9/3806; G06F9/3017

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 264 words
In a computer processing system having memory mapped into at least a first and second region, said first region storing instructions belonging to a first instruction set architecture of said computer processing system and said second region storing instructions belonging to a second instruction set architecture of said computer processing system, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction, a method of fetching instructions from said first and second regions of memory into an instruction buffer for execution by a processor unit, the method comprising the steps of: in a first mode, fetching instructions belonging to said first instruction set architecture from said first region of memory into said instruction buffer according to data stored in a first branch history table associated with instructions belonging to said first instruction set architecture; and in a second mode, fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer according to data stored in a second branch history table associated with instructions belonging to said second instruction set architecture; wherein said second branch history table is separate from said first branch history table.
Claim 2
Dependent Claim 264 words
In a computer processing system having memory mapped into at least a first and second region, said first region storing instructions belonging to a first instruction set architecture of said computer processing system and said second region storing instructions belonging to a second instruction set architecture of said computer processing system, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction, a method of fetching instructions from said first and second regions of memory into an instruction buffer for execution by a processor unit, the method comprising the steps of: in a first mode, fetching instructions belonging to said first instruction set architecture from said first region of memory into said instruction buffer according to data stored in a first branch history table associated with instructions belonging to said first instruction set architecture; and in a second mode, fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer according to data stored in a second branch history table associated with instructions belonging to said second instruction set architecture; wherein said second branch history table is separate from said first branch history table.
Claim 3
Dependent Claim 54 words
The method of claim 1, wherein in said second mode, the step of fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer is controlled according to static condition data generated in said first mode and said data stored in said second branch history table.
Claim 4
Dependent Claim 59 words
The method of claim 1, further comprising the steps of: initializing said computer processing system to operate in said first mode; and switching operation of said computer processing system to said second mode upon said processor unit detecting that an instruction being executed is defined by one or more of said instructions stored in said second region of memory.
Claim 5
Dependent Claim 40 words
The method of claim 3, further comprising the step of: switching operation of said computer processing system back to said first mode upon detecting that an instruction being executed is a predetermined instruction belonging to said second instruction set architecture.
Claim 6
Dependent Claim 52 words
The method of claim 1, wherein addresses of instructions belonging to said second set architecture instruction stored in said second memory are predetermined, and wherein at least one branch type instruction belonging to said second instruction set architecture is removed from said second memory and folded into said second branch history table.
Claim 7
Dependent Claim 31 words
The method of claim 5, wherein all branch type instructions belonging to said second set architecture instruction are removed from said second memory and folded into said second branch history table.
Claim 8
Dependent Claim 59 words
The method of claim 5, wherein said branch type instructions belonging to said second set architecture instruction are classified as one of a first category of branch type instructions and a second category of branch type instructions, wherein said first category of branch type instructions are removed from said second memory and folded into said second branch history table.
Claim 9
Dependent Claim 35 words
The method of claim 7, wherein said first category of branch type instructions belonging to said second instruction set architecture are branch type instructions that depend upon static condition data generated in said first mode.
Claim 10
Dependent Claim 14 words
The method of claim 8, wherein said second instruction set architecture comprise millicode instructions.
Claim 11
Dependent Claim 110 words
The method of claim 5, wherein said second branch history table comprises at least one entry corresponding to said at least one branch type instruction belonging to said second instruction set architecture that is removed from said second memory and folded into said second branch history table, said entry including an address tag, a target address and a condition field, wherein when said second branch history table is accessed with an instruction address matching said address tag, said second branch history table outputs signals to control fetching of one or more instructions located at said target address within said second memory if conditions defined by said condition field are satisfied.
Claim 12
Dependent Claim 24 words
The method of claim 1, wherein said first instruction set architecture comprise system level instructions and said second instruction set architecture comprise millicode instructions.
Claim 13
Dependent Claim 19 words
The method of claim 11, wherein one or more of said millicode instructions define a complex system level instruction.
Claim 14
Dependent Claim 15 words
The method of claim 11, wherein said millicode instructions emulate a third instruction set architecture.
Claim 15
Dependent Claim 37 words
The method of claim 1, wherein said second branch history table associated with said second instruction set architecture comprises an array of entries each corresponding to a branch type instruction stored in said second region of memory.
Claim 16
Dependent Claim 14 words
The method of claim 14, wherein said entries are initialized at initial program load.
Claim 17
Dependent Claim 63 words
The method of claim 14, further comprising the step of: generating static condition data in said first mode, wherein in said second mode, the step of fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer is controlled according to said static condition data and said data stored in a second branch history table.
Claim 18
Dependent Claim 250 words
A computer processing system comprising: a memory mapped into at least a first and second region, said first region storing instructions belonging to a first instruction set architecture, and said second region storing instructions belonging to a second instruction set architecture of said computer unit, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction; an instruction buffer, coupled to said memory, for storing instructions that are executed by a processor unit; means for fetching instructions belonging to said first instruction set architecture from said first region of memory into said instruction buffer according to data stored in a first branch history table associated with instructions belonging to said first instruction set architecture in a first mode; and means for fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer according to data stored in a second branch history table associated with instructions belonging to said second instruction set architecture in a second mode; wherein said second branch history table is separate from said first branch history table.
Claim 19
Dependent Claim 250 words
A computer processing system comprising: a memory mapped into at least a first and second region, said first region storing instructions belonging to a first instruction set architecture, and said second region storing instructions belonging to a second instruction set architecture of said computer unit, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction; an instruction buffer, coupled to said memory, for storing instructions that are executed by a processor unit; means for fetching instructions belonging to said first instruction set architecture from said first region of memory into said instruction buffer according to data stored in a first branch history table associated with instructions belonging to said first instruction set architecture in a first mode; and means for fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer according to data stored in a second branch history table associated with instructions belonging to said second instruction set architecture in a second mode; wherein said second branch history table is separate from said first branch history table.
Claim 20
Dependent Claim 52 words
The computer processing system of claim 17, wherein said means for fetching instructions belonging to said second instruction set architecture from said second region of memory into said instruction buffer is controlled according to static condition data generated in said first mode and said data stored in said second branch history table.
Claim 21
Dependent Claim 54 words
The computer processing system of claim 17, wherein said computer system is initialized to operate in said first mode, further comprising logic that switches operation to said second mode upon detecting that an instruction being executed by said processor unit is defined by one or more of said instructions stored in said second memory.
Claim 22
Dependent Claim 45 words
The computer processing system of claim 19, further comprising logic that switches operation of said computer processing system back to said first mode upon detecting that an instruction being executed by said processor unit is a predetermined instruction belonging to said second set of instructions.
Claim 23
Dependent Claim 54 words
The computer processing system of claim 17, wherein addresses of instructions belonging to said second instruction set architecture stored in said second memory are predetermined, and wherein at least one branch type instruction belonging to said second instruction set architecture is removed from said second memory and folded into said second branch history table.
Claim 24
Dependent Claim 33 words
The computer processing system of claim 21, wherein all branch type instructions belonging to said second instructure set architecture are removed from said second memory and folded into said second branch history table.
Claim 25
Dependent Claim 61 words
The computer processing system of claim 21, wherein said branch type instructions belonging to said second instructure set architecture are classified as one of a first category of branch type instructions and a second category of branch type instructions, wherein said first category of branch type instructions are removed from said second memory and folded into said second branch history table.
Claim 26
Dependent Claim 37 words
The computer processing system of claim 23, wherein said first category of branch type instructions belonging to said second instructure set architecture are branch type instructions that depend upon static condition data generated in said first mode.
Claim 27
Dependent Claim 16 words
The computer processing system of claim 24, wherein said second instruction set architecture comprise millicode instructions.
Claim 28
Dependent Claim 112 words
The computer processing system of claim 21, wherein said second branch history table comprises at least one entry corresponding to said at least one branch type instruction belonging to said second instructure set architecture that is removed from said second memory and folded into said second branch history table, said entry including an address tag, a target address and a condition field, wherein when said second branch history table is accessed with an instruction address matching said address tag, said second branch history table outputs signals to control fetching of one or more instructions located at said target address within said second memory if conditions defined by said condition field are satisfied.
Claim 29
Dependent Claim 25 words
The computer processing system of claim 17, wherein said first instruction set comprise system level instructions and said second instructure set architecture comprise millicode instructions.
Claim 30
Dependent Claim 21 words
The computer processing system of claim 27, wherein one or more of said millicode instructions define a complex system level instruction.
Claim 31
Dependent Claim 17 words
The computer processing system of claim 27, wherein said millicode instructions emulate a third instruction set architecture.
Claim 32
Dependent Claim 39 words
The computer processing system of claim 17, wherein said second branch history table associated with said second instruction set architecture comprises an array of entries each corresponding to a branch type instruction stored in said second region of memory.
Claim 33
Dependent Claim 16 words
The computer processing system of claim 30, wherein said entries are initialized at initial program load.
Claim 34
Dependent Claim 72 words
The computer processing system of claim 30, further comprising: an instruction decoder, coupled to said instruction buffer, that generates static condition data in said first mode, wherein said second branch history table associated with said second set of instructions further comprises logic that outputs signals to control fetching of instructions located at one of a target address and a next sequential address within said second memory according to said static condition data.
Claim 35
Dependent Claim 331 words
A computer processing unit comprising: a memory mapped into at least a first and second regions, said first region storing instructions belonging to a first instruction set architecture of said computer processing unit, and said second region storing instructions belonging to a second instruction set architecture of said computer processing system, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction; an instruction buffer, coupled to said memory, for storing instructions that are executed by a processor unit; an instruction address register for storing an address of at least one instruction fetched from said memory into said instruction buffer; a first branch history table that, in a first mode, controls a multiplexer to load one of a target address and a next sequential address of an instruction belonging to said first instruction set architecture into said instruction address register in a second fetching cycle according to said address stored in said instruction address register in a first fetching cycle, wherein said second fetching cycle is subsequent to said first fetching cycle; and a second branch history table that, in a second mode, controls said multiplexer to load one of a target address and a next sequential address of an instruction belonging to said second instruction set architecture into said instruction address register in a fourth fetching cycle according to said address stored in said instruction address register in a third fetching cycle, wherein said fourth fetching cycle is subsequent to said third fetching cycle; wherein said second branch history table is separated from said first branch history table.
Claim 36
Dependent Claim 331 words
A computer processing unit comprising: a memory mapped into at least a first and second regions, said first region storing instructions belonging to a first instruction set architecture of said computer processing unit, and said second region storing instructions belonging to a second instruction set architecture of said computer processing system, wherein said first instruction set architecture includes at least one instruction that does not belong to said second instruction set architecture, wherein said at least one instruction belonging to said first instruction set architecture is implemented by a plurality of instructions belonging to said second instruction set architecture, and wherein said instructions belonging to said first instruction set architecture comprise at least one branch type instruction and said instructions belonging to said second instruction set architecture comprise at least one branch type instruction; an instruction buffer, coupled to said memory, for storing instructions that are executed by a processor unit; an instruction address register for storing an address of at least one instruction fetched from said memory into said instruction buffer; a first branch history table that, in a first mode, controls a multiplexer to load one of a target address and a next sequential address of an instruction belonging to said first instruction set architecture into said instruction address register in a second fetching cycle according to said address stored in said instruction address register in a first fetching cycle, wherein said second fetching cycle is subsequent to said first fetching cycle; and a second branch history table that, in a second mode, controls said multiplexer to load one of a target address and a next sequential address of an instruction belonging to said second instruction set architecture into said instruction address register in a fourth fetching cycle according to said address stored in said instruction address register in a third fetching cycle, wherein said fourth fetching cycle is subsequent to said third fetching cycle; wherein said second branch history table is separated from said first branch history table.
Claim 37
Dependent Claim 59 words
The computer processing unit of claim 33, further comprising: an instruction decoder, coupled to said instruction buffer, that generates static condition data in said first mode, wherein said second branch history table comprises logic that evaluates said static condition data to determine whether to control said multiplexer to load one of said target address and said next sequential address.
Claim 38
Dependent Claim 26 words
The computer processing unit of claim 33, wherein said first instruction set architecture comprise system level instructions and said second instruction set architecture comprise millicode instructions.
Claim 39
Dependent Claim 41 words
The computer processing unit of claim 35, wherein addresses of said millicode instructions stored in said second memory are predetermined, and wherein at least one branch type millicode instruction is removed from said second memory and folded into said second table.
Claim 40
Dependent Claim 25 words
The computer processing unit of claim 36, wherein all branch type millicode instructions are removed from said second memory and folded into said second table.
Claim 41
Dependent Claim 56 words
The computer processing unit of claim 36, wherein said branch type millicode instructions are classified as one of a first category of branch type millicode instructions and a second category of branch type millicode instructions, wherein said first category of branch type millicode instructions are removed from said second memory and folded into said second table.
Claim 42
Dependent Claim 31 words
The computer processing unit of claim 36, wherein said first category of branch type millicode instructions are branch type instructions that depend upon static condition data generated in said first mode.
Claim 43
Dependent Claim 97 words
The computer processing unit of claim 36, wherein said second table comprises at least one entry corresponding to at least one branch type millicode instruction that is removed from said second memory and folded into said second table, said entry including an address tag, a target address and a condition field, wherein when said second table is accessed with an instruction address matching said address tag, said second table outputs signals to control fetching of one or more instructions located at said target address within said second memory if conditions defined by said condition field are satisfied.

References Cited (Backward Citations)

US3702007A Cited
US4338661A Cited
US4477872A Cited
US4691277A Cited
US4679141A Cited
US4763245A Cited
US4901233A Cited
US5185869A Cited
US5226164A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-05-26 2000-11-25 2001-05-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-05-26 2004-11-25 2005-05-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-05-26 2008-11-25 2009-05-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag