|
|
xv | |
|
|
xvii | |
Preface |
|
xix | |
Acknowledgments |
|
xxi | |
|
|
1 | (2) |
|
2 Memory System Basics for Every Architect |
|
|
3 | (10) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
2.4 DLMMs, Ranks, Banks, Mats |
|
|
5 | (2) |
|
|
7 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
2.9 DRAM Timing Parameters |
|
|
10 | (3) |
|
3 Commercial Memory Products |
|
|
13 | (8) |
|
3.1 Basic DDR3/DDR4 Channels and DIMMs |
|
|
13 | (3) |
|
3.2 DDR Deviations for Higher Capacity and Bandwidth |
|
|
16 | (5) |
|
|
21 | (6) |
|
4.1 Memory Scheduler Basics |
|
|
21 | (1) |
|
4.2 Early Multi-Core Memory Schedulers |
|
|
22 | (2) |
|
4.3 Co-Designed Schedulers |
|
|
24 | (2) |
|
|
26 | (1) |
|
|
27 | (8) |
|
|
27 | (1) |
|
|
28 | (5) |
|
|
28 | (1) |
|
5.2.2 Ekman and Stenstrom |
|
|
29 | (1) |
|
5.2.3 Linearly Compressed Pages (LCP) |
|
|
29 | (1) |
|
5.2.4 Nearly Overhead-Free Memory Compression |
|
|
30 | (2) |
|
|
32 | (1) |
|
5.2.6 Active Memory Expansion in the IBM Power Processors |
|
|
32 | (1) |
|
|
33 | (2) |
|
6 Memory Chip Microarchitectures |
|
|
35 | (6) |
|
6.1 Basics of DRAM Chip Microarchitecture |
|
|
35 | (2) |
|
6.2 DRAM Chip Innovations |
|
|
37 | (3) |
|
|
40 | (1) |
|
|
41 | (10) |
|
7.1 The Basics of Parallel and Serial Interconnects |
|
|
41 | (4) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (2) |
|
7.2 Memory Interconnect Innovations |
|
|
45 | (6) |
|
|
45 | (4) |
|
|
49 | (2) |
|
|
51 | (8) |
|
8.1 Basics of DRAM Errors |
|
|
51 | (3) |
|
8.2 Memory Reliability Innovations |
|
|
54 | (4) |
|
|
58 | (1) |
|
|
59 | (10) |
|
|
59 | (4) |
|
|
63 | (4) |
|
9.2.1 Empirical Studies and Retention Times |
|
|
63 | (2) |
|
9.2.2 Alternative Hardware Techniques |
|
|
65 | (1) |
|
9.2.3 Alternative Software Techniques |
|
|
66 | (1) |
|
9.2.4 Leveraging Charge in Cells |
|
|
66 | (1) |
|
|
67 | (2) |
|
|
69 | (12) |
|
|
70 | (3) |
|
10.1.1 3D Stacked Architectures |
|
|
70 | (1) |
|
10.1.2 Tight Coupling on a DIMM |
|
|
71 | (2) |
|
10.2 In-Situ Implementations |
|
|
73 | (4) |
|
10.3 Programming Models and Applications |
|
|
77 | (3) |
|
10.3.1 Programming Approaches |
|
|
77 | (2) |
|
10.3.2 Broadening the Scope of NDP with Additional Workloads |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
81 | (22) |
|
11.1 Memory Timing Channels |
|
|
81 | (6) |
|
11.2 Oblivious RAM (ORAM) |
|
|
87 | (4) |
|
|
91 | (7) |
|
11.4 Impact of Smart Memories |
|
|
98 | (1) |
|
11.5 Other Memory Security Issues |
|
|
99 | (1) |
|
|
100 | (3) |
|
|
103 | (2) |
Bibliography |
|
105 | (24) |
Author's Biography |
|
129 | |