stringtranslate.com

Последовательное обнаружение присутствия

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

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

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

Сохраненная информация

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

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

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

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

SDR-SDRAM-память

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

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

SPD ROM определяет до трех таймингов 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, некоторые единицы «базы времени» указаны с высокой точностью, а различные параметры синхронизации закодированы как кратные этой базовой единицы. [10] Кроме того, практика указания различных значений времени в зависимости от задержки 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) теперь используются для получения команд на выбор текущей активной страницы для шины, форма переключения банков . [13] Внутри каждая логическая страница далее делится на два физических блока по 128 байт каждый, что в сумме составляет четыре блока и 512 байт. [14] Другая семантика для диапазонов "специальных" адресов остается прежней, хотя защита от записи теперь адресуется блоками, и для изменения ее статуса теперь требуется высокое напряжение на SA0. [15]

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

DDR5 SDRAM

Предварительная таблица для DDR5, основанная на спецификации JESD400-5. [17]

DDR5 расширяет таблицу SPD до 1024 байт. SPD DDR5 использует шину I3C .

Расширения

Стандарт JEDEC определяет только некоторые байты SPD. Действительно критические данные помещаются в первые 64 байта, [8] [9] [18] [19] [20] , а часть оставшейся части предназначена для идентификации производителя. Однако обычно предоставляется 256-байтовая EEPROM. Оставшееся пространство используется в различных целях.

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

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

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

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

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

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

Профиль экстремальной памяти Intel (XMP)

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

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

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

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

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

Расширенные профили AMD для разгона (EXPO)

Расширенные профили AMD для разгона (EXPO) — это расширение JEDEC SPD, разработанное для модулей DDR5 DIMM для применения профиля автоматического разгона одним щелчком мыши к системной памяти. [30] [31] Модули DIMM, сертифицированные AMD EXPO, включают оптимизированные тайминги, которые оптимизируют производительность процессоров Zen 4. [32] В отличие от закрытого стандарта XMP от Intel, стандарт EXPO является открытым и бесплатным. [31] Его можно использовать на платформах Intel. [31] На момент запуска в сентябре 2022 года будет доступно 15 комплектов оперативной памяти от партнеров с сертификацией EXPO, достигающих скорости до 6400 МТ/с. [33]

Память, специфичная для поставщика

Распространенным злоупотреблением является запись информации в определенные области памяти для привязки модулей памяти конкретного поставщика к определенной системе. Известно, что компания 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. [34] Хотя обновление 2 ГБ до 4 ГБ также может привести к проблемам.

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

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

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

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

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

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

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

На старом оборудовании

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

Смотрите также

Ссылки

  1. Томас П. Кениг; Натан Джон (3 февраля 1997 г.), «Обнаружение серийного присутствия готово к освещению», Electronic News , 43 (2153)
  2. ^ Стандарт JEDEC 21-C, раздел 4.1.4 «Определение последовательного обнаружения присутствия (SPD) EEPROM TSE2002av с датчиком температуры (TS) для приложений модуля памяти»
  3. ^ "TN-04-42: Защита от записи с обнаружением последовательного присутствия модуля памяти" (PDF) . Micron .
  4. Дин Кент (24 октября 1998 г.). "Руководство по Ram". Tom's Hardware .
  5. ^ Шимпи, Ананд Лал. "PC100 SDRAM: Введение". www.anandtech.com .
  6. ^ Примечание по применению INN-8668-APN3: Стандарты данных SDRAM SPD, memorytesters.com
  7. ^ Спецификация обнаружения последовательного присутствия (SPD) ПК SDRAM (PDF) , 1.2A, декабрь 1997 г., стр. 28
  8. ^ ab Стандарт JEDEC 21-C раздел 4.1.2.4 "SPD для DDR SDRAM"
  9. ^ ab Стандарт JEDEC 21-C, раздел 4.1.2.10 «Специальные SPD для DDR2 SDRAM»
  10. ^ «Понимание таблицы обнаружения последовательного присутствия (SPD) DDR3».
  11. ^ JESD21-C Приложение K: Определение наличия последовательного порта для модулей DDR3 SDRAM, выпуск 4, SPD Revision 1.1
  12. ^ JESD21-C Приложение K: Определение наличия последовательного порта для модулей DDR3 SDRAM, Выпуск 6, SPD Версия 1.3
  13. ^ Дельваре, Жан. "[PATCH] eeprom: Новый драйвер ee1004 для памяти DDR4". LKML . Получено 7 ноября 2019 г.
  14. ^ ab JEDEC. "Приложение L: Serial Presence Detect (SPD) для модулей DDR4 SDRAM" (PDF) .
  15. ^ JEDEC. "Спецификация устройств EE1004 и TSE2004 (черновик)" (PDF) . Получено 7 ноября 2019 г.
  16. ^ JESD21-C Приложение L: Определение наличия последовательного порта для модулей DDR4 SDRAM, выпуск 5
  17. ^ «JESD400-5B (JESD400-5B)» . джедек . 2023 . Проверено 31 декабря 2023 г.
  18. ^ Стандарт JEDEC 21-C, раздел 4.1.2.11 «Обнаружение последовательного присутствия (SPD) для модулей DDR3 SDRAM»
  19. ^ Стандарт JEDEC 21-C, раздел 4.1.2 «СТАНДАРТ ОБНАРУЖЕНИЯ ПРИСУТСТВИЯ ПОСЛЕДОВАТЕЛЬНОГО НОМЕРА, Общий стандарт»
  20. ^ Стандарт JEDEC 21-C, раздел 4.1.2.5 «Специальные PD для синхронной DRAM (SDRAM)»
  21. ^ Спецификация дизайна расширенных профилей производительности DDR2 UDIMM (PDF) , Nvidia , 12 мая 2006 г. , получено 5 мая 2009 г.
  22. ^ http://www.nvidia.com/docs/CP/45121/sli_memory.pdf [ пустой URL-адрес PDF ]
  23. ^ Расширенные профили производительности 2.0 (стр. 2–3)
  24. ^ "Что такое Intel Extreme Memory Profile (Intel XMP)?". Intel . Получено 26 сентября 2022 г. .
  25. ^ "Memory Profile Technology - AMP up your RAM". AMD . 2012 . Получено 8 января 2018 .
  26. ^ Мартин, Райан (23 июля 2012 г.). "AMD представляет свой XMP-эквивалент AMP - eTeknix". eTeknix . Получено 8 января 2018 г. .
  27. ^ "MSI — первый в мире бренд, который включил A-XMP на Ryzen для лучшей производительности DDR4, запускает новые модели". MSI . 21 марта 2017 г. . Получено 8 января 2018 г. .
  28. ^ Tradesman1 (26 августа 2016 г.). "Что означает XMP, DOCP, EOCP - Решено - Память". Форумы оборудования Тома . Получено 8 января 2018 г.{{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
  29. ^ abc "Спецификация Intel Extreme Memory Profile (XMP), версия 1.1" (PDF) . Intel . Октябрь 2007 г. Архивировано из оригинала (PDF) 6 марта 2012 г. Получено 25 мая 2010 г.
  30. ^ "AMD Extended Profiles for Overclocking". AMD . Получено 26 сентября 2022 г. .
  31. ^ abc Roach, Jacob (6 сентября 2022 г.). «Что такое AMD EXPO и должна ли она быть у моей DDR5?». Digital Trends . Получено 26 сентября 2022 г.
  32. ^ Боншор, Гэвин (30 августа 2022 г.). «Технология памяти AMD EXPO: профили разгона одним щелчком для Ryzen 7000». AnandTech . Получено 26 сентября 2022 г. .
  33. ^ "AMD анонсирует технологию EXPO для разгона памяти DDR5". VideoCardz . 30 августа 2022 г. . Получено 26 сентября 2022 г. .
  34. ^ "Обновление ОЗУ Packard Bell LJ65". Форум оборудования Тома . 9 января 2014 г.
  35. ^ "dmidecode: Для чего он нужен?". Linux.com | Источник информации о Linux . 29 ноября 2004 г.
  36. ^ "декодирование-dimms(1)" . Страница руководства Debian . Проверено 16 декабря 2020 г.
  37. ^ "decode-dimms". www.freebsd.org . Получено 24 января 2021 г. .
  38. ^ "HWiNFO - Профессиональная системная информация и диагностика". HWiNFO .
  39. ^ "Память VENGEANCE RGB PRO series DDR4 | Память для настольных ПК | CORSAIR". www.corsair.com . Получено 26 ноября 2020 г. .
  40. ^ ActiveCyber. Повышение локальных привилегий драйвера Viper RGB (технический отчет). CVE - 2019-18845 – через MITRE Corporation.
  41. ^ ActiveCyber. Повышение локальных привилегий драйвера CORSAIR iCUE (CVE-2020-8808) (технический отчет). CVE - 2020-8808 – через MITRE Corporation.
  42. ^ ActiveCyber. ACTIVE-2020-003: локальное повышение привилегий драйвера управления освещением Trident Z (технический отчет). CVE - 2020-12446 – через MITRE Corporation.

Внешние ссылки