Einzelnen Beitrag anzeigen
  #82  
Alt 11.07.2011, 01:30
Hartmut Hartmut ist offline
Lebende Foren Legende
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 61
Land:
Beiträge: 2.350
Abgegebene Danke: 3.497
Erhielt 1.979 Danke für 1.048 Beiträge
Aktivitäten Langlebigkeit
19/20 15/20
Heute Beiträge
3/3 sssss2350
AW: Neue Emulationen für den Revelation und weitere Updates

 Zitat von EberlW Beitrag anzeigen

Ich verstehe zwar nicht, warum ein 68020 den gleichen Programmcode doppelt so schnell wie ein 68000 bei gleicher Taktung abarbeiten kann, nehme es aber einfach mal als gegeben hin.
Das erklärt sich daraus dass der 68000 zwar eigentlich ein 32bit-Prozessor ist, also als 32bit-Prozessor programmiert werden kann, aber intern nur eine 16bit ALU und einen 16bit Datenbus besitzt. Der 68020 besitzt aber eine echte 32bit ALU und einen 32bit Datenbus. Daher kommt es zur Geschwindigkeitsverdopplung.

Programme die auf einem 68000 geschrieben wurden, laufen in der Regel auch auf den höherwertigen Prozessoren. Die Abwärtskompatibilität ist zwar recht hoch, aber eben leider nicht 100 %. So hat der 68020 zum Beispiel eine aufwändigere Adressierungseinheit bzw. einen aufwändigeren Adressgenerator. Durch diese wurden dann Programmiertechniken wie die sogenannte direkt indizierte Adressierung möglich. Programme, die diesen Code verwenden sind nicht abwärtskompatibel.

Für einen Emulator bedeutet dieser Umstand allerdings dass er weit mehr Rechenarbeit leisten muss, um diese zusätzlichen Features zu emulieren. Selbst wenn diese Features im Programm nicht verwendet werden, so werden sie doch vom Emulator emuliert, wenn ein 68020 die Grundlage der Emulation darstellt.

Noch schwieriger wird es, wenn ein 68030 emuliert werden muss, da dieser eine interne PMMU und einen zusätzlichen Datencache besitzt. (beim 68020 musste die MMU noch separat erworben werden). Auch wenn die Schachprogramme diese PMMU eventuell nicht nutzen, so wird sie doch vom Prozessor verwaltet und er "lauscht" immer wieder ob nicht doch entsprechende Befehle kommen, die er eventuell verarbeiten muss.

Gehen wir mal davon aus, dass ein Schachprogramm NUR für den 68030 herausgekommen ist. Dann kann man davon ausgehen dass es auch für diesen Prozessor modifiziert wurde. Ansonsten hätte es keinen Geschwindigkeitsvorteil gegeben, da die Prozessoren als solches bei gleicher Taktfrequenz weitestgehend identisch sind. Die einzige Möglichkeit bei einem 68030er bei gleicher Taktfrequenz einen Geschwindigkeitsvorteil zu erzielen, besteht darin, das zusätzliche Bus-Interface zu nutzen, welches Speicherzugriffe um ca. 1/3 beschleunigt. Hierfür sind aber spezielle Befehle notwendig, welche die älteren Prozessoren nicht besitzen. Ansonsten ergibt sich eine Geschwindigkeitssteigerung nur durch eine höhere Taktung (wobei der 030er etwas höher getaktet werden konnte als der 020er)

Aber auch wenn ein Programm nur auf dem 68020 herauskam wurde es vermutlich für diesen Prozessor optimiert. Dann hat man bei der Emulation natürlich größere Schwierigkeiten, als wenn man nur den 68000 hernehmen muss, da ja wie gesagt die komplette Architektur (also auch die Teile, die das Programm vielleicht gar nicht wirklich nutzt) nachgebildet werden muss.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten