← Back to Patent Explorer
EP0565849A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

A method and system for synchronizing threads within a process

Assignee: International Business Machines Corp
•
Filing: 1993-03-05
•
Granted: —
•
Expires: 2013-03-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system is described for synchronizing execution by a processing element of threads within a process. Before execution of a thread commences, a determination is made as to whether all of the required resources for execution of the thread are available in a cache local to the processing element. If the resources are not available, then the resources are fetched from main storage and stored in one or more local caches before execution begins. If the resources are available, then execution of the thread may begin. During execution of the thread and, in particular, an instruction within the thread, the instruction may require data in order to successfully complete its execution. When this occurs, a determination is made as to whether the necessary data is available. If the data is available, the result of the instruction execution is stored and execution of the thread continues. However, if the data is unavailable, then the thread is deferred until the data becomes available and a new thread is processed. When deferring a thread, the thread is placed in the memory location which is to receive the required data. Once the data is available, the thread is removed from the data location and placed on a queue for execution and the data is stored in the location.

Inventors

  • 👤 Steven Lee Gregor
  • 👤 Robert Alan Iannucci

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-24 10:59
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/52; G06F2209/00; G06F2209/50; G06F2209/503

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 94 words
A method for synchronizing execution by a processing element of threads within a process, said method comprising the steps of: executing a thread within a process; fetching during said thread execution from a local frame cache a datum field; fetching from a state bit cache a state indicator, said state indicator being associated with said datum field and having a first state value; determining based on said first state value whether said datum field includes a datum available for use by said thread; and deferring execution of said thread when said datum is unavailable.
Claim 2
Dependent Claim 29 words
The method of claim 1, further including the step of determining a second state for said state indicator, said second state replacing said first state during said thread execution.
Claim 3
Dependent Claim 69 words
The method of claim 2, wherein said second state determining step includes the steps of: selecting from said thread a state function to be used in determining said second state; using said state function to select from one of a plurality of tables N possible second states for said indicator; and using said first state to choose from said selected N possible states said second state for said indicator.
Claim 4
Dependent Claim 27 words
The method of claim 3, wherein said first state represents a current state of said datum and said second state represents a next state of said datum.
Claim 5
Independent Claim 34 words
The method of one of claims 1 to 4, wherein said thread is represented by a continuation descriptor and said deferring step includes the step of storing said continuation descriptor within said datum field.
Claim 6
Dependent Claim 31 words
The method of claim 5, wherein said continuation descriptor is compressed before being stored in said datum field and said datum field can receive a plurality of said compressed continuation descriptors.
Claim 7
Dependent Claim 21 words
The method of claim 6, further including the step of awakening said deferred thread when datum is available for said thread.
Claim 8
Dependent Claim 22 words
The method of claim 7, wherein said awakening step includes the step of removing said compressed continuation descriptors from said datum field.
Claim 9
Dependent Claim 20 words
The method of claim 8, wherein said removed continuation descriptors are stored on a queue local to said processing element.
Claim 10
Dependent Claim 31 words
The method of claim 8 or 9, wherein said awakening step further includes the step of storing said available datum in said datum field when said compressed continuation descriptors are removed.
Claim 11
Independent Claim 118 words
A system for synchronizing execution by a processing element of threads within a process, said system comprising: a local frame cache, said local frame cache including a datum field; a state bit cache, said state bit cache including a state indicator corresponding to said datum field; means for executing by said processing element a thread within a process; means for fetching from said local frame cache said datum field and from said state bit cache said state indicator having a first state value; means for determining based on said first state value whether said datum field includes a datum available for use by said thread; and means for deferring execution of said thread when said datum is unavailable.
Claim 12
Dependent Claim 28 words
The system of claim 11, further comprising means for determining a second state for said state indicator, said second state replacing said first state during said thread execution.
Claim 13
Dependent Claim 83 words
The system of claim 12, wherein said second state determining means comprises: means for selecting from said thread a state function to be used in determining said second state; a plurality of tables each having N possible second states for said indicator; means for using said state function to select from one of said plurality of tables said N possible second states; and means for using said first state to choose from said selected N possible states said second state for said indicator.
Claim 14
Dependent Claim 61 words
The system of claim 13, further comprising a main storage, said main storage comprising a copy of said datum field and a copy of said state indicator, said copy of said datum field being copied from main storage to said local frame cache and said copy of said state indicator being copied from said main storage to said state bit cache.
Claim 15
Independent Claim 195 words
A method for synchronizing execution by a processing element of threads within a process, each of said threads including a plurality of instructions, said method comprising the steps of: executing an instruction of said thread; fetching during said instruction execution from a local frame cache at least one source operand and from a state bit cache at least one state indicator having a first state value, said at least one state indicator corresponding to said at least one source operand; fetching from said instruction at least one state function associated with said at least one fetched source operand; using said at least one state function to select from one of a plurality of tables N possible second states for said at least one state indicator, each of said second states having a corresponding flag indicator; using said first state to choose from said selected N possible states a second state for said state indicator; replacing said first state with said second state during said thread execution; and having said thread perform one of a plurality of actions after said instruction execution, said action being specified by said flag indicator associated with said chosen second state.
Claim 16
Dependent Claim 29 words
The method of claim 15, wherein said plurality of actions includes the following actions: continuing execution of said thread, deferring execution of said thread and awakening a deferred thread.
Claim 17
Dependent Claim 31 words
The method of claim 16, wherein said thread is represented by a continuation descriptor and said deferring execution action includes the step of storing said continuation descriptor within a source operand.
Claim 18
Dependent Claim 26 words
The method of claim 17, wherein said continuation descriptor is compressed before being stored and said source operand can receive a plurality of compressed continuation descriptors.
Claim 19
Dependent Claim 22 words
The method of claim 18, wherein said awakening action includes the step of removing a compressed continuation descriptor from a source operand.
Claim 20
Dependent Claim 25 words
The method of claim 19, wherein said awakening action further includes the step of storing a source operand when said compressed continuation descriptor is removed.
Claim 21
Dependent Claim 20 words
The method of claim 20, wherein said removed continuation descriptor is stored on a queue local to said processing element.
Claim 22
Independent Claim 241 words
A system for synchronizing execution by a processing element of threads within a process, each of said threads including a plurality of instructions, said system comprising: means for executing an instruction of said thread; a local frame cache, said local frame cache including a plurality of source operands; a state bit cache, said state bit cache including a plurality of state indicators, each of said state indicators having a first state value, and wherein one of said state indicators corresponds to one of said source operands; means for fetching during said instruction execution from said local frame cache at least one source operand and from said state bit cache at least one corresponding state indicator; means for fetching from said instruction at least one state function associated with said at least one source operand; a plurality of tables each having N possible second states for each of said state indicators; means for using said at least one state function to select from one of said plurality of tables said N possible second states, each of said second states having an associated flag indicator; means for using said first state to choose from said selected N possible states a second state for said state indicator; means for replacing said first state with said second state; and means for having said thread perform one of a plurality of actions, said action being specified by said flag indicator associated with said chosen second state.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag