Модули DDR5 требуют новой управляющей шины: на смену I2C приходит I3C (SenseWire)

American Mega­trends, разработчик UEFI BIOS и партнер по мик­ро­про­г­рам­мным ре­ше­ни­ям ком­па­нии Re­ne­sas, анон­си­ро­ва­л под­держ­ку ши­ны I3C — но­вин­ки, за­дей­ст­во­ван­ной в ин­тер­фей­се уда­лен­но­го уп­рав­ле­ния Mega­RAC. Ши­на I3C, ре­а­ли­зо­ван­ная на ба­зе конт­рол­ле­ров Re­ne­sas, по­зво­лит кли­ент­ским плат­фор­мам в пол­ной ме­ре ис­поль­зо­вать пре­иму­ще­ст­ва DDR5 для до­сти­же­ния мак­си­маль­ной про­из­во­ди­тель­но­с­ти опе­ра­тив­ной па­мя­ти, при од­но­вре­мен­ном уве­ли­че­нии ее объ­е­мов, сни­же­нии по­треб­ля­е­мой мощ­но­с­ти и, вслед­ст­вие этого, сни­же­нии ост­ро­ты ее от­ка­зов.

Микросхемы Renesas для I3C формируют разветвленную топологию шины System Management Bus (SMBus), од­ной из пер­во­сте­пен­ных за­дач которой является идентификации модулей памяти DDR5. Ранее до­ступ к SPD мо­ду­лей па­мя­ти осу­щест­в­лял­ся по I2C-шине. Теперь же логика от Renesas, поддержанная про­г­рам­мны­ми про­дук­та­ми от AMI, обес­пе­чит ми­гра­цию плат­форм с устаревших решений на новую вы­со­ко­ско­рост­ную I3C-шину.

Шину System Management Bus, ре­а­ли­зо­ван­ную сред­ст­ва­ми по­сле­до­ва­тель­но­го про­то­ко­ла I2C, мож­но от­нес­ти к од­ной из самых кон­сер­ва­тив­ных подсистем PC-платформ. Этот интерфейс используется для пе­ре­да­чи срав­ни­тель­но не­боль­ших объ­е­мов ин­фор­ма­ции (главным образом — при выполнении стартовых про­це­дур UEFI BIOS) и на­хо­дит­ся «на обочине» маршрутов доставки данных, критически важных с точки зре­ния про­из­во­ди­тель­но­с­ти. В на­сто­я­щее время тенденции, на­ме­тив­ши­е­ся с по­яв­ле­ни­ем оперативной па­мя­ти DDR4 и получившие развитие в DDR5, со­зда­ли пред­по­сыл­ки для мо­дер­ни­за­ции SMBus, а конкретнее — пе­ре­хо­да на протокол I3C.

Потенциал I3C несколько избыточен для существующих сценариев применения шины SMBus в PC-плат­фор­мах. Изу­чая до­ку­мен­та­цию на микросхемы Renesas SPD5118, используемые в модулях оперативной памяти DDR5, из мно­го­чис­лен­ных воз­мож­но­стей I3C выделим фун­к­ци­о­наль­ность, нашедшую применение в схе­ме по­сле­до­ва­тель­но­го де­тек­ти­ро­ва­ния DIMM SPD.

К истории вопроса

Стандартизация применения I2C в качестве внутренней управляющей шины PC-платформ состоялась более двух де­ся­ти­ле­тий назад с появлением контроллера SMBus в составе микросхемы Intel 82371AB (PIIX4). Глав­ны­ми обя­зан­но­с­тя­ми это­го ин­тер­фей­са стало чтение (а в случае использования специальных сервисных утилит и запись) SPD-ин­фор­ма­ции мо­ду­лей опе­ра­тив­ной памяти а также коммуникация с микросхемой так­то­во­го генератора с целью ус­та­нов­ки ра­бо­чих час­тот и от­клю­че­ния не­ис­поль­зу­е­мых CLK-линий. Позднее, с ре­а­ли­за­ци­ей генератора в составе системной логики, круг типовых задач сократился до обслуживания SPD. Кро­ме того, некоторые системные платы используют SMBus для подключения датчиков аппаратного мо­ни­то­рин­га.

