DRAM CONTROLLER Mahdi Nazm Bojnordi Assistant Professor School of - - PowerPoint PPT Presentation

dram controller
SMART_READER_LITE
LIVE PREVIEW

DRAM CONTROLLER Mahdi Nazm Bojnordi Assistant Professor School of - - PowerPoint PPT Presentation

DRAM CONTROLLER Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture Overview Announcement Homework 4 will be released on Nov. 28 th This lecture DRAM control DRAM


slide-1
SLIDE 1

DRAM CONTROLLER

CS/ECE 6810: Computer Architecture

Mahdi Nazm Bojnordi

Assistant Professor School of Computing University of Utah

slide-2
SLIDE 2

Overview

¨ Announcement

¤ Homework 4 will be released on Nov. 28th

¨ This lecture

¤ DRAM control ¤ DRAM timing ¤ DRAM hierarchy

n Channel, bank

slide-3
SLIDE 3

Recall: DRAM System

¨ DRAM chips can perform basic operations

slide-4
SLIDE 4

Recall: DRAM System

¨ DRAM chips can perform basic operations

CPU Chip

slide-5
SLIDE 5

Recall: DRAM System

¨ DRAM chips can perform basic operations

CPU Chip Memory Modules DRAM Chips

slide-6
SLIDE 6

Recall: DRAM Operations

¨ Main DRAM operations are

¤ Precharge bitlines to prepare subarray for activating a

wordline

¤ Activate a row by connecting DRAM cells to the bitlines

and start sensing

¤ Read the contents of a data block from the row buffer ¤ Write new contents for data block into the row buffer ¤ Refresh DRAM cells

n can be done through a precharge followed by an activate

slide-7
SLIDE 7

DRAM Row Buffer

¨ All reads and writes are performed through RB

Data Array Row Buffer (RB) DRAM Cell DRAM Sense Amp. Row Access Strobe (RAS) Column Access Strobe (CAS)

slide-8
SLIDE 8

DRAM Row Buffer

¨ Row buffer holds a single row of the array

¤ A typical DRAM row (page) size is 8KB

¨ The entire row is moved to row buffer; but only a

block is accessed each time

¨ Row buffer access possibilities

¤ Row buffer hit: no need for a precharge or activate

n ~20ns only for moving data between pins and RB

¤ Row buffer miss: activate (and precharge) are needed

n ~40ns for an empty row n ~60ns for on a row conflict

slide-9
SLIDE 9

DRAM Control

¨ DRAM chips have no intelligence

¤ An external controller dictates operations ¤ Modern controllers are integrated on CPU

¨ Basic DRAM timings are

¤ tCAS: column access strobe (RDàDATA) ¤ tRAS: row active strobe (ACTàPRE) ¤ tRP: row precharge (PREàACT) ¤ tRC: row cycle (ACTàPREàACT) ¤ tRCD: row to column delay (ACTàRD/WT) Data Array Row Buffer Decoder

slide-10
SLIDE 10

DRAM Control

¨ DRAM chips have no intelligence

¤ An external controller dictates operations ¤ Modern controllers are integrated on CPU

¨ Basic DRAM timings are

¤ tCAS: column access strobe (RDàDATA) ¤ tRAS: row active strobe (ACTàPRE) ¤ tRP: row precharge (PREàACT) ¤ tRC: row cycle (ACTàPREàACT) ¤ tRCD: row to column delay (ACTàRD/WT) Data Array Row Buffer Decoder CPU DRAM Controller

slide-11
SLIDE 11

Enforcing Timing

slide-12
SLIDE 12

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B RD A

X Y Requests

Cmd Addr Data

A B

slide-13
SLIDE 13

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B RD A

X Y Requests

Cmd Addr Data

A B Act X

slide-14
SLIDE 14

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B RD A

X Y Requests

Cmd Addr Data

A B Act X tRCD A

slide-15
SLIDE 15

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B RD A

X Y Requests

Cmd Addr Data

A B Act X A Rd tRCD A

