Synchronous memory modules

advertisement
5. Synchronous
memory modules
Dezső Sima
September 2008
(Ver. 1.0)
 Sima Dezső, 2008
Overview
•
1. Design space of memory modules
•
2. Basic features
•
3. Registering
•
4. ECC
•
5. Presence detect
•
6. Keying
•
7. Summing up the main features of memory modules
•
8. References
1. Design space of memory modules (1)
Layout of memory modules
Layout of memory modules
Basic features
of memory modules
Registering
(Buffering)
ECC
Presence
detect
Keying
Figure: Main dimensions of the design space of the layout of memory modules
2. Basic features (1)
Basic features of memory modules
Module type
Module width
(Data/Data+ECC)
No. of
module sides
populated
No. of ranks
provided on the
module
Figure: Basic features of memory modules
2. Basic features (2)
Module types
Memory card
(build up of DIPs)
Figure : Main module types of general use
2. Basic features (3)
Memory cards
• DRAMs packaged in DIPs1 mounted on a PC-card 2
• attached via the ISA bus or a dedicated bus of the motherherboard
• used as the main memory or add-on memory in early PCs (8088 or 80286 based).
1
2
DIP: Dual In-line Package
PC: Printed Circuit
2. Basic features (4)
Figure: 8-Bit ISA PC Memory Card (Gold 5150) [12]
2. Basic features (5)
Module types
Memory card
(build up of DIPs)
SIPP
(Single In-line
Pin Package)
Figure : Main module types of general use
2. Basic features (6)
1 Byte
wide
30 pins
Figure: SIPP module [11]
2. Basic features (7)
Module types
Memory card
(build up of DIPs)
SIPP
(Single In-line
Pin Package)
SIMM
(Single In-line
Memory Module)
Figure : Main module types of general use
2. Basic features (8)
1-Byte/30-pin
FPM
FPM/EDO
4-Byte/72-pin
Figure: SIMM modules
2. Basic features (9)
SIMM
72-pin
30-pin
Width (Data/Data+parity)
DRAM-type
First introduced
in Intel’s chipsets
Voltage
Typ. module capacity
Typ. use in connection
with the processors
(32/36-bit)
(8/9-bit)
FPM
FPM
EDO
(~1986?)
1993
1995
5V
5 V/3.3 V
5 V/3.3 V
256 KB – 8 MB
2 – 32 MB
4 – 64 MB
286
early 386
late 386
486
early Pentium
486
Pentium
Figure : Main features of SIMM modules
2. Basic features (10)
Module types
Memory card
(built up of DIPs)
SIPP
(Single In-line
Pin Package)
SIMM
(Single In-line
Memory Module)
DIMM
(Dual In-line
Memory Module)
Figure : Main module types of general use
SDRAM
168-pin
DDR
184-pin
DDR2
240- pin
DDR3
240-pin
Figure: DIMM modules (8-Byte wide)
2. Basic features (12)
DIMM
168-pin
Width
(Data/Data+ECC)
DRAM-type
DIMM first intro.
in Intel’s chipsets
Voltage
Typ. capacity [MB]
Typ. use with
the processors
240-pin
184-pin
(64/72-bit)
(64/72-bit)
(64/72-bit)
FPM
EDO
SDRAM
DDR
(1995)
(1996)
(1996)
(2002)
(2004)
(2007)
5 V/3.3V
5 V/3.3 V
3.3 V
2.5 V
1.8 V
1.5 V
1-16
1-16
16-512
128 –1024
256–4096
512–496
Pentium
(3.3V)
Pentium
(3.3V)
Pentium (3.3V)
Pentium II
Pentium III
Pentium 4
Pentium 4
Pentium D
Core2 Duo
Core2 Duo
Figure : Main features of DIMMs
DDR2
DDR3
2. Basic features (13)
Module types
Memory card
(build up of DIPs)
SIPP
(Single In-line
Pin Package)
SIMM
(Single In-line
Memory Module)
DIMM
(Dual In-line
Memory Module)
Figure : Main module types of general use
SODIMM
(Small Outline
Dual In-line
Memory Module)
2. Basic features (14)
SDRAM
4 Byte/72 pin
DDR2
8 Byte/200 pin
Figure: SO-DIMM modules
2. Basic features (15)
SODIMM
Width (Data)
72-pin
144-pin
200-pin
32-bit
64-bit
64-bit
64-bit
SDRAM
DDR
DDR2
DDR3
~1996
1996
2002
2004
2007
4-64
8-64
64-512
5 V/3.3 V
3.3 V
3.3 V
FPM
EDO
Est. year of intro.
~1994
~1995
Typ. capacity [MB]
4-64
5 V/3.3V
Voltage
204-pin
EDO
128 –1024 256–2048
2.5 V
Figure : Main features of SODIMM modules
1.8 V
512–4096
1.5 V
2. Basic features (16)
Modules width
(Data/Data+ECC)
1-byte wide modules
(8/9-bits)
4-byte wide modules
(32/36-bits)
8-byte wide modules
(64/72-bits)
8088-based PCs (1981):
1-byte wide data bus,
386 (1985) and 486 (1988)
based PCs:
4-byte wide data bus
Pentium (1993), and
subsequent processors:
8-byte wide data bus
80286 based PCs (1984):
2-byte wide data bus
Figure : Memory module widths vs data bus width of the processor bus in x86 processors
2. Basic features (17)
Number of memory module sides populated
Memory module
populated on one side
Memory module
populated on both sides
• Includes usually one rank
• Includes usually two ranks
but may include also
• just one rank
Figure: Population alternatives of memory modules
2. Basic features (18)
Number of ranks provided on the memory module
Single rank
Two ranks
Both alternatives are used by the manufacturers
Figure: Number of ranks provided on the memory module
3. Registering (1)
Registering
Registering
Unregistered modules
Registered modules
Typical use
Main memories of
desktops/laptops
Main memories of
servers
With module type
--
DIMM
ECC
Typically no
Typically yes
Figure: Registering alternatives of memory modules
3. Registering (2)
Unregistered DIMMs (UDIMMs)
Typical use: in desktops/laptops (Memory capacities: up to a few GB)
Registered DIMM (RDIMM)
Typical use: in servers (Memory capacities: a few tens of GB)
Problems arising while implementing higher memory capacities
Higher memory capacities need more modules
Higher loading the lines
Signal integrity problems
Buffering address and command lines,
Phase locked clocking of the modules
3. Registering (3)
Typical implementation
• Two register chips, for buffering the address- and command lines
• A PLL (Phase locked loop) unit for deskewing clock distribution.
ECC
Register
PLL
Register
Figure:Typical layout of a registered memory module with ECC [24]
3. Registering (4)
S
D
R
A
M
S
D
R
A
M
S
D
R
A
M
PI74SSTV168
57 Register
Address/Control
form
Motherboard
S
D
R
A
M
S
D
R
A
M
PI6CV857
PLL
Input Clock
for
Motherboard
S
D
R
A
M
S
D
R
A
M
S
D
R
A
M
S
D
R
A
M
Data From / To Motherboard
PI74SSTV168
57 Register
Address Control
from
Motherboard
Figure: Example. Block diagram of a registered DDR DIMM [29]
3. Registering (5)
Register chips
Aim
Buffering address and control lines,
•
•
in order to increase the number of supported DIMM slots (max. mem. capacity)
needed first of all in servers,
by reducing signal loading in a memory channel.
Number of register chips required
• Synchronous memory modules have about 20 - 30 address and control lines,
• Register chips buffer usually 14 lines,
Typically, two register chips are needed per memory module [29].
3. Registering (6)
DQM CS#
DQ
DQ
DQ
DQ U1
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U14
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U2
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U13
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U12
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U3
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U11
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U4
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U10
DQ
DQ
DQ
DQ
PPL
R
E
G
I
S
T
E
R
Functional block diagram
of a registered SDRAM DIMM [28],
with one rank, built up of
•
•
•
•
•
8
1
1
1
1
x8 SDRAMs
ECC unit
Register unit
PLL unit and
SPD unit.
3. Registering (7)
Registering (buffering) the address and control lines
R
E
G
I
S
T
E
R
REGE: Register enable signal
Figure: Registered signals in case of an SDRAM memory module [28]
Note: Data (DQ) and data strobe (DQS) signals are not registered.
3. Registering (8)
PLL unit (Phase locked loop unit)
The need to deskew the clock signal distributed on the memory module
• Clock signals (CK) are sent in parallel with the address and control signals from
the memory controller and need to be distributed to the DRAM devices and register units
mounted on the module.
• Clock distribution means amplification and branching the clock signal typically up to
9-18 DRAM devices and 2 register units (one/two sided populated modules).
• The circuitry implementing clock distribution causes a skew between the input clock
and the clock signals arriving at the DRAM and register chips.
• Clock skew reduces the width of the usable window and thus limits the operation speed.
• A PLL mounted to the memory module deskews the clock and thus improves timing
budget and raises operating speed.
3. Registering (9)
Figure: The task of clock distribution in case of a double sided registered memory module
(actually in case of an SDRAM module) (based on [21])
3. Registering (10)
CK-1
CK-2
Skew
Figure: Skew due to capacitive loading of the clock line (CK-2)
3. Registering (11)
Center aligned clock
Skewed clock
Available DVW
Data
Available DVW
Data
CK
CK
tS
tS
tH
Min. DVW
tH
Min. DVW
Figure: Reduction of operation tolerances due to clock skew
(ideal signals assumed)
A larger skew would even jeopardize or prevent correct operation
Deskewing of clock distribution is needed
3. Registering (12)
Principle of deskewing by means of a PLL (Phase Locked Loop) unit
The signal to
be deskewed
VCO:
Voltage
Controlled
Oscillator
Operation
The PLL unit compares the phases of the Ref. signal and the signal to be deskewed,
generates an error signal and controls the VCO with this error signal.
Figure: Principle of deskewing by means of a PLL (Based on [20])
3. Registering (13)
PLL
PLL
PLL
Figure: Typical clock distribution schemes of one- and two-sided SDRAM modules [28], [41], [21]
Note: CK0 is an open ended signal
3. Registering (14)
PLL
PLL
Figure: Typical clock distribution schemes of two-sided DDR/DDR2 modules [13], [14]
Note: CK0 is a differential signal
3. Registering (15)
Note
• In case of SDRAM devices the clock signal is used to gate in
the address, control and data lines,
• in case of DDR/DDR2/DDR3 devices the clock signal is used to gate in
the address and control lines, whereas
the data lines are gated in by the data strobe signals (DQS).
Examples
PLL on an SDRAM modules
3. Registering (16)
DQM CS#
DQ
DQ
DQ
DQ U1
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U14
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U2
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U13
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U12
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U3
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U11
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U4
DQ
DQ
DQ
DQ
DQM CS#
DQ
DQ
DQ
DQ U10
DQ
DQ
DQ
DQ
PPL
R
E
G
I
S
T
E
R
SPD EEPROM
WP A0 A1 A2
Functional block diagram
of a registered SDRAM DIMM
with one rank [28],
built up of
•
•
•
•
8
1
1
1
x8 SDRAMs
ECC unit
Register unit and
PLL unit.
3. Registering (17)
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U1
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U2
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U21
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U20
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U8
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U9
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U15
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U14
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U3
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U4
U19
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U18
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
U5
U10
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
ZQ
U11
P
L
L
DQ
DQ
DQ
DQ
DQ
DQ
DQ
DQ
Temperature senson/
EVT A0 A1 A2
U12
Functional block diagram
of a registered DDR3 DIMM
with 2 ranks [15], built up of
•
•
•
•
R
e
g
i
s
t
e
r
a
n
d
CMU
NW CS# DQS DQS#
TRDQS TRDQS#
SPD EEPROM
U17
U13
DDR3
SDRAM
DDR3
SDRAM
16
2
1
1
x8 DDR3 devices
ECC unit
Register and PLL unit and
Temp. sensor/SPD unit.
3. Registering (18)
R
e
g
i
s
t
e
r
a
n
d
P
L
L
Figure: Integrated register and PLL unit of a DDR3 DIMM [15]
3. Registering (19)
Implementation of the clock distrubution circuitry including a PLL unit
SDRAM
Stack
PLL
OUT1
SDRAM
Stack
IN
Reg. 1
OUT ‘N’
Feedback
Reg. 2
Figure: Overview of a clock distribution circuitry intended for DDR devices [16]
3. Registering (20)
The clock distribution circuitry including PLL became standardised by JEDEC
in connection with DDR devices in 2000 [17]
10 outputs
to the DDR devices
and the register
unit(s)
Input of the
feedback loop
Phase lock
between
FBIN/FBOUT and CK
Output of the
feedback loop
Figure: Block diagram of the clock distribution circuitry [17]
3. Registering (21)
The operation of the PLL unit
• The PLL unit compares the phases of the output clock signal (FBOUT)
and the input clock signal (CK) and generates an error signal which is fed back
to control the PLL unit in order to achieve a phase match between FBOUT/FBIN
and the incoming clock signal (CK) as close as possible.
• The output of the PLL unit (Yi/Yi#) can be considered as the negatively delayed
clock signal (CK).
3. Registering (22)
Use of PLLs in main memories
In connection with the main memory PLLs are widely used to deskew signals or
to align signal edges, such as
• SDRAM/DDR/DDR2/DDR3 modules include PLLs to deskew clock distribution
on the memory card (as discussed above),
• DDR/DDR2/DDR3 SDRAM devices include PLLs to achieve a phase match of the
Data Strobe Signal (DSQ) with the data signals (DQ) in case of data reads,
• DDR/DDR2/DDR3 SDRAM memory controllers use PLLs
• in case of data writes
to center align write data (DQ) with the data strobe signal (DQS)
and align the edges of DQS with CK,
• in case of data reads
the device sends edge aligned data (DQ) with the DQS, it is the task
of the controller’s PLL to shift DQS edge to the center of the data read.
• In multi module memory systems PLLs are utilized to deskew clocking.
3. Registering (23)
Figure: Aligning read and write data in DDR/DDR2/DDR3 devices [19]
3. Registering (24)
Remark
If there are multiple DRAM modules connected to a memory channel
an extra PLL is needed to deskew the multi-module memory system
1
2
3
4
Memory
Controller
or Bus
Re-drive
Chip
PLL
or
Clock
Buffer
Figure: Deskewing a multi-module memory system by a PLL [29]
4. ECC (1)
Module with ECC
ECC
Figure:Registered memory card with ECC [24]
4. ECC (2)
ECC basics (as used in SDRAMs)
Implemented as SEC-DED (Single Error Corretion Double Error Detection)
Single Error Correction
For D data bits P check-bits are taken.
Data bits
Check bits
Figure: The code word
The minimum number of check-bits (P) for single bit error corection ?
Requirement:
2P ≥ the minimum number of states to be distinguished.
4. ECC (3)
The minimum number of states to be distinguished:
• D + P states
to specify the bit position of a possible single bit error in the code word
for both data and check bits,
• one additional state to specify the „no error” state.
the minimum number of states to be distinguished is: D + P + 1
Accordingly:
to implement single bit error correction the minimum number of check bits (P)
needs to satisfy the requirement:
2P ≥ D + P + 1
4. ECC (4)
Double error detection
an additional parity bit is needed to check for an additional error.
Then the minimum number of check-bits (CB) needed for SEC-DED is:
CB = P + 1
i.e.
2CB-1 ≥ D + CB -1 + 1
2CB-1 ≥ D + CB
Data bits (D)
Check bits (CB)
1
2
3:2
3
7:4
4
15:8
5
31:16
6
63:32
7
127:64
8
255:128
9
511:256
10
Table: The number of check-bits (CB) needed for D data bits
4. ECC (5)
Principle of ECC coding
A constructor matrix [C] defines the check-bits [CB]:
[CB] = [D] × [C]
E.g. The constructor matrix [C] used in [22] is:
4. ECC (6)
Table: The constructor matrix [C]
used in [22] to generate the
check-bits [CB]
(Modified Hamming code)
4. ECC (7)
Calculation of the check-bits [CB] while using the constructor matrix [C] given before:
[CB0] = [D1] + [D2] + [D3] + [D5] + [D8] + [D9] etc.
[CB1] = [D0] + [D1] + [D2] + [D4] + [D6] + [D8] etc.
.
.
.
[CB7] = [D0] + [D1] + [D2] + [D3] + [D4] + [D5] etc.
+ denotes the EXCLUSIVE OR operation
4. ECC (8)
Principle of error detection and correction [23]:
First a generator matrix [G] is constructed from the identity matrix [I] and the
constructor matrix [C] as follows:
[G] = [I, C]
E.g. An 8 × 8 identity matrix [I] is:
[I] =
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
4. ECC (9)
Then the code word vector [D, CB] will be multiplied with the transpose of the generator
matrix [G’]1, yielding the syndrome vector [S]:
[S] = [D, CB] × [G’]
E.g. for a code word consisting of 64 bit data and 8 check bits an 8 bit syndrom vector is
calculated.
Interpretation of the syndrome vector:
• if all elements of the syndrome vector are zeros, no error occured,
• else the syndrome vector [S] identifies the error type and location of any single bit errors.
E.g. Interpretation of the syndrome vector [S] in [22]:
1
The transpose of the matrix [G] is the matrix [G’] where
the lines of the matrix [G] become the rows of the matrix [G’].
4. ECC (10)
Table: Interpretation of the bits of the syndrome vector [S] in [22] to identify possible errors
4. ECC (11)
A single bit error is then corrected by reverting the erroreneous bit in the identified position,
or a double or multiple bit error is reported.
Implementation of SEC
(in memories assuming 64-bit access width)
4. ECC (12)
Figure: Block diagram of a 64-bit SEC-DED error correction/detection unit [22]
4. ECC (13)
Operation (without taking use of the read/write FIFO buffers)
Writing data to memory
Incoming data (SD0-63) are simply forwarded through the latches and multiplexers
to the memory (MD0-63). Checkbits are generated and also fowarded to the memory
(CBSYN0-7)
Reading data from memory
Memory and checkbit data are latched in (MD0-63/CB0-7). Internal MD checkbits are
generated and compared to the incoming checkbits. Syndrome bits are also generated
and used to detect and correct errors. Finally, memory data (MD0-63) (corrected if
needed and feasible) are forwarded to the memory controller.
ECC operation increases memory latency by about 15-22 ns (time delay between SDin
0-63 to MDout0-63 and vice versa).
5. Presence detect (1)
Presence detect (PD)
After turning on the computer the BIOS1 runs the POST2 routine,
that among others detects the presence and key features of the subsystems that
make up the computer, such as the memory.
Early memory modules
(starting with SIMM/30 and in larger scale with SIMM/72)
PPD (Parallel Presence Detect)
Subsequent memory modules
(starting with DIMM/168)
SPD (Serial Presence Detect)
1
2
BIOS: Basic Input/Output System
POST: Power-On Self-Test
5. Presence detect (2)
PPD
Usually 4-8 pins of the edge connector of the module represent key features,
such as memory density, organisation, speed etc.
E.g. For a SIMM/72 module:
Pin
.
.
Use
.
.
Interpretation
.
.
65
DQ15
Data 15
66
n/c
Not connected
67
PD1
Presence Detect 1
68
PD2
Presence Detect 2
69
PD3
Presence Detect 3
70
PD4
Presence Detect 4
71
n/c
Not connected
72
VSS
Ground
5. Presence detect (3)
Coding and interpretation of the present detect (PD) bits:
• PD bits are subdivided into subfields,
• each subfield is binary coded,
• binary code has a given interpretation.
PD4
PD3
Access time
0
0
50, 100 ns
0
1
80 ns
1
0
70 ns
1
1
60 ns
Implementation of the coding:
0: a resistor connects the pin to ground
1: no resistor
As new DRAM technologies (such as FPM, EDO, SDRAM) introduce new features:
more and more edge connector pins would be required.
5. Presence detect (4)
SPD
Based on
• an 8-pin EEPROM (Erasable/Programmable Read-Only Memory) of 256-Byte,
• connected via a separate I2C bus to the memory controller.
Figure: SPD chip on a DDR3 module [25]
Figure: 8 pin-SPD EEPROM [26]
5. Presence detect (5)
Relevant features of the memory modules are held in a byte organised table, called
the SPD table.
The SPD table is standardized by JEDEC (1997)
Each byte reflects a particular feature and has a numeric (decimal/hexadecimal) value.
E.g.
Table: Excerpt of an SDRAM SPD table [27]
5. Presence detect (6)
Basic table format
Bytes
0 –127: allocated
128- 255: free for the user
(except DDR3 SPD tables, where bytes 0 – 175 are allocated).
Coding of the table entries (bytes)
is given in the appropriate JEDEC Module Serial Presence Detect Specification.
E.g. Coding of bytes 3 and 4 of DDR3 SPD tables:
5. Presence detect (7)
Byte 3
00H
01H
02H
03H
Byte 4
01H
02H
03H
04H
Module type
Undefined
Registered DIMM (RDIMM)
Unregistered DIMM (UDIMM)
Small Outline DIMM (SODIMM)
Device density
512 Mb
1 Gb
2 Gb
4 Gb
The SPD may also contains manufacturer's data, such manufacturer’s ID, part number, etc.
5. Presence detect (8)
As DRAM technology evolves
the SPD table needs to hold more and more DRAM features.
Different SPD table formats for different DRAM technologies
(FPM/EDO, SDRAM, DDR, DDR2, DDR3)
SPD table formats for
(FPM/EDO, SDRAM, DDR, DDR2, DDR3)
modules differ significantly.
5. Presence detect (9)
Table: Sample SPD table for FPM/EDO modules [27]
5. Presence detect (10)
Table: Sample SPD
table for SDRAM
modules (1) [27]
5. Presence detect (11)
Table: Sample SPD table for SDRAM modules (2) [27]
5. Presence detect (12)
Table: Sample SPD
table for DDR3
modules (1) [25]
5. Presence detect (13)
Table: Sample SPD
table for DDR3
modules (2) [25]
5. Presence detect (14)
I2C bus (Inter-IC bus)
Low-speed serial bus, using
• a serial bidirectional clock line (SCL) and
• a serial bidirectional data line (SDA).
After powering up the computer, the memory controller reads the content of the SPD table
during running the POST routine through this serial bus.
6. Keying (1)
Keying the modules
From the SIMM 72 on both memory modules and sockets have keys (notches)
to prevent inserting not fitting modules into the sockets.
Example:
Keys
Figure: Module keys on an SDRAM DIMM [1]
The keys may indicate supply voltage (5 V/ 3.3 V), module type (like RIMM etc)
or presence of SPD.
The position and interpretation of the keys is standardised by JEDEC,
(in the standards MO-116 for SIMM 72 modules, MO-161 for SDRAM DIMMs etc.)
6. Keying (2)
Examples
72-pin FPM/EDO SIMMs
Figure: Keying of 72-pin SIMMs (FPM or EDO DRAMs) [2]
6. Keying (3)
168-pin SDRAM DIMMs
Figure: Keying of 168-pin SDRAM DIMMs [3]
6. Keying (4)
184-pin DIMMs
DDR [4]
RIMM [5]
Figure: Keying of 184-pin DIMMs
6. Keying (5)
Figure: 184-pin RIMM module (Rambus DRAM) [18]
6. Keying (6)
240-pin DIMMs
DDR2 [6]
DDR3 [7]
FB-DIMM [8]
Figure: Keying of 240-pin DIMMs
6. Keying (7)
Figure: Keying diferences of DDR and DDR2 modules [9]
6. Keying (8)
Figure: Keying differences of DDR3 (top) and DDR2 (bottom) modules [10]
7. Summing up the main features of memory modules (1)
SIMM
72-pin
30-pin
Width (Data/Data+parity)
DRAM-type
FPM
FPM
EDO
(~1986?)
1993
1995
5V
5 V/3.3 V
5 V/3.3 V
On a few implementations
PPD (4-bit)
PPD (4-bit)
unregistered
unregistered
unregistered
256 KB – 8 MB
2 – 32 MB
4 – 64 MB
286
early 386
late 386
486
early Pentium
486
Pentium
First introduced
in Intel’s chipsets
Voltage
Present detect
(32/36-bit)
(8/9-bit)
Unreg./registered
Typ. module capacity
Typ. use in connection
with the processors
Figure : Main features of SIMM modules
7. Summing up the main features of memory modules (2)
DIMM
168-pin
Width
(Data/Data+ECC)
DRAM-type
240-pin
184-pin
(64/72-bit)
(64/72-bit)
(64/72-bit)
FPM
EDO
SDRAM
DDR
(1995)
(1996)
(1996)
(2002)
(2004)
(2007)
Voltage
5 V/3.3V
5 V/3.3 V
3.3 V
2.5 V
1.8 V
1.5 V
Present detect
PPD (8b
PPD (8b)
SPD (opt)
SPD
SDP
SPD
SPD
Unreg./registered
both
both
both
both
both
Typ. capacity [MB]
1-16
1-16
16-512
128 –1024
256–4096
512–496
Pentium
(3.3V)
Pentium
(3.3V)
Pentium (3.3V)
Pentium II
Pentium III
Pentium 4
Pentium 4
Pentium D
Core2 Duo
Core2 Duo
DIMM first intro.
in Intel’s chipsets
Typ. use with
the processors
Figure : Main features of DIMMs
DDR2
DDR3
unreg. (yet)
7. Summing up the main features of memory modules (3)
SODIMM
Width (Data)
72-pin
144-pin
200-pin
32-bit
64-bit
64-bit
DDR
DDR2
DDR3
~1996
1996
2002
2004
2007
SPD
SPD
SDP
SPD
SPD
No
No
No
No
EDO
~1994
~1995
PPD (7b)
PPD (7b)
Registered option
No
No
No
Typ. capacity [MB]
4-64
4-64
8-64
64-512
5 V/3.3V
5 V/3.3 V
3.3 V
3.3 V
Present detect
Voltage
64-bit
SDRAM
FPM
Est. year of intro.
204-pin
EDO
128 –1024 256–2048
2.5 V
Figure : Main features of SODIMM modules
1.8 V
512–4096
1.5 V
5. References (1)
[1]: 64MB Apple G3 Beige 168p SDRAM DIMM, http://www.memoryx.net/apl168s64.html
[2]: 4, 8 MEG x 32 DRAM SIMMs, Micron, http://www.pjrc.com/mp3/simm/datasheet.html
[3]: 168 Pin, PC133 SDRAM Registered DIMM Design Specification, JEDEC Standard
No. 21-C, Page 4.20.2
[4]: 184 Pin Unbuffered DDR SDRAM DIMM Family, JEDEC Standard No. 21-C, Page 4.5.10
[5]: Direct Rambus DRAMM RIMM Module, 512 MB, MC-4R512FKE6D, Elpida,
http://pdf1.alldatasheet.com/datasheet-pdf/view/60081/ELPIDA/MC-4R512FKE6D.html
[6]: DDR2 SDRAM UDIMM Features, Micron,
http://www.micron.com/products/modules/udimm/partlist
[7]: DDR3 SDRAM UDIMM Features, Micron,
http://www.micron.com/products/modules/udimm/partlist
[8]: DDR2 SDRAM FBDIMM Features, Micron,
http://www.micron.com/products/modules/fbdimm/partlist
[9]: Torres G., „Memory Tutorial”, July 19, 2005, Hardwaresecrets,
http://www.hardwaresecrets.com/article/167/1
[10]: Besedin D., „First look at DDR3”, Digit-life, June 29, 2007,
http://www.digit-life.com/articles2/mainboard/ddr3-rmma.html
5. References (2)
[11]: http://www.hardwaresecrets.com/fullimage.php?image=2862
[12]: http://cgi.ebay.com/Vintage-Microsoft-8-Bit-ISA-PC-RAM-Card-W-Gold-5150_
W0QQitemZ310017171151QQcmdZViewItem
[13]: Datasheet, Micron, http://download.micron.com/pdf/datasheets/modules/ddr/
DDF18C64_128x72D.pdf
[14]: Datasheet, Micron, http://download.micron.com/pdf/datasheets/modules/ddr2/
HTF18C64_128_256x72D.pdf
[15]: Datasheet, Micron, http://download.micron.com/pdf/datasheets/modules/ddr3/
JSF18C256x72PD.pdf
[16]: Supermicro Motherboards, http://www.supermicro.com/products/motherboard/
[17]: Definition of CDCV857 PLL Clock Driver for Registered DDR DIMM Applications,
JESD82, JEDEC, July 2000
[18]: http://www.tranzistoare.ro/datasheets2/32/327037_1.pdf
[19]: Haskill, „The Love/Hate relationship with DDR SDRAM Controllers,” Mosaid, Oct. 2006,
http://www.mosaid.com/corporate/products-services/ip/
SDRAM_Controller_whitepaper_Oct_2006.pdf
[20]: Van Roon T., „What exactly is a PLL?,” April 2006,
http://www.uoguelph.ca/~antoon/gadgets/pll/pll.html
[21]: Interfacing to DDR SDRAM with CoolRunner-II CPLDs, Application Note XAPP384,
Febr. 2003, XILINC inc.
5. References (5)
[22]: 64-bit Flow-Thru Error Detection and Correction Unit, IDT49C466, Integrated
Device Technology Inc., 1999, http://www.digchip.com/datasheets/parts/
datasheet/222/IDT49C466.php
[23]: Tam S., „Single Error Correction and Double Error Detection,”, XILINX Application
Note XAP645 (v.2.2), Aug. 2006, http://www.xilinx.com/support/documentation/
application_notes/xapp645.pdf
[24]: DDR SDRAM Registered DIMM Design Specification, JEDEC Standard No. 21-C, Page
4.20.4-1, Jan. 2002, http://www.jedec.org
[25]: Understanding DDR3 Serial Presence Detect (SPD) Table, July 17, 2007, Simmtester,
http://www.simmtester.com/PAGE/news/showpubnews.asp?num=153
[26]: DDR2 DIMM SPD Definition, August 25, 2006,
http://docmemory.com/page/news/showpubnews.asp?num=141
[27]: Memory Module Serial Presence-Detect, TN-04-42, Micron, 2002
http://download.micron.com/pdf/technotes/TN_04_42_C.pdf
[28]: Datasheet, http://download.micron.com/pdf/datasheets/modules/sdram/
SD9C16_32x72.pdf
[29]: Solanki V., „Design Guide Lines for Registered DDR DIMM Module,” Application Note AN37,
Pericom, Nov. 2001, http://www.pericom.com/pdf/applications/AN037.pdf
Download