Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , последовательное обнаружение присутствия ( СПД ) представляет собой стандартизированный способ для автоматического доступа информации о модуле памяти . Ранее 72-контактные модули SIMM включали пять контактов, которые обеспечивали пять бит данных параллельного обнаружения присутствия (PPD), но стандарт 168-контактных модулей DIMM был изменен на последовательное обнаружение присутствия, чтобы кодировать гораздо больше информации. [1]

Когда обычный современный компьютер включен, он начинает, делая при включении питания самотестирования (POST). Примерно с середины 1990-х годов этот процесс включает в себя автоматическую настройку оборудования, имеющегося в настоящее время. SPD - это аппаратная функция памяти, которая позволяет компьютеру узнать, какая память присутствует и какие тайминги памяти использовать для доступа к памяти.

Некоторые компьютеры полностью автоматически адаптируются к изменениям оборудования. В большинстве случаев существует специальная необязательная процедура для доступа к параметрам BIOS , чтобы просмотреть и, возможно, внести изменения в настройки. Возможно, появится возможность управлять тем, как компьютер использует данные SPD памяти - выбирать настройки, выборочно изменять тайминги памяти или, возможно, полностью отменять данные SPD (см. Разгон ).

Сохраненная информация [ править ]

Чтобы модуль памяти поддерживал SPD, стандарты JEDEC требуют, чтобы определенные параметры находились в младших 128 байтах EEPROM, расположенного на модуле памяти. Эти байты содержат параметры синхронизации, производителя, серийный номер и другую полезную информацию о модуле. Устройства, использующие память, автоматически определяют ключевые параметры модуля, считывая эту информацию. Например, данные SPD в модуле SDRAM могут предоставлять информацию о задержке CAS, чтобы система могла правильно ее установить без вмешательства пользователя.

Доступ к SPD EEPROM осуществляется с помощью SMBus , варианта протокола I²C . Это сокращает количество коммуникационных контактов на модуле до двух: тактовый сигнал и сигнал данных. EEPROM имеет общие контакты заземления с RAM, имеет свой собственный вывод питания и три дополнительных контакта (SA0–2) для идентификации слота, которые используются для присвоения EEPROM уникального адреса в диапазоне 0x50–0x57. Линии связи могут использоваться не только 8 модулями памяти, одна и та же шина SMBus обычно используется на материнских платах для задач мониторинга состояния системы, таких как считывание напряжения источника питания, температуры процессора и скорости вращения вентилятора.

EEPROM SPD также отвечают на адреса I²C 0x30–0x37, если они не защищены от записи, а расширение (серия TSE) использует адреса 0x18–0x1F для доступа к дополнительному встроенному датчику температуры. Все эти значения представляют собой семибитные адреса I²C, образованные префиксом кода идентификатора типа устройства (DTIC) с SA0-2: один использует для чтения (1100) из слота 3 110 0011 = 0x33. С последним битом чтения / записи он формирует 8-битный код выбора устройства. [2] Обратите внимание, что семантика идентификатора слота отличается для операций защиты от записи: для них они могут вообще не передаваться контактами SA. [3]

До SPD микросхемы памяти обнаруживались с помощью параллельного обнаружения присутствия (PPD). PPD использовал отдельный вывод для каждого бита информации, что означало, что можно было сохранить только скорость и плотность модуля памяти из-за ограниченного пространства для выводов.

SDR SDRAM [ править ]

Устройство памяти на модуле SDRAM , содержащее данные SPD (обведено красным)

Первая спецификация SPD была выпущена JEDEC и ужесточена Intel как часть спецификации памяти PC100 . [4] Большинство значений указаны в десятичной двоичной форме. Самый старший полубайт может содержать значения от 10 до 15, а в некоторых случаях может быть выше. В таких случаях вместо этого используются кодировки для 1, 2 и 3 для кодирования 16, 17 и 18. Старший полубайт 0 зарезервирован для представления «неопределенного».

ПЗУ SPD определяет до трех таймингов DRAM для трех задержек CAS, заданных битами в байте 18. Сначала идет самая высокая задержка CAS (самая быстрая тактовая частота), затем две более низкие задержки CAS с постепенно снижающимися тактовыми частотами.

DDR SDRAM [ править ]

Формат DDR DIMM SPD является расширением формата SDR SDRAM. В основном диапазоны параметров масштабируются для соответствия более высоким скоростям.

DDR2 SDRAM [ править ]

В стандарт DDR2 SPD внесен ряд изменений, но он примерно аналогичен приведенному выше. Одно примечательное исключение - сбивающая с толку и мало используемая поддержка модулей DIMM с двумя уровнями разного размера.

Для полей времени цикла (байты 9, 23, 25 и 49), которые закодированы в BCD , некоторые дополнительные кодировки определены для десятых разряда, чтобы точно представить некоторые общие моменты времени:

DDR3 SDRAM [ править ]

Стандарт DDR3 SDRAM значительно пересматривает и упрощает структуру содержимого SPD. Вместо ряда наносекундных полей в кодировке BCD некоторые единицы «временной развертки» задаются с высокой точностью, а различные параметры синхронизации кодируются как кратные этой базовой единице. [8] Кроме того, отказались от практики указания различных значений времени в зависимости от задержки CAS; теперь есть только один набор временных параметров.

Версия 1.1 позволяет выражать некоторые параметры как значение «средней временной развертки» плюс (со знаком, –128 +127) поправку «точной временной развертки». Обычно средняя развертка составляет 1/8 нс (125 пс), а точная временная развертка составляет 1, 2,5 или 5 пс. Для совместимости с более ранними версиями, в которых отсутствует коррекция, среднее значение временной базы обычно округляется в большую сторону, а значение коррекции отрицательное. Таким образом работают следующие ценности:

Емкость памяти модуля может быть вычислена из байтов 4, 7 и 8. Ширина модуля (байт 8), деленная на количество бит на чип (байт 7), дает количество чипов на ранг. Затем это можно умножить на емкость каждого кристалла (байт 4) и количество рангов микросхем в модуле (обычно 1 или 2, начиная с байта 7).

DDR4 SDRAM [ править ]

Стандарт DDR4 SDRAM "Annex L" для SPD изменяет используемый модуль EEPROM. Вместо старых 256-байтовых EEPROM, совместимых с AT24C02, JEDEC теперь определяет новый нестандартный тип EE1004 с двумя страницами на уровне SMBus, каждая из которых имеет 256 байтов. В новой памяти по-прежнему используются старые адреса 0x50–0x57, но два дополнительных адреса 0x36 (SPA0) и 0x37 (SPA1) теперь используются для приема команд для выбора текущей активной страницы для шины, что является формой переключения банка . [11] Внутри каждая логическая страница делится на два физических блока по 128 байтов каждый, всего четыре блока по 512 байтов. [12] Другая семантика для "специальных" диапазонов адресов остается прежней,хотя защита от записи теперь адресуется блоками, и теперь требуется высокое напряжение на SA0 для изменения ее статуса.[13]

Приложение L определяет несколько различных макетов, которые могут быть вставлены в 512-байтовый (из которых определено максимум 320 байтов) шаблон, в зависимости от типа модуля памяти. Определения битов аналогичны DDR3. [12]

Расширения [ править ]

Стандарт JEDEC определяет только некоторые байты SPD. Действительно важные данные помещаются в первые 64 байта, [6] [7] [15] [16] [17], в то время как некоторые из оставшихся предназначены для идентификации производителя. Однако обычно предоставляется 256-байтовая EEPROM. Оставшееся пространство было использовано в ряде случаев.

Расширенные профили производительности (EPP) [ править ]

Память обычно поставляется с консервативными рекомендациями по времени в SPD ROM, чтобы обеспечить базовую функциональность во всех системах. Энтузиасты часто тратят много времени на ручную настройку таймингов памяти для повышения скорости.

Enhanced Performance Profiles - это расширение SPD, разработанное Nvidia и Corsair , которое включает дополнительную информацию для более высокопроизводительной работы DDR2 SDRAM , в том числе информацию о напряжениях питания и времени команд, не включенную в спецификацию JEDEC SPD. Информация EPP хранится в той же EEPROM, но в байтах 99–127, которые не используются стандартным DDR2 SPD. [18]

Параметры специально разработаны для соответствия контроллеру памяти на чипсетах nForce 5 , nForce 6 и nForce 7 . Nvidia поощряет поддержку EPP в BIOS для своих высокопроизводительных наборов микросхем материнских плат. Это предназначено для обеспечения « разгона одним щелчком мыши » для повышения производительности с минимальными усилиями.

Nvidia называет память EPP, которая имеет квалификацию по производительности и стабильности, «память с поддержкой SLI». [19] Термин «память, готовая к SLI» вызвал некоторую путаницу, поскольку он не имеет ничего общего с видео SLI . Можно использовать память EPP / SLI с одной видеокартой (даже с картой, отличной от Nvidia), и можно запустить настройку видео SLI с несколькими картами без памяти EPP / SLI.

