random-access memory (ram) cisc 360 the memory hierarchy ... · the memory hierarchy nov 24, 2009...

11
Page 1 The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 – CISC 360 Fa09 SRAM vs DRAM Summary Tran. Access per bit time Persist? Sensitive? Cost Applications SRAM 6 1X Yes No 100x cache memories DRAM 1 10X No Yes 1X Main memories, frame buffers – 4 – CISC 360 Fa09 Conventional DRAM Organization cols rows 0 1 2 3 0 1 2 3 internal row buffer 16 x 8 DRAM chip addr data supercell (2,1) 2 bits / 8 bits / memory controller (to CPU)

Upload: others

Post on 24-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 1

The Memory HierarchyNov 24, 2009

class12.ppt

CISC 360

– 2 – CISC 360 Fa09

Random-Access Memory (RAM)

– 3 – CISC 360 Fa09

SRAM vs DRAM Summary

Tran. Access per bit time Persist? Sensitive? Cost Applications

SRAM 6 1X Yes No 100x cache memories

DRAM 1 10X No Yes 1X Main memories, frame buffers

– 4 – CISC 360 Fa09

Conventional DRAM Organization

cols

rows

0 1 2 3

0

1

2

3

internal row buffer

16 x 8 DRAM chip

addr

data

supercell (2,1)

2 bits /

8 bits /

memory controller

(to CPU)

Page 2: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 2

– 5 – CISC 360 Fa09

Reading DRAM Supercell (2,1)

cols

rows

RAS = 2 0 1 2 3

0

1

2

internal row buffer

16 x 8 DRAM chip

3

addr

data

2 /

8 /

memory controller

– 6 – CISC 360 Fa09

Reading DRAM Supercell (2,1)

cols

rows

0 1 2 3

0

1

2

3

internal row buffer

16 x 8 DRAM chip

CAS = 1

addr

data

2 /

8 /

memory controller

supercell (2,1)

supercell (2,1)

To CPU

– 7 – CISC 360 Fa09

Memory Modules

: supercell (i,j)

64 MB memory module consisting of eight 8Mx8 DRAMs

addr (row = i, col = j)

Memory controller

DRAM 7

DRAM 0

0 31 7 8 15 16 23 24 32 63 39 40 47 48 55 56

64-bit doubleword at main memory address A

bits 0-7

bits 8-15

bits 16-23

bits 24-31

bits 32-39

bits 40-47

bits 48-55

bits 56-63

64-bit doubleword

0 31 7 8 15 16 23 24 32 63 39 40 47 48 55 56

64-bit doubleword at main memory address A

– 8 – CISC 360 Fa09

Enhanced DRAMs

Page 3: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 3

– 9 – CISC 360 Fa09

Nonvolatile Memories

– 10 – CISC 360 Fa09

Typical Bus Structure Connecting CPU and Memory

main memory

I/O bridge bus interface

ALU

register file

CPU chip

system bus memory bus

– 11 – CISC 360 Fa09

Memory Read Transaction (1)

ALU

register file

bus interface A 0

A x

main memory I/O bridge

%eax

Load operation: movl A, %eax

– 12 – CISC 360 Fa09

Memory Read Transaction (2)

ALU

register file

bus interface

x 0

A x

main memory

%eax

I/O bridge

Load operation: movl A, %eax

Page 4: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 4

– 13 – CISC 360 Fa09

Memory Read Transaction (3)

x ALU

register file

bus interface x

main memory 0

A

%eax

I/O bridge

Load operation: movl A, %eax

– 14 – CISC 360 Fa09

Memory Write Transaction (1)

y ALU

register file

bus interface A

main memory 0

A

%eax

I/O bridge

Store operation: movl %eax, A

– 15 – CISC 360 Fa09

Memory Write Transaction (2)

y ALU

register file

bus interface y

main memory 0

A

%eax

I/O bridge

Store operation: movl %eax, A

