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 - 57 - Prof. Dipl.-Ing. Komar<br />

Anhang: Gleitpunktrechnung mit der Floating-Point-Einheit FPU ( Coprozessor 80x87 )<br />

Ab dem 80486 verfügen die INTEL-Prozessoren über eine On-Chip-FPU. Bis dahin mußten die Gleitpunktoperationen<br />

entweder mit einem zusätzlichen Arithmetik-Coprozessor 80x87 oder durch softwaremäßige<br />

Emulation (viel Speicherplatz, hoher Rechenzeitverbrauch, langsam !!! ) unterstützt werden.<br />

Die 80x87-Coprozessoren hängen parallel zum jeweiligen Prozessor am Systembus und führen die für sie<br />

bestimmten Befehle aus.<br />

Beim Einsatz von Coprozessoren wird die zeitliche Synchronisation zwischen FPU und CPU mit Hilfe der<br />

WAIT-Befehle ausgeführt, wobei die WAIT-Codes weitgehend automatisch von den jeweiligen Assemblern<br />

erzeugt werden. Durch die Integration der FPU ( ab Prozessor 80486) wird die Synchronisation zwischen IU<br />

( Integer Unit ) und der FPU durch den Prozessor automatisch durchgeführt und dadurch ist der spezielle<br />

Synchronisationscode FWAIT = 9B h vor den Floating-Point-Befehlen nicht mehr nötig und wird auch von den<br />

Assemblern nicht mehr generiert.<br />

Für den Assemblerprogrammierer erscheint die FPU nur als eine Erweiterung des Programmiermodells, denn<br />

um die Kommunikation und Synchronisation zwischen CPU und FPU muß er sich n icht kümmern. Die FPU<br />

erscheint wie ein zusätzlicher Satz von Registern und Datentypen mit einer Menge von zusätzlichen Befehlen,<br />

die auf diesen Registern operieren.<br />

Die CPU identifiziert die Befehle für die FPU durch das Bitmuster 1 1011 b ( 1Bh -> ESC ) das den FPU-<br />

Numerik-Befehlen vorangestellt ist ( ESCAPE-Befehle oder ESC-Befehle).<br />

Die Berechnung und Ausgabe der Datenadressen übernimmt die CPU und den Rest des Befehles führt die FPU<br />

aus. Die von der FPU zu verarbeitenden Zahlen stehen entweder im Arbeitsspeicher oder in den Stapelregistern<br />

der FPU. Eine Verbindung zwischen den Registern der beiden Prozessoren kann nur über den Arbeitsspeicher<br />

hergestellt werden.<br />

Die FPU rechnet intern nur mit dem einheitlichen 80-Bit-Datenformat, das dem Datenformat TEMPORARY<br />

REAL (64-Bit-Mantisse, 15-Bit-Charakteristik, 1 Bit Vorzeichen ) entspricht. Da alle arithmetischen<br />

Operationen intern nur in diesem Format durchgeführt werden, muß bei der Übertragung der Operanden von und<br />

zum Arbeitsspeicher eine Formatumwandlung in dieses interne FPU-Datenformat durchgeführt werden.<br />

Numerik-Register<br />

Der FPU-Register-Stapel (Stack) besteht aus acht 80-Bit-Registern im Temporary -Real-Format mit 1Bit-Vor -<br />

zeichen, 15 Bit Charakteristik und 64 Bit-Mantisse. Der Push-Down Stack adressiert die 8 Register zyklisch.<br />

Tag-Feld Datenfeld (80-Bit – Temporary Real-Format )<br />

Vorz. Exponent Mantisse<br />

1 0 79 78 64 63 0<br />

R7 ST(2)<br />

R6 ST(1)<br />

R5 ST(0) = ST<br />

_ _<br />

_ _<br />

R2 ST(5)<br />

R1 ST(4)<br />

R0 ST(3)<br />

FPU–Register-Stapel<br />

15 0<br />

Steuerregister Environment (Umgebung , 14 Byte für 8087/80287 )<br />

28 Byte ab 80387 im 32Bit-Modus )<br />

Statusregister<br />

Tag-Wort<br />

Befehlszähler Befehlszeiger<br />

Datenzeiger Operandenzeiger

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!