MIPS: R-Type und I-Type bei nur 8 Registern

WirJun

Cadet 3rd Year
Registriert
Aug. 2014
Beiträge
32
Hallo Community,

Ich habe in der letzten Zeit ein wenig über MIPS Architekturen nachgedacht und dabei habe ich mir die Frage gestellt, was passieren würde, wenn die MIPS ISA nur noch 8 oder 16 Register hat? Wie würde sich das auf die Bitfelder einer Instruktion im R-Format und I-Format auswirken und wie viele Bits werden für die jeweiligen Instruktionen dann noch benötigt?

Ich habe schon ein bisschen recherchiert, bin ab auf keine für mich logische Lösung gekommen.

Vielleicht könnt ihr mir helfen.

LG
 
Ich denke nicht, dass sich da viel ändern würde. Dann sind eben ein paar Bits ungenutzt. Ggf. könnte man zusätzliche Optionen einbauen mit den zusätzlichen Bits, aber dazu müsste man einiges ändern. Die Instruktionen bleiben aber 32 Bit lang, da sie eh den Speicher im RAM brauchen (4 Byte).
 
Ich habe jetzt nochmals einen Blick in die Mips ISA geworfen und mir ist dabei aufgefallen, dass in MIPS 32 Register vorhanden sind mit jeweils 32 Bits (4 Bytes). Wenn ich jetzt also die Register auf 8 beschränke, brauche ich dann Register mit 128 Bits um die gleiche Menge an Daten zu verarbeiten? Wäre eine 128 Bit Rechnerarchitektur überhaupt möglich?
 
Wenn irgendeine Spezifikation irgendeinen Wert für irgendwas vorschreibt, erfüllt eine abweichende Implementierung die Spezifikation nicht mehr und die Frage, ob das möglich wäre ist völlig bedeutungslos.
Man kann aus dem lateinischen Alphabet das Q streichen, aber dann ist es kein lateinisches Alphabet mehr.
Man kann einen Prozessor mit beliebig vielen Registern in beliebiger Größe bauen, der sinnvolle Arbeit verrichtet, er wird dann aber kein MIPS oder sonstiger Prozessor mehr sein.
 
Grafikkarten haben sogar mindestens 128-Bit-Register (4x 4 Byte, z.B. sinnvoll für Float-Vektoren), wenn ich mich nicht irre.

Die Register können auch 1479 Bit breit sein, ob das Sinn macht, ist aber eine andere Frage. Mehr als 64 Bit wird für normale Anwendungen nicht nötig sein, man kann genug RAM nutzen und die Berechnungen sind genau genug und haben einen ausreichenden Wertebereich (etwa von 10^-307 bis 10^308, dazu 0 und das Ganze nochmal negativ bei double).

Wenn du die Registeranzahl änderst, musst du die Breite der Register nicht ändern, dafür aber einige andere Dinge (z.B. die Adressierung der Register).
 
Zuletzt bearbeitet:
Zurück
Oben