< previous page page_150 next page >

Page 150
Consistency of Empirical Data
The great problem with reported instruction set data is the problem of consistency. Unless the source programs, compilers, operating systems, and input data sets are standardized, little meaning can be inferred from reported instructional set distributional data. There have been only a few attempts at normalizing most of these variables and studying the resultant sensitivities. The best study to date is by Loboz [186], who looks at all of the previously cited factors. Our work has relied primarily on consistent data, even at the expense of a greater corpus of program material. We do not believe that a larger corpus of uncorrelated and inconsistent material would provide more reliable data than a smaller, but consistently used, set of data.

3.3 Process Management
An important aspect of processor performance is the behavior of applications during a process switch. Particular architecture features that are present in the processor significantly affect the number of instructions required to execute the switch and the time to manage the memory system. We review process switch data and resulting tradeoffs in this section.
Control passes from one procedure to its successor, requiring housekeeping. There are three types of control transfer:
1. Passing control to another user procedure.
2. Passing control to a supervisor or other privileged procedure.
3. Passing control through an interrupt.
All require at least the equivalent of a procedure call.
3.3.1 Procedure Calls: User State
Procedure call is one of the more difficult and controversial areas of program behavior. Calls are subject to significant variability across applications, data inputs, and operating systems. Even in the area of user programs only, the average number of instructions between a call varies significantly by application and programming language. Consider the following three sets of data [186] for the number of instructions between calls and/or returns:
C programs (10 applications)
d87111c01013bcda00bb8640fdff6754.gif
maximum = 333, average = 100.
Pascal programs (13 programs)
d87111c01013bcda00bb8640fdff6754.gif
maximum = 71.4, average = 52.6.
Algol (2 programs)
d87111c01013bcda00bb8640fdff6754.gif
maximum = 40, average = 27.

 
< previous page page_150 next page >