Title: ????
1????µ?t??? ??a ?p?????st??
- ?e?t?????e? (p???e??) se a?e?a????
- ???s?es? ?a? afa??es?
- ????ap?as?asµ?? ?a? d?a??es?
- ?e???sµ?? t?? ?pe??e???s??
- ??a?µat???? a???µ?? ????t?? ?p?d?ast????
(floating-point) - ??apa??stas? ?a? ?e?t?????e? (p???e??)
2????a?a p??s?es?
- ?pe??e???s? (overflow) a? t? ap?t??esµa e??a?
e?t?? t?? e????? t?? t?µ?? - ???s?es? ete??s?µ?? te?est???, ??? ?pe??e???s?
- ???s?es? ?et???? te?est???
- ?pe??e???s? a? t? p??s?µ? t?? ap?te??sµat?? e??a?
1 - ???s?es? a???t???? te?est???
- ?pe??e???s? a? t? p??s?µ? t?? ap?te??sµat?? e??a?
0
3????a?a afa??es?
- ???s?es? t?? a?t???t?? t?? de?te??? te?est???
- ?a??de??µa 7 6 7 (6)
- 7 0000 0000 0000 01116 1111 1111 1111
10101 0000 0000 0000 0001 - ?pe??e???s? a? t? ap?t??esµa e??a? e?t?? t??
e????? t?? t?µ?? - ?fa??es? d?? ?et???? ? d?? a???t????, ???
?pe??e???s? - ?fa??es? ?et???? ap? a???t??? te?est??
- ?pe??e???s? a? t? p??s?µ? t?? ap?te??sµat?? e??a?
0 - ?fa??es? a???t???? ap? ?et??? te?est??
- ?pe??e???s? a? t? p??s?µ? t?? ap?te??sµat?? e??a?
1
4?e???sµ?? t?? ?pe??e???s??
- ?e????? ???sse? (p.?., C) a?????? t?? ?pe??e???s?
- ???s?µ?p????? t?? e?t???? t?? MIPS addu, addui,
subu - ???e? ???sse? (p.?., Ada, Fortran) apa?t??? t?
d?µ??????a µ?a? e?a??es?? - ???s?µ?p????? t?? e?t???? t?? MIPS add, addi, sub
- St?? ?pe??e???s?, ?a?e?ta? ? ?e???st?? e?a???se??
- ?p????e?s? t?? PC st? µet??t? p?????µµat??
e?a???se?? (exception program counter EPC) - ??µa st?? p???a????sµ??? d?e????s? t?? ?e???st?
- ? e?t??? mfc0 (move from coprocessor reg) µp??e?
?a a?a?t?se? t?? t?µ? t?? EPC, ??a ?a ???e?
ep?st??f? µet? t? d?????t??? e????e?a
5????µ?t??? ??a p???µ?sa
- ? epe?e??as?a ??af???? ?a? p???µ?s?? epe?e??e? se
d?a??sµata t?? 8 ?a? 16 bit - ???s? e??? a????st? t?? 64 bit, µe d?aµe??sµ???
a??s?da ??at??µ???? - ?pe?e??e? se d?a??sµata 88 bit, 416 bit, ? 232
bit - SIMD (single-instruction, multiple-data)
- ?e?t?????e? ???esµ?? (saturation)
- Se ?pe??e???s?, t? ap?t??esµa e??a? ? µe?a??te??
t?µ? p?? µp??e? ?a a?apa?asta?e? - s?????s? µe t?? a???µ?t??? ?p????p?? (modulo
arithmetic) se s?µp????µa ?? p??? 2 - p.?., ?a??d?sµ?? (clipping) st?? epe?e??as?a
????, ???esµ?? st?? epe?e??as?a ß??te?
6????ap?as?asµ??
- ?e????µe µe t?? p??/sµ? µe????? µ?????
p???ap?as?ast???
p???ap?as?ast??
????µe??
?? µ???? t?? ????µ???? e??a? t? ?????sµa t??
µ???? t?? te?est???
7????? p???ap?as?asµ??
?????? 0
8?e?t?st?p???µ???? p???ap?as?ast??
- ??t??es? ß?µ?t?? pa??????a p??s?es?/???s??s?
- ??a? ?????? a?? p??s?es? µe????? ????µ????
- ???a? e?t??e?, a? ? s????t?ta eµf???s?? t??
p???ap?as?asµ?? e??a? ?aµ???
9?a??te??? p???ap?as?ast??
- ???s?µ?p??e? p?????? a????st??
- S?µß?ßasµ?? ??st???/ap?d?s??
- ?p??e? ?a ???p????e? µe d????te?s? (pipeline)
- ?????? p???ap?as?asµ?? e?te????ta? pa??????a
10????ap?as?asµ?? st?? MIPS
- ??? ?ata????t?? t?? 32 bit ??a t? ????µe??
- HI ta pe??ss?te?? s?µa?t??? 32 bit
- LO ta ????te?? s?µa?t??? 32 bit
- ??t????
- mult rs, rt / multu rs, rt
- ????µe?? t?? 64 bit st??? HI/LO
- mfhi rd / mflo rd
- ?etaf??? ap? (move from) t?? HI/LO st?? rd
- ?p????µe ?a e??????µe t? t?µ? t?? HI ??a ?a d??µe
a? t? ????µe?? ?epe??? ta 32 bit - mul rd, rs, rt
- ?a ????te?? s?µa?t??? 32 bit t?? ????µ???? gt rd
11??a??es?
- ??e???? ??a µ?de???? d?a???t?
- ??a??es? µe????? µ?????
- ?? d?a???t?? ap? ta bit t?? d?a??et???
- 1 bit st? p?????, afa??es?
- ??????
- 0 bit st? p?????, ?at?ßasµa t?? ep?µe??? bit t??
d?a??et??? - ??a??es? µe epa?af??? (restoring division)
- ???e t?? afa??es? ?a? a? t? ?p????p? ???e? lt 0,
p??s?ese p?s? t? d?a???t? - ???s?µasµ??? d?a??es?
- ???e t? d?a??es? µe t?? ap???te? t?µ??
- ???µ?se t? p??s?µ? t?? p?????? ?a? t?? ?p????p??
?p?? apa?te?ta?
p?????
d?a??et???
1001 1000 1001010 -1000 10
101 1010 -1000 10
d?a???t??
?p????p?
te?est??? t?? n bit d????? p????? ?a? ?p????p?
t?? n bit
12????? d?a??es??
?????? ? d?a???t?? st? a??ste?? µ?s?
?????? pe????e? t? d?a??et??
13?e?t?st?p???µ???? d?a???t??
- ??a? ?????? ??a ???e afa??es? µe????? ?p????p??
- ?????e? p??? µe p???ap?as?ast?!
- ?? ?d?? ????? µp??e? ?a ???s?µ?p????e? ?a? ??a
t?? d?? p???e??
14?a??te?? d?a??es?
- ?e? µp??e? ?a ???s?µ?p????e? pa??????? ????? ?p??
st?? p???ap?as?ast? - ? afa??es? e?te?e?ta? ?p? s??????, a?????a µe t?
p??s?µ? t?? ?p????p?? - ?a??te??? d?a???te? (p.?. d?a??es? SRT)
d?µ???????? p???? bit t?? p?????? se ???e ß?µa - ?a? p??? apa?t???ta? p???? ß?µata
15??a??es? st? MIPS
- ???s? t?? ?ata????t?? HI/LO ??a t? ap?t??esµa
- HI ?p????p? 32 bit
- LO p????? 32 bit
- ??t????
- div rs, rt / divu rs, rt
- ??? ??e???? ??a ?pe??e???s? ? d?a??es? µe t? 0
- ?? ????sµ??? p??pe? ?a e?te?e? t??? e??????? a?
a?t? apa?te?ta? - ???s? t?? mfhi, mflo ??a p??sp??as? t??
ap?te??sµat??
16????t? ?p?d?ast???
- ??apa??stas? ??a µ? a?e?a???? a???µ???
- ?e???aµß??e? ?a? p??? µ?????? ?a? p??? µe??????
a???µ??? - ?p?? ? ep?st?µ????? s?µe????af?a (scientific
notation) - 2.34 1056
- 0.002 104
- 987.02 109
- Se d?ad???
- 1.xxxxxxx2 2yyyy
- ?? t?p?? float ?a? double t?? C
?a??????p???µ????
µ? ?a??????p???µ????
17???t?p? ????t?? ?p?d?ast????
- ????eta? ap? t? IEEE Std 754-1985
- ??apt?????e ?? ??s? st?? ap????s? t??
a?apa?ast?se?? - ??t?µata f???t?t?ta? (portability) ??a t?? ??d??a
ep?st?µ?????? efa?µ???? - ????? e??a? s?ed?? ?????µe???? ap?de?t?
- ??? a?apa?ast?se?? ????t?? ?p?d?ast???? (floating
point) - ?p?? a???ße?a single precision (32 bit)
- ??p?? a???ße?a double precision (64 bit)
18???f? ????t?? ?p?d?ast???? IEEE
single 8 bitdouble 11 bit
single 23 bitdouble 52 bit
S
????t??
???sµa
-
-
????s?)
(????t??
S
2
???sµa)
(1
1)
(
x
- ????t?? (exponent) ???sµa (fraction)
- S bit p??s?µ?? (0 ? µ? a???t????, 1 ? a???t????)
- ?a??????p???s? t?? s?µa?t???? (significand) 1.0
significand lt 2.0 - ??e? p??ta ??a a????? bit 1 p??? t?? ?p?d?ast???,
?a? s??ep?? de ??e???eta? ??t? a?apa??stas? t??
(???µµ??? bit) - ?? s?µa?t??? (significand) e??a? t? ???sµa
(fraction) µa?? µe t? ???µµ??? 1 - ????t?? a?apa??stas? µe ?p??ßas? (excess)
p?a?µat???? e???t?? p???s? (bias) - ?????ta? ?t? ? e???t?? e??a? ap??s?µ??
- ?p?? a???ße?a ????s? 127 ??p?? a???ße?a
????s? 1023
19????? ap??? a???ße?a?
- ?? e???te? 00000000 ?a? 11111111 desµe???ta?
- ?????te?? t?µ?
- ????t?? 00000001? p?a?µat???? e???t?? 1 127
126 - ???sµa 00000 ? s?µa?t??? 1.0
- 1.0 2126 1.2 1038
- ?e?a??te?? t?µ?
- ????t?? 11111110? p?a?µat???? e???t?? 254
127 127 - ???sµa 11111 ? s?µa?t??? 2.0
- 2.0 2127 3.4 1038
20????? d?p??? a???ße?a?
- ?? e???te? 000000 ?a? 111111 desµe???ta?
- ?????te?? t?µ?
- ????t?? 00000000001? p?a?µat???? 1 1023
1022 - ???sµa 00000 ? s?µa?t??? 1.0
- 1.0 21022 2.2 10308
- ?e?a??te?? t?µ?
- ????t?? 11111111110? p?a?µat???? e???t?? 2046
1023 1023 - ???sµa 11111 ? s?µa?t??? 2.0
- 2.0 21023 1.8 10308
21????ße?a ????t?? ?p?d?ast????
- S?et??? a???ße?a
- ??a ta bit t?? ???sµat?? e??a? s?µa?t???
- ?p?? pe??p?? 223
- ?s?d??aµ? µe 23 log102 23 0.3 6 de?ad???
??f?a a???ße?a? - ??p?? pe??p?? 252
- ?s?d??aµ? µe 52 log102 52 0.3 16 de?ad???
??f?a a???ße?a?
22?a??de??µa ????t?? ?p?d?ast????
- ??apa??stas? t?? 0.75
- 0.75 (1)1 1.12 21
- S 1
- ???sµa 1000002
- ????t?? 1 ????s?
- ?p?? 1 127 126 011111102
- ??p?? 1 1023 1022 011111111102
- ?p?? 101111110100000
- ??p?? 101111111110100000
23?a??de??µa ????t?? ?p?d?ast????
- ????? a???µ?? a?apa??stata? ap? t?? ap???
a???ße?a? ????t?? ?p?d?ast???? a???µ? - 1100000010100000
- S 1
- ???sµa 01000002
- ????t?? 100000012 129
- x (1)1 (1 012) 2(129 127)
- (1) 1.25 22
- 5.0
24?? ?a??????p???µ???? (denormals)
- ????t?? 000...0 ? t? ???µµ??? bit e??a? 0
-
-
????s?
S
2
???sµa)
(0
1)
(
x
- ?????te??? ap? t??? ?a??????p???µ?????
- ep?t??p??? ßa?µ?a?a a?ep???e?a (gradual
underflow), µe µe???µe?? a???ße?a - Denormal µe ???sµa 000...0
-
-
????s?
S
0
.
0
2
0)
(0
1)
(
x
??? a?apa?ast?se?? t?? 0.0!
25?pe??a ?a? ??? a???µ?? (NaN)
- ????t?? 111...1, ???sµa 000...0
- ?pe???
- ?p??e? ?a ???s?µ?p????e? se ep?µe????
?p?????sµ???, ??a ap?f??? t?? a?????? t?? e??????
?pe??e???s?? - ????t?? 111...1, ???sµa ? 000...0
- ??? a???µ?? (Not-a-Number NaN)
- ?e???e? ??a ????? ? ap??sd????st? ap?t??esµa
- p.?., 0.0 / 0.0
- ?p??e? ?a ???s?µ?p????e? se ep?µe???? ?p?????sµ???
26???s?es? ????t?? ?p?d?ast????
- ??a de?ad??? pa??de??µa µe 4 ??f?a
- 9.999 101 1.610 101
- 1. ???????µµ?s? ?p?d?ast????
- ???s??s? a???µ?? µe t? µ????te?? e???t?
- 9.999 101 0.016 101
- 2. ???s?es? s?µa?t????
- 9.999 101 0.016 101 10.015 101
- 3. ?a??????p???s? ap?te??sµat?? ??e????
?pe??e???s??/a?ep???e?a? - 1.0015 102
- 4. St???????p???s? ?a? epa?a?a??????p???s? a?
e??a? apa?a?t?t? - 1.002 102
27???s?es? ????t?? ?p?d?ast????
- ???a ??a d?ad??? pa??de??µa µe 4 ??f?a
- 1.0002 21 1.1102 22 (0.5 0.4375)
- 1. ???????µµ?s? ?p?d?ast????
- ???s??s? a???µ?? µe t? µ????te?? e???t?
- 1.0002 21 0.1112 21
- 2. ???s?es? s?µa?t????
- 1.0002 21 0.1112 21 0.0012 21
- 3. ?a??????p???s? ap?te??sµat?? ?a? ??e????
?pe??e???s??/a?ep???e?a? - 1.0002 24, ????? ?pe??e???s?/a?ep???e?a
- 4. St???????p???s? ?a? epa?a?a??????p???s? a?
e??a? apa?a?t?t? - 1.0002 24 (?aµ?a a??a??) 0.0625
28????? a????st? ???. ?p?d.
- ???? p?? p???p???? ap? t?? a???a??? a????st?
- G?a ?a ???e? se ??a? ????? p??pe? ?a ??e? p???
µe???? d????e?a - ???? µe?a??te?? ap? t?? a???a?e? ?e?t?????e?
- ?? p?? a??? ????? ?a ep?ß????e ??e? t?? e?t????
- ? a????st?? ????t?? ?p?d?ast???? s?????? pa???e?
p?????? ??????? - ?p??e? ?a ?p???p????e? µe d????te?s?
29????? a????st? ???.?p?d.
??µa 1
??µa 2
??µa 3
??µa 4
30????ap?as?asµ?? ???.?p?d.
- ??a de?ad??? pa??de??µa µe 4 ??f?a
- 1.110 1010 9.200 105
- 1. ???s?es? e??et??
- G?a p???µ????? e???te?, afa??es? t?? p???s?? ap?
t? ?????sµa - ???? e???t?? 10 5 5
- 2. ????ap?as?asµ?? s?µa?t????
- 1.110 9.200 10.212 ? 10.212 105
- 3. ?a??????p???s? ap?te??sµat?? ??e????
?pe??e???s??/a?ep???e?a? - 1.0212 106
- 4. St???????p???s? ?a? epa?a?a??????p???s? a?
e??a? apa?a?t?t? - 1.021 106
- 5. ?a????sµ?? t?? p??s?µ?? t?? ap?te??sµat?? ap?
ta p??s?µa t?? te?est??? - 1.021 106
31????ap?as?asµ?? ???.?p?d.
- ???a ??a d?ad??? pa??de??µa µe 4 ??f?a
- 1.0002 21 1.1102 22 (0.5 0.4375)
- 1. ???s?es? e??et??
- ????? p???s? 1 2 3
- ?e p???s? (1 127) (2 127) 3 254
127 3 127 - 2. ????ap?as?asµ?? s?µa?t????
- 1.0002 1.1102 1.1102 ? 1.1102 23
- 3. ?a??????p???s? ap?te??sµat?? ?a? ??e????
?pe??e???s??/a?ep???e?a? - 1.1102 23 (?aµ?a a??a??) ?????
?pe??e???s?/a?ep???e?a - 4. St???????p???s? ?a? epa?a?a??????p???s? a?
e??a? apa?a?t?t? - 1.1102 23 (?aµ?a a??a??)
- 5. ?a????sµ?? p??s?µ?? ve ve ? ve
- 1.1102 23 0.21875
32????? a???µ?t???? ???. ?p?d.
- ? p???ap?as?ast?? ?? ??e? pa??µ??a p???p????t?ta
µe t?? a????st? ?? - ???? ???s?µ?p??e? p???ap?as?ast? ??a ta s?µa?t???
a?t? ??a a????st? - ?? ????? a???µ?t???? ???. ?p?d. s?????? e?te?e?
- ???s?es?, afa??es?, p???ap?as?asµ?, d?a??es?,
a?t?st??f?, tet?a?????? ???a - ?etat??p? ?? ? a???a??
- ?? ?e?t?????e? s?????? d?a????? p?????? ???????
- ?p????? ?a ?p???p??????? µe d????te?s?
33??t???? ?? st? MIPS
- ?? ????? ?? e??a? ? s??epe?e??ast?? (coprocessor)
1 - ?p?p??s?et?? epe?e??ast?? p?? epe?te??e? t??
a???te?t????? s?????? e?t???? - ?e????st?? ?ata????t?? ??
- 32 ap??? a???ße?a? f0, f1, f31
- ?e?????a ??a d?p?? a???ße?a f0/f1, f2/f3,
- ? ??d?s? 2 t?? s?????? e?t???? MIPS ?p?st????e?
32 64 bit ?ata????t?? ?? - ??t???? ?? epe?e????? µ??? se ?ata????t?? ??
- Ge???? ta p?????µµata de? e?te???? a???a?e?
p???e?? se ded?µ??a ??, ? a?t?st??fa - ?e??ss?te??? ?ata????t?? µe e????st? ep?d?as? st?
µ??e??? t?? ??d??a - ??t???? f??t?s?? ?a? ap????e?s?? ??
- lwc1, ldc1, swc1, sdc1
- p.?., ldc1 f8, 32(sp)
34??t???? ?? st?? MIPS
- ????µ?t??? ap??? a???ße?a?
- add.s, sub.s, mul.s, div.s
- p.?., add.s f0, f1, f6
- ????µ?t??? d?p??? a???ße?a?
- add.d, sub.d, mul.d, div.d
- p.?., mul.d f4, f4, f6
- S?????s? ap??? ?a? d?p??? a???ße?a?
- c.xx.s, c.xx.d (xx e??a? eq, lt, le, )
- ???e? t? t?µ? 1 ? 0 se bit ??d???? s??????? ??
(FP condition-code bit) - p.?. c.lt.s f3, f4
- ??a???d?s? se a???? ? ?e?d? ??d??? s??????? ??
- bc1t, bc1f
- p.?., bc1t TargetLabel
35?a?ade??µa ?? ßa?µ?? F se C
- ??d??a? C
- float f2c (float fahr) return
((5.0/9.0)(fahr - 32.0)) - fahr st?? f12, ap?t??esµa st?? f0, ?? sta?e???
st? ???? t?? ?a??????? µ??µ?? - ?eta???tt?sµ???? ??d??a? MIPS
- f2c lwc1 f16, const5(gp) lwc2 f18,
const9(gp) div.s f16, f16, f18 lwc1
f18, const32(gp) sub.s f18, f12, f18
mul.s f0, f16, f18 jr ra
36?a??de??µa ?? ????ap?as?asµ?? p??????
- X X Y Z
- ???? p??a?e? 32 32, µe st???e?a 64 bit d?p???
a???ße?a? - ??d??a? C
- void mm (double x, double y,
double z) int i, j, k for (i 0 i!
32 i i 1) for (j 0 j! 32 j j
1) for (k 0 k! 32 k k 1)
xij xij yik
zkj - ??e????se?? t?? x, y, z st??? a0, a1, a2, ?a?
t??i, j, k st??? s0, s1, s2
37?a??de??µa ?? ????ap?as?asµ?? p??????
- ??d??a? MIPS
- li t1, 32 t1 32 (row size/loop
end) li s0, 0 i 0 initialize
1st for loopL1 li s1, 0 j 0
restart 2nd for loopL2 li s2, 0 k
0 restart 3rd for loop sll t2, s0, 5
t2 i 32 (size of row of x) addu t2,
t2, s1 t2 i size(row) j sll t2,
t2, 3 t2 byte offset of ij addu
t2, a0, t2 t2 byte address of xij
l.d f4, 0(t2) f4 8 bytes of xijL3
sll t0, s2, 5 t0 k 32 (size of row of
z) addu t0, t0, s1 t0 k size(row)
j sll t0, t0, 3 t0 byte offset of
kj addu t0, a2, t0 t0 byte
address of zkj l.d f16, 0(t0) f16
8 bytes of zkj
38?a??de??µa ?? ????ap?as?asµ?? p??????
sll t0, s0, 5 t0 i32
(size of row of y) addu t0, t0, s2
t0 isize(row) k sll t0, t0, 3
t0 byte offset of ik addu t0, a1,
t0 t0 byte address of yik l.d
f18, 0(t0) f18 8 bytes of yik
mul.d f16, f18, f16 f16 yik
zkj add.d f4, f4, f16 f4xij
yikzkj addiu s2, s2, 1 k k
1 bne s2, t1, L3 if (k ! 32) go
to L3 s.d f4, 0(t2) xij f4
addiu s1, s1, 1 j j 1 bne
s1, t1, L2 if (j ! 32) go to L2
addiu s0, s0, 1 i i 1 bne
s0, t1, L1 if (i ! 32) go to L1
39????ß?? a???µ?t???
- ?? IEEE Std 754 ?a?????e? p??s?et? ??e??? t??
st???????p???s?? - ?p?p???? bit a???ße?a? (guard, round, sticky)
- ?p????? t??p?? st???????p???s?? (rounding modes)
- ?p?t??pe? st?? p????aµµat?st? ?a ???µ?se? µe
?ept?µ??e?a t?? a???µ?t??? s?µpe??f??? e???
?p?????sµ?? - ?e? ???p????? ??e? t?? ep?????? ??e? ?? µ???de?
?? - ?? pe??ss?te?e? ???sse? p????aµµat?sµ?? ?a?
ß?ß??????e? ?? ???s?µ?p????? ap??? t??
p???a????sµ??e? ?e?t?????e? - S?µß?ßasµ?? µeta?? p???p????t?ta? t?? ??????,
ap?d?s??, ?a? apa?t?se?? t?? a?????
40??e?µ??e?a t?? ded?µ????
G????? e????a
- ?a bit de? ????? ?µf?t? s?µas?a
- ? d?e?µ??e?a e?a?t?ta? ap? t?? e?t???? p??
efa?µ????ta? - ??apa??stas? t?? a???µ?? st??? ?p?????st??
- ?epe?asµ??? e???? ?a? a???ße?a
- ???pe? ?a ?aµß????ta? ?p??? sta p?????µµata
41???seta???st???t?ta
- ?a pa??????a p?????µµata µp??e? ?a p?????? t??
?e?t?????e? µe µ? a?aµe??µe?? se??? - ?p???se?? p??seta???st???t?ta? µp??e? ?a ap?t?????
- ???pe? ?a ep?ßeßa???eta? ? ?e?t?????a t??
pa???????? p????aµµ?t?? se d?af??et????? ßa?µ???
pa?a?????a?
42????te?t????? ?? t?? x86
- ?????? ßas????ta? st? s??epe?e??ast? ?? 8087
- 8 80 bit ?ata????t?? epe?tetaµ???? a???ße?a?
(extended-precision) - ???s?µ?p?????ta? ?? st??ßa
- ?ata????t?? de??t?d?t???ta? ap? t?? ????f? t??
st??ßa? (TOS) ?? ST(0), ST(1), - ?? t?µ?? ?? e??a? 32 ? 64 bit st? µ??µ?
- ?etat??p??ta? ?at? t? f??t?s?/ap????e?s?
te?est??? µ??µ?? - ?? a???a??? te?est??? µp????? ep?s?? ?a
µetat?ap??? se µ?a f??t?s?/ap????e?s? - ???? d?s???? d?µ??????a ?a? ße?t?st?p???s? ??d??a
- ?p?t??esµa ft??? ap?d?s? ??
43??t???? ?? t?? x86
?etaf??? ded?µ???? ????µ?t???? S?????s?? ?pe?ßat????
FILD mem/ST(i) FISTP mem/ST(i) FLDPI FLD1 FLDZ FIADDP mem/ST(i) FISUBRP mem/ST(i) FIMULP mem/ST(i) FIDIVRP mem/ST(i) FSQRT FABS FRNDINT FICOMP FIUCOMP FSTSW AX/mem FPATAN F2XMI FCOS FPTAN FPREM FPSIN FYL2X
- ???a??et???? pa?a??a???
- I a???a??? te?est???
- P e?a???? (pop) te?est??? ap? t? st??ßa
- R a?t?st??f? se??? te?est???
- ???? de? ep?t??p??ta? ???? ?? s??d?asµ??
44Streaming SIMD Extension 2 (SSE2)
- ?p??tas? s??e???? ???? SIMD 2 (SSE2)
- ???s??te? 4 128 bit ?ata????t??
- ?pe?t????e se 8 ?ata????t?? st?? AMD64/EM64T
- ?p??e? ?a ???s?µ?p????e? ??a p?????? te?est????
?? - 2 64 bit d?p??? a???ße?a?
- 4 32 bit ap??? a???ße?a?
- ?? e?t???? epe?e????? se a?t? ta?t?????a
- ??a e?t??? p???? ded?µ??a (Single-Instruction
Multiple-Data)
45?e??? ???s??s? ?a? d?a??es?
- ? a??ste?? ???s??s? ?at? i ??se?? p???ap?as???e?
??a? a???a?? µe 2i - ? de??? ???s??s? d?a??e? µe t? 2i
- ???? se ap??s?µ??? a?e?a????
- G?a p??s?µasµ????? a?e?a????
- ????µ?t??? de??? ???s??s? epa?????? t?? p??s?µ??
- p.?., 5 / 4
- 111110112 gtgt 2 111111102 2
- St???????p??e? p??? t? 8
- s?????s? 111110112 gtgtgt 2 001111102 62
46????? ?????eta? ??a t?? a???ße?a ??
- S?µa?t??? ??a ep?st?µ????? ??d??a
- ???? ??a ?a??µe???? ???s?
- ?? ?p????p? µ?? st? t??pe?a d?af??e? ?at? 0.0002
se?t! ? - ?? sf??µa t?? d?a??es?? ?? t?? Intel Pentium
(FDIV bug) - ? a???? a?aµ??e? a???ße?a
- ?e?te Colwell, The Pentium Chronicles
47S?µpe?asµat???? pa?at???se??
- ?? a???te?t?????? s?????? e?t???? ?p?st???????
a???µ?t??? - ???s?µasµ???? ?a? ap??s?µ?? a?e?a???
- ???se???se?? ????t?? ?p?d?ast???? ??a t???
p?a?µat????? - ?epe?asµ??? e???? ?a? a???ße?a
- ?? ?e?t?????e? µp??e? ?a ?d???s??? se ?pe??e???s?
(overflow) ?a? a?ep???e?a (underflow) - ????te?t????? s?????? e?t???? MIPS
- ??t???? p????a ?? 54 p?? s???? ???s?µ?p????µe?e?
- 100 t?? SPECINT, 97 t?? SPECFP
- ???e? e?t???? ????te?? s?????