Speeder für Spectrum

Dieser »Turbolader« für den Spectrum überraschte mit unglaublicher Ablaufgeschwindigkeit.

Das Basic des Spectrum bietet einen guten Befehlssatz, zeichnet sich aber leider nicht durch hohe Ablaufgeschwindigkeit aus. Doch wie kann man diesen Zustand verbessern? Durch einen anderen Prozessor? Dann läuft die vorhandene Software nicht mehr! Eine schnellere Programmiersprache, Assembler vielleicht? Aber Assembler lernen ist schwierig.

Mainzelmännchen

Hier ist die einfache Lösung! Durch ein kleines schwarzes Kästchen läuft jedes Programm bis zu 40mal so schnell wie bisher. Verblüffend, aber wahr. In diesem Kästchen sitzt kein Mainzelmännchen, sondern ein Arithmetik-Coprozessor. Damit ist man aller Sorgen um die Abiaufgeschwindigkeit enthoben, denn er hilft dem Hauptprozessor ohne Programmieraufwand auf die Sprünge.

Dabei spielt es keine Rolle, in welcher Sprache programmiert wird. Der Geschwindigkeitsvorteil ist immer beachtlich. Selbst bei der Bildschirmansteuerung macht es sich bemerkbar. Zeichnet man mit »Circle« einen Kreis auf den Bildschirm, dann »überlegt« der Spectrum zirka 0,2 Sekunden, bis das Zeichnen beginnt. Mit der kleinen Platine im Rücken verringert sich diese Pause auf einen unmerklichen Moment.

Rucksack macht Dampf

Auf einer kleinen Platine sitzt ein EPROM mit geändertem Betriebssystem und ein Arithmetik-Coprozessor. Die Zusatzplatine steckt man einfach an den Erweiterungsslot. Nach dem Einschalten erscheint die Meldung »Arithmetik Speed GmbH«. Der Zusatz ist aktiviert. Ein zusätzliches Netzteil ist nicht erforderlich, da die Netzspannung des Spectrum genügt, um auch die Bausteine im Zusatzmodul zu versorgen.

Die Systemänderungen wirken sich nicht auf die Lauffähigkeit älterer Programme aus. Es werden lediglich die Arithmetikroutinen geändert. Zeitraubende Berechnungen führt der Prozessor nicht mehr selbst durch, sondern gibt sie an seinen schnellen Helfer weiter. Diese Coprozessoren sind Rechenkünstler. Sie erledigen Rechenoperationen wesentlich schneller als ein normaler Prozessor, denn sie sind auf Rechenoperationen spezialisiert. Ein kurzer Vergleich soll die Leistungsfähigkeit verdeutlichen: Eine Multiplikation besteht beim Z80-Prozessor aus einer mehr oder minder großen Zahl von Additionen. Eine Schleife muß also so oft durchlaufen werden, wie der Faktor dieser Multiplikation ist, Bei Faktor 1000 eben l000mal. Der Coprozessor verfügt dagegen über einen Multiplikationsbefehl. Er muß diesen Befehl nur einmal durchlaufen. Der Geschwindigkeitsvorteil liegt auf der Hand. Diese Coprozessoren sind andererseits für ein enges Aufgabengebiet entwickelt und müssen kein Allroundtalent sein wie ein Hauptprozessor. Das zeigt auch der interne Aufbau beider Bausteine.

Der Z80 verfügt über acht Haupt- und acht Zweitregister. Mit einer Breite von acht Bit. Der Coprozessor kann nur auf zwei Register mit je 32 Bit zurückgreifen. Demnach sind seine Rechenfunktionen durch die größere Bitbreite wesentlich effektiver und bedürfen weniger Softwareunterstützung. Der Coprozessor stellt aber auch mathematische Befehle bereit. Um die Befehle mit dem Z80 auszuführen, muß das Betriebssystem große Unterstützung leisten. Der Coprozessor greift wiederum nur auf einen Befehl zurück.

Mehr Hilfe nötig

Das Betriebssystem des Computers ist auf die veränderte Hardware abgestimmt. Es entscheidet, welche Aufgaben es dem Coprozessor überträgt und welche Aufgaben der Hauptprozessor selbst erledigt. Die Datenübertragung würde den Zeitgewinn, der durch die Berechnung gewonnen wurde, wieder aufheben.

Wesentliche Laufzeitverbesserungen ergeben aufwendige mathematische Berechnungen, zum Beispiel Quadratwurzelfunktionen. Gerade hier kann der Coprozessor seine Leistung voll zur Geltung bringen.

Der Hauptprozessor übermittelt seine Daten über den Datenbus. Diese Übertragungsart ist sehr schnell. Durch ein Signal ruft der Hauptprozessor den Coprozessor auf, der nun auf die Daten wartet. Nachdem die Daten übergeben wurden, läuft der Z80-Prozessor in »Wartezyklen«, vergleichbar mit einer leeren FOR-NEXT-Schleife. Erst wenn das Ergebnis verfügbar ist, übernimmt die Z80-CPU die Daten und setzt den Programmlauf fort. Es arbeitet also immer nur einer der beiden Prozessoren. Mit Unterstützung ist Simultanbetrieb machbar.. Das heißt, während der Rechenhelfer sich um die Lösung seiner Aufgabe bemüht, setzt der Z80-Prozessor seinen Programmlauf fort. Steht das Ergebnis zur Übernahme bereit, meldet sich der Coprozessor und übergibt die Daten. Für 198 Mark erhält man einen sehr empfehlenswerten Hardwarezusatz, der den Spectrum zu einem der schnellsten Computer seiner Klasse macht, (hb)

Benchmark 1

For f = 1 to 500
Let x = SQR(2)*SQR(3) * SQR(4)
Next f

Benchmark 2

For f = 1 to 500
Let x = SIN(f)
Next f

Benchmark 3

For f = 1 to 500
Let x = f*f
Next f

Benchmark 4

For f = 1 to 500
Let x = f + f
Next f

Laufzeiten in Sekunden auf den gängigen Heimcomputern:

                      Benchmark 1 Benchmark 2  Benchmark 3 Benchmark 4
Spectrum              170         25           5           4,2	
Spectrum(mit Speeder)   6          4,3         4           4 
Commodore 64           71         15           8,2         3,2	
Commodore 128 (Fast)   36          8,2         5           1,6	
Schneider CPC 6128     27          8           1,8         1,6	
Atari 130XE           190         37           4           2,9	
Atari ST                3          1,8         1,5         1,2	


Aus: Happy Computer 03 / 1986, Seite

Links

Copyright-Bestimmungen: siehe Über diese Seite