18-447: computer architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · onur mutlu...

102
18-447: Computer Architecture Lecture 27: Memory Scheduling Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 4/10/2013

Upload: others

Post on 05-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

18-447: Computer Architecture

Lecture 27: Memory Scheduling

Prof. Onur Mutlu

Carnegie Mellon University

Spring 2013, 4/10/2013

Page 2: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Homework 6

Due April 19 (Friday)

Topics: Virtual memory and cache interaction, main memory, memory scheduling

Strong suggestion:

Please complete this before the exam to prepare for the exam

Reminder:

Homeworks are mainly for your benefit and learning (and preparation for the exam).

They are not meant to be a large part of your grade

2

Page 3: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Lab 6: Memory Hierarchy

Due April 22 (Monday)

Cycle-level modeling of L2 cache and DRAM-based main memory

Extra credit: Prefetching

Design your own hardware prefetcher to improve system performance

HW 6 and Lab 6 are synergistic – work on them together

3

Page 4: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Heads Up: Midterm II Next Week

April 17

Similar format as Midterm I

Suggestion: Do Homework 6 to prepare for the Midterm

4

Page 5: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Last Lecture

DRAM Refresh

Ways of reducing refresh impact

Memory Controllers

Structure and operation

Memory Access Scheduling

FR-FCFS – row-hit-first scheduling

5

Page 6: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Today

Memory Interference (and Techniques to Manage It)

With a focus on Memory Request Scheduling

Emerging Memory Technologies and Hybrid Memory Systems (if time permits)

Last 15 minutes: Q&A with Dr. William Strecker

6

Page 7: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Our Guests Today

Dr. William Strecker and Nancy Strecker

Architect of VAX

SVP Corporate Strategy & Tech. and CTO, DEC

CMU Alum (BS’66, MS’67, PhD’71)

IEEE Wallace McDowell Award Recipient (1985)

For being principal designer of the VAX architecture and for contributions to local area networks, high-performance interconnects, caches, and memory hierarchies

http://www.cmu.edu/homepage/society/2013/spring/in-support-of-excellence.shtml

7

Page 8: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Recommended Reading

Gordon Bell and William D. Strecker, “What Have We Learned from the PDP-11 - What We Have Learned from VAX and Alpha,” 25 Years of ISCA, Retrospectives and Reprints, 1998.

Original paper

Gordon Bell and William D. Strecker, “Computer Structures: What Have We Learned from the PDP-11?,” ISCA 1976.

8

Page 9: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Memory Interference and Scheduling

in Multi-Core Systems

Page 10: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

10

Review: A Modern DRAM Controller

Page 11: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Review: DRAM Bank Operation

11

Row Buffer

(Row 0, Column 0)

Row

decoder

Column mux

Row address 0

Column address 0

Data

Row 0 Empty

(Row 0, Column 1)

Column address 1

(Row 0, Column 85)

Column address 85

(Row 1, Column 0)

HIT HIT

Row address 1

Row 1

Column address 0

CONFLICT !

Columns

Row

s

Access Address:

Page 12: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Scheduling Policy for Single-Core Systems

A row-conflict memory access takes significantly longer than a row-hit access

Current controllers take advantage of the row buffer

FR-FCFS (first ready, first come first served) scheduling policy

1. Row-hit first

2. Oldest first

Goal 1: Maximize row buffer hit rate maximize DRAM throughput

Goal 2: Prioritize older requests ensure forward progress

Is this a good policy in a multi-core system?

12

Page 13: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Trend: Many Cores on Chip

Simpler and lower power than a single large core

Large scale parallelism on chip

13

IBM Cell BE 8+1 cores

Intel Core i7 8 cores

Tilera TILE Gx 100 cores, networked

IBM POWER7 8 cores

Intel SCC 48 cores, networked

Nvidia Fermi 448 “cores”

AMD Barcelona 4 cores

Sun Niagara II 8 cores

Page 14: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Many Cores on Chip

What we want:

N times the system performance with N times the cores

What do we get today?

14

Page 15: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

(Un)expected Slowdowns in Multi-Core

15

Low priority

High priority

(Core 0) (Core 1)

Moscibroda and Mutlu, “Memory performance attacks: Denial of memory service in multi-core systems,” USENIX Security 2007.

Page 16: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

16

Uncontrolled Interference: An Example

CORE 1 CORE 2

L2

CACHE

L2

CACHE

DRAM MEMORY CONTROLLER

DRAM

Bank 0

DRAM

Bank 1

DRAM

Bank 2

Shared DRAM

Memory System

Multi-Core

Chip

unfairness

INTERCONNECT

stream random

DRAM

Bank 3

Page 17: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

// initialize large arrays A, B

for (j=0; j<N; j++) {

index = rand();

A[index] = B[index];

}

17

A Memory Performance Hog

STREAM

- Sequential memory access

- Very high row buffer locality (96% hit rate)

- Memory intensive

RANDOM

- Random memory access

- Very low row buffer locality (3% hit rate)

- Similarly memory intensive

// initialize large arrays A, B

for (j=0; j<N; j++) {

index = j*linesize;

A[index] = B[index];

}

streaming random

Moscibroda and Mutlu, “Memory Performance Attacks,” USENIX Security 2007.

Page 18: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

18

What Does the Memory Hog Do?

Row Buffer

Row

decoder

Column mux

Data

Row 0

T0: Row 0

Row 0

T1: Row 16

T0: Row 0 T1: Row 111

T0: Row 0 T0: Row 0 T1: Row 5

T0: Row 0 T0: Row 0 T0: Row 0 T0: Row 0 T0: Row 0

Memory Request Buffer

T0: STREAM T1: RANDOM

Row size: 8KB, cache block size: 64B

128 (8KB/64B) requests of T0 serviced before T1

Moscibroda and Mutlu, “Memory Performance Attacks,” USENIX Security 2007.

Page 19: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Effect of the Memory Performance Hog

19

1.18X slowdown

2.82X slowdown

Results on Intel Pentium D running Windows XP

(Similar results for Intel Core Duo and AMD Turion, and on Fedora Linux)

Slo

wd

ow

n

0

0.5

1

1.5

2

2.5

3

STREAM gcc

0

0.5

1

1.5

2

2.5

3

STREAM Virtual PC

Moscibroda and Mutlu, “Memory Performance Attacks,” USENIX Security 2007.

Page 20: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Problems due to Uncontrolled Interference

20

Unfair slowdown of different threads

Low system performance

Vulnerability to denial of service

Priority inversion: unable to enforce priorities/SLAs

Cores make

very slow

progress

Memory performance hog Low priority

High priority S

low

do

wn

Main memory is the only shared resource

Page 21: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Problems due to Uncontrolled Interference

21

Unfair slowdown of different threads

Low system performance

Vulnerability to denial of service

Priority inversion: unable to enforce priorities/SLAs

Poor performance predictability (no performance isolation)

Uncontrollable, unpredictable system

Page 22: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Inter-Thread Interference in Memory

Memory controllers, pins, and memory banks are shared

Pin bandwidth is not increasing as fast as number of cores

Bandwidth per core reducing

Different threads executing on different cores interfere with each other in the main memory system

Threads delay each other by causing resource contention:

Bank, bus, row-buffer conflicts reduced DRAM throughput

Threads can also destroy each other’s DRAM bank parallelism

Otherwise parallel requests can become serialized

22

Page 23: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Effects of Inter-Thread Interference in DRAM

Queueing/contention delays

Bank conflict, bus conflict, channel conflict, …

Additional delays due to DRAM constraints

Called “protocol overhead”

Examples

Row conflicts

Read-to-write and write-to-read delays

Loss of intra-thread parallelism

A thread’s concurrent requests are serviced serially instead of in parallel

23

Page 24: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Problem: QoS-Unaware Memory Control

Existing DRAM controllers are unaware of inter-thread interference in DRAM system

They simply aim to maximize DRAM throughput

Thread-unaware and thread-unfair

No intent to service each thread’s requests in parallel

FR-FCFS policy: 1) row-hit first, 2) oldest first

Unfairly prioritizes threads with high row-buffer locality

Unfairly prioritizes threads that are memory intensive (many outstanding memory accesses)

24

Page 25: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Solution: QoS-Aware Memory Request Scheduling

How to schedule requests to provide

High system performance

High fairness to applications

Configurability to system software

Memory controller needs to be aware of threads

25

Memory Controller

Core Core

Core Core

Memory

Resolves memory contention by scheduling requests

Page 26: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Stall-Time Fair Memory Scheduling

Onur Mutlu and Thomas Moscibroda,

"Stall-Time Fair Memory Access Scheduling for Chip Multiprocessors"

40th International Symposium on Microarchitecture (MICRO),

pages 146-158, Chicago, IL, December 2007. Slides (ppt)

STFM Micro 2007 Talk

Page 27: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

The Problem: Unfairness

Vulnerable to denial of service

Unable to enforce priorities or service-level agreements

Low system performance

Uncontrollable, unpredictable system

27

Page 28: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

How Do We Solve the Problem?

Stall-time fair memory scheduling [Mutlu+ MICRO’07]

Goal: Threads sharing main memory should experience similar slowdowns compared to when they are run alone

fair scheduling

Also improves overall system performance by ensuring cores make “proportional” progress

Idea: Memory controller estimates each thread’s slowdown due to interference and schedules requests in a way to balance the slowdowns

Mutlu and Moscibroda, “Stall-Time Fair Memory Access Scheduling for Chip Multiprocessors,” MICRO 2007.

28

Page 29: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

29

Stall-Time Fairness in Shared DRAM Systems

A DRAM system is fair if it equalizes the slowdown of equal-priority threads relative to when each thread is run alone on the same system

DRAM-related stall-time: The time a thread spends waiting for DRAM memory

STshared: DRAM-related stall-time when the thread runs with other threads

STalone: DRAM-related stall-time when the thread runs alone

