Здравствуйте, дорогие читатели. Сегодня мы в очередной раз поговорим про оперативную память. Выясним, как выбрать себе реально оперативную память, чтобы потом не вздыхать от медленной реакции системы (не важно, сервер ли это, либо персональный компьютер), разберёмся с частотами и таймингами более предметно.
Предисловие
В одной из предыдущих статей (Оперативная память: почему возникают ошибки? Разбираемся с работой ОЗУ) я рассказал про принцип работы оперативной памяти и чуть-чуть затронул физику процесса. Настало время подняться на более высокий уровень абстракции и поговорить об ОЗУ как о составном модуле любого компьютера или сервера. И речь пойдёт о самом главном - скорости работы.
В статье О выборе процессора мы выяснили, что оперативная память является узким местом производительности всей системы. И действительно, чем выше скорость взаимодействия ЦПУ и ОЗУ - тем большее количество данных сможет обработать многоядерный процессор. Поэтому, в первую очередь нас интересует 2 параметра: частота оперативной памяти и её тайминги. Давайте сперва разберёмся с частотой.
Какую выбрать частоту оперативной памяти?
Сразу отвечу, что в большинстве случаев, чем выше частота - тем быстрее скорость обмена данными (ну почти). Но не стоит забывать, что выбранную частоту ОЗУ должна поддерживать и материнская плата, и процессор.
Под частотой оперативной памяти понимают частоту работы центрального тактового сигнала ввода-вывода (не будем углубляться в тему), который позволяет координировать работу всей шины памяти.
Помните, в статье "почему возникают ошибки в ОЗУ" мы затрагивали понятие паразитной ёмкости, которая "заваливает" фронты импульсов (цифровых сигналов)? Вот небольшая усовершенствованная диаграмма из той статьи:
Из этого следует, что если для Вас в приоритете высокая скорость работы и производительность - частота нужна побольше, так как за единицу времени можно передать большее количество данных. Но с ростом частоты повышается шанс на возникновение ошибок из-за влияния паразитных ёмкостей.
Если же главной целью является надёжность работы и отказоустойчивость - не грех будет и работать на более низких частотах. В прочем, никто не мешает взять ОЗУ на 3200 МГц и понизить её работу до 2133 МГц, "растянув" импульс каждого сигнала. Это позволит снизить шанс возникновения ошибок.
Какие тайминги нужны для быстрой работы оперативки?
Опять же, в предыдущей статье мы затронули тему таймингов и определили, что тайминги - это требуемое количество тактов на обеспечение работы модуля ОЗУ (выбор адреса, перезаряд ячеек ёмкости и т.п.). Кратко вспомним основные тайминги:
CAS Latency (CL) - количество тактов между отправкой команды на чтение/запись и её выполнением;
RAS to CAS Delay (tRCD) - количество тактов, требуемое для организации доступа к ячейке;
RAS Precharge (tRP) - количество тактов, которое требуется для перехода к следующей ячейке данных (прежде чем читать данные из следующей ячейки, текущую надо дозарядить и закрыть);
Row Activate Time (tRAS) - количество тактов, отведённое контроллеру памяти для работы с данными.
Теперь предлагаю Вам взглянуть на диаграмму, на которой я схематично изобразил влияние таймингов на скорость предоставления данных:
Сильно упрощая, можно утверждать, что tRCD - это количество тактов между началом передачи адреса строки и началом передачи адреса столбца, CL - задержка между началом передачи адреса столбца и началом появления данных на шине данных, а tRP - задержка между "закрытием" одного адреса и началом открытия следующего адреса.
Есть много второстепенных таймингов, но их величины так или иначе связаны с величинами первичных (основных) таймингов, поэтому отдельно их рассматривать не станем.
Важное замечание: тайминги иллюстрируют количество тактов, а не время! Время очень просто посчитать, зная частоту шины, сейчас об этом и поговорим.
Что лучше, 3200МГц и тайминги 18-22-22-42, или же 3600МГц и тайминги 20-26-26-46?
В качестве сравнения взял модули Patriot Viper Elite (PVE2416G320C8K) и Patriot Viper Elite II (PVE2416G360C0K). Мы предположим, что обе планки оперативной памяти завелись на максимальных для них частотах. Я воспользуюсь калькулятором, который позволяет сразу перевести количество тактов на определённой частоте во временной интервал. Получается:
18 тактов при 3200 МГц = 11,25нс
20 тактов при 3600 МГц = 11,11нс
Выходит, что вариант 3600 МГц и тайминги 20-26-26-46 несколько быстрее, если говорить о CAS Latency (CL). Но таймингов ведь много, предлагаю "на шару" сложить все "тики" и сравнить общие цифры.
18+22+22+42=104 тактов; при 3200 МГц = 65,00 нс
20+26+26+46=118 тактов; при 3600 МГц = 65,55 нс
Получается, что если мы будем постоянно что-то переписывать, вариант с частотой 3200 МГц даеж чуть-чуть быстрее, так как у модели с частотой 3600 МГц тратится больше тактов на tRP и tRCD.
"Очевидные" параметры при выборе оперативной памяти
Не стану в деталях расписывать, но есть стандарты DDR2 и DDR3, которые уже морально устарели и покупать их для новых сборок в большинстве случаев нецелесообразно, есть DDR4 и DDR5. Все они отличаются скоростными характеристиками и типом разъёма. Про DDR5 обязательно поговорим в отдельной статье, до которой у меня всё никак не дойдут руки, а чтобы не пропустить свежий выпуск - не забудьте подписаться на канал.
Объём оперативной памяти - также вполне себе простой параметр, чем больше ОЗУ - тем большим объёмом данных может оперировать процессор (если это Вам реально требуется).
Также существуют DIMM и SO-DIMM модули, отличающиеся форм-фактором. В обычных ПК и серверах, как правило устанавливаются DIMM, а SO-DIMM - прерогатива компактных решений и ноутбуков:
Про путаницу с реальной и "эффективной" частотой ОЗУ
DDR расшифровывается как Double Data Rate, что означает удвоенную передачу данных за один такт. Это обеспечивается за счёт передачи данных не только по восходящему фронту тактового сигнала, но и по нисходящему:
Обратите внимание, по стандарту DDR мы смогли передать одни и те же данные в два раза быстрее, чем по стандарту SDR (single data rate), хотя частота тактового сигнала не изменилась.
Таким образом, имея частоту шины 1600 МГц, данные могут передаваться с удвоенной скоростью, словно частота составляет 3200 МГц. Именно поэтому многие программы для анализа железа, из которого собран ПК, могут показывать "заниженную" в два раза частоту, которая на самом деле и является реальной.
Двухканальный режим работы - важная составляющая для высокой производительности
Последним пунктом, о котором поговорим в этой статье - двухканальный режим работы оперативной памяти. На самом деле, это не столько относится к самой ОЗУ, сколько к процессору. Смотрите сами:
Контроллер памяти (который, как правило, встроен в процессор) может поддерживать двухканальный режим работы. В таком режиме увеличивается общая пропускная способность ОЗУ в два раза, так как процессор имеет доступ к двух независимым друг от друга шинам данных.
Чтобы добиться наибольшей производительности при использовании двухканального режима, необходимо чтобы оба модуля ОЗУ были с идентичными параметрами. В противном случае, вся сборка будет работать с характеристиками наихудшей "планки" оперативной памяти.
Чтобы не переживать, рекомендуется приобретать готовый комплект ОЗУ, в состав которого уже входит два идентичных модуля. И да, не стоит забывать о правильной установке двух планок оперативной памяти в материнскую плату:
В большинстве "бытовых" ПК отсутствует четырёхканальный режим ОЗУ, хотя в процессорах для серверов и рабочих станций это не редкость. Спросите, а зачем же 4 слота? Да просто чтобы можно было установить побольше ОЗУ, если того требует ситуация. Но важно заметить, что производительность это никак не повышает. Более подробно мы ещё поговорим в будущей статье, посвящённой выбору материнских плат.
Заключение
Чем выше частота оперативной памяти и чем ниже тайминги - тем выше производительность ОЗУ. При выборе оперативной памяти рекомендую пользоваться калькулятором.
В то же время, с повышением частоты возрастает вероятность возникновения ошибок в памяти, что может привести как к битым данным, так и краху всей системы. Для игровых компьютеров, в целях достижении наивысшей производительности, имеет смысл гнаться с предельными частотами. Для решения рабочих вопросов, когда в приоритете отказоустойчивость и надёжность - предпочтение имеет смысл отдавать более низкочастотным моделям.
Двухканальный режим работы позволяет повысить общую производительность всей ОЗУ в два раза, но для этого требуется правильно установить планки в материнскую плату. Кроме того, вся система заработает с параметрами наихудшей памяти: если установить модуль на 3600 МГц в пару с модулем на 2133 МГц, обе планки будут работать с частотой 2133 МГц.
И главное - не надо устанавливать модули с разным объёмом памяти бездумно. Для исключения каких-либо вопросов, я бы рекомендовал устанавливать оперативную память попарно и одинакового объёма.
На этом всё. В ближайшее время выйдет статья, посвящённая оперативной памяти DDR5 и контролю чётности, который предусмотрен этим стандартом. Там мы ещё разок вернёмся к скорости передачи данных и возникновению ошибок в памяти.
Если у Вас возникнут какие-либо вопросы, либо Вы заметили неточность в статье - обязательно пишите об этом в комментариях! До новых встреч!)