Slides - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Slides

Description:

?a p????? ata e?te???? e?t???? p?? pa?????? t? ?? ??a ???e? ?e?t?????e? ... ?a?t?????a ?? Tyson ?a? Austin p??te??a? t?? memory renaming, ?a te????? ? ??a ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 29
Provided by: GOG
Category:
Tags: slides | tyson

less

Transcript and Presenter's Notes

Title: Slides


1
Speculative Memory Cloaking And Speculative
Memory Bypassing
???sta?t??a ?e???????? ?.?. 378
?T???, ?a???????? 2002
2
??sa????
?s?te????? ?e?t?????e?
  • ?a p?????µµata e?te???? e?t???? p?? pa??????
    t?µ?? ??a ???e? ?e?t?????e?
  • ??t?? ?? t?µ?? p??pe? ?a ap????e?t??? e??
    pe??µ????? ?a ???s?µ?p??????? ap? ep?µe?e?
    ?e?t?????e?
  • ??t? ? es?te???? ?e?t?????a (interoperation)
    ep????????a? ???p??e?ta? ???s?µ?p????ta?
    ?ata????t?? ?a? ?????? ??se?? µ??µ??

S??p?? t?? ?a???s?as?? Ta µe?et?s??µe t??
ep????????a es?te????? ?e?t???????, ? ?p??a
p?a?µat?p??e?ta? µe ap?? ep????????a t?? µ??µ??
3
  • ????? e??a? ?? µ???d?? ??a t?? ep????????a
    µ??µ??
  • ?? safe?? f??µe? st?? ?p??e? ?? ?ata????se??
    (stores) ?a? ?? f??t?se?? (loads) s??d???ta?
    µeta?? t??? de? e??a? µ??? d??at??, a??? ?d?????
    se ??e? f??µe? ?e???s??, se ??e? ?e?a??????
    s???st?se? µ??µ?? ?a? se ????? t??p??? s????? ??a
    t?t??e? ?e?a???e?
  • Ta e?et?s??µe d?? t?t??e? µe??d???
  • Te???s? ?p??????? ???µ?? (Speculative Memory
    Cloaking)
  • Te???s? ?a???aµ??? µ??µ?? (Speculative Memory
    Bypassing)

