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 - 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