Hallo,
Stephan Goetter schrieb:
Bei 64Bit-Code sind die Befehlswvrter(Opcodes) meist auch 64Bit lang...
Nicht unbedingt, wenn man nur den Befehl, die beteiligten Register und evtl. noch einen kleinen Offset fuer die Adressierung unterbringen will, reichen schon 32 Bit pro Befehl.
Das wird aber bei Risc nicht gemacht, wie du selber festgestellt hast. Generell gehts bei Risc um einfachheit und nicht um Geschick.
Doch, man macht sowas (z.B. bei Alpha - ich habe nachgeschaut). Der kann zwei Befehle pro Taktzyklus starten, und da passt das sogar mit dem Befehlslesezyklus zusammen (64Bit = 2 Befehle). Sooo viele verschiedene Befehle, dass man 64 Bit brauchen wuerde, gibt es nun auch wieder nicht. Fuer Alpha (32 Register): ein Zielregister (5Bit), zwei Quellregister (2*5Bit) oder Quellregister und Konstante (5+8Bit) brauchen in der Kodierung 15 Bit (r op r -> r) bzw. 18 Bit (r op n -> r), da bleiben immer noch 14 Bit zur Kodierung der Operation uebrig. Dann denke Dir erstmal 16384 verschiedene (und relativ simple) Moeglichkeiten aus, zwei Werte zu einem dritten zu verknuepfen!
Gruss
Holger