Спор о том, какой комплект памяти быстрее, обычно сводится к сравнению одного числа — частоты. Это удобно, потому что цифра крупная и стоит на упаковке первой, но по ней нельзя судить о скорости так же, как нельзя судить о времени поездки по одной максимальной скорости автомобиля. Память характеризуется двумя независимыми величинами: сколько данных она способна передать за секунду и сколько времени проходит от запроса до появления первого байта. Эти величины меняются в разные стороны и измеряются в разных единицах.
Что на самом деле означает частота на наклейке
Число вроде 6000 — это не частота тактового генератора, а скорость передачи: количество переданных за секунду порций данных на каждый вывод шины. Тактовый сигнал вдвое ниже, потому что данные снимаются по обоим его фронтам — отсюда и буква D в названии стандарта. Умножив скорость передачи на ширину канала и на число каналов, получают пиковую пропускную способность в гигабайтах в секунду. Это верхняя граница, которая достигается только при длинном последовательном чтении из уже открытой строки.
Пропускная способность отвечает на вопрос «сколько». Она важна там, где данные идут потоком: копирование крупных массивов, кодирование видео, работа встроенной графики, научные расчёты над большими матрицами.
Тайминги и почему CL сам по себе тоже ничего не говорит
Тайминги — это задержки, выраженные в тактах шины. Первое число, CAS Latency, показывает, сколько тактов пройдёт между командой на чтение столбца и появлением данных на шине. Остальные три из привычной четвёрки описывают задержку между активацией строки и командой на столбец, минимальное время удержания строки открытой и паузу перед активацией другой строки в том же банке. За ними стоят ещё десятки вторичных и третичных параметров, которые плата подбирает автоматически.
Ключевая тонкость: такт — величина непостоянная. Чем выше частота, тем короче такт, поэтому одно и то же значение CL на разных частотах означает разное время. Реальная задержка получается делением числа тактов на тактовую частоту, и считать её надо в наносекундах. Комплект с большим CL на высокой частоте может иметь такую же или меньшую задержку в наносекундах, чем комплект с малым CL на низкой. Именно поэтому производители чипов при переходе на новое поколение поднимают частоту быстрее, чем растут тайминги: время доступа в наносекундах держится примерно на одном уровне десятилетиями, а пропускная способность растёт кратно.
Какая величина важнее в конкретной задаче
Ответ зависит от того, как приложение обращается к памяти. Если оно читает длинными последовательными кусками, контроллер успевает заранее подтянуть следующие строки, задержка прячется за конвейером, и всё решает пропускная способность. Если обращения короткие и разбросанные — обход связного списка, работа с деревом, хождение по указателям — каждый следующий адрес становится известен только после прихода предыдущих данных, конвейер не работает, и в дело вступает чистая латентность.
Игры и интерактивные приложения обычно ближе ко второму сценарию: там много мелких структур и указателей, и уменьшение задержки на несколько наносекунд заметнее, чем прибавка гигабайт в секунду. Обработка мультимедиа и компиляция ближе к первому. Системы на процессорах с большим кэшем последнего уровня менее чувствительны к обеим величинам, потому что часть обращений вообще не доходит до модулей.
Где расчёт перестаёт работать
Формула «такты делить на частоту» описывает только задержку внутри микросхемы. Полный путь запроса длиннее: контроллер памяти в процессоре, шина между кристаллами, очередь запросов, арбитраж между ядрами. У процессоров с несколькими кристаллами частота внутренней шины иногда привязана к частоте памяти определённым делителем, и разгон памяти выше точки, где делитель переключается, добавляет задержку на межкристальном обмене больше, чем экономит на самих чипах. Итог получается отрицательным при формально более высокой цифре на упаковке.
Второй ограничитель — сам контроллер. Его рабочая частота у ряда платформ синхронизирована с памятью один к одному до определённого порога, а выше переходит в режим деления. Момент перехода — это ступенька, на которой пропускная способность растёт, а задержка скачком ухудшается.
Как читать характеристики без иллюзий
Практический подход: перевести тайминги в наносекунды, посчитать пиковую пропускную способность и посмотреть на обе цифры сразу. Дальше проверить, попадает ли частота в диапазон, где контроллер работает синхронно, и укладывается ли режим в то, что плата вытягивает при нужном числе модулей. Комплект с умеренной частотой и плотными таймингами часто оказывается ровнее в работе, чем экстремальный по цифрам набор, который не запускается на четырёх слотах.
Ещё один момент — организация модулей. Одноранговые и двухранговые планки при одинаковых частоте и таймингах ведут себя по-разному, потому что контроллер может чередовать обращения между рангами и прятать часть задержек. Это тот случай, когда третья характеристика, не вынесенная на упаковку крупным шрифтом, влияет на результат сильнее, чем разница в пару ступеней частоты. Общие принципы подбора модулей собраны в разделе про оперативную память.