В январе 2020 на выставке CES представили память с максимальной скоростью DDR5 от SK Hynix. По слухам, Micron и другие производители тестируют похожие устройства. Пока их нельзя достать по обычным каналам, однако поскольку и материнских плат для них ещё нет, это не проблема. Насколько мы знаем, среди первых плат, которые смогут воспользоваться преимуществами новой технологии, будет Xeon Sapphire Rapids от Intel. Однако возникает вопрос: что это за технология?

Основы SDRAM


В целом для системы, требующей RAM, есть два основных конкурирующих варианта: статическая и динамическая память. Существуют и новые технологии, например, FeRAM и MRAM, однако классический выбор стоит между статической и динамической. Статическая RAM – это куча переключателей, по одному на бит. Настроили и забыли. А потом прочитали. А ещё она может работать очень быстро. Проблема в том, что на такой переключатель уходит обычно не менее четырёх транзисторов, а часто и шесть, поэтому в определённую область их можно запихнуть ограниченное количество. Энергопотребление часто оказывается тоже слишком высоким, хотя современные устройства могут неплохо справляться с этим.

Так что пока статическая память популярна у одноплатных компьютеров и небольших устройств, ПК или сервер не сможет разместить гигабайты статической памяти. Динамическая память использует для хранения каждого бита маленький конденсатор. Для соединения конденсатора с общей шиной всё равно нужен транзистор, но упаковать их можно плотненько. К сожалению, тут есть большая проблема: конденсаторы довольно быстро разряжаются. Нужно разработать некий способ периодического обновления памяти, или же она будет забывать. К примеру, типичный модуль DDR4 нужно обновлять каждые 64 мс.

Реальные устройства используют строки и столбцы конденсаторов для максимизации пространства и возможности обновления целого ряда за раз. Это означает, что устройство из 4096 рядов нужно обновлять каждые 15,6 мс, чтобы каждый ряд сохранял свои данные. Само обновление занимает всего несколько наносекунд.



В типичном массиве есть шина для строк и столбцов. Конденсатор соединяется с FET, который может подключать и отключать его от шины столбца. Вентиль FET соединён с шиной строки. Сигнал строки выбирает всю строку FET. У длинной шины столбцов есть своя ёмкость и сопротивление, поэтому на стабилизацию сигнала уходит какое-то время предзаряда, после чего мультиплексор считывает бит с нужного столбца. Запись проходит в обратном порядке. Если хотите, можете поиграться с симулятором памяти в браузере.

Так работает динамическая память, или DRAM. Что насчёт SDRAM? SDRAM — это динамическая память с синхронным интерфейсом с контроллером памяти. Контроллер позволяет вам собирать несколько команд сразу и обрабатывает всю логику работы со строками и столбцами, и даже умеет автоматически делать обновление памяти. Контроллер буферизует как команды, так и данные, что увеличивает пропускную способность по сравнению с многими другими технологиями.

История


История SDRAM началась в 1992, и к 2000-му году она вытеснила с рынка практически все иные разновидности DRAM. Индустриальная группа JEDEC стандартизировала интерфейс для SDRAM в 1993, поэтому при использовании памяти от разных производителей проблем обычно не бывает.

Обычная SDRAM может принимать одну команду и передавать одно слово данных за один такт. Со временем JEDEC определила стандарт двойной скорости данных, или DDR. Он всё равно принимает одну команду за цикл, однако записывает или считывает два слова за один такт. Он умеет делать это, передавая одно слово на восходящем фронте тактового сигнала, а другое на нисходящем. На практике это означает, что внутри на одну команду он читает два слова, что позволяет внутреннему таймеру работать медленнее, чем I/O. Так что если тактовая частота I/O будет 200 МГц, то внутренний таймер может работать на 100 МГц, и при этом при передаче данных всё равно будет передаваться по два слова на каждый такт I/O.



Всё это так хорошо работало, что в итоге изобрели стандарт DDR2, реорганизующий память так, чтобы внутри она работала с четырьмя словами, а потом отправляла или принимала по четыре слова сразу. Конечно, тактовая частота не менялась, поэтому увеличивалась задержка. DDR3 вновь удвоил внутренний размер данных, соответственно увеличив и задержку.

