| OCR Text |
Show 6 observed over the class of applications planned for the system. Instruction mix models have advanced little since Gibson formulated his famous mix [15] in 1959.* These models have also been used for instruction set design and optimization, although recently they have given way to more accurate trace driven models [31]. Synthetic benchmarks are very similar to instruction mixes, the main difference being that they are based on the frequency of observed instruction sequences, rather than just the frequency of individual instructions [21]. Instruction mixes and synthetic benchmarks both may be constructed from program traces (see 1 .4.3). 1.4.3 Trace Driven Models A trace is a record of selected events that preserves the exact order of occurrence. The selected events may be instruction opcodes, memory references, conditional and unconditional branches, resource allocations, or any other event that may be detected by either hardware or software instrumentation [38]. A trace may be captured while running either a natural system workload or a representative benchmark mix. Care must be taken that the instrumentation of a system does not signica.ntly alter its runtime behavior. Trace driven processor models have been used with great success in a wide variety of simulation systems and proccessor design tools [ 18]. Sherman and Browne [34] used trace driven simulation models in their studies of CPU scheduling algorithms and deadlock prevention algorithms on the CDC 6600. Smith [35] used memory traces in a landmark study of cache management algorithms. Smith and Lee [36] investigated branch prediction strategies with the aid of branch traces. Peuto and Shustek [31] compared the relative performance of two *Although the Gibson mix originated in 1959 and was widely circulated, Gibson did not publ ish the mix until 1970. |