Расширенная версия EPP 2.0 также поддерживает память DDR3. [20]

Профиль Extreme Memory (XMP) [ править ]

Аналогичное расширение JEDEC SPD , разработанное корпорацией Intel, было разработано для модулей DIMM DDR3 SDRAM , которое позже также использовалось в DDR4 . XMP использует байты 176–255, которые не выделены JEDEC, для кодирования таймингов памяти с более высокой производительностью. [21]

Позже AMD разработала AMP, технологию, эквивалентную XMP, для использования в линейке модулей памяти Radeon Memory, оптимизированных для использования на платформах AMD. [22] [23] Кроме того, разработчики материнских плат внедрили свои собственные технологии, позволяющие их материнским платам на базе AMD читать профили XMP: MSI предлагает A-XMP, [24] ASUS имеет DOCP (профиль Direct Over Clock), а Gigabyte имеет EOCP ( Расширенный профиль часов). [25]

Заголовок содержит следующие данные. Что наиболее важно, он содержит значение MTB для «средней временной развертки» как рациональное количество наносекунд (общие значения - 1/8, 1/12 и 1/16 нс). Многие другие более поздние значения синхронизации выражаются целым числом единиц MTB.

В заголовок также включено количество модулей DIMM на канал памяти, для поддержки которых предназначен профиль; включение большего количества модулей DIMM может не работать.

Все данные выше относятся к DDR3 (XMP 1.1); Спецификации DDR4 пока недоступны.

Память производителя [ править ]

Распространенное неправильное использование - запись информации в определенные области памяти для привязки модулей памяти конкретного производителя к конкретной системе. Fujitsu Technology Solutions, как известно, делает это. Добавление другого модуля памяти в систему обычно приводит к отказу или другим ответным мерам (например, нажатие F1 при каждой загрузке).

02 0E 00 01-00 00 00 EF-02 03 19 4D-BC 47 C3 46 ........... MGF53 43 00 04-EF 4F 8D 1F-00 01 70 00-01 03 C1 CF SC ... O .... p .....

Это результат модуля памяти на 512 МБ от Micron Technologies, выпускаемого Fujitsu-Siemens Computers, обратите внимание на строку «FSC». Системная BIOS отклоняет модули памяти, в которых нет этой информации, начиная со смещения 128h.

Некоторые ноутбуки Packard Bell AMD также используют этот метод, в этом случае симптомы могут отличаться, но это может привести к миганию курсора, а не к звуковому сигналу. Кстати, это тоже может быть признаком повреждения BIOS. [27] Хотя обновление 2 ГБ до 4 ГБ также может вызвать проблемы.

Чтение и запись информации SPD [ править ]

Производители модулей памяти записывают информацию SPD в EEPROM модуля. BIOS материнской платы считывает информацию SPD для настройки контроллера памяти. Существует несколько программ, которые могут считывать и изменять информацию SPD на большинстве, но не на всех наборах микросхем материнских плат.

  • Программа dmidecode, которая может декодировать информацию о памяти (и других вещах) и работает в Linux , FreeBSD , NetBSD , OpenBSD , BeOS , Cygwin и Solaris . dmidecode не имеет прямого доступа к информации SPD; он сообщает данные SMBIOS о памяти. [28] Эта информация может быть ограниченной или неверной.
  • На Linux систем и FreeBSD , то пространство пользователя программа расшифровывает-DIMM , предоставляемый i2c-инструменты декодируют и информация печатает на любой памяти с информацией SPD на компьютере. [29] [30] Это требует поддержки контроллера SMBus в ядре, драйвера ядра EEPROM, а также подключения SPD EEPROM к SMBus. В старых дистрибутивах Linux decode-dimms.pl был доступен как часть lm_sensors .
  • OpenBSD включает драйвер ( spdmem (4) ) начиная с версии 4.3 для предоставления информации о модулях памяти. Драйвер был перенесен из NetBSD, где он доступен с версии 5.0.
  • Coreboot считывает и использует информацию SPD для инициализации всех контроллеров памяти на компьютере с указанием времени, размера и других свойств.
  • В системах Windows используются такие программы, как HWiNFO , [31] CPU-Z и Speccy , которые могут считывать и отображать информацию о модулях DRAM из SPD.

Независимое от чипсета чтение и запись информации SPD осуществляется путем прямого доступа к EEPROM памяти с помощью аппаратного и программного обеспечения программатора eeprom.

