
DFA Simulator. When I took Theory of Computation, I wrote this very basic DFA (Deterministic Finite Automaton) builder and simulator applet. It isn't full-featured, nor completely bug-free, but it allows you to build a DFA and watch input strings get consumed by the automaton after you build it.
Context-Switching Framework. As part of my masters work, I developed a framework that allowed me to simulate round-robin scheduling and also allowed me to easily vary the time slice lengths (in number of instructions). This framework is built on the SimpleScalar 3.0a Toolkit and uses MPI V.2 to synchronize the active processes. Differences from the SimpleScalar 3.0a release are described in README.CONTEXTSWITCH included in the tar'd, gzipped distribution of SimpleScalar 3.0a.
This work resulted in a paper published at the 2001 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS-2001). Copies and abstract are available from my Publications section.
Dynamic Register Reassignment using Strata. My partner and I evaluated the usefulness of dynamic register reassignment on Sparc binaries for a group project that was part of a seminar on topics in software dynamic translation. The basic idea is that at compile time the compiler may not have enough information to assign registers in the best way possible. This is especially true at function call sites. The result of this lack of information is some unnecessary register-register move instructions in the binary. We used the Strata software dynamic translation infrastructure to implement and evaluate a runtime optimization pass which modifies the binary code held in Strata's code cache. Our optimization pass was extremely conservative and was evaluated on several SPECINT2000 benchmarks.
As the Strata code is only available upon permission of its author, I cannot post our code here. However, if you're interested in the result, our report is available.
Last updated January 14, 2002
This page created and maintained by
micheleco@cs.virginia.edu