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

Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution

Assignee: International Business Machines Corp
•
Filing: 1996-12-16
•
Granted: 1999-10-05
•
Expires: 2016-12-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A processor and method of executing a program within a processor are provided. According to the method, a plurality of program instructions comprising a program and a set of auxiliary instructions are stored. An instruction stream including selected ones of the plurality of program instructions is supplied to the processor. In response to the processor processing a program instruction within the instruction stream that has an associated auxiliary instruction within the set of auxiliary instructions, the associated auxiliary instruction is automatically inserted within the instruction stream and the associated auxiliary instruction is executed within the processor.

Inventors

  • 👤 Soummya Mallick
  • 👤 Robert G. McDonald
  • 👤 Edward L. Swarthout

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 13:58
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/4881; G06F9/30; G06F9/30003; G06F9/30076; G06F9/30087; G06F9/3009; G06F9/30181; G06F9/30185; G06F9/38; G06F9/3818; G06F9/3822; G06F9/3824; G06F9/3826; G06F9/3828; G06F9/3834; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3842; G06F9/3851; G06F9/3854; G06F9/3858

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 142 words
A method of executing a program within a processor, said method comprising: supplying, to said processor, a program including a plurality of threads and a plurality of thread descriptors that are each associated with a respective one of said plurality of threads, wherein each thread includes a plurality of program instructions; identifying, in one or more of said plurality of thread descriptors, a respective set of auxiliary instructions to be executed as part of the associated thread; in response to said processor processing a thread within said program for which the associated thread descriptor identifies a set of auxiliary instructions: automatically inserting at least one auxiliary instruction from said set of auxiliary instructions into the processor's instruction stream at a position in the instruction stream indicated by the associated thread descriptor; and executing said at least one auxiliary instruction within said processor.
Claim 2
Independent Claim 142 words
A method of executing a program within a processor, said method comprising: supplying, to said processor, a program including a plurality of threads and a plurality of thread descriptors that are each associated with a respective one of said plurality of threads, wherein each thread includes a plurality of program instructions; identifying, in one or more of said plurality of thread descriptors, a respective set of auxiliary instructions to be executed as part of the associated thread; in response to said processor processing a thread within said program for which the associated thread descriptor identifies a set of auxiliary instructions: automatically inserting at least one auxiliary instruction from said set of auxiliary instructions into the processor's instruction stream at a position in the instruction stream indicated by the associated thread descriptor; and executing said at least one auxiliary instruction within said processor.
Claim 3
Dependent Claim 20 words
The method of claim 1, and further comprising storing each set of auxiliary instructions separately from said plurality of threads.
Claim 4
Dependent Claim 30 words
The method of claim 1, wherein said inserting step comprises determining if a program instruction within said instruction stream has an associated auxiliary instruction within said set of auxiliary instructions.
Claim 5
Dependent Claim 65 words
The method of claim 3, each of said program instructions having an associated instruction address, wherein: each auxiliary instruction has at least a portion of an instruction address associated therewith; and said determining step comprises the step of determining if said at least a portion of an instruction address of an auxillary instruction within said set corresponds to said instruction address of said program instruction.
Claim 6
Dependent Claim 18 words
The method of claim 3, wherein said determining step is performed previous to execution of said program instruction.
Claim 7
Dependent Claim 26 words
The method of claim 1, said processor having a local memory, wherein said method further comprises loading said set of auxiliary instructions into said local memory.
Claim 8
Dependent Claim 41 words
The method of claim 1, said processor comprising a multiscalar processor including a plurality of processing elements wherein said method further comprises speculatively assigning threads among said plurality of threads to selected ones of said plurality of processing elements for execution.
Claim 9
Dependent Claim 25 words
The method of claim 7, wherein said step of supplying a program comprises the step of supplying threads that are executable by a scalar processor.
Claim 10
Dependent Claim 26 words
The method of claim 7, said method further comprising: in response to execution of said auxiliary instruction, synchronizing execution of two of said plurality of threads.
Claim 11
Dependent Claim 21 words
The method of claim 3, wherein at least one of said plurality of program instructions is associated with multiple auxiliary instructions.
Claim 12
Dependent Claim 182 words
A processor, comprising: a first portion of memory, wherein said first portion of memory stores a program comprising a plurality of threads and a plurality of thread descriptors that are each associated with a respective one of said plurality of threads, wherein each thread includes a plurality of program instructions; a second portion of memory, wherein said second portion of memory stores at least one set of auxiliary instructions, wherein each of said at least one set of auxiliary instructions is identified in the thread descriptor of one of said plurality of threads; an execution core; means for supplying one or more threads to said execution core for processing; and means, responsive to said execution core processing a thread within said program for which the associated thread descriptor identifies a set of auxiliary instructions, for automatically inserting at least one auxiliary instruction from said set of auxiliary instructions into the execution core's instruction stream at a position in the instruction stream indicated by the associated thread descriptor such that said at least one auxiliary instruction is subsequently executed within said execution core.
Claim 13
Dependent Claim 182 words
A processor, comprising: a first portion of memory, wherein said first portion of memory stores a program comprising a plurality of threads and a plurality of thread descriptors that are each associated with a respective one of said plurality of threads, wherein each thread includes a plurality of program instructions; a second portion of memory, wherein said second portion of memory stores at least one set of auxiliary instructions, wherein each of said at least one set of auxiliary instructions is identified in the thread descriptor of one of said plurality of threads; an execution core; means for supplying one or more threads to said execution core for processing; and means, responsive to said execution core processing a thread within said program for which the associated thread descriptor identifies a set of auxiliary instructions, for automatically inserting at least one auxiliary instruction from said set of auxiliary instructions into the execution core's instruction stream at a position in the instruction stream indicated by the associated thread descriptor such that said at least one auxiliary instruction is subsequently executed within said execution core.
Claim 14
Dependent Claim 38 words
The processor of claim 11, wherein said means for inserting comprises a content-addressable memory (CAM) that stores each auxiliary instruction within said set together with at least a portion of an instruction address of an associated program instruction.
Claim 15
Dependent Claim 38 words
The processor of claim 11, said processor further comprising means for loading said set of auxiliary instructions from said second portion of memory into said CAM in response to and associated thread being assigned to said execution core.
Claim 16
Dependent Claim 51 words
The processor of claim 11, said processor further comprising: a plurality of processing elements, wherein said execution core forms a portion of one of said processing elements; and a thread scheduler that speculatively assigns threads among said plurality of threads to selected ones of said plurality of processing elements for execution.
Claim 17
Dependent Claim 16 words
The processor of claim 14, wherein said plurality of threads are executable by a scalar processor.
Claim 18
Dependent Claim 22 words
The processor of claim 14, wherein at least one of said auxiliary instructions synchronizes execution of two of said plurality of threads.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag