Оперативная память продаётся по двум числам на коробке: частота в мегатрансферах и четыре цифры через дефис. Первое число красивое, второе честное. Надпись DDR4-3200 16-18-18-36 говорит инженеру ровно столько, сколько говорила бы таблица характеристик двигателя: память передаёт до 3200 миллионов слов в секунду на контакт, но ждёт, прежде чем отдать первое слово, строго определённое число тактов. Эта статья разбирает каждый из четырёх главных таймингов, переводит их в наносекунды, объясняет устройство банков и страниц, показывает, почему высокая частота сама по себе не ускоряет отзывчивость системы, и сводит практику к профилям XMP и EXPO, делителям контроллера и проверке стабильности в MemTest86.

Четыре главных тайминга и что происходит внутри чипа

Ячейки DRAM организованы в матрицу строк и столбцов, и контроллер не может просто попросить байт по адресу. Сначала строка активируется командой RAS, затем из неё читается столбец командой CAS, потом строку нужно закрыть, чтобы открыть соседнюю. Каждый переход занимает такты, и эти такты записаны в маркировке.

Первое число, CL или CAS Latency, это задержка между запросом столбца и появлением данных на шине. Когда строка уже открыта, контроллер выдаёт адрес столбца и ждёт CL тактов, пока усилители считывания выровнят сигнал. CL16 значит шестнадцать тактов ожидания.

Второе число, tRCD, RAS to CAS Delay, это время от активации строки до момента, когда по ней разрешено делать колоночный запрос. Заряд из массива ячеек должен дойти до линии усилителей, и торопить этот процесс нельзя: при слишком малом tRCD считывается мусор.

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

Четвёртое число, tRAS, минимальное время жизни открытой строки. Строку нельзя закрыть раньше, чем через tRAS тактов после активации, даже если данные уже прочитаны: ячейки должны успеть восстановить заряд. Типичное правило настройщиков гласит, что tRAS примерно равен сумме CL и tRCD плюс пара тактов запаса, и для 16-18-18 значение 36 как раз лежит в этой логике.

Перевод тактов в наносекунды и честное сравнение комплектов

Такт сам по себе ничего не стоит, цена ему назначается частотой. У DDR передача идёт по обоим фронтам, поэтому реальный такт вдвое ниже маркетинговой цифры МТ/с: у планки DDR4-3200 тактовая частота 1600 МГц, период такта 0,625 нс. Формула проста: задержка в наносекундах равна таймингу, умноженному на 2000 и делённому на МТ/с.

CL16 при 3200 МТ/с даёт 16 умножить на 0,625, ровно 10 нс. Теперь сравним с модным комплектом DDR4-3600 CL18. Период такта там 0,5556 нс, итоговая задержка CAS 18 умножить на 0,5556, снова 10 нс. Более дорогая память с внушительной цифрой 3600 отвечает на запрос за то же время. Разница появляется только в полосе пропускания, полезной для потоковой работы, а не в отзывчивости одиночного запроса.

Этот расчёт работает и для DDR5. DDR5-6000 CL30: период такта 0,3333 нс, задержка CAS 30 умножить на 0,3333, те же 10 нс. Индустрия десятилетиями наращивает частоты, а абсолютная латентность первого доступа стоит на месте около десяти наносекунд, потому что упирается в физику заряда конденсатора ячейки. Кто понял это однажды, перестаёт вестись на маркетинговые мегагерцы и смотрит на пару частота плюс первый тайминг как на единое целое. Для игрового компьютера, где процессор постоянно ждёт случайные пачки данных, решают наносекунды. Для рендера и архивации, где данные идут длинными очередями, решает полоса, и там высокие МТ/с оправданы.

Стоит помнить и про остальные задержки. Полный промах мимо открытой строки стоит примерно tRCD плюс CL, а если строку ещё надо закрыть, добавляется tRP. Для 16-18-18-36 при 3200 худший случай занимает 18 плюс 18 плюс 16 тактов, то есть 52 такта или 32,5 нс, втрое больше красивого числа из рекламы.

Банки, страницы и библиотека внутри чипа

Удобная модель устройства DRAM это библиотека. Чип поделён на банки, банк это зал с полками, полка это строка из восьми килобит или около того, книга на полке это столбец. Читатель может держать открытым только один стеллаж в зале за раз: активировал строку, прочитал сколько нужно столбцов подряд почти без пауз, закрыл, перешёл к другой. Пока строка открыта, чтение из неё идёт с задержкой всего CL, это случай page hit. Чужая строка в том же банке требует tRP плюс tRCD, это page miss, самый дорогой случай.

Спасение приходит от параллелизма банков. Банков в чипе DDR4 шестнадцать, сгруппированных по четыре, и пока один банк закрывает строку, контроллер активирует строку в другом. Грамотный контроллер перетасовывает очередь запросов так, чтобы обращения ложились на разные банки и заранее открытые строки, и средняя задержка падает заметно ниже худшего случая. Именно поэтому тайминги второго и третьего порядка, которыми увлекаются энтузиасты, влияют на реальную производительность сильнее, чем кажется.

Сверху на чип ложится обязанность освежаться. Конденсатор ячейки теряет заряд за миллисекунды, и контроллер обязан перечитывать каждую строку минимум раз в 64 мс. Интервал между командами refresh задаёт тайминг tREFI, типично 7,8 мкс при нормальной температуре. Во время регенерации банк недоступен, и при сильном нагреве интервал приходится уменьшать вдвое, что съедает пару процентов полосы. Это не абстракция: горячая память в тесном корпусе честно работает медленнее холодной.

Отдельный параметр, Command Rate, задаёт, сколько тактов контроллер держит адресный сигнал перед тем как чип его зафиксирует. 1T значит один такт, 2T значит два. Четыре односторонних планки или две двухсторонних нагружают адресную шину так, что 1T перестаёт быть стабильным, и система переходит на 2T, теряя процент-два производительности, но выигрывая в стабильности. Это нормальный компромисс, а не поломка.

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

Частое заблуждение гласит, что быстрая память бесплатно добавляет кадров в секунду. На деле память делится на два ресурса, и ускоряется только тот, который был узким местом. Полоса пропускания считается жёстко: шина составляет 64 бита на канал, то есть 8 байт на передачу. DDR4-3200 на одном канале отдаёт 3200 миллионов умножить на 8 байт, 25,6 ГБ/с. DDR5-6000 на канал отдаёт 48 ГБ/с, причём сама планка DDR5 внутри поделена на два независимых субканала по 32 бита, что улучшает параллелизм коротких обращений.

Второй канал удваивает полосу, потому что контроллер чередует обращения между планками. Поэтому одна планка на 16 ГБ против двух по 8 ГБ это не вопрос объёма, а вопрос вдвое большей пропускной способности, и для встроенной графики разница достигает десятков процентов. Открытая страница и чередование банков помогают держать обе шины занятыми.

Но если процессор ждёт случайный адрес, широкая полоса не помогает: задержку определяют наносекунды CL и поведение страниц. Вот почему замена 3200 CL16 на 3600 CL18 в играх даёт ноль-один процент, а переход с одного канала на два даёт заметный скачок. Память это фундамент, который должен перестать быть узким местом, а не кнопка разгона.

XMP и EXPO, стабильность и проверка

Заводские параметры по спецификации JEDEC консервативны, обычно 2133 или 4800 МТ/с. Заявленные на коробке цифры живут в профиле разгона: XMP у Intel, EXPO у AMD. Планка при включении стартует на безопасной частоте, читает из микросхемы SPD записанный производителем профиль и предлагает прошивке платы применить его. Профиль это результат отбора чипов, но не гарантия: контроллер памяти у каждого процессора свой, и комплект на 3600 может быть нестабилен именно на конкретном экземпляре.

Порядок вводной настройки выглядит так.

  1. Обновить прошивку платы до актуальной, производители регулярно правят тренировку памяти.
  2. Включить один профиль XMP или EXPO и сохранить настройки, не трогая остальное.
  3. Прогнать MemTest86 с загрузочного носителя минимум четыре полных прохода, желательно ночь.
  4. Проверить систему под тяжёлой нагрузкой с AVX-инструкциями, потому что горячий процессор и горячий контроллер памяти вызывают ошибки, которых нет в простое.
  5. При любой ошибке не маскировать её, а вернуть частоту ниже или поднять Command Rate до 2T.

