Skip to Main Content
Binary translation has been widely used as object code migration across different architectures. Most current works are targeted towards running an existing (old architecture) binary version of a complex application on a newer architecture and so availability of resources is not a problem. In this paper we propose a technique called RABIT for emulating a newer architecture's binary on an older one. RABIT will allow the consumers to emulate the applications developed for newer hardware on their older machines by incurring some performance trade-offs. This way the needy consumers can take advantage of the newer software features on their existing machines before they decide to upgrade them to later models. In situations where the newer hardware is in place, our technique can be used to run applications redundantly on the older machine for dependability analysis. It also provides the CPU architects with an instruction-level simulator to test the design and stability of a new CPU before the new hardware is actually in place. RABIT's design consists of a translator, an interpreter and a set of operating system services. To deal with the less amount of resources like registers in the older architecture as compared to the newer ones, we present a new register allocation algorithm. The feasibility of the technique is established by simulating RABIT for its performance.