IP Library Granted Patent US 7,343,595
Granted Patent B2
US 7,343,595 · App. 10/782,674 · Granted Mar 11, 2008

Method, apparatus and computer program for executing a program by incorporating threads

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,343,595
App. No.
10/782,674
Granted
Mar 11, 2008
Kind
B2
Abstract

There is provided a method for executing a program comprising a function call and one or more subsequent instructions. The method comprises processing, on a first thread, a function defined by the function call, the function having one or more programmer predefined typical return values. For each predefined return value, the one or more subsequent instructions are pre-processed on an additional thread assuming that the function returned that pre-defined return value. In this way the processor, on completion of processing said function is able to make use of the pre-processing completed by the additional thread which used the actual return value.

Claims (8)

1. A computer-implemented method for executing a program comprising a function call and one or more subsequent instructions, the method comprising steps of:

processing, on a first thread, a function defined by the function call, the function having at least two programmer predefined typical return values;

for each predefined return value, pre-processing on an additional thread, the one or more subsequent instructions which are associated with a given predefined return value, wherein said pre-processing is performed concurrent with the processing of the first thread; and

responsive to completion of the processing of said function on said first thread, wherein said function returns an actual return value upon said completion, continuing processing of the additional thread associated with the actual return value while terminating at least one other additional thread that is not associated with the actual return value, such that the one or more subsequent instructions associated with the actual return value are speculatively executed prior to (i) the completion of the processing of said function and (ii) the return of the actual return value by said function.

2. The method of claim 1 , wherein the program comprises a plurality of subsequent instructions defining one or more additional functions, the method further comprising:

pre-processing on each additional thread the plurality of subsequent instructions until a function is reached which is of external effect; and

blocking on said function having external effect until the actual return value is determined by the first thread.

3. The method of claim 2 , wherein the blocking step also blocks on reaching a function which is affected by an external event.

Assignments (3)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 027991/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2004
From: ILEY, ADAM D; SCOTT, JOHN J R
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014761/0388 →