Rethinking the Memory Hierarchy for Modern Languages Po-An Tsai , - - PowerPoint PPT Presentation

rethinking the memory hierarchy for modern languages
SMART_READER_LITE
LIVE PREVIEW

Rethinking the Memory Hierarchy for Modern Languages Po-An Tsai , - - PowerPoint PPT Presentation

Rethinking the Memory Hierarchy for Modern Languages Po-An Tsai , Yee Ling Gan, and Daniel Sanchez Memory systems expose an inexpressive interface 2 Memory systems expose an inexpressive interface Program Flat address Arbitrary loads space


slide-1
SLIDE 1

Rethinking the Memory Hierarchy for Modern Languages

Po-An Tsai, Yee Ling Gan, and Daniel Sanchez

slide-2
SLIDE 2

Memory systems expose an inexpressive interface

2

slide-3
SLIDE 3

Memory systems expose an inexpressive interface

2

Memory hierarchy

Arbitrary loads and stores Flat address space

Program

slide-4
SLIDE 4

Memory systems expose an inexpressive interface

2

Memory hierarchy

Arbitrary loads and stores Flat address space

Program

  • Obj. A
  • Obj. B

Programmers think of objects and pointers among objects

0x0000 0xFFFF

slide-5
SLIDE 5

Modern languages expose an object-based memory model

3

Memory hierarchy

Loads and stores to objects Flat address space

Runtime/Compiler Program

Object-based model Object accesses

 Strictly hiding the flat address space provides many benefits:

 Memory safety prevents memory corruption bugs  Automatic memory management (garbage collection) simplifies programming

  • Obj. A
  • Obj. B

0x0000 0xFFFF

slide-6
SLIDE 6

The inexpressive flat address space is inefficient

4

Memory hierarchy

Flat address space

Runtime/Compiler Program

Object-based model

slide-7
SLIDE 7

The inexpressive flat address space is inefficient

4

Memory hierarchy

Flat address space

Runtime/Compiler Program

Object-based model Semantic gap between programs and the memory hierarchy

slide-8
SLIDE 8

The inexpressive flat address space is inefficient

4

Memory hierarchy

Flat address space

Runtime/Compiler Program

Object-based model Semantic gap between programs and the memory hierarchy

Main Mem. Core L1 $ L2 $

  • Obj. A

Obj B

  • Obj. C

0x0000 0xFFFF

slide-9
SLIDE 9

The inexpressive flat address space is inefficient

4 Mismatch between

  • bjects and cache lines

Memory hierarchy

Flat address space

Runtime/Compiler Program

Object-based model Semantic gap between programs and the memory hierarchy

Main Mem. Core L1 $ L2 $

  • Obj. A

Obj B

  • Obj. C

0x0000 0xFFFF

slide-10
SLIDE 10

The inexpressive flat address space is inefficient

4 Mismatch between

  • bjects and cache lines

Costly associative lookups

Memory hierarchy

Flat address space

Runtime/Compiler Program

Object-based model Semantic gap between programs and the memory hierarchy

Main Mem. Core L1 $ L2 $

  • Obj. A

Obj B

  • Obj. C

0x0000 0xFFFF

slide-11
SLIDE 11

Hotpads: An object-based memory hierarchy

5

slide-12
SLIDE 12

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

slide-13
SLIDE 13

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

Hotpads

Object-based ISA Object operations

Program

Manages objects

slide-14
SLIDE 14

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

Hotpads

Object-based ISA Object operations

Program

Manages objects

Core L1 pad L2 pad L3 pad

slide-15
SLIDE 15

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

Hotpads

Object-based ISA Object operations

Program

Manages objects

Hotpads manages objects instead of cache lines Core L1 pad L2 pad L3 pad

slide-16
SLIDE 16

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

Hotpads

Object-based ISA Object operations

Program

Manages objects

Hotpads manages objects instead of cache lines Core L1 pad L2 pad L3 pad Hotpads rewrites pointers to reduce associative lookups

slide-17
SLIDE 17

Hotpads: An object-based memory hierarchy

