Abstract
The instrumentation of applications to generate run-time information and statistics is an important enabling technology for the development of tools that support the fast and accurate simulation of computer architectures. In addition, instrumentation tools play an equally important role in the optimization of applications, in the evaluation of new compilation algorithms, and in the analysis of operating system overhead. An instrumentation tool is capable of modifying a program under study so that essential dynamic information of interest is recorded while the program executes. The instrumentation process should not affect the original functionality of the test program, although it will slow down its operation. In a typical situation, a computer architect uses an instrumentation tool to produce an instruction or data trace of an application. The architect then feeds that trace to a trace-driven simulation program. The usefulness of instrumentation tools is obvious from a quick glance at current research publications in the area, where a significant number of authors use traces generated by two of the most popular instrumentation tools: pixie [23] and spixtools [6]. These tools are popular because of their applicability to many architectures and programs, their relatively low overhead, and their simplicity of use.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Agarwal, R. Sites, and M. Horowitz, “ATUM: A new technique for capturing address traces using microcode,” Proceedings of 13th Annual Symposium on Computer Architecture, (Tokyo, Japan), Jun. 1986, pp. 119–127.
A. Agarwal, Analysis of Cache Performance for Operating Systems and Multiprogramming. Kluwer Academic Publishers: Norwell, MA, 1989.
T. Ball and J. Larus, “Optimally profiling and tracing programs,” Proceedings of the 19th Annual Symposium on Principles of Programming Languages, Jan. 1992.
J. Chen, “The Impact of Software Structure and Policy on CPU and Memory System Performance,” Technical Report CMU-CS-94-145, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, May 1994.
B. Cmelik and D. Keppel, “Shade: A fast instruction-set simulator for execution profiling,” Proceedings of 1994 SIGMETRICS Conference on Measurement and Modeling of Computer Systems, (Nashville, TN), May 1994, pp. 128–137.
B. Cmelik, “SpixTools Introduction and User’s Manual,” Technical Report SMLI TR-93-6, Sun Microsystems Laboratory, Mountain View, CA, Feb. 1993.
Digital Equipment Corp., Alpha Architecture Handbook, 1992.
S. Eggers, D. Keppel, E. Koldinger, and H. Levy, “Techniques for efficient inline tracing on a shared-memory multiprocessor,” Proceedings of 1990 SIGMETRICS Conference on Measurement and Modeling of Computer Systems, (Boulder, CO), May 1990, pp. 37–47.
K. Flanagan, K. Grimsrud, J. Archibald, B. Nelson, “BACH: BYU Address Collection Hardware,” Technical Report TR-A150-92.1, Department of Electrical and Computer Engineering, Brigham Young University, Provo, UT, Jan. 1992.
G. Gircys, Understanding and Using COFF, O’Reilly & Associates, Sebastopol, CA.
M. Golden, “Issues in Trace Collection Through Program Instrumentation,” MS Thesis, Department of Electrical and Computer Engineering, The University of Illinois, Urbana-Champaign, 1991.
J. Hennessy and D. Patterson, Computer Organization and Design: The Hardware/Software Interface, Morgan Kaufmann Publishers: San Mateo, CA, 1993.
Intel Corp., i486 Microprocessor Programmer’s Reference Manual, 1990.
Intel Corp., UNIX System V Rel 4.0 Programmer’s Guide, Order #465800-001, 1990.
Kane, Gerry, MIPS R2000 RISC Architecture, Prentice Hall: Englewood Cliffs, NJ, 1987.
J. Larus, “Abstract execution: A technique for efficiently tracing programs,” Software Practice and Experience, Volume 20, Number 12, Dec. 1990, pp. 1241–1258.
J. Larus, “Efficient program tracing,” IEEE Computer, Volume 26, Number 5, May 1993, pp. 52–60.
J. Larus and T. Ball, “Rewriting executable files to measure program behavior,” Software Practice and Experience, Volume 24, Number 2, Feb. 1994, pp. 197–218.
D. Mazieres and M. Smith, “Abstract Execution in a Multitasking Environment,” Technical Report 31-94, Center for Research in Computing Technology, Harvard University, Cambridge, MA, Nov. 1994.
J. C. Mogul and A. Borg, “The effect of context switches on cache performance,” Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, (Santa Clara, CA), 1991, pp. 75–84.
R. Uhlig, D. Nagle, T. Stanley, T. Mudge, S. Sechrest and R. Brown, “Design tradeoff for software-managed TLBs,” ACM Transactions on Computer Systems, Volume 12, Number 3, Aug. 1995, pp. 206–235.
J. Pierce and T. Mudge, “IDtrace: A Tracing Tool for i486 Simulation,” Technical Report CSE-TR-203-94, Dept. of Electrical Engineering, and Computer Science, University of Michigan, Jan. 1994.
M. Smith, “Tracing with Pixie,” Technical Report CSL-TR-91-497, Center for Integrated Systems, Stanford University, Nov. 1991.
A. Srivastava and A. Eustace. “ATOM: A system for building customized program analysis tools,” Proceedings of the SIGPLAN 1994 Conference on Programming Language Design and Implementation, (Orlando, FL), Jun. 1994, pp. 196–205.
A. Srivastava and D. Wall, “A Practical System for Intermodular Code Optimization at Link-Time,” Research Report 92/6, DEC Western Research Laboratory, Palo Alto, CA, Dec. 1992.
C. Stephens, B. Cogswell, J. Heinlein, G. Palmer, and J. Shen, “Instruction level profiling and evaluation of the IBM RS/6000,” Proceedings of 18th Annual International Symposium on Computer Architecture, (Toronto, Canada), May 1991, pp. 180–189.
Sun Microsystems, The Sparc Architecture Manual, 1989.
R. Uhlig, D. Nagle, T. Mudge, and S. Sechrest, “Trap-driven simulation with Tapeworm II,” Proceedings of the 6th International Conference on Architectural Support for. Programming Languages and Operating Systems, (San Jose, CA), Oct. 1994.
D. Wall, “Systems for late code modification,” In Code Generation-Concepts, Tools, Techniques, Springer-Verlag, 1992, pp. 275–293.
D. Wall, “Link-Time Code Modification,” Research Report 89/17, DEC Western Research Laboratory, Palo Alto, CA, Sept. 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 Springer Science+Business Media New York
About this chapter
Cite this chapter
Pierce, J., Smith, M.D., Mudge, T. (1995). Instrumentation Tools. In: Conte, T.M., Gimarc, C.E. (eds) Fast Simulation of Computer Architectures. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2361-1_3
Download citation
DOI: https://doi.org/10.1007/978-1-4615-2361-1_3
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4613-6002-5
Online ISBN: 978-1-4615-2361-1
eBook Packages: Springer Book Archive