В контроллере Intel PIIX4 протокол SMBus реализован ап­па­рат­но. Некоторые из альтернативных решений, например, VIA VT82C586B требовали побитного программного управления линиями Serial Clock и Serial Data (SCL, SDA). На мо­ду­лях DIMM появилась микросхема флеш-памяти 24C02 объемом 256 байт, содержащая описание уст­рой­ст­ва.

Заметим, что совсем «древние» виды памяти, такие как FPM, EDO и некоторые реализации первых SDRAM, часто об­хо­ди­лись без последовательной идентификации, поскольку детектирование такой памяти можно осу­щест­вить вы­пол­не­ни­ем операций записи и чтения по специальному алгоритму, иными словами методом проб и ошибок. С ус­лож­не­ни­ем про­це­дур настройки тай­мин­гов и других параметров данный подход перестал быть возможным. С переходом к DDR SDRAM, все модули DIMM снабжаются SPD.

Если микросхемы памяти установлены непосредственно на системной плате, то их тип, количество и метод под­клю­че­ния известны разработчику платформы и могут быть запрограммированы в таблицах, раз­ме­ща­е­мых в со­с­та­ве UEFI BIOS. Данное обстоятельство позволяет производителям платформ сэкономить на SPD не­за­ви­си­мо от типа памяти.

Особенности DDR4, DDR5 и NVDIMM

Если данные SPD главным образом используются при старте платформы и работе специализированных сер­вис­ных ути­лит, то для модулей памяти DDR4, опционально снабжаемых датчиком температуры добавляется за­да­ча мо­ни­то­рин­га в се­ан­се ОС. Кроме того, в отличие от набора констант в постоянной памяти, датчик яв­ля­ет­ся ис­точ­ни­ком асин­хрон­ных событий, таких как достижение граничной температуры (численное зна­че­ние которой про­г­рам­ми­ру­ет­ся), а зна­чит ар­хи­тек­ту­ру уп­рав­ля­ю­щей шины уместно дополнить ре­а­ли­за­ци­ей ме­ха­низ­ма аппаратных прерываний.

Новая спецификация DDR5 диктует необходимость распределенного питания для каждого DIMM-модуля

 

Новая спецификация DDR5 диктует необходимость распределенного питания для каждого DIMM-модуля, — в от­ли­чие от при­выч­ной цен­т­ра­ли­за­ции на материнской плате — что улучшает их тепловые профили, а так­же на­деж­ность и мас­шта­би­ру­е­мость. С точки зрения компоновки платформы это выглядит следующим об­ра­зом: ре­гу­ля­тор на­пря­же­ния пи­та­ния опе­ра­тив­ной памяти, обозначаемый в документации как Power Man­age­ment IC (PMIC), пе­ре­но­сит­ся с сис­тем­ной платы не­по­сред­ст­вен­но на каждый DIMM-модуль.

Повышение требований к эффективности электропитания, стабильности напряжения и точности его ре­гу­ли­ро­ва­ния яв­ля­ет­ся клю­че­вой тенденцией, вызвавшей к жизни децентрализацию регуляторов. Решения, апро­би­ро­ван­ные на сер­вер­ных плат­фор­мах, становится доступными и для клиентских систем, поскольку об­ла­да­ют очевидными и убе­ди­тель­ны­ми пре­и­му­щест­ва­ми. В этом свете задачи мониторинга состояния и уп­рав­ле­ния режимом регулятора по­рож­да­ют до­пол­ни­тель­ный трафик между материнской платой и модулями па­мя­ти.

Подключение SPD Hub на модуле DDR5 — новой функцией является формирование локальной шины SMBus (сигналы LSCL, LSDA), что позволит расширить набор устройств, размещенных на модуле без увеличения нагрузки на хост-шину (сигналы HSCL, HSDA)