Memory-slowdown = STshared/STalone Relative increase in stall-time

Stall-Time Fair Memory scheduler (STFM) aims to equalize Memory-slowdown for interfering threads, without sacrificing performance

Considers inherent DRAM performance of each thread

Aims to allow proportional progress of threads

Page 30: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

30

STFM Scheduling Algorithm [MICRO’07]

For each thread, the DRAM controller

Tracks STshared

Estimates STalone

Each cycle, the DRAM controller

Computes Slowdown = STshared/STalone for threads with legal requests

Computes unfairness = MAX Slowdown / MIN Slowdown

If unfairness <

Use DRAM throughput oriented scheduling policy

If unfairness ≥

Use fairness-oriented scheduling policy

(1) requests from thread with MAX Slowdown first

(2) row-hit first , (3) oldest-first

Page 31: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

31

How Does STFM Prevent Unfairness?

Row Buffer

Data

Row 0

T0: Row 0

Row 0

T1: Row 16

T0: Row 0

T1: Row 111

T0: Row 0 T0: Row 0

T1: Row 5

T0: Row 0 T0: Row 0

T0: Row 0

T0 Slowdown

T1 Slowdown 1.00

1.00

1.00 Unfairness

1.03

1.03

1.06

1.06

1.05

1.03

1.06

1.03 1.04

1.08

1.04

1.04

1.11

1.06

1.07

1.04

1.10

1.14

1.03

Row 16 Row 111

Page 32: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

STFM Pros and Cons

Upsides:

First algorithm for fair multi-core memory scheduling

Provides a mechanism to estimate memory slowdown of a thread

Good at providing fairness

Being fair can improve performance

Downsides:

Does not handle all types of interference

(Somewhat) complex to implement

Slowdown estimations can be incorrect

32

Page 34: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Another Problem due to Interference

Processors try to tolerate the latency of DRAM requests by generating multiple outstanding requests

Memory-Level Parallelism (MLP)

Out-of-order execution, non-blocking caches, runahead execution

Effective only if the DRAM controller actually services the multiple requests in parallel in DRAM banks

Multiple threads share the DRAM controller

DRAM controllers are not aware of a thread’s MLP

Can service each thread’s outstanding requests serially, not in parallel

34

Page 35: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Bank Parallelism of a Thread

35

Thread A: Bank 0, Row 1

Thread A: Bank 1, Row 1

Bank access latencies of the two requests overlapped

Thread stalls for ~ONE bank access latency

Thread A :

Bank 0 Bank 1

Compute

2 DRAM Requests

Bank 0

Stall Compute

Bank 1

Single Thread:

Page 36: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Compute

Compute

2 DRAM Requests

Bank Parallelism Interference in DRAM

36

Bank 0 Bank 1

Thread A: Bank 0, Row 1

Thread B: Bank 1, Row 99

Thread B: Bank 0, Row 99

Thread A: Bank 1, Row 1

A : Compute

2 DRAM Requests

Bank 0

Stall

Bank 1

Baseline Scheduler:

B: Compute

Bank 0

Stall Bank 1

Stall

Stall

Bank access latencies of each thread serialized

Each thread stalls for ~TWO bank access latencies

Page 37: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

2 DRAM Requests

Parallelism-Aware Scheduler

37

Bank 0 Bank 1

Thread A: Bank 0, Row 1

Thread B: Bank 1, Row 99

Thread B: Bank 0, Row 99

Thread A: Bank 1, Row 1

A :

2 DRAM Requests

Parallelism-aware Scheduler:

B: Compute Bank 0

Stall Compute

Bank 1

Stall

2 DRAM Requests

A : Compute

2 DRAM Requests

Bank 0

Stall Compute

Bank 1

B: Compute

Bank 0

Stall Compute

Bank 1

Stall

Stall

Baseline Scheduler:

Compute

Bank 0

Stall Compute

Bank 1

Saved Cycles Average stall-time:

~1.5 bank access

latencies

Page 38: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Parallelism-Aware Batch Scheduling (PAR-BS)

Principle 1: Parallelism-awareness

Schedule requests from a thread (to different banks) back to back

Preserves each thread’s bank parallelism

But, this can cause starvation…

Principle 2: Request Batching

Group a fixed number of oldest requests from each thread into a “batch”

Service the batch before all other requests

Form a new batch when the current one is done

Eliminates starvation, provides fairness

Allows parallelism-awareness within a batch

38

Bank 0 Bank 1

T1

T1

T0

T0

T2

T2

T3

T3

T2 T2

T2

Batch

T0

T1 T1

Mutlu and Moscibroda, “Parallelism-Aware Batch Scheduling,” ISCA 2008.

Page 39: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

PAR-BS Components

Request batching

Within-batch scheduling Parallelism aware

39

Page 40: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Request Batching

Each memory request has a bit (marked) associated with it

Batch formation:

Mark up to Marking-Cap oldest requests per bank for each thread

Marked requests constitute the batch

Form a new batch when no marked requests are left

