Cхема последовательного детектирования.
Когда обычный современный
компьютер включен, он запускается, делая
самотестирование при включении питания (POST). С середины 1990-х, этот
процесс включает автоматически конфигурирование установленых аппаратных
средств. SPD - аппаратная функция памяти, которая позволяет компьютеру
определить присутствие памяти , а также тайминги, для доступа к памяти.
Некоторые компьютеры
адаптируются к аппаратным изменениям полностью
автоматически. В большинстве случаев есть специальная дополнительная
функции для того, чтобы получить доступ к параметрам BIOS, просмотреть
и произвести изменения в настройках. Может быть возможным
управлять, использыванием памяти при помощи данныех SPD —
чтобы
выбрать определенные настройки, выборочно изменить синхронизации
памяти, или возможно полностью переопределить данные SPD.
Хранимая информация
Для поддержки SPD модулями памяти, по стандартам JEDEC требуется размещение параметров в младших 128 байтах EEPROM расположенных на модуле памяти. Эти байты содержат временные параметры, производитель, серийный номер и другую полезную информацию о модуле. This data allows a device utilizing the memory to automatically determine key parameters of the module. Эти данные позволяют устройству использования памяти для автоматического определения основных параметров модуля.Например, SPD данные в SDRAM модуле можуг предоставить информацию о латентность CAS, что позволяет правильно установлен этот параметр, без вмешательства пользователя.
SPD EEPROM доступен с помощью SMBus,
вариант протокола
I²C. Это
сокращает количество коммуникационных контактов на модуле к
двум:
синхросигнал и сигнал данных. Совместно используются заземляющие выводы
с RAM, имеет собственный контакт питания, и имеет три дополнительных
контакта (SA0–2), чтобы идентифицировать слот, которые
используются, чтобы присвоить EEPROM уникальный адрес в диапазоне
0x50–0x57. Линии связи могут быть совместно использованы 8
модулями памяти, так же SMBus обычно используется на
системных
платах для контрольных задач, таких как чтение напряжений
источника питания, температура ЦП, и скорость вентилятора.
(SPD EEPROMs так же отвечают на I²C адреса 0x30–0x37 если они не были защищены от записи и расширение, используются адреса 0x18–0x1F, чтобы получить доступ к дополнительному температурному датчику на микросхеме.[2])
Первая спецификация SPD была
выпущена JEDEC и использована Intel,
как часть его спецификации памяти PC100 .[3]
Большинство
определенных значений находится в форме двоично-десятичного
числа.Старшее значащее может содержать значения от 10 до 15,
и в
некоторых случаях расширяется выше. В таких случаях кодировки
1,
2 и 3 используются, чтобы закодировать 16, 17 и 18. Старшее
значащее 0 зарезервировано, чтобы представить
"неопределенность".
ROM SPD определяет до трех
синхронизаций DRAM для трех задержек CAS,
определенных битами набора в байте 18. Сначала самая высокая
задержка CAS (самые быстрые часы), тогда две более низких задержки CAS
с прогрессивно более низкими тактовыми частотами.
Byte,d | Byte,x | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Notes |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0x00 | Размер | Обычно 128 | |||||||
1 | 0x01 | log2(размер SPD EEPROM) | Обычно 8 (256 bytes) | |||||||
2 | 0x02 | Тип памяти (4 = SPD SDRAM) | ||||||||
3 | 0x03 | Банк 2 адрес строк биты (0–15) | Банк 1 адрес строк биты (1–15) | Банк 2, 0 если такой же как и банк 1 | ||||||
4 | 0x04 | Банк 2 адреса колонок биты (0–15) | Банк 1 адреса колонок биты (1–15) | Банк 2, 0 если такой же как и банк 1 | ||||||
5 | 0x05 | Количество RAM в модуле (1–255) | Обычно 1 or 2 | |||||||
6 | 0x06 | ширина данных младший байт | Обычно 64, или 72 для ECC DIMMs | |||||||
7 | 0x07 | ширина данных старший байт | 0 если ширина ≥ 256 bits | |||||||
8 | 0x08 | Интерфейс уровня напряжения (не V cc напряжения питания) (0-4) | Расшифровано в Table lookup | |||||||
9 | 0x09 | Наносекунды (0–15) | Десятые доли наносекунды (0.0–0.9) | Такт времени на самом высоком задержки | ||||||
10 | 0x0a | Наносекунды (0–15) | Десятые доли наносекунды (0.0–0.9) | SDRAM время доступа (tAC) | ||||||
11 | 0x0b | DIMM тип конфигурации (0–2): non-ECC, четность, ECC | Table lookup | |||||||
12 | 0x0c | Self | Период регенерации (0–5): 64, 256, 128, 32, 16, 8 kHz | Период регенарации | ||||||
13 | 0x0d | Банк 2 2× | Банк 1 первичный ширина (1–127, usually 8) | Ширина банк данных устройства 1 SDRAM. Банк 2, может быть такой же ширины, или 2 × ширина, если бит 7 установлен. | ||||||
14 | 0x0e | Банк 2 2× | Банк 1 ECC SDRAM Ширина (0–127) | Ширина банка 1 ECC / четность устройств SDRAM. Банк 2, может быть такой же ширины, или 2 × ширина, если бит 7 установлен. | ||||||
15 | 0x0f | Задержка для чтения случайных колонок | Обычно 1 | |||||||
16 | 0x10 | Страница | — | — | — | 8 | 4 | 2 | 1 | Burst длины поддерживаются (растровые) |
17 | 0x11 | Банков в SDRAM (1–255) | Обычно 2 or 4 | |||||||
18 | 0x12 | — | 7 | 6 | 5 | 4 | 3 | 2 | 1 | CAS |
19 | 0x13 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | CS |
20 | 0x14 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | WE) |
21 | 0x15 | — | Избыточность | Diff clock | Регистрове данные | Буферные данные | On-card PLL | Регистровый адрес | Буферный адрес | Модуль памяти растровые функции |
22 | 0x16 | — | — | Верхняя V cc | Нижняя Vcc | Все Precharge | RAS | Память чипа функции поддержки растровых операций | ||
23 | 0x17 | Наносекунды (4–18) | Десятые доли наносекунды (0.0–0.9) | Такт времени на средних задержки CAS. | ||||||
24 | 0x18 | Наносекунды (4–18) | Десятые доли наносекунды (0.0–0.9) | Доступ к данным время от часов (tAC) | ||||||
25 | 0x19 | Наносекунды (1–63) | 0.25 ns (0–0.75) | Такт с короткими задержками CAS. | ||||||
26 | 0x1a | Наносекунды (1–63) | 0.25 ns (0–0.75) | Доступ к данным (tAC) | ||||||
27 | 0x1b | Наносекунды (1–255) | Минимальное время подзарядки строки (tRP) | |||||||
28 | 0x1c | Наносекунды (1–255) | Минимальный строк активного ряда активных задержки (tRRD) | |||||||
29 | 0x1d | Наносекунды (1–255) | Минимальная RAS в CAS задержки (tRCD) | |||||||
30 | 0x1e | Наносекунды (1–255) | Минимальное время подзарядки (tRAS) | |||||||
31 | 0x1f | 512 MiB | 256 MiB | 128 MiB | 64 MiB | 32 MiB | 16 MiB | 8 MiB | 4 MiB | Плотность |
32 | 0x20 | Sign (1=neg) | Наносекунды (0–7) | Десятые доли наносекунды (0.0–0.9) | Адрес / команду установки времени из часов | |||||
33 | 0x21 | Sign (1=neg) | Наносекундыs (0–7) | Десятые доли наносекундыs (0.0–0.9) | Адрес / команду провести время после часы | |||||
34 | 0x22 | Sign (1=neg) | Наносекунды (0–7) | Десятые доли наносекунды (0.0–0.9) | Ввод данных установки времени из часов | |||||
35 | 0x23 | Sign (1=neg) | Наносекунды (0–7) | Десятые доли наносекунды (0.0–0.9) | Ввод данных провести время после часы | |||||
36–61 | 0x24–0x3d | Зарезервировано | Зарезервировано | |||||||
62 | 0x3e | Ревизия (0–9) | Ревизия (0.0–0.9) | SPD ревизия | ||||||
63 | 0x3f | Контрольная сумма | Сумма байт 0-62, не отрицается | |||||||
64–71 | 0x40–47 | JEDEC ID | Хранимые прямой порядок байтов, уступая нулевой позиции. | |||||||
72 | 0x48 | Место производства | Поставщик | |||||||
73–90 | 0x49–0x5a | Номер партии | ASCII | |||||||
91–92 | 0x5b–0x5c | Код
ревизии |
Поставщик | |||||||
93 | 0x5d | Десятки лет (00–90) | год (0–9) | Дата изготовления (YYWW) | ||||||
94 | 0x5e | Десятки недель (00–50) | неделя (0–9) | |||||||
95–98 | 0x5f–0x62 | Серийный номер | Поставщик |
|||||||
99–125 | 0x63–0x7f | Данные
производителя |
Данные производителя | |||||||
126 | 0x7e | 0x66 for 66 MHz, 0x64 for 100 MHz | Поддерживаемые частоты |
|||||||
127 | 0x7f | CLK0 | CLK1 | CLK3 | CLK3 | 90/100°C | CL3 | CL2 | Concurrent AP | Intel функции |
DDR SDRAM
The DDR DIMM SPD format is an extension of the SDR SDRAM one. Mostly, parameter ranges are rescaled to accommodate higher speeds.
DDR SDRAM[5]
Байт, d | Байт, x | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Примечания |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0x00 | Число записанных байтов | Обычно 128 | |||||||
1 | 0x01 | log2 (размер SPD EEPROM) | Обычно 8 (256 байтов) | |||||||
2 | 0x02 | Основной тип памяти (7 = SDRAM DDR) | ||||||||
3 | 0x03 | Банк 2 адресных бита (0-15) строки | Банк 1 адресный бит (1-15) строки | Банк 2 0 если то же самое как банк 1. | ||||||
4 | 0x04 | Адресные биты (0-15) 2 столбцов банка | Адресные биты (1-15) 1 столбца банка | Банк 2 0 если то же самое как банк 1. | ||||||
5 | 0x05 | Число RAM полагается на модуль (1–255) | Обычно 1 или 2 | |||||||
6 | 0x06 | Младший байт ширины данных модуля | Обычно 64, или 72 для ECC DIMMs | |||||||
7 | 0x07 | Ширина данных модуля высокий байт | Нуль, если ширина ≥ 256 битов | |||||||
8 | 0x08 | Интерфейсный уровень напряжения этого блока (не то же самое как напряжение питания Vcc) (0–5) | Декодируемый поиском по таблице | |||||||
9 | 0x09 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в самой высокой задержке CAS. | ||||||
10 | 0x0a | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа SDRAM от часов (tAC) | ||||||
11 | 0x0b | Тип (0-2) конфигурации DIMM: не-ECC, четность, ECC | Поиск по таблице | |||||||
12 | 0x0c | Сам | Период обновления (0–5): 64, 256, 128, 32, 16, 8 кГц | Требования обновления | ||||||
13 | 0x0d | Банк 2 2× | Банк 1 основная ширина SDRAM (1–127) | Ширина банка 1 устройство SDRAM данных. Банк 2 может быть той же самой шириной, или 2× ширина, если бит 7 установлен. | ||||||
14 | 0x0e | Банк 2 2× | Банк 1 ширина SDRAM ECC (0–127) | Ширина банка 1 устройство SDRAM ECC/четности. Банк 2 может быть той же самой шириной, или 2× ширина, если бит 7 установлен. | ||||||
15 | 0x0f | Задержка часов случайных чтений столбца | Обычно 1 | |||||||
16 | 0x10 | Страница | — | — | — | 8 | 4 | 2 | 1 | Пакетные поддерживаемые длины (побитово отображают) |
17 | 0x11 | Банки на устройство SDRAM (1–255) | Обычно 4 | |||||||
18 | 0x12 | — | 4 | 3.5 | 3 | 2.5 | 2 | 1.5 | 1 | Поддерживаемые задержки CAS (побитово отображают) |
19 | 0x13 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Поддерживаемые задержки CS (побитово отображают) |
20 | 0x14 | — | 6 | 5 | 4 | 3 | 2 | 1 | 0 | МЫ поддерживаемые задержки (побитово отображаем) |
21 | 0x15 | — | x | Различные часы | Переключатель FET внешнее включение | Переключатель FET встроенное включение | PLL на карте | Зарегистрированный | Буферизованный | Битовый массив функции модуля памяти |
22 | 0x16 | Быстрый AP | Параллельный автоматический предварительный заряд | Верхний Vcc (напряжение питания) допуск | Понизьте Vcc (напряжение питания) допуск | — | — | — | Включает слабый драйвер | Битовый массив функции микросхемы памяти |
23 | 0x17 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в средней задержке CAS. | ||||||
24 | 0x18 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа к данным от часов (tAC) | ||||||
25 | 0x19 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в короткой задержке CAS. | ||||||
26 | 0x1a | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа к данным от часов (tAC) | ||||||
27 | 0x1b | Наносекунды (1–63) | 0.25 нс (0–0.75) | Минимальное время предварительного заряда строки (tRP) | ||||||
28 | 0x1c | Наносекунды (1–63) | 0.25 нс (0–0.75) | Минимальная активная строка строки активная задержка (tRRD) | ||||||
29 | 0x1d | Наносекунды (1–63) | 0.25 нс (0–0.75) | Минимальный RAS к задержке CAS (tRCD) | ||||||
30 | 0x1e | Наносекунды (1–255) | Минимум, активный ко времени предварительного заряда (tRAS) | |||||||
31 | 0x1f | 512 мебибайт | 256 мебибайт | 128 мебибайт | 64 мебибайт | 32 мебибайт | 16 мебибайт / 4 гибибайта |
8 мебибайт / 2 гибибайта |
4 мебибайт / 1 гибибайт |
Плотность банка модуля (битовый массив). Набор на два бита, если различные банки размера. |
32 | 0x20 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Адресуйте/управляйте время установки от часов | ||||||
33 | 0x21 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Адресуйте/управляйте время задержки после часов | ||||||
34 | 0x22 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время установки ввода данных от часов | ||||||
35 | 0x23 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время задержки ввода данных после часов | ||||||
36–40 | 0x24–0x28 | Зарезервированный | Информация о надмножестве | |||||||
41 | 0x29 | Наносекунды (1–255) | Минимум, активный к активному времени / времени обновления (tRC) | |||||||
42 | 0x2a | Наносекунды (1–255) | Минимальное обновление к активному времени / времени обновления (tRFC) | |||||||
43 | 0x2b | Наносекунды (1–63) | 0.25 нс (0–0.75) | Максимальное время такта
(tCK
максимальный) Если все-, нет никакого максимума. |
||||||
44 | 0x2c | Сотые части наносекунд (0.01–2.55) | Максимальный скос, DQS к любому DQ. (tDQSQ максимальный) | |||||||
45 | 0x2d | Десятые части наносекунд (0.0–1.2) | Сотые части наносекунд (0.00–0.09) | Читайте данные содержат скошенный фактор (tQHS) | ||||||
46 | 0x2e | Зарезервированный | Для будущей стандартизации | |||||||
47 | 0x2f | — | Высота | Высота модуля DIMM, поиска по таблице | ||||||
48–61 | 0x30–0x3d | Зарезервированный | Для будущей стандартизации | |||||||
62 | 0x3e | Главная версия (0-9) | Незначительная версия (0.0–0.9) | Уровень версии SPD, 0.0 или 1.0 | ||||||
63 | 0x3f | Контрольная сумма | Сумма байтов 0–62, не отрицаемый | |||||||
64–71 | 0x40–47 | Производитель ID JEDEC | Сохраненный прямой порядок байтов, запаздывающая нулевая клавиатура. | |||||||
72 | 0x48 | Модуль производственное расположение | Специфичный для поставщика код | |||||||
73–90 | 0x49–0x5a | Число части модуля | ASCII, дополненный пространством | |||||||
91–92 | 0x5b–0x5c | Код версии модуля | Специфичный для поставщика код | |||||||
93 | 0x5d | Десятки лет (00–90) | годы (0–9) | Производственная дата (YYWW) | ||||||
94 | 0x5e | Десятки недель (00–50) | недели (0–9) | |||||||
95–98 | 0x5f–0x62 | Порядковый номер модуля | Специфичный для поставщика код | |||||||
99–127 | 0x63–0x7f | Специфичные для производителя данные | профиль производительности |
DDR2 SDRAM
DDR2 SPD стандарт производит много изменений, но примерно подобен вышеупомянутому. Одной полезной вещью, которую это удаляет, является запутывающая и мало-используемая поддержка DIMMS с двумя разрядами различных размеров. Для полей времени цикла (байты 9, 23, 25 и 49), которые закодированы в BCD, некоторые дополнительные кодировки определены для цифры десятых частей, чтобы представить некоторые общие синхронизации точно:
Шестнадцатеричный | Двоичный файл | Значение |
---|---|---|
A | 1010 | 0.25 |
B | 1011 | 0.33 |
C | 1100 | 0.66 |
D | 1101 | 0.75 |
E | 1110 | 0.875 (nVidia расширение XMP) |
F | 1111 | Зарезервированный, не использовать |
Байт | (Шестнадцатеричный) байт | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Примечания |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0x00 | Число записанных байтов | Обычно 128 | |||||||
1 | 0x01 | log2 (размер SPD EEPROM) | Обычно 8 (256 байтов) | |||||||
2 | 0x02 | Основной тип памяти (8 = SDRAM DDR2) | ||||||||
3 | 0x03 | Зарезервированный, нуль | Адресные биты (1-15) строки | |||||||
4 | 0x04 | Зарезервированный, нуль | Адресные биты (1-15) столбца | |||||||
5 | 0x05 | Вертикальная высота | Стек? | ConC? | Ranks−1 (1–8) | Обычно 0 или 1, означая 1 или 2 | ||||
6 | 0x06 | Ширина данных модуля | Обычно 64, или 72 для ECC DIMMs | |||||||
7 | 0x07 | Зарезервированный, нуль | ||||||||
8 | 0x08 | Интерфейсный уровень напряжения этого блока (не то же самое как напряжение питания Vcc) (0–5) | Декодируемый поиском по таблице. Обычно 5 = SSTL 1.8 V |
|||||||
9 | 0x09 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в самой высокой задержке CAS. | ||||||
10 | 0x0a | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа SDRAM от часов (tAC) | ||||||
11 | 0x0b | Тип (0-2) конфигурации DIMM: не-ECC, четность, ECC | Поиск по таблице | |||||||
12 | 0x0c | Сам | Период обновления (0–5): 64, 256, 128, 32, 16, 8 кГц | Требования обновления | ||||||
13 | 0x0d | Основная ширина SDRAM (1–255) | Обычно 8 (модуль, созданный из ×8 частей) или 16 | |||||||
14 | 0x0e | Ширина SDRAM ECC (0–255) | Ширина устройств SDRAM ECC/четности банка. Обычно 0 или 8. | |||||||
15 | 0x0f | Зарезервированный, нуль | ||||||||
16 | 0x10 | — | — | — | — | 8 | 4 | — | — | Пакетные поддерживаемые длины (побитово отображают) |
17 | 0x11 | Банки на устройство SDRAM (1–255) | Обычно 4 или 8 | |||||||
18 | 0x12 | 7 | 6 | 5 | 4 | 3 | 2 | — | — | Поддерживаемые задержки CAS (побитово отображают) |
19 | 0x13 | Зарезервированный, нуль | ||||||||
20 | 0x14 | — | — | Mini-UDIMM | Mini-RDIMM | Micro-DIMM | ТАКИМ-ОБРАЗОМ-DIMM, | UDIMM | RDIMM | Тип DIMM этого блока (битовый массив) |
21 | 0x15 | — | Модуль - аналитический зонд | — | Переключатель FET внешнее включение | — | — | — | — | Битовый массив функции модуля памяти |
22 | 0x16 | — | — | — | — | — | — | — | Включает слабый драйвер | Битовый массив функции микросхемы памяти |
23 | 0x17 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в средней задержке CAS. | ||||||
24 | 0x18 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа к данным от часов (tAC) | ||||||
25 | 0x19 | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Время такта в короткой задержке CAS. | ||||||
26 | 0x1a | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время доступа к данным от часов (tAC) | ||||||
27 | 0x1b | Наносекунды (1–63) | Нс 1/4 (0–0.75) | Минимальное время предварительного заряда строки (tRP) | ||||||
28 | 0x1c | Наносекунды (1–63) | Нс 1/4 (0–0.75) | Минимальная активная строка строки активная задержка (tRRD) | ||||||
29 | 0x1d | Наносекунды (1–63) | Нс 1/4 (0–0.75) | Минимальный RAS к задержке CAS (tRCD) | ||||||
30 | 0x1e | Наносекунды (1–255) | Минимум, активный ко времени предварительного заряда (tRAS) | |||||||
31 | 0x1f | 512 мебибайт | 256 мебибайт | 128 мебибайт | 16 гибибайт | 8 гибибайт | 4 гибибайта | 2 гибибайта | 1 гибибайт | Размер каждого разряда (битовый массив). |
32 | 0x20 | Десятые части наносекунд (0.0–1.2) | Сотые части наносекунд (0.00–0.09) | Адресуйте/управляйте время установки от часов | ||||||
33 | 0x21 | Десятые части наносекунд (0.0–1.2) | Сотые части наносекунд (0.00–0.09) | Адресуйте/управляйте время задержки после часов | ||||||
34 | 0x22 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время установки ввода данных от строба | ||||||
35 | 0x23 | Десятые части наносекунд (0.0–0.9) | Сотые части наносекунд (0.00–0.09) | Время задержки ввода данных после строба | ||||||
36 | 0x24 | Наносекунды (1–63) | 0.25 нс (0–0.75) | Минимальное время восстановления записи (tWR) | ||||||
37 | 0x25 | Наносекунды (1–63) | 0.25 нс (0–0.75) | Внутренняя запись, чтобы считать задержку команды (tWTR) | ||||||
38 | 0x26 | Наносекунды (1–63) | 0.25 нс (0–0.75) | Внутреннее чтение, чтобы предварительно заряжать задержку команды (tRTP) | ||||||
39 | 0x27 | Зарезервированный, нуль | Зарезервированный для "анализа памяти зондируют характеристики" | |||||||
40 | 0x28 | — | tRC
дробный нс (0–5): 0, 0.25, 0.33, 0.5, 0.66, 0.75 |
tRFC
дробный нс (0–5): 0, 0.25, 0.33, 0.5, 0.66, 0.75 |
tRFC + 256 нс | Расширение байтов 41 и 42. | ||||
41 | 0x29 | Наносекунды (1–255) | Минимум, активный к активному времени / времени обновления (tRC) | |||||||
42 | 0x2a | Наносекунды (1–255) | Минимальное обновление к активному времени / времени обновления (tRFC) | |||||||
43 | 0x2b | Наносекунды (0–15) | Десятые части наносекунд (0.0–0.9) | Максимальное время такта (tCK максимальный) | ||||||
44 | 0x2c | Сотые части наносекунд (0.01–2.55) | Максимальный скос, DQS к любому DQ. (tDQSQ максимальный) | |||||||
45 | 0x2d | Десятые части наносекунд (0.0–1.2) | Сотые части наносекунд (0.00–0.09) | Читайте данные содержат скошенный фактор (tQHS) | ||||||
46 | 0x2e | Микросекунды (1–255) | Время переблокировки PLL | |||||||
47–61 | 0x2f–0x3d | Зарезервированный | Для будущей стандартизации. | |||||||
62 | 0x3e | Главная версия (0-9) | Незначительная версия (0.0–0.9) | Уровень версии SPD, обычно 1.0 | ||||||
63 | 0x3f | Контрольная сумма | Сумма байтов 0–62, не отрицаемый | |||||||
64–71 | 0x40–47 | Производитель ID JEDEC | Сохраненный прямой порядок байтов, запаздывающая нулевая клавиатура. | |||||||
72 | 0x48 | Модуль производственное расположение | Специфичный для поставщика код | |||||||
73–90 | 0x49–0x5a | Число части модуля | ASCII, дополненный пространством (ограниченный (-,), A-Z, a-z, 0-9, пространство) | |||||||
91–92 | 0x5b–0x5c | Код версии модуля | Специфичный для поставщика код | |||||||
93 | 0x5d | Годы с 2000 (0–255) | Производственная дата (YYWW) | |||||||
94 | 0x5e | Недели (1–52) | ||||||||
95–98 | 0x5f–0x62 | Порядковый номер модуля | Специфичный для поставщика код | |||||||
99–127 | 0x63–0x7f | Специфичные для производителя данные | Мог быть улучшенный профиль производительности |
DDR3 SDRAM
Стандарт SDRAM DDR3 значительно перестраивает и упрощает расположение содержания SPD. Вместо многих закодированных BCD полей наносекунды, некоторые "timebase" модули определены к высокой точности, и различные параметры синхронизации закодированы как сеть магазинов той основной единицы. [7] Далее, практика определения различных временных стоимостей в зависимости от задержки CAS была отброшена; теперь есть только единственный набор параметров синхронизации.
Байт | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Примечания | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 0x00 | CRC исключает 117–125 | Общее количество байтов SPD (undef/256) | Байты SPD использовали (undef/128/176/256) | Бит 7 указывает на порядковый номер, исключенный из CRC | |||||
1 | 0x01 | Главная версия SPD | SPD незначительная версия | Обычно 1.0 | ||||||
2 | 0x02 | Основной тип памяти (11 = SDRAM DDR3) | Тип микросхем RAM | |||||||
3 | 0x03 | Зарезервированный, нуль | Тип модуля | Тип модуля, например, 2 = Небуферизованный DIMM, 3 =, ТАКИМ-ОБРАЗОМ-DIMM, | ||||||
4 | 0x04 | — | Адрес банка bits−3 | log2 (биты на микросхему) −28 | Нуль означает 8 банков, 256 Mibit. | |||||
5 | 0x05 | — | Адрес строки bits−12 | Адрес столбца bits−9 | ||||||
6 | 0x06 | зарезервированный | 1.2x V | 1.35 V | НЕ 1.5 V | Напряжения модулей поддерживаются. 1.5V значение по умолчанию. | ||||
7 | 0x07 | — | log2 (разряды) | log2 (биты/микросхема ввода-вывода) −2 | Организация модуля | |||||
8 | 0x08 | — | Биты ECC (001=8) | log2 (биты данных) −3 | 0x03 для 64-разрядного, не-ECC DIMM. | |||||
9 | 0x09 | Дивиденд FTP (1–15) | Делитель FTP (1–15) | Прекрасная Основа Времени = постскриптум дивиденда/делителя. | ||||||
10 | 0x0a | Средний дивиденд основы времени (1–255) | MTB = нс дивиденда/делителя, обычно 1/8 | |||||||
11 | 0x0b | Средний делитель основы времени (1–255) | ||||||||
12 | 0x0c | Минимальное время цикла tCKmin | В сети магазинов MTB | |||||||
13 | 0x0d | зарезервированный | ||||||||
14 | 0x0e | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | Поддерживаемые задержки CAS (побитово отображают) |
15 | 0x0f | — | 18 | 17 | 16 | 15 | 14 | 13 | 12 | |
16 | 0x10 | Минимальное время задержки CAS tAAmin | например, 80/8 нс. | |||||||
17 | 0x11 | Минимальное время восстановления записи tWRmin | например, 120/8 нс. | |||||||
18 | 0x12 | Минимальные RAS к CAS задерживают время tRCDmin | например, 100/8 нс. | |||||||
19 | 0x13 | Минимальная строка, чтобы расположить активное время задержки в ряд tRRDmin | например, 60/8 нс. | |||||||
20 | 0x14 | Минимальное время предварительного заряда строки tRPmin | например, 100/8 нс. | |||||||
21 | 0x15 | tRCmin, биты 11:8 | tRASmin, биты 11:8 | Верхние 4 бита байтов 23 и 22 | ||||||
22 | 0x16 | Минимум, активный ко времени tRASmin, биты 7:0 | например, 280/8 нс. | |||||||
23 | 0x17 | Минимум, активный к активному / обновлению tRCmin, биты 7:0 | например, 396/8 нс. | |||||||
24 | 0x18 | Минимальное восстановление обновления задерживает tRFCmin, биты 7:0 | например, 1280/8 нс. | |||||||
25 | 0x19 | Минимальное восстановление обновления задерживает tRFCmin, биты 15:8 | ||||||||
26 | 0x1a | Минимальная внутренняя запись, чтобы считать задержку tWTRmin | например, 60/8 нс. | |||||||
27 | 0x1b | Минимальное внутреннее чтение, чтобы предварительно заряжать задержку tRTPmin | например, 60/8 нс. | |||||||
28 | 0x1c | зарезервированный | tFAWmin, биты 11:8 | например, 240/8 нс. | ||||||
29 | 0x1d | Минимальные четыре активируют задержку окна tFAWmin, биты 7:0 | ||||||||
30 | 0x1e | DLL - прочь | — | — | — | — | — | RZQ/7 | RZQ/6 | Дополнительные функции SDRAM поддерживают битовый массив |
31 | 0x1f | PASR | — | — | — | ODTS | ASR | ETR 1× | ETR (95°C) | Тепловой SDRAM и опции обновления |
32 | 0x20 | Существующий | Точность (TBD; в настоящий момент 0 = неопределенный) | DIMM тепловой существующий датчик? | ||||||
33 | 0x21 | Nonstd. | Нестандартный тип устройства | Нестандартный тип устройства SDRAM (например, сложенный умирают), | ||||||
34–59 | 0x22–0x3b | Зарезервированный | Для будущей стандартизации. | |||||||
60 | 0x3c | — | Высота модуля, перекройте (MMS) −15 | Высота номинала модуля (31 = Высота> 45 MMS) | ||||||
61 | 0x3d | Обратная толщина | Передняя толщина | Толщина модуля, value=ceil (MMS) −1 | ||||||
62 | 0x3e | Проект | Версия | JEDEC разрабатывают число | Ссылочная модель JEDEC, используемая (11111=none) | |||||
63–116 | 0x3f–0x74 | Специфичный для модуля раздел | Отличается между, регистрировался/небуферизовал | |||||||
117 | 0x75 | ID производителя модуля, lsbyte | Присвоенный JEP-106 | |||||||
118 | 0x76 | ID производителя модуля, msbyte | ||||||||
119 | 0x77 | Модуль производственное расположение | Специфичный для поставщика код | |||||||
120 | 0x78 | Десятилетия | Годы | Производственный год (BCD) | ||||||
121 | 0x79 | Десятки недель | недели | Производственная неделя (BCD) | ||||||
122–125 | 0x7a–0x7d | Порядковый номер модуля | Специфичный для поставщика код | |||||||
126–127 | 0x7e–0x7f | CRC SPD 16 | Включает байты 0–116 или 0–125; см. байт 0 битов 7 | |||||||
128–145 | 0x80–0x91 | Число части модуля | Подмножество ASCII, дополненное пространством | |||||||
146–147 | 0x92–0x93 | Код версии модуля | Определенный поставщиком | |||||||
148–149 | 0x94–0x95 | ID производителя DRAM | В отличие от производителя модуля | |||||||
150–175 | 0x96–0xAF | Специфичные для производителя данные |
Емкость памяти модуля может быть вычислена из байтов 4, 7 и 8. Ширина модуля (байт 8) разделенный на число битов на микросхему (байт 7) дает число микросхем на разряд. Это может тогда быть умножено на емкость на микросхему (байт 4) и число разрядов микросхем на модуле (обычно 1 или 2 от байта 7).
Расширения
Стандарт JEDEC только определяет некоторые из байтов SPD. Действительно критические данные вписываются в первые 64 байта, [5][6][8][9][10], в то время как часть остатка предназначена для идентификации производителя. Однако, 256-байтовый EEPROM обычно обеспечен. Много использования были сделаны из остающегося пространства.
Улучшенная Производительность Профилирует (EPP)
Память обычно идет с консервативными рекомендациями синхронизации в ROM SPD, чтобы гарантировать основную функциональность на всех системах. Энтузиасты часто проводят большое количество времени, вручную корректирующее синхронизации памяти для более высокой скорости.
Улучшенные Профили Производительности - расширение SPD, разработанного NVIDIA и Corsair, который включает дополнительную информацию для работы более высокой производительности SDRAM DDR2, включая напряжения питания и информацию синхронизации команды, не включенную в JEDEC SPD спецификация. Информация EPP хранится в том же самом EEPROM, но в байтах 99-127, которые неиспользованы по стандарту DDR2 SPD. [11]
Байты | Размер | Полные профили | Сокращенные профили |
---|---|---|---|
99–103 | 5 | Заголовок EPP | |
104–109 | 6 | Профиль FP1 | Профиль AP1 |
110–115 | 6 | Профиль AP2 | |
116–121 | 6 | Профиль FP2 | Профиль AP3 |
122–127 | 6 | Профиль AP4 |
Параметры особенно разработаны, чтобы соответствовать контроллеру памяти на nForce 5, nForce 6 и чипсетах nForce 7. NVIDIA поощряет поддержку EPP в BIOS для его высокопроизводительных чипсетов системной платы. Это предназначено, чтобы обеспечить "один щелчок, разгоняющийся", чтобы получить лучшую производительность с минимальным усилием.
Имя Nvidia для памяти EPP, которая была пригодна для производительности и устойчивости, является "готовой к SLI памятью". [12] термин "готовая память SLI" вызвал некоторый беспорядок, поскольку это не имеет никакого отношения к видео SLI. Можно использовать память EPP/SLI с единственной видеокартой (даже карта неNvidia), и можно выполнить установку видео SLI мультикарты без памяти EPP/SLI.
Расширенная версия, EPP 2.0, поддерживает память DDR3 также. [13]
Экстремальный Профиль Памяти (XMP)
Подобный, разработанный Intel JEDEC SPD расширение для SDRAM DDR3 DIMMs. Это использует байты 176–255, которые освобождены JEDEC, чтобы закодировать синхронизации памяти более высокой производительности. [14]
Байты | Размер | Использовать |
---|---|---|
176–184 | 10 | Заголовок XMP |
185–219 | 33 | Профиль XMP 1 (настройки "энтузиаста") |
220–254 | 36 | Профиль XMP 2 ("экстремальные" настройки) |
Заголовок содержит следующие данные. Что наиболее важно это содержит "носитель timebase" MTB значения, как рациональное число наносекунд (общие ценности - 1/8, 1/12 и 1/16 нс). Много других более поздних значений синхронизации выражены как целое число модулей MTB.
Также включенный в заголовок число DIMMS на канал памяти, который профиль разработан, чтобы поддерживать; включая большее количество DIMMS, возможно, не работает хорошо.
Байт | Биты | Использовать |
---|---|---|
176 | 7:0 | Байт магического числа XMP 1 0x0C |
177 | 7:0 | Байт магического числа XMP 2 0x4A |
178 | 0 | Профилируйте 1, включал (если 0, отключенный) |
1 | Профилируйте 2, включал | |
3:2 | Профилируйте 1 DIMMS на канал (1–4 закодированный как 0–3) | |
5:4 | Профилируйте 2 DIMMS на канал | |
7:6 | Зарезервированный, должен быть нуль | |
179 | 3:0 | Номер вспомогательной версии XMP (x.0 или x.1) |
7:4 | Номер основной версии XMP (0.x или 1.x) | |
180 | 7:0 | Носитель timebase дивиденд для профиля 1 |
181 | 7:0 | Носитель timebase делитель для профиля 1 (MTB = нс дивиденда/делителя) |
182 | 7:0 | Носитель timebase дивиденд для профиля 2 (например, 8) |
183 | 7:0 | Носитель timebase делитель для профиля 2 (например, 1, давая MTB = 1/8 нс) |
184 | 7:0 | Зарезервированный, должен быть нуль |
Байт 1 | Байт 2 | Биты | Использовать |
---|---|---|---|
185 | 220 | 4:0 | Модуль часть напряжения Vdd (x.00–x.95 закодированный как 0–19) |
6:5 | Модуль модули напряжения Vdd (0–2) | ||
7 | Зарезервированный, должен быть нуль | ||
186 | 221 | 7:0 | Минимальный период часов SDRAM tCKmin (модули MTB) |
187 | 222 | 7:0 | Минимальное время задержки CAS tAAmin (модули MTB) |
188 | 223 | 7:0 | Поддерживаемые задержки CAS (битовый массив, 4–11 закодированный как биты 0–7) |
189 | 224 | 6:0 | Поддерживаемые задержки CAS (битовый массив, 12–18 закодированный как биты 0–6) |
7 | Зарезервированный, должен быть нуль | ||
190 | 225 | 7:0 | Минимальные CAS время задержки tCWLmin (модули MTB) |
191 | 226 | 7:0 | Минимальный предварительный заряд строки задерживает время tRPmin (модули MTB) |
192 | 227 | 7:0 | Минимальные RAS к CAS tRCDmin (модули MTB) |
193 | 228 | 7:0 | Минимальное время восстановления записи tWRmin (модули MTB) |
194 | 229 | 3:0 | tRASmin (биты 11:8) |
7:4 | tRCmin (биты 11:8) | ||
195 | 230 | 7:0 | время задержки tRASmin биты 7:0 |
196 | 231 | 7:0 | время задержки обновления tRCmin биты 7:0 |
197 | 232 | 7:0 | tREFI lsbyte |
198 | 233 | 7:0 | tREFI msbyte |
199 | 234 | 7:0 | tRFCmin lsbyte |
200 | 235 | 7:0 | tRFCmin msbyte |
201 | 236 | 7:0 | tRTPmin |
202 | 237 | 7:0 | д tRRDmin |
203 | 238 | 3:0 | tFAWmin верхнее откусывание (биты 11:8) |
7:4 | Зарезервированный, должен быть нуль | ||
204 | 239 | 7:0 | т время задержки окна tFAWmin биты 7:0 |
205 | 240 | 7:0 | Минимальное время чтения команды tWTRmin |
206 | 241 | 2:0 | (0–7 тактов) |
3 | знак корректировки команды (0=pull-in, 1=push-out) | ||
6:4 | срок исолнения команды записи (0–7 тактов) | ||
7 | знак корректировки команды записи (0=pull-in, 1=push-out) | ||
207 | 242 | 2:0 | Компенсационная корректировка (0–7 тактов) |
3 | Компенсационный оборотный знак корректировки (0=pull-in, 1=push-out) | ||
7:4 | Зарезервированный, должен быть нуль | ||
208 | 243 | 7:0 | Системный режим уровня CMD. Значение по умолчанию 0=JTAG,
иначе в специфических модулях MTB × tCK/ns. Например, если MTB - 1/8 нс, то это находится в модулях 1/8 такта. |
209 | 244 | 7:0 | SDRAM, автоматический сам, обновляет производительность. Стандартная версия 1.1 говорит, что документация - TBD. |
210–218 | 245–253 | 7:0 | Зарезервированный, должен быть нуль |
219 | 254 | 7:0 | Зарезервированный, специфичный для поставщика код индивидуальности. |
Специфичная для поставщика память
Очень общее (неправильное) использование - запись информации к определенным областям памяти, чтобы связать специфичные для поставщика модули памяти с определенной системой. Один поставщик, который, как известно, сделал, это - Fujitsu Siemens Computers. Добавление различного модуля памяти к системе обычно приводит к отказу или другим контрмерам (как нажатие F1 на каждой начальной загрузке).
02 0E 00 01-00 00 00 EF-02 03 19 4D-BC 47 C3 46........... M.G.F
53 43 00 04-EF 4F 8D 1F-00 01 70 00-01 03 SC CF C1... O.... p.....
Это - вывод модуля памяти на 512 Мбайт от Micron Technologies, выпущенной под брендом для Fujitsu Siemens Computers, отметьте строку "FSC". Модулям памяти, у которых нет этой информации, запускающейся при смещении 128-ой, откажет BIOS системы.
Чтение и запись информация о SPD
Производители модуля памяти пишут информацию SPD в EEPROM на модуле. BIOS системной платы читают информацию SPD, чтобы сконфигурировать контроллер памяти. Там существуйте несколько программ, которые в состоянии считать и изменить информацию SPD о больше всего, но не все чипсеты системной платы.
-
программа dmidecode, которая может декодировать информацию о памяти (и другие вещи) и работает на Linux, FreeBSD, NetBSD, OpenBSD, BeOS, Cygwin и Солярисе. dmidecode не получает доступ к информации SPD непосредственно; это сообщает о данных BIOS о памяти. [16] Эта информация может быть ограничена или неправильная.
-
На системах Linux программа пространства пользователя декодирует-dimms.pl [17] предоставленный lm_sensors [18], декодирует и печатает информацию о любой памяти с информацией SPD в компьютере. На более свежих дистрибутивах Linux декодирование-dimms доступно как часть i2c-инструментов.
-
OpenBSD включал драйвер (spdmem (4)) начиная с версии 4.3, чтобы предоставить информацию о модулях памяти. Драйвер был портирован от NetBSD, где это доступно начиная с выпуска 5.0.
-
Коребут читает и использует информацию SPD, чтобы инициализировать все контроллеры памяти в компьютере с синхронизацией, размером и другими свойствами.
-
На системах Windows есть программы как HWiNFO32, CPU-Z и Speccy, которые способны к чтению и отображению информации о модуле DRAM от SPD..
Источники.
- Thomas P. Koenig; Nathan John (1997-02-03), "Serial Presence Detection poised for limelight", Electronic News 43 (2153), http://findarticles.com/p/articles/mi_m0EKF/is_n2153_v43/ai_19102210/
- JEDEC Standard 21-C section 4.1.4 "Definition of the TSE2002av Serial Presence Detect (SPD) EEPROM with Temperature Sensor (TS) for Memory Module Applications"
- Application note INN-8668-APN3: SDRAM SPD Data Standards, memorytesters.com
- PC SDRAM Serial Presence Detect (SPD) Specification, 1.2A, December 1997, pp. 28, http://www.softnology.biz/pdf/SPDSDRAM1.2a.pdf
- JEDEC Standard 21-C section 4.1.2.4 "SPDs for DDR SDRAM"
- JEDEC Standard 21-C section 4.1.2.10 Specific SPDs for DDR2 SDRAM
- Understanding DDR3 Serial Presence Detect (SPD) Table
- JESD21-C Annex K: Serial Presence Detect for DDR3 SDRAM Modules, SPD Revision 1.0
- JEDEC Standard 21-C section 4.1.2 "SERIAL PRESENCE DETECT STANDARD, General Standard"
- JEDEC Standard 21-C section 4.1.2.5 "Specific PDs for Synchronous DRAM (SDRAM)"
- DDR2 UDIMM Enhanced Performance Profiles Design Specification
- NVIDIA 2006-05-12
- http://www.nvidia.com/content/epp/epp_specifications.pdf
- http://www.nvidia.com/docs/CP/45121/sli_memory.pdf
- Enhanced Performance Profiles 2.0 (pages 2–3)
- Intel Extreme Memory Profile (Intel XMP) DDR3 Technology
- Intel® Extreme Memory Profile (XMP) Specification, Rev 1.1, October 2007, http://www.softnology.biz/pdf/IntelXMP_Rev1.1.pdf
- http://www.linux.com/archive/articles/40412 dmidecode: What's it good for?
- http://www.lm-sensors.org/browser/i2c-tools/trunk/eeprom/decode-dimms decode-dimms.pl Perl program
- http://www.lm-sensors.org/
- Page on memory upgrades for HP printers
- Making Standard SIMMs Work – Memory Upgrade on the HP LaserJet 6MP/5MP