Browse Prior Art Database

Instruction Stream Trace

IP.com Disclosure Number: IPCOM000042383D
Original Publication Date: 1984-May-01
Included in the Prior Art Database: 2005-Feb-03
Document File: 2 page(s) / 15K

Publishing Venue

IBM

Related People

Geer, CP: AUTHOR [+4]

Abstract

A software trace facility for monitoring the execution of each instruction in an instruction stream slows down the execution of the instruction stream. Degradations of 100 or 1000 times are not uncommon. For tracing the execution of nontime-dependent routines, this approach is quite acceptable. It does not, however, work for routines that are time dependent. An example of this is tracing the execution of a routine whose function it is to reinstruct a particular I/O (Input/Output) device within a given period of time. If the routine is slowed down, the I/O device which cannot be slowed down may overrun and a "realtime" environment cannot be recreated. Many problems which arise in a computer system are caused by time-dependent routines so that there is a strong desire to trace their activity.

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

Page 1 of 2

Instruction Stream Trace

A software trace facility for monitoring the execution of each instruction in an instruction stream slows down the execution of the instruction stream. Degradations of 100 or 1000 times are not uncommon. For tracing the execution of nontime-dependent routines, this approach is quite acceptable. It does not, however, work for routines that are time dependent. An example of this is tracing the execution of a routine whose function it is to reinstruct a particular I/O (Input/Output) device within a given period of time. If the routine is slowed down, the I/O device which cannot be slowed down may overrun and a "realtime" environment cannot be recreated. Many problems which arise in a computer system are caused by time-dependent routines so that there is a strong desire to trace their activity. Certain computer systems have recognized this need and have implemented special instructions or special hardware to reduce the degradation of the software trace. They have also recognized that it is not necessary to trace the execution of every instruction in the routine. Fig. 1 is a flowchart for a routine that consists of several code modules. Note that if some way can be found to identify the sequence in which these code modules are executed, the total instruction stream execution sequence can be determined without having to trace every instruction. Typically, these computer systems implement special monitor instructions that can be inserted at the beginning of each module. When the computer executes one of these monitor instructions, an exception or an interrupt occurs and some other routine records where the monitor instruction was encountered before control is passed to the instruction following the monitor instruction. Examples of this include the MONITOR CALL instruction in the IBM System/370. While these special monitor instructions significantly improve the ability to trace time-dependent routines, they still introduce some degradation, usually about 10% to 100%. For those situations where this degradation cannot be tolerated, some other approach must be found. A hardware monitor is one of the only ways to observe the operation of a processor with no degradation to the computer system. Unfortunately, it is not always possible to capture the entire instruction (other than an op code) or to identify where in a routine the instruction was encountered. Thus, a hardware monitor alone cannot always be used. In order to minimize the aforementioned slow down, a mechanism is provided whereby a combination of a hardware monitor and additional instructions can be used to trace the execution of an instruction stream with a degradation of 1%. Before an instruction trace is to be made, an area of consecutive words in the main storage 10 (Fig. 2) is reserved. The number of words in main storage to be reserved is determined by the number of points to be monitored, one word for each monitor point. For example, Fig. 1 shows six...