LSU EE 7700-3 -- Advanced Computer Implementation -- Spring 2005 Lecture Set 3 Simulation and Instrumentation Material will be added to this set. Time-stamp: <11 February 2005, 15:26:54 CST, koppel@drop> ==================== Definitions Target System (real or made up) being evaluated. Host System (real) that simulator or instrumentation system runs on. Benchmark Program that runs on target. Instrumentation Modifications to a system for collecting data, e.g., number of cache misses. Simulation A method of obtaining performance data on some target system without using the target system. Instrumentation Summary Kinds of Data Typically Obtained Execution time. (Trivial.) Number of cache misses. Number of branch mispredictions. Number of ROB full stalls. Uses Analyze execution to tune programs. Analyze programs to guide design of new microarchitectures. (Complete design would use simulation.) Calibrate a simulator. Instrumentation Techniques Event Registers -- Widely Used Now Processor designed with special event registers. Registers count events such as cache misses. Interrupt can be triggered when count reaches zero. + Widely available, simple to use. - Can only count events, cannot provide more detail. Microcode Hacks Modified microcode records information in a buffer. Can provide more information than event registers. + More flexibility on what can be collected. - Few processors use microcoded controllers. - Collection of detailed information would perturb system. Hardware Event Tracing Connect probes to system and record information. For example, watch instructions being fetched or addresses being loaded. Difficult to do with modern processors because many wires only in chip package. - Impractical on modern systems. - Requires an expensive logic analyzer. Simulation Definitions Functional Simulator A system that simulates program execution but provides no timing data. Timing Simulator A system that simulates program execution and provides timing data. Cycle-Accurate Simulator A more accurate timing simulator. (More accurate in the same way that user-friendly software is easier to use.) User-Mode Simulation Simulating user-mode instructions, not operating system instructions. System-Mode Simulation Simulating both user- and system-mode instructions. IO Hardware Simulation Accurately simulate IO hardware, including disk drives. Using a Simulator Step 1: Come up with idea. Step 2: Modify simulator. Step 3: Choose benchmarks Step 4: Run. Common Simulators SimpleScalar Developed at the University of Wisconsin. Simulates enough of system to run user-mode code. Very widely used. Can simulate a variety of systems (called models). sim-outorder: (out of order) A dynamically scheduled system. sim-bpred: Evaluate branch prediction schemes. sim-fast: Functional simulation only. SimOS Developed at Stanford. Simulates enough of system to run the OS. Rarely used, but results probably accurate because OS is simulated. Also can simulate a variety of models, and can switch during execution. Shade Developed by Sun Functional Simulator Comes with cache simulators, instruction analyzers. RSIM Developed at RICE. Timing simulation: Dynamically scheduled multiprocessor.