Please choose your delivery country and your customer group
STRAP, a general system for collecting a trace of machine-instruction execution on a high performance processor, has been implemented. Its generality lies in its ability to trace all instructions executed by the processor, whether they are issued by the supervisor or by a user program, and also in its ability to do this without significant impact on system performance. STRAP creates a 'virtual machine' environment in which the operating system appears to be executing normally, but is actually having its instructions traced by a program lying between it and the real processor. Burst sampling is used to avoid excessive tracing overhead, and the real processor interprets the traced instructions, keeping the instantaneous burst overhead down to about 45:1. The resulting traces, which can be useful for architectural studies and performance evaluation of existing systems, can now contain data for all parts of the operating system. We present example results showing how the data have been used to study: (1) the usage of various operating system components, (2) the difference in branching patterns between supervisor and user code, and (3) the difference in instruction frequency distribution between the two modes of operation. (Author)