Hallo Micha,
AFAIK basieren die Emulationen auf dem Motorola 68000.
Dieser hat nur intern 32bit, nutzt aber nach außen nur 24bit:
Quelle und nähere technische Details:
https://www.cs.mcgill.ca/~cs573/fall...c273/lecture9/
Vielleicht ist es mühsamer die Register mit "24bit-Happen" zu füttern als es intern wieder selbst auszurechnen.
Das erklärt jedoch nicht die Unterschiede bei den echten 32bit CPUs.
MOVE-Befehle haben ein Suffix, wie viele bit auf einmal transportiert werden:
B = 8bit
W = 16bit
L = 32bit
Die Frage, die sich mir stellt, ist, ob der Programmcode bei den 32bit-CPUs für 32bit optimiert wurde, also Verwendung von:
MOVE.L
Die internen Rechenbefehle (ADD, SUB, etc.) können auf den Registern auch beim 68000er in einem Zyklus ausgeführt werden.
Daher vermute ich, dass einfach der gleiche Assemblercode wie beim 68000er verwendet wurde und dieser viele MOVE.B-Befehle enthält, d.h. wir schaufeln immer noch mit 16-bit Eimern die Daten hin und her.
Eine Takterhöhung sagt nur aus, dass schneller mit 16bit-Eimern geschaufelt wird.
Wie gesagt, das ist nur eine Vermutung. Daher würden mich eure Kommentare interessieren.
Viele Grüße
Markus
Ergänzung: Eine andere Quelle berichtet über einen 16bit-Bus, beschreibt aber die Operationen auf dem Speicher in Kurzform:
Quelle:
https://electronics.stackexchange.co...on-32-bit-data
Außerdem müssen wir auch bedenken, dass der Registerspeicher schneller ist als der Hauptspeicher.