05 Synchrounous Memory Modules
05 Synchrounous Memory Modules
Synchronous
memory modules
Dezső Sima
September 2008
(Ver. 1.0) Sima Dezső, 2008
Overview
• 2. Basic features
• 3. Registering
• 4. ECC
• 5. Presence detect
• 6. Keying
• 8. References
1. Design space of memory modules (1)
Figure: Main dimensions of the design space of the layout of memory modules
2. Basic features (1)
Module types
Memory card
(build up of DIPs)
Memory cards
1
DIP: Dual In-line Package
2
PC: Printed Circuit
2. Basic features (4)
Module types
1 Byte
30 pins
wide
Module types
FPM 1-Byte/30-pin
FPM/EDO 4-Byte/72-pin
SIMM
30-pin 72-pin
Module types
DDR 184-pin
DDR3 240-pin
DIMM
Typ. capacity [MB] 1-16 1-16 16-512 128 –1024 256–4096 512–496
Typ. use with Pentium Pentium Pentium (3.3V) Pentium 4 Pentium 4 Core2 Duo
the processors (3.3V) (3.3V) Pentium II Pentium D
Pentium III Core2 Duo
Module types
(build up of DIPs) (Single In-line (Single In-line (Dual In-line (Small Outline
Pin Package) Memory Module) Memory Module) Dual In-line
Memory Module)
SODIMM
Est. year of intro. ~1994 ~1995 ~1996 1996 2002 2004 2007
Typ. capacity [MB] 4-64 4-64 8-64 64-512 128 –1024 256–2048 512–4096
Voltage 5 V/3.3V 5 V/3.3 V 3.3 V 3.3 V 2.5 V 1.8 V 1.5 V
Modules width
(Data/Data+ECC)
8088-based PCs (1981): 386 (1985) and 486 (1988) Pentium (1993), and
1-byte wide data bus, based PCs: subsequent processors:
4-byte wide data bus 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)
Registering
Registering
Typical implementation
• Two register chips, for buffering the address- and command lines
• A PLL (Phase locked loop) unit for deskewing clock distribution.
ECC
S S S S S S S S S
D D D D D D D D D
R R R R R R R R R Data From / To Motherboard
A A A A A A A A A
M M M M M M M M M
PI6CV857
PI74SSTV168 PLL PI74SSTV168
57 Register 57 Register
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 U12
DQ
DQ
DQ
DQ
R
E
G
I
S
T
E
R
Note: Data (DQ) and data strobe (DQS) signals are not registered.
3. Registering (8)
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
Data Data
CK CK
tS tS
tH tH
The signal to
VCO:
be deskewed
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.
PLL PLL
PLL
Figure: Typical clock distribution schemes of one- and two-sided SDRAM modules [28], [41], [21]
PLL
PLL
Figure: Typical clock distribution schemes of two-sided DDR/DDR2 modules [13], [14]
Note
Examples
DQM CS#
DQ
DQ
DQ
DQ U12
DQ
DQ
DQ
DQ
CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS#
TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS#
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ U1 DQ U21 DQ U8 DQ U15
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
ZQ ZQ
CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS#
TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS#
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ U2 DQ U20 DQ U9 DQ U14
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
ZQ ZQ
CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS#
TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS#
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ U3 DQ U19 DQ U10 DQ U13
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
ZQ ZQ
CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS# CMU NW CS# DQS DQS#
TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS# TRDQS TRDQS#
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ U4 DQ U18 DQ U11 DQ U12
DQ DQ DQ DQ
DQ DQ DQ DQ
DQ DQ DQ DQ
ZQ ZQ
• 16 x8 DDR3 devices
R
e
g
• 2 ECC unit
• 1 Register and PLL unit and
i
s
t
e
r
a
• 1 Temp. sensor/SPD unit.
DDR3
n
SDRAM
d
P
L DDR3
L SDRAM
3. Registering (18)
R
e
g
i
s
t
e
r
a
n
d
P
L
L
SDRAM
Stack
PLL
OUT1
SDRAM
IN Stack
Reg. 1
OUT ‘N’
Feedback
Reg. 2
Figure: Overview of a clock distribution circuitry intended for DDR devices [16]
3. Registering (20)
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
• 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)
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.
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
ECC
The minimum number of check-bits (P) for single bit error corection ?
Requirement:
• 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.
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)
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
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
Calculation of the check-bits [CB] while using the constructor matrix [C] given before:
First a generator matrix [G] is constructed from the identity matrix [I] and the
constructor matrix [C] as follows:
[G] = [I, C]
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
[I] = 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]:
E.g. for a code word consisting of 64 bit data and 8 check bits an 8 bit syndrom vector is
calculated.
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
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)
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)
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.
1
BIOS: Basic Input/Output System
2
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.
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)
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.
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.
Bytes
0 –127: allocated
128- 255: free for the user
The SPD may also contains manufacturer's data, such manufacturer’s ID, part number, etc.
5. Presence detect (8)
the SPD table needs to hold more and more DRAM features.
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)
From the SIMM 72 on both memory modules and sockets have keys (notches)
to prevent inserting not fitting modules into the sockets.
Example:
Keys
The keys may indicate supply voltage (5 V/ 3.3 V), module type (like RIMM etc)
or presence of SPD.
Examples
184-pin DIMMs
DDR [4]
RIMM [5]
240-pin DIMMs
DDR2 [6]
DDR3 [7]
FB-DIMM [8]
Figure: Keying differences of DDR3 (top) and DDR2 (bottom) modules [10]
7. Summing up the main features of memory modules (1)
SIMM
30-pin 72-pin
Present detect PPD (8b PPD (8b) SPD SDP SPD SPD
SPD (opt)
Unreg./registered both both both both both unreg. (yet)
Typ. capacity [MB] 1-16 1-16 16-512 128 –1024 256–4096 512–496
Typ. use with Pentium Pentium Pentium (3.3V) Pentium 4 Pentium 4 Core2 Duo
the processors (3.3V) (3.3V) Pentium II Pentium D
Pentium III Core2 Duo
SODIMM
Est. year of intro. ~1994 ~1995 ~1996 1996 2002 2004 2007
Present detect PPD (7b) PPD (7b) SPD SPD SDP SPD SPD
Registered option No No No No No No No
Typ. capacity [MB] 4-64 4-64 8-64 64-512 128 –1024 256–2048 512–4096
Voltage 5 V/3.3V 5 V/3.3 V 3.3 V 3.3 V 2.5 V 1.8 V 1.5 V
[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
[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
[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
[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