4
Te???s? ?p??????? ???µ?? (speculative memory
cloaking) St?? ?e???s? ap??????? µ??µ?? µp????µe
d??aµ??? ?a µetat??p??µe asaf?? ???sµ??e? ??se??
µ??µ?? ????? ?a p???a?e?ta? p??ß??µa st??
?p?????sµ? t?? µ??µ??, ?a? st?? ???f? p??sßas? se
ded?µ??a. G?a ?a t? ep?t????µe ???s?µ?p????µe t??
p??ß?e?? µe µ??µ? (memory dependence prediction)
?ste saf?? ?a s??d?s??µe t?? e?t???? f??t?s??
(load) ?a? ap????e?s?? (stores). ??t?? ?? e?t????
µp????? t?te ?a ep?????????? µe ??a d??aµ????
d?µ???????µe?? ???? ???µ?t?? (name space)
Te???s? ?a???aµ??? ???µ?? (speculative memory
bypassing) ? ?e???s? pa???aµ??? µ??µ?? ep?p????
µe???e? t?? as?fe?a ?ta? ?? e?a?t?µe?e? f??t?se??
?a? ?ata????se?? s???p?????? st? pa??????
e?t????. ??t? ? te????? µetat??pe? t??
DEF-store-load-USE a??s?da e?a?t?se?? se DEF-USE
µ??? (???pe pa?ap??? s??µa). Sa? ap?t??esµa, ??
t?µ?? µp????? ape??e?a? ?a pe??s??? ap? t??
ap?st???a st? (producer) (DEF) st? d??t?
(consumer) (USE).
5
? ???µ? ?? ????t??a? ?p????????a? Es?te?????
?e?t??????? (?emory as an Inter-operation
Communication Agent) ?? e?t???? f??t?s?? (load)
?a? ?ata????s?? (store) ? ? d?e????s? p??
???s?µ?p??e?ta?, de? d????? ?aµ?a a priori
??de??? t?? ep????????a? p?? ?a s?µße?. ?p?µ????
??a ?a a????e??e? ? ep????????a ?a? ?a
e??atasta???? ?? s??d?se?? ep????????a?, ??
e?t???? load ?a? store p??pe? ?a ?p?????s??? µ?a
d?e????s? (address) ?a? ?a pe??s??? ?ts? st??
saf??e?a. ??s? ? ?p?????sµ?? d?e????se?? ?s? ?a?
? saf??e?a p?? ep?t?????eta? e?s????? µ?a
ep?ß????s?, µ?a? ?a? ?? t?µ?? µp??e? ?a e??a?
d?a??s?µe? a??et? p??? ??p??a e????e?a
?????????e?. ??a pa??de??µa fa??eta? st? pa?a??t?
s??µa ?p?? ? ep????????a ?a ??ße? µ???? a??µesa?
st?? e?t???? STORE ?a? LOAD (Part A)
6
???ß?e?? ????t?s?? ???µ?? (?emory dependence
prediction) ? es?te???? ?e?t?????a
(inter-operation) ep????????a? ?d??e? se a???????
(RAW) e?a?t?se??. ??a saf?? a?apa??stas? t??
ep????????a? µ??µ?? apa?te? a?apa??stas? t??
a?t?st????? e?a?t?se??. St?? p??s????s? a?t?
???s?µ?p???saµe p??ß?e?? e???t?s?? µ??µ?? (memory
dependence prediction) ??a ?a e?f??s??µe t??
e?a?t?se?? d??aµ???. ???ad? a)
???s?µ?p???saµe d??aµ??? ep??e?µ??? ?st?????
p????f???a ??a ?a p??ß?????µe t?? µe????t????
e?a?t?se?? ß) ?et? ???s?µ?p???saµe a?t?? t??
?e???t???? e?a?t?se?? ??a ?a d?µ??????s??µe ??a
d??aµ??? ???? ???µ?t?? (name space) ?p?? ??
e?a?t?µe?e? e?t???? load ?a? store µp????? ?a
ep?????????? ????? ?a ?f?stata? t?? ep?ßa???se??
(overhead) t?? ßas?sµ???? se d?e????s?
(address-based) ep????????a?
7
?????s? t?? ????s?? ???µ?? (Memory Traffic
Analysis) ?a???s???eta? µ?a eµpe????? µe??t? t??
????s?? t?? ep????????a? µ??µ?? ???s?µ?p????ta?
t? SPEC95 benchmark p??? st? MIPS-I. G?a ?a
????µe µ?a e?t?µ?s? a) t?? p?s?st?? t??
?e?t??????? t?? µ??µ??,p?? µp????µe ?a
e??p??et?s??µe µe ??a µ??a??sµ? ßas?sµ??? st??
e???t?s? ?a? ß) t?? p?s? ap????e?s? µp??e? ?a
apa?t?s??µe ??a a?t?? t?? ?e???t??? saf?
ep????????a, µet??µe t? p?s?st? t?? e?t???? load
p?? d??ßasa? µ?a t?µ? p?? d?µ?????????e ap? µ?a
p??????µe?? e?t??? store (a??????? e?a?t?se??).
?et??µe a?t? t? ?a?a?t???st??? sa? µ?a s????t?s?
t?? ap?stas?? ap????e?s?? (store distance). ??t?
????eta? sa? ? a???µ?? t?? µ??ad???? d?e????se??
p?? ap????e?t??a? µeta?? t?? e?a?t?µe??? e?t????
se ??a d??aµ??? ?e?µa e?t????.
8
  • Te???s? ?p??????? ???µ?? (1)
  • (Speculative Memory Cloaking)
  • ? ap?????? ap?s??pe? st?? ep????????a µ??µ?? µe
    t? ?a µetat??pe? d??aµ??? t?? asaf? ?ept?µe?? ???
    t?? ep????????a? se µ?a saf? f??µa. Se a?t? t??
    µ???d? ???s?µ?p??e?ta? ? p??ß?e?? e???t?s?? ??a
    ?a p?st?p???se? e?a?t?µe?e? e?t???? loads ?a?
    stores µe µe???? p??a??t?ta. ????? µ?a e???t?s?
    ?e????e? p??ß????µ? t?te ?? e?a?t?µe?e? e?t????
    loads ?a? stores µe saf??e?a s??d???ta? µe ??a
    ?a???????? ???µa , a synonym , t? ?p??? µ??ad???
    p?st?p??e? t?? e???t?s?
  • ??p???? µp??e? ?a a?a??t??e? p?? ???s?µ?p????ta?
    ??a d?af??et??? ???µa µp??e? ?a ß????se? st??
    ep????????a
  • ? ap??t?s? ß??s?eta?
  • st? f?s? t?? s?s?et?sµ?? µeta?? t?? ???µ?t?? ?a?
    t?? e?t???? p?? ta ???s?µ?p????? ?a?
  • st?? p????f???a p?? s?et??eta? µe t?? ?pa??? t??
    ???µ?t?? a?t??.