Marked requests are prioritized over unmarked ones

No reordering of requests across batches: no starvation, high fairness

How to prioritize requests within a batch?

40

Page 41: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Within-Batch Scheduling

Can use any existing DRAM scheduling policy

FR-FCFS (row-hit first, then oldest-first) exploits row-buffer locality

But, we also want to preserve intra-thread bank parallelism

Service each thread’s requests back to back

Scheduler computes a ranking of threads when the batch is formed

Higher-ranked threads are prioritized over lower-ranked ones

Improves the likelihood that requests from a thread are serviced in parallel by different banks

Different threads prioritized in the same order across ALL banks

41

HOW?

Page 42: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

How to Rank Threads within a Batch

Ranking scheme affects system throughput and fairness

Maximize system throughput

Minimize average stall-time of threads within the batch

Minimize unfairness (Equalize the slowdown of threads)

Service threads with inherently low stall-time early in the batch

Insight: delaying memory non-intensive threads results in high slowdown

Shortest stall-time first (shortest job first) ranking

Provides optimal system throughput [Smith, 1956]*

Controller estimates each thread’s stall-time within the batch

Ranks threads with shorter stall-time higher

42

* W.E. Smith, “Various optimizers for single stage production,” Naval Research Logistics Quarterly, 1956.

Page 43: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Maximum number of marked requests to any bank (max-bank-load)

Rank thread with lower max-bank-load higher (~ low stall-time)

Total number of marked requests (total-load)

Breaks ties: rank thread with lower total-load higher

Shortest Stall-Time First Ranking

43

T2 T3 T1

T0

Bank 0 Bank 1 Bank 2 Bank 3

T3

T3 T1 T3

T2 T2 T1 T2

T1 T0 T2 T0

T3 T2 T3

T3

T3

T3 max-bank-load total-load

T0 1 3

T1 2 4

T2 2 6

T3 5 9

Ranking:

T0 > T1 > T2 > T3

Page 44: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

7

5

3

Example Within-Batch Scheduling Order

44

T2 T3 T1

T0

Bank 0 Bank 1 Bank 2 Bank 3

T3

T3 T1 T3

T2 T2 T1 T2

T1 T0 T2 T0

T3 T2 T3

T3

T3

T3 Baseline Scheduling

Order (Arrival order)

PAR-BS Scheduling

Order

T2

T3

T1 T0

Bank 0 Bank 1 Bank 2 Bank 3

T3

T3

T1

T3 T2 T2

T1 T2 T1

T0

T2

T0

T3 T2

T3

T3

T3

T3

T0 T1 T2 T3

4 4 5 7

AVG: 5 bank access latencies AVG: 3.5 bank access latencies

Stall times

T0 T1 T2 T3

1 2 4 7 Stall times

Tim

e

1

2

4

6

Ranking: T0 > T1 > T2 > T3

1

2

3

4

5

6

7

Tim

e

Page 45: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Putting It Together: PAR-BS Scheduling Policy

PAR-BS Scheduling Policy

(1) Marked requests first

(2) Row-hit requests first

(3) Higher-rank thread first (shortest stall-time first)

(4) Oldest first

Three properties:

Exploits row-buffer locality and intra-thread bank parallelism

Work-conserving

Services unmarked requests to banks without marked requests

Marking-Cap is important

Too small cap: destroys row-buffer locality

Too large cap: penalizes memory non-intensive threads

Mutlu and Moscibroda, “Parallelism-Aware Batch Scheduling,” ISCA 2008.

45

Batching

Parallelism-aware

within-batch

scheduling

Page 46: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Hardware Cost

<1.5KB storage cost for

8-core system with 128-entry memory request buffer

No complex operations (e.g., divisions)

Not on the critical path

Scheduler makes a decision only every DRAM cycle

46

Page 47: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

47

Unfairness on 4-, 8-, 16-core Systems

1

1.5

2

2.5

3

3.5

4

4.5

5

4-core 8-core 16-core

Un

fair

ness (

low

er

is b

ett

er)

FR-FCFS

FCFS

NFQ

STFM

PAR-BS

Unfairness = MAX Memory Slowdown / MIN Memory Slowdown [MICRO 2007]

Page 48: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

48

System Performance

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1.1

1.2

1.3

1.4

4-core 8-core 16-core

No

rmalized

Hm

ean

Sp

eed

up

FR-FCFS

FCFS

NFQ

STFM

PAR-BS

Page 49: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

PAR-BS Pros and Cons

Upsides:

First scheduler to address bank parallelism destruction across multiple threads

Simple mechanism (vs. STFM)

Batching provides fairness

Ranking enables parallelism awareness

Downsides:

Implementation in multiple controllers needs coordination for best performance too frequent coordination since batching

is done frequently

Does not always prioritize the latency-sensitive applications

49

Page 50: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM:

Thread Cluster Memory Scheduling

Yoongu Kim, Michael Papamichael, Onur Mutlu, and Mor Harchol-Balter, "Thread Cluster Memory Scheduling:

