EHSM: In einer Woche zum selbstgebauten Prozessor

Eigentlich soll der Prozessor DCPU16(öffnet im neuen Fenster) nur als virtuelles Teil des kommenden Spiels 0x10c existieren – der Entwickler Shawn Tan(öffnet im neuen Fenster) hat ihn jedoch als ein Stück Hardware umgesetzt, wie er bei einem Vortrag auf der Konferenz EHSM(öffnet im neuen Fenster) in Berlin beschrieben hat.









Ob es sich bei Tans Projekten um "echte" Prozessoren handelt, ist dabei ebenso eine philosophische Frage wie die, ob der nur als Software existierende DCPU16 einen solchen darstellt. Tan verwendet zur Realisierung seiner Entwürfe nämlich stets FPGAs(öffnet im neuen Fenster) , also programmierbare Logikbausteine, mit denen sich die Funktionen einer CPU auf Basis von bestimmten Grundelementen nachbilden lassen.
Dass der Entwickler die Schritte der Beschreibung des Schaltplans (Tape Out) und die Fertigung auf leeren Wafern, also die typische Produktion von Prozessoren, auslässt, hat einen einfachen Grund: Die Software dafür kostet einige Hunderttausend bis mehrere Millionen US-Dollar, wie Tan in seiner Rede sagte.
Alle anderen Schritte davor werden aber wie bei der Entwicklung von allen integrierten Schaltkreisen durchgeführt. Für die DCPU16 standen dabei nur fünf Tage zur Verfügung. Den ersten Tag verbrachte Tan mit dem Lesen der Dokumentation, was den Umfang des Befehlssatzes des Prozessors erahnen lässt: Funktionen, die in der Dokumentation gar nicht beschrieben sind, bedürfen auch keiner Umsetzung. Am zweiten Tag skizzierte Tan, vor allem mit Papier und Bleistift, die Pipeline.
Mit diesem Begriff wird bei Prozessoren die Ausführung von Befehlen in mehreren Schritten beschrieben, jeder der Schritte entspricht einer Stufe der Pipeline. Wenn die Pipeline viele Befehle parallel abarbeiten kann, ergibt sich, grob vereinfacht, ein schnellerer Prozessor. Tans Pipeline erwies sich mit 8 Stufen als am effizientesten, bis zu drei Befehle können dabei parallel verarbeitet werden.
Als nächstes: vier Threads
Am dritten Tag begann Tan mit der Beschreibung der Schaltung in der Sprache HDL(öffnet im neuen Fenster) . Mittels dieser "Hardware Description Language" lassen sich die Funktionseinheiten einer Schaltung wie in einem Baukastensystem umschreiben. Das entspricht der Arbeit eines Programmierers, und als solcher hat Tan seine Karriere auch begonnen. Den Beginn der Beschreibung machte der Registerspeicher, danach folgte das Busprotokoll.









Die Tage vier und fünf – schließlich sollte die CPU in einer Arbeitswoche fertig werden – verbrachte ihr Entwickler mit Optimierungen und dem Umschiffen von Gefahrenstellen in jeder CPU-Architektur. Solche sind vor allem Verzweigungen (Branches), die einen Prozessor in eine Endlosschleife schicken oder stark ausbremsen können. Aus den Lösungen dafür ergeben sich auch anderweitig nützliche Strukturen wie Lookup-Tabellen(öffnet im neuen Fenster) .
Seit fast zehn Jahren entwickelt Shawn Tan so schon Prozessoren, angefangen hat er 2002 mit seinem Projekt für den Bachelor-Abschluss. Dafür nahm sich der angehende Ingenieur der Elektrotechnik den Motorola 68000(öffnet im neuen Fenster) vor. Das Ergebnis war eine binärkompatible Umsetzung des Klassikers, der unter anderem in Apples erstem Macintosh und in Ataris ST sowie dem Commodore Amiga steckte. Auch die PC-Prozessoren mit x86-Architektur hatte sich Tan vor der Wahl seines Studienprojektes angesehen – zu komplex, zu viel, was für Rückwärtskompatibilität zu beachten wäre, war sein Urteil.
Als nächstes hat sich der Entwickler das Projekt "T3RAS" vorgenommen. Das soll eine CPU werden, die sich für viele Anwendungen eignen soll, nicht nur für akademische. Bis zu vier Threads in Hardware soll der Prozessor ausführen können, 2013 soll er fertig sein(öffnet im neuen Fenster) . Wie bei allen seinen bisherigen Projekten, beispielsweise hier bei Github(öffnet im neuen Fenster) , soll auch T3RAS als Open Hardware von Shawn Tan veröffentlicht werden.