5

 A memory hierarchy designed from the ground up for object-based programs

 Provides first-class support for objects and pointers in the ISA  Hides the memory layout from software and takes control over it

Hotpads

Object-based ISA Object operations

Program

Manages objects

Hotpads manages objects instead of cache lines Hotpads provides architectural support for in-hierarchy object allocation and recycling Core L1 pad L2 pad L3 pad Hotpads rewrites pointers to reduce associative lookups

slide-18
SLIDE 18

Prior architectural support for object-based programs

6

slide-19
SLIDE 19

Prior architectural support for object-based programs

6

 Object-oriented/typed systems [iAPX432, Dally ISCA’85, CHERI ISCA’14, Kim et al. ASPLOS’17]

focus on core microarchitecture design

 Accelerate virtual calls, object references

and dynamic type checks

Core L1 $ L2 $

Type check unit vFunction unit

slide-20
SLIDE 20

Prior architectural support for object-based programs

6

 Object-oriented/typed systems [iAPX432, Dally ISCA’85, CHERI ISCA’14, Kim et al. ASPLOS’17]

focus on core microarchitecture design

 Accelerate virtual calls, object references

and dynamic type checks

 Hardware accelerators for GC [The Lisp Machine,

Joao et al. ISCA’09, Maas et al. ISCA’18] Core L1 $ L2 $

Type check unit vFunction unit

Core L1 $ L2 $

GC unit

slide-21
SLIDE 21

Prior architectural support for object-based programs

6

 Object-oriented/typed systems [iAPX432, Dally ISCA’85, CHERI ISCA’14, Kim et al. ASPLOS’17]

focus on core microarchitecture design

 Accelerate virtual calls, object references

and dynamic type checks

 Hardware accelerators for GC [The Lisp Machine,

Joao et al. ISCA’09, Maas et al. ISCA’18] Core L1 $ L2 $

Type check unit vFunction unit

Core L1 $ L2 $

GC unit

Prior work uses standard cache hierarchies

slide-22
SLIDE 22

Prior architectural support for object-based programs

6

 Object-oriented/typed systems [iAPX432, Dally ISCA’85, CHERI ISCA’14, Kim et al. ASPLOS’17]

focus on core microarchitecture design

 Accelerate virtual calls, object references

and dynamic type checks

 Hardware accelerators for GC [The Lisp Machine,

Joao et al. ISCA’09, Maas et al. ISCA’18] Core L1 $ L2 $

Type check unit vFunction unit

Core L1 $ L2 $

GC unit

We focus on redesigning the memory hierarchy Prior work uses standard cache hierarchies

slide-23
SLIDE 23

Hotpads overview

7

slide-24
SLIDE 24

Hotpads overview

7

Core L1 pad L2 pad L3 pad

slide-25
SLIDE 25

Hotpads overview

7

 Data array

 Managed as a circular buffer using simple

bump pointer allocation

 Stores variable-sized objects compactly

Core L1 pad L2 pad L3 pad

Objects Data Array Free space

slide-26
SLIDE 26

Hotpads overview

7

 Data array

 Managed as a circular buffer using simple

bump pointer allocation

 Stores variable-sized objects compactly

Core L1 pad L2 pad L3 pad

Objects Data Array Free space

  • Obj. A
slide-27
SLIDE 27

Hotpads overview

7

 Data array

 Managed as a circular buffer using simple

bump pointer allocation

 Stores variable-sized objects compactly

Core L1 pad L2 pad L3 pad

Objects Data Array Free space

  • Obj. A
  • Obj. B
slide-28
SLIDE 28

Hotpads overview

7

 Data array

 Managed as a circular buffer using simple

bump pointer allocation

 Stores variable-sized objects compactly

 C-Tags

 Decoupled tag store used only for a fraction

  • f accesses

Core L1 pad L2 pad L3 pad

C-Tags Objects Data Array Free space

  • Obj. A
  • Obj. B
slide-29
SLIDE 29

Hotpads overview

7

 Data array

 Managed as a circular buffer using simple

bump pointer allocation

 Stores variable-sized objects compactly

 C-Tags

 Decoupled tag store used only for a fraction

  • f accesses

 Metadata

 Pointer? valid? dirty? recently-used?

Core L1 pad L2 pad L3 pad

C-Tags Metadata (word/object) Objects Data Array Free space

  • Obj. A
  • Obj. B
slide-30
SLIDE 30

Hotpads example

8

slide-31
SLIDE 31

Hotpads example

8 class Node { int value; Node next; }

slide-32
SLIDE 32

Hotpads example

8 class Node { int value; Node next; }

L1 Pad L2 Pad Main Mem

A

Objects

B

r0 r1 r2 r3

RegFile Free space

Initial state.

slide-33
SLIDE 33

Hotpads moves object implicitly

9

Program code: int v = A.value;

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad.

Hotpads instructions: ld r0, (r1).value

class Node { int value; Node next; }

slide-34
SLIDE 34

Hotpads moves object implicitly

9

Program code: int v = A.value;

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad.

Hotpads instructions: ld r0, (r1).value

 All loads/stores follow a single addressing mode: Base+offset

class Node { int value; Node next; }

slide-35
SLIDE 35

Hotpads moves object implicitly

9

Program code: int v = A.value;

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad.

Hotpads instructions: ld r0, (r1).value

 All loads/stores follow a single addressing mode: Base+offset  Bump pointer allocation stores A compactly after other objects

class Node { int value; Node next; }

slide-36
SLIDE 36

Hotpads rewrites pointers to avoid associative lookups

10

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad. r1 is rewritten to A’s L1 pad address.

Program code: int v = A.value;

class Node { int value; Node next; }

Hotpads instructions: ld r0, (r1).value

slide-37
SLIDE 37

Hotpads rewrites pointers to avoid associative lookups

10

 Subsequent dereferences of r1 access A’s L1 copy directly,

without associative lookups (like a scratchpad)

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad. r1 is rewritten to A’s L1 pad address.

Program code: int v = A.value;

class Node { int value; Node next; }

Hotpads instructions: ld r0, (r1).value

slide-38
SLIDE 38

Hotpads rewrites pointers to avoid associative lookups

10

 Subsequent dereferences of r1 access A’s L1 copy directly,

without associative lookups (like a scratchpad)

 Hotpads rewrites pointers safely because it hides the memory layout from software

L1 Pad L2 Pad Main Mem RegFile

A B

r0 r1 r2 r3

A

Core issues access to A. A is copied into L1 pad. r1 is rewritten to A’s L1 pad address.

Program code: int v = A.value;

class Node { int value; Node next; }

Hotpads instructions: ld r0, (r1).value

slide-39
SLIDE 39

Pointer rewriting applies to L1 pad data as well

11

L1 Pad L2 Pad Main Mem RegFile

B copied into L1. A’s pointer is rewritten.

A B

r0 r1 r2 r3

A

Program code: v = A.next.value; Hotpads instructions: derefptr r2, (r1).next ld r3, (r2).value

class Node { int value; Node next; }

slide-40
SLIDE 40

Pointer rewriting applies to L1 pad data as well

11

L1 Pad L2 Pad Main Mem RegFile

B copied into L1. A’s pointer is rewritten.

A B

r0 r1 r2 r3

A B

Program code: v = A.next.value; Hotpads instructions: derefptr r2, (r1).next ld r3, (r2).value

class Node { int value; Node next; }

slide-41
SLIDE 41

Pointer rewriting applies to L1 pad data as well

11

L1 Pad L2 Pad Main Mem RegFile

B copied into L1. A’s pointer is rewritten.

A B

r0 r1 r2 r3

A B

Program code: v = A.next.value; Hotpads instructions: derefptr r2, (r1).next ld r3, (r2).value

class Node { int value; Node next; }

slide-42
SLIDE 42

Pointer rewriting applies to L1 pad data as well

11

L1 Pad L2 Pad Main Mem RegFile

B copied into L1. A’s pointer is rewritten.

A B

r0 r1 r2 r3

A B

Program code: v = A.next.value; Hotpads instructions: derefptr r2, (r1).next ld r3, (r2).value

 Subsequent dereferences of A.next access the L1 copy of B directly,