Подключение SPD Hub на модуле DDR5 — новой функцией является формирование локальной шины SMBus (сигналы LSCL, LSDA), что позволит расширить набор устройств, размещенных на модуле без увеличения нагрузки на хост-шину (сигналы HSCL, HSDA)

Возможностью подключения дочерних устройств объясняется применение термина «SPD5 Hub» вместо ус­та­рев­ше­го «SPD EPROM». Такими дочерними устройствами может быть микросхема PMIC, дополнительные дат­чи­ки, обес­пе­чи­ва­ю­щие конт­роль температуры в нескольких точках модуля, буферы-разветвители так­то­вых сиг­на­лов (clock drivers) и дру­гие ком­по­нен­ты.

Из внутренних ресурсов, микросхема SPD5118 содержит встроенный датчик температуры, показания ко­то­ро­го счи­ты­ва­ют­ся по SMBus. Объем запоминающего устройства вырос до 1024 байт, организованных в 16 бло­ков по 64 байта с раз­дель­ной про­грам­мной ус­та­нов­кой защиты записи для каждого из блоков.

Специальных методов управления требуют энергонезависимые модули памяти или NVDIMM располагающие обо­и­ми ви­да­ми но­си­те­лей: DRAM и Flash. Для включения комбинированных модулей в адресное про­ст­ран­ст­во плат­фор­мы и уп­рав­ле­ния пе­ре­ме­ще­ни­ем данных между двумя видами носителей требуется передача уп­рав­ля­ю­щих команд с ис­поль­зо­ва­ни­ем на­деж­но­го и до­ста­точ­но про­из­во­ди­тель­но­го ин­тер­фей­са. (Подробнее об энер­го­не­за­ви­си­мой па­мя­ти чи­тай­те на на­шем сайте в материале «Персистентность у ворот»).

Реализация I3C в модулях DDR5

Рассмотрим некоторые аспекты функ­ци­о­наль­но­с­ти I3C, ре­а­ли­зо­ван­ной в микросхемах серии SPD5 Hub.

Сравнение функциональности микросхемы SPD5 Hub в режимах I2C и I3C

Сравнение функциональности микросхемы SPD5 Hub в режимах I2C и I3C

Итак, после подачи питания, SPD5 Hub по умолчанию работает в режиме I2C — такая функциональность за­ло­же­на в не­го для со­вме­сти­мос­ти с устаревшими решениями. Переход в режим I3C осуществляется только по спе­ци­аль­ной уп­рав­ля­ю­щей ко­ман­де, полученной от SMBus хост-контроллера. При этом максимальная час­то­та сигнала SCL воз­рас­та­ет до 12.5 MHz, что в случае передачи одного бита за тактовый импульс (Single Data Rate) со­от­вет­ст­ву­ет ско­рос­ти око­ло 12.5 Mbps. Одной из опций стандарта I3C является удвоение про­из­во­ди­тель­но­с­ти за счет пе­ре­да­чи двух би­тов ин­фор­ма­ции за один тактовый импульс (Double Data Rate), но об этом далее.

Рост частоты от 1.0 MHz в режиме I2C до 12.5 MHz в режиме I3C достигается за счет перехода от pullup-фор­ми­ро­ва­те­лей с от­кры­тым стоком к push-pull схеме. Как известно, при формировании высокого логического уров­ня с помощью pull­up-ре­зис­то­ра время переключения из состояния логического «0» в «1» неизбежно воз­рас­та­ет, так как со­про­тив­ле­ние ре­зис­то­ра и паразитная емкость цепи образуют RC-цепочку. Push-pull схе­ма, нагрузочная спо­соб­ность ко­то­рой не ог­ра­ни­че­на ре­зис­то­ром, не имеет такого недостатка.

Работая в режиме pullup, обеспечивающем совместимость с I2C, чип SPD5 Hub оперирует напряжением вы­со­ко­го ло­ги­че­ско­го уров­ня до 3.3V. Согласно спецификации I3C, в режиме push-pull рабочее напряжение ин­тер­фей­са умень­ша­ет­ся до 1.0 V. Ти­по­вое на­пря­же­ние питания микросхемы, подаваемое на линию VDDSPD, от­де­лен­ную от це­пей пи­та­ния ин­тер­фей­са, со­став­ля­ет 1.8V.