slide-16
SLIDE 16

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B RD A

X Y Requests

Cmd Addr Data

A B Act X Data tCAS A Rd tRCD A

slide-17
SLIDE 17

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Act X Data tCAS A Rd tRCD A

slide-18
SLIDE 18

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Act X Data tCAS A Rd tRCD Pr tRAS A

slide-19
SLIDE 19

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Act X Data tCAS tRP A Rd tRCD Pr tRAS

slide-20
SLIDE 20

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Act X Data tCAS Act Y tRP A Rd tRCD Pr tRAS

slide-21
SLIDE 21

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Act X Data tCAS Act Y tRP tRC A Rd tRCD Pr tRAS

slide-22
SLIDE 22

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer RD B

X Y Requests

Cmd Addr Data

A B Rd B Act X Data tCAS Act Y tRP tRC A Rd tRCD Pr tRAS B

slide-23
SLIDE 23

DRAM Timing Example

¨ Access time

¤ Row hit: tCAS ¤ Row empty: tRCD + tCAS ¤ Row conflict: tRP + tRCD + tCAS Data Array Row Buffer

X Y Requests

Cmd Addr Data

A B Rd B Data Act X Data tCAS Act Y tRP tRC A Rd tRCD Pr tRAS B

slide-24
SLIDE 24

DRAM Channels

Improving Performance

slide-25
SLIDE 25

Memory Channels

¨ Memory channels provide fully parallel accesses

¤ Separate data, control, and address buses RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B

slide-26
SLIDE 26

Memory Channels

¨ Memory channels provide fully parallel accesses

¤ Separate data, control, and address buses RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B

Cmd Addr Data

Act X Data tCAS A Rd tRCD

slide-27
SLIDE 27

Memory Channels

¨ Memory channels provide fully parallel accesses

¤ Separate data, control, and address buses

Cmd Addr Data

Act Y Data tCAS B Rd tRCD RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B

Cmd Addr Data

Act X Data tCAS A Rd tRCD

slide-28
SLIDE 28

Memory Channels

¨ Memory channels provide fully parallel accesses

¤ Separate data, control, and address buses

Cmd Addr Data

Act Y Data tCAS B Rd tRCD RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B

Cmd Addr Data

Act X Data tCAS A Rd tRCD Not scalable due to pin overhead

slide-29
SLIDE 29

DRAM Ranks

Improving Performance

slide-30
SLIDE 30

Memory Banks

¨ Memory banks provide parallel operations

¤ Shared data, control, and address buses

¨ The goal is to keep the data bus fully utilized

RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B Bank 0 Bank 1

slide-31
SLIDE 31

Memory Banks

¨ Memory banks provide parallel operations

¤ Shared data, control, and address buses

¨ The goal is to keep the data bus fully utilized

RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B Bank 0 Bank 1

Cmd Addr Data

Act X Data A Rd

slide-32
SLIDE 32

Memory Banks

¨ Memory banks provide parallel operations

¤ Shared data, control, and address buses

¨ The goal is to keep the data bus fully utilized

RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B Bank 0 Bank 1

Cmd Addr Data

Act X Data A Rd Act Y Data B Rd

slide-33
SLIDE 33

Memory Banks

¨ Memory banks provide parallel operations

¤ Shared data, control, and address buses

¨ The goal is to keep the data bus fully utilized

RD B RD A

Requests

Data Array Row Buffer

X Y

A Data Array Row Buffer

X Y

B Bank 0 Bank 1

Cmd Addr Data

Act X Data A Rd Act Y Data B Rd Shorter data transfer time to reduce bus conflicts Double data rate vs. single rate

slide-34
SLIDE 34

DRAM Organization

¨ DRAM channels are independently accessed through

dedicated data, address, and command buses

¤ Physically broken down into DIMMs (dual in-line

memory modules)

¤ Logically divided into ranks, which are a collection of

DRAM chips responding to the same memory request

Processor Memory Controller address/cmd data (64-wire) x8 x8 x8 x8 x8 x8 x8 x8 DIMM