DDR4 пошёл по другому пути. Он не удвоил внутреннюю шину памяти, а сделал перемежающийся доступ к внутренним банкам памяти для увеличения пропускной способности. Уменьшение напряжения также позволяет увеличивать тактовую частоту. DDR4 появилась в 2012, хотя критическую массу набрала только в 2015.

Есть ощущение роста пропускной способности памяти? Ну практически. Рост пропускной способности примерно совпадал с ростом количества ядер в процессорах. Так что, хотя чистая пропускная способность и росла, пропускная способность в пересчёте на одно ядро на типичной машине уже довольно давно не менялась. На самом деле, с учётом быстрого роста количества ядер на типичном CPU, средняя её величина падает. Поэтому пришло время для нового стандарта.

DDR5


И вот у нас есть DDR5, определённый в 2017. Судя по отчётам, пропускная способность у DDR5-3200 SDRAM будет в 1,36 больше, чем DDR4-3200, а может быть, и ещё больше. Также мы слышим о том что размер предварительной выборки снова удвоится, по крайней мере, опционально.

Тип Пропускная способность Напряжение Предварительная выборка Год
SDR 1.6 ГБ/с 3.3 1 1993
DDR 3.2 ГБ/с 2.5 2 2000
DDR2 8.5 ГБ/с 1.8 4 2003
DDR3 8.5 ГБ/с 1.8 8 2007
DDR4 25.6 ГБ/с 1.2 8 2017
DDR5 32 ГБ/с 1.1 8/16 2019


Как видно из таблицы, за 26 лет пропускная способность по сравнению с оригинальной памятью SDR выросла в 20 раз. Неплохо. Предварительная выборка 16 слов выглядит особенно интересно, поскольку она позволит чипу заполнять типичный кэш ПК за один раз.

Есть и другие преимущества. К примеру, если вы когда-нибудь пробовали связать SDRAM с собственной схемой или FPGA, вам понравится режим контура обратной связи [loopback mode]. Если вы очень любите большие объёмы памяти, то максимальным объёмом памяти теперь будет 64 ГБ.

Кстати, есть ещё спецификация LP-DDR5 для варианта памяти с низким энергопотреблением для таких устройств, как смартфоны. Эту спецификацию выпустили в прошлом году, и пока мы не видим большой гонки производства подобных продуктов. LP-DDR4 позволяла выбрать из двух вариантов частоты, чтобы можно было жертвовать скоростью ради энергопотребления. У LP-DDR5 есть три разных варианта настройки. А есть ещё стандарты GDDR – уже до GDDR6 – для обработки графики и других высокоскоростных приложений. В перспективе, LP-DDR5 сможет работать с пропускной способностью в 6,4 Гб/с на бит I/O, а GGDR6 может похвастаться сотнями ГБ/с в зависимости от ширины слова.

И что теперь?


Если только у вас не загруженный сервер или что-то ещё, полностью загружающее все ядра вашего CPU, вы не почувствуете особой разницы между DDR4 и DDR5. Но, опять-таки, кто же не любит хороших результатов в тестах на скорость?

Кроме того, с точки зрения типичной рабочей станции, главный фокус состоит в том, чтобы иметь достаточно RAM, чтобы не слишком часто обращаться к диску. Особенно если у вас стоит диск с вращающимися пластинами, печально известными малой скоростью работы. Время на запись и чтение RAM оказывается не таким уж и существенным фактором в реальной работе. С твердотельными дисками ситуация уже не такая плохая, как раньше, однако пропускная способность типичного твердотельного диска лишь немногим больше, чем у DDR3, хотя на горизонте уже маячат более быстрые диски. Так что, если только вы не занимаетесь очень интенсивной нагрузкой множества ядер, вам лучше иметь 32 ГБ DDR3, чем 4 ГБ DDR5, поскольку больший объём памяти сэкономит вам время на более медленных операциях.