Exploiting Differences in Memory Access Behavior" 43rd International Symposium on Microarchitecture (MICRO), pages 65-76, Atlanta, GA, December 2010. Slides (pptx) (pdf)

TCM Micro 2010 Talk

Page 51: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

No previous memory scheduling algorithm provides both the best fairness and system throughput

1

3

5

7

9

11

13

15

17

7 7.5 8 8.5 9 9.5 10

Max

imu

m S

low

do

wn

Weighted Speedup

FCFS

FRFCFS

STFM

PAR-BS

ATLAS

51

System throughput bias

Fairness bias

Better system throughput

Bet

ter

fair

ne

ss

24 cores, 4 memory controllers, 96 workloads

Throughput vs. Fairness

Page 52: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Take turns accessing memory

Throughput vs. Fairness

52

Fairness biased approach

thread C

thread B

thread A

less memory intensive

higher priority

Prioritize less memory-intensive threads

Throughput biased approach

Good for throughput

starvation unfairness

thread C thread B thread A

Does not starve

not prioritized reduced throughput

Single policy for all threads is insufficient

Page 53: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Achieving the Best of Both Worlds

53

thread

thread

higher priority

thread

thread

thread

thread

thread

thread

Prioritize memory-non-intensive threads

For Throughput

Unfairness caused by memory-intensive being prioritized over each other

• Shuffle thread ranking

Memory-intensive threads have different vulnerability to interference

• Shuffle asymmetrically

For Fairness

thread

thread

thread

thread

Page 54: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Thread Cluster Memory Scheduling [Kim+ MICRO’10]

1. Group threads into two clusters 2. Prioritize non-intensive cluster 3. Different policies for each cluster

54

thread

Threads in the system

thread

thread

thread

thread

thread

thread

Non-intensive cluster

Intensive cluster

thread

thread

thread

Memory-non-intensive

Memory-intensive

Prioritized

higher priority

higher priority

Throughput

Fairness

Page 55: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Clustering Threads

Step1 Sort threads by MPKI (misses per kiloinstruction)

55

thre

ad

thre

ad

thre

ad

thre

ad

thre

ad

thre

ad higher

MPKI

T α < 10%

ClusterThreshold

Intensive cluster αT

Non-intensive cluster

T = Total memory bandwidth usage

Step2 Memory bandwidth usage αT divides clusters

Page 56: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM: Quantum-Based Operation

56

Time

Previous quantum (~1M cycles)

During quantum: • Monitor thread behavior

1. Memory intensity 2. Bank-level parallelism 3. Row-buffer locality

Beginning of quantum: • Perform clustering • Compute niceness of

intensive threads

Current quantum (~1M cycles)

Shuffle interval (~1K cycles)

Page 57: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM: Scheduling Algorithm

1. Highest-rank: Requests from higher ranked threads prioritized

• Non-Intensive cluster > Intensive cluster

• Non-Intensive cluster: lower intensity higher rank

• Intensive cluster: rank shuffling

2.Row-hit: Row-buffer hit requests are prioritized

3.Oldest: Older requests are prioritized

57

Page 58: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM: Throughput and Fairness

FRFCFS

STFM

PAR-BS

ATLAS

TCM

4

6

8

10

12

14

16

7.5 8 8.5 9 9.5 10

Max

imu

m S

low

do

wn

Weighted Speedup

58

Better system throughput

Bet

ter

fair

ne

ss

24 cores, 4 memory controllers, 96 workloads

TCM, a heterogeneous scheduling policy, provides best fairness and system throughput

Page 59: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM: Fairness-Throughput Tradeoff

59

2

4

6

8

10

12

12 13 14 15 16

Max

imu

m S

low

do

wn

Weighted Speedup

When configuration parameter is varied…

Adjusting ClusterThreshold

TCM allows robust fairness-throughput tradeoff

STFM PAR-BS

ATLAS

TCM

Better system throughput

Bet

ter

fair

ne

ss FRFCFS

Page 60: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

TCM Pros and Cons

Upsides:

Provides both high fairness and high performance

Caters to the needs for different types of threads (latency vs. bandwidth sensitive)

(Relatively) simple

Downsides:

Scalability to large buffer sizes?

Robustness of clustering and shuffling algorithms?

60

Page 61: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Other Ways of Handling Interference

Page 62: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Fundamental Interference Control Techniques

Goal: to reduce/control interference

1. Prioritization or request scheduling

2. Data mapping to banks/channels/ranks

3. Core/source throttling

4. Application/thread scheduling

62

Page 63: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Memory Channel Partitioning

Idea: Map badly-interfering applications’ pages to different channels [Muralidhara+, MICRO’11]

Separate data of low/high intensity and low/high row-locality applications

Especially effective in reducing interference of threads with “medium” and “heavy” memory intensity

Memory Channel Partitioning

63

Core 0 App A

Core 1 App B

Channel 0

Bank 1

Channel 1

Bank 0

Bank 1

Bank 0

Conventional Page Mapping

Time Units

