serial presence detect – using it effectively to improve system performance

16
Serial Presence Detect – Using It Effectively to Improve System Performance Bill Gervasi Technology Analyst [email protected]

Upload: pillan

Post on 25-Feb-2016

35 views

Category:

Documents


2 download

DESCRIPTION

Serial Presence Detect – Using It Effectively to Improve System Performance. Bill Gervasi Technology Analyst [email protected]. Agenda. What is a Serial Presence Detect (SPD)? How is it used in systems? How can it be used to tune performance? Using the new SPD revision system. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Serial Presence Detect – Using It Effectively to Improve System Performance

Serial Presence Detect – Using It Effectively to Improve System

PerformanceBill Gervasi

Technology [email protected]

Page 2: Serial Presence Detect – Using It Effectively to Improve System Performance

Agenda

• What is a Serial Presence Detect (SPD)?

• How is it used in systems?

• How can it be used to tune performance?

• Using the new SPD revision system

Page 3: Serial Presence Detect – Using It Effectively to Improve System Performance

What is the SPD?

• I2C-based serial EEPROM located on all JEDEC modules

• Describes the module characteristics• Describes the DRAM characteristics

Page 4: Serial Presence Detect – Using It Effectively to Improve System Performance

Using the SPD

• Read all module SPDs at boot time• Each SPD has a unique I2C address wired• Configure the memory controller based on

contents of all SPDs

SPD SPD SPD SPDID=X0

ID=X1

ID=X2

ID=X3

I2C serial bus

DIMMSlot 0

DIMMSlot 1

DIMMSlot 2

DIMMSlot 3

Memory

Controller

(or South Bridge)

Page 5: Serial Presence Detect – Using It Effectively to Improve System Performance

SPD Contents• Memory and interface type

• Module configuration

• DRAM coarse parameters

• DRAM fine parameters

• Module features

Page 6: Serial Presence Detect – Using It Effectively to Improve System Performance

Simple Boot Procedure

• Reject incompatible modules– E.g., DRAM type– E.g., Operating frequency too slow

• Calculate the memory range & program per-slot addressing

• Determine row, column, and block addressing• Set interface speed or timing

– Possibly based on module loading• Load and fly

Page 7: Serial Presence Detect – Using It Effectively to Improve System Performance

Module Parameters• Standard module features

– ECC bytes– Register on address lines– PLL on clock lines

• Unique module features– Fast PLL relock– Module height

Page 8: Serial Presence Detect – Using It Effectively to Improve System Performance

Fine DRAM Timing Parameters• Some fields can determine performance:

tDQSQ, tQHS are key for variable frequency systems

tCKmin and tCKmax determine operating range

Available operating frequency =

1 (necessary setup & hold + crap)

tQHS (simplified view)

DQStDQSQ

data

Sampling window

Page 9: Serial Presence Detect – Using It Effectively to Improve System Performance

Coarse DRAM Timing Parameters

• Values not known in advance– Refresh timing for future densities– CAS latencies supported

• Values that vary from vendor to vendor (JEDEC optional or superset)

• Values that vary speed bin to speed bin– Row cycle & row-column access time– Special features, e.g., fast autoprecharge

tRFC = ???

Page 10: Serial Presence Detect – Using It Effectively to Improve System Performance

Other Tuning Parameters→CAS latencies→Memory cycle times based on CAS latencies→Row precharge time→Random column access time→Address and command setup & hold→Data and mask setup & hold→Write recovery time→Loading on address or data bus (determines slew rate)

Chipsets can use all of these to get the most efficient use of available memory bandwidth

Page 11: Serial Presence Detect – Using It Effectively to Improve System Performance

SPD Revision

• But SPDs change over time… how do I know what to read?

• New feature: two part SPD Revision system– Encoding revision– Contents revision

SPD Byte 62 =

Encoding Contents

7 4 3 01256

In review now

Page 12: Serial Presence Detect – Using It Effectively to Improve System Performance

SPD Revision• Revision levels

– Encoding level should only change in emergencies… tells how to interpret existing fields

– Content level determines which bytes and bits are defined

– Content level never reverts or resets back to 0• SPD interpretation

– BIOS must reject modules with encoding level higher than it understands

– BIOS should accept higher content levels but only use the fields it knows how to decode!

Page 13: Serial Presence Detect – Using It Effectively to Improve System Performance

An SPD Revision Example

• Initial release• Added new bytes or attribute bits• Added more bytes or attribute bits• Encoding changed in some byte/bit• Added more bytes or attribute bits• Added more bytes or attribute bits• Encoding changed in some byte/bit

plus added a byte or attribute bit

Rev1.01.11.22.22.32.43.5

Page 14: Serial Presence Detect – Using It Effectively to Improve System Performance

How Often Do SPDs Change?

• JEDEC procedure to review once per year– All approved changes held until Board meets– Board approves any revision release package– No changes? No action taken

Page 15: Serial Presence Detect – Using It Effectively to Improve System Performance

Summary

• SPDs are a valuable part of DIMM design• Simplest use is to configure system to run• More complex systems can take

advantage of special features• New revision system lets BIOSes handle

changes gracefully• Updates not more often than once a year

Page 16: Serial Presence Detect – Using It Effectively to Improve System Performance

Thank You