Не так распространено использование старых ноутбуков в качестве универсальных считывателей SMBus, поскольку внутренняя EEPROM на модуле может быть отключена после того, как BIOS ее прочитает, поэтому шина по существу доступна для использования. Используемый метод состоит в том, чтобы установить низкий уровень на линиях A0, A1, чтобы внутренняя память отключилась, позволяя внешнему устройству получить доступ к SMBus. Как только это будет сделано, пользовательская сборка Linux или приложение DOS сможет получить доступ к внешнему устройству. Обычно используется восстановление данных с микросхем памяти ЖК-панелей для модернизации стандартной панели в проприетарном портативном компьютере. На некоторых микросхемах также рекомендуется разделить линии защиты от записи, чтобы встроенные микросхемы не стирались во время перепрограммирования.Связанный с этим метод заключается в перезаписи чипа на веб-камерах, которые часто входят в комплект многих ноутбуков, поскольку скорость шины значительно выше и может даже быть изменена так, чтобы 25x совместимые чипы могли быть считаны обратно для последующего клонирования uEFI в случае отказа чипа.

К сожалению, это работает только с DDR3 и ниже, поскольку DDR4 использует другую безопасность и обычно может быть только прочитан. Можно использовать такой инструмент, как SPDTool или аналогичный, и заменить чип на тот, у которого линия WP свободна, чтобы его можно было изменить на месте. На некоторых наборах микросхем появляется сообщение "Несовместимый драйвер SMBus?" можно увидеть, поэтому чтение также запрещено.

Управление светодиодами RGB [ править ]

Некоторые модули памяти (особенно на игровых ПК ) [32] поддерживают светодиоды RGB, которые управляются проприетарными командами SMBus. Это позволяет управлять цветом светодиода без дополнительных разъемов и кабелей. Драйверы ядра от нескольких производителей, необходимые для управления освещением, использовались для получения доступа, начиная от полного доступа к памяти ядра, заканчивая MSR и управлением портами ввода-вывода, много раз только в 2020 году. [33] [34] [35]

На старом оборудовании [ править ]

Некоторое старое оборудование требует использования модулей SIMM с параллельным обнаружением присутствия (чаще называется просто обнаружением присутствия или PD). Некоторое из этого оборудования использует нестандартное кодирование PD, в частности компьютеры IBM и Hewlett-Packard LaserJet и другие принтеры.

См. Также [ править ]

  • Электронный паспорт преобразователя

