IP Library Granted Patent US 7,069,549
Granted Patent B2
US 7,069,549 · App. 09/858,578 · Granted Jun 27, 2006

Multi-threaded fragment patching

Assignee: Esmertec AG
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,069,549
App. No.
09/858,578
Granted
Jun 27, 2006
Kind
B2
Abstract

A method and system multi-threaded fragment patching. The method provides a link in a self-modifying multi-threaded computer system between a first and a second piece of compiled code where the first piece of compiled code includes a control transfer instruction to the second piece of compiled code. The link is formed by inserting a patch from the first piece of compiled code to the second piece of compiled code. The patch may be a direct reference or a reference to an outlier.

Claims (16)

1. A method of providing a link between pieces of compiled code in a self-modifying multi-threaded computer system having system memory and a system compiler for compiling a program during execution of a program, the method comprising the steps of:

(a) first determining whether a first piece of code includes a dominant path therethrough formed of a series of program instructions for execution one after another in sequence during execution of the dominant path;

(b) first determining whether the first piece of code includes a control transfer instruction therein;

(c) first compiling the first piece of code by the system compiler during execution of the program to provide a first piece of compiled code only if the first piece of code is determined to be a dominant path and the control transfer instruction is determined to be present in the first piece of code;

(d) second compiling a second piece of code by the system compiler during execution of the program to provide a second piece of compiled code; and

(e) creating a link between the first and second pieces of compiled code by changing the control transfer instruction within of the first piece of compiled code, whereby the link is disposed in the first piece of compiled code for linking the first piece of compiled code to the second piece of compiled code.

2. A method as claimed in claim 1 , wherein creating a link between the first piece of compiled code and the second piece of compiled code includes making a reference to an outlier by changing the control transfer instruction within the first piece of compiled code.

3. A method as claimed in claim 1 , further comprising recording information about the link in a buffer.

4. A method as claimed in claim 1 , further comprising maintaining a hash table.

5. A method as claimed in claim 1 , wherein creating a link between the first piece of compiled code and the second piece of compiled code by changing the control transfer instruction within the first piece of compiled code includes making a change to an instruction atomically.

6. A method as claimed in claim 1 , further comprising removing the link when a predetermined condition occurs.

7. A method as claimed in claim 6 , wherein the predetermined condition is that assumptions made during compilation are no longer valid.

8. A method as claimed in claim 6 , wherein the predetermined condition is that a code buffer holding the second piece of compiled code is required for use elsewhere in the computer system.

9. A method as claimed in claim 6 , wherein the predetermined condition is that the second piece of compiled code is no longer required by the computer system.

10. A method as claimed in claim 6 , wherein removing the link includes identifying any links between the first and second pieces of compiled code.

11. A method as claimed in claim 6 , further comprising redirecting any identified links to glue code.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2017
From: MYRIAD GROUP, AG
To: RPX CORPORATION
Reel/Frame 044087/0323 →
PATENTEE CHANGE OF ADDRESS Recorded Feb 5, 2016
From: MYRIAD GROUP, AG
To: MYRIAD GROUP, AG
Reel/Frame 037701/0866 →
CHANGE OF NAME Recorded Jul 9, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022928/0730 →
CHANGE OF NAME Recorded Jul 7, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022917/0525 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2004
From: INSIGNIA SOLUTIONS, INC.
To: ESMERTEC AG
Reel/Frame 014852/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2003
From: INSIGNIA SOLUTIONS, PLC
To: ESMERTEC AG
Reel/Frame 014250/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2001
From: CHARNELL, WILLIAM THOMAS; PLUMMER, WAYNE; DARNELL, STEPHEN; DIAS, BLAISE ABEL ALEC; GUTHRIE, PHILIPPA JOY; KRAMSKOY, JEREMY PAUL; SEXTON, JEREMY JAMES; WYNN, MICHAEL JOHN; RAUTENBACH, KEITH; THOMAS, STPEHEN PAUL
To: INSIGNIA SOLUTIONS, PLC
Reel/Frame 012096/0008 →
Priority Claims (1)
GB 9825102 · Nov 16, 1998 · national
Continuity (2)
Continuation PCTGB990078800 · Mar 16, 1999
Related Publication 20020104077A1 · Aug 1, 2002