1 2 3 4 5

Channel Partitioning

Core 0 App A

Core 1 App B

Channel 0

Bank 1

Bank 0

Bank 1

Bank 0

Time Units

1 2 3 4 5

Channel 1

Muralidhara et al., “Memory Channel Partitioning,” MICRO’11.

Page 64: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Memory Channel Partitioning (MCP) Mechanism

1. Profile applications

2. Classify applications into groups

3. Partition channels between application groups

4. Assign a preferred channel to each application

5. Allocate application pages to preferred channel

64

Hardware

System

Software

Page 65: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Observations

Applications with very low memory-intensity rarely access memory Dedicating channels to them results in precious memory bandwidth waste

They have the most potential to keep their cores busy We would really like to prioritize them

They interfere minimally with other applications Prioritizing them does not hurt others

65

Page 66: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Integrated Memory Partitioning and Scheduling (IMPS)

Always prioritize very low memory-intensity applications in the memory scheduler

Use memory channel partitioning to mitigate interference between other applications

66 Muralidhara et al., “Memory Channel Partitioning,” MICRO’11.

Page 67: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Fundamental Interference Control Techniques

Goal: to reduce/control interference

1. Prioritization or request scheduling

2. Data mapping to banks/channels/ranks

3. Core/source throttling

4. Application/thread scheduling

67

Page 68: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

An Alternative Approach: Source Throttling

Manage inter-thread interference at the cores (sources), not at the shared resources

Dynamically estimate unfairness in the memory system

Feed back this information into a controller

Throttle cores’ memory access rates accordingly

Whom to throttle and by how much depends on performance target (throughput, fairness, per-thread QoS, etc)

E.g., if unfairness > system-software-specified target then throttle down core causing unfairness & throttle up core that was unfairly treated

Ebrahimi et al., “Fairness via Source Throttling,” ASPLOS’10, TOCS’12.

68

Page 69: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

69

Runtime Unfairness Evaluation

Dynamic Request Throttling

1- Estimating system unfairness 2- Find app. with the highest slowdown (App-slowest) 3- Find app. causing most interference for App-slowest (App-interfering)

if (Unfairness Estimate >Target) { 1-Throttle down App-interfering (limit injection rate and parallelism)

2-Throttle up App-slowest }

FST

Unfairness Estimate

App-slowest

App-interfering

⎪ ⎧

Slowdown Estimation

Time Interval 1 Interval 2 Interval 3

Runtime Unfairness Evaluation

Dynamic Request Throttling

Fairness via Source Throttling (FST) [ASPLOS’10]

Page 70: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Core (Source) Throttling

Idea: Estimate the slowdown due to (DRAM) interference and throttle down threads that slow down others

Ebrahimi et al., “Fairness via Source Throttling: A Configurable and High-Performance Fairness Substrate for Multi-Core Memory Systems,” ASPLOS 2010.

Advantages

+ Core/request throttling is easy to implement: no need to change the memory scheduling algorithm

+ Can be a general way of handling shared resource contention

Disadvantages

- Requires interference/slowdown estimations

- Thresholds can become difficult to optimize throughput loss 70

Page 71: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Fundamental Interference Control Techniques

Goal: to reduce/control interference

1. Prioritization or request scheduling

2. Data mapping to banks/channels/ranks

3. Core/source throttling

4. Application/thread scheduling

Idea: Pick threads that do not badly interfere with each other to be scheduled together on cores sharing the memory system

71

Page 72: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Handling Interference in Parallel Applications

Threads in a multithreaded application are inter-dependent

Some threads can be on the critical path of execution due to synchronization; some threads are not

How do we schedule requests of inter-dependent threads to maximize multithreaded application performance?

Idea: Estimate limiter threads likely to be on the critical path and prioritize their requests; shuffle priorities of non-limiter threads to reduce memory interference among them [Ebrahimi+, MICRO’11]

Hardware/software cooperative limiter thread estimation:

Thread executing the most contended critical section

Thread that is falling behind the most in a parallel for loop

72

Page 73: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

We did not cover the following slides in

lecture. These are for your benefit.

Page 75: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Rethinking Memory Scheduling

A thread alternates between two states (episodes)

Compute episode: Zero outstanding memory requests High IPC

Memory episode: Non-zero outstanding memory requests Low IPC

75

Goal: Minimize time spent in memory episodes

Outs

tandin

g

mem

ory

request

s

Time

Memory episode Compute episode

Page 76: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

How to Minimize Memory Episode Time

Minimizes time spent in memory episodes across all threads

Supported by queueing theory:

Shortest-Remaining-Processing-Time scheduling is optimal in single-server queue

Remaining length of a memory episode?

Prioritize thread whose memory episode will end the soonest

Time

Outs

tandin

g

mem

ory

request

s

How much longer?

76

Page 77: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Predicting Memory Episode Lengths

Large attained service Large expected remaining service

Q: Why?

A: Memory episode lengths are Pareto distributed…

77

We discovered: past is excellent predictor for future

Time