Ссылки [ править ]

  1. ^ Томас П. Кениг; Натан Джон (3 февраля 1997 г.), «Обнаружение последовательного присутствия в центре внимания» , Electronic News , 43 (2153)
  2. ^ Стандарт JEDEC 21-C, раздел 4.1.4 "Определение EEPROM последовательного обнаружения присутствия (SPD) TSE2002av с датчиком температуры (TS) для приложений модулей памяти"
  3. ^ "TN-04-42: Защита от записи последовательного присутствия модуля памяти с обнаружением" (PDF) . Микрон .
  4. ^ Примечание по применению INN-8668-APN3: SDRAM SPD Data Standards , memorytesters.com
  5. ^ Спецификация PC SDRAM Serial Presence Detect (SPD) (PDF) , 1.2A, декабрь 1997 г., стр. 28 год
  6. ^ a b Стандарт JEDEC 21-C, раздел 4.1.2.4 «SPD для DDR SDRAM»
  7. ^ a b Стандарт JEDEC 21-C, раздел 4.1.2.10 «Конкретные SPD для DDR2 SDRAM»
  8. ^ «Понимание таблицы обнаружения последовательного присутствия DDR3 (SPD)» .
  9. ^ JESD21-C Приложение K: Обнаружение последовательного присутствия для модулей DDR3 SDRAM , выпуск 4, версия SPD 1.1
  10. ^ JESD21-C Приложение K: Обнаружение последовательного присутствия для модулей DDR3 SDRAM , выпуск 6, версия SPD 1.3
  11. ^ Дельвар, Жан. «[PATCH] eeprom: новый драйвер ee1004 для памяти DDR4» . LKML . Дата обращения 7 ноября 2019 . CS1 maint: discouraged parameter (link)
  12. ^ а б JEDEC. «Приложение L: Обнаружение последовательного присутствия (SPD) для модулей DDR4 SDRAM» (PDF) .
  13. ^ JEDEC. «Спецификация устройств EE1004 и TSE2004 (проект)» (PDF) . Дата обращения 7 ноября 2019 . CS1 maint: discouraged parameter (link)
  14. ^ JESD21-C Приложение L: Обнаружение последовательного присутствия для модулей DDR4 SDRAM , выпуск 5
  15. ^ Стандарт JEDEC 21-C, раздел 4.1.2.11 «Обнаружение последовательного присутствия (SPD) для модулей DDR3 SDRAM»
  16. ^ Стандарт JEDEC 21-C, раздел 4.1.2 «СТАНДАРТ ОБНАРУЖЕНИЯ ПОСЛЕДОВАТЕЛЬНОГО ПРИСУТСТВИЯ, Общий стандарт»
  17. ^ Стандарт JEDEC 21-C, раздел 4.1.2.5 «Конкретные PD для синхронной DRAM (SDRAM)»
  18. ^ DDR2 UDIMM Enhanced Performance Profiles Design Specification (PDF) , Nvidia , 12 мая 2006 г. , получено 5 мая 2009 г. CS1 maint: discouraged parameter (link)
  19. ^ http://www.nvidia.com/docs/CP/45121/sli_memory.pdf
  20. ^ Расширенные профили производительности 2.0 (стр. 2–3)
  21. ^ «Поддержка Intel» . Intel .
  22. ^ Advanced Micro Devices, Inc (2012). «Технология профиля памяти - увеличьте объем оперативной памяти» . Проверено 8 января 2018 . CS1 maint: discouraged parameter (link)
  23. Райан Мартин (23 июля 2012 г.). «AMD представляет свой XMP-эквивалент AMP - eTeknix» . Проверено 8 января 2018 . CS1 maint: discouraged parameter (link)
  24. ^ Micro-Star Int'l Co., Ltd (21 марта 2017 г.). «MSI - первый в мире бренд, который поддерживает A-XMP на Ryzen для обеспечения максимальной производительности DDR4, выпускает новые модели» . Проверено 8 января 2018 . CS1 maint: discouraged parameter (link)
  25. ^ Tradesman1 (26 августа 2016). «Что означает XMP, DOCP, EOCP - Решено - Память» . Проверено 8 января 2018 . CS1 maint: discouraged parameter (link)
  26. ^ a b c Спецификация Intel Extreme Memory Profile (XMP), версия 1.1 (PDF) , октябрь 2007 г., заархивирована из оригинала (PDF) 6 марта 2012 г. , извлечена 25 мая 2010 г. CS1 maint: discouraged parameter (link)
  27. ^ "Обновление RAM Packard Bell LJ65" . Форум оборудования Тома .
  28. ^ "dmidecode: для чего он нужен?" . Linux.com | Источник информации о Linux . 29 ноября 2004 г.
  29. ^ "decode-dimms (1)" . Справочная страница Debian . Проверено 16 декабря 2020 . CS1 maint: discouraged parameter (link)
  30. ^ "декодировать-диммы" . www.freebsd.org . Проверено 24 января 2021 года .
  31. ^ «HWiNFO - Профессиональная системная информация и диагностика» . HWiNFO .
  32. ^ "Память DDR4 серии VENGEANCE RGB PRO | Память для настольных ПК | CORSAIR" . www.corsair.com . Проверено 26 ноября 2020 года .
  33. ^ ActiveCyber. Повышение локальных привилегий драйвера Viper RGB (технический отчет). CVE - 2019-18845 - через корпорацию MITER .
  34. ^ ActiveCyber. Повышение локальных привилегий драйвера CORSAIR iCUE (CVE-2020-8808) (технический отчет). CVE - 2020-8808 - через корпорацию MITER .
  35. ^ ActiveCyber. ACTIVE-2020-003: Повышение локальных привилегий драйвера управления освещением Trident Z (технический отчет). CVE - 2020-12446 - через корпорацию MITER .

Внешние ссылки [ править ]

  • Стандарт последовательного обнаружения присутствия, общий стандарт
  • SPD Rev1.0 для DDR SDRAM
  • SPD Rev1.2 для DDR2 SDRAM
  • SPD Rev1.3 для DDR2 SDRAM
  • СПЕЦИАЛЬНОСТЬ DDR2-1066 SDRAM
  • Пакет Linux i2c-tools
  • Инструкции по использованию lm-сенсоров или i2c-tools для чтения данных
  • Производительность памяти: от 16 ГБ DDR3-1333 до DDR3-2400 на Ivy Bridge IGP с G.Skill  - объяснение различных значений времени