Dynamische Recompilierung von MIPS-Prozessorcode auf PowerPC Prozessoren

von Alexander Lohrmann, 2000

In dieser Arbeit ist ein System entwickelt worden, das durch Re-Compilation zur Laufzeit Programme, die für einen fremden Prozessortyp geschrieben wurden, auf der jeweiligen Maschine (``Zielmaschine'') lauffähig macht. Bei der Ausführung sollte sich dieser Zielcode so verhalten, als liefe er wirklich auf der Quellmaschine. Dabei sollten Probleme wie Adressumsetzung, illegale Speicherzugriffe, illegaler Code oder Registermapping möglichst effizient gelöst werden. Das System sollte so modular strukturiert sein, dass ein späteres Hinzufügen weiterer Algorithmen bzw. Komponenten problemlos möglich ist.

Zunächst wurden Quell- bzw, Zielmaschine festgelegt. Als Quellmaschine diente eine CPU des Typs MIPS r3000a im Little-Endian-Mode, wie sie etwa auch in der Sony Playstation (TM) und diversen embedded Systems vorhanden ist. Es wurde nur die Integer-Einheit sowie eine Multiplikations- bzw. Divisionseinheit unterstützt werden, dazu evtl einige wenige Befehle des bei diesem Prozessortyps optionalen Systemkontrollprozessors, welcher für Exceptions, Breakpoints etc. zuständig ist. Als Zielmaschine wurde eine PowerPC-CPU des Typs MPC604e mit 233 Mhz gewählt, die unter AmigaOS 3.5 mit WarpUP V4 PowerPC-Kernel läuft. Die Entscheidung für dieses wenig verbreitete System wurde aufgrund seiner sehr unproblematischen Struktur getroffen.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013