Что такое cl16 в оперативной памяти
Значения латентности в оперативной памяти и какие из них лучше?
Всем привет дорогие гости блога! В сегодняшней публикации давайте разберем, какая латентность оперативной памяти лучше и на что влияет этот параметр. Разбирать сам термин и как именно работает ОЗУ здесь мы не будем – все это можно найти в одном из предыдущих постов.
На что влияет латентность
Логично предположить, что раз латентность – это задержка, то и чем она меньше, тем шустрее будет работать компьютер и тем меньше будет простаивать процессор между тактами, необходимыми модулю памяти на подготовку к следующему циклу перезаписи.
Это актуально, в случае домашнего ПК – игровой станции или медиацентра. В случае с сервером, важна, в первую очередь, стабильность работы. В таких случаях часто жертвуют быстродействием в угоду надежности, поэтому монтируют оперативку с таймингами побольше.
Какое значение лучше
Величина таймингов напрямую зависит от частоты оперативной памяти – чем она выше, тем больше будут задержки в работе.
Например, в оперативке DDR4 тактовая частота выше, чем в DDR3, соответственно больше тайминги.
Однако при этом выше еще и пропускная способность и некоторые другие важные параметры, поэтому предпочтительнее все таки формат ДДР4. Сравнивать следует планки одного поколения, если возникла идея выжать из собираемого компьютера максимум возможностей. Таким образом, однозначно можно утверждать:
Что нужно учитывать при выборе латентности
Однако не все так однозначно, так как при сборке нового компа часто все упирается в бюджет. Да, за красивые и эффективные циферки приходится переплачивать, причем иногда существенно: например, разница у модулей памяти с cl9 и cl11 может достигать несколько десятков долларов.
Также не следует забывать, что для большей производительности лучше брать не одну планку памяти большого объема, а две поменьше, чтобы запустить их в двухканальном режиме.
Такое техническое решение оправдано с точки зрения увеличения производительности оперативки, приблизительно на 25%. Покупать следует модули памяти с абсолютно идентичными или очень близкими показателями латентности, иначе двухканальный режим попросту не активируется.
Учитывайте это и при апгрейде компа, выбирая дополнительную планку оперативки. О том, что такое латентность, можно почитать здесь.
На что влияет латентность в играх
Как вы, вероятно, помните из моих постов на эту тему, оперативка хранит промежуточные данные приложений, в том числе игр. В случае с играми это отрендеренные видеокартой 3D объекты – персонажи и окружающая обстановка, а также данные об их состоянии.В теории, чем меньше латентность, тем ниже вероятность лагов и фризов, в том числе микроскопических, проявляющихся в падении ФПС на несколько пунктов – например, при резком повороте камеры или одновременном скоплении большого количества персонажей на небольшом участке.
На практике же многое зависит от разработчиков, а точнее от того, насколько удачно они оптимизировали игру.
В качестве каноничного примера сольной игры могу привести неплохую во всех отношениях РПГ Kingdom Come: Deliverance. В ней разработчики что-то намудрили с использованием оперативной памяти, поэтому она используется не вся. Как следствие – резкие просадки ФПС в самые неожиданные моменты даже на мощном компе.
В качестве примера многопользовательской игры, на ум сразу же приходит Albion Online – игра, скажем так, с не самой передовой графикой, которую зато можно запустить на слабом ПК.
Особенность проекта в том, что здесь отсутствуют инстансы в принципе – все игроки играют на единственном сервере и единственном канале, поэтому в крупных городах в прайм-тайм из-за колоссального количества персонажей, большинство которых гоняет туда-сюда, можно наблюдать настоящее слайд-шоу: ФПС проседает так, что иногда и поторговать невозможно.
В этом случае от латентности оперативки уже ничего не зависит: она попросту захлебывается под таким потоком изменяющихся данных.
Также советую ознакомиться с публикациями «На что влияет частота оперативной памяти» и «Что такое Яндекс Маркет и как им пользоваться». Буду признателен всем, кто поделится этим постом в социальных сетях. До завтра!
Тайминги
Введение
Модули памяти DDR и DDR2 классифицируются по максимальной частоте, на которой они могут работать. Но, помимо частоты, есть и другие параметры, определяющие производительность памяти – это тайминги. Тайминги – это числа, такие как 2-3-2-6-T1, 3-4-4-8 или 2-2-2-5, чем меньше числа, тем лучше. Давайте разберемся, что обозначает каждая цифра этих чисел.
Модули памяти DDR и DDR2 маркируются по классификации DDRxxx/PCyyyy.
Второе число – yyyy – указывает максимальную скорость передачи данных в МБ/с.
Максимальная скорость передачи данных у модулей DDR400 равна 3200 МБ/с, следовательно, их маркируют PC3200. Модули DDR2-667 передают данные со скоростью 5336 МБ/с, и их маркируют как PC2-5400. Как видите, после “DDR” или «PC» мы ставим цифру «2», чтобы указать, что речь идет о памяти DDR2, а не DDR.
Первая классификация – DDRxxx – является стандартной для классификации чипов памяти, вторая – PCyyyy – для модулей памяти. На рисунке 1 представлен модуль памяти PC2-4200 компании Corsair, который сделан на чипах DDR2-533.
Модуль памяти DDR2-533/PC2-4200
Максимальную рабочую частоту модуля памяти можно рассчитать по следующей формуле:
максимальная теоретическая скорость передачи данных = тактовая частота x число битов / 8
Так как DIMM модули передают одновременно 64 бита, то “число битов” будет 64. Так как 64 / 8 равно 8, то эту формулу можно упростить:
максимальная теоретическая скорость передачи данных = тактовая частота x 8
Если модуль памяти установлен в компьютере, шина памяти которого работает на более низкой тактовой частоте, то максимальная скорость передачи данных у этого модуля памяти будет ниже его максимальной теоретической скорости передачи данных. На практике непонимание этого факта встречается довольно часто.
Например, Вы купили 2 модуля памяти DDR500/PC4000. Даже при том, что они маркированы как DDR500, в вашей системе они не будут автоматически работать на частоте 500 МГц. Это максимальная тактовая частота, которую они поддерживают, но она не всегда совпадает с той тактовой частотой, на которой они будут работать. Если Вы установите их в обычный персональный компьютер, поддерживающий модули DDR, то эти модули памяти будут работать на частоте 400 МГц (DDR400) – максимальной частоте стандарта DDR. При этом максимальная скорость передачи данных будет равна 3200 МБ/с (или 6400 МБ/с, если модули памяти работают в двухканальном режиме). Таким образом, модули не будут автоматически работать на частоте 500 МГц, и не достигнут скорости передачи данных в 4000 МБ/с.
Зачем же, в таком случае, такие модули покупают? Для разгона. Так как изготовитель гарантирует, что эти модули могут работать на частотах до 500 МГц, Вы знаете, что можно поднять частоту шины памяти до 250 МГц, и таким образом увеличить быстродействие компьютера. Но это можно будет сделать при условии, что материнская плата компьютера поддерживает такой разгон. Поэтому, если Вы не хотите «разгонять» свой компьютер, то бесполезно покупать модули памяти с маркировкой по тактовой частоте выше, чем обычная частота шины памяти материнской платы.
Для среднего пользователя этой информации о модулях памяти DDR/DDR2 достаточно. Продвинутому же пользователю нужно знать ещё об одной характеристике: темповости работы памяти, или, как ещё называют совокупность временных параметров работы памяти – тайминги, задержки или латентность. Рассмотрим эти параметры модулей памяти подробнее.
Тайминги
Именно из-за разницы в таймингах, 2 модуля памяти, имеющие одну и ту же теоретическую максимальную скорость передачи данных, могут иметь разную пропускную способность. Почему так может быть, если оба модуля работают на одной и той же частоте?
Для выполнения каждой операции чипу памяти нужно вполне определенное время – тайминги как раз и определяют это время, выраженное в количестве циклов тактовой частоты шины памяти. Приведем пример. Рассмотрим самый известный параметр, который называют CAS Latency (или CL, или «время доступа»), который указывает, через сколько тактовых циклов модуль памяти выдает запрошенные центральным процессором данные. Модуль памяти с CL 4 запоздает с ответом на 4 тактовых цикла, тогда как модуль памяти с CL 3 запаздывает на 3 тактовых цикла. Хотя оба модуля могут работать на одной и той же тактовой частоте, второй модуль будет работать быстрее, поскольку он будет выдавать данные быстрее, чем первый. Эта проблема известна под названием «время ожидания».
Тайминги памяти обозначаются рядом чисел, например, так: 2-3-2-6-T1, 3-4-4-8 или 2-2-2-5. Каждое из этих чисел указывают, за сколько тактовых циклов память выполняет определенную операцию. Чем меньше эти числа, тем быстрее память.
DDR2 модуль памяти с таймингами 5-5-5-15
Числа таймингов указывают параметры следующих операций: CL-tRCD-tRP-tRAS-CMD. Чтобы было понятнее, представьте себе, что память организована в виде двумерной матрицы, где данные хранятся на пересечении строк и столбцов.
CL: CAS Latency – время, проходящее с момента посыла команды в память до начала ответа на этот запрос. То есть это время, которое проходит между запросом процессора некоторых данных из памяти и моментом выдачи этих данных памятью.
tRCD: задержка от RAS до CAS – время, которое должно пройти с момента обращения к строке матрицы (RAS), до момента обращения к столбцу матрицы (CAS), в которых хранятся нужные данные.
tRP: RAS Precharge – интервал времени с момента закрытия доступа к одной строке матрицы и началом доступа к другой строке данных.
tRAS – пауза, которая нужна памяти, чтобы вернуться в состояние ожидания следующего запроса.
CMD: Скорость поступления команды (Command Rate) – время с момента активации чипа памяти до момента, когда можно будет обратиться к памяти с первой командой. Иногда этот параметр не указывается. Обычно это T1 (1 тактовый цикл) или T2 (2 тактовых цикла).
Обычно у пользователя есть 2 возможности. При конфигурации компьютера использовать стандартные тайминги памяти. В большинстве случаев для этого при настройке материнской платы в пункте конфигурации памяти нужно выбрать параметр «авто». Можно также вручную сконфигурировать компьютер, выбрав более низкие тайминги, что может увеличить производительность системы. Нужно заметить, что не все материнские платы позволяют изменять тайминги памяти. Кроме того, некоторые материнские платы могут не поддерживать очень низкие тайминги, из-за чего они могут сконфигурировать ваш модуль памяти так, что он будет работать с более высокими таймингами.
Конфигурирование таймингов памяти в настройках материнской платы
При разгоне памяти может случиться так, что для того, чтобы система работала устойчиво, вам, возможно, придется в настройках увеличить тайминги работы памяти. Вот здесь-то и могут быть очень интересные ситуации. Даже при том, что частота памяти будет поднята, из-за увеличения задержек в работе памяти её пропускная способность может уменьшиться.
В этом ещё одно преимущество скоростных модулей памяти, ориентированных на разгон. Помимо гарантии работы модуля памяти на маркированной тактовой частоте, изготовитель также гарантирует, что при этом Вы сможете сохранить паспортные тайминги модуля.
Возвращаясь к примеру с модулем памяти DDR500/PC4000 – даже при том, что с модулями DDR400/PC3200 Вы сможете достичь частоты в 500 МГц (250 МГц x2), для них, возможно, придется увеличить тайминги, в то время как для модулей DDR500/PC4000 изготовитель гарантирует, что Вы сможете достичь 500 МГц, сохранив указанные в маркировке тайминги.
Далее – рассмотрим в деталях все параметры, из которых состоят тайминги.
CAS Latency (CL)
Как уже упоминалось выше, CAS Latency (CL) является очень важным параметром памяти. Он указывает, сколько тактовых циклов нужно памяти для выдачи запрашиваемых данных. Память с CL = 3 задержится с ответом на 3 тактовых цикла, а память с CL = 5 сделает то же самое только через 5 тактовых циклов. Таким образом, из двух модулей памяти, работающих на одной и той же тактовой частоте, тот модуль, у которого CL меньше, будет быстрее.
Обратите внимание, что здесь под тактовой частотой имеется в виду реальная тактовая частота, на которой работает модуль памяти – то есть половина указываемой частоты. Так как память DDR и DDR2 за один тактовый цикл может выдавать данные 2 раза, то для них указывается двойная реальная тактовая частота.
На рисунке 4 показан пример работы CL. На нем приведены 2 примера: для модуля памяти с CL = 3 и модуля памяти с CL = 5. Синим цветом обозначена команда «читать».
Память с CL = 3 обеспечивает 40% преимущество по времени ожидания по сравнению с памятью с CL = 5, считая, что они обе работают на одной тактовой частоте.
Можно даже вычислить время задержки, после которого память начнет выдавать данные. Период каждого тактового цикла можно легко вычислить по следующей формуле:
Таким образом, период одного тактового цикла памяти DDR2-533, работающей на частоте 533 МГц (частота шины – 266,66 МГц) равен 3,75 нс (нс = наносекунда; 1 нс = 0,000000001 с). Имейте в виду, что при расчетах нужно использовать реальную тактовую частоту, которая равна половине номинальной частоты. Таким образом, память DDR2-533 задержит выдачу данных на 18,75 нс, если CL =5, и на 11,25 нс, если CL =3.
Память SDRAM, DDR и DDR2 поддерживает пакетный режим выдачи данных, когда задержка перед выдачей следующей порции данных составляет всего один тактовый цикл, если эти данные располагаются по адресу, следующему за текущим адресом. Поэтому, в то время как первые данные выдаются с задержкой на CL тактовых циклов, следующие данные будут выдаваться сразу же за первыми, не задерживаясь ещё на CL циклов.
Задержка от RAS до CAS (RAS to CAS Delay [tRCD])
Каждый чип памяти внутренне организован как двумерная матрица. В каждом пересечении строк и столбцов имеется маленький конденсатор, который отвечает за сохранение “0” или “1” – единиц информации, или данных. Процедура доступа к хранящимся в памяти данным состоит в следующем: сначала активируется строка с нужными данными, затем столбец. Эта активация происходит по двум контрольным сигналам – RAS (Row Address Strobe) и CAS (Column Address Strobe). Чем меньше временной интервал между этими двумя сигналами, тем лучше, поскольку данные будут считываться быстрее. Это время называется задержкой от RAS до CAS (RAS to CAS Delay [tRCD]). Это иллюстрирует рисунок 5 – в данном случае для памяти с tRCD = 3.
RAS to CAS Delay (tRCD)
Как видите, задержка от RAS до CAS является также числом тактовых циклов, проходящих с момента прихода команды “Active” (активировать) до команды «чтение» или «запись».
Как и в случае с CAS Latency, RAS to CAS Delay имеет дело с реальной тактовой частотой (которая равна половине маркировочной частоты), и чем меньше этот параметр, тем быстрее работает память, так как в этом случае чтение или запись данных начинается быстрее.
RAS Precharge (tRP)
После получения данных из памяти, нужно послать в память команду Precharge, чтобы закрыть строку памяти, из которой считывались данные, и разрешить активацию другой строки. RAS Precharge time (tRP) – временной интервал между командой Precharge и моментом, когда память сможет принять следующую команду активации – Active. Как мы узнали в предыдущем разделе, команда “active” запускает цикл чтения или записи.
На рисунке 6 приведен пример для памяти с tRCD = 3.
Как и в случае с другими параметрами, RAS Precharge имеет дело с реальной тактовой частотой (которая равна половине маркировочной частоты), и чем меньше этот параметр, тем быстрее работает память, так как в этом случае команда “active” поступает быстрее.
Суммируя рассмотренное выше, получаем, что время, которое проходит с момента выдачи команды Precharge (закрыть строку и …) до фактического получения данных процессором равно tRP + tRCD + CL.
Другие параметры
Рассмотрим 2 других параметра – Active to Precharge Delay (tRAS) и Command Rate (CMD). Как и в случае с другими параметрами, эти 2 параметра имеют дело с реальной тактовой частотой (которая равна половине маркировочной частоты), и чем меньше эти параметры, тем быстрее память.
Active to Precharge Delay (tRAS): если в память поступила команда “Active”, то следующая команда “Precharge” не будет восприниматься памятью, пока не пройдет время равное tRAS. Таким образом, этот параметр определяет временной предел, после которого память может начать считывать (или записывать) данные из другой строки.
Command Rate (CMD) – отрезок времени с момента активации чипа памяти (прихода сигнала на вывод CS – Chip Select [выбор чипа]) до того как чип сможет принять какую-нибудь команду. Этот параметр обозначается буквой “T” и может принимать значения 1Т или 2T – 1 тактовый цикл или 2 тактовых цикла, соответственно.
Про тайминги популярно
Про тайминги популярно.
Статья рассказывает о таймингах и их применении, и призвана детально объяснить значение этого термина.
В форумах, да и в статьях, посвященных обзорам компьютерных комплектующих с собственной оперативной памятью, нередко видишь упоминания про тайминги. Их огромное количество. Поначалу у новичка даже глаза разбегаются. А опытный человек часто просто оперирует понятиями, иногда совершенно не догадываясь, что они означают. В данной статье я постараюсь восполнить этот пробел.
Про тайминги популярно.
Статья рассказывает о таймингах и их применении, и призвана детально объяснить значение этого термина.
В форумах, да и в статьях, посвященных обзорам компьютерных комплектующих с собственной оперативной памятью, нередко видишь упоминания про тайминги. Их огромное количество. Поначалу у новичка даже глаза разбегаются. А опытный человек часто просто оперирует понятиями, иногда совершенно не догадываясь, что они означают. В данной статье я постараюсь восполнить этот пробел.
Итак, алгоритм считывания данных из памяти таков:
1)выбранный банк активируется подачей сигнала RAS;
2)данные из выбранной строки передаются в усилитель, причем на передачу данных необходима задержка (она называется RAS-to-CAS);
3)подается сигнал CAS для выбора слова из этой строки;
4)данные передаются на шину (откуда идут в контроллер памяти), при этом также происходит задержка (CAS Latency);
5)следующее слово идет уже без задержки, так как оно содержится в подготовленной строке;
6)после завершения обращения к строке происходит закрытие банка, данные возвращаются в ячейки и банк перезаряжается (задержка называется RAS Precharge).
Как видите, для совершения некоторых операций системе нужны задержки, иначе она не успеет считать выбранные данные или, например, перезарядить банк. Эти задержки и называются таймингами.
Заглянув в BIOS
Для оперативной памяти существует громадное количество задержек. Достаточно заглянуть в любое описание памяти. Но основные можно увидеть в диагностической утилите CPU-Z или в BIOS. Познакомимся поподробнее с каждым из них. Для разгона, конечно, нужно уменьшить время задержек, поэтому чем их значения меньше, тем быстрее работает система. Впрочем, о разгоне поговорим позже. В разных источниках названия могут меняться, поэтому надо смотреть на краткое обозначение.
Возьмем, для примера, скриншот из программы CPU-Z.
RAS# to CAS# Delay (Trcd)
Число тактов, необходимых для поступления данных в усилитель. (п.2 алгоритма) Другими словами, это временной интервал между командами RAS и CAS, поскольку архитектура SDRAM не позволяет подавать их одновременно.
RAS# Precharge (TRP)
Время, необходимое на перезарядку ячеек памяти после закрытия банка (п.6)
Row Active Time (TRAS)
Время, в течение которого банк остается открытым и не требует перезарядки. Изменяется вместе со следующим параметром.
Это основные тайминги, которые позволяет выставить большинство материнских плат. Однако поясню и другие.
DRAM Idle Timer
Время простаивания открытой страницы для чтения из нее данных.
Row to Column (Read/Write) (Trcd, TrcdWr, TrcdRd)
Данный параметр связан с параметром RAS-to-CAS (Trcd) и является как бы его уточнением, поскольку вычисляется по формуле Trcd(Wr/Rd) = RAS-to-CAS delay + rd/wr command delay. Второе слагаемое определяет задержку на выполнение записи/чтения. Но эта величина нерегулируемая, и изменить её нельзя. Поэтому её часто именуют просто RAS-to-CAS Delay.
Перечисленные параметры могут показаться нагромождением букв и цифр, но я уверяю, если вы заглянете хотя бы в один даташит (ближе к его концу), то быстро во всем разберетесь.
Тайминги видеокарт
В начале статьи я не зря упоминал про устройства с собственной оперативной памятью. Таковым явяется и видеокарта. И у этой памяти тоже есть тайминги достаточно заглянуть в раздел Timings популярной программы ATI Tray Tools.
Здесь возможностей для их изменения гораздо больше. Однако при заглядывании в даташит мы можем серьёзно озадачиться:
Здесь приведены ключевые, по мнению разработчиков памяти, параметры.
Поначалу кажется, что разработчики программы так не думают. Например, в ней нет тайминга tDAL, и ни в одном даташите нет таймингов tW2R, tR2R. Здесь я постараюсь объяснить значения таймингов для твикера и для даташита. Тайминги могут повторяться с приведенными выше. Их обозначения могут дополняться. Итак, начнем.
Write Latency (tWL)
Количество тактов, необходимое для произведения операции записи в память.
CAS Latency (tCL)
Задержка данных перед выдачей на шину. Подробнее см. выше. на пункт CAS Latency оперативной памяти.
CMD Latency
Задержка между подачей команды на память и ее приемом.
Strobe Latency
Задержка при посылке строб-импульса (селекторного импульса).
Activate to Read/Write, RAS to CAS Read/Write Delay, RAW Address to Column Address for Read/Write (tRCDRd/tRCDWr)
Повторюсь здесь еще раз. Для видеокарт это объяснение справедливей.
Данный параметр связан с параметром RAS-to-CAS (Trcd) и является как бы его уточнением, поскольку вычисляется по формуле Trcd(Wr/Rd) = RAS-to-CAS delay + rd/wr command delay. Второе слагаемое определяет задержку на выполнение записи/чтения. Но эта величина нерегулируемая, и изменить её нельзя. Поэтому её часто именуют просто RAS-to-CAS Delay.
Row Precharge Time, Precharge to Activate, RAS# Precharge (tRP)
Время перезарядки ячеек после закрытия банка.
Activate to Precharge, Row Active Time (tRAS)
Время, в течение которого банк остается открытым и не требует перезарядки.
Activate to Activate, Row Active to Row Active (tRRD)
Задержка между активациями различных рядов
Auto Precharge Write Recovery + Precharge Time (tDAL)
Загадочный даташитный тайминг tDAL вызывал в формуах много споров, что он обозначает, однако в одном из документов JEDEC черным по белому написано следующее:
Write to Read Turnaround Time for Same Bank (tW2RSame Bank)
Аналогичная предыдущей процедура, отличающаяся от нее только тем, что действие происходит в том же банке. Особенность задержки в том, что процедура записи, естественно, не может быть больше промежутка до перезарядки банка (tWR), то есть заканчиваться во время перезарядки.
Read to Read Turnaround Time (tR2R)
Задержка при прерывании операции чтения операцией чтения из другого банка.
Row Cycle Time, Activate to Activate/Refresh Time, Active to Active/Auto Refresh Time (tRC)
Время для автоматической подзарядки. Встречается в даташитах.
Auto Refresh Row Cycle Time, Refresh to Activate/Refresh Command Period, Refresh Cycle Time, Refresh to Active/Refresh Comand Period (tRFC)
Минимальный промежуток между командой на подзарядку (Refresh) и либо следующей командой на подзарядку, либо командой на активацию.
Memory Refresh Rate
Частота обновления памяти.
Практика
Итак, мы рассмотрели основные тайминги, которые могут чаще всего встретиться нам в программах или даташитах. Теперь, для полной картины, я расскажу, чем полезны тайминги в разгоне.
Я же решил исследовать влияние таймингов на своей системе.
Итак, вот она:
Процессор | Intel Celeron 1100A Tualatin 1100@1580 |
Материнская плата | JetWay i815-EPDA |
Память | 512Mb (2×256) PC133 NCP (FSB:DRAM=1:1) |
Видеокарта | GeCube RadeOn 9550 Ultra (400/400) |
Блок питания | Power Master 250W FA-5-2 |
Жесткий диск | WD W800JB 80Gb 8Mb cache |
Операционная система | Windows XP SP2 |
Система была оставлена «как есть». Видеокарта также не разгонялась. Испытания проводились в двух тестовых пакетах и в одной игре:
- 3DMark 2001 patch 360, так как оценивает разгон каждого элемента системы, а не только видеокарты
«Оверклокерская» для своего времени память NCP и сей раз не дала промаху и позволила запуститься на частоте 143МГц с таймингами 2-2-2-7! Но поменять последний параметр (Tras) память не дает ни по какому поводу, только с уменьшением частоты. Впрочем, это не самый важный параметр.
Как видите, понижение таймингов дает прирост производительности около 10%. И если на моей системе это не так заметно, то на более мощной различие уже становится очевидным. А если поменять еще тайминги на видеокарте, где разгон часто упирается не в память, а как раз в задержки, то труд будет более чем оправдан. А что именно меняете, теперь вы уже знаете.