– 16 – CISC 360 Fa09

Memory Write Transaction (3)

y ALU

register file

bus interface y

main memory 0

A

%eax

I/O bridge

Store operation: movl %eax, A

Page 5: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 5

– 17 – CISC 360 Fa09

Disk Geometry

spindle

surface tracks

track k

sectors

gaps

– 18 – CISC 360 Fa09

Disk Geometry (Muliple-Platter View)

surface 0 surface 1 surface 2 surface 3 surface 4 surface 5

cylinder k

spindle

platter 0

platter 1

platter 2

– 19 – CISC 360 Fa09

Disk Capacity

– 20 – CISC 360 Fa09

Computing Disk Capacity

Page 6: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 6

– 21 – CISC 360 Fa09

Disk Operation (Single-Platter View)

The disk surface spins at a fixed rotational rate

spindle

By moving radially, the arm can position the read/write head over any track.

The read/write head is attached to the end of the arm and flies over the disk surface on a thin cushion of air.

spindle

spindle

spin

dle

spindle

– 22 – CISC 360 Fa09

Disk Operation (Multi-Platter View)

arm

read/write heads move in unison

from cylinder to cylinder

spindle

– 23 – CISC 360 Fa09

Disk Access Time

– 24 – CISC 360 Fa09

Disk Access Time Example

Page 7: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 7

– 25 – CISC 360 Fa09

Logical Disk Blocks

– 26 – CISC 360 Fa09

I/O Bus

main memory

I/O bridge bus interface

ALU

register file CPU chip

system bus memory bus

disk controller

graphics adapter

USB controller

mouse keyboard monitor disk

I/O bus Expansion slots for other devices such as network adapters.

– 27 – CISC 360 Fa09

Reading a Disk Sector (1)

main memory

ALU

register file CPU chip

disk controller

graphics adapter

USB controller

mouse keyboard monitor disk

I/O bus

bus interface

CPU initiates a disk read by writing a command, logical block number, and destination memory address to a port (address) associated with disk controller.

– 28 – CISC 360 Fa09

Reading a Disk Sector (2)

main memory

ALU

register file CPU chip

disk controller

graphics adapter

USB controller

mouse keyboard monitor disk

I/O bus

bus interface

Disk controller reads the sector and performs a direct memory access (DMA) transfer into main memory.

Page 8: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 8

– 29 – CISC 360 Fa09

Reading a Disk Sector (3)

main memory

ALU

register file CPU chip

disk controller

graphics adapter

USB controller

mouse keyboard monitor disk

I/O bus

bus interface

When the DMA transfer completes, the disk controller notifies the CPU with an interrupt (i.e., asserts a special “interrupt” pin on the CPU)

– 30 – CISC 360 Fa09

Storage Trends

(Culled from back issues of Byte and PC Magazine)

metric 1980 1985 1990 1995 2000 2000:1980

$/MB 8,000 880 100 30 1 8,000 access (ns) 375 200 100 70 60 6 typical size(MB) 0.064 0.256 4 16 64 1,000

DRAM

metric 1980 1985 1990 1995 2000 2000:1980

$/MB 19,200 2,900 320 256 100 190 access (ns) 300 150 35 15 2 100

SRAM

metric 1980 1985 1990 1995 2000 2000:1980

$/MB 500 100 8 0.30 0.05 10,000 access (ms) 87 75 28 10 8 11 typical size(MB) 1 10 160 1,000 9,000 9,000

Disk

– 31 – CISC 360 Fa09

CPU Clock Rates

1980 1985 1990 1995 2000 2000:1980 processor 8080 286 386 Pent P-III clock rate(MHz) 1 6 20 150 750 750 cycle time(ns) 1,000 166 50 6 1.6 750

– 32 – CISC 360 Fa09

The CPU-Memory Gap

110

1001,000

10,000

100,0001,000,000

10,000,000100,000,000

1980 1985 1990 1995 2000

year

ns

