Спецификация SPD EEPROM
Кроме описания интерфейса передачи, информации I2C
спецификация PC SDRAM Serial Presence Detect (SPD) Specification
определяет и информацию, записанную в EEPROM производителем. Необходимость
появления такой спецификации была вызвана тем, что главные проблемы при
установке SDRAM в компьютерные системы связаны с неправильным
взаимодействием BIOS на материнской плате и EEPROM на модуле памяти.
Дело в том, что многие тайванские производители материнских плат на
чипсете Intel 440BX устанавливают свой BIOS, который имеет функцию
отключения считывания информации из EEPROM. При этом параметры системы
устанавливаются вручную при входе в SETUP, или же BIOS сам устанавливает
параметры системы для работы с типовой памятью.
Специалисты фирмы «ЕПОС» довольно часто сталкиваются с ситуациями,
когда материнские платы (например, Intel) «отказываются» работать с
модулями памяти, у которых отсутствует правильно запрограммированная
EEPROM-память:
- EEPROM может быть некорректно запрограммирована производителем.
- Чипсет под управлением некорректного BIOS может неправильно
установить параметры системы.
Для исключения ошибок функционирования Intel установила единые правила
для всех производителей. Каждый производитель обязан внести информацию о
себе в байты 61...127 EEPROM.
Приводим таблицу идентификации байтов информации, хранимых в
EEPROM.
|
Byte Number |
Function |
Required/Optional |
Hex |
# |
|
|
00 |
0 |
Defines # of bytes written into serial memory at module
manufacturer |
Required |
01 |
1 |
Total # of bytes of SPD memory device |
Required |
02 |
2 |
Fundamental memory type (FPM, EDO, SDRAM...) from Appendix A |
Required |
03 |
3 |
# of row addresses on this assembly (Includes Mixed-size Row
addr.) |
Required |
04 |
4 |
# Column Addresses on this assembly (includes Mixed-size Col
addr.) |
Required |
05 |
5 |
# Module Rows on this assembly |
Required |
06 |
6 |
Data Width of this assembly |
Required |
07 |
7 |
Data Width continuation |
Required |
08 |
8 |
Voltage interface standard of this assembly |
Required |
09 |
9 |
SDRAM Cycle time, CL = X (highest GAS latency) |
Required |
0A |
10 |
SDRAM Access from Clock (highest CAS latency) |
Required |
0B |
11 |
DIMM Configuration type (non-parity, ECC) |
Required |
0C |
12 |
Refresh Rate/Type |
Required |
0D |
13 |
Primary SDRAM width |
Required |
0E |
14 |
Error Checking SDRAM width |
Required |
0F |
15 |
Minimum Clock Delay Back to Back Random Column Address |
Required* |
10 |
16 |
Burst Lengths Supported |
Required* |
11 |
17 |
# of Banks on Each SDRAM Device |
Required* |
12 |
18 |
CAS# Latencies Supported |
Required* |
13 |
19 |
CS# Latency |
Required* |
14 |
20 |
Write Latency |
Required* |
15 |
21 |
SDRAM Module Attributes |
Required* |
16 |
22 |
SDRAM Device Attributes: General |
Required* |
17 |
23 |
Min SDRAM Cycle time at CL X-1 (2nd highest CAS latency) |
Required* |
18 |
24 |
SDRAM Access from Clock at CL X-1 (2nd highest CAS latency) |
Required* |
19 |
25 |
Min SDRAM Cycle time at CL X-2 (3rd highest CAS latency) |
Optional* |
1A |
26 |
Max SDRAM Access from Clock at CL X-2 (3nd highest CAS
latency) |
Optional* |
1B |
27 |
Min Row Precharge Time (Tip) |
Required* |
1C |
28 |
Min Row Active to Row Active (Trrd) |
Required* |
1D |
29 |
Min RAS to CAS Delay (Tfcd) |
Required* |
1E |
30 |
Minimum RAS Pulse Width (Tras) |
Required* |
1F |
31 |
Density of each row on module (mixed, non-mixed sizes) |
Required |
20...3D |
32...61 |
Superset Information (may be used in future) |
|
3E |
62 |
SPD Data Revision Code |
Required |
3F |
63 |
Checksum for bytes 0...62 |
Required |
40...47 |
64...71 |
Manufacturer's JEDEC ID code per JEP-108E |
Optional |
48 |
72 |
Manufacturing Location |
Optional |
49...5A |
73...90 |
Manufacturer's Part Number |
Optional |
5B-5C |
91...92 |
Revision Code |
Optional |
5D-5E |
93...94 |
Manufacturing Date |
Optional |
6F-62 |
95...98 |
Assembly Serial Number |
Optional |
63...7D |
99...125 |
Manufacturer Specific Data |
Optional |
7E |
126 |
Intel specification frequency |
Required |
7F |
127 |
Intel Specification CAS# Latency support |
Required |
|
128+ |
Unused storage locations |
|
|
* Required/Optional – are SDRAM only bytes.
В соответствии с техническими требованиями Intel SPD EEPROM должна быть
корректно запрограммирована производителем и никогда не меняться. Поэтому
при обычной работе с SDRAM-модулем возможность случайного стирания или
изменения данных исключена. Это своего рода страховка от использования
медленных DIMM-модулей в системах Intel. Однако, несмотря на все
предосторожности, производители записывают в EEPROM данные с заведомо
внесенной в них ложной информацией. EEPROM подобна бумаге, на которой
может быть написано все что угодно.
Количество основных производителей микросхем памяти
(brand-name-производителей) ограничено. Для того чтобы отличить их от
других производителей «с именем», их еще называют Major-brands, или
попросту «мажор». Подавляющее большинство «мажоров» также производят
модули памяти на основе собственных чипов, которые в индустрии
производства SDRAM считаются эталонными по качеству и зовутся Major/Major
(«мажор на мажоре»). К таким фирмам относятся такие известные мировые
производители, как Samsung, Hyundai, LG, Siemens, которые наиболее точно
выполняют все требования спецификации PC SDRAM Serial Presence Detect
(SPD) (revision 1.2A, December, 1997).
Пожалуй, с истинно немецкой скрупулезностью и педантичностью подходит к
программированию SPD EEPROM фирма Siemens. Ниже приведена таблица
программирования SPD модулей памяти производства Siemens.
Serial Presence Detect Information used on SIEMENS 168 pin unbuffered
SDRAM DIMM modules (JEDEC Standard Nr.21-C Rev./INTEL SPD Specification
1.2 A
|
Byte # |
Description |
SPD Entry Value |
Hex |
0 |
Number of SPD bytes |
128 |
80 |
1 |
Total bytes in Serial PD |
256 |
08 |
2 |
Memory Type |
SDRAM |
04 |
3 |
Number of Row Addresses (without BS bits) |
11 |
0B |
12 |
0C |
4 |
Numbers of Column Addresses (for x16 SDRAM) (for x8
SDRAM) (for x4 SDRAM) |
8 9 10 |
08 09 0A |
5 |
Number of DIMM Banks |
1 |
01 |
2 |
02 |
6 |
Module Data Width |
64 |
40 |
72 |
48 |
7 |
Module Data Width (cont.) |
0 |
00 |
8 |
Module Interface Levels |
LVTTL |
01 |
SSTL 3,3 |
03 |
9 |
SDRAM Cycle Time at CL = 3 |
10,0 ns |
A0 |
10 |
SDRAM Access time from Clock at CL = 3 |
6,0 ns |
60 |
9,0 ns |
90 |
11 |
DIMM Config (Error Det/Corr.) |
none |
00 |
ECC |
02 |
12 |
Refresh Rate/Type |
Self-Refresh, 15,6 μs (64 ms) |
80 |
Self-Refresh, 31,3 μs (128 ms) |
83 |
13 |
SDRAM device data width, Primary |
X4 |
04 |
X8 |
08 |
X16 |
10 |
14 |
Error Checking SDRAM device data width |
no ECC |
00 |
X4 |
04 |
X8 |
08 |
X16 |
10 |
15 |
Minimum clock delay for back-to-back random column address |
t ccd = 1 CLK |
01 |
16 |
Burst Length supported |
1, 2, 4, 8 & full page |
8F |
17 |
Number of banks of the discrete SDRAM device |
2 |
02 |
4 |
04 |
8 |
08 |
18 |
Supported CAS Latencies |
CAS latencies = 1, 2 & 3 |
07 |
CAS latencies = 2, 3 |
06 |
CAS latency = 3 |
04 |
CAS latencies = 2, 3 & 4 |
E0 |
19 |
SDRAM CS Latencies |
CS latency = 0 |
01 |
20 |
SDRAM WE Latencies |
Write latency = 0 |
01 |
21 |
SDRAM DIMM module attributes |
non buffered/non registered |
00 |
registered w/o PLL |
12 |
registered with PLL |
16 |
22 |
SDRAM Device Attributes: General |
Vcc tol ±10%. Precharge All, Auto Precharge |
06 |
23 |
Minimum Clock Cycle Time at CAS Latency = 2 |
10,0 ns |
A0 |
15,0 ns |
F0 |
24 |
Maximum data access time from Clock for CL = 2 |
6,0 ns |
60 |
9,0 ns |
90 |
25 |
Minimum Clock Cycle Time at CL = 1 |
30 ns |
78 |
36 ns |
90 |
26 |
Maximum Data Access Time from Clock at CL = 1 |
27 ns |
6C |
27 |
Maximum Row Precharge Time |
20 ns |
14 |
24 ns |
18 |
30 ns |
1E |
28 |
Minimum Row Active to Row Active delay tRRD |
16 ns |
10 |
20 ns |
14 |
29 |
Minimum RAS to CAS delay tRCD |
20 ns |
14 |
24 ns |
18 |
30 ns |
1E |
30 |
Minimum RAS pulse width tRAS |
45 ns |
2D |
31 |
Module Density per Memory Bank |
8 MByte |
02 |
16 MByte |
04 |
32 MByte |
08 |
64 MByte |
10 |
32 |
SDRAM input setup time |
2 ns |
20 |
33 |
SDRAM input hold time |
1 ns |
10 |
34 |
SDRAM data input setup time |
2 ns |
20 |
35 |
SDRAM data input hold time |
1 ns |
10 |
32...61 |
Superset information (may be used in future) |
|
FF |
62 |
SPD Revision |
Revision 1.2 |
12 |
63 |
Checksum for bytes 0...62 |
Add HEX values and use last to digits |
|
64...127 |
Manufactures information (optional) |
|
FF |
128+ |
Unused storage location |
|
FF |
|
Одна из самых важных характеристик для пользователя – это
производительность памяти, которая определяется скрытым состоянием CAS CL
и описывается двумя байтами – 18-м и 27-м. Не менее важным параметром
является и тип памяти, определяющийся байтом 2. Если в этом байте
находится "02hex", то память – EDO, если "04 hex " – SDRAM. Фактическая
скорость DIMM содержится в байте 126. Для тактовой частоты 100 МГц его
значение должно быть "64 hex". В случае, если значение "66hex" – данный
DIMM 66 МГц. Номер SPD-EEPROM версии находится в байте 62. Текущей версией
является 1.2 (декабрь 1997 г.).
Для покупателей SDRAM-модулей, а также для компаний – сборщиков
компьютеров важна информация, которая находится в отдельных разрядах. Имея
эту информацию можно определить производителя SDRAM-модуля, дату его
изготовления, серийный номер и рекомендуемые частоты его применения.
Информация, хранящаяся в разрядах 64...127, приведена в таблице (на
примере модуля памяти фирмы Siemens).
Manufacturers Information (Rev.1.2)
|
Byte |
Description |
SPD Entry Value |
|
64...71 |
Manufactures JEDEC ID coda per JEP-106E |
64 |
|
SIEMENS |
C1 |
65...71 |
|
SIEMENS |
|
72 |
Manufacturing location of DIMM module |
|
|
Statsym |
01 or 31 |
|
|
SIEMENS-EWK |
02 or 32 |
|
|
Tanisys |
03 or 33 |
|
|
Optosys |
04 or 34 |
|
|
SMART |
05 or 35 |
73...90 |
Manufacturers partnumber |
73...87 |
Bytes 72...87: SIEMENS PARTNUMBER |
XX |
48 |
88 |
Unused |
|
FF |
89 |
Unused |
|
FF |
90 |
Unused |
|
FF |
91...92 |
Revision code of PC-Board |
91 |
Revision code of PC-Board |
Engineering Rev A (01) Rev B (02) Etc. |
00 01 02 |
92 |
Test Setup Revision |
|
XX |
93...94 |
Manufacturing date |
93 |
YEAR |
Example:97 |
97 |
94 |
CALENDAR WEEK |
Example:20 |
20 |
95...98 |
Board Assembly Serial Number |
|
|
95 |
Tester Number |
Example:3 |
03 |
96 |
Serial Number in Calendar Week Example = 24386 |
First 8 bits |
|
97 |
|
Bits 16...9 |
|
98 |
|
Bits 24...17 |
|
|
|
|
|
99...125 |
Manufacturer Specific Data (not used) |
|
FF |
126 |
PC66&PC100 compatibility |
PC66 |
66 |
|
|
PC100 |
64 |
127 |
INTEL specification details for 100 MHz support |
|
|
|
|
|
|
127...255 |
Free for Information programmed by the customer |
|
FF |
|
Программные средства тестирования памяти SDRAM PC100
Информацию, хранящуюся в SPD EEPROM любого модуля или модулей SDRAM
разных производителей, установленных в компьютерную систему, можно
получить, используя программные средства.
Программа чтения SPD EEPROM ctsmb.exe
Можно написать свою подпрограмму или воспользоваться готовыми
утилитами. Мы рекомендуем использовать программу ctsmb.exe
(System-Management-Bus-Scanner 1.2), которая работает при наличии на
материнской плате South-Bridge PIIX4 (PIIX – аббревиатура
PCI-ISA-IDE-Xelerator), т.е. М/В с чипсетами ТХ,LX, BX, ZX, EX в режимах
DOS либо эмуляции DOS.
Программа реализует 3 основных режима работы:
- Формирование полного отчета тестирования DIMM-модулей в соответствии
со спецификацией Intel.
- Формирование распечатки содержимого EEPROM в таблице, содержащей
шестнадцатеричные коды.
- При наличии на плате чипа LM75 производит анализ температурных
режимов платы.
Во втором режиме работы возможно побайтное либо пословное (2 байта)
чтение из EEPROM по указанному шестнадцатеричному адресу.
К недостаткам программы следует отнести невозможность поэкранной
распечатки результатов теста, поэтому полученные данные следует
распечатывать на принтере (работающем под DOS) либо записывать в файл
отчета, который может быть потом просмотрен в Windows с помощью программ
Office или NC.
Минимальная конфигурация испытательного стенда проверки DIMM-модулей
представлена на рисунке.
Рис. 5. Минимальная конфигурация испытательного
стенда 1 – материнская плата (М/В) с процессором и исследуемым
DIMM-модулем, выполненная на чипсетах TX, LX, BX, ZX, EX; 2 – видеокарта
VGA; 3 – блок питания; 4 – FDD; 5 – принтер; 6 – клавиатура; 7 –
монитор.
Такой испытательный стенд может служить простейшим прибором,
позволяющим получить информацию о характеристиках модуля SDRAM.
Приводим пример вывода на принтер информации, хранимой в SPD EEPROM
модуля памяти Major/Major Hyundai, выполненного в соответствии со
спецификацией РС66, но проданного потребителю как модуль памяти РС100.
Справедливости ради надо отметить, что и на частоте 100 МГц данный модуль
памяти работал устойчиво.
ctsmb,
System-Management-Bus-Scanner 1.2,c t, 1998. ea,Teile qs PIIX4E (AO)
gefunden auf PCI-Bus 0, Devise 4 SMB Base Address: $E800,Host
configuration: $09, revision: $00 DIMM in Socket 0, Serial Presence
Detect Data Structure auf SMB-Adresse $ 50
|
00 |
Number of Bytes used by Manufacturer |
128 |
01 |
Total SPD Memory Size |
256 Bytes |
02 |
Memory Type |
SDRAM |
03 |
Number of Row Address Bits (SDRAM) |
12 |
04 |
Number of Column Address Bits (SDRAM) |
9 |
05 |
Number of Module Rows |
1 |
06, 07 |
Module Date Width |
72 |
08 |
Module Interface Signal Levels |
LVTTL |
09 |
SDRAM Cycle Time (highest CAS latency) |
10,0 ns |
0A |
SDRAM Acc. Time from Clock (highest CAS latency) |
8,0 ns |
0B |
Module Configuration |
ECC |
0C |
Refresh |
Self Refresh. Normal (15,625 μs) |
0D |
SDRAM Width (Primary SDRAM) |
8 |
0E |
Error Checking SDRAM Width |
8 |
|
SDRAM Module
Attributes: – – SDRAM Devise Attributes:
|
OF |
Min. Clock delay Back to Back |
1 Clock (s) |
10 |
Burst Lengths Supported |
Page 8 4 2 1 |
11 |
Number of Banks on SDRAM Device |
4 |
12 |
CAS Latency |
3 2 1 |
13 |
CS Latency |
0 |
14 |
WE Latency |
0 |
15 |
Upper Vcc tolerance |
10% |
16 |
Lower Vcc tolerance |
10% |
|
Supports: Write 1/Read
Burst Precharge All Auto-Precharge Early RAS# Precharge
|
17 |
SDRAM Cycle Time (2nd highest CAS lat.) |
12,0 ns |
18 |
SDRAM Acc. from Clock (2nd hi.CAS lat.) |
9,0 ns |
19 |
SDRAM Cycle Time (3rd highest CAS lat.) |
30,00 ns |
1A |
SDRAM Acc. From Clock (3rd hi. CAS lat.) |
24,00 ns |
1B |
Minimum Row Precharge Time (Trp) |
30 ns |
1C |
Row Active to Row Active Min (Trrd) |
30 ns |
1D |
RAS to KAS Delay Min (Trsd) |
30 ns |
1E |
Minimum RAS Pulse Width (Tras) |
50 ns |
1F |
Density of Each Row on Module |
64 MByte |
|
|
|
3E |
SPD Data Reversion Code |
$01, Release Dec. 96 |
3F |
Checksum for Bytes 0...62 |
$0E, OK |
|
|
|
40...47 |
Manufacturer's JEDEC 1D Code |
$ADFFFFFFFFFFFFFF |
48 |
Manufacturing Location |
$01 |
49...5A |
Manufacturer's Part Number |
7V72a801TFG-10 |
5B, C |
Prevision Code |
$4141 |
5D...5E |
Manufacturing Date |
$4497 |
5F...62 |
Assembly Serial Number |
$1706B330 |
63...7D |
Manufacturer Specific Data |
$00000000000000000000000000 |
|
|
0000000000000000000000000000 |
|
|
|
7E |
Intel specification frequency |
66 MHz |
7F |
Intel specification CAS# Latency Support |
CAS Latency 2 |
|
Таблица 16-ричных кодов:
ctsmb,
System-Management-Bus-Scanner 1.2, c t, 1998. ea,Teile qs PIIX4E (AO)
gefunden auf PCI-Bus 0, Devise 4 SMB Base Address: $E800, Host
configuration: $09, revision: $00 DIMM-EEPROM-Inhalt in Socket 0,
SMB-Addresse $50
|
00: |
80 |
08 |
04 |
0C |
09 |
01 |
48 |
00 |
|
01 |
A0 |
80 |
02 |
80 |
08 |
08 |
01 |
10: |
8F |
04 |
07 |
01 |
01 |
00 |
0F |
C0 |
|
90 |
78 |
60 |
1E |
1E |
1E |
32 |
10 |
20: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
30: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
01 |
1E |
40: |
AD |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
|
01 |
37 |
56 |
37 |
32 |
41 |
38 |
30 |
50: |
31 |
54 |
46 |
47 |
2D |
31 |
30 |
20 |
|
20 |
20 |
20 |
41 |
41 |
44 |
97 |
17 |
60: |
06 |
B3 |
30 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
70: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
66 |
06 |
80: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
90: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
A0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
B0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
C0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
D0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
E0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
F0: |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
|
08 |
09 |
0A |
0B |
0C |
0D |
0E |
0F |
|
Программа тестирования DIMM EEPROM dimm.exe
Быстрый анализ типа DIMM-модуля, установленного в системном блоке,
может быть произведен также программой dimm_id.exe. На
программу распространяются все ограничения, рассмотренные выше: наличие
South Bridge PIIX4, работа под DOS. Однако она может быть также запущена в
окне под Windows.
Программа DIMM_ID указывает номер банка памяти, в который установлен
DIMM-модуль, наименование фирмы производителя, номер партии и серийный
номер продукта, тип памяти и ее размер и, самое главное, максимальную
частоту системной шины, с которой может работать данный DIMM-модуль.
К недостаткам программы относится, в первую очередь, ограниченное число
распознаваемых ведущих производителей DIMM-модулей: Hyundai, Samsung, TI,
Fujitsu, Micron, Vanguard, Siemens. В остальных случаях она указывает на
«неизвестного» производителя.
Пример работы программы dimm_id.exe для модуля Hyundai приведен
ниже.
|
DIMM_ID.EXE |
Ver 1.3 RM Plc © 1998 |
Type DIMM_ID H for help. |
|
Bank |
Mfr. |
Part No. |
Serial No |
Size |
Type |
I-Spec |
0 |
Hyundai |
7V72A801 TFG-10 |
1706B330 |
64MB |
SDRAM ECC |
PC66 |
1 |
|
No DIMM fitted |
|
|
|
|
2 |
|
No DIMM fitted |
|
|
|
|
3 |
|
No DIMM fitted |
|
|
|
|
Необходимым условием возможности считывания информации из EEPROM
является наличие компонента 82371 (PIIX4), который является South Bridge
на материнской плате. PIIX4 – это мост между шинами PCI и ISA и
присутствует на всех материнских платах, использующих чипсеты TX, LX, BX и
выполненных в соответствии с рекомендациями Intel.
Мы столкнулись с тем, что некоторые платы тайванских производителей на
чипсетах Intel не взаимодействуют корректно с программой CTSMB, и поэтому
рекомендуем вам выбрать плату от ASUSTEK. Все платы, проверенные нами,
работали корректно.
Не пробуйте запускать программу на платах с Super Socket7, у вас ничего
не получится. Если на материнской плате не присутствует элемент PIIX4,
CTSMB вас информирует об этом и программа сбрасывается.
Наши рекомендации
- Покупайте память только у проверенных поставщиков.
- Старайтесь покупать «оригинальную» память от производителей
Major/Major. Это означает, что производитель производит сам и чипы
SDRAM, и PSB для модулей памяти, и самое главное – модули памяти
SDRAM!!!
- Не покупайте дешевую память. С хорошими «мозгами» жить легче!
Дата публикации: 2 апреля 1999 года
Электронная версия: © ЕПОС.
|