Alle Befehle sind 32 Bit lang und werden später noch ausführlich
beschrieben.
Von Mips R2000 übernommen.
Das Register 0 hat hierbei (wieder bei der Mips R2000 abgeguckt) den festen Wert 0.
Es gibt Allzweckregister und Spezialregister zur Steuerung von Multiprozessor / Multiuser / Multitsking umgebungen und zur Steuerung des Prozessors und zur Zugriffssicherung auf Assemblerebene.
Soll heißen es werden variable Befehlslängen unterstützt, die
in 2 Bits der Instruktion angegeben werden können.
Flags
|
Size in Bytes
|
Width in Bits
|
---|---|---|
00
|
1
|
8
|
01
|
2
|
16
|
10
|
4
|
32
|
11
|
8
|
64
|
Ihr habt richtig gelesen, die F-CPU hat keinen Stackpointer, da man ja jedes beliebige Register zum Speicherzugriff nutzen kann und sich daher einen Stackpointer als Register anlegen lässt.
Alte RISC Regel besagt ein Register ist entweder null oder nicht, auf diese
Entscheidung bezieht sich der Unterschied zwischen einer Branch oder Conditional
(arithm. /log.) Anweisung.
Registerinhalte werden via Cache (write back) geändert, also gibt es keine
Inkonsistenzen, die ein CCR für Prozesswechsel notwendig erscheinen lassen.
Um großen privaten linearen virtuellen Speicher für alle Anwendungen zur Verfügung zu stellen. Seitenbezogene Sicherung ist ausserdem der einfachste Weg meherere Prozesse getrennt auf gemeinsamen Speicher zugreifen zu lassen - > Multitaskingunterstüzung.
Die Seiten können verschiedenste Größen haben z.B. 4KB, 32KB,
256KB und 2048KB, um die Anzahl der Seitentabellen in Grenzen zu halten (um
malloc zu beschleunigen).
Um Speicher jenseits der 2MB Grenze zu verwalten werden einige Seitentabellen
(2er Potenzen z.B. für 128 MB Ram sind das 64 x 2MB Seitentabellen) benötigt.
Für zwei solch grossen Felder ist Platz auf dem Chip vorgesehen (Basisadresse
und Größe).
Die Seiten könne für den Transfer zur Festplatte on the fly komprimiert
werden (Besonders gut für große Seiten), was ebenfalls den Bus entlastet.
Die Cache-Bits (dirty und valid) werden für die frühe Implementierung
noch benötigt, werden aber später nicht mehr benötigt, da das
OS die für die Multi-CPU Systeme besser regelt (wird aber trotzdem beibehalten).
Die Internen TLBs werden durch die Software geregelt und verwenden reservierte
Speziealregister (kein RAM).
Dadurch, das man die Caching-Strategie dem OS überlässt, ist sie
jederzeit änderbar !!