Ошибка в MemTest86 это не абстрактное предупреждение, это конкретный бит, который память вернула неверно. Одна такая ошибка за ночь означает, что через месяц испортится файл в архиве или сохранение проекта. Стабильность проверяется только долгим тестом, успешная загрузка рабочего стола ничего не доказывает.

Связка с процессором, Infinity Fabric, делители, Gear Down и чтение SPD

На платформе AMD контроллер памяти связан с ядрами шиной Infinity Fabric, и её частота по умолчанию равна частоте памяти, режим один к одному. Пока память в пределах DDR4-3600 или DDR5-6000, синхронный режим даёт минимальную сквозную задержку. Выше контроллер переходит на делитель два к одному, ткань отстаёт, и латентность вырастает на десяток наносекунд: сверхвысокая частота памяти в итоге проигрывает режиму один к одному на более скромной. Поэтому практический оптимум для Ryzen на DDR4 лежит у 3600 с низкими таймингами, а для DDR5 у 6000 с CL30. На платформах Intel существует похожее деление на Gear 1 с синхронным контроллером и Gear 2 с делённой частотой, и логика та же: синхронный режим ценнее голых мегагерц. Есть и противоположный механизм, Gear Down Mode у AMD, который округляет нечётные тайминги вверх и облегчает работу адресной логики на высоких частотах ценой пары наносекунд.

Практическое чтение параметров удобно вести нейтральной утилитой CPU-Z. Вкладка SPD показывает, что записано в самой планке: поддерживаемые профили JEDEC, профили разгона, производитель чипов и неделя выпуска. Вкладка Memory показывает, что реально применено: итоговую частоту, делитель, четыре главных тайминга и Command Rate. Сверка этих двух вкладок отвечает на главный вопрос владельца: работает ли память на заявленном профиле и в скольких каналах. Если профиль применён, а частота вдвое ниже ожидаемой, стоит помнить про удвоение DDR: поле показывает реальный такт, и 1800 МГц в утилите это и есть DDR4-3600 на коробке.

Итоговая грамотность в вопросе сводится к трём навыкам: переводить тайминги в наносекунды по формуле, смотреть на режим контроллера и число каналов раньше, чем на мегатрансферы, и считать любой разгон памяти недоделанным до тех пор, пока его не подтвердил долгий тест. Тогда четыре цифры на коробке перестают быть украшением и становятся тем, чем они и являются, сокращённым описанием поведения самой консервативной и самой честной микросхемы в компьютере.

Перевод тактов в наносекунды на пальцах. При 3200 МТ/с эффективная частота тактирования составляет 1600 МГц, и один такт длится 0.625 наносекунды; простое деление позволяет утверждать, что CL16 соответствует десяти наносекундам ожидания. Тот же расчёт для 3600 МТ/с и CL18 даёт задержку около десяти наносекунд, но уже при большей пропускной способности канала, а для памяти 6000 МТ/с и CL30 получается десять же наносекунд при почти вдвое большей полосе - именно поэтому цифры производителей сравниваются через наносекунды, а не через попугаев из коробки. Редукция таймингов сохраняет смысл и при дальнейшем зоотехническом диапазоне: для каждой ступени частоты существует своя секция напряжения и собственная таблица задержек между строками, и глупее всего выбирать память по самой большой надписи на лицевой стороне при тонко расставленных скобках характеристик в мелком шрифте.

Почему тайминги важнее герцовой пышности. Большинство обращений к памяти совершается не как чтение полного блока, а как команда активировать строку, перейти между рядами, закрыть и начать снова; каждая из этих микрофаз занимает своё время и суммируется в задержку доступа, которая напрямую видна диспетчеру задач процессора при мелком чтении структур данных. Когда природа задачи сканирований ближе к выборке 64-байтовых линий разбросанных по объекту, доминирует латентность а не ширина канала, и даже идеальные мегагерцы способны принести меньше, чем жёстко подобранная последовательность первичных задержек. По этой причине тесты инструментов измерения возвращаются не к списку частот, а к читке профилогаммы задержек предзагрузки, записи и обновления, на которой скромный комплект с коротким циклом окажется целесообразнее обещаний этикетки дисконтера.

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