18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!