: что такое тайминги?
Наиболее точное определение таймингов (в т.ч. подтаймингов) — вот то о чем пойдёт речь в статье. Большинство статей в сети обладают ошибками и неточностями. Есть очень достойные материалы – статья Enot
«Немного о работе DDR SDRAM и параметре Tras»
. Единственный её минус – рассмотрены не все тайминги.
Для того чтобы начать изучение вопросов, посвящённых таймингам, следует узнать, как же, собственно, работает оперативная память. Ознакомиться с принципом я предлагаю в вышеупомянутой статье Enot. Выясним, что структура памяти напоминает таблицу, где сначала выбирают строку, а затем столбец; и что таблица эта разбита на банки, для памяти плотностью меньше 64Мбит (SDRAM) количеством 2 штуки, выше – 4 (стандартно). Спецификация память DDR2 SDRAM с чипами плотностью 1Гбит предусматривает уже 8 банков.
Также стоит упомянуть, что на открытие строки в используемом банке уходит больше времени, нежели в другом (т.к. используемую строку нужно сначала закрыть). Очевидно, что лучше новую строку открывать в новом банке (на этом основан принцип чередования строк).
Обычно на памяти (или в спецификации к ней) есть надпись вида 3-4-4-8 или 5-5-5-15. Это сокращённая запись (так называемая схема таймингов) основных таймингов памяти. Что же такое тайминги? Очевидно, что ни одно устройство не может работать с бесконечной скоростью. Значит, на выполнение любой операции уходит какое-либо время. Тайминги это задержка, устанавливающая время, необходимое на выполнение какой-либо команды, то есть время от отправки команды до её выполнения. А каждая цифра обозначает, какое именно время необходимо.
Теперь разберём каждый по очереди. Схема таймингов включает в себя задержки CL-Trcd-Trp-Tras соответственно.
Если вы внимательно читали статью, то узнали, что для работы с памятью необходимо для начала выбрать чип, с которым мы будем работать. Делается это командой CS# (Chip Select). Затем выбирается банк и строка. Перед началом работы с любой строкой необходимо её активировать. Делается это командой выбора строки RAS# (при выборе строки она активируется). Затем (при операции линейного чтения) нужно выбрать столбец командой CAS# (эта же команда инициирует чтение). Затем считать данные и закрыть строку, совершив предварительный заряд (precharge) банка.
Тайминги расположены по порядку следования в простейшем запросе (для простоты понимания). Сначала идут тайминги, затем подтайминги.

Trcd, RAS to CAS delay
– время, необходимое для активизации строки банка, или минимальное время между подачей сигнала на выбор строки (RAS#) и сигнала на выбор столбца (CAS#).
CL, Cas Latency – минимальное время между подачей команды на чтение (CAS) и началом передачи данных (задержка чтения).
Tras, Active to Precharge – минимальное время активности строки, то есть минимальное время между активацией строки (её открытием) и подачей команды на предзаряд (начало закрытия строки). Строка не может быть закрыта раньше этого времени.
Trp, Row Precharge – время, необходимое для предварительного заряда банка (precharge). Иными словами, минимальное время закрытия строки, после чего можно активировать новую строку банка.
CR, Command Rate 1/2T – Время, необходимое для декодирования контроллером команд и адресов. Иначе, минимальное время между подачей двух команд. При значении 1T команда распознаётся 1 такт, при 2T – 2 такта, 3T – 3 такта (пока только на RD600).
Это всё основные тайминги. Остальные тайминги имеют меньшее влияние на производительность, а потому их называют подтаймингами.
Trc, Row Cycle Time, Activate to Activate/Refresh Time, Active to Active/Auto Refresh Time – минимальное время между активацией строк одного банка. Является комбинацией таймингов Tras Trp – минимального времени активности строки и времени её закрытия (после чего можно открывать новую).
Trfc, Row Refresh Cycle Time, Auto Refresh Row Cycle Time, Refresh to Activate/Refresh Command Period, – минимальное время между командой на обновление строки и командой активизации, либо другой командой обновления.
Trrd, ACTIVE bank A to ACTIVE bank B command, RAS to RAS Delay, Row Active to Row Active – минимальное время между активацией строк разных банков. Архитектурно открывать строку в другом банке можно сразу за открытием строки в первом банке. Ограничение же чисто электрическое – на активацию уходит много энергии, а потому при частых активациях строк очень высока электрическая нагрузка на цепи. Чтобы её снизить, была введена данная задержка. Используется для реализации функции чередования доступа к памяти (interleaving).

Tccd
, CAS to CAS Delay – минимальное время между двумя командами CAS#.

Twr
, Write Recovery, Write to Precharge – минимальное время между окончанием операции записи и подачей команды на предзаряд (Precharge) строки для одного банка.

Twtr
, Trd_wr, Write To Read – минимальное время между окончанием записи и подачей команды на чтение (CAS#) в одном ранке.
RTW, Read To Write, (Same) Rank Read To Write – минимальное время между окончанием операции чтения и подачей команды на запись, в одном ранке.

Same Rank Write To Write Delayed
– минимальное время между двумя командами на запись в одном ранке.
Different Rank Write to Write Delay – минимальное время между двумя командами на запись в разных ранках.
Twr_rd, Different Ranks Write To READ Delayed — минимальное время между окончанием записи и подачей команды на чтение (CAS#) в разных ранках.
Same Rank Read To Read Delayed – минимальная задержка между двумя командами на чтение в одном ранке.
Trd_rd, Different Ranks Read To Read Delayed — минимальная задержка между двумя командами на чтение в разных ранках.
Trtp, Read to Precharge – минимальный интервал между подачей команды на чтение до команды на предварительный заряд.
Precharge to Precharge – минимальное время между двумя командами предварительного заряда.
Tpall_rp, Precharge All to Active Delay – задержка между командой Precharge All и командой на активацию строки.
Same Rank PALL to REF Delayed – устанавливает минимальное время между командой Precharge All и Refresh в одном ранке.
Different Rank REF to REF Delayed – устанавливает минимальную задержку между двумя командами на обновление (refresh) в разных ранках.
Twcl, Write Latency – задержка между подачей команды на запись и сигналом DQS. Аналог CL, но для записи.
Tdal, цитата из JEDEC 79-2C, p.74: auto precharge write recovery precharge time (Twr Trp).
Trcd_rd/Trcd_wr, Activate to Read/Write, RAS to CAS Read/Write Delay, RAW Address to Column Address for Read/Write – сочетание двух таймингов – Trcd (RAS to CAS) и rd/wr command delay. Именно последним и объясняется существование разных Trcd – для записи и чтения (Nf2) и установки BIOS – Fast Ras to Cas.
Tck, Clock Cycle Time – период одного такта. Именно он и определяет частоту памяти. Считается она следующим образом: 1000/Tck=X Mhz (реальная частота).
CS, Chip Select – время, необходимое на выполнения команды, подаваемой сигналом CS# для выбора нужного чипа памяти.
Tac, DQ output access time from CK – время от фронта такта до выдачи данных модулем.
Address and Command Setup Time Before Clock, время, на которое передача установок адресов команд будет предшествовать восходящему фронту такта.
Address and Command Hold Time After Clock, время, на которое будут “заперты” установки адреса и команд после нисходящего фронта такта.
Data Input Setup Time Before Clock, Data Input Hold Time After Clock, то же, что и вышеуказанные, но для данных.
Tck max, SDRAM Device Maximum Cycle Time – максимальный период цикла устройства.
Tdqsq max, DDR SDRAM Device DQS-DQ Skew for DQS and associated DQ signals – максимальный сдвиг между стробом DQS и связанными с ним сигналами данных.
Tqhs, DDR SDRAM Device Read Data Hold Skew Factor – максимальный сдвиг “запирания” считанных данных.
Tch, Tcl, CK high/low pulse width – длительность высокого/низкого уровня тактовой частоты CK.
Thp, CK half pulse width – длительность полупериода тактовой частоты CK.
Max Async Latency – максимальное время асинхронной задержки. Параметр управляет длительностью асинхронной задержки, зависящей от времени, необходимого для передачи сигнала от контроллера памяти до самого дальнего модуля памяти и обратно. Опция существует в процессорах фирмы AMD (AthlonOpteron).
DRAM Read Latch Delay – задержка, устанавливающая время, необходимое для “запирания” (однозначного распознавания) конкретного устройства. Актуально при повышении нагрузки (числа устройств) на контроллер памяти.
Trpre, Read preamble – время, в течение которого контроллер памяти откладывает активацию приёма данных перед чтением, во избежание повреждения данных.
Trpst, Twpre, Twpst, Write preamble, read postamble, write postamble – то же для записи и после приёма данных.
Readwrite Queue Bypass – определяет число раз, которое самый ранний запрос в очереди может быть обойден контроллером памяти, прежде чем быть выполненным.
Bypass Max – определяет, сколько раз самая ранняя запись в DCQ может быть обойдена, прежде чем выбор арбитра будет аннулирован. При установке в 0 выбор арбитра всегда учитывается.
SDRAM MA Wait State, Read Wait State установка 0—2-тактного опережения адресной информации перед подачей сигнала CS#.
Turn-Around Insertion – задержка между циклами. Добавляет задержку в такт между двумя последовательными операциями чтения/записи.
DRAM R/W Leadoff Timing, rd/wr command delay – задержка перед выполнением команды чтения/записи. Обычно составляет 8/7 или 7/5 тактов соответственно. Время от подачи команды до активации банка.
Speculative Leadoff, SDRAM Speculative Read. Обычно в память поступает сначала адрес, затем команда на чтение. Поскольку на расшифровку адреса уходит относительно много времени, можно применить упреждающий старт, подав адрес и команду подряд, без задержки, что повысит эффективность использования шины и снизит простои.
Twtr Same Bank, Write to Read Turnaround Time for Same Bank – время между прекращением операции записи и подачей команды на чтение в одном банке.
Tfaw, Four Active Windows – минимальное время активности четырех окон (активных строк). Применяется в восьмибанковых устройствах.
Варианты установки памяти
Первый шаг к стабильной и быстрой памяти — ее правильная установка. Просто старайтесь держать в уме следующие факты.
Установка одной, двух, трех или четырех планок — что лучше?
Для оптимального быстродействия ставить лучше четное количество планок памяти. Следующий график показывает, как меняется производительность в зависимости от количества установленных модулей. Дополнительно в него были добавлены два значения: комбинация из 4 ГБ и 8 ГБ модулей на частоте 1333 и 1600 МГц. Command Rate установлен на единицу.
Какой вывод можно сделать? Одна планка памяти выдает худшую производительность, так как отсутствует двухканальный режим. Две планки дают стандартную производительность. Три планки хуже, чем две, потому что контроллеру приходится работать одновременно с двухканальным и одноканальным режимами, а ваша система не может знать наверняка, когда какой требуется.
Четыре планки выдают чуть большую производительность (всего на 1-2 %), чем две, но не за счет увеличенной емкости, а за счет количества модулей, так как у контроллера в распоряжении появляется больше банков памяти, к которым можно обратиться (аналогично ранговости).
Как правильно установить две планки памяти, если у материнской платы четыре слота?
Если у вас четыре или более слотов под ОЗУ на материнской плате, тогда знайте, что они разделены на пары и обычно окрашены в разные цвета. Например, первая пара черная, а вторая красная. Распространенная ошибка, когда две планки ставят рядом в разные пары.
Это приводит к тому, что память будет работать в одноканальном режиме и выдавать вдвое меньшую скорость копирования, чем она могла бы быть. По этой же причине, когда ограничен бюджет, рекомендуют купить две планки по 4 ГБ, а не одну на 8 ГБ. Проверить, какой режим работы используется у вас в данный момент, можно с помощью программы CPU-Z.
Существуют также гибридные материнские платы, которые имеют слоты как DDR3, так и DDR4 (или DDR2 DDR3 на старых платах) одновременно. Память разных поколений вкупе использовать нельзя, компьютер просто не запустится.
Можно ли ставить память с разной частотой или разными таймингами вместе?
Оперативную память с разной частотой и разными таймингами можно использовать вкупе. В этом случае все модули заработают на параметрах более слабого. Обычно никаких конфликтов это не создает.
Можно ли ставить память c разной емкостью вместе?
Оперативную память разного объема тоже можно ставить вместе. В этом случае часть памяти работает в двухканальном режиме, а часть — в одноканальном. На практике это дает небольшой прирост производительности, но до полноценного двухканального режима немного не дотягивает.
Можно ли ставить память с разной ранговостью вместе?
Совмещать одноранговую и двухранговую памяти парой в двухканальный режим не рекомендуется, так как это может приводить к вылету системы. Опять же, все зависит от вашей материнской платы. А вот поставить две разные пары можно — если первая пара модулей будет двухранговой, а вторая — однораноговой, то все должно быть нормально. Более подробно об этом параметре смотрите в разделе характеристик.
Максимальный объем: сколько можно поставить?
» frameborder=»0″ allow=»accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture» allowfullscreen>https://www.youtube.com/watch?v=subscribe_widget
У каждой материнской платы есть свои ограничения: максимальный поддерживаемый объем памяти и допустимая емкость одного модуля. Необходимо смотреть спецификации:
Видим, что материнка имеет 4 слота и поддерживает до 32 ГБ памяти. Простым делением узнаем, что максимальный объем одного модуля равен 8 гигабайтам.
Если попытаться поставить 16-гигабайтный модуль в плату, которая поддерживает только 8-гигабайтный, то компьютер либо не запустится, либо увидит только часть памяти.
Характеристики памяти
Частота
Частота — это величина, показывающая, сколько операций может выполнить память за промежуток времени. Считается одной из главных характеристик наравне с таймингами. Чем она выше — тем лучше.
Следующие графики покажут, насколько сильно будет меняться производительность в зависимости от частоты. Тайминги при этом зафиксированы на отметке [11-13-13-35].
Тайминги
Тайминги памяти — это внутренние задержки, выраженные в тактах, то есть время, по прошествии которого происходят операции, чтения, записи, обработки информации, подачи напряжения и тд. Чем они меньше – тем лучше. В характеристиках обычно указывают только 3 или 4 тайминга, которые оказывают наибольше влияние на производительность, например 11-11-11-28 (Они же “CL”-“tRCD”-“tRP”-“tRAS”).
Помимо основных вышеуказанных таймингов, существует еще более 20, доступных для настройки в биосе. Их ручной разгон абсолютно бессмысленнен. Ради интереса, я решил попробовать выжать из них максимум, базируясь на XMP профиле. Большинство из них удалось снизить на 1-3 такта, что в сумме дало выигрыш… в 0,4 наносекунды. Стоило ли оно того? Определенно нет. Никакого влияния на приложения замечено не было.
В виде исключения выступают “tRFC“ (REF Cycle Time) и “tREFI” (Refresh Interval), разгоном лишь этих двух параметров можно выиграть до 4 наносекунд латентности. Причем первый нужно понижать, а второй наоборот – повышать.
Следующие графики покажут, насколько сильно будет меняться производительность при разных наборах основных таймингов. Частота при этом зафиксирована на отметке 1600 МГц.
Отдельно стоит поговорить о таком «мистическом», параметре как Command Rate. Он может принимать два значения: 1, 2. Несмотря на то, что его приписывают к основным таймингам памяти, к ней самой он отношения не имеет. Это лишь скорость контроллера, который управляет вашей памятью, время, необходимое на преобразование команд.
Как он влияет на стабильность системы — четкого ответа нет, все зависит от качества вашей материнской платы. В интернете часто пишут, что уменьшать этот параметр не рекомендуется, так как память теряет разгонный потенциал и становится нестабильной. Но лично в моей практике не попадался ни один ПК, который бы плохо работал от выставления Command Rate на 1. Более того, в случае тестовой конфигурации на разгонный потенциал это не повлияло ни на йоту.
Разница между CR1 и CR2 может составлять от 0 до 5 % производительности в зависимости от ряда факторов. А если говорить о латентности, то разница составляет 0.5-1.5 наносекунды.
Пропускная способность
Пропускная способность — это скорость работы памяти с данными. То есть объем информации, который память может обработать за секунду времени. Например, 30 гигабайт в секунду.
Вопрос: что лучше — 1 планка на 1600 МГц или 2 планки по 800 МГц? Казалось бы, ответ очевиден, в обоих случаях достигается одинаковая пропускная способность (12 ГБ/сек), но у памяти с частотой 800 МГц ниже тайминги, значит она должна победить. Однако внезапно происходит полный разрыв шаблона, так как одноканальная планка на 1600 МГц работает быстрее на 15 %. Почему же так?
А дело в том, что пропускная способность памяти и ее частота — это совершенно разные параметры. Повышение частоты увеличивает пропускную способность и уменьшает латентность, однако повышение лишь пропускной способности не сказывается на других параметрах.
Емкость. Сколько гигабайт памяти нужно?
На 2020 год актуальными будут только два варианта: 2 х 4 ГБ или 2 х 8 ГБ. Почему так?
Операционная система, будь то Windows 7 или Windows 10, потребляет от 1 до 3 ГБ памяти в зависимости от загруженности программами. При необходимости, ОС может освобождать память, скидывая данные в файл подкачки, ужимаясь всего в ~600 мегабайт. А большинство игр потребляют от 1 ГБ до 4 ГБ памяти без учета операционной системы.
Лично мной, помимо тестовых игр для графиков были также протестированы и следующие:
- Killing Floor 2
- Project Cars 2
- GTA 5
- Far Cry 5
- Shadow of the Tomb Raider
Все они без проблем заработали всего с 4 ГБ памяти в системе, несмотря на то, что у некоторых указано минимум 8 ГБ в системных требованиях. Единственное замеченное ухудшение по сравнению с 16 ГБ — более продолжительные загрузки, и в некоторых случаях фризы, когда память забита впритык.
Само собой, сборка с 8 ГБ памяти уже отыграет себя по полной, не заставляя ОС и игру выкручиваться под маленький объем. Тандем из 2 х 4 ГБ памяти и SSD накопителя будет отличным решением для среднебюджетного ПК. Ну, а 2 х 8 ГБ — идеально для мощного топового ПК без компромиссов.
Но почему не 32 ГБ и более? Потому что это не нужно, вот прямо совсем. Серьезно, лично я, какую бы мультизадачную ахинею ни творил на своем компьютере, ни разу не видел, чтобы было загружено более 12 ГБ оперативной памяти. Ну, разве что если ее специально забивать.
Что такое латентность?
Латентность — это некая величина в наносекундах, представляющая собой совокупность частоты и таймингов памяти, а также частоты процессора. Чем она меньше — тем лучше. Обычно именно на этот параметр ориентируются при разгоне и оптимизации памяти.
Если не гнаться за максимальной производительностью, то для игр вполне достаточно <=70 наносекунд латентности, чтобы связка процессор-память работала как надо.
Что такое ранговость?
Ранговость памяти (иногда еще называют «упаковка чипов») — это способ набора чипов на ее плате. То есть количество банков, к которым может обратиться контроллер памяти. Теоретически, чем их больше — тем лучше. Если у вашей памяти более 8 чипов, значит она двухранговая, а если меньше или равно — одноранговая.
Двухранговая память быстрее, чем одноранговая, но это преимущество незначительно. Прирост может составить 1-2 % при условии, что приложению не хватает процессора. В большинстве же случаев разница вообще не будет заметна.
Я считаю, что это не то, о чем стоит париться при выборе памяти (только если вы не хотите докупить второй модуль к первому имеющемуся). Тем более, не все производители пишут эту характеристику, да и наличие кожуха осложняет диагностику. Лучше обратить внимание на тайминги и частоты. Проверить ранговость можно с помощью все той же CPU-Z.
Что такое ECC и буферная память?
Это всего лишь параметры, относящиеся к серверной оперативной памяти. ECC отвечает за коррекцию ошибок, а буферизация памяти уменьшает электрическую нагрузку. Пользователям домашних ПК это не нужно, да и стоит такая память намного дороже. Короче, не забивайте голову.








