Начало новой эпохи. Как работает оперативная память стандарта DDR4. Современные типы памяти DDR, DDR2, DDR3 для настольных компьютеров

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

FPM

FPM (Fast Page Mode) - вид динамической памяти.
Его название соответствует принципу работы, так как модуль позволяет быстрее получать доступ к данным которые находятся на той же странице, что и данные, переданные во время предыдущего цикла.
Эти модули использовались на большинстве компьютеров с процессорами 486 и в ранних системах с процессорами Pentium, ориентировочно в 1995 году.

EDO

Модули EDO (Extended Data Out) появились в 1995 году как новый тип памяти для компьютеров с процессорами Pentium.
Это модифицированный вариант FPM.
В отличие от своих предшественников, EDO начинает выборку следующего блока памяти в то же время, когда отправляет предыдущий блок центральному процессору.

SDRAM

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

Если время обращения к первой порции информации составляло 60 нс, все последующие интервалы удалось сократить до 10 нс.
Начиная с 1996 года большинство чипсетов Intel стали поддерживать этот вид модулей памяти, сделав его очень популярным вплоть до 2001 года.

SDRAM может работать на частоте 133 МГц, что почти в три раза быстрее, чем FPM и в два раза быстрее EDO.
Большинство компьютеров с процессорами Pentium и Celeron, выпущенных в 1999 году использовали именно этот вид памяти.

DDR

DDR (Double Data Rate) стал развитием SDRAM.
Этот вид модулей памяти впервые появился на рынке в 2001 году.
Основное отличие между DDR и SDRAM заключается в том, что вместо удвоения тактовой частоты для ускорения работы, эти модули передают данные дважды за один такт.
Сейчас это основной стандарт памяти, но он уже начинает уступать свои позиции DDR2.

DDR2

DDR2 (Double Data Rate 2) - более новый вариант DDR, который теоретически должен быть в два раза более быстрым.
Впервые память DDR2 появилась в 2003 году, а чипсеты, поддерживающие ее - в середине 2004.

Эта память, также как DDR, передает два набора данных за такт.
Основное отличие DDR2 от DDR - способность работать на значительно большей тактовой частоте, благодаря усовершенствованиям в конструкции.
Но измененная схема работы, позволяющая добиться высоких тактовых частот, в то же время увеличивает задержки при работе с памятью.

DDR3

DDR3 SDRAM (синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных, третье поколение) - это тип оперативной памяти, используемой в вычислительной технике в качестве оперативной и видео-памяти.
Пришла на смену памяти типа DDR2 SDRAM.

У DDR3 уменьшено на 40% потребление энергии по сравнению с модулями DDR2, что обусловлено пониженным (1,5 В, по сравнению с 1,8 В для DDR2 и 2,5 В для DDR) напряжением питания ячеек памяти.
Снижение напряжения питания достигается за счёт использования 90-нм (вначале, в дальнейшем 65-, 50-, 40-нм) техпроцесса при производстве микросхем и применения транзисторов с двойным затвором Dual-gate (что способствует снижению токов утечки).

Модули DIMM с памятью DDR3 механически не совместимы с такими же модулями памяти DDR2 (ключ расположен в другом месте), поэтому DDR2 не могут быть установлены в слоты под DDR3 (это сделано с целью предотвращения ошибочной установки одних модулей вместо других - эти типы памяти не совпадают по электрическим параметрам).

RAMBUS (RIMM)

RAMBUS (RIMM) - это вид памяти, который появился на рынке в 1999 году.
Он основан на традиционной DRAM, но с кардинально измененной архитектурой.
Дизайн RAMBUS делает обращение к памяти более «разумным», позволяя получать предварительный доступ к данным, немного разгружая центральный процессор.

Основная идея, использованная в этих модулях памяти, заключается в получении данных небольшими пакетами, но на очень высокой тактовой частоте.
Например, SDRAM может передавать 64 бит информации при частоте 100 МГц, а RAMBUS - 16 бит при частоте 800 МГц.
Эти модули не стали успешными, так как у Intel было много проблем с их внедрением.
Модули RDRAM появились в игровых консолях Sony Playstation 2 и Nintendo 64.


Перевод: Владимир Володин

В данной статье мы рассмотрим 3 вида современной оперативной памяти для настольных компьютеров:

  • DDR - является самым старым видом оперативной памяти, которую можно еще сегодня купить, но ее рассвет уже прошел, и это самый старый вид оперативной памяти, который мы рассмотрим. Вам придется найти далеко не новые материнские платы и процессоры которые используют этот вид оперативной памяти, хотя множество существующих систем используют DDR оперативную память. Рабочее напряжение DDR - 2.5 вольт (обычно увеличивается при разгоне процессора), и является наибольшим потребителем электроэнергии из рассматриваемых нами 3 видов памяти.
  • DDR2 - это наиболее распространенный вид памяти, который используется в современных компьютерах. Это не самый старый, но и не новейший вид оперативной памяти. DDR2 в общем работает быстрее чем DDR, и поэтому DDR2 имеет скорость передачи данных больше чем в предыдущей модели (самая медленная модель DDR2 по своей скорости равна самой быстрой модели DDR). DDR2 потребляет 1.8 вольт и, как в DDR, обычно увеличивается напряжение при разгоне процессора
  • DDR3 - быстрый и новый тип памяти. Опять же, DDR3 развивает скорость больше чем DDR2, и таким образом самая низкая скорость такая же как и самая быстрая скорость DDR2. DDR3 потребляет электроэнергию меньше других видов оперативной памяти. DDR3 потребляет 1.5 вольт, и немного больше при разгоне процессора

Таблица 1: Технические характеристики оперативной памяти по стандартам JEDEC

JEDEC - Joint Electron Device Engineering Council (Объединенный инженерный совет по электронным устройствам)

Важнейшей характеристикой, от которой зависит производительность памяти, является ее пропускная способность, выражающаяся как произведение частоты системной шины на объем данных, передаваемых за один такт. Современная память имеет шину шириной 64 бита (или 8 байт), поэтому пропускная способность памяти типа DDR400, составляет 400 МГц х 8 Байт = 3200 Мбайт в секунду (или 3.2 Гбайт/с). Отсюда, следует и другое обозначение памяти такого типа - PC3200. В последнее время часто используется двухканальное подключение памяти, при котором ее пропускная способность (теоретическая) удваивается. Таким образом, в случае с двумя модулями DDR400 мы получим максимально возможную скорость обмена данных 6.4 Гбайт/с.

Но на максимальную производительность памяти также влияет такие важный параметры как "тайминги памяти".

Известно, что логическая структура банка памяти представляет собой двумерный массив - простейшую матрицу, каждая ячейка которой имеет свой адрес, номер строки и номер столбца. Чтобы считать содержимое произвольной ячейки массива, контроллер памяти должен задать номер строки RAS (Row Adress Strobe) и номер столбца CAS (Column Adress Strobe), из которых и считываются данные. Понятно, что между подачей команды и ее выполнением всегда будет какая-то задержка (латентность памяти), вот ее-то и характеризуют эти самые тайминги. Существует множество различных параметров, которые определяют тайминги, но чаще всего используются четыре из них:

  • CAS Latency (CAS) - задержка в тактах между подачей сигнала CAS и непосредственно выдачей данных из соответствующей ячейки. Одна из важнейших характеристик любого модуля памяти;
  • RAS to CAS Delay (tRCD) - количество тактов шины памяти, которые должны пройти после подачи сигнала RAS до того, как можно будет подать сигнал CAS;
  • Row Precharge (tRP) - время закрытия страницы памяти в пределах одного банка, тратящееся на его перезарядку;
  • Activate to Precharge (tRAS) - время активности строба. Минимальное количество циклов между командой активации (RAS) и командой подзарядки (Precharge), которой заканчивается работа с этой строкой, или закрытия одного и того же банка.

Если вы увидите на модулях обозначения "2-2-2-5" или "3-4-4-7", можете не сомневаться, это упомянутые выше параметры: CAS-tRCD-tRP-tRAS.

Стандартные значения CAS Latency для памяти DDR - 2 и 2.5 такта, где CAS Latency 2 означает, что данные будут получены только через два такта после получения команды Read. В некоторых системах возможны значения 3 или 1.5, а для DDR2-800, к примеру, последняя версия стандарта JEDEC определяет этот параметр в диапазоне от 4 до 6 тактов, при том, что 4 - экстремальный вариант для отборных "оверклокерских" микросхем. Задержка RAS-CAS и RAS Precharge обычно бывает 2, 3, 4 или 5 тактов, а tRAS - чуть больше, от 5 до 15 тактов. Естественно, чем ниже эти тайминги (при одной и той же тактовой частоте), тем выше производительность памяти. Например, модуль с латентностью CAS 2,5 обычно работает лучше, чем с латентностью 3,0. Более того, в целом ряде случаев быстрее оказывается память с меньшими таймингами, работающая даже на более низкой тактовой частоте.

В таблицах 2-4 предоставлены общие скорости памяти DDR, DDR2, DDR3 и спецификации:

Таблица 2: Общие скорости памяти DDR и спецификации

Таблица 3: Общие скорости памяти DDR2 и спецификации

Тип Частота шины Скорость передачи данных Тайминги Заметки
PC3-8500 533 1066 7-7-7-20 чаще называемые DDR3-1066
PC3-10666 667 1333 7-7-7-20 чаще называемые DDR3-1333
PC3-12800 800 1600 9-9-9-24 чаще называемые DDR3-1600
PC3-14400 900 1800 9-9-9-24 чаще называемые DDR3-1800
PC3-16000 1000 2000 TBD чаще называемые DDR3-2000

Таблица 4: Общие скорости памяти DDR3 и спецификации

DDR3 можно назвать новичком среди моделей памяти. Модули памяти этого вида, доступны только около года. Эффективность этой памяти продолжает расти, только недавно достигла границ JEDEC, и вышла за эти границы. Сегодня DDR3-1600 (высшая скорость JEDEC) широко доступна, и все больше производителей уже предлагают DDR3-1800). Прототипы DDR3-2000 показаны на современном рынке, и в продажу должны поступить в конце этого года - начале следующего года.

Процент поступления на рынок модулей памяти DDR3, согласно с данными производителей, все еще небольшая, в пределах 1%-2%, и это значит, что DDR3 должен пройти длинный путь прежде чем будет соответствовать продажам DDR (все еще находиться в пределах 12%-16%) и это позволит DDR3 приблизиться к продажам DDR2. (25%-35% по показателям производителей).

Память: ОЗУ, DDR SDRAM, SDR SDRAM, PC100, DDR333, PC3200... как во всём этом разобраться? Давайте попробуем!

Итак, первое что мы должны сделать это "разгладить" все сомнения и вопросы по поводу номиналов на памяти...

Самые распространённые типы памяти это:

  • SDR SDRAM (обозначения PC66, PC100, PC133)
  • DDR SDRAM (обозначения PC266, PC333 и т.д. или PC2100, PC2700)
  • RDRAM (PC800)

Теперь для последующих объяснений, расскажу про тайминги и частоты. Тайминг - это задержка между отдельными операциями, производимыми контроллером при обращении к памяти.

Если рассмотреть состав памяти, получим: всё её пространство представлено в виде ячеек (прямоугольники), которые состоят из определённого количества строк и столбцов. Один такой "прямоугольник" называется страницей, а совокупность страниц называется банком.

Для обращения к ячейке, контроллер задаёт номер банка, номер страницы в нём, номер строки и номер столбца, на все запросы тратится время, помимо этого довольно большая затрата уходит на открытие и закрытие банка после самой операции чтения/записи. На каждое действие требуется время, оно и называется таймингом.

Теперь рассмотрим поподробнее каждый из таймингов. Некоторые из них не доступны для настройки - время доступа CS# (crystal select ) этот сигнал определяет кристалл (чип) на модуле для проведения операции.

Кроме этого, остальные можно менять:

  • RCD (RAS-to-CAS Delay) это задержка между сигналами RAS (Row Address Strobe) и CAS (Column Address Strobe) , данный параметр характеризует интервал между доступами на шину контроллером памяти сигналов RAS# и CAS# .
  • CAS Latency (CL) это задержка между командой чтения и доступностью к чтению первого слова. Введена для набора адресными регистрами гарантированно устойчивого уровня сигнала.
  • RAS Precharge (RP) это время повторной выдачи (период накопления заряда) сигнала RAS# - через какое время контроллер памяти будет способен снова выдать сигнал инициализации адреса строки.
  • Примечание: порядок операций именно таков (RCD-CL-RP), но зачастую тайминги записывают не по порядку, а по "важности" - CL-RCD-RP.

  • Precharge Delay (или Active Precharge Delay ; чаще обозначается как Tras ) это время активности строки. Т.е. период, в течение которого закрывается строка, если следующая требуемая ячейка находится в другой строке.
  • SDRAM Idle Timer (или SDRAM Idle Cycle Limit ) количество тактов, в течение которых страница остаётся открытой, после этого страница принудительно закрывается, либо для доступа к другой странице, либо для обновления (refresh)
  • Burst Length это параметр, который устанавливает размер предвыборки памяти относительно начального адреса обращения. Чем больше его размер, тем выше производительность памяти.

Ну вот, вроде разобрались с основными понятиями о таймингах, теперь рассмотрим подробнее номиналы памяти (PC100, PC2100, DDR333 и т.д.)

Существует два типа обозначений для одной и той же памяти: одно - по "эффективной частоте" DDRxxx, а второе - по теоретической пропускной способности PCxxxx.

Обозначение "DDRxxx" исторически развилось из последовательности названий стандартов "PC66-PC100-PC133" - когда было принято скорость памяти ассоциировать с частотой (разве что ввели новое сокращение "DDR" для того, чтобы отличать SDR SDRAM от DDR SDRAM). Одновременно с памятью DDR SDRAM появилась память RDRAM (Rambus), на которой хитрые маркетологи решили ставить не частоту, а пропускную способность - PC800. При этом ширина шины данных как была 64 бита (8 байт) - так и осталась, то есть те самые PC800 (800 МБ/с) получались умножением 100 МГц на 8. Естественно от названия ничего не поменялось, и PC800 RDRAM - суть та же самая PC100 SDRAM, только в другом корпусе... Это ничего больше, чем стратегия для продаж, грубо говоря "наколоть людей". В ответ компании, которые выпускают модули, стали писать теоретическую пропускную способность - PCxxxx. Так появились PC1600, PC2100 и следующие... При этом у DDR SDRAM эффективная частота выше в два раза, а значит и больше числа на обозначениях.

Вот пример соответствий обозначений:

  • 100 МГц = PC1600 DDR SDRAM = DDR200 SDRAM = PC100 SDRAM = PC800 RDRAM
  • 133 МГц = PC2100 DDR SDRAM = DDR266 SDRAM = PC133 SDRAM = PC1066 RDRAM
  • 166 МГц = PC2700 DDR SDRAM = DDR333 SDRAM = PC166 SDRAM = PC1333 RDRAM
  • 200 МГц = PC3200 DDR SDRAM = DDR400 SDRAM = PC200 SDRAM = PC1600 RDRAM
  • 250 МГц = PC4000 DDR SDRAM = DDR500 SDRAM

Что же касается RAMBUS (RDRAM) писать много не буду, но всё же постараюсь ее вам представить.

Существует три разновидности RDRAM - Base , Concurrent и Direct . Base и Concurrent это практически одно и тоже, но Direct имеет приличные отличия, поэтому расскажу про первые две обобщённо, а про последнюю - поподробней.

Base RDRAM и Concurrent RDRAM в основном отличаются только рабочими частотами: для первой частота составляет 250-300 MHz, а для второй этот параметр, соответственно, равен 300-350 MHz. Данные передаются по два пакета данных за такт, так что эффективная частота передачи получается в два раза больше. Память использует восьми битную шину данных, что, следовательно, дает пропускную способность 500-600 Mb/s (BRDRAM) и 600-700 Mb/s (CRDRAM).

Direct RDRAM (DRDRAM) в отличие от Base и Concurrent, имеет 16-битную шину и работает на частоте 400 MHz. Пропускная способность Direct RDRAM составляет 1.6 Gb/s (учитывая двунаправленную передачу данных), что уже по сравнению с SDRAM (1 Gb/s для РС133) выглядит довольно неплохо. Обычно, говоря о RDRAM, подразумевают DRDRAM, поэтому буква "D" в названии часто опускается. При появлении этого типа памяти Intel создала чипсет для Pentium 4 - i850.

Самый большой плюс Rambus памяти это то, что чем больше модулей - тем больше пропускная способность, например до 1.6 Gb/s на один канал и до 6.4 Gb/s при четырех каналах.

Имеется также два недостатка, довольно значительных:

1. Лапки золотые и приходят в негодность, если плату памяти вытащить и вставить в слот больше 10 раз (примерно).

2. Завышенная цена, но многие находят очень хорошее применение этой памяти и готовы заплатить за них большие деньги.

Вот, пожалуй, и всё, мы разобрались с таймингами, названиями и номиналами, теперь я расскажу немного о различных немаловажных мелочах.

Вы наверняка видели в BIOS"e при настройках частоты памяти опцию By SPD что это значит? SPD - Serial Presence Detect , это микросхема на модуле, в которую зашиты все параметры для работы модуля, это так сказать "значения по умолчанию". Сейчас из-за появления "noname" компаний, стали записывать в этот чип имя производителя и дату.

Регистровая память

Registered Memory это память с регистрами, которые служат буфером между контроллером памяти и чипами модуля. Регистры уменьшают нагрузку на систему синхронизации и позволяют набирать очень большое количество памяти (16 или 24 гигабайт) не перегружая цепи контроллера.

Но данная схема имеет недостаток - регистры вносят задержку в 1 такт на каждую операцию, а значит - регистровая память медленнее обычной при прочих равных условиях. То есть - оверклокеру неинтересна (да и стОит она очень дорого).

Все сейчас кричат про Dual channel - что это?

Dual channel - двойной канал, это позволяет обращаться одновременно к двум модулям. Dual channel - это не тип модулей, а функция интегрированная в материнскую плату. Может быть задействована с двумя (желательно) идентичными модулями. Включается он автоматически при наличие 2-х модулей.

Примечание: чтобы активировать эту функцию, надо установить модули в слоты разных цветов.

Parity и ECC

Memory with Parity это память с проверкой чётности, способна детектировать некоторые типы ошибок.

Memory with ECC это память с коррекцией ошибок, позволяет найти, а также исправить ошибку одного бита в байте. Применяется в основном на серверах.

Примечание: она медленнее обычной, не годится для людей любящих скорость.

Надеюсь, после прочтения статьи вы разобрались с более популярными "непонятными понятиями".

Модуль памяти DDR со 184 контактами

DDR SDRAM (отангл. Double Data Rate Synchronous Dynamic Random Access Memory - синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных) - типоперативной памяти , используемой вкомпьютерах . При использовании DDR SDRAM достигается удвоенная скорость работы, нежели в обыкновеннойSDRAM , за счёт считывания команд и данных не только по фронту, как вSDRAM , но и по срезу тактового сигнала. За счёт этого удваивается скорость передачи данных, без увеличения частоты тактового сигнала шины памяти. Таким образом, при работе DDR на частоте 100 МГц мы получим эффективную частоту 200МГц (при сравнении с аналогом SDR SDRAM). В спецификацииJEDEC есть замечание, что использовать термин «МГц» в DDR некорректно, правильно указывать скорость «миллионов передач в секунду через один вывод данных».

Ширина шины памяти составляет 64 бита, то есть по шине за один такт одновременно передаётся 8 байт. В результате получаем следующую формулу для расчёта максимальной скорости передачи для заданного типа памяти: тактовая частота шины памяти x2 (передача данных дважды за такт) x8 (число байтов передающихся за один такт). Например, чтобы обеспечить передачу данных дважды за такт, используется специальная архитектура «2n Prefetch». Внутренняя шина данных имеет ширину в два раза больше внешней. При передаче данных сначала передаётся первая половина шины данных по переднему фронту тактового сигнала, а затем вторая половина шины данных по срезу.

Помимо удвоенной передачи данных, DDR SDRAM имеет несколько других принципиальных отличий от простой памяти SDRAM. В основном они являются технологическими. Например, был добавлен сигнал QDS, который располагается на печатной плате вместе с линиями данных. По нему происходит синхронизация при передаче данных. Если используется два модуля памяти, то данные от них приходят к контроллеру памяти с небольшой разницей из-за разного расстояния. Возникает проблема в выборе синхросигнала для их считывания. Использование QDS успешно это решает.

JEDEC устанавливает стандарты для скоростей DDR SDRAM, разделённых на две части: первая для чипов памяти, а вторая для модулей памяти, на которых, собственно, и размещаются чипы памяти.

Чипы памяти

В состав каждого модуля DDR SDRAM входит несколько идентичных чипов DDR SDRAM. Для модулей без коррекции ошибок (ECC ) их количество кратно 8, для модулей с ECC - кратно 9.

Спецификация чипов памяти

    DDR200: память типа DDR SDRAM, работающая на частоте 100 МГц

    DDR266: память типа DDR SDRAM, работающая на частоте 133 МГц

    DDR333: память типа DDR SDRAM, работающая на частоте 166 МГц

    DDR400: память типа DDR SDRAM, работающая на частоте 200 МГц

    DDR533: память типа DDR SDRAM, работающая на частоте 266 МГц

    DDR666: память типа DDR SDRAM, работающая на частоте 333 МГц

    DDR800: память типа DDR SDRAM, работающая на частоте 400 МГц

Характеристики чипов

    Объём чипа (DRAM density ). Записывается в мегабитах, например 256 Мбит - чип объёмом 32 мегабайта.

    Организация (DRAM organization ). Записывается в виде 64M x 4, где 64M - это количество элементарных ячеек хранения (64 миллиона), а x4 (произносится «by four») - разрядность чипа, то есть разрядность каждой ячейки. Чипы DDR бывают x4 и x8, последние стоят дешевле в пересчёте на мегабайт объёма, но не позволяют использовать функцииChipkill , memory scrubbing иIntel SDDC .

Модули памяти

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

Характеристики модулей

    Объём. Указывается в мегабайтах или гигабайтах.

    Количество чипов (# of DRAM Devices ). Кратно 8 для модулей безECC , для модулей с ECC - кратно 9. Чипы могут располагаться на одной или обеих сторонах модуля. Максимальное умещающееся на DIMM количество - 36 (9x4).

    Количество строк (ранков) (# of DRAM rows (ranks) ). Перед обращением к ячейке памяти DDR должна быть активирована строка, в которой находится эта ячейка, причём в модуле может быть активна только одна строка за раз. Чем больше строк в модуле, тем чаще в среднем придётся закрывать одну строку и активировать другую, что вызовет дополнительные задержки. С другой стороны, контроллер памяти некоторыхчипсетов имеют ограничение на общее число ранков в установленных модулях памяти. Например чипсетIntel E7520/E7320 при использовании памяти PC2700 ограничен 8 ранками. Чтобы установить вматеринскую плату на его основе с 8 слотами DIMM максимум памяти (2 Гб x 8 = 16 Гб), необходимо использовать только одноранковые (Single Rank) модули. Типичное число ранков - 1, 2 или 4. Разрядность строки равна разрядности шины памяти и составляет 64 бита для памяти без ECC и 72 бита для памяти с ECC.

    Задержки (тайминги ): CAS Latency (CL), Clock Cycle Time (tCK), Row Cycle Time (tRC), Refresh Row Cycle Time (tRFC), Row Active Time (tRAS).

Характеристики модулей и чипов, из которых они состоят, связаны.

Объём модуля равен произведению объёма одного чипа на число чипов. При использовании ECC это число дополнительно умножается на коэффициент 8/9, так как на каждый байт приходится один бит избыточности для контроля ошибок. Таким образом один и тот же объём модуля памяти можно набрать большим числом (36) маленьких чипов или малым числом (9) чипов большего объёма.

Общая разрядность модуля равна произведению разрядности одного чипа на число чипов и равна произведению числа ранков на 64 (72) бита. Таким образом, увеличение числа чипов или использование чипов x8 вместо x4 ведёт к увеличению числа ранков модуля.

В данном примере сравниваются возможные компоновки модуля серверной памяти объёмом 1 Гб. Из представленных вариантов следует предпочесть первый или третий, так как они используют чипы x4, поддерживающие продвинутые методы исправления ошибок и защиты от сбоев. При необходимости использовать одноранковую память остаётся доступен только третий вариант, однако в зависимости от текущей стоимости чипов объёмом 256 Мбит и 512 Мбит он может оказаться дороже первого.

Спецификация модулей памяти

Спецификация модулей памяти

Спецификация

Тактовая частота шины памяти

Максимальная теоретическая пропускная способность памяти

в одноканальном режиме

в двухканальном режиме

PC1600* (DDR200)

1600 Мбайт/сек

3200 Мбайт/сек

PC2100* (DDR266)

2133 Мбайт/сек

4267 Мбайт/сек

2400 Мбайт/сек

4800 Мбайт/сек

PC2700* (DDR333)

2667 Мбайт/сек

5333 Мбайт/сек

PC3200* (DDR400)

3200 Мбайт/сек

6400 Мбайт/сек

3467 Мбайт/сек

6933 Мбайт/сек

3733 Мбайт/сек

7467 Мбайт/сек

4000 Мбайт/сек

8000 Мбайт/сек

4267 Мбайт/сек

8533 Мбайт/сек

Примечание 1: стандарты, помеченные символом «*», официально сертифицированы JEDEC. Остальные типы памяти не сертифицированы JEDEC, хотя их и выпускали многие производители памяти, а большинство выпускавшихся в последнее времяматеринских плат поддерживали данные типы памяти.

Примечание 2: выпускались модули памяти работающие и на более высоких частотах (до 350 МГц, DDR700), но эти модули не пользовались большим спросом и выпускались в малом объёме, кроме того, они имели высокую цену.

Размеры модулей также стандартизированы JEDEC.

Надо заметить, что нет никакой разницы в архитектуре DDR SDRAM с различными частотами, например между PC1600 (работает на частоте 100МГц) и PC2100 (работает на частоте 133МГц). Просто стандарт говорит о том, на какой гарантированной частоте работает данный модуль. Следовательно, любой модуль можно запускать как на более низкой тактовой частоте (такое действие носит название «андерклокинг » - «underclocking»), так и на более высокой частоте по сравнению с той, на которой работает данный модуль памяти (оверклокинг - overclocking).

Модули памяти DDR SDRAM можно отличить от обычной SDRAM по числу выводов (184 вывода у модулей DDR против 168 выводов у модулей с обычной SDRAM) и по ключу (вырезы в области контактных площадок) - у SDRAM два, у DDR - один. Согласно JEDEC, модули DDR400 работают при напряжении питания 2,6 В, а все более медленные - при напряжении 2,5 В. Некоторые скоростные модули для достижения высоких частот работают при больших напряжениях, до 2,9 В.

Большинство последних чипсетов с поддержкой DDR позволяли использовать модули DDR SDRAM в двухканальном , а некоторые чипсеты и в четырёхканальном режиме. Данный метод позволяет увеличить в 2 или 4 раза соответственно теоретическую пропускную способность шины памяти. Для работы памяти в двухканальном режиме требуется 2(или 4) модуля памяти, рекомендуется использовать модули работающие на одной частоте и имеющие одинаковый объём итайминги (ещё лучше использовать абсолютно одинаковые модули).

Сейчас модули DDR практически вытеснены модулями типов DDR2 иDDR3 , которые в результате некоторых изменений в архитектуре позволяют получить бóльшую пропускную способность подсистемы памяти. Ранее главным конкурентом DDR SDRAM являлась память типаRDRAM (Rambus ), однако ввиду наличия некоторых недостатков со временем была практически вытеснена с рынка.

    Официальный сайт JEDEC (англ.)

    Описание и иллюстрация почти всех параметров памяти DDR (рус.)

    Intel® Server Board SE7501CW2 Memory List Test Report Summary (PDF, 246,834 bytes) (англ.)- небольшой список возможных конфигураций модуля памяти.

    Kingston’s Literature Page (англ.)- несколько справочных документов, описывающих организацию модулей памяти.

Как работает динамическая память (DRAM).

В данной статье приведено небольшое описание DDR SDRAM на основе официальной спецификации. Описаны и проиллюстрированы почти все параметры памяти, влияющие на производительность. Более подробно рассмотрен параметр tRAS. Это достаточно базовая информация, которой должен владеть каждый уважающий себя любитель разгона.

Начнём с самого начала, с основ работы динамической памяти. Конечно, такой информации нет в спецификации, но будет полезно напомнить. Носителем информации в динамической памяти является электрическая ёмкость или конденсатор. Ячейки памяти, в основе которых лежит конденсатор, объединяются в массив. Чтобы считать информацию из ячейки, подаётся адресный сигнал в соответствующую строку (по-английски Row). Данные считываются из соответствующей колонки (по-английски Column) массива. Для "перевода" аналогового сигнала электрической ёмкости используются специальные усилители. Кроме того, существуют специальные цепи для подзарядки конденсаторов и записи данных. Обычно на блок-схемах всё это объединяется и обозначается как "Sense Amplifiers".

При считывании информации происходят следующие операции:

    Подаётся адресный сигнал в соответствующую строку. Данные целой строки попадают на усилители и через некоторое время могут быть считаны. Такая операция называется активацией строки (по-английски Activate).

    Данные считываются из соответствующей колонки. Для этого подаётся команда на чтение (по-английски Read). Данные появляются на выходе с некоторой задержкой. В современной памяти используется чтение пакета данных (по-английски Burst), представляющего собой несколько последовательно расположенных данных. Обычно размер пакета равен 8.

    Пока строка остаётся активной, возможно считывание или запись других ячеек памяти (текущей строки).

    Так как при чтении заряд ёмкостей ячеек памяти теряется, то производится подзарядка этих ёмкостей или закрытие строки (по-английски Precharge). После закрытия строки дальнейшее считывание данных невозможно без повторной активации.

    Со временем конденсаторы ячеек разражаются и их необходимо подзаряжать. Операция подзарядки называется регенерацией (по-английски Refresh) и выполняется каждые 64 мс для каждой строки массива памяти.

При записи данных всё происходит точно так же, только чтение меняется на запись и при закрытии строки происходит непосредственная запись в массив памяти.

Ячейка памяти может хранить только один бит информации. Чтобы хранить один байт, используется 8 элементарных ячеек памяти. При этом они адресуются одинаково и организованы с использованием шины данных шириной в 8 линий. Такие объединённые ячейки образуют слово. Обычно чипы памяти имеют размер слова 4, 8, 16 бит. Ширина шины данных при этом равна 4, 8, 16 линий (или разрядность 4, 8. 16 бит). Простой модуль памяти DIMM имеет ширину шины данных 64 линий.

Банки памяти.

Чтобы обеспечить возможность быстрой работы одновременно с разными участками памяти используется архитектура с несколькими массивами памяти или банками (по-английски Bank). Банки памяти работают полностью независимо. Например, данные можно считывать из памяти банка 1, обрабатывать и записывать в память банка 2. При этом будут отсутствовать задержки на активацию и закрытие строк данных в массиве памяти, что было бы в случае одного банка.

Возможна различная организация использования банков. При этом по-разному выполняется трансляция адреса памяти, который использует процессор, в последовательность: номер банка, номер строки массива памяти, номер колонки массива памяти. В простейшем случае банки памяти идут последовательно. Соответственно преимущества от наличия нескольких банков будут, только если обращения к памяти сильно разнесены в адресном пространстве. Обычно программы работают с небольшим локальным участком памяти и не будут иметь ускорения. Возможна организация с чередованием банков (по-английски Interleaving). Сначала идёт строка первого банка, потом второго, потом опять первого, и так далее до конца памяти. Вероятность, что будут использоваться участки памяти, принадлежащие разным банкам, значительно увеличивается. Но всегда возможны "неудобные" случаи, когда рабочие участки памяти разбросаны так, что принадлежат одному банку. Тем не менее, наличие нескольких банков повышает производительность. Чем больше банков, тем лучше. В спецификации чётко написано, что DDR SDRAM имеет 4 банка памяти.

Как работает DDR.

Сокращение DDR расшифровывается как Double Data Rate или удвоенная скорость передачи данных. Число, следующее за "DDR", указывает на скорость передачи данных. Например, у DDR 400 скорость передачи 400 МГц. При этом использовать термин "МГц" некорректно. Правильно указывать скорость в "миллионах передач в секунду через один вывод данных". Такое замечание есть в спецификации. Память DDR 400 работает на частоте 200 МГц или на частоте в 2 раза меньше скорости передачи данных (вернее, скорость передачи данных в 2 раза больше тактовой частоты). Все управляющие сигналы синхронизируются частотой 200 МГц. Внутри чипа все работает классически по переднему фронту сигналов тактового генератора с частотой 200 МГц (есть правда исключение). Официальная частота DDR333 равна 167.0 МГц.

Чтобы обеспечить передачу данных дважды за такт, используется специальная архитектура "2n Prefetch". Внутренняя шина данных имеет ширину в два раза больше внешней. При передаче данных сначала передаётся первая половина шины данных по переднему фронту тактового сигнала, а затем вторая половина шины данных по заднему фронту.

Для возможности работы на высоких частотах вместо одного тактового сигнала используется два (Differential Clock). Дополнительный тактовый сигнал инвертирован относительно основного. Поэтому на самом деле синхронизация происходит не по заднему фронту. В документации написано, что синхронизация происходит при пересечении этих двух тактовых сигналов. Но, насколько я понимаю, вместо пересечения просто используется передний фронт дополнительного тактового сигнала. Хотя это только предположение.

Кроме передачи двух данных за такт, DDR SDRAM имеет несколько других принципиальных отличий от простой памяти SDRAM. В основном они являются технологическими. Например, был добавлен сигнал QDS, который располагается на печатной плате вместе с линиями данных. По нему происходит синхронизация при передаче данных. Если используется два модуля памяти, то данные от них приходят к контроллеру памяти с небольшой разницей из-за разного расстояния. Возникает проблема в выборе синхросигнала для их считывания. Использование QDS успешно это решает.

Пару слов можно сказать о стандарте DDR2. Как и для обычной памяти DDR, число после "DDR2" указывает на скорость передачи данных. Поэтому DDR2 400 и DDR 400 имеют абсолютно одинаковую скорость передачи данных. Массив памяти DDR2 работает на частоте в 4 раза меньше скорости передачи (вернее скорость передачи данных в 4 раза больше частоты работы массива). Для того чтобы обеспечить передачу данных 4 раза за такт используется архитектура "4n Prefetch". При этом внутренняя шина данных имеет ширину в 4 раза больше внешней шины. Тем не менее, вся управляющая логика ввода/вывода работает на частоте в 2 раза меньше скорости передачи, то есть на 200 МГц для DDR2 400. Непосредственно на сам чип памяти подаётся только эта частота.

Внутренняя организация DDR2 осталась в основном прежней, но есть и некоторые изменения. Задержка чтения (CL - CAS Latency) уже не может быть дробной. Это сделано для упрощения внутренней логики. Задержка записи изменена с фиксированного 1 такта до RL-1, где RL (Read Latency) – задержка чтения с учетом добавочной задержки (AL – Additive Latency) или другими словами, RL=AL+CL. Задержка записи стала как минимум 2 такта (CL=3, AL=0). Это сделано для уменьшения пропусков в передаче из-за разных задержек чтения и записи и, соответственно, для лучшего использования шины данных.

Была добавлена возможность отложенного выполнения команд при помощи добавочной задержки (AL - Additive Latency). Это приводит к отсутствию перерывов в передаче данных при конфликтных ситуациях на линии команд. Например, когда необходимо подать команду на чтение и команду активации строки другого банка памяти, подаётся только одна команда, хотя память может "обработать" две команды одновременно. Использование AL позволяет избежать таких ситуаций. С одной стороны, AL уменьшает задержки на получение информации при доступе к разным строкам массива памяти и позволяет более полно нагрузить шину данных при работе с несколькими банками памяти. С другой стороны, при работе с данными, находящимися в пределах одной строки, задержки увеличиваются. Для повышения производительности в DDR2 количество банков памяти было увеличено с 4 до 8, правда, только для чипов ёмкостью 1 Гбит и выше, и с некоторыми ограничениями. Основное отрицательное влияние на скорость работы оказывает массив памяти, который работает на частоте в 2 раза меньшей, чем массив DDR, и имеет большие внутренние задержки. Собственно точные причины повышения задержек выяснить не удалось. Такая информация является "внутренней" для производителей памяти.

Подведя небольшой итог, можно сказать, что при одинаковом рейтинге память DDR2 и DDR имеют одинаковую скорость передачи данных. Главным преимуществом DDR2 является возможность функционирования на значительно более высоких частотах. Становятся доступными большие скорости передачи данных. Массив памяти DDR2 работает в 2 раза медленнее, чем массив DDR, и обладает большими задержками. Кроме того изменения в протоколе работы в среднем так же увеличили задержки.

Протоколы работы с DDR SDRAM.

"Общение" системы с памятью происходит при помощи передачи сигналов по линиям ввода/вывода. При помощи этих сигналов подаются команды, передаются и считываются данные. Форма и задержки между этими сигналами жёстко описывается в спецификации. Для понимания параметров памяти и того, как система с ней работает, можно ограничиться упрощенным представлением протокола работы. Далее будут представлены диаграммы основных операций.

На диаграмме хорошо видно, что данные начинают поступать на выход только через tRCD+CL тактов после начала операции единичного чтения. Другими словами, параметры tRCD и CL имеют одинаковое значение. Однако если запустить обычные тесты латентности памяти (ScienceMark 2.0, CPU-Z 1.20a, CacheMem 2.6), то CL будет влиять на результаты больше. Это происходит из-за того, что тесты измеряют время не случайного произвольного чтения, а последовательного чтения с некоторым шагом. При этом происходит несколько чтений в пределах активной строки. Размер строки массива памяти может быть разным, от 512 ячеек до 4096 ячеек. Соответственно, tRCD оказывает влияние на результаты реже, только при активации строки, а CL – при каждом чтении.

Проведённое исследование в статье "" показало, что в реальных приложениях изменение tRCD на 1 имеет чуть большее значение, чем изменение CL на 0.5. Ещё одним интересным моментом на диаграмме является подача команды на закрытие строки, когда передача данных не закончилась. То есть строка может быть закрытой, а данные всё ещё передаваться.

Вот определение некоторых параметров памяти, проиллюстрированных на диаграмме. Приводятся сокращённые и развернутые (не расшифровка) названия параметров, как они указаны в спецификации. Значения параметров задаются либо в абсолютном выражении в наносекундах или в циклах (тактах) тактового генератора.

tRCD (ACTIVE to READ or WRITE delay) – время необходимое на активацию строки банка памяти или минимальное время между командой активации и командой чтения/записи.

CL (CAS Latency) – время между командой чтения и началом передачи данных.

tRAS (ACTIVE to PRECHARGE command) – время необходимое на накопление заряда для операции закрытия строки банка или минимальное время между командой активации и командой закрытия (для одного и того же банка).

tRP (PRECHARGE command period) – время необходимое на закрытие строки банка памяти или минимальное время между командой закрытия и повторной активации (для одного и того же банка).

По ходу можно дать ещё пару определений параметров, не отображённых на диаграмме.

tRRD (ACTIVE bank A to ACTIVE bank B command) – минимальное время между командами активации для разных банков.

tRC (ACTIVE to ACTIVE/Auto Refresh command period) – минимальное время между командами активации одного и того же банка. Собственно это время состоит из tRAS+tRP.

При последовательном чтении следующая команда подаётся, когда данные предыдущей ещё не закончили передаваться. Это и есть конвейеризация. При этом CL абсолютно не влияет на пропускную способность памяти. Если предвыборка данных контроллером памяти организована хорошо, то CL имеет совсем небольшое влияние на производительность.

tWR (Write recovery time) – минимальное время между окончанием передачи данных при записи (по переднему фронту) и командой закрытия строки банка памяти (для одного и того же банка).

Как видно, в случае операции чтение-запись, конвейеризация не работает. Получается бесполезный пропуск 1 такта.

При операции запись-чтение, конвейеризация тоже не работает. Пропуск равен tWTR+CL тактов.

tWTR (Internal Write to Read Command Delay) – минимальное время между окончанием передачи данных при записи (по переднему фронту) и командой чтения (для любого банка памяти).

Собственно это все параметры памяти, влияющие на производительность, за исключением параметров, относящихся к регенерации. Пару слов можно сказать про наилучшие значения параметров памяти. Все параметры, за исключением CL, определяют минимальное время. Параметр CL жестко фиксирован и программируется в чипе памяти при инициализации (кстати, это объясняет невозможность изменения CL на платах nForce2 без перезагрузки, в то время как tRAS и другие параметры менять можно). Для любого параметра меньшее значение обеспечивает более высокую скорость. Влияние на производительность некоторых параметров приведено в статье "Зависимость производительности от частоты шины и параметров памяти на ASUS A7N8X-X (nForce2 400) ".

Чипы памяти, модули памяти.

Под понятием DDR SDRAM подразумеваются собственно чипы или микросхемы памяти. В обычных современных компьютерах в качестве основной памяти используются модули памяти DIMM (Dual In-Line Memory Modules). Модуль памяти представляет собой "сборку" на печатной плате, состоящую из нескольких чипов памяти. Кроме того, на модуле расположена небольшая энергонезависимая память для хранения конфигурационной информации (SPD). Это маленькая микросхема с небольшим числом выводов. В случае буферизированных модулей, имеются чипы буферов.

Память DDR3 постепенно сдает свои позиции как наиболее массовая и для сборки новых систем уже не рекомендуется. Другое дело, если стоит задача модернизировать слегка устаревший компьютер, причем в рамках ограниченного бюджета. Понятное дело, подобные условия исключают из перечня вариантов максимально разогнанные комплекты памяти, и в нашем обзоре они не рассматриваются.

Примечательно, что в рамках платформы Intel гонка за мегагерцами особого смысла также не имеет. Исключением здесь являются достаточно специфические задачи, которые для большинства пользователей интереса не представляют. С другой стороны, разница в цене комплектов памяти одного объема, но с разной тактовой частотой исчезающе мала (в диапазоне от 2133 до 3000 МГц, разумеется). Так почему бы и не выбрать набор оперативной памяти пошустрее, на перспективу?

Совершенно иначе обстоит дело с новейшей платформой AMD . Из-за особенностей своей внутренней архитектуры, производительность процессоров Ryzen напрямую зависит от рабочей частоты шины памяти Infinity Fabric, следовательно, и ее контроллера. В свою очередь, частота последнего «привязана» к характеристикам установленных модулей и может быть увеличена за счет разгона.

Крайне неприятный нюанс выбора модулей памяти для Ryzen заключается в том, что далеко не любой комплект заработает в такой системе даже на своей номинальной тактовой частоте. Здесь уже проблема в особенностях архитектуры самих модулей. Кратко, рекомендации можно свести к двум советам: ориентируйтесь на одноранговые планки памяти и на самую свежую ревизию BIOS для материнской платы. Чем новее в ней протокол AGESA — тем лучше. Имейте в виду, двухранговая память с Ryzen всегда будет работать на пониженных частотах, а ранние версии указанного протокола «дружелюбно» воспринимают только модули, построенные на основе чипов Samsung. Причем не любых, а исключительно поколения B-Die.

Удачного апгрейда!