9
Te???s? ?p??????? ???µ?? (2) (Speculative
Memory Cloaking) Se a?t??es? µe µ?a d?e????s?,
t? s?????µ? p?st?p??e? µ??ad??? t? e?a?t?µe??
?e???? e?t????. ??t? ep?t?epe? st?? e?t???? load
?a? store ?a e?????? t? s?????µ? ßas?sµ??? µ???
st?? ta?t?t?t? t???. ?? s?????µ? µe t? se??? t??
ep?t??pe? s a?t? ?a e?t?p?s??? t?? ?at??????
t?µ?, ????? p??ta ?a e?te??s??? t?? ?p?????sµ?
t?? d?e????s??. ?p?p???? ? µ??ad???? s??d?asµ??
e??? s?????µ?? µe t?? e?t???? load ?a? store
de???e? ?t? ? e?t??? eµp???eta? se µ?????
ap?stas?? ep????????a e?d??e?t?????a?. St??
µe??t? a?t? ?p???t??µe ?t? ? t?µ? p?? d?aß??eta?
ap? µ?a load pa???eta? p??ta ap? µ?a µ??ad???
store.
10
Detection and Prediction of Dependences (?????e?s?
?a? p??ß?e?? e?a?t?se??) G?a t? s??p? a?t?
???s?µ?p????µe µ?a p??ß?e?? e???t?s?? ßas?sµ???
st?? ?st????? µ??µ?. ??t? ? p??ß?e?? d???e?e? µe
t? ?a a?a?a??pte? e?a?t?se?? µ??µ?? d?a µ?s?? t??
????? d?e????se?? t?? µ??µ?? (memory address
space) ?a? ???s?µ?p????ta? a?t? t?? p????f???a
??a ?a p??ß??pe? t?? µe????t??? s?µpe??f???
e?a?t?se??. ??af????? µe t?? a????e?s? t??
e???t?s?? µ??µ?? ?p?????? d?? p??ß??µat?sµ?? a)
??? ?? e?a?t?se?? µp????? ?a a?afe????? ?a? ß)
???a e??a? ? ep???µ?t? s??p?? a?t?? t??
µ??a??sµ??, d??ad? ??a p?se? load ?a? store
e?t???? ?a a?a?a???e? e?a?t?se?? ?f?? ?????µe ?a
a???s??? ?? p??ß???e?? ????? st? s?????s?
(pipeline) apa?t??µe ? µ??a??sµ?? a????e?s??
e?a?t?se?? (dependence detection) ?a t??
a?af??e? sa? ?e?????a (store PC, loadPC) S??ep??
?a ??at????? p????? e?a?t?se?? ?ste ?a µp????µe
?a a?a?a?????µe e?a?t?se?? p??? se a??et??
d?e????se??. ??t? e??a? d??at?? e?? d?at???s??µe
µ?a e???af? ap? p??sfate? store (d??ad? ta PC
t???) µa?? µe t?? d?e????s? µ??µ?? se ??a p??a?a
a????e?s?? e?a?t?se?? (Dependence Detection
Table (DDT)).
11
Detection and Prediction of Dependences
(2) (?????e?s? ?a? p??ß?e?? e?a?t?se??) Me ??a
t?t??? µ??a??sµ? t? ep?µe?? ß?µa e??a? ?a
s?ed??s??µe ??a s??µa p??ß?e??? ßas?sµ??? st??
?st?????t?ta t?? e???t?s??. ?ts? t? p?? e???
s??µa p??ß?e??? e??a? ?a ?ata??????µe ?a? ?a
p??ß?????µe e?a?t?se?? sa? ?e?????a (load
PC,store PC). ??st???? se ??a t?t??? s??µa ?a
p??pe? ?a a) p??ß??p??µe µeta?? p????? d??at??
e?a?t?se?? (p.?. ??a load ??e? p???? pa?a??µe?a
stores p?? e?a???s??ta? st? ?e?µa
e?t??es??) ?a? ß) p??ß??p??µe p????? e?a?t?se??
t?? ?d?a st??µ? (p.?. ??a store ??e? p????
loads). G?a t??? pa?ap??? ?????? ?e?????µaste
t?? p??ß?e?? e???t?s?? sa? d?ad??as?a d??
ß?µ?t??. St? p??t? ß?µa ???eta? µ?a p??ß?e?? ??a
t? ?? t? d?sµ??? load ? store ??e? µ?a e???t?s?
?a? st? de?te?? ß?µa ? p??ß?e?? ???p??e?ta? ??a
?a ap?fas?se? µe p??? load ? store ? e???t?s?
a?t?st?????eta?.
12
??µ??????a S?????µ?? ?a? ?p????????a (Synonym
Generation and Communication)
St?? ap?????? ?? e?t???? store ?e?????? t??
ep????????a, d?µ???????ta? µ?a ??a ??d?s? ??a t?
s?????µ? ?ta? µ?a e???t?s? ??e? p??ß?ef?e?. ???a?
ep???µ?t? ?a d?s??µe d?af??et???? e?d?se?? t??
?d??? s?????µ?? ??a as?s??t?st? ep????????a se
?p???d?p?te d?sµ??? s?µe?? t?? ??????. ??t?
µp??e? ?a apa?t?se? ?a pa?????µe d?af??et????
e?d?se?? ??a d?af??et??? st??µ??t?pa t?? ?d?a?
stat???? e???t?s?? p.?. ?ta? a?t? ta st??µ??t?pa
e??a? ta?t?????a e?e???. ?? p??ß??µa a?t? e??a?
pe??p?? ?µ??? µe t? p??ß??µa t?? µet???µas?a?
?ata????t??, a??? se a?t??es? µe t?? e?a?t?se??
t?? ?ata????t??, ta st??µ??t?pa µ?a? stat????
e???t?s?? µ??µ?? µp??e? ?a ep??a??pt??ta?. ??? t?
a?t?st???? store de? ??e? a??µ? a?t?st?????e?,
???s?µ?p????µe µ?a µ???? d?µ?, t?? p??a?a
µet???µas?a? s?????µ?? (synonym rename table) ??a
?a s?s?et?s??µe t? s?????µ? t?? µe t? sta?µ?
???t?s?? (reservation station) p?? ? store
ß??s?eta?. ??ßa?a a?t? e??a? µ?a a?s??d???
e?t??es? ?a? ??? µ?a a???ß?? ??d?s?.
13
?p?ßeßa??s? (Verification) ?pe?d? ? ep????????a
p?? ?aµß??e? µ???? st? ap?????? e??a? ßas?sµ???
st?? p??ß?e?? e???t?s?? ?p??esd?p?te t?µ??
pa?????ta? e??a? ?e???t???? ?a? p??pe? ?a
ep?ßeßa??????. ??t? µp??e? ?a ???e? µe t? ?a
af?s??µe t?? e?a?t?µe?e? e?t???? ?a
ep????????s??? ep?s?? d?a µ?s?? t?? µ??µ??.
??t?µata ???p???s?? (?mplementation Aspects ) ??
ß????t???? d?µ?? p?? ???s?µ?p?????ta? e??a? ??
a??????e? ???a?a? a????e?s?? e?a?t?se?? (depende
nce detection table (DDT)) ???a?a? a????e?s??
?a? ???µas?a? e?a?t?se?? (dependence prediction
and naming table (DPNT)) ???e??
S?????µ?? (synonym file (SF)) ???a?a?
?et???µas?a? S?????µ?? (synonym rename table
(SRT))
14
??t?µata ???p???s?? (?mplementation Aspects
) ?a??? e????saµe p??? t? DDT ???s?µ?p??e?ta?
??a ?a a?a?a??pt??µe t?? e?a?t?se??. ??t?? ?
p??a?a? pe????e? ta a??????a ped?a ??e????s?
?ed?µ???? (Data Address(ADDR)), Store PC (STPC)
?a? ??a valid bit (ep?????s??) ? DP??
???s?µ?p??e?ta? ??a ?a ep?ßeßa??se? d?a µ?s?? t??
p??ß?e???, e?e??e? t?? e?t???? store ?a? load
p?? ????? e?a?t?se??. ???µ? d??e? ta tags p??
???s?µ?p?????ta? ??a ?a d?µ?????????? ta s?????µa
??a t?? e?a?t?se??. ?e????e? ta a??????a ped?a
??e????s? ??t???? (instruction address (PC)),
?????e?t?? ??a?t?se?? (dependence predictor
(PRED)), dependence tag (DTAG) ?a? ??a valid
bit To SF ???s?µ?p??e?ta? ??a ?a ap????e?e? ta
s?????µa ?a? ??e? ta a??????a ped?a ???µa
(name), t?µ? (value), full/empty bit ?a? valid
bit ? SRT ??e? ta a??????a ped?a S?????µ??
(synonym), (reservation station) tag sta?µ??
???t?s?? ?a? ??a valid bit. ?? t? bit ep?????s??
e??a? 1 (valid flag), ? ?ata????s? ape??????e?
t? d?sµ??? s?????µ? st? sta?µ? ???t?s??
(reservation station) ?p?? ß??s?eta? ?
pa?a??µe?? e?t??? store.
15
??t?µata ???p???s?? (?mplementation Aspects
) St? pa?a??t? s??µa ß??p??µe ?t? ?? e?t????
load ?a? store d?a µ?s?? t?? DPNT pa?????? µ?a
p??ß?e?? ?a? ??a s?????µ?. ??? de? ?p???e?
e???t?s? de? ???eta? ?aµ?? e????e?a. ?? srore
d?µ???????? µ?a SRT ?ata????s? ??a t? d?sµ???
s?????µ? ?a? ?ta? µ?a store t?? desµe?se? t?te
e??µe???eta? t? DDT, e?e??e???eta? ? SRT
?ata????s? ?a? ???feta? ? t?µ? st? SF
16
Te???s? ?a???aµ??? ???µ??
(1) Speculative Memory Bypassing Se t?p????
a???te?t?????? load/store, ?? e?t???? load ?a?
store de? ?p????????? t?µ??. O? e?t???? load ?a?
store ap?? ???s?µ?p?????ta? ??a ?a pe??s??? t??
t?µ?? p?? ??p??e? e?t???? pa???a?a?, se ??p??e?
???e? p?? ?a t?? ???s?µ?p???s???. ??? ??????aµe
?t? ?? load ?a? store ???s?µ?p?????ta? ??a
ep????????a e?d?-?e?t?????a? ?a µp????saµe ?a t??
e?a?e????µe ??e? µa??. ??t? a???ß?? e??a? ?
te????? s??p?? t?? te?????? pa???aµ??? µ??µ??.
??t? ? te????? µetat??pe? µ?a DEF-store-load-USE
a??s?da se DEF-USE a??s?da ?p?te ?? load ?a?
store e???t?se?? p??ß??p??ta? ?a? ?? DEF ?a? USE
e?t???? s???p?????? st? pa?????? e?t????.
17
Te???s? ?a???aµ??? ???µ??
(2) Speculative Memory Bypassing ?? ?a? ?
te????? ap??????? µp??e? ?a ep?t??pe? ep????????a
µeta?? t?? store ?a? load, ? t?µ? p??pe? ?a
pe??se? ap? a?t?? t?? d?? e?t???? p??? f??se? st?
USE. ??ßa?a ed? s?µe?????µe ?t? ? pa???aµ?? e??a?
d?af??et??? ap? t?? ap?????? ?ta? ?? e?a?t?µe?e?
load ?a? store s???p?????? st? ?d?? pa??????
e?t????.
Ost?s? ? te????? pa???aµ??? µp??e? ?a e?te?este?
sa? µ?a ape??e?a? ep??tas? t?? ap???????. ??t?
fa??eta? st? pa?a??t? d????aµµa (c).
18
Te???s? ?a???aµ??? ???µ??
(3) Speculative Memory Bypassing St? 1? ß?µa ?
e?t??? DEF ap???d???p??e?ta? ?a? ? µet???µas?a
?ata????t? (register renaming) d?µ?????e? ??a
?a???????? ???µa, TAG1 ??a t?? ?ata????t? R1.
St? 2? ß?µa ? store e?t??? ap???d???p??e?ta?
?a? te???? d?µ?????e?ta? ??a s?????µ?. St? 3?
ß?µa ? e?t??? load ap???d???p??e?ta? ?a? ?
µet??µas?a ?ata????t? d?µ??????? ??a ?a????????
???µa TAG2 ??a t?? ?ata????t? p?????sµ??
(destination register) R2. St? te?e?ta?? ß?µa
?ta? ? USE ap???d???p??e?ta? µp??e? ?a ap?fas?se?
?t? ? register R2 ??e? d?? ???µata ??a p?a?µat???
TAG2 ?a? ??a ?e???t??? (speculative) TAG1.
???s?µ?p????ta? t? TAG1, ? DEF µp??e? ?a te?e?
ape??e?a? se ???s? ?a? ?a e?te??ste? aµ?s?? µ????
? DEF pa???e? t?? t?µ?.
19
Te???s? ?a???aµ??? ???µ??
(4) Speculative Memory Bypassing ?a?at????µe
?t? ? pa???aµ?? (bypassing) e?te??eta? f?s??? ??a
a??s?de? p?? pe??????? p????? e?a?t?se??
µ??µ??. ?p?p???? ? pa???aµ?? (bypassing)
???eta? p?? e???st??? ?ta? µ?a e?t??? store ??e?
p????? e?a?t?se?? ?a??? a?t? ß???? se pe??ss?te??
µe??s? t?? as?fe?a? s???????µe?? µe t?? ap??????
(cloaking) ?p?? t? register write-back bandwidth
e??a? pe?????sµ???. Se a?t?? t?? pe??pt?s? ?
?e???t??? t?µ? (speculative value) ?a p??pe? ?a
d?ad??e? se ??e? t?? e?a?t?µe?e? e?t???? load,
??at? a? de? ???s?µ?p????e? pa???aµ?? (bypassing)
t?te ???e µ?a ap? t?? e?a?t?µe?e? load ?a p??pe?
?a d?ad?se? t?? ?e???t??? t?µ? (speculative
value) se ????? t??? e?d?afe??µe???? at?µ???.
20
?e??aµat??? ????????s? (?xperimental
Evaluation) ??a????ta? t?? ap?te?esµat???t?ta
t?? te?????? ap??????? ?a? pa???aµ???(cloaking
?a? bypassing) µp????µe ?a ?????µe pa?at???se??
st?? p??ß?e??µ?t?ta t?? µ??µ?? ?a?
p??s?µ??????ta? ??a? d??aµ??? s?ed?asµ???
epe?e??ast? ?a de????µe ?t? ?? te?????? µa?
µp????? ?a ße?t??s??? t?? ap?d?s?
?e??d?????a
(1) ???s?µ?p??????a? ta SPEC95 p?????µµata ta
?p??a µeta???tt?st??a? ??a t?? MIPS-I
a???te?t????? ?a? ???p??????e p??s?µ???s? µe
?a??d????µe?? ?????sµ? ?????? ?a? e?t??es??
(trace ?a? execution- driven timing).
????? 128 e?t???? ?ata????s?? ?a? f??t?s??
(load/store queue), ???eta? p????aµµat?sµ?? ??a
p??? ap? 4 load ?a? store a?? ????? ?a?
??e???eta? t??????st?? ??a? ?????? af?t?? ? load
??e? ?p?????se? t?? d?e????s? t?? ?a pe??se? st??
load/store scheduler.
21
?e??d?????a
(2) ??a s?µa?t??? pa??µet??? e??a? ?
???s?µ?p???s? t?? ?e???s?? afe??? e?a?t?se??
µ??µ?? (naïve memory dependence speculation)
d??ad? a) ? load ?a p??spe??se? st? µ??µ? a??µa
?a? a? ?? d?e????se?? t?? p??????µe??? store
e??a? ????ste?, ß) ? load ?a pe??µ??e? ??a t??
p??????µe?e? store st?? ?d?e? d?e????se?? ?a? ?)
?? store p??????? t?? d?e????s? t??? st?? load
a??µa ?a? a? ta ded?µ??a t??? de? e??a?
d?a??s?µa ?e???? ? ?e???s? t?? e?a?t?se??
µ??µ?? (memory dependence speculation) ??e? µ?a
s?µa?t??? ep?d?as? st?? ßas??? ap?d?s? (base
performance) µe e????st? ?p?st????? se hardware.
22
????ße?a t?? ?e?????? ?p??????? Cloaking accuracy
Te????µe d?? µet????? coverage ?a? ???µ??
mispeculation. O?????µe sa? coverage t? ???sµa
t?? d??aµ???? load p?? pa?????? µ?a s?st? t?µ?
d?a µ?s?? t?? ap???????. ??????µe sa?
mispeculation rate t? ???sµa t?? d??aµ???? load
p?? pa?????? µ?a ?a??asµ??? t?µ? d?a µ?s?? t??
ap???????. ??sse??? µet??se?? p?????a? ??a ta
a??????a DDT µe???? 32, 128, 512, ?a? 2K ap?
a??ste?? p??? ta de???. ?a?at????µe ?t? ?
p?e????f?a t?? load µe e?a?t?se?? pa?????? µ?a
s?st? t?µ? (correct value) ap? t?? ap??????,
a??? ??? ??e? . ???µ? ?ta? a????eta? t?
µ??e??? t?? DDT, ?e???? a????e? ?a? t? cloaking
coverage, se µe????? pe??pt?se?? µe???eta?.
23
??p???t?ta ??e????se?? (?ddress Locality) H
as?fe?a t?? µ??µ?? µp??e? ?a e?att??e? a?
µp????saµe ?a p??ß?????µe t?? d?e????s? p?? µ?a
e?t??? load ?a p??spe??se?. ?et??µe t??
t?p???t?ta d?e????se?? (address locality)
µet???ta? t? ???sµa t?? d??aµ???? e?t???? load
p?? p??spe?a????? t?? ?d?a d?e????s? ?p?? t?
te?e?ta?? st??µ??t?p? t?? ?d?a? stat???? load.
St? pa?a??t? s??µa ß??p??µe t? breakdown t??
load p?? e???t??? t?? t?p???t?ta d?e????se??
(address locality), ?p? t?? ??? a?t?? ?a ?????
µ?a a????e?µ??? e???t?s?. O? µa??e? st??e? load
µe a????e?µ??e? e?a?t?se??, ?? p??s??e? st??e?
load µe µ? a????e?µ??e? e?a?t?se?? ?a? ta
d?aµ??t?a p?? pa?????? s?st? t?µ? ap? ap??????.
24
??p???t?ta ??µ?? Value Locality H as?fe?a t??
µ??µ?? µp??e? ep?s?? ?a e?att??e? µe t? ?a
p??ß?????µe t?? t?µ?? t?? e?t???? load ape??e?a?.
?ts? ?a s????????µe ??a? p?????st? t?? t?µ?? t??
e?t???? load (load last-value predictor) µe ??a?
µ??a??sµ? ap??????? (cloaking). ?? pa?a??t?
s??µa de???e? t?? µet????? coverage (a) ?a?
mispeculation rates (b). ?a ap?te??sµata t??
t?µ?? fa????ta? ap? t?? ??t???? a??ste?? st???
e?? ta ap?te??sµata p??ß?e??? ap??????? ap? t??
de??? µa???. ?aµ?a ap? t?? d?? te?????? de?
fa??eta? ?a e??a? ?a??te??, ap?? st? ???µ?
mispeculation ? te????? ap??????? e??a? ?a??te??
??at? ? s?µpe??f??? t?? e?a?t?se?? e??a? p??
sta?e?? ap? t?? s?µpe??f??? t?? t?µ??.
25
?p?d?as? st?? ?p?d?s?
(1) Performance Impact ? te????? ap???????
p??ß??pe? ??a µe???? ???sµa ???? t?? e?t????
load. ?a µet??s??µe t?? ep?d?as? st?? ap?d?s?.
S???????µe?? µe t?? a???ße?a t?? ap???????
ß??p??µe ?t? ? µet???? p??ß?e??? coverage
pa??µe??e ?d?a e?? ?? ???µ?? mispeculation
a??????ta?. ?ts? ??a t?? ?e???sµ? t??
mispeculation µe?et?saµe 3 µ??t??a t? squash
invalidation (?atasta?t??? a????s?), selective
invalidation (ep??e?t??? a????s?) ?a? oracle. ?d?
de? ????µe ap?te??sµata ??a t? µ??t??? oracle.
26
?p?d?as? st?? ?p?d?s?
(2) Performance Impact ?ts? st? pa?ap??? s??µa
(a) ????µe t?? p??s??e? st??e? p?? a?af?????
ep?ta???se?? (speedups) µe ep??e?t??? a????s?
(selective invalidation). ?? ?sp?e? ?a? µa??e?
a?af????? ep?ß?ad??se?? (slowdowns) ?a?
ep?ta???se?? (speedups) µe ?atasta?t??? a????s?
(squash invalidation). ????e? ?a s?µe???e? ?t?
? µ??a??sµ?? ?atasta?t???? a????s?? ?d??e? se
ep?ß?ad??se?? 5.63 (integer), 1.59 (floating
point) ?a? 3.43 (??a ta p?????µµata). ?
ap?????? µe ep??e?t??? a????s? a?t??eta e??a?
p??? e?e??et??? ??at? p?t? de? µe???e? t??
ap?d?s? ?a? p??sf??e? ep?ta???se?? 4.28
(integer), 3.20 (floating- point) ?a? 3.68
(??a ta p?????µµata). St? s??µa (b)
fa??eta? ??a breakdown t?? predicted load µe t??
p??s??? st??? e?e??a p?? pa?????? t?µ? d?a µ?s??
t?? ap??????? ?a? µe µa??? e?e??a p?? pa??????
t?µ? µe t?? pa???aµ??. ?a ap?te??sµata de??????
?t? ? ap?????? µp??e? ?a p??sf??e? p??? ?a???
ße?t??se?? st?? ap?d?s?.
27
S?et???? e??as?e? ?????? te?????? ?????
p??ta?e? ??a ?a p??ß?????? t?? d?e????se?? t??
load ?a? store t?s? st? software ?s? ?a? st?
hardware. ?a?t?????a ?? Tyson ?a? Austin
p??te??a? t?? memory renaming, µ?a te????? ?µ??a
µe t?? ap???????. ??t?? s??d?asa? t?? p??ß?e??
e???t?s?? µ??µ?? (memory dependence prediction)
µe t?? p??ß?e?? t?? value ?a? µe??t?sa? t?
ap?t??esµa. ??a pe?????sµ??? f??µa t?? ap???????
e??a? ? alias prediction, st?? ?p??a ?? load
p??ß??p??? µ?a ?ata????s? write st?? buffer ?p??
t? pa?a??µe?? store ß??s?eta?. ??a? µ??a??sµ??
?µ???? µe t?? pa???aµ??? p??t????e ap? t??
Jourdan , Ronen, Bekerman , Shomar ?a? Yoaz ?at?
t?? ?p??? ta load de? ??e???eta? ?a p??spe?a?????
st?? µ??µ? a?a??ast??? ?a? sa? ap?t??esµa ??
apa?t?se?? st? e???? t?? µ??µ?? µe?????a?.
28
S?µpe??sµata ?e a?t? t?? a????s?
µe?et??ta? t?? s?ed?asµ? t?? µ??µ?? pa?at???saµe
?t? ? µ??µ? s???? ???s?µ?p??e?ta? sa? µ??a??sµ??
ep????????a?. ??ap?st?saµe ??a? µe???? a???µ?
ap? ep?ßa???se?? t?? pa?ad?s?a??? ep???????a?
µ??µ?? ßas?sµ??? st?? d?e????s? ?a? p??te??aµe
te?????? p?? e?af?????? a?t?? t?? ep?ßa???se??.
?? te?????? µa? ?de??a? a) ?e??st?? a???ße?a?
p??ß?e?? e???t?s?? ßas?sµ??? st?? ?st?????t?ta
t?? µ??µ?? e??a? d??at? ß) ? asaf??
pa?ad?s?a??? ???sµ?? t?? ep???????a? µ??µ??
µp??e? d??aµ??? ?a µetat?ape? se saf? ?a? ?) ??
d?? ?e???se?? ap??????? µ??µ?? (speculative
memory cloaking) ?a? ? ep??tas? t?? pa???aµ???
µ??µ?? (speculative memory bypassing) µp????? ?a
d?µ??????s??? saf? ???sµ? ep????????a? µ??µ?? ?a?
?a µe??s??? t?? as?fe?? t??.
Write a Comment
User Comments (0)
About PowerShow.com