@booklet {reddi2004pin, title = {PIN: A Binary Instrumentation Tool for Computer Architecture Research and Education}, journal = {Workshop on Computer architecture education (WCAE)}, year = {2004}, pages = {22}, publisher = {ACM}, abstract = {Computer architecture embraces a tremendous number of ever-changing inter-connected concepts and information, yet computer architecture education is very often static, seemingly motionless. Computer architecture is commonly taught using simple piecewise methods of explaining how the hardware performs a given task, rather than characterizing the interaction of software and hardware. Visualization tools allow students to interactively explore basic concepts in computer architecture but are limited in their ability to engage students in research and design concepts. Likewise as the development of simulation models such as caches, branch predictors, and pipelines aid student understanding of architecture components, such models have limitations in the workloads that can be examined because of issues with execution time and environment. Overall, to effectively understand modern architectures, it is simply essential to experiment the characteristics of real application workloads. Likewise, understanding program behavior is necessary to effective programming, comprehension of architecture bottlenecks, and hardware design. Computer architecture education must include experience in analyzing program behavior and workload characteristics using effective tools. To explore workload characteristic analysis in computer architecture design, we propose using PIN, a binary instrumentation tool for computer architecture research and education projects.\ }, url = {https://doi.org/10.1145/1275571.1275600}, author = {Reddi, Vijay Janapa and Settle, Alex and Connors, Daniel A and Cohn, Robert S} }