Toward Extreme-Scale Manycore Architectures
Josep Torrellas
Department of Computer Science University of Illinois at Urbana-Champaign http://iacoma.cs.uiuc.edu
USC October 2016
Toward Extreme-Scale Manycore Architectures Josep Torrellas - - PowerPoint PPT Presentation
Toward Extreme-Scale Manycore Architectures Josep Torrellas Department of Computer Science University of Illinois at Urbana-Champaign http://iacoma.cs.uiuc.edu USC October 2016 Accelerated Progress in Transistor Integration Large
USC October 2016
2
3
Heat ¡Sink Integrated ¡Heat ¡Spreader ¡(IHS) Thermal ¡Interface ¡Material ¡(TIM) Motherboard Processor ¡Silicon Processor ¡Frontside Metal ¡(Cu) DRAM ¡Frontside Metal ¡(Al) DRAM ¡Silicon Die ¡to ¡Die ¡(D2D) ¡Layer Through ¡Silicon ¡Vias (TSVs) C4 ¡pads
Josep Torrellas Toward Extreme Scale… 4
Josep Torrellas Toward Extreme Scale…
5
Josep Torrellas Toward Extreme Scale… 6
Josep Torrellas Toward Extreme Scale… 7
Josep Torrellas Toward Extreme Scale… 8
Compare&Swap(CAS) CAS CAS CAS CAS [ISCA-13][ASPLOS-15][ASPLOS-16]
Josep Torrellas Toward Extreme Scale… 9
[ISCA-13]
Josep Torrellas Toward Extreme Scale…
10
Time
Josep Torrellas Toward Extreme Scale…
11
Josep Torrellas Toward Extreme Scale…
12
Josep Torrellas Toward Extreme Scale… 13
wr x rd y PA PB wr y rd x
write propagated to memory
Josep Torrellas Toward Extreme Scale… 14
Josep Torrellas Toward Extreme Scale… 15
Time
Josep Torrellas Toward Extreme Scale… 16
Josep Torrellas Toward Extreme Scale… 17
[ISCA-13]
Time
Josep Torrellas Toward Extreme Scale… 18
Time
write propagated to memory
Josep Torrellas Toward Extreme Scale… 19
Time
write propagated to memory
Josep Torrellas Toward Extreme Scale…
20
Josep Torrellas Toward Extreme Scale… 21
Josep Torrellas Toward Extreme Scale… 22
Josep Torrellas Toward Extreme Scale… 23
Josep Torrellas Toward Extreme Scale… 24
Josep Torrellas Toward Extreme Scale… 25
Josep Torrellas Toward Extreme Scale…
26
Josep Torrellas Toward Extreme Scale…
27
Josep Torrellas Toward Extreme Scale… 28
[ASPLOS-15]
Josep Torrellas Toward Extreme Scale… 29
[ASPLOS-15]
Josep Torrellas Toward Extreme Scale… 30
Josep Torrellas Toward Extreme Scale… 31
Baseline WFence
Josep Torrellas Toward Extreme Scale… 32
[ASPLOS-16]
Compare&Swap(CAS) CAS CAS CAS CAS
Josep Torrellas Toward Extreme Scale… 33
[ASPLOS-16]
Josep Torrellas Toward Extreme Scale… 34
CAS CAS CAS CAS CAS
Josep Torrellas Toward Extreme Scale… 35
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 36
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 37
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 38
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 39
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 40
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return } CAS … ld old … CAS …
Josep Torrellas Toward Extreme Scale…
41
Josep Torrellas Toward Extreme Scale… 42
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
line CAS
Josep Torrellas Toward Extreme Scale… 43
Josep Torrellas Toward Extreme Scale… 44
CAS
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 45
Josep Torrellas Toward Extreme Scale… 46
CAS
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 47
Josep Torrellas Toward Extreme Scale… 48
CAS
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 49
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 50
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale…
51
Speculative execution Speculative execution
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 52
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 53
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 54
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 55
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Josep Torrellas Toward Extreme Scale… 56
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
CAS CAS CAS
CAS Speculative
Josep Torrellas Toward Extreme Scale… 57
Josep Torrellas Toward Extreme Scale… 58
Validate
Validate: * Compare the final value of the line to newA forwarded earlier on * Commit speculative execution
Josep Torrellas Toward Extreme Scale… 59
Validate
Josep Torrellas Toward Extreme Scale… 60
Validate
Josep Torrellas Toward Extreme Scale… 61
Validate
Josep Torrellas Toward Extreme Scale… 62
Validate
Josep Torrellas Toward Extreme Scale… 63
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Speculative execution Speculative execution
Josep Torrellas Toward Extreme Scale… 64
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Speculative execution Speculative execution
Josep Torrellas Toward Extreme Scale…
65
Parallel validation DIRECTORY
new = malloc(); while (true) {
newànext = old if (CAS(&top, old, new)) return }
Speculative execution Speculative execution
Josep Torrellas Toward Extreme Scale… 66
CAS CAS CAS CAS Speculative
Josep Torrellas Toward Extreme Scale… 67
Josep Torrellas Toward Extreme Scale… 68
Validate Validate Validate
Josep Torrellas Toward Extreme Scale… 69
Josep Torrellas Toward Extreme Scale… 70
Josep Torrellas Toward Extreme Scale… 71
Josep Torrellas Toward Extreme Scale… 72
Josep Torrellas Toward Extreme Scale…
73
Enable Flow-through
HPMode
Latch
Storage Stage 2a
Latch
Storage Stage 2b
Latch CLK
Logic Stage 3
Latch
Logic Stage 1
Latch Vnom Vnom Vnom Vnom Latch
2a Latch
Latch CLK
Logic Stage 3
Latch
Logic Stage 1
Latch
2b
Vlogic Vlogic Vop Vop
Enable Flow-through
1
EEMode
Josep Torrellas Toward Extreme Scale…
BIPS Ref
System Controller
BIPS Power Outputs (y) Inputs (u) Power Ref Cache size Freq ROB size
Josep Torrellas Toward Extreme Scale… 75
Non-volatile memory Volatile memory Compute layer Volatile memory Non-volatile memory
USC October 2016