Amir Roth
Associate Professor
Department of Computer and Information Science
University of Pennsylvania

email: amir (you can figure out the domain name from the url)
phone: 215.573.0175
office: 603 Levine
hours: by appointment
Home | Contact | ACG | Research | Publications | Teaching | Tools | Prospective Students | WICarch | Bookshelf | Fam

As part of our work on adding energy considerations to formal energy analysis frameworks, we have re-engineered several publically available tools into a form that better suits our needs. If you find these rewritten tools useful for your work, you are free to use them subject to the restrictions set by their original authors. You are free to use the changes we have made with no restrictions save the following: you are not to restrict other people's access to them, claim them as your own, or financially profit from them. We make no guarantee of the tools' utility or even "correctness" (however you may want to interpret that term).

The first re-engineered tool is Wilton and Jouppi's CACTI-3.0, the cache access time, cycle time, power consumption and area modeling tool. The original tool had a cache parameter (capacity:blocksize:associativity) interface and a fixed objective function. Our version has a more general parameter (sets:ways:databits:tagbits) interface that allows non-cache structures to be modeled easily and a programmable objective function that allows the user to choose a layout that optimizes an arbitrarily weighted combination of area, latency, and power-consumption. Here is a gzip'ed tarball that works on RedHat 7.2.1. Here is the documentation page, which is also included with the tarball.

The second re-engineered tool is Brooks' Wattch, which itself is an extension to SimpleScalar LLC's sim-outorder. The modifications we made here are more drastic. First, underlying all of this is a (hopefully) simpflifying revision of the Alpha target of SimpleScalar's entire suite of simulators. The out-of-order processor simulator is more modern looking, more highly parameterized, and implements the MIPS R10000 register renaming algorithm. The power-specific changes simply reverse the client-server relationship between the performance and power model. In the original implementation, the power module was the client which meant that any changes in the microarchitectural odule had to be mirrored in the power module. This is cumbersome and error prone. In our implementation, the microarchitectural module is the client, and it is served by the power module via a very restricted interface. Changes to the microarchitectural model must still be accompanied by changes to the power model, but those changes are now calls to the power module from within the microarchitecture module, they are not changes to the power module itself. This version has been used by first year graduate students in class project with surprising success. Here is a gzip'ed tarball that works on RedHat 7.2.1. Here is the documentation page.