without associative lookups

class Node { int value; Node next; }

slide-43
SLIDE 43

Pointer rewriting applies to L1 pad data as well

11

L1 Pad L2 Pad Main Mem RegFile

B copied into L1. A’s pointer is rewritten.

A B

r0 r1 r2 r3

A B

C-Tags: A,B

Program code: v = A.next.value; Hotpads instructions: derefptr r2, (r1).next ld r3, (r2).value

 Subsequent dereferences of A.next access the L1 copy of B directly,

without associative lookups

 C-tags let dereferencing other pointers of A and B find their L1 copies

class Node { int value; Node next; }

slide-44
SLIDE 44

Hotpads supports in-hierarchy object allocation

12

L1 Pad L2 Pad Main Mem RegFile

Core allocates new object C.

A B

r0 r1 r2 r3

A B C

Program code: Node C = new Node(); Hotpads instructions: alloc r3, type=Node

class Node { int value; Node next; }

slide-45
SLIDE 45

Hotpads supports in-hierarchy object allocation

12

L1 Pad L2 Pad Main Mem RegFile

Core allocates new object C.

A B

r0 r1 r2 r3

A B C

Program code: Node C = new Node(); Hotpads instructions: alloc r3, type=Node

 In-hierarchy allocation reduces data movement and requires no

backing storage in main memory or larger pads

class Node { int value; Node next; }

slide-46
SLIDE 46

Hotpads unifies garbage collection and object evictions

13

L1 Pad L2 Pad Main Mem RegFile

A B (stale) A B C D

slide-47
SLIDE 47

Hotpads unifies garbage collection and object evictions

13

L1 Pad L2 Pad Main Mem RegFile

A B (stale) A B C D

L1 pad is now full

slide-48
SLIDE 48

Hotpads unifies garbage collection and object evictions

13

L1 Pad L2 Pad Main Mem RegFile

A B (stale) A B C D

 When a pad fills up, it triggers a collection-eviction (CE) to free space

 Discards dead objects  Evicts live, non-recently used objects to the next level in bulk

L1 pad is now full

slide-49
SLIDE 49

Hotpads unifies garbage collection and object evictions

13

L1 Pad L2 Pad Main Mem RegFile

A B (stale) A B C D

 When a pad fills up, it triggers a collection-eviction (CE) to free space

 Discards dead objects  Evicts live, non-recently used objects to the next level in bulk

 C is dead (unreferenced). Other objects are live. Only B is recently used.

L1 pad is now full

slide-50
SLIDE 50

Hotpads unifies garbage collection and object evictions

14

L1 Pad L2 Pad Main Mem RegFile

L1 collection-eviction (CE) collects dead C and evicts live A & D to L2. It leaves a large contiguous chunk of free space

A B (stale) B D

Free space

slide-51
SLIDE 51

Hotpads unifies garbage collection and object evictions

14

L1 Pad L2 Pad Main Mem RegFile

L1 collection-eviction (CE) collects dead C and evicts live A & D to L2. It leaves a large contiguous chunk of free space

A B (stale) B D

Free space

 CEs happen concurrently with

program execution and are hierarchical

slide-52
SLIDE 52

Hotpads unifies garbage collection and object evictions

14

L1 Pad L2 Pad Main Mem RegFile

L1 collection-eviction (CE) collects dead C and evicts live A & D to L2. It leaves a large contiguous chunk of free space

A B (stale) B D

Free space

 CEs happen concurrently with

program execution and are hierarchical

 Each pad can perform a CE

independently from larger, higher-level pads  Makes CE cost proportional to pad size

slide-53
SLIDE 53

Hotpads unifies garbage collection and object evictions

14

L1 Pad L2 Pad Main Mem RegFile

L1 collection-eviction (CE) collects dead C and evicts live A & D to L2. It leaves a large contiguous chunk of free space

A B (stale) B D

Free space

Invariant: Objects at a particular level may only point to objects at the same or larger levels.

 CEs happen concurrently with

program execution and are hierarchical

 Each pad can perform a CE

independently from larger, higher-level pads  Makes CE cost proportional to pad size

