6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
6. Funktionseinheiten eines Computers / Mikrocomputers
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Rechnergrundlagen Teil 2 - 58 - Prof. Dipl.-Ing. Komar<br />
Die Adressierung der Stack-Register übernimmt der sogn. Numerik-Stackpointer, der immer auf die<br />
augenblickliche Spitze ( Top, ST = ST(0) ) des Stapels zeigt. Die 3 Bit des Numerik-Stackpointers befinden<br />
sich im FPU-Statusregister an den Bitpositionen 11-13 und kennzeichnen mit ihrem Wert ein Rx-Register als<br />
das augenblickliche Stack-Top-Register ST(0) = ST.<br />
Die 8 Stapelregister R0-R7 bilden einen "Ring". Bei einem Befehl, der mit einem "PUSH" verbunden ist, rückt<br />
das unterste Register an die oberste Stelle und wird mit einem neuen Wert überschrieben. Bei einem "POP"-<br />
Befehl rückt das oberste Register an die unterste Stelle und wird als leer gekennzeichnet.<br />
FPU-Statuswort<br />
stellt den augenblicklichen Betriebszustand der FPU dar.<br />
15 14 7 6 5 4 3 2 1 0<br />
B C3 ST C2 C1 C0 ES SF PE UE OE ZE DE IE<br />
B: Busy-Bit 0 = FPU nicht aktiv 1 = aktiv<br />
C3...C0 Codition-Bits , abhängig vom Ergebnis arithmetischer Operationen, werden für bedingte Programm-<br />
verzweigungen genutzt. Zwei dieser Bits entsprechen dem Carry- und Zero-Flag des<br />
CPU-Statuswortes und befinden sich sogar in der gleichen Bitposition<br />
ST-Bits (13-11) zeigen , welches der acht Numerik-Stack-Register das augenblickliche Top-Stack-Register<br />
ST = ST(0) ist ( Beispiel: Bit 13 = 1, Bit 12 = 0, Bit 11 = 1 � R5 ist ST(0) )<br />
Bits 7... 0 sind die sogn. Exception-Flags, die einen Fehler bei der Ausführung von Floating-Point-Operationen<br />
durch 1 signalisieren<br />
PE Precision-Exception -> die Mantissen-Genauigkeit der Ergebnis -Ausgabe reicht für eine exakte<br />
Darstellung nicht aus und wird gerundet<br />
UE Underflow-Exception -> der Exponent des Ergebnisses ist zu klein, um im gewünschten Real-Format<br />
dargestellt werden zu können<br />
OE Overflow-Exception -> der Exponent des Ergebnisses ist zu groß, um im gewünschten Real-Format<br />
dargestellt werden zu können.<br />
ZE Zerodivide-Exception-> Versuch, einen Nicht-Null-Operanden durch 0 zu teilen, wird angezeigt.<br />
DE Denormalized Operand-Exception -> Versuch, einen Denormal-Operanden zu verarbeiten, wird angezeigt.<br />
IE Invalid Operation-Exception-> zeigt Fehler bei Numerik-Stack- oder bei arithmetischen Operationen an<br />
Stack Fault -Flag SF = 1 -> Numerik-Stack-Over- oder Under-flow<br />
Condition Bit C1 = 1 -> Numerik-Stack-Overflow - Schreiben in nicht leeres<br />
Stackregister<br />
C1 = 0 ->Numerik-Stack-Underflow - Lesen aus leerem Stack-<br />
Register<br />
SF = 0 -> ungültige arithmetische Operation z.B. Division 0/0<br />
ES Error Summary Status -> zeigt das Auftreten einer Exception und einer daraus resultierenden Interrupt-<br />
anforderung an