Projekt Hoffnung, die Zweite: Im Gespräch mit Sven Karlsson

Was lange währt, wird endlich gut. Nachdem wir uns einige Monate um ein Interview mit der britischen Hardwareschmiede cortex design bemüht haben, zäumten wir das Pferd von hinten auf und wandten uns direkt an Sven Karlsson, den schwedischen Designer des PowerPC-Beschleunigers Tempest für den Atari Falcon.

Und das mit gutem Grund, schließlich könnte die Tempest eine neue Ära in der Welt des Atari einläuten: die PowerPC-Technologie erreicht endlich auch unseren Markt. Damit könnten Hard- und Softwareentwickler endlich unabhängig von der nicht mehr weiter entwickelten 68-Prozessorfamilie werden.

Thomas Raukamp unterhielt sich näher mit Sven Karlsson.

Sven, Sie arbeiten zusammen mit cortex design an der Beschleunigerkarte Tempest für den Atari Falcon. Was genau ist Ihre Rolle in dem Projekt?

Ich mache das gesamte Hardware-Design und bin bei diesem Projekt auch für den Großteil der Software zuständig. Etwas anders sah dies beim PCI-Adapter Eclipse aus, bei dem ich die Hardware und Teile des PCI-BIOS entwarf und Johan Klockars den Rest der Software-Entwicklung erledigte.

Wie weit ist das Tempest-Projekt bis jetzt?

Die Arbeit ist fertig. Ich stelle gerade die sogenannten "Vorserien-Prototypen" fertig. Diese entsprechen genau den eigentlichen Serienmodellen und werden für die letzten Test genutzt. Das Design ist also fertig - und das schon seit einiger Zeit.

Wann können wir in Europa mit dem Verkauf des fertigen Boards rechnen?

Sobald ich die abschließenden Tests durchgeführt und sicher gestellt habe, dass alles genauso arbeitet, wie es geplant war. Wenn mit den Vorserien-Mo-dellen alles klappt, dann kann ich die erste Charge an Tempest-Beschleunigern sofort losschicken. Es ist also alles nur noch eine Frage weniger Wochen.

Einen PowerPC auf einer Beschleunigerkarte zu verwenden ist etwas grundsätzlich anderes, als z.B. auf einen 68060-Prozessor zurückzugreifen, da der PPC zur 68k-Serie nicht kompatibel ist. Wie soll also die Kompatibilität zu den Atari-Programmen realisiert werden?

Die Idee ist, den PowerPC dazu zu benutzen um eine 68030-CPU mit einem Fließkommaprozessor zu emulieren. 68k-Prozessoren sind mittlerweile recht teuer in der Anschaffung und kosten mittlerweile ebenso viel wie ein PowerPC. Ein PPC ist sogar ca. sechsmal so günstig wie eine 060-CPU!

Wie Sie jedoch richtig gesagt haben, sind PowerPC-Prozessoren nicht kompatibel zur 68k-Serie. Ich habe daher eine sehr schnelle Emulations-Engine entwickelt, die den eigentlichen 68k-Code in PowerPC-Code umsetzt. Diese Transformation findet für jeden Befehl nur ein einziges Mal statt, sodass später darauf ohne Transformation zurück gegriffen werden kann. Die Emulation arbeitet wirklich sehr schnell, und dem System wird vorgegaukelt, dass es auf einem sehr schnellen 68k-Prozessor arbeitet.

Dies alles basiert auf einer Technologie namens "selbstmodifizierender Code". Der Programmierer schreibt im Grunde genommen ein Programm, das sich selbst nochmals schreibt, während es läuft. Dies stellt Emulatoren im Regelfall vor Probleme. Ich habe daher die Emulation-Engine so geschrieben, dass sie auf effiziente Weise mit Programmen umgehen kann, die selbstmodifizierenden Code nutzen.

Abhängig von der PowerPC-CPU und der gegenwärtigen Emulations-Engine können mit der Tempest Geschwindigkeiten erreicht werden, die mit einer 10-MHz-68060-CPU vergleichbar sind.

Handelt es sich bei der 68k-Emulation um eine komplette Neuentwicklung oder haben Sie bei der Entwicklung auf eine bereits existierende Lösung zurück gegriffen?

Ich habe die Emulations-Engine von Grund auf neu entwickelt. Keine der existierenden Lösungen hat mir die Möglichkeit geboten, meine Ideen für eine schnelle 68k-Emulation zu implementieren - jedenfalls nicht diejenigen, die ich mir anschauen und lizenzieren konnte.

Die Emulation-Engine emuliert eine "Super"-68030-CPU, komplett mit 68882-FPU und den meisten Instruktionen, die der 040 bzw. 060 bietet.

Welche Version des TOS wird vorausgesetzt?