slide-54
SLIDE 54

Hotpads unifies garbage collection and object evictions

14

L1 Pad L2 Pad Main Mem RegFile

L1 collection-eviction (CE) collects dead C and evicts live A & D to L2. It leaves a large contiguous chunk of free space

A B (stale) B D

Free space

Invariant: Objects at a particular level may only point to objects at the same or larger levels. Result: No need to check the L2 pad when performing a collection-eviction in the L1 pad.

 CEs happen concurrently with

program execution and are hierarchical

 Each pad can perform a CE

independently from larger, higher-level pads  Makes CE cost proportional to pad size

slide-55
SLIDE 55

Collection-evictions reduce data movement

15

slide-56
SLIDE 56

Collection-evictions reduce data movement

15

 Hotpads unifies the locality principle and the generational hypothesis

slide-57
SLIDE 57

Collection-evictions reduce data movement

15

 Hotpads unifies the locality principle and the generational hypothesis  Hotpads acts like a super-generational collector

 Accesses to short-lived objects are cheap and fast  Most of main-memory data is live

slide-58
SLIDE 58

Collection-evictions reduce data movement

15

 Hotpads unifies the locality principle and the generational hypothesis  Hotpads acts like a super-generational collector

 Accesses to short-lived objects are cheap and fast  Most of main-memory data is live

slide-59
SLIDE 59

Collection-evictions reduce data movement

15

 Hotpads unifies the locality principle and the generational hypothesis  Hotpads acts like a super-generational collector

 Accesses to short-lived objects are cheap and fast  Most of main-memory data is live

Most objects are collected in the L1 pad

slide-60
SLIDE 60

Collection-evictions reduce data movement

15

 Hotpads unifies the locality principle and the generational hypothesis  Hotpads acts like a super-generational collector

 Accesses to short-lived objects are cheap and fast  Most of main-memory data is live

Most objects are collected in the L1 pad 90% of object bytes never reach main memory

slide-61
SLIDE 61

See paper for additional features

16

slide-62
SLIDE 62

See paper for additional features

 Supporting large objects with subobject fetches

16

slide-63
SLIDE 63

See paper for additional features

 Supporting large objects with subobject fetches  Object-level pad coherence

16

slide-64
SLIDE 64

See paper for additional features

 Supporting large objects with subobject fetches  Object-level pad coherence  Legacy mode to support flat-address-based programs

16

slide-65
SLIDE 65

See paper for additional features

 Supporting large objects with subobject fetches  Object-level pad coherence  Legacy mode to support flat-address-based programs  … and more details!

16

slide-66
SLIDE 66

Evaluation

17

slide-67
SLIDE 67

Evaluation

 We simulate Hotpads using MaxSim [Rodchenko et al., ISPASS’17]

 A simulator combining ZSim and Maxine JVM

17

slide-68
SLIDE 68

Evaluation

 We simulate Hotpads using MaxSim [Rodchenko et al., ISPASS’17]

 A simulator combining ZSim and Maxine JVM

 Modeled system

 4 OOO cores  3-level cache or pad hierarchy

17 Core

L1

Shared L3 Core

L2 L1 L2

……

slide-69
SLIDE 69

Evaluation

 We simulate Hotpads using MaxSim [Rodchenko et al., ISPASS’17]

 A simulator combining ZSim and Maxine JVM

 Modeled system

 4 OOO cores  3-level cache or pad hierarchy

 Workloads

 13 Java workloads from Dacapo, SpecJBB, and JgraphT  JVM modified to use the Hotpads ISA

17 Core

L1

Shared L3 Core

L2 L1 L2

……

slide-70
SLIDE 70

Hotpads outperforms conventional hierarchies

18

slide-71
SLIDE 71

Hotpads outperforms conventional hierarchies

18

slide-72
SLIDE 72

Hotpads outperforms conventional hierarchies

18

34% improvement

slide-73
SLIDE 73

Hotpads outperforms conventional hierarchies

18

34% improvement

  • 1. In-hierarchy allocation reduces

memory stalls in application code

slide-74
SLIDE 74

