Что такое тайминги видеокарты
Сегодня мы поговорим о наиболее точном определении таймингов и подтаймингов. Большинство статей в сети обладают ошибками и неточностями, а в очень достойных материалах не всегда рассмотрены все тайминги. Мы же постараемся восполнить этот пробел и дать как можно полную характеристику тем или иным временным задержкам.
Структура памяти напоминает таблицу, где сначала выбирают строку, а затем столбец. Эта таблица разбита на банки, для памяти плотностью меньше 64Мбит (SDRAM) количеством 2 штуки, выше - 4 (стандартно). Спецификация память DDR2 SDRAM с чипами плотностью 1Гбит предусматривает уже 8 банков. На открытие строки в используемом банке уходит больше времени, нежели в другом (т.к. используемую строку нужно сначала закрыть). Очевидно, что лучше новую строку открывать в новом банке (на этом основан принцип чередования строк).
Обычно на памяти (или в спецификации к ней) есть надпись вида 3-4-4-8 или 5-5-5-15. Это сокращенная запись (так называемая схема таймингов) основных таймингов памяти. Что же такое тайминги? Очевидно, что ни одно устройство не может работать с бесконечной скоростью. Значит, на выполнение любой операции уходит какое-либо время. Тайминги - это задержка, устанавливающая время, необходимое на выполнение какой-либо команды, то есть время от отправки команды до ее выполнения. А каждая цифра обозначает какое именно время необходимо.
Тайминги расположены по порядку следования в простейшем запросе (для простоты понимания). Сначала идут тайминги, затем подтайминги.
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).
Twr , Write Recovery, Write to Precharge - минимальное время между окончанием операции записи и подачей команды на предзаряд (Precharge) строки для одного банка.
RTW , Read To Write, (Same) Rank Read To Write - минимальное время между окончанием операции чтения и подачей команды на запись, в одном ранке.
Same Rank Write To Write Delayed - минимальное время между двумя командами на запись в одном ранке.
Different Rank Write to Write Delay - минимальное время между двумя командами на запись в разных ранках.
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 (реальная частота).
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 (Athlon/Opteron).
DRAM Read Latch Delay - задержка, устанавливающая время, необходимое для "запирания" (однозначного распознавания) конкретного устройства. Актуально при повышении нагрузки (числа устройств) на контроллер памяти.
Trpre , Read preamble - время, в течение которого контроллер памяти откладывает активацию приема данных перед чтением, во избежание повреждения данных.
Trpst, Twpre, Twpst , Write preamble, read postamble, write postamble - то же для записи и после приема данных.
Read/write Queue Bypass - определяет число раз, которое самый ранний запрос в очереди может быть обойден контроллером памяти, прежде чем быть выполненным.
Bypass Max - определяет, сколько раз самая ранняя запись в DCQ может быть обойдена, прежде чем выбор арбитра будет аннулирован. При установке в 0 выбор арбитра всегда учитывается.
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 - минимальное время активности четырех окон (активных строк). Применяется в восьмибанковых устройствах.
Strobe Latency . Задержка при посылке строб-импульса (селекторного импульса).
Memory Refresh Rate . Частота обновления памяти.
Надеемся, что представленная нами информация поможет вам разобраться в обозначении таймингов памяти, насколько они важны и за какие параметры они отвечают.
Видеопамять как и оперативная память имеет частоты, но вот именно видеопамять имеет страпы, если грубо, то диапазоны частот, в которых зашиты определенные тайминги. Для последних видеокарт 290(х)/390(х):
— 150-400MHz
— 401-800MHz
— 801-900MHz
— 901-1000MHz
— 1001-1125MHz
— 1126-1250MHz
— 1251-1375MHz
— 1376-1500MHz
— 1501-1625MHz
— 1626-1750MHz
Как это работает: при дефолтной частоте для 290-ых равной 1250 МГц BIOS выставляет определенные тайминги, пусть будут X-Y-Z и они будут одинаковы на всем диапазоне 1126-1250 МГц.
Вы решаете сделать разгон и ставите 1375 МГц, активировался следующий страп с новыми таймингами, они чуть выше, что ведет к снижению производительности, но повышению стабильности. Падение производительности вы не ощущаете, так как сделали баф по частоте = + 125 МГц. Но! если вы разгоните до 1251 МГц, всего на 1 МГц, новый страп тоже активируется, прироста частоты вы не ощутите, а вот новые повышенные тайминги дадут о себе знать, понизив немного скорость.
Если на примере ОЗУ, то у нас с DDR3 бывает:
— 1333 МГц при 9-9-9-24
— 1600 МГц при 10-10-10-27
— 1866 МГц при 11-11-11-30
Вы разогнали автоматически до 1866, активировались 11-11-11, прирост есть. Вы вручную их понижаете до 9-9-9, система стабильна, прирост еще выше. Все счастливы.
На видеокартах так просто не сделаешь, но можно с помощью редактирования BIOS, чем мы и займемся. Наконец-то.
Редактирование
- обнуляем четвертое число и получаем 48 E8 01 00
- записываем его в обратном порядке 00 01 E8 48
- в калькуляторе идем в Вид-программист, выставляем счисление Hex и пишем наше число 00 01 E8 48. Нули первые затрутся — это нормально.
- переводим его в счисление Dec и получаем на выходе наше значение 1250.00
- 40 9C 00 00 = 400 МГц
- 80 38 01 00 = 800 МГц
- 90 5F 01 00 = 900 МГц
- A0 86 01 00 = 1000 МГц
- 74 B7 01 00 = 1125 МГц
- 48 E8 01 00 = 1250 МГц
- 1C 19 02 00 = 1375 МГц
- A4 2C 02 00 = 1425 МГц
- F0 49 02 00 = 1500 МГц
- C4 7A 02 00 = 1625 МГц
- 98 AB 02 00 = 1750 МГц
- 40 0D 03 00 = 2000 МГц
В чем же смысл?
- даунклок памяти до 1250 МГц (чтобы для себя сравнить с Radeon 290) — valid
- дефолт 1500 МГц — valid
- разгон 1750 МГц — valid
- частота 1500 МГц (тайминги от 1250) — valid
- частота 1750 МГц (тайминги от 1250) — valid
- частота 1750 МГц (тайминги от 1125) — invalid
- частота 1650 МГц (тайминги от 1125) — valid
- частота 1500 МГц (тайминги от 1000) — invalid
Добавлено
Забыл упомянуть: после редактирования BIOS слетает его контрольная сумма. Такой BIOS вряд ли программа-прошивальщик согласится прошивать, поэтому нужно сделать одну простую вещь: открыть измененный BIOS утилитой HawaiiBiosReader
Там увидите эту страшную строку. Ваша задача всего лишь пересохранить BIOS, утилита сама поправит контрольную сумму. Теперь его можно шить :)
Результаты тестов
Ради сохранения собственного времени приведу лишь результаты графического теста 3DMark 2013 Fire Strike 1.5.915 (64-bit)
Да, я знаю, что результаты теста могут «гулять» туда-сюда да и погрешность никто не отменял, но я старался снизить все внешние факторы к минимуму, да и просто надеюсь к уважению к чужим трудам ;)
Рубрика «Вопрос-ответ»
Что лучше: частота или тайминги?
Что лучше: частота или частота+тайминги?
Стоит ли игра свеч? Нужно ли этим заморачиваться?
Заключение
Я на своей практике познакомился наконец-то с редактированием BIOS через Hex, все манипуляции лично у меня заняли 20 минут.
Относительно вопроса таймингов я постарался ответить в материале. Из всех предложенных вариантов для своей видеокарты я оставлю частоту 1750 МГц при таймингах от страпа 1250. Конечно же чувствовалось, что при страпе 1150 и частоте 1750 МГц результат был бы лучше, но не все тесты видеокарта прошла: были черные полосы, пропадало изображение. Но если тест проходился, то результат был еще заманчивее.
Стоит ли «ковырять» BIOS или нет — решать только вам. Все же есть и резервная микросхема, и я постарался осветить все сложности в скриншотах, так что попробовать стоит. Плюс бесценный опыт никто не отменял ;)
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Про тайминги популярно.
Статья рассказывает о таймингах и их применении, и призвана детально объяснить значение этого термина.
В форумах, да и в статьях, посвященных обзорам компьютерных комплектующих с собственной оперативной памятью, нередко видишь упоминания про тайминги. Их огромное количество. Поначалу у новичка даже глаза разбегаются. А опытный человек часто просто оперирует понятиями, иногда совершенно не догадываясь, что они означают. В данной статье я постараюсь восполнить этот пробел.
"Суха теория, но древо жизни вечно зеленеет".
Для начала мы должны разобраться, как работает сама память.
Оперативная память представляет собой матрицу, информация в которой распределена по страницам, а в страницах .
Про тайминги популярно.
Статья рассказывает о таймингах и их применении, и призвана детально объяснить значение этого термина.
В форумах, да и в статьях, посвященных обзорам компьютерных комплектующих с собственной оперативной памятью, нередко видишь упоминания про тайминги. Их огромное количество. Поначалу у новичка даже глаза разбегаются. А опытный человек часто просто оперирует понятиями, иногда совершенно не догадываясь, что они означают. В данной статье я постараюсь восполнить этот пробел.
"Суха теория, но древо жизни вечно зеленеет".
Для начала мы должны разобраться, как работает сама память.
Оперативная память представляет собой матрицу, информация в которой распределена по страницам, а в страницах - по банкам и ячейкам в банках. Каждая ячейка имеет свои координаты по вертикали (column) и горизонтали (row). Для выбора строки используется сигнал RAS (Raw Address Strobe), а для считывания слова (данных) из выбранной строки - сигнал CAS (Column Address Strobe).
Полный же цикл считывания начинается с открытия банка и заканчивается его закрытием и перезарядкой, т.к. иначе ячейки разрядятся и данные пропадут.
Итак, алгоритм считывания данных из памяти таков:
1)выбранный банк активируется подачей сигнала RAS;
2)данные из выбранной строки передаются в усилитель, причем на передачу данных необходима задержка (она называется RAS-to-CAS);
3)подается сигнал CAS для выбора слова из этой строки;
4)данные передаются на шину (откуда идут в контроллер памяти), при этом также происходит задержка (CAS Latency);
5)следующее слово идет уже без задержки, так как оно содержится в подготовленной строке;
6)после завершения обращения к строке происходит закрытие банка, данные возвращаются в ячейки и банк перезаряжается (задержка называется RAS Precharge).
Как видите, для совершения некоторых операций системе нужны задержки, иначе она не успеет считать выбранные данные или, например, перезарядить банк. Эти задержки и называются таймингами.
Заглянув в BIOS
Для оперативной памяти существует громадное количество задержек. Достаточно заглянуть в любое описание памяти. Но основные можно увидеть в диагностической утилите CPU-Z или в BIOS. Познакомимся поподробнее с каждым из них. Для разгона, конечно, нужно уменьшить время задержек, поэтому чем их значения меньше, тем быстрее работает система. Впрочем, о разгоне поговорим позже. В разных источниках названия могут меняться, поэтому надо смотреть на краткое обозначение.
Возьмем, для примера, скриншот из программы CPU-Z.
Здесь C0, C1, C2, . - такты, по которым работает память, а BST - команда Burst Terminate, прерывающая процесс чтения. Здесь видно, что чем больше задержка CL, тем позже данные (Q1-Q3) поступают в память.
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.
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 черным по белому написано следующее:
То есть это сумма таймингов tRP и tWR. А если точнее, то это время от последней команды записи до конца перезарядки. Первый тайминг описан выше. Второй - следующий по списку :).
Write to Precharge, Auto Precharge Write Recovery (tWR)
Количество тактов между последней командой записи и командой на перезарядку банка (Precharge).
Write Recovery - время на то, чтобы должным образом сохранить полный 0 или 1 в память перед операцией перезарядки.
Read to Write Turnaround Time (tR2W) (в даташитах - tRTW)
Время между чтением и записью, при записи, прерываемой чтением. Ниже приведена наглядная схема этого процесса:
Write to Read Turnaround Time (tW2R)
Время между записью и чтением, при чтении, прерываемой записью.
Особенность промежутка состоит в том, что для прерывания чтения нужно подать команду Burst Terminate, а минимальный промежуток от этой команды до процедуры записи называется RU(CL) (где CL - CAS Latency и RU - Round Up to the nearest integer, BST - Burst Terminate). Схема процедуры ниже:
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'а важнее тайминги, тогда как для AMD – частота. В частности, ALT-F13 (гуру с www.ModLabs.net) утверждает: "Лучший вариант для Intel – самые агрессивные тайминги. Настолько, что асинхрон с 2-5-2-2 рулит синхрон с 2.5-7-3-3 при любом FSB (то есть – 280 3-7-3-3 при 1:1 хуже, чем 230 2-5-2-2 при 5:4)".
При этом не стОит забывать, что для AMD чаще всего частота памяти важна не абы какая, а достигаемая в синхронном режиме."
Хотя на каждой системе результат будет разный. В-общем, экспериментируйте.
Для видеопамяти же есть свои аспекты разгона. Так, для достижения бОльших частот не возбраняется даже поднять тайминги, так как падение производительности будет минимальное. Подробнее о таком разгоне видеопамяти рассказано в этой статье, а обсуждение данного метода - в этой ветке конференции.
И последнее: в форумах часто встречаются обозначения типа 2-3-3-7. Так вот, это - показатели основных характеристик памяти:
Я же решил исследовать влияние таймингов на своей системе.
Итак, вот она:
Процессор | Intel Celeron 1100A Tualatin 1100@1580 |
Материнская плата | JetWay i815-EPDA |
Память | 512Mb (2x256) 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, так как оценивает разгон каждого элемента системы, а не только видеокарты
SiSoft Sandra 2001 SP1 - Memory Bandwidth Benchmark, оценивает пропускную способность памяти
"Оверклокерская" для своего времени память NCP и сей раз не дала промаху и позволила запуститься на частоте 143МГц с таймингами 2-2-2-7! Но поменять последний параметр (Tras) память не дает ни по какому поводу, только с уменьшением частоты. Впрочем, это не самый важный параметр.
Как видите, понижение таймингов дает прирост производительности около 10%. И если на моей системе это не так заметно, то на более мощной различие уже становится очевидным. А если поменять еще тайминги на видеокарте, где разгон часто упирается не в память, а как раз в задержки, то труд будет более чем оправдан. А что именно меняете, теперь вы уже знаете.
Замечания по статье, как всегда, принимаю в этой ветке конференции.
Если считаете, что в статье чего-то не хватает, то пожалуйте сюда.
Наиболее точное определение таймингов (в т.ч. подтаймингов) - вот то о чем пойдёт речь в статье. Большинство статей в сети обладают ошибками и неточностями. Есть очень достойные материалы – статья Enot "Немного о работе DDR SDRAM и параметре Tras". Единственный её минус – рассмотрены не все тайминги.
Для того чтобы начать изучение вопросов, посвящённых таймингам, следует узнать, как же, собственно, работает оперативная память. Ознакомиться с принципом я предлагаю в вышеупомянутой статье Enot. Выясним, что структура памяти напоминает таблицу, где сначала выбирают строку, а затем столбец; и что таблица эта разбита на банки, для памяти плотностью меньше 64Мбит (SDRAM) количеством 2 штуки, выше – 4 (ста.
Наиболее точное определение таймингов (в т.ч. подтаймингов) - вот то о чем пойдёт речь в статье. Большинство статей в сети обладают ошибками и неточностями. Есть очень достойные материалы – статья 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 соответственно.
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).
Twr, Write Recovery, Write to Precharge – минимальное время между окончанием операции записи и подачей команды на предзаряд (Precharge) строки для одного банка.
RTW, Read To Write, (Same) Rank Read To Write – минимальное время между окончанием операции чтения и подачей команды на запись, в одном ранке.
Same Rank Write To Write Delayed – минимальное время между двумя командами на запись в одном ранке.
Different Rank Write to Write Delay – минимальное время между двумя командами на запись в разных ранках.
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 (реальная частота).
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 (Athlon\Opteron).
DRAM Read Latch Delay – задержка, устанавливающая время, необходимое для “запирания” (однозначного распознавания) конкретного устройства. Актуально при повышении нагрузки (числа устройств) на контроллер памяти.
Trpre, Read preamble – время, в течение которого контроллер памяти откладывает активацию приёма данных перед чтением, во избежание повреждения данных.
Trpst, Twpre, Twpst, Write preamble, read postamble, write postamble – то же для записи и после приёма данных.
Read\write Queue Bypass – определяет число раз, которое самый ранний запрос в очереди может быть обойден контроллером памяти, прежде чем быть выполненным.
Bypass Max – определяет, сколько раз самая ранняя запись в DCQ может быть обойдена, прежде чем выбор арбитра будет аннулирован. При установке в 0 выбор арбитра всегда учитывается.
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 – минимальное время активности четырех окон (активных строк). Применяется в восьмибанковых устройствах.
Strobe Latency. Задержка при посылке строб-импульса (селекторного импульса).
Memory Refresh Rate. Частота обновления памяти.
Также хотелось бы упомянуть о самом главном вопросе – вопросе об источниках. Именно от его качества и зависит то, насколько точным будет материал. Утверждением всех стандартов оперативной памяти занимается организация JEDEC, поэтому вопрос о компетентности снимается. Исключением являются последние материалы (Intel, Dron’t), обладающие рядом неточностей и опечаток, которые использовались как вспомогательные.
Использованные материалы:
1. DDR SDRAM "JEDEC SOLID STATE TECHNOLOGY ASSOCIATION JESD79E May 2005 Double Data Rate (DDR) SDRAM Specification (Revision of JESD79D)"
2. DDR2 SDRAM SPECIFICATION JEDEC SOLID STATE TECHNOLOGY ASSOCIATION JESD79-2C (Revision of JESD79-2B) MAY 2006
3. 4_01_02_04R13 Appendix D, Rev. 1.0 : SPD’s for DDR SDRAM
4. Intel® 965 Express Chipset Family Datasheet
Хотелось выразить благодарность Keper, по просьбе которого и была написана статья.
Разгоняя компьютер, мы больше внимания уделяем таким компонентам как процессор и видеокарта, а память, как не менее важную составляющую, иногда обходим стороной. А ведь именно тонкая настройка подсистемы памяти может дополнительно увеличить скорость рендеринга сцены в трехмерных редакторах, уменьшить время на компрессию домашнего видеоархива или прибавить пару кадров за секунду в любимой игре. Но даже если вы не занимаетесь оверклокингом, дополнительная производительность никогда не помешает, тем более что при правильном подходе риск минимален.
Уже прошли те времена, когда доступ к настройкам подсистемы памяти в BIOS Setup был закрыт от лишних глаз. Сейчас их столько, что даже подготовленный пользователь может растеряться при таком разнообразии, не говоря уже о простом "юзере". Мы постараемся максимально разъяснить действия, необходимые для повышения производительности системы посредством простейших настроек основных таймингов и, при необходимости, некоторых других параметров. В данном материале мы рассмотрим платформу Intel с памятью DDR2 на базе чипсета от той же компании, и основной целью будет показать не то, насколько поднимется быстродействие, а то, как именно его необходимо поднять. Что касается альтернативных решений, то для памяти стандарта DDR2 наши рекомендации практически полностью применимы, а для обычной DDR (меньшие частота и задержки, и большее напряжение) есть некоторые оговорки, но в целом принципы настройки те же.
Как известно, чем меньше задержки, тем меньше латентность памяти и, соответственно, выше скорость работы. Но не стоит сразу же и необдуманно уменьшать параметры памяти в BIOS, так как это может привести к совершенно обратным результатам, и вам придется либо возвращать все настройки на место, либо воспользоваться Clear CMOS. Все необходимо проводить постепенно - изменяя каждый параметр, перезагружать компьютер и тестировать скорость и стабильность системы, и так каждый раз, пока не будут достигнуты стабильные и производительные показатели.
- Материнская плата: ASUS P5B-E (Intel P965, BIOS 1202)
- Процессор: Intel Core 2 Extreme X6800 (2,93 ГГц, 4 Мб кэш, FSB1066, LGA775)
- Система охлаждения: Thermaltake Big Typhoon
- Видеокарта: ASUS EN7800GT Dual (2хGeForce 7800GT, но использовалось только "половина" видеокарты)
- HDD: Samsung HD120IJ (120 Гб, 7200 об/мин, SATAII)
- Привод: Samsung TS-H552 (DVD+/-RW)
- Блок питания: Zalman ZM600-HP
В качестве оперативной памяти использовалось два модуля DDR2-800 объемом 1 Гб производства Hynix (1GB 2Rx8 PC2-6400U-555-12), благодаря чему появилась возможность расширить количество тестов с различными режимами работы памяти и комбинациями таймингов.
Приведем перечень необходимого ПО, позволяющего проверить стабильность системы и зафиксировать результаты настроек памяти. Для проверки стабильной работы памяти можно использовать такие тестовые программы как Testmem, Testmem+, S&M, Prime95, в качестве утилиты настройки таймингов "на лету" в среде Windows применяется MemSet (для платформ Intel и AMD) и A64Info (только для AMD). Выяснение оправданности экспериментов над памятью можно осуществить архиватором WinRAR 3.70b (имеется встроенный бенчмарк), программой SuperPI, рассчитывающая значение числа Пи, тестовым пакетом Everest (также есть встроенный бенчмарк), SiSoft Sandra и т.д.
Основные же настройки осуществляются в BIOS Setup. Для этого необходимо во время старта системы нажать клавишу Del, F2 или другую, в зависимости от производителя платы. Далее ищем пункт меню, отвечающий за настройки памяти: тайминги и режим работы. В нашем случае искомые настройки находились в Advanced/Chipset Setting/North Bridge Configuration (тайминги) и Advanced/Configure System Frequency (режим работы или, проще говоря, частота памяти). В BIOS'е других плат настройки памяти могут находиться в "Advanced Chipset Features" (Biostar), "Advanced/Memory Configuration" (Intel), "Soft Menu + Advanced Chipset Features" (abit), "Advanced Chipset Features/DRAM Configuration" (EPoX), "OverClocking Features/DRAM Configuration" (Sapphire), "MB Intelligent Tweaker" (Gigabyte, для активации настроек необходимо в главном окне BIOS нажать Ctrl+F1) и т.д. Напряжение питания обычно изменяется в пункте меню, отвечающем за оверклокинг и обозначается как "Memory Voltage", "DDR2 OverVoltage Control", "DIMM Voltage", "DRAM Voltage", "VDIMM" и т.д. Также у различных плат от одного и того же производителя настройки могут отличаться как по названию и размещению, так и по количеству, так что в каждом отдельном случае придется обратиться к инструкции.
Если названия задержек не совпадут, то тут хорошо проявляет себя "метод научного тыка". Незначительно изменяя дополнительные настройки в BIOS Setup, проверяем программой, что, где и как изменилось.
Для системы, использующей DDR2-800, задержки можно уменьшить до 4-4-4-12 или даже 4-4-3-10, в зависимости от конкретных модулей. В любом случае подбор таймингов сугубо индивидуален, и дать конкретные рекомендации достаточно сложно, но приведенные примеры вполне могут помочь вам в тонкой настройке системы. И не забываем о напряжении питания.
В итоге мы провели тестирование с восемью различными вариантами и комбинациями режимов работы памяти и ее задержками, а также включили в тесты результаты оверклокерской памяти, - Team Xtreem TXDD1024M1066HC4, работавшей на эффективной частоте 800 МГц при таймингах 3-3-3-8. Итак, для режима 533 МГц вышло три комбинации с таймингами 4-4-4-12, 3-4-3-8 и 3-4-2-8, для 667 МГц всего две - 5-5-5-15 и 3-4-3-9, а для режима 800 МГц, как и в первом случае, три - 5-5-5-18, 4-4-4-12 и 4-4-3-10. В качестве тестовых пакетов использовались: подтест памяти из синтетического пакета PCMark05, архиватор WinRAR 3.70b, программа расчета числа Пи - SuperPI и игра Doom 3 (разрешение 1024x768, качество графики High). Латентность памяти проверялась встроенным бенчмарком программы Everest. Все тесты проходили в среде Windows XP Professional Edition SP2. Представленные результаты на диаграммах расположены по режимам работы.
Как видите по результатам, разница в некоторых тестах незначительная, а порой даже мизерная. Это обусловлено тем, что системная шина процессора Core 2 Duo, равная 1066 МГц, имеет теоретическую пропускную способность 8,5 Гб/с, что соответствует пропускной способности двухканальной памяти DDR2-533. При использовании более скоростной памяти ограничивающим фактором быстродействия системы становится шина FSB. Уменьшение задержек ведет к росту быстродействия, но не так заметно, как повышение частоты памяти. При использовании в качестве тестового стенда платформы AMD можно было бы наблюдать совсем другую картину, что мы по возможности и сделаем в следующий раз, а пока вернемся к нашим тестам.
В синтетике рост производительности при уменьшении задержек для каждого из режимов составил 0,5% для 533 МГц, 2,3% для 667 МГц и 1% для 800 МГц. Заметен значительный рост производительности при переходе от памяти DDR2-533 к DDR2-667, а вот смена с 667 на DDR2-800 дает уже не такую прибавку скорости. Также память уровнем ниже и с низкими таймингами вплотную приближается к более высокочастотному варианту, но с номинальными настройками. И это справедливо практически для каждого теста. Для архиватора WinRAR, который достаточно чувствителен к изменению таймингов, показатель производительности немного вырос: 3,3% для DDR2-533 и 8,4% для DDR2-667/800. Расчет восьмимиллионного знака числа Пи отнесся к различным комбинациям в процентном соотношении лучше, чем PCMark05, хоть и незначительно. Игровое приложение не сильно жалует DDR2-677 с таймингами 5-5-5-15, и только снижение последних позволило обойти менее скоростную память (которой, как оказалось, все равно, какие тайминги стоят) на два кадра. Настройка памяти DDR2-800 дала прибавку еще в два кадра, а оверклокерский вариант, который имел неплохой разрыв в остальных тестах, не слишком вырвался вперед относительно менее дорогого аналога. Все же, кроме процессора и памяти, есть еще одно звено - видеоподсистема, которая вносит свои коррективы в производительность всей системы в целом. Результат латентности памяти удивил, хотя, если присмотреться к графику, становится ясно, отчего показатели именно такие, какие есть. Падая с ростом частоты и уменьшением таймингов от режима DDR2-533 4-4-4-12, латентность имеет "провал" на DDR2-667 3-4-3-9, а последний режим практически ничем кроме частоты от предыдущего не отличается. И благодаря столь низким задержкам DDR2-667 запросто обходит DDR2-800, которая имеет более высокие значения, но пропускная способность DDR2-800 позволяет в реальных приложениях все же вырваться вперед.
И в заключение хотелось бы сказать, что несмотря на небольшой процент прироста быстродействия (~0,5-8,5), который получается от уменьшения временных задержек, эффект все же присутствует. И даже при переходе с DDR2-533 на DDR2-800 мы получаем прибавку в среднем 3-4%, а в WinRAR более 20. Так что подобный "тюнинг" имеет свои плюсы и позволяет даже без серьезного разгона немного поднять производительность системы.
Читайте также: