Начало новой эпохи. Как работает оперативная память стандарта DDR4
Вот и вышли процессоры Intel Haswell-E. Ferra.ru уже успела протестировать топовый 8-ядерник Core i7-5960X, а также материнскую плату ASUS X99-DELUXE. И, пожалуй, главной «фишкой» новой платформы стала поддержка стандарта оперативной памяти DDR4.
Из этой статьи вы узнаете, какими же преимуществами обладают «мозги» нового поколения, и как полученные изменения повлияют на производительность памяти. Однако для начала — небольшой экскурс в историю.
О стандарте SDRAM и модулях памяти
Первые модули SDRAM появились еще в 1993 году. Их выпустила компания Samsung. А уже к 2000 году память SDRAM за счет производственных мощностей корейского гиганта полностью вытеснила с рынка стандарт DRAM.
Аббревиатура SDRAM расшифровывается как Synchronous Dynamic Random Access Memory. Дословно это можно перевести как «синхронная динамическая память с произвольным доступом». Поясним значение каждой характеристики. Динамической память является потому, что в силу малой емкости конденсаторов она постоянно требует обновления. К слову, кроме динамической, также существует и статическая память, которая не требует постоянного обновления данных (SRAM). SRAM, например, лежит в основе кэш-памяти. Помимо динамической, память также является синхронной, в отличие от асинхронной DRAM. Синхронность заключается в том, что память выполняет каждую операцию известное число времени (или тактов). Например, при запросе каких-либо данных контроллер памяти точно знает, сколько времени они будут до него добираться. Свойство синхронности позволяет управлять потоком данных и выстраивать их в очередь. Ну и пару слов о «памяти с произвольным доступом» (RAM). Это означает, что единовременно можно получить доступ к любой ячейке по ее адресу на чтение или запись, причем всегда за одно и то же время вне зависимости от расположения.
Если говорить непосредственно о конструкции памяти, то ее ячейками являются конденсаторы. Если заряд в конденсаторе есть, то процессор расценивает его как логическую единицу. Если заряда нет — как логический ноль. Такие ячейки памяти имеют плоскую структуру, а адрес каждой из них определяется как номер строки и столбца таблицы.
В каждом чипе находится несколько независимых массивов памяти, которые представляют собой таблицы. Их называют банками. В единицу времени можно работать только с одной ячейкой в банке, однако существует возможность работы сразу с несколькими банками. Записываемая информация необязательно должна храниться в одном массиве. Зачастую она разбивается на несколько частей и записывается в разные банки, причем процессор продолжает считать эти данные единым целым. Такой способ записи называется interleaving. В теории, чем больше в памяти таких банков, тем лучше. На практике модули с плотностью до 64 Мбит имеют два банка. С плотностью от 64 Мбит до 1 Гбит — четыре, а с плотностью 1 Гбит и выше — уже восемь.
И несколько слов о строении модуля памяти. Сам по себе модуль памяти представляет собой печатную плату с распаянными на ней чипами. Как правило, в продаже можно встретить устройства, выполненные в форм-факторах DIMM (Dual In-line Memory Module) или SO-DIMM (Small Outline Dual In-line Memory Module). Первый предназначается для использования в полноценных настольных компьютерах, а второй — для установки в ноутбуки. Несмотря на один и тот же форм-фактор, модули памяти разных поколений отличаются количеством контактов. Например, решение SDRAM имеет 144 пина для подключения к материнской плате, DDR — 184, DDR2 — 214 пинов, DDR3 — 240, а DDR4 — уже 288 штук. Конечно, речь в данном случае идет о DIMM-модулях. Устройства, выполненные в форм-факторе SO-DIMM, само собой имеют меньшее число контактов в силу своих меньших размеров. Например, модуль памяти DDR4 SO-DIMM подключается к «материнке» за счет 256 пинов.
Вполне очевидно и то, что объем каждого модуля памяти высчитывается как сумма емкостей каждого распаянного чипа. Чипы памяти, конечно, могут отличаться своей плотностью (или, проще говоря, объемом). К примеру, прошедшей весной компания Samsung наладила серийное производство чипов с плотностью 4 Гбит. Причем в обозримом будущем планируется выпуск памяти с плотностью 8 Гбит. Также модули памяти имеют свою шину. Минимальная ширина шины составляет 64 бит. Это означает, что за такт передается 8 байт информации. При этом нужно отметить, что также существуют 72-битные модули памяти, в которых «лишние» 8 бит отведены для технологии коррекции ошибок ECC (Error Checking & Correction). Кстати, ширина шины модуля памяти также является суммой ширин шин каждого отдельно взятого чипа памяти. То есть, если шина модуля памяти является 64-битной и на планке распаяно восемь чипов, то ширина шины памяти каждого чипа равна 64/8=8 бит.
Чтобы рассчитать теоретическую пропускную способность модуля памяти, можно воспользоваться следующей формулой: A*64/8=ПС, где «А» — это скорость передачи данных, а «ПС» — искомая пропускная способность. В качестве примера можно взять модуль памяти типа DDR3 с частотой 2400 МГц. В таком случае пропускная способность будет равняться 2400*64/8=19200 Мбайт/с. Именно это число имеется в виду в маркировке модуля PC3-19200.
Как же происходит непосредственно чтение информации из памяти? Сначала подается адресный сигнал в соответствующую строку (Row), а уже затем считывается информация из нужного столбца (Column). Информация считывается в так называемый усилитель (Sense Amplifiers) — механизм подзарядки конденсаторов. В большинстве случаев контроллер памяти считывает сразу целый пакет данных (Burst) с каждого бита шины. Соответственно, при записи каждые 64 бита (8 байт) делятся на несколько частей. К слову, существует такое понятие как длина пакета данных (Burst Length). Если эта длина равна 8, то за один раз передается сразу 8*64=512 бит.
Модули и чипы памяти также имеют такую характеристику, как геометрия, или организация (Memory Organization). Геометрия модуля показывает его ширину и глубину. Например, чип с плотностью 512 Мбит и разрядностью (шириной) 4 имеет глубину чипа 512/4=128М. В свою очередь, 128М=32М*4 банка. 32М — это матрица, содержащая 16000 строк и 2000 столбцов. Она может хранить 32 Мбит данных. Что касается самого модуля памяти, то почти всегда его разрядность составляет 64 бита. Глубина же легко высчитывается по следующей формуле: объем модуля умножается на 8 для перевода из байтов в биты, а затем делится на разрядность.
Необходимо сказать несколько слов и о такой характеристике модулей памяти, как тайминги (задержки). В самом начале статьи мы говорили о том, что стандарт SDRAM предусматривает такой момент, что контроллер памяти всегда знает, сколько времени выполняется та или иная операция. Тайминги как раз и указывают время, требующееся на исполнение определенной команды. Это время измеряется в тактах шины памяти. Чем меньше это время, тем лучше. Самыми важными являются следующие задержки:
- TRCD (RAS to CAS Delay) — время, которое необходимо для активации строки банка. Минимальное время между командой активации и командой чтения/записи;
- CL (CAS Latency) — время между подачей команды чтения и началом передачи данных;
- TRAS (Active to Precharge) — время активности строки. Минимальное время между активацией строки и командой закрытия строки;
- TRP (Row Precharge) — время, необходимое для закрытия строки;
- TRC (Row Cycle time, Activate to Activate/Refresh time) — время между активацией строк одного и того же банка;
- TRPD (Active bank A to Active bank B) — время между командами активации для разных банков;
- TWR (Write Recovery time) — время между окончанием записи и подачей команды закрытия строки банка;
- TWTR (Internal Write to Read Command Delay) — время между окончанием записи и командой чтения.
Конечно, это далеко не все существующие в модулях памяти задержки. Можно перечислить еще добрый десяток всевозможных таймингов, но лишь указанные выше параметры существенно влияют на производительность памяти. Кстати, в маркировке модулей памяти и вовсе указываются только четыре задержки. Например, при параметрах 11-13-13-31 тайминг CL равен 11, TRCD и TRP — 13, а TRAS — 31 такту.
Со временем потенциал SDRAM достигла своего потолка, и производители столкнулись с проблемой повышения быстродействия оперативной памяти. Так на свет появился стандарт DDR.1
Пришествие DDR
Разработка стандарта DDR (Double Data Rate) началась еще в 1996 году и закончилась официальной презентацией в июне 2000 года. С приходом DDR уходящую в прошлое память SDRAM стали называть попросту SDR. Чем же стандарт DDR отличается от SDR?
После того как все ресурсы SDR были исчерпаны, у производителей памяти было несколько путей решения проблемы повышения производительности. Можно было бы просто наращивать число чипов памяти, тем самым увеличивая разрядность всего модуля. Однако это отрицательно сказалось бы на стоимости таких решений — уж очень дорого обходилась эта затея. Поэтому в ассоциации производителей JEDEC пошли иным путем. Было решено вдвое увеличить шину внутри чипа, а передачу данных осуществлять также на вдвое повышенной частоте. Кроме этого, в DDR предусматривалась передача информации по обоим фронтам тактового сигнала, то есть два раза за такт. Отсюда и берет свое начало аббревиатура DDR — Double Data Rate.
С приходом стандарта DDR появились такие понятия, как реальная и эффективная частота памяти. К примеру, многие модули памяти DDR работали на скорости 200 МГц. Эта частота называется реальной. Но из-за того, что передача данных осуществлялась по обоим фронтам тактового сигнала, производители в маркетинговых целях умножали эту цифру на 2 и получали якобы эффективную частоту 400 МГц, которую и указывали в маркировке (в данном случае — DDR-400). При этом в спецификациях JEDEC указано, что использовать термин «мегагерц» для характеристики уровня производительности памяти и вовсе некорректно! Вместо него необходимо использовать «миллионы передач в секунду через один выход данных». Однако маркетинг — дело серьезное, указанные в стандарте JEDEC рекомендации мало кому были интересны. Поэтому новый термин так и не прижился.
Также в стандарте DDR впервые появился двухканальный режим работы памяти. Использовать его можно было при наличии четного числа модулей памяти в системе. Его суть заключается в создании виртуальной 128-битной шины за счет чередования модулей. В таком случае происходила выборка сразу 256 бит. На бумаге двухканальный режим может поднять производительность подсистемы памяти в два раза, однако на практике прирост скорости оказывается минимален и далеко не всегда заметен. Он зависит не только от модели оперативной памяти, но и от таймингов, чипсета, контроллера памяти и частоты.
Еще одним нововведением в DDR стало наличие сигнала QDS. Он располагается на печатной плате вместе с линиями данных. QDS был полезен при использовании двух и более модулей памяти. В таком случае данные приходят к контроллеру памяти с небольшой разницей во времени из-за разного расстояния до них. Это создает проблемы при выборе синхросигнала для считывания данных, которые успешно решает как раз QDS.
Как уже говорилось выше, модули памяти DDR выполнялись в форм-факторах DIMM и SO-DIMM. В случае DIMM количество пинов составляло 184 штуки. Для того чтобы модули DDR и SDRAM были физически несовместимы, у решений DDR ключ (разрез в области контактной площадки) располагался в ином месте. Кроме этого, модули памяти DDR работали с напряжением 2,5 В, тогда как устройства SDRAM использовали напряжение 3,3 В. Соответственно, DDR обладала меньшим энергопотреблением и тепловыделением в сравнении с предшественником. Максимальная частота модулей DDR составляла 350 МГц (DDR-700), хотя спецификациями JEDEC предусматривалась лишь частота 200 МГц (DDR-400).
Память DDR2 и DDR3
Первые модули типа DDR2 появились в продаже во втором квартале 2003 года. В сравнении с DDR, оперативная память второго поколения не получила существенных изменений. DDR2 использовала всю ту же архитектуру 2n-prefetch. Если раньше внутренняя шина данных была вдвое больше, чем внешняя, то теперь она стала шире в четыре раза. При этом возросшую производительность чипа стали передавать по внешней шине с удвоенной частотой. Именно частотой, но не удвоенной скоростью передачи. В итоге мы получили, что если у DDR-400 чип работал на реальной частоте 200 МГц, то в случае DDR2-400 он функционировал со скоростью 100 МГц, но с вдвое большей внутренней шиной.
Также DDR2-модули получили большее количество контактов для присоединения к материнской плате, а ключ был перенесен в другое место для физической несовместимости с планками SDRAM и DDR. Вновь было снижено рабочее напряжение. Если модули DDR работали при напряжении 2,5 В, то решения DDR2 функционировали при разности потенциалов 1,8 В.
По большому счету, на этом все отличия DDR2 от DDR заканчиваются. Первое время модули DDR2 в отрицательную сторону отличались высокими задержками, из-за чего проигрывали в производительности планкам DDR с одинаковой частотой. Однако вскоре ситуация вернулась на круги своя: производители снижали задержки и выпускали более быстрые наборы оперативной памяти. Максимальная частота DDR2 достигала отметки эффективных 1300 МГц.
При переходе от стандарта DDR2 к DDR3 использовался тот же самый подход, что и при переходе от DDR к DDR2. Само собой, сохранилась передача данных по обоим концам тактового сигнала, а теоретическая пропускная способность выросла в два раза. Модули DDR3 сохранили архитектуру 2n-prefetch и получили 8-битную предвыборку (у DDR2 она была 4-битной). При этом внутренняя шина стала в восемь раз больше, чем внешняя. Из-за этого в очередной раз при смене поколений памяти увеличились ее тайминги. Номинальное рабочее напряжение для DDR3 было снижено до 1,5 В, что позволило сделать модули более энергоэффективными. Заметим, что, кроме DDR3, существует память типа DDR3L (буква L означает Low), которая работает с пониженным до 1,35 В напряжением. Также стоит отметить, что модули DDR3 оказались ни физически, ни электрически несовместимы с любым из предыдущих поколений памяти.
Конечно, чипы DDR3 получили поддержку некоторых новых технологий: например, автоматическую калибровку сигнала и динамическое терминирование сигналов. Однако в целом все изменения носят преимущественно количественный характер.
DDR4 — очередная эволюция
Наконец, мы добрались до совершенно новой памяти типа DDR4. Ассоциация JEDEC начала разработку стандарта еще в 2005 году, однако лишь весной этого года первые устройства появились в продаже. Как говорится в пресс-релизе JEDEC, при разработке инженеры пытались достичь наибольшей производительности и надежности, увеличив при этом энергоэффективность новых модулей. Что ж, такое мы слышим каждый раз. Давайте посмотрим, какие конкретно изменения получила память DDR4 в сравнении с DDR3.
Как и предшественники, DDR4 переняла архитектуру 2n-prefetch, которую JEDEC в данном случае называет 8n-Prefetch. Любой чип памяти может состоять из двух или четырех отдельных групп банков.
В качестве примера рассмотрим 8-гигабайтный DDR4-чип с шиной данных шириной 4 бита. Такой девайс содержит 4 группы банков по 4 банка в каждой. Внутри каждого банка находятся 131 072 (217) строки емкостью 512 байт каждая. Для сравнения можно привести характеристики аналогичного DDR3-решения. Такой чип содержит 8 независимых банков. В каждом из банков находятся 65 536 (216) строк, а в каждой строке — 2048 байт. Как видите, длина каждой строки чипа DDR4 в четыре раза меньше длины строки DDR3. Это означает, что DDR4 осуществляет «просмотр» банков быстрее, нежели DDR3. При этом переключение между самими банками также происходит гораздо быстрее. Тут же отметим, что для каждой группы банков предусмотрен независимый выбор операций (активация, чтение, запись или регенерация), что позволяет повысить эффективность и пропускную способность памяти.
Важным изменением в стандарте DDR4 стало использование интерфейса с топологией «точка-точка» вместо шины Multi-Drop, применяемой в DDR3. Зачем это нужно? Конструкция шины Multi-Drop предусматривает использование всего лишь двух каналов для связи модулей с контроллером памяти. При использовании сразу четырех портов DIMM каждые два модуля соединяются с контроллером посредством лишь одного канала, что само собой негативно сказывается на производительности подсистемы памяти.
В дизайне шины с топологией «точка-точка» для каждого DIMM-разъема предусмотрен отдельный канал, то есть каждый модуль памяти будет напрямую связываться с контроллером и не делить ни с кем этот самый канал. Подобное изменение мы уже могли видеть при переходе от шины PCI к PCI Express. Конечно, у такого подхода есть и свои недостатки. Например, двухканальные системы будут ограничены двумя разъемами DIMM, четырехканальные — четырьмя. Однако, учитывая большие объемы модулей DDR4, это не должно никак ограничивать пользователей. Об этом далее.
Модуль памяти DDR4 в форм-факторе DIMM имеет 288 контактов. Количество пинов было увеличено для возможности адресации как можно большего объема памяти. Максимальная емкость модуля памяти составляет 128 Гбайт — и это при использовании кристаллов объемом 8 Гбайт и технологии QPD (Quad Die Package — упаковка четырех чипов в один корпус). Вполне возможно и применение более емких 16-гигабайтных кристаллов и более плотной упаковки (до 8 кристаллов в один корпус). В таком случае емкость модуля памяти может составить до 512 Гбайт.
Кстати, увеличится не только объем модулей памяти, но и частота чипов. В рамках стандарта DDR4 реальная частота достигнет отметки 2133 МГц.
Для снижения энергопотребления и тепловыделения стандарт DDR4 предусматривает очередное снижение рабочего напряжения. На этот раз до 1,2 В. Кроме этого, внутри чипа напряжение наоборот было увеличено, что позволило обеспечить более быстрый доступ и при этом снизить токи утечки. В теории энергопотребление DDR4 будет на 30% ниже, чем у DDR3. Этот запас производители, скорее всего, будут тратить на увеличение частоты памяти.
Остальные изменения касаются надежности устройств. Например, чипы DDR4 умеют самостоятельно выявлять и исправлять ошибки, связанные с контролем четности адресов и команд. Также новый стандарт предусматривает поддержку режима тестирования соединений, благодаря которому системный контроллер может обнаружить ошибки без применения инициализирующих последовательностей DRAM. Кроме этого, был доработан регистр памяти. Теперь его можно сконфигурировать так, чтобы блокировать команды, содержащие ошибки контроля четности. Регистр памяти DDR3 не обладал такой функцией, и команды с ошибками контроля четности иногда доходили до чипов памяти, вызывая сбои в работе. Вдобавок к перечисленным возможностям стандарт DDR4 предусматривает еще несколько опциональных функций, направленных на улучшение надежности подсистемы памяти. Одной из них является проверка контрольных сумм перед записью в память.
Пока что память DDR4 лишь начинает распространяться, но, по некоторым прогнозам, уже к концу 2015 года DDR4 должна перехватить значительную часть рынка у DDR3.
Заключение
Вот мы и рассмотрели все новшества, которые принесет новый стандарт памяти DDR4. На бумаге все выглядит более чем привлекательно. Так, помимо стандартных улучшений (более низкое напряжение и высокие частоты), DDR4 получил поддержку новой шины и, что особенно важно для серверного сегмента, нескольких технологий для повышения надежности. Впрочем, для затравки, отметим, что совсем скоро («совсем» — означает «совсем-совсем-совсем» — прим. руководителя тестлаба) на нашем сайте выйдет подробный обзор первых DDR4-наборов.