Ich habe die Emulation bereits erfolgreich mit TOS 2.06, 3.06, 4.04 und einigen MagiC-Versionen getestet.

Wie stabil arbeitet die Emulation im Moment?

Sie kommt mit allem zurecht, was ich von ihr verlange. Einige Spiele und Demos machen natürlich Probleme, aber das war zu erwarten, denn sie sind einfach nicht mit Blick auf eine so schnelle CPU entwickelt worden. Sie setzen einen 68000-Prozessor mit 8 MHz oder einen 68030er mit 16 MHz voraus und greifen auf eine Art und Weise auf die Hardware zurück, die Probleme bereitet, wenn eine CPU genutzt wird, die immerhin vierzigmal schneller arbeitet.

Man darf aber nicht vergessen, dass der originale 68k-Prozessor - also der 030, 040 oder im Falle des ST/STE der 68000 - genutzt wird, wenn irgend ein Programm, Demo oder Spiel nicht mit der Tempest zusammen arbeitet. Die Tempest kann einfach durch eine Software ein- und ausgeschaltet werden und das System bleibt somit zu 100 Prozent kompatibel. Alle Spiele und Demos können auch dann genutzt werden, wenn die Karte vorhanden ist, können aber eben nur nicht unter der Beschleunigung laufen.

Wie schnell ist ein auf einem PPC emulierter Falcon im Vergleich zu der regulären 68030-Maschine?

Zuerst einmal muss ich darauf hinweisen, dass nicht der gesamte Falcon, sondern nur sein Prozessor emuliert wird. Keine andere Hardware wird emuliert. Der 68k-Prozessor, der im Falcon bleibt, kann weiterhin genutzt werden. Sie erhalten mit der Tempest einen zusätzlichen Prozessor, der z.B. dazu benutzt werden kann, einen 68k-Prozessor zu emulieren.

Abhängig davon, wie die jeweilige Applikation geschrieben ist, kann man sagen, dass ein Falcon mit einer Tempest bis zu zweiundvierzigmal schneller wird. Es ist ziemlich schwer, hier exakte Zahlen zu nennen, da die Geschwindigkeit eben davon abhängt, wie ein Programm den Cache, den Speicher und die sonstige Hardware nutzt. Aber in jedem Fall wird es zu einer deutlichen Beschleunigung kommen.

Warum greifen Sie bei der Tempest auf die älteren Modelle der PowerPC-Familie zurück? Wäre es nicht weiser, einen G3 oder G4 anstatt eines 603 oder 604 zu nutzen?

Das ist eine sehr gute Frage. Die Tempest wurde so entworfen, dass sie auch in einen handelsüblichen und unmodifizierten Falcon passt Der PowerPC, der genutzt wird, ist günstig und hat fast alle nötigen Teile bereits integriert - inklusive eines 64-Bit-SDRAM-Interfaces, das mit bis zu 100 MHz betrieben werden kann. Ich hätte auch einen G3 oder G4 nutzen können, aber die Tempest hätte dann sehr viel teurer und größer werden müssen. Sie würde dann nicht mehr in das Standardgehäuse des Falcon passen. Die möglichen Leistungsvorteile eines G3 oder G4 sind anhand des höheren Preises und Platzbedarf einfach nicht gerechtfertigt.

Das Speicher-Interface der Tempest ist sehr schnell und macht Transferraten von über 400 MB pro Sekunde möglich. Außerdem nutzt es standardisierte SO-DIMM-Module. Aber die wirkliche Transferrate hängt wie gesagt von der jeweiligen Applikation ab. Die eigentliche CPU- und Speicher-Perfor-mance der Tempest ist jedoch viel höher als die irgend eines anderen CPU-Beschleunigers, den ich kenne. Ich denke, die Mischung aus CPU und Speicher ist beim Tempest-Design sehr sauber gelungen, sodass sie auch gegen G3-und G4-Designs bestehen kann.

Die Tempest passt also in das normale Desktopgehäuse des Falcon?

Sie brauchen keinen Tower. Die Tempest passt in den Standard-Falcon. Sie müssen nicht mal das Netzteil entfernen.

Kann jeder Laie das Board einsetzen?

Ja, das würde ich sagen. Es ist natürlich immer etwas riskant vorauszusetzen, dass jeder die Installation selbst durchführen kann. Aber niemand muss irgend etwas verlöten. Es muss einfach der Deckel des Falcon und die Tastatur entfernt werden. Die Tempest wird dann in den Erweiterungsbus des Falcon gesteckt. Anders als bei anderen Beschleunigern müssen also keine Chips entfernt oder komplizierte Leitungen an Chips oder ähnliches verlegt werden. Nach der Installation der Tempest setzt man einfach wieder die Tastatur und den Deckel des Falcon auf das Gehäuse, und die Maschine sieht genauso aus wie vorher -sie ist nur schneller.