Hotpads outperforms conventional hierarchies

18

34% improvement

  • 1. In-hierarchy allocation reduces

memory stalls in application code

  • 2. Hardware-based collection-

evictions reduce GC overheads

slide-75
SLIDE 75

Hotpads reduces dynamic memory hierarchy energy

19

slide-76
SLIDE 76

Hotpads reduces dynamic memory hierarchy energy

19

slide-77
SLIDE 77

Hotpads reduces dynamic memory hierarchy energy

19

2.6x reduction

slide-78
SLIDE 78

Hotpads reduces dynamic memory hierarchy energy

19

2.6x reduction

  • 1. Pointer rewriting and

direct accesses reduce L1 energy by 2.3x

slide-79
SLIDE 79

Hotpads reduces dynamic memory hierarchy energy

19

  • 2. Hierarchical collection-evictions

reduce memory and GC energy

2.6x reduction

  • 1. Pointer rewriting and

direct accesses reduce L1 energy by 2.3x

slide-80
SLIDE 80

Hotpads also provides benefits on compiled code

20

slide-81
SLIDE 81

 We study an allocation-heavy, binary-tree benchmark written in C

 Compare Hotpads with tcmalloc, a state-of-the-art memory allocator

Hotpads also provides benefits on compiled code

20

slide-82
SLIDE 82

 We study an allocation-heavy, binary-tree benchmark written in C

 Compare Hotpads with tcmalloc, a state-of-the-art memory allocator

Hotpads also provides benefits on compiled code

20 Hotpads improves performance and energy efficiency over manual memory management

slide-83
SLIDE 83

 We study an allocation-heavy, binary-tree benchmark written in C

 Compare Hotpads with tcmalloc, a state-of-the-art memory allocator

Hotpads also provides benefits on compiled code

20 Hotpads improves performance and energy efficiency over manual memory management

2.7x reduction 3.6x reduction

slide-84
SLIDE 84

See paper for more results

 Results for multithreaded workloads  Detailed analysis of pointer rewriting and CEs  Comparison with other cache-based techniques

 Enhanced baseline using DRRIP and stream prefetchers  Cache scrubbing and zeroing [Sartor et al., PACT’14]

 Legacy mode performance on SPECCPU apps

21

slide-85
SLIDE 85

An object-based memory hierarchy provides tremendous benefits

22

slide-86
SLIDE 86

An object-based memory hierarchy provides tremendous benefits

22

 Modern programs operate on objects, not cache lines

slide-87
SLIDE 87

An object-based memory hierarchy provides tremendous benefits

22

 Modern programs operate on objects, not cache lines  Hotpads is an object-based memory hierarchy that supports objects in the ISA

and hides the memory layout

slide-88
SLIDE 88

An object-based memory hierarchy provides tremendous benefits

22

 Modern programs operate on objects, not cache lines  Hotpads is an object-based memory hierarchy that supports objects in the ISA and

hides the memory layout

 Hotpads outperforms conventional cache hierarchies because it:

 Moves objects rather than cache lines  Avoids most associative lookups with pointer rewriting  Provides hardware support for in-hierarchy allocation and unified collection-eviction

slide-89
SLIDE 89

An object-based memory hierarchy provides tremendous benefits

22

 Modern programs operate on objects, not cache lines  Hotpads is an object-based memory hierarchy that supports objects in the ISA and

hides the memory layout

 Hotpads outperforms conventional cache hierarchies because it:

 Moves objects rather than cache lines  Avoids most associative lookups with pointer rewriting  Provides hardware support for in-hierarchy allocation and unified collection-eviction

 Hotpads also unlocks new memory hierarchy optimizations

slide-90
SLIDE 90

Thanks! Questions?

23

 Modern programs operate on objects, not cache lines  Hotpads is an object-based memory hierarchy that supports objects in the ISA

and hides the memory layout

 Hotpads outperforms conventional cache hierarchies because it:

 Moves objects rather than cache lines  Avoids most associative lookups with pointer rewriting  Provides hardware support for in-hierarchy allocation and unified collection-eviction

 Hotpads also unlocks new memory hierarchy optimizations