Browse Prior Art Database

Scheme for Inserting Markers in an Instruction Scheme without Modifying the Instructions

IP.com Disclosure Number: IPCOM000229485D
Publication Date: 2013-Jul-31
Document File: 3 page(s) / 40K

Publishing Venue

The IP.com Prior Art Database

Abstract

A scheme is described that enables signals to be inserted at arbitrary points in an instruction stream without modifying the instruction stream. These signals can be used to cause various events to occur, including causing performance measurements and adjusting system parameters.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 44% of the total text.

Page 01 of 3

Scheme for Inserting Markers in an Instruction Scheme without Modifying the Instructions

During verification of a processor, it is often necessary to insert signals to the verification environment at certain points in the instruction stream. In response to these signals, the verification environment may input perturbations into the verification process such as causing instruction dispatch to be temporarily suspended, causing caches to be emptied, causing special monitoring hardware to be activated, or other similar effects in order to stress and/or monitor various portions of the hardware. One obvious method of inserting signals is to include special and/or modified instructions in the instruction stream that contain encoded signals. [1] Any modification of the instruction stream is undesirable, however, because it has the potential of introducing unwanted measurement effects, thereby making it impossible to duplicate situations in which problems have previously been identified. Also, if instructions are modified, there is a limit to the ways in which they may be modified, and thus there is a limit to the number of unique markers that can be introduced. The scheme described here enables an arbitrary number of markers to be inserted in the instruction stream without modifying it so that problems can be duplicated and analyzed without introducing any measurement effects.

The core idea of this scheme is to use the value of a calling context signature, or "call signature" as a marker. (See [2] for a description of a calling context signatures.) Such a call signature is continuously maintained as the program executes in a "Call Signature Register" (CSR). This register is continually updated whenever a "call" instruction or "return" instruction is executed, where "call" and "return" instructions are branch instructions with operand values that identify them as either calling a subroutine or returning from one. The CSR is updated on each call and return instruction by applying a function, referred to as the "update function," to the current value of the CSR. The update function for return instructions is the inverse of the update function for call instructions, so that after a returning from a subroutine call, the CSR contains the same value as it contained immediately prior to the call instruction.

The scheme makes use of the fact that the value of the CSR at any point in a program depends its initial value. Therefore, by initializing the CSR to a known value, the value at any subsequent

point in the program is predictable and thus can be used as a marker. In order to insert a specific type of marker at any given instruction, the call signature register is initialized to a value that will cause the subsequent value to be equal to the desired marker value when the instruction to be marked is executed. In order to detect the marker, therefore, the simulation environment monitors the state of the CSR. In some situations it may also need t...