In der Amiga-Welt sind PowerPC-Karten ja bereits Gang und Gäbe. Wäre es nicht einfacher gewesen, ein PPC-Board für den Amiga 1200 an den Falcon anzupassen, um so Zeit und Geld zu sparen?

Genau das habe ich vor einigen Jahren bereits versucht und festgestellt, dass es unmöglich ist, einen Amiga-Beschleuni-ger in einen Falcon einzubauen, ohne dass dieser in einen Tower umgebaut werden müsste. Wenn man nun noch bedenkt, dass eine ziemlich komplizierte Interface-Karte notwendig wäre, wäre der Gesamtpreis am Ende höher, als wenn man gleich eine eigene Karte für den Falcon kauft.

Bleiben wir ruhig noch etwas beim Amiga-Markt. Hier hat das Mutterunternehmen WarpUp als offiziellen Standard für das API zwischen dem Betriebssystem und der PowerPC-CPU festgelegt. WarpUp fungiert also somit als Schnittstelle für den einfachen Zugriff von Programmen auf den PowerPC. Meine Ansicht nach brauchen wir einen solchen Standard auch im Atari-Markt, wenn möglichst viele Applikationen umgesetzt werden sollen.

Das denke ich auch. Ich habe daher einen kleinen Microkernel entwickelt, der zusammen mit der Tempest ausgeliefert wird. Er ist zwar nicht mit einem der APIs des Amiga kompatibel, sollte aber komfortabel für Atari-Entwickler sein. Damit ist es möglich, Programme zu ehtwickeln, die auf dem emulierten 68K-Prozessor, dem PowerPC oder beiden Prozessoren laufen. Im Grunde kann sogar die 68k-CPU des Falcon genutzt werden - so z.B. der 040 eines Beschleunigers oder der 030 eines Standard-Geräts. Damit sind genau wie bei Amigas mit PowerPC-Beschleuniger zwei Prozessoren nutzbar.

Lassen Sie uns hier nochmals nachhaken. Wie können Entwickler anfangen, PPC- Versionen ihrer Programme zu schreiben? Welche Werkzeuge können sie dabei nutzen?

Entwickler können den Microkernel nutzen, um Programme ganz oder teilweise auf dem PowerPC laufen zu lassen. Sie können gcc und gas für die Entwicklung in in C, C++, Assembler oder anderen Sprachen nutzen, die von gcc unterstützt werden. Ich arbeite außerdem an einem einfachen Debugger.

Welche Akzeptanz erwarten Sie persönlich von den Atari-Programmierern für die Möglichkeit, native PowerPC-Applikationen für den Atari zu entwickeln?

Ich hoffe, dass die Entwickler, die leistungshungrige Programme wie Bild-und Soundbearbeitungen schreiben, in Erwägung ziehen werden jedenfalls die wichtigsten Teile ihrer Applikationen auf den PowerPC zu portieren. Der Microkernel erlaubt es, Teile einer Applikation direkt auf dem PowerPC-Prozessor laufen zu lassen, während andere Teile direkt auf dem - möglicherweise emulierten -68k-Prozessor arbeiten.

Ich wurde schon von einer Menge Entwicklern kontaktiert, die Programme für den PowerPC entwickeln möchten. Ich rechne daher mit Programmen, die MP3s, MPEG-Movies usw. abspielen.

Auf dem Amiga bedeuteten die PowerPC-Boards eine neue Ära für den Markt. Glauben Sie, dass Die Tempest auf dem Atari-Markt einen ähnlich hohen Stellenwert einnehmen wird?

Das hoffe ich. Motorola wird wahrscheinlich keinen schnelleren 68k-Prozes-sor mehr herausbringen, also sollten wir uns nach Alternativen umschauen. Meiner Ansicht nach bietet der PowerPC die beste Kombination aus Preis, Leistung und Leistungsverbrauch.

Die Tempest kann übrigens mit den DesTTiny-Boards im Milan, im Hades, in TTs und sogar in STs und STEs genutzt werden. Ich habe eine Menge privater Rücklagen in dieses Projekt investiert, und zur Zeit sieht es so aus, als würde ich aus der Tempest keinen Profit erzielen können. Aber ich habe noch einen Vollzeitjob, der mich mit dem Geld versorgt, dass ich zum Leben benötige. Ich mache dies also als Hobby, weil ich die Ataris so gern mag...

Sven, danke für das Gespräch...

Gerne. Ich bin dankbar für diese Gelegenheit, etwas über die Tempest zu erzählen. Ich plane auch noch ein paar andere interessante Projekte für den Atari-Markt. Ich hoffe, wir können uns über diese unterhalten, wenn sie bereit für den Markt sind... D



Aus: ST-Computer 02 / 2001, Seite 18

Links

Copyright-Bestimmungen: siehe Über diese Seite