Schon kurz nach Veröffentlichung des Artikel über Omikron.BASIC 4.0 in der letzten Ausgabe, erreichte uns eine neue Version 4.08, mit der sich massive Änderungen gegenüber unserer Testversion ergaben. Deswegen möchten wir Ihnen hier einen Nachschlag auf den Test geben.
Der Compiler unterstützt den Coprozessor des ATARI TT direkt, d.h. es ist hierzu keine spezielle Bibliothek notwendig. Die Mehrzahl der Berechnungen wird vielmehr direkt im Objektcode erledigt ohne Bibliotheksaufrufe. Alle anderen Dinge, die spezielle Anpassungen an den ATARI TT betreffen, sind in der "BASLIB_4" zusammengefaßt. Diese Bibliothek gehört natürlich standardmäßig zum Lieferumfang.
Der Compiler unterstützt den ATARI TT in mehrerer Hinsicht:
Die Aktivierung dieser zusätzlichen Optimierungen auf ATARI TT wird einfach und komfortabel über Compiler-Steuerworte ("68020; FPU2") eingestellt. Darüber hinaus ist die Version 4.0 natürlich vollständig abwärtskompatibel, d.h. es werden alle denkbaren Kombinationen von Hardware-Ausstattungen unterstützt (Beschleunigerkarten und auch FPU-Karten für den Erweiterungssteckplatz des Mega ST).
Seit Release 4.08 nutzt auch der Interpreter die FPU des ATARI TT direkt. Es werden alle trigonometrischen und transzendenten Funktionen mit Hilfe des Coprozessors berechnet. Dadurch werden auch Funktionen beschleunigt, die auf diesen Grundfunktionen aufbauen.
Anhand der Tabelle soll verdeutlicht werden, welcher Leistungszuwachs möglich ist. Die gemessenen Werte beziehen sich auf einen Mega ST 4, wahlweise mit Weide-Coprozessor bzw. auf einen ATARI TT/8 (Cache an, Programme laufen im FAST-Ram). Das Benchmarkprogramm1 ist als Demoprogramm ebenfalls in der
Fließkommaberechnung | |||||
Zeit in Sekunden für 100000 | Operationen |   |   |   | |
  | MegaST I/C | MegaST C | MegaST CF | AtariTT 1 | AtariTT CF |
SIN | 493,75 | 487,5 | 11,125 | 11,125 | 1,81875 |
COS | 493,75 | 493,75 | 11,125 | 11,1875 | 1,81875 |
TAN | 1012,5 | 1062,5 | 11,5625 | 11,25 | 2,0875 |
SINH | 725 | 743,75 | 24,625 | 11,625 | 2,8375 |
COSH | 725 | 743,75 | 24,8125 | 11,4375 | 2,61875 |
TANH | 793,75 | 825 | 36,875 | 11,4375 | 2,45625 |
ARCSIN | 918,75 | 956,25 | 12,125 | 11,4375 | 2,40625 |
ARSINH | 1475 | 1568,75 | 33,8125 | 25,25 | 3,0625 |
SQR | 518,75 | 518,75 | 7,5 | 9,75 | 0,85625 |
EXP | 637,5 | 656,25 | 11,0625 | 11,25 | 2,24375 |
LN 937,5 | 981,25 | 11,25 | 10,9375 | 2,35 |   |
FORMEL1 | 48500 | 52500 | 51,5 | 33,25 | 7,7 |
FORMEL2 | 132000 | 142000 | 78,5 | 135 | 20,85 |
FORMEL3 | 168,75 | 137,5 | 39,75 | 35,875 | 2,09375 |
Integer-Benchmark Zeit in Sekunden für 100000 Operationen |
||
MegaST 1 MegaST C |
AtariTT 1 |
AtariTT C AtariTT C2 |
  |
||
ProcCall 198,125 11,875 |
7,925 |
1,8875 1,8875 |
ILMul 55,625 15,5625 |
20,1875 |
2,8375 0,8875 |
IWMul 61,25 15,5625 |
22,25 |
2,9375 1 ,00625 |
IL Add 42,5 2 |
16,125 |
0,14375 0,14375 |
ILArrGet 17,5 1,3125 |
8,4375 |
0,11625 0,10625 |
IWArrGet 18,75 1,25 |
8,9375 |
0,1625 0,1625 |
l L ZuwAdd 20 0,75 |
8,5625 |
0,0625 0,0625 |
IL ZuwMul 25 3,5625 |
10,6875 |
0,4375 0,23125 |
  |
||
MegaST I/C : Mega ST 4 interpretiert oder compilert ohne FPU-Nutzung ProcCall MegaST CF : Mega ST 4 compiliert mst FPU-Nutzung (FPU als EA-Device) AtariTT 1 : Atari TT 8 interpretiert (tetls mit FPU siehe oben) !t Mu! AtariTT CF : Atari TT 8 compiliert mit Coprozessor-FPU-Nutzung IW M ul ILAdd MegaST 1 : Mega ST 4 interpretiert IL ArrGet MegaST C : Mega ST 4 compiliert IW ArrGet AtariTT 1 : Atari TT 8 interpretiert IL ZuwAdd AtariTT C : Atari TT 8 compiliert ohne spez. 68020-Befehie AtariTT C2 : Atari TT 8 compiliert mit spez. 68020-Befehle IL ZuwMul
|
|
Die verwendenten Formeln sind:
FORMEL1:
TAN ( TAN ( TAN ( TAN ( TAN ( A# ))))) (zeigt Trigonometrie und Registernutzung)
FORMEL2:
A# A A# A A# A A# A A# A A# A A# A A# (zeigt LN, EXP und Registernutzung)
FORMEL3:
A# + A# * ( A# + A# / ( B# + C# ))
(zeigt 19stellige Grundrechenarten und Registernutzung)
Der Integerbenchmark testet in erster Linie integer Berechnungen bzw. typische Programmtätigkeiten wie z.B. Prozeduraufrufe. Auch hier sind einige Punkte auffällig:
Generell stellt man auf Atari TT noch folgendes fest:
Laufen die Programme mit eingeschaltetem Cache, was bei unseren Tests immer der Fall war, so kann es teilweise zu verfälschten Ergebnissen kommen. Schon wenn die Programme nicht exakt gleich lang sind und sich deshalb unterschiedliche Adresslagen ergeben, kann sich dies nachteilig auf das Zeitverhalten auswirken. Der Cache in besonders günstigen Fällen fast nie oder selten nachgefüllt werden, in ungüstigeren Fällen ständig. Das kann Abweichungen um bis zu 10 Prozent einbringen.
Außerdem berücksichtigen die Test in keiner Form die Bildschirmausgabe, die ja bekanntlich immer im ST-kompatiblen Speicher- und daher naturgemäß etwas langsamer abgewickelt werden muß. Hier sind die zu erwartenden Unterschiede zwischen Atari ST und Atari TT also nicht so groß, wie die Benchmarks es zeigen.