Outs

tandin

g

mem

ory

request

s

Remaining service FUTURE

Attained service PAST

Page 78: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Pareto Distribution of Memory Episode Lengths

78

401.bzip2

Favoring least-attained-service memory episode

= Favoring memory episode which will end the soonest

Pr{

Mem

. ep

isod

e >

x}

x (cycles)

Memory episode lengths of SPEC benchmarks

Pareto distribution

Attained service correlates with remaining service

The longer an episode has lasted The longer it will last further

Page 79: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Prioritize the job with shortest-remaining-processing-time

Provably optimal

Remaining service: Correlates with attained service Attained service: Tracked by per-thread counter

Least Attained Service (LAS) Memory Scheduling

79

Prioritize the memory episode with least-remaining-service

Our Approach Queueing Theory

Least-attained-service (LAS) scheduling:

Minimize memory episode time

However, LAS does not consider long-term thread behavior

Prioritize the memory episode with least-attained-service

Page 80: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Long-Term Thread Behavior

80

Mem. episode

Thread 1 Thread 2

Short-term thread behavior

Mem. episode

Long-term thread behavior

Compute episode

Compute episode

> priority

< priority

Prioritizing Thread 2 is more beneficial: results in very long stretches of compute episodes

Short memory episode Long memory episode

Page 81: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Quantum-Based Attained Service of a Thread

81

Time O

uts

tandin

g

mem

ory

request

s Attained service

Short-term thread behavior

We divide time into large, fixed-length intervals: quanta (millions of cycles)

Attained service

Long-term thread behavior

Outs

tandin

g

mem

ory

request

s

Time

Quantum (millions of cycles)

Page 82: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

LAS Thread Ranking

Each thread’s attained service (AS) is tracked by MCs

ASi = A thread’s AS during only the i-th quantum

Each thread’s TotalAS computed as:

TotalASi = α · TotalASi-1 + (1- α) · ASi

High α More bias towards history

Threads are ranked, favoring threads with lower TotalAS

Threads are serviced according to their ranking

During a quantum

End of a quantum

Next quantum

82

Page 83: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

ATLAS Scheduling Algorithm

ATLAS Adaptive per-Thread Least Attained Service

Request prioritization order

1. Prevent starvation: Over threshold request

2. Maximize performance: Higher LAS rank

3. Exploit locality: Row-hit request

4. Tie-breaker: Oldest request

83

How to coordinate MCs to agree upon a consistent ranking?

Page 84: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

4

6

8

10

12

14

16

1 2 4 8 16

Memory controllers

Syst

em t

hro

ugh

pu

t

FCFS FR_FCFS STFM PAR-BS ATLAS

System Throughput: 24-Core System

84

System throughput = ∑ Speedup

ATLAS consistently provides higher system throughput than all previous scheduling algorithms

17.0%

9.8%

8.4%

5.9%

3.5%

Syst

em

thro

ughput

# of memory controllers

Page 85: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

0

2

4

6

8

10

12

14

4 8 16 24 32

Cores

Syst

em t

hro

ugh

pu

t

PAR-BS ATLAS

System Throughput: 4-MC System

# of cores increases ATLAS performance benefit increases

85

1.1% 3.5%

4.0%

8.4%

10.8%

Syst

em

thro

ughput

# of cores

Page 86: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

ATLAS Pros and Cons

Upsides:

Good at improving performance

Low complexity

Coordination among controllers happens infrequently

Downsides:

Lowest ranked threads get delayed significantly high

unfairness

86

Page 87: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Emerging Non-Volatile Memory

Technologies

Page 88: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Aside: Non-Volatile Memory

If memory were non-volatile…

there would be no need for refresh…

we would not lose data on power loss…

Problem: non-volatile has traditionally been much slower than DRAM

Think hard disks… Even flash memory…

Opportunity: there are some emerging memory technologies that are relatively fast, and non-volatile.

And, they seem more scalable than DRAM

Question: Can we have emerging technologies as part of main memory?

88

Page 89: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Emerging Memory Technologies

Some emerging resistive memory technologies seem more scalable than DRAM (and they are non-volatile)

Example: Phase Change Memory

Data stored by changing phase of material

Data read by detecting material’s resistance

Expected to scale to 9nm (2022 [ITRS])

Prototyped at 20nm (Raoux+, IBM JRD 2008)

Expected to be denser than DRAM: can store multiple bits/cell

But, emerging technologies have (many) shortcomings

Can they be enabled to replace/augment/surpass DRAM?

89

Page 90: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Emerging Resistive Memory Technologies

PCM

Inject current to change material phase

Resistance determined by phase

STT-MRAM

Inject current to change magnet polarity

Resistance determined by polarity

Memristors

Inject current to change atomic structure

Resistance determined by atom distance

90

Page 91: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

What is Phase Change Memory?

Phase change material (chalcogenide glass) exists in two states:

Amorphous: Low optical reflexivity and high electrical resistivity

Crystalline: High optical reflexivity and low electrical resistivity

91