Disk seek timeDRAM access timeSRAM access timeCPU cycle time

Page 9: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 9

– 33 – CISC 360 Fa09

Locality

Locality Example: •  Data

– Reference array elements in succession (stride-1 reference pattern):

– Reference sum each iteration: •  Instructions

– Reference instructions in sequence: – Cycle through loop repeatedly:

sum = 0; for (i = 0; i < n; i++)

sum += a[i]; return sum;

Spatial locality

Spatial locality Temporal locality

Temporal locality

– 34 – CISC 360 Fa09

Locality Example

int sumarrayrows(int a[M][N]) { int i, j, sum = 0;

for (i = 0; i < M; i++) for (j = 0; j < N; j++) sum += a[i][j]; return sum }

– 35 – CISC 360 Fa09

Locality Example

int sumarraycols(int a[M][N]) { int i, j, sum = 0;

for (j = 0; j < N; j++) for (i = 0; i < M; i++) sum += a[i][j]; return sum }

– 36 – CISC 360 Fa09

Locality Example

int sumarray3d(int a[M][N][N]) { int i, j, k, sum = 0;

for (i = 0; i < M; i++) for (j = 0; j < N; j++) for (k = 0; k < N; k++) sum += a[k][i][j]; return sum }

Page 10: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 10

– 37 – CISC 360 Fa09

Memory Hierarchies

– 38 – CISC 360 Fa09

An Example Memory Hierarchy

registers

on-chip L1 cache (SRAM)

main memory (DRAM)

local secondary storage (local disks)

Larger, slower,

and cheaper

(per byte) storage devices

remote secondary storage (distributed file systems, Web servers)

Local disks hold files retrieved from disks on remote network servers.

Main memory holds disk blocks retrieved from local disks.

off-chip L2 cache (SRAM)

L1 cache holds cache lines retrieved from the L2 cache memory.

CPU registers hold words retrieved from L1 cache.

L2 cache holds cache lines retrieved from main memory.

L0:

L1:

L2:

L3:

L4:

L5:

Smaller, faster,

and costlier

(per byte) storage devices

– 39 – CISC 360 Fa09

Caches

– 40 – CISC 360 Fa09

Caching in a Memory Hierarchy

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

Larger, slower, cheaper storage device at level k+1 is partitioned into blocks.

Data is copied between levels in block-sized transfer units

8 9 14 3 Smaller, faster, more expensive device at level k caches a subset of the blocks from level k+1

Level k:

Level k+1: 4

4

4 10

10

10

Page 11: Random-Access Memory (RAM) CISC 360 The Memory Hierarchy ... · The Memory Hierarchy Nov 24, 2009 class12.ppt CISC 360 – 2 – CISC 360 Fa09 Random-Access Memory (RAM) – 3 –

Page 11

– 41 – CISC 360 Fa09

Request 14

Request 12

General Caching Concepts

9 3

0 1 2 3 4 5 6 7 8 9 10 11

12 13 14 15

Level k:

Level k+1:

14 14

12

14

4*

4* 12

12

0 1 2 3

Request 12

4* 4* 12

– 42 – CISC 360 Fa09

General Caching Concepts

– 43 – CISC 360 Fa09

Examples of Caching in the Hierarchy

Hardware 0 On-Chip TLB Address translations

TLB

Web browser

10,000,000 Local disk Web pages Browser cache

Web cache

Network buffer cache

Buffer cache

Virtual Memory L2 cache L1 cache

Registers

Cache Type

Web pages

Parts of files Parts of files

4-KB page 32-byte block 32-byte block

4-byte word

What Cached

Web proxy server

1,000,000,000 Remote server disks

OS 100 Main memory

Hardware 1 On-Chip L1 Hardware 10 Off-Chip L2

AFS/NFS client

10,000,000 Local disk

Hardware+OS

100 Main memory

Compiler 0 CPU registers

Managed By

Latency (cycles)

Where Cached