Stream Chaining: Exploiting Multiple Levels of Correlation in Data Prefetching
Pedro Díaz and Marcelo Cintra
University of Edinburgh
http://www.homepages.inf.ed.ac.uk/mc/Projects/CELLULAR
Stream Chaining: Exploiting Multiple Levels of Correlation in Data - - PowerPoint PPT Presentation
Stream Chaining: Exploiting Multiple Levels of Correlation in Data Prefetching Pedro Daz and Marcelo Cintra University of Edinburgh http://www.homepages.inf.ed.ac.uk/mc/Projects/CELLULAR Outline Motivation Correlation and Localization
http://www.homepages.inf.ed.ac.uk/mc/Projects/CELLULAR
ISCA 2009 2
ISCA 2009 3
ISCA 2009 4
ISCA 2009 5
ISCA 2009 6
ISCA 2009 7
ISCA 2009 8
9
PC_A : A1 PC_B : A2 PC_A : A7 PC_D : A5 PC_B : A8 PC_A : A1 PC_B : A2 PC_C : A4 PC_E : A6 PC_A : A11 PC_B : A12 PC_A : A1 PC_B : A2 PC_A : A7 PC_B : A8 Miss Stream (PC : Addr) time A1 A2 A3 A4 A11 A12 A13 A14 A7 A8 A9 A10 Memory Address Space A5 A6
PC Localized Streams: A1 → A7 → A1 → A11 → A1 → A7 A2 → A8 → A2 → A12 → A2 → A8 PC Correlation ISCA 2009
10
PC_A : A1 PC_B : A2 PC_A : A7 PC_D : A5 PC_B : A8 PC_A : A1 PC_B : A2 PC_C : A4 PC_E : A6 PC_A : A11 PC_B : A12 PC_A : A1 PC_B : A2 PC_A : A7 PC_B : A8 Miss Stream (PC : Addr) time A1 A2 A3 A4 A11 A12 A13 A14 A7 A8 A9 A10 Memory Address Space A5 A6
Temporal Correlation Time Localized Streams: A1 → A2 → A7 → A5 → A8 A1 → A2 → A4 → A6 → A11 → A12 A1 → A2 → A7 → A8 ISCA 2009
11
PC_A : A1 PC_B : A2 PC_A : A7 PC_D : A5 PC_B : A8 PC_A : A1 PC_B : A2 PC_C : A4 PC_E : A6 PC_A : A11 PC_B : A12 PC_A : A1 PC_B : A2 PC_A : A7 PC_B : A8 Miss Stream (PC : Addr) time A1 A2 A3 A4 A11 A12 A13 A14 A7 A8 A9 A10 Memory Address Space A5 A6
Space Localized Streams: A1 → A2 A1 → A2 → A4 A7 → A8 Spatial Correlation A11 → A12 ISCA 2009
ISCA 2009 12
ISCA 2009 13
ISCA 2009 14
ISCA 2009 15
ISCA 2009 16
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time PC_A PC_A PC_B PC_C PC_D PC_E Index Table Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E
ISCA 2009 17
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E
ISCA 2009 18
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E
ISCA 2009 19
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E 1
ISCA 2009 20
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E 1 1
ISCA 2009 21
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E 1 1 1 1 1
ISCA 2009 22
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time
PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E 1 1 1 1 1
ISCA 2009 23
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E 3 2 1 1 3
ISCA 2009 24
PC_A : A1 PC_B : B1 PC_C : C1 PC_D : D1 PC_E : E1 PC_A : A2 PC_D : D2 PC_E : E2 PC_A : A3 PC_D : D3 PC_E : E3 PC_A : A4 Miss Stream (PC : Addr) time PC_A PC_A PC_B PC_C PC_D PC_E Index Table Next Ctr current miss Global History Buffer A 1 B 1 C 1 D 1 E 1 A 2 D 2 E 2 A 3 D 3 E 3 A 4 PC_B PC_D PC_C PC_E
25 ISCA 2009
ISCA 2009 26
ISCA 2009 27
ISCA 2009 28
ISCA 2009 29
ISCA 2009 30
ISCA 2009 31
Benchmark Unique Nodes Subgraphs Snapshot CC (%) max avg. max avg. milc 4.7 15 7.7 7 3.6 lbm 22 20 7.9 18 3.7 lbq 0.8 23 19 18 7 zeusmp 11 18 11 9 4.4 clustalw 1.1 10 9.3 10 8.2 perl 11 16 8.6 9 3.3 namd 21 8 5.8 8 5 soplex 2.8 30 12 10 3.6 bzip2 5.6 38 20 9 3.8 @ger 5.4 41 30 18 4.2 hmmer 12 50 38 33 5.4 gobmk 20 10 5.2 5 3.4
ISCA 2009 32
ISCA 2009 33
33 ISCA 2009
ISCA 2009 34
ISCA 2009 35
ISCA 2009 36
ISCA 2009 37
http://www.homepages.inf.ed.ac.uk/mc/Projects/CELLULAR
ISCA 2009 39
39 ISCA 2009
40 ISCA 2009
41 ISCA 2009
42 ISCA 2009
43 ISCA 2009