PCM is resistive memory: High resistance (0), Low resistance (1)

PCM cell can be switched between states reliably and quickly

Page 92: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

How Does PCM Work?

Write: change phase via current injection

SET: sustained current to heat cell above Tcryst

RESET: cell heated above Tmelt and quenched

Read: detect phase via material resistance

amorphous/crystalline

92

Large Current

SET (cryst) Low resistance

103-104 W

Small Current

RESET (amorph) High resistance

Access Device

Memory Element

106-107 W

Photo Courtesy: Bipin Rajendran, IBM Slide Courtesy: Moinuddin Qureshi, IBM

Page 93: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Phase Change Memory: Pros and Cons

Pros over DRAM

Better technology scaling (capacity and cost)

Non volatility

Low idle power (no refresh)

Cons

Higher latencies: ~4-15x DRAM (especially write)

Higher active energy: ~2-50x DRAM (especially write)

Lower endurance (a cell dies after ~108 writes)

Challenges in enabling PCM as DRAM replacement/helper:

Mitigate PCM shortcomings

Find the right way to place PCM in the system

93

Page 94: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

PCM-based Main Memory (I)

How should PCM-based (main) memory be organized?

Hybrid PCM+DRAM [Qureshi+ ISCA’09, Dhiman+ DAC’09]:

How to partition/migrate data between PCM and DRAM

94

Page 95: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

PCM-based Main Memory (II)

How should PCM-based (main) memory be organized?

Pure PCM main memory [Lee et al., ISCA’09, Top Picks’10]:

How to redesign entire hierarchy (and cores) to overcome PCM shortcomings

95

Page 96: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

PCM-Based Memory Systems: Research Challenges

Partitioning

Should DRAM be a cache or main memory, or configurable?

What fraction? How many controllers?

Data allocation/movement (energy, performance, lifetime)

Who manages allocation/movement?

What are good control algorithms?

How do we prevent degradation of service due to wearout?

Design of cache hierarchy, memory controllers, OS

Mitigate PCM shortcomings, exploit PCM advantages

Design of PCM/DRAM chips and modules

Rethink the design of PCM/DRAM with new requirements

96

Page 97: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

An Initial Study: Replace DRAM with PCM

Lee, Ipek, Mutlu, Burger, “Architecting Phase Change Memory as a Scalable DRAM Alternative,” ISCA 2009.

Surveyed prototypes from 2003-2008 (e.g. IEDM, VLSI, ISSCC)

Derived “average” PCM parameters for F=90nm

97

Page 98: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Results: Naïve Replacement of DRAM with PCM

Replace DRAM with PCM in a 4-core, 4MB L2 system

PCM organized the same as DRAM: row buffers, banks, peripherals

1.6x delay, 2.2x energy, 500-hour average lifetime

Lee, Ipek, Mutlu, Burger, “Architecting Phase Change Memory as a Scalable DRAM Alternative,” ISCA 2009.

98

Page 99: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Architecting PCM to Mitigate Shortcomings

Idea 1: Use multiple narrow row buffers in each PCM chip

Reduces array reads/writes better endurance, latency, energy

Idea 2: Write into array at

cache block or word

granularity

Reduces unnecessary wear

99

DRAM PCM

Page 100: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Results: Architected PCM as Main Memory

1.2x delay, 1.0x energy, 5.6-year average lifetime

Scaling improves energy, endurance, density

Caveat 1: Worst-case lifetime is much shorter (no guarantees)

Caveat 2: Intensive applications see large performance and energy hits

Caveat 3: Optimistic PCM parameters? 100

Page 101: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

Hybrid Memory Systems

Meza+, “Enabling Efficient and Scalable Hybrid Memories,” IEEE Comp. Arch. Letters, 2012.

Yoon, Meza et al., “Row Buffer Locality Aware Caching Policies for Hybrid Memories,” ICCD 2012 Best Paper Award.

CPU DRAMCtrl

Fast, durable Small,

leaky, volatile, high-cost

Large, non-volatile, low-cost Slow, wears out, high active energy

PCM Ctrl DRAM Phase Change Memory (or Tech. X)

Hardware/software manage data allocation and movement to achieve the best of multiple technologies

Page 102: 18-447: Computer Architecturecourse.ece.cmu.edu/.../exe/fetch.php?media=onur-447... · Onur Mutlu and Thomas Moscibroda, "Parallelism-Aware Batch Scheduling: Enhancing both Performance

One Option: DRAM as a Cache for PCM

PCM is main memory; DRAM caches memory rows/blocks

Benefits: Reduced latency on DRAM cache hit; write filtering

Memory controller hardware manages the DRAM cache

Benefit: Eliminates system software overhead

Three issues:

What data should be placed in DRAM versus kept in PCM?

What is the granularity of data movement?

How to design a low-cost hardware-managed DRAM cache?

Two idea directions:

Locality-aware data placement [Yoon+ , ICCD 2012]

Cheap tag stores and dynamic granularity [Meza+, IEEE CAL 2012]

102