???? - PowerPoint PPT Presentation

About This Presentation
Title:

????

Description:

( ) – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 45
Provided by: Dimit48
Category:
Tags: about | fild

less

Transcript and Presenter's Notes

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?
  • ?a??de??µa 7 6
  • ?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µ??

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

47
S?µ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?????
Write a Comment
User Comments (0)
About PowerShow.com