Дальнейшего увеличения про­из­во­ди­тель­но­с­ти вплоть до 33.3 Mbps можно до­стичь, усо­вер­шен­ст­во­вав ре­жим Double Data Rate и изменив ме­тод фор­ми­ро­ва­ния сиг­на­лов SCL и SDA в соответствии с законами троичной логики: пе­ре­клю­че­ние обе­их ли­ний SCL и SDA счи­та­ет­ся ло­ги­че­ским «0», пе­ре­клю­че­ние толь­ко ли­ни­и SCL — логической «1», пе­ре­клю­че­ние только линии SDA — ло­ги­че­ской «2». Похоже, в при­о­ри­те­те раз­ра­бот­чи­ков SPD5 Hub бы­ли простота и со­вмес­ти­мость, по­это­му столь хит­рые оп­ции на данном этапе раз­ви­тия уп­рав­ля­ю­щей ши­ны про­иг­но­ри­ро­ва­ны: пока про­из­во­ди­тель­ность I3C-шины не превышает 12,5 MHz в режиме Single Data Rate.

Механизм передачи запросов на прерывание (in-band interrupts), позволяет информировать хост-контроллер об асин­х­рон­ных со­бы­ти­ях, возникающих в микросхеме SPD5 Hub и других устройствах, подключенных к ее ло­каль­ной ши­не. В ти­по­вом слу­чае речь может идти о выходе кон­т­ро­ли­ру­е­мых величин, в частности тем­пе­ра­тур, за ус­та­нов­лен­ные рам­­ки. Пе­ре­да­ча таких запросов от конечного устройства управляющему кон­т­рол­ле­ру осу­ще­ст­вл­яет­ся спе­ци­аль­ны­ми по­сле­до­ва­тель­но­с­тя­ми сигналов SCL, SDA по двухпроводной ши­не без при­ме­не­ния дополнительных линий, тре­бу­ю­щих вы­де­ле­ния контактов на разъемах. Ответственным за сле­ду­ю­щий этап — передачу запроса на пре­ры­ва­ние цен­т­раль­но­му про­­цес­со­ру — ста­но­вит­ся хост-кон­т­рол­лер SMBus, в ти­по­вом случае входящий в со­став сис­тем­ной ло­ги­ки.

Аппаратные подробности

По сравнению с выше упомянутой микросхемой EPROM 24C02, набор функций микросхемы SPD5 Hub зна­чи­тель­но рас­ши­рил­ся: объем устройства увеличился до 1 КБ и появился контроллер локальной шины SMBus, от­де­ля­ю­щей ин­тер­фей­с­ные це­пи сис­тем­ной пла­ты от внутренней шины DIMM-модуля. Чип SPD5118 от­ли­ча­ет­ся от SPD5108 на­ли­чи­ем тем­пе­ра­тур­ного сен­со­ра, что не исключает подключения внешних дат­чи­ков к локальной ши­не SMBus.

Реализация расширенной функциональности при сохранении количества контактов корпуса микросхемы вы­ну­ди­ла раз­ра­бот­чи­ков применить ряд необычных решений. Контактов восемь, если не считать девятый — GND/Thermal Pad или кон­такт­ную пло­щад­ку под корпусом, выполняющую функцию дополнительной «земли» и тер­мо­ин­тер­фей­са.

Назначение выводов микросхем SPD5 Hub SPD5118, SPD5108

Назначение выводов микросхем SPD5 Hub SPD5118, SPD5108

На линию VDDSPD подается напряжение в +1.8V. Общий провод подключен к VSS, а также к до­пол­ни­тель­но­му цен­т­раль­но­му контакту GND/Thermal Pad. Линия VDDIO, предназначенная для подачи напряжения в +1.0V, обес­пе­чи­ва­ет от­дель­ную цепь питания для I3C интерфейса.

Линии HSCL (Host Serial Clock), HSDA (Host Serial Data) образуют внешний I3C интерфейс модуля памяти и по­сред­ст­вом со­от­вет­ст­ву­ю­щих контактов на DIMM-разъеме подключаются к хост-контроллеру SMBus, рас­по­ло­жен­но­му на сис­тем­ной пла­те. Про­то­кол, используемый для выбора режима функционирования ин­тер­фейс­ных линий (Legacy I2C или I3C) описан выше.

Линии LSCL (Local Serial Clock), LSDA (Local Serial Data) образуют локальную управляющую шину модуля, ис­поль­зу­е­мую для под­клю­че­ния до­пол­ни­тель­ных чипов, таковыми могут быть датчики температуры, кон­т­рол­лер пи­та­ния PMIC, буфер тактовых сигналов и другие устройства. Выбор режима работы локальных линий LSCL, LSDA — Legacy I2C или I3C — осуществляется независимо от режима внешних интерфейсных линий HSCL, HSDA, что дает до­пол­ни­тель­ную сво­бо­ду раз­ра­бот­чи­ку модуля при выборе элементной базы.

Контакт HSA (Host Select Address) используется для назначения одного из восьми вариантов адреса на шине SMBus

Уникальные SMBus-адреса каждого DIMM-модуля формируются резисторами на системной плате

Контакт HSA (Host Select Address) используется для назначения одного из восьми вариантов адреса на шине SMBus, а рав­но сня­тия за­щи­ты записи в технологическом режиме (Offline mode) при подключении модуля па­мя­ти или от­дель­но сто­я­ще­го чипа к программатору. Соединение линии HSA с общим проводом активирует Off­line mode и разблокирует защиту записи.

Уникальные SMBus-адреса каждого DIMM-модуля формируются резисторами на системной плате — к ним под­клю­ча­ют­ся ли­нии HSA, идущие от каждой микросхемы SPD5 Hub. Соответствие сопротивления уп­рав­ля­ю­ще­го ре­зис­то­ра и при­сво­ен­но­го адреса указано в таблице ниже.

Подключение линии HSA и номиналы резистора, используемого для аналогового задания адреса микросхемы SPD5 Hub

Подключение линии HSA и номиналы резистора, используемого для аналогового задания адреса SPD5 Hub

Столь необычный прием позволил сократить количество внешних выводов микросхемы — ведь для задания вось­ми ва­ри­ан­тов ад­ре­са SPD Hub по­тре­бо­ва­лось бы 3 линии (A0, A1, A2), плюс одна линия для защиты за­пи­си (WP). На­пом­ним, имен­но так ре­а­ли­зо­ва­на логика адресации и управления записью в 24C02. В ре­зуль­та­те, одна аналоговая линия HSA заменяет 4 цифровых (A0, A1, A2, WP).

Глядя на резисторную схему адресации пытливый читатель должен задать закономерный вопрос: неужели при пе­ре­хо­де к DDR5 архитектура современных платформ не допускает использование более восьми DIMM-мо­ду­лей? Су­ще­ст­ву­ет множество способов обхода данного ограничения:

  • Серверные платформы могут оснащаться более, чем одним хост-контроллером SMBus.
  • Компонентная база от Renesas позиционируется с акцентом на разветвленные топологии, что по­зво­ля­ет раз­ра­ба­ты­вать схемные решения, в которых один SMBus-контроллер управляет несколькими сегментами ши­ны ли­бо один сег­мент шины управления может быть доступен нескольким SMBus-контроллерам посредством муль­ти­плек­со­ров IMX3102 и рас­ши­ри­те­лей IMX3112.

Другими словами, вариант с аналоговыми цепями выглядит как революционный с точки зрения аппаратной ре­а­ли­за­ции, но как консервативный с точки зрения программной архитектуры, по­зво­ляя остаться в рамках модели фик­си­ро­ван­ной адресации до 8 модулей в группе, аналогично решениям на основе I2C с чипом 24C02. Впрочем, для на­столь­ных ком­пью­те­ров такое количество гнезд для DDR5-памяти ought to be enough for anybody.