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

Computer system having organization for multiple condition code setting and for testing instruction out-of-order

Assignee: International Business Machines Corp
•
Filing: 1997-04-30
•
Granted: 1999-11-09
•
Expires: 2017-04-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Computer system with multiple, out-of-order, instruction issuing system suitable for superscalar processors with a RISC organization, also has a Fast Dispatch Stack (FDS), a dynamic instruction scheduling system that may issue multiple, out-of-order, instructions each cycle to functional units as dependencies allow. The basic issuing mechanism supports a short cycle time and its capabilities are augmented. Condition code dependent instructions issue in multiples and out-of-order. A fast register renaming scheme is presented. An instruction squashing technique enables fast precise interrupts and branch prediction. Instructions preceding and following one or more predicted conditional branch instructions may issue out-of-order and concurrently. The effects of executed instructions following an incorrectly predicted branch instruction or an instruction that causes a precise interrupt are undone in one machine cycle.

Inventors

  • 👤 Harry Dwyer, III

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 04:23
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/30003; G06F9/30072; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856; G06F9/3858; G06F9/3861; G06F9/3863; F; F02; F02B; F02B75/00; F02B75/02; F02B2075/022; F02B2075/027; G06F11/00; G06F11/30; G06F11/34; G06F11/3457; G06F11/3461

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 259 words
A computer system comprising: multiple functional units for executing instructions; issuing means for issuing instructions for processing by said functional units and including an instruction issue unit; a buffer; one or more register files; a cache store coupled between main memory and said functional units; an interconnection network coupling said functional units, said register files, and said instruction issue unit; means for concurrently executing multiple out-of-order instructions; means for attaching an I-Group comprising an instruction and a tag, a read-vector, a write vector, and a type vector as control bits for instructional use by the system for permitting the hardware of the system to schedule concurrently and on a short cycle time basis multiple, possibly out-of-order, instruction issuances to multiple functional units for execution and to transfer I-Groups to the buffer or for scheduling by said issue unit; an instruction scheduling mechanism and in which the issue unit includes assigning means for concurrently assigning and issuing independent, multiple, out-of-order instructions contained in the instruction scheduling mechanism provided by said issue unit to the multiple functional units for execution; and ports connecting the issue unit to the multiple functional units, wherein said assigning means includes prioritization means for prioritizing eligible instructions by the assignment to each port of a port-type through which an instruction of a matching instruction type, as specified in its I-Group, may be issued to a functional unit that is able to execute it so that independent instructions eligible for transfer may outnumber available functional units for paths via a port through which instructions may be transferred.
Claim 2
Dependent Claim 259 words
A computer system comprising: multiple functional units for executing instructions; issuing means for issuing instructions for processing by said functional units and including an instruction issue unit; a buffer; one or more register files; a cache store coupled between main memory and said functional units; an interconnection network coupling said functional units, said register files, and said instruction issue unit; means for concurrently executing multiple out-of-order instructions; means for attaching an I-Group comprising an instruction and a tag, a read-vector, a write vector, and a type vector as control bits for instructional use by the system for permitting the hardware of the system to schedule concurrently and on a short cycle time basis multiple, possibly out-of-order, instruction issuances to multiple functional units for execution and to transfer I-Groups to the buffer or for scheduling by said issue unit; an instruction scheduling mechanism and in which the issue unit includes assigning means for concurrently assigning and issuing independent, multiple, out-of-order instructions contained in the instruction scheduling mechanism provided by said issue unit to the multiple functional units for execution; and ports connecting the issue unit to the multiple functional units, wherein said assigning means includes prioritization means for prioritizing eligible instructions by the assignment to each port of a port-type through which an instruction of a matching instruction type, as specified in its I-Group, may be issued to a functional unit that is able to execute it so that independent instructions eligible for transfer may outnumber available functional units for paths via a port through which instructions may be transferred.
Claim 3
Dependent Claim 77 words
A computer system according to claim 1 further comprising: a memory; and means for ordering the execution process including: a. means for fetching multiple instructions from the memory at once and generating an I-Group for each instruction; b. means for concurrently decoding multiple fields of information in an instruction as part of the I-Group generation; and c. means for transferring the resulting I-Groups to said issue unit, but if the issue unit is full, to the buffer.
Claim 4
Dependent Claim 23 words
A computer system according to claim 1 wherein the assigning means include permanent assignment means for making the assignment of a port-type permanent.
Claim 5
Dependent Claim 25 words
A computer system according to claim 3 wherein said permanent assignment means include a type vector applicable to a particular kind of multiple functional units.
Claim 6
Dependent Claim 24 words
A computer system according to claim 1 wherein the assigning means include dynamic port assignment means for making the assignment of a port-type dynamic.
Claim 7
Dependent Claim 64 words
A computer system according to claim 5 further comprising means to determine the availability of functional units and wherein dynamic port assignment means include means to provide a match for each machine cycle which is dependent upon an availability determination and which include means for assigning a port type and for then selecting an instruction which can be assigned to an available functional unit.
Claim 8
Dependent Claim 51 words
A computer system according to claim 1 wherein assigning means include matching means for transferring independent instructions to OPEN ports of matching types for prioritizing eligible instructions in order that independent instructions eligible for transfer may outnumber available functional units or paths via a port through which instructions may be transferred.
Claim 9
Dependent Claim 31 words
A computer system according to claim 7 wherein matching means include means for connecting an OPEN port to an available functional unit of the correct type for executing the eligible instruction.
Claim 10
Dependent Claim 43 words
A computer system according to claim 1 wherein said functional units include a plurality of functional units of the same type to provide multiple copy execution units of the same type for concurrently executing instructions requiring execution of the same type of function.
Claim 11
Dependent Claim 156 words
A computer system comprising: multiple functional units for executing instructions; issuing means including an issue unit for issuing instructions for processing by said functional units; one or more register files; a main memory store; a cache store coupled between main memory and said functional units; an interconnection network coupling said functional units, said 11 register files, and said instruction issue unit; means for currently executing multiple out-of-order instructions; and instruction scheduling means for concurrently assigning and transferring independent, multiple, out-of-order instructions to multiple functional units for execution and wherein the number of independent instructions eligible for transfer may outnumber available functional units or paths through which instructions may be transferred, and including, assigning means for prioritizing eligible instructions in hardware by the assignment to each port of a port-type through which an instruction of a matching instruction type, as specified in its I-Group, may be issued to a functional unit that is able to execute it.
Claim 12
Dependent Claim 156 words
A computer system comprising: multiple functional units for executing instructions; issuing means including an issue unit for issuing instructions for processing by said functional units; one or more register files; a main memory store; a cache store coupled between main memory and said functional units; an interconnection network coupling said functional units, said 11 register files, and said instruction issue unit; means for currently executing multiple out-of-order instructions; and instruction scheduling means for concurrently assigning and transferring independent, multiple, out-of-order instructions to multiple functional units for execution and wherein the number of independent instructions eligible for transfer may outnumber available functional units or paths through which instructions may be transferred, and including, assigning means for prioritizing eligible instructions in hardware by the assignment to each port of a port-type through which an instruction of a matching instruction type, as specified in its I-Group, may be issued to a functional unit that is able to execute it.
Claim 13
Dependent Claim 20 words
A computer system according to claim 10 wherein means for prioritizing eligible instructions include means for permanently assigning a port-type.
Claim 14
Dependent Claim 25 words
A computer system according to claim 11 wherein said permanent assignment means include a type vector applicable to a particular kind of multiple functional units.
Claim 15
Dependent Claim 24 words
A computer system according to claim 10 wherein the assignment means include dynamic port assignment means for making the assignment of a port-type dynamic.
Claim 16
Dependent Claim 72 words
A computer system according to claim 13 further including means to check the availability of functional units for each machine cycle and wherein dynamic port assignment means include means to provide a match for each machine cycle which is dependent upon an availability check of available function units which are not busy, to assign a port type and then to select an instruction which can be assigned to an available functional unit.
Claim 17
Dependent Claim 27 words
A computer system according to claim 10 wherein assigning means include matching means to transfer independent instructions to OPEN ports of matching types for prioritizing eligible instructions.
Claim 18
Dependent Claim 31 words
A computer system according to claim 15 wherein matching means include means for connecting an OPEN port to an available functional unit of the correct type for executing the eligible instruction.
Claim 19
Dependent Claim 42 words
A computer system according to claim 10 wherein said functional units include a plurality of functional units of the same type to provide multiple copy execution units of the same type for concurrently executing instructions requiring executing the same type of function.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-11-08 2003-05-10 2003-11-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-11-08 2007-05-10 2007-11-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-11-08 2011-05-10 2011-11-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag