BitRaker Anvil: Binary Instrumentation for Rapid Creation of Simulation and Workload Analysis Tools

Brad Calder, Todd Austin, Don Yang, Timothy Sherwood, Suleyman Sair, David Newquist and Tim Cusac

in the proceedings of the Global Signal Processing (GSPx) conference, September, 2004.


A wide range of ARM developers from architects, to compiler writers, to software developers, need tools to understand, analyze, and simulate program behavior. For developers to achieve high levels of system and program correctness, performance, reliability, and power efficiency these tools must be fast and customizable to the problems at hand.

BitRaker Anvil is a tool building framework allowing developers to rapidly build tools to achieve these goals. BitRaker Anvil uses binary instrumentation to modify ARM binaries for the purpose of analyzing program behavior. BitRaker Anvil equips the developer with an easy to use API that allows the user to specify the particular program characteristics to analyze. Using this API, the developer can create custom tools to perform simulation or workload analysis several orders of magnitude faster than using a cycle level simulator.

Prior binary instrumentation technology requires that analysis code be merged into the same binary as the code to be analyzed. A key new feature of our binary instrumentation framework is ReHost analysis, which allows an instrumented ARM binary to make calls to analysis code that is written in the native format of the desktop machine. Using this for cross-platform ARM development results in analysis that runs orders of magnitude faster while simultaneously reducing the size of the ARM binary images