В вычислительной технике последовательный детектор присутствия ( 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 использовал отдельный штифт для каждого бита информации, что означало, что из-за ограниченного пространства для штифтов можно было сохранить только скорость и плотность модуля памяти.
Первая спецификация 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 DIMM SPD является расширением формата SDR SDRAM. В основном диапазоны параметров масштабируются для обеспечения более высоких скоростей.
Стандарт DDR2 SPD вносит ряд изменений, но в целом похож на вышеизложенное. Одно заметное удаление — запутанная и малоиспользуемая поддержка DIMM с двумя рангами разных размеров.
Для полей времени цикла (байты 9, 23, 25 и 49), которые кодируются в формате BCD , определены некоторые дополнительные кодировки для десятых цифр, чтобы точно представлять некоторые общие временные параметры:
Стандарт 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 "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, основанная на спецификации JESD400-5. [17]
DDR5 расширяет таблицу SPD до 1024 байт. SPD DDR5 использует шину I3C .
Стандарт JEDEC определяет только некоторые байты SPD. Действительно критические данные помещаются в первые 64 байта, [8] [9] [18] [19] [20] , а часть оставшейся части предназначена для идентификации производителя. Однако обычно предоставляется 256-байтовая EEPROM. Оставшееся пространство используется в различных целях.
Память обычно поставляется с консервативными рекомендациями по таймингу в 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 расширение 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) — это расширение 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 в EEPROM на модуле. BIOS материнских плат считывают информацию SPD для настройки контроллера памяти. Существует несколько программ, которые могут считывать и изменять информацию SPD на большинстве, но не на всех чипсетах материнских плат.
Независимое от чипсета чтение и запись информации SPD осуществляется путем прямого доступа к EEPROM памяти с помощью аппаратного и программного обеспечения программатора EEPROM.
Не столь распространенное использование старых ноутбуков — это обычные считыватели SMBus, поскольку внутренняя EEPROM на модуле может быть отключена после того, как BIOS ее прочитает, так что шина по сути будет доступна для использования. Используемый метод заключается в том, чтобы понизить уровень линий A0, A1, чтобы внутренняя память отключилась, позволяя внешнему устройству получить доступ к SMBus. После этого пользовательская сборка Linux или приложение DOS могут получить доступ к внешнему устройству. Распространенное использование — восстановление данных с чипов памяти ЖК-панели для модернизации обычной панели в фирменный ноутбук. На некоторых чипах также хорошей идеей является разделение линий защиты от записи, чтобы встроенные чипы не стирались во время перепрограммирования. Связанная с этим технология — перезапись чипа на веб-камерах, которые часто входят в комплект многих ноутбуков, поскольку скорость шины существенно выше и даже может быть изменена так, чтобы совместимые с 25x чипы можно было считать обратно для последующего клонирования uEFI в случае отказа чипа.
К сожалению, это работает только на DDR3 и ниже, так как DDR4 использует другую безопасность и обычно может быть только прочитана. Можно использовать инструмент типа SPDTool или аналогичный и заменить чип на тот, у которого линия WP свободна, чтобы его можно было изменить на месте. На некоторых чипсетах может появиться сообщение "Несовместимый драйвер SMBus?", поэтому чтение также предотвращается.
Некоторые модули памяти (особенно на игровых ПК ) [39] поддерживают светодиоды RGB, которые управляются фирменными командами SMBus. Это позволяет управлять цветом светодиодов без дополнительных разъемов и кабелей. Драйверы ядра от нескольких производителей, необходимые для управления подсветкой, были использованы для получения доступа, начиная от полного доступа к памяти ядра и заканчивая управлением MSR и портами ввода-вывода, много раз только в 2020 году. [40] [41] [42]
Некоторое старое оборудование требует использования SIMM с параллельным обнаружением присутствия (чаще называемым просто обнаружением присутствия или PD). Часть этого оборудования использует нестандартное кодирование PD, в частности, компьютеры IBM и Hewlett-Packard LaserJet и другие принтеры.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )