math coprocessor
DESCRIPTION
Math Coprocessor. Also called F loating P oint U nit FPU. Outline. Math Coprocessor Operation Math Coprocessor Structure Data Types Representation error Instructions. Math Coprocessor Operation. Shares the same Data, Address and Control BUS as the main processor - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/1.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Math Coprocessor
Also called Floating Point Unit
FPU
![Page 2: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/2.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Outline
Math Coprocessor Operation Math Coprocessor Structure Data Types Representation error Instructions
![Page 3: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/3.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Math Coprocessor Operation
Shares the same Data, Address and Control BUS as the main processor
Two different chips for old processors On the same silicon die starting with 486DX Instructions preceded by an ESC sequence Operates in parallel with main processor Coprocessor may overtake BUS for longer
periods if more data is needed
![Page 4: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/4.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Math Coprocessor Operation
Coprocessor has no access to registers But can use registers for addressing All addressing modes are available except
immediate addressing Uses special synchronization signals to
cooperate Instructions take tens to hundreds of cycles
to complete
![Page 5: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/5.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Math Coprocessor Structure
Register Stack Control Register Status Register Tag Register Instruction Pointer Data Pointer Execution Unit EU
Control
Register STACK 8x80 bit registers
ExecutionUnit
![Page 6: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/6.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Register Stack
![Page 7: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/7.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Control Register
![Page 8: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/8.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Status Register
![Page 9: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/9.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Meaning of C3C2C1C0 bits after compare instructions
No Conditional Jumps to test FPU compare results Must copy Status Register in to Main Proc registers
and examine with x86 instructions
![Page 10: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/10.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Tag Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TAG7 TAG6 TAG5 TAG4 TAG3 TAG2 TAG1 TAG0
TAG Values meaning
00 Valid
01 Zero
10 Special, NAN,∞
11 Empty
![Page 11: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/11.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Pointers
Instruction Pointer a pointer to the instruction that caused an exception
Data Pointer a pointer to the data used by the instruction that caused an exception
![Page 12: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/12.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Number Representation
Integer numbers in C2
Integer numbers in Packed Decimal Real Numbers in IEEE 754/854 standard
format All these representations are ONLY in
memory Internally ALL numbers are represented on
80 bits as temporary real’s
![Page 13: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/13.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Integer Data Types Word Integer DW 16 bit C2 representation
Short Integer DD 32 bit C2 representation
Long Integer DQ 64 bit C2 representation Packed Decimal DT 80 bit Value & Sign
![Page 14: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/14.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Real Number RepresentationNormalized Form
(-1)S * 1.mantissa *2 (exponent- Bias)
Bias = 07FH for short real;127dBias = 03FFH for long real;1023dBias = 03FFFh for temp real;
16383d
![Page 15: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/15.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Short Real 32 bitsDouble Word DD
![Page 16: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/16.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Long Real 64 bitsQuad Word DQ
![Page 17: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/17.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Temporary Real 80 bits Ten word DT
![Page 18: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/18.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Example of real number representation
fl1 dd 1.0
0000 3F800000
0011 1111 1000 0000 0000 0000 0000 0000Fl2 dd 2.0
0004 40000000
0100 0000 0000 0000 0000 0000 0000 0000fl1_3 dd -1.3; actually -1,299995
0008 BFA66666
1011 1111 1010 0110 0110 0110 0110 0110
![Page 19: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/19.jpg)
04/20/23 TUC-N dr. Emil CEBUC
Representation error
Unavoidable May be very small Must take account when designing numerical
algorithm for complex computation Can be controlled with rounding policy from
Control Word
![Page 20: Math Coprocessor](https://reader033.vdocuments.net/reader033/viewer/2022061417/56813998550346895da13266/html5/thumbnails/20.jpg)
04/20/23 TUC-N dr. Emil CEBUC
FPU Instructions
Data movement Data conversions Arithmetic Instructions Compare Instructions Constant Instructions Transcendental Instructions Miscellaneous Instructions