IP Library › Granted Patent US 10,078,515
Granted Patent B2
US 10,078,515 · App. 13/251,441 · Granted Sep 18, 2018

Tracking operand liveness information in a computer system and performing function based on the liveness information

Inventors: Michael K Gschwind (Chappaqua, NY); Valentina Salapura (Chappaqua, NY)
Assignee: International Business Machines Corporation
G06F9/3834G06F9/30076G06F9/30105G06F9/30127G06F9/30185G06F9/384G06F9/3832G06F9/3851G06F9/3855G06F9/462
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 10,078,515
App. No.
13/251,441
Granted
Sep 18, 2018
Kind
B2
Abstract

Operand liveness state information is maintained during context switches for current architected operands of executing programs. The current operand state information indicates whether corresponding current operands are enabled or disabled for use by a first program module comprising machine instructions of an instruction set architecture (ISA) for disabling current architected operands. A machine instruction of the first program module accesses a current operand by using the current operand state information to determine whether a previously stored current operand value is accessible by the first program module.

Claims (21)

1. A computer implemented method for maintaining liveness information for executing programs, the method comprising:

maintaining, by a processor, current operand state information indicating whether corresponding current operands will be used again, wherein current operands that will be used again are enabled for use by a first program module and current operands that will not be used again are disabled for use by the first program module, the first program module comprising machine instructions of an instruction set architecture (ISA), the first program module currently being executed by the processor;

accessing a current operand by a machine instruction of said first program module, the accessing comprising using the current operand state information to determine whether a previously stored current operand value is accessible by the first program module; and

based on the current operand being disabled, the accessing comprising at least one of a) and b) comprising:

a) returning an architecture-specified value as the value of the current operand, where the architecture-specified value is any one of an undefined value, a zero value, a value consisting of all ‘1’s, or a program specified default value; and

b) performing a notification, wherein the notification is any one of raising an exception, suppressing an exception, raising and suppressing an exception under control of a machine state, providing debug information, and setting at least one register to indicate occurrence of an access to a disabled operand,

wherein the current operand state information further comprises an operand enablement control for controlling whether current operand state information can be changed between enabled and disabled by a current program.

2. The method according to claim 1 , further comprising:

transferring program execution from the first program module to a second program module, comprising performing a) through b):

a) saving the current operand state information of the first program module in a context switch save area; and

b) loading, from the context switch save area, new operand state information as current operand state information of a second program to be executed; and

initiating execution of the second program using the loaded current operand state information.

3. The method according to claim 2 , wherein the transferring program execution is a context switch operation, wherein the current operands consist of any one of architected general register values of general registers identified by instructions or architected floating point register values of floating point registers identified by instructions, wherein the transferring program execution further comprises performing c) through d):

c) saving a program counter value and current operand values of enabled current operands of the first program module in the context switch save area; and

d) loading, from the context switch save area, new operand values of new enabled operands as current operand values of current operands of the second program to be executed, wherein the initiated execution of the second program uses the loaded current operands.

4. The method according to claim 1 , further comprising:

executing a first operand disable instruction, the executing causing current operand state information of a first operand to disable the first operand, wherein reads of disabled operands return an architecture dependent default value; and

executing a second operand enable instruction, the latter executing causing current operand state information of a second operand to enable the second operand, wherein reads of enabled operands return values previously stored to said enabled operands.

5. The method according to claim 4 , wherein the default value consists of any one of an architecture undefined value, a value previously stored in an architecture defined default value register, all 1's, all 0's, an incremented value or a decremented value, wherein the incremented value is incremented with each read access, wherein the decremented value is decremented with each read access.

6. The method according to claim 4 , wherein the first operand disable instruction is a prefix instruction, the execution of the prefix instruction indicating to the processor that the first operand is to be disabled after use by a next sequential instruction following the prefix instruction in program order.

7. The method according to claim 4 , wherein write operations to disabled operands cause the disabled operand to be enabled, wherein the second operand enable instruction is a write instruction for writing to the second operand.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE TITLE: TRACKING OPERAND LIVELINESS INFORMATION IN A COMPUTER SYSTEM AND PERFORMING FUNCTION BASED ON THE LIVELINESS INFORMATION PREVIOUSLY RECORDED ON REEL 027006 FRAME 0219. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT - CORRECT ASSIGNOR 1 TO READ MICHAEL K GSCHWIND. Recorded Nov 5, 2012
From: GSCHWIND, MICHAEL K; SALAPURA, VALENTINA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029244/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2011
From: GSCWIND, MICHAEL K; VALAPURA, VALENTINA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027006/0219 →
Continuity (1)
Related Publication 20130086367A1 · Apr 4, 2013