IP Library Granted Patent US 8,276,128
Granted Patent B2
US 8,276,128 · App. 12/502,285 · Granted Sep 25, 2012

Systems, methods, and computer programs for dynamic binary translation in a master control program interpreter

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 8,276,128
App. No.
12/502,285
Granted
Sep 25, 2012
Kind
B2
Abstract

Various embodiments of systems and methods for dynamic binary translation in an interpreter are disclosed. An embodiment comprises a method for dynamic binary translation in an interpreter. One such method comprises: receiving non-native code comprising a sequence of one or more operators to be interpreted; building a static branch destination table associated with the operators, the static branch destination table specifying a static branch operator that branches to another operator in the sequence and a corresponding memory location to which the static branch operator branches; parsing the sequence of operators and building a cross-reference table that specifies a pointer to an operator function associated with the corresponding operator, an index of the operator in a native code sequence, and a call to a native operator; selecting a dynamic branch code template for the native operator; and based on the static branch table and the cross-reference table, emitting the native code sequence to be executed via a native processor.

Claims (28)

1. A method for performing dynamic binary translation in a Master Control Program (MCP) environment on a native processor, the MCP environment comprising a central processor module (CPM), a task control unit (TCU), and a code translation unit (CTU) for implementing the dynamic binary translation, the method comprising:

the CPM reading E-Mode code from a memory prior to execution;

the CPM generating and sending a first message to the CTU, the first message comprising a reference to the E-Mode code to be translated and a translation complete event to be caused when translation of the E-Mode code is completed;

the CPM generating and sending a second message to the TCU, the second message configured to cause a first stack to wait for the translation complete event, the first stack comprising at least a first portion of the E-Mode code to be translated;

based on the second message, the TCU instructing the CPM to move to a second stack comprising at least a second portion of the E-Mode code to be translated;

based on the first message, the CTU translating the first portion of the E-Mode code to native code;

the CTU generating and sending a third message to the TCU, the third message configured to cause the translation complete event;

based on the third message, the TCU causing the translation complete event;

the TCU preparing the second stack and scheduling the CPM to the second stack; and

the CPM executing the native code.

2. The method of claim 1 , wherein the CTU translating the E-Mode code comprises:

receiving non-native code comprising a sequence of one or more operators to be interpreted;

building a static branch destination table associated with the operators, the static branch destination table specifying a static branch operator that branches to another operator in the sequence and a corresponding memory location to which the static branch operator branches;

parsing the sequence of operators and building a cross-reference table that specifies a pointer to an operator function associated with the corresponding operator, an index of the operator in a native code sequence, and a call to a native operator;

selecting a dynamic branch code template for the native operator; and

based on the static branch table and the cross-reference table, emitting the native code sequence to be executed via a native processor.

3. The method of claim 2 , wherein the emitted machine code comprises a sequence of calls to a corresponding routine that executes the associated operator via a native processor.

4. The method of claim 2 , wherein the emitted machine code comprises a sequence of calls to a corresponding memory address of a location of the associated operator.

5. The method of claim 2 , wherein the receiving the non-native code comprises receiving a message from an interpreted operating system.

6. The method of claim 2 , wherein the receiving the non-native code comprises receiving a memory address associated with the non-native code.

7. The method of claim 2 , wherein the parsing the sequence of operators comprises an optimization technique.

8. The method of claim 7 , wherein the optimization technique comprises concatenating two or more of the operators.

9. The method of claim 7 , wherein the optimization technique comprises employing two or more implementations of an operator wherein each implementation has a unique set of assumptions.

10. The method of claim 9 , wherein the selecting the dynamic branch code template comprises selecting one of the two or more implementations of the operator that matches the unique set of assumptions.

11. The method of claim 2 , wherein the selecting the dynamic branch code template comprises automatically or manually generating a routine that implements the native operator.

12. The method of claim 11 , wherein the generated routine conforms to the Application Binary Interface in which the interpreter is executing.

13. The method of claim 2 , wherein the emitting the native code sequence comprises allocating a memory area within an address range of a native processor.

14. The method of claim 1 , wherein the native code is executed on a native Intel processor.

Assignments (8)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded May 7, 2010
From: UNISYS CORPORATION
To: DEUTSCHE BANK
Reel/Frame 024351/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2009
From: MEYERS, ROBERT JOSEPH; BEALE, ANDREW WARD; WILTON, LOREN
To: UNISYS CORPORATION
Reel/Frame 023396/0643 →