Mathematik | Informatik
Klaus Scheffler, 2004 | Basel, BS
Im Rahmen der Maturaarbeit wurde ein 32-bit Prozessor entwickelt und aufgebaut. Der funktionsfähige Prozessor ist in der Lage komplexe Maschinenprogramme auszuführen. Maschinenprogramme können automatisch mittels eines Compilers aus C-Code erzeugt werden. Das Prozessorboard verfügt auch über ein Farbdisplay für die Ausgabe der Resultate. Mehrere Varianten des Mandelbrot Berechnungsprograms wurden implementiert und erfolgreich ausgeführt. Die Charakterisierung des Prozessors wurde durchgeführt und dokumentiert.
Fragestellung
Für meine Maturaarbeit habe ich einen 32-Bit Prozessor gebaut. Das Ziel der Arbeit war es einen funktionsfähigen Prozessor zu entwickeln und aufzubauen. Der Prozessorcode sollte auch mithilfe eines Compilers erzeugt werden. Dies ermöglicht es automatisch Programme für den Prozessor zu erzeugen statt sie von Hand zu entwickeln. Ausserdem sollte der Prozessor ein Farbdisplay ansteuern, um eine Form der Ausgabe zu haben. Als Demonstration sollte ein Mandelbrotberechnungsprogram implementiert und Fraktale verschiedener Auflösung ausgegeben werden.
Methodik
Für diesen Prozessor gab es keine Vorlage. Er sollte von Grund auf neu entworfen werden. Um die Vision eines 32-Bit Prozessors entstehen zu lassen, hat das Tool „Digital“ eine wichtige Rolle gespielt. Digital ist ein Logik Designer und Simulator und ist das perfekte Tool, um einen „simplen“ Prozessor zu simulieren. In diesem Tool wurde schliesslich der komplette 32-Bit Prozessor entworfen, da es sehr schnell geht, Änderungen vorzunehmen und Fehler zu finden. Ein weiterer Aspekt des Prozessors ist, dass er aus TTL-Bausteinen aufgebaut ist. Die sogenannte Transistor-Transistor-Logik wird auch in den Integrierten Schaltkreisbausteinen dieses Prozessors verwendet. Diese Bausteine haben jeweils eine bestimmte Funktion, die von simplen Logikgattern bis zur Addition von zwei Zahlen reichen kann. Diese Bausteine wurden gewählt, da sie übersichtlich sind. Damit ist es einfacher den Prozessor und die Vorgänge nachzuvollziehen. Ein weiterer, wichtiger Aspekt dieser Bausteine ist die Visualisierung, da zum Beispiel eine LED ganz einfach an die Ausgänge eines Bausteines angeschlossen werden kann.
Ergebnisse
Das Ergebnis ist ein in Hardware realisierter Prozessor, welcher Turing-Complete ist. Er ist im Stande, zum Beispiel Fraktale wie das Mandelbrot Set auf einem Display zu erzeugen. Zudem können die Programme für den Prozessor einfach mit standard C-Code erzeugt werden. Der Prozessor verbraucht ca. 3 Watt und läuft bei einem Takt von ca. 2MHz. Insgesamt arbeitet der Prozessor viel Ineffizienter als Moderne Prozessoren, aber er ist im Stande mit den Apollo Guidance Computer in den Schatten zu stellen.
Diskussion
Der Programmierteil des Projektes wurde hauptsächlich in C geschrieben. Eines der Ziele dieses Projekts war es, einen Compiler für den Prozessor zu erschaffen. In anderen Worten: Eine Software, die standard C-Code nimmt und in die prozessoreigene Maschinensprache übersetzt. Der aufwändigste Schritt in diesem Prozess, den C-Code in Assemblersprache zu übersetzen, wurde von „ctoassembly.com“ übernommen, einem Tool, das es bereits gab. Ctoassembly ist ein Compiler, der als Ausgabe einen reduzierten und übersichtlichen Code von nur 25 verschiedenen Assemblerbefehlen ausgibt. Diese Befehle werden dann vom selbst geschriebenen Crosscompiler in die prozessoreigene Maschinensprache übersetzt. Zudem wurden noch Subroutinen implementiert, die es dem Prozessor ermöglichen Division und Multiplikation sowie Float-Operationen durchzuführen und auch Kommunikation mit dem Display möglich machen und diverse andere Befehle. Die aufgebaute Schaltung realisiert einen recht stabil laufenden Prozessor. Da die Schaltung vorgängig simuliert wurde, mussten bei der Inbetriebnahme nicht viele Probleme behoben werden. Dies bestätigt die angewendete Methodik in diesem Projekt welche zu diesen Resultaten führten.
Schlussfolgerungen
Der Prozessor erfüllt die Anforderungen der Zielsetzung und ist in der Lage das Farbdisplay problemlos anzusteuern. Mithilfe des Compilers kann einfach Code für den Prozessor erzeugt werden, was die Implementierung verschiedenster Programme ermöglicht. Auch wenn noch immer nicht alles stabil läuft, bin ich sehr zufrieden mit dem Ergebnis und den berechneten und dargestellten Mandelbrot-Fraktalbildern.
Würdigung durch den Experten
Dr. David Perels
Klaus Scheffler entwickelte einen eigenen 32-bit Prozessor (CPU) aufgebaut aus diskreten TTL-Chips. Damit zeigte er eine umfassende Arbeit, die den ganzen Entwicklungsprozess eines Hardwareprojekts abdeckt. Nach erfolgreicher Inbetriebnahme des Prozessorboards konnten erste Testprogramme aus C-Code kompiliert und ausgeführt werden. Ein Programm, welches ein Mandelbrot Fraktal berechnet und auf einem Farbbildschirm ausgibt, rundet die Arbeit ab. Mit der Arbeit zeigt Herr Scheffler eindrücklich, was mit Begeisterung und Ausdauer innerhalb relativ kurzer Zeit erreicht werden kann.
Prädikat:
hervorragend
Sonderpreis «Regeneron International Science and Engineering Fair (ISEF)» gestiftet von der Gebauer Stiftung
Gymnasium Kirschgarten, Basel
Lehrer: Victor Yakhontov