Что такое тайминги оперативной памяти? Оптимальное значение для опции Command rate Оперативная память 1t или 2t.

Главная / Ноутбуки

Разгоняя компьютер, мы больше внимания уделяем таким компонентам как процессор и видеокарта, а память, как не менее важную составляющую, иногда обходим стороной. А ведь именно тонкая настройка подсистемы памяти может дополнительно увеличить скорость рендеринга сцены в трехмерных редакторах, уменьшить время на компрессию домашнего видеоархива или прибавить пару кадров за секунду в любимой игре. Но даже если вы не занимаетесь оверклокингом, дополнительная производительность никогда не помешает, тем более что при правильном подходе риск минимален.

Уже прошли те времена, когда доступ к настройкам подсистемы памяти в BIOS Setup был закрыт от лишних глаз. Сейчас их столько, что даже подготовленный пользователь может растеряться при таком разнообразии, не говоря уже о простом "юзере". Мы постараемся максимально разъяснить действия, необходимые для повышения производительности системы посредством простейших настроек основных таймингов и, при необходимости, некоторых других параметров. В данном материале мы рассмотрим платформу Intel с памятью DDR2 на базе чипсета от той же компании, и основной целью будет показать не то, насколько поднимется быстродействие, а то, как именно его необходимо поднять. Что касается альтернативных решений, то для памяти стандарта DDR2 наши рекомендации практически полностью применимы, а для обычной DDR (меньшие частота и задержки, и большее напряжение) есть некоторые оговорки, но в целом принципы настройки те же.

Как известно, чем меньше задержки, тем меньше латентность памяти и, соответственно, выше скорость работы. Но не стоит сразу же и необдуманно уменьшать параметры памяти в BIOS, так как это может привести к совершенно обратным результатам, и вам придется либо возвращать все настройки на место, либо воспользоваться Clear CMOS. Все необходимо проводить постепенно - изменяя каждый параметр, перезагружать компьютер и тестировать скорость и стабильность системы, и так каждый раз, пока не будут достигнуты стабильные и производительные показатели.

На данный момент времени самым актуальным типом памяти является DDR2-800, но он появился недавно и пока только набирает обороты. Следующий тип (вернее, предыдущий), DDR2-667, является одним из самых распространенных, а DDR2-533 уже начинает сходить со сцены, хотя и присутствует на рынке в должном количестве. Память DDR2-400 нет смысла рассматривать, так как она практически уже исчезла из обихода. Модули памяти каждого типа имеют определенный набор таймингов, а для большей совместимости с имеющимся разнообразием оборудования они немного завышены. Так, в SPD модулей DDR2-533 производители обычно указывают временные задержки 4-4-4-12 (CL-RCD-RP-RAS), в DDR2-667 - 5-5-5-15 и в DDR2-800 - 5-5-5-18, при стандартном напряжении питания 1,8-1,85 В. Но ничто не мешает их снизить для увеличения производительности системы, а при условии поднятия напряжения всего до 2-2,1 В (что для памяти будет в пределах нормы, но охлаждение все же не помешает) вполне возможно установить еще более агрессивные задержки.

В качестве тестовой платформы для наших экспериментов мы выбрали следующую конфигурацию:

  • Материнская плата: 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" и т.д. Также у различных плат от одного и того же производителя настройки могут отличаться как по названию и размещению, так и по количеству, так что в каждом отдельном случае придется обратиться к инструкции.

Если нет желания поднимать рабочую частоту модулей (при условии возможностей и поддержки со стороны платы) выше ее номинальной, то можно ограничиться уменьшением задержек. Если да, то вам скорее придется прибегнуть к повышению напряжения питания, равно как и при снижении таймингов, в зависимости от самой памяти. Для изменения настроек достаточно необходимые пункты перевести из режима "Auto" в "Manual". Нас интересуют основные тайминги, которые обычно находятся вместе и называются следующим образом: CAS# Latency Time (CAS, CL, Tcl, tCL), RAS# to CAS# Delay (RCD, Trcd, tRCD), RAS# Precharge (Row Precharge Time, RP, Trp, tRP) и RAS# Activate to Precharge (RAS, Min.RAS# Active Time, Cycle Time, Tras, tRAS). Также есть еще один параметр - Command Rate (Memory Timing, 1T/2T Memory Timing, CMD-ADDR Timing Mode) принимающий значение 1T или 2T (в чипсете AMD RD600 появилось еще одно значение - 3Т) и присутствующий на платформе AMD или в чипсетах NVidia (в логике от Intel он заблокирован в значении 2T). При снижении этого параметра до единицы увеличивается быстродействие подсистемы памяти, но снижается максимально возможная ее частота. При попытке изменить основные тайминги на некоторых материнских платах могут ожидать "подводные камни" - отключив автоматическую настройку, мы тем самым сбрасываем значения подтаймингов (дополнительные тайминги, влияющие как на частоту, так и на быстродействие памяти, но не так значительно, как основные), как, например, на нашей тестовой плате. В этом случае придется воспользоваться программой MemSet (желательно последней версии) и просмотреть для каждого режима работы памяти значения подтаймингов (субтаймингов), чтобы установить аналогичные в BIOS"e.

Если названия задержек не совпадут, то тут хорошо проявляет себя "метод научного тыка". Незначительно изменяя дополнительные настройки в BIOS Setup, проверяем программой, что, где и как изменилось.

Теперь для памяти, функционирующей на частоте 533 МГц, можно попытаться вместо стандартных задержек 4-4-4-12 (или какого-либо другого варианта) установить 3-3-3-9 или даже 3-3-3-8. Если с такими настройками система не стартует, поднимаем напряжение на модулях памяти до 1,9-2,1 В. Выше не рекомендуется, даже при 2,1 В желательно использовать дополнительное охлаждение памяти (простейший вариант - направить на них поток воздуха от обычного кулера). Но сперва необходимо провести тесты при стандартных настройках, например в очень чувствительном к таймингам архиваторе WinRAR (Tools/Benchmark and hardware test). После изменения параметров проверяем снова и, если результат удовлетворяет, оставляем как есть. Если нет, как это произошло в нашем тестировании, то при помощи утилиты MemSet в среде Windows (эта операция может привести либо к зависанию системы, либо, что еще хуже, полной неработоспособности ее) или же средствами BIOS Setup поднимаем на единицу RAS# to CAS# Delay и снова тестируем. После можно попытаться уменьшить на единицу параметр RAS# Precharge, что немного увеличит быстродействие.

Тоже самое проделываем для памяти DDR2-667: вместо значений 5-5-5-15 выставляем 3-3-3-9. При проведении тестов нам пришлось также увеличить RAS# to CAS# Delay, иначе быстродействие ничем не отличалось от стандартных настроек.

Для системы, использующей 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. Так что подобный "тюнинг" имеет свои плюсы и позволяет даже без серьезного разгона немного поднять производительность системы.

Те, кто увлекаются оптимизацией работы компьютера по средствам настройки BIOS наверняка слышали о такой опции как Command rate. В некоторых модификациях BIOS она может называться DRAM Command rate. Из возможных значений, которые она может принимать значатся 1 (1T), 2 (2T) и Auto.

Довольно популярным вопросом является установка оптимального значения для Command rate. И чтобы ответить на него нужно разобраться в природе данного параметра.

За что отвечает DRAM Command rate?

Дело в том, что операционная система компьютера работает с оперативной памятью не напрямую. Чтение и запись данных ОЗУ осуществляется через контроллер памяти. Так как операционная система передает контролеру памяти не физический адрес, а виртуальный, последнему требуется время для преобразования виртуального адреса в физический. Так вот опция Command rate определяет интервал задержки в 1 (1T) или 2 (2T) такта для проведения контроллером этой конвертации.

Что лучше 1T или 2T?

Размышляя логически, можно прийти к выводу, что чем меньше задержка (время ожидания), тем больший объем данных можно обработать за одну и ту же единицу времени. То есть значение в 1T (такт) является наиболее оптимальным с точки зрения скорости работы памяти и компьютера в целом. Но вся загвоздка в том, что далеко не каждый модуль ОЗУ и контроллер памяти может работать стабильно с таким малым временем ожидания, как 1 такт. Возможны ошибки и потеря данных. Как следствие — нестабильная работа ПК, синие экраны смерти и так далее.

Для того, чтобы правильно принять решение об установке значения опции Command rate в BIOS, нужно изучить технические характеристики материнской платы и модулей памяти, установленные в каждом конкретном случае, на предмет поддержки работы в режиме задержки 1 такт.

На свой страх и риск можно попробовать установить значение 1T и посмотреть как будет работать компьютер. При появлении ошибок и сбоев DRAM Command rate нужно будет вернуть к значению 2T.

При значении в 2 такта память будет работать медленнее, стабильнее и с минимальным риском возникновения ошибок.

Также возможным значением для данной опции может быть AUTO. В этом случае BIOS сам установит оптимальное значение, сходя из параметров модуля памяти.

Значение AUTO позволяет компьютеру автоматически подобрать время задержки

Наиболее точное определение таймингов (в т.ч. подтаймингов) - вот то о чем пойдёт речь в статье. Большинство статей в сети обладают ошибками и неточностями. Есть очень достойные материалы - статья 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 1T/2T - Время, необходимое для декодирования контроллером команд и адресов. Иначе, минимальное время между подачей двух команд. При значении 1T команда распознаётся 1 такт, при 2T - 2 такта, 3T - 3 такта (пока только на RD 600).
Это всё основные тайминги. Остальные тайминги имеют меньшее влияние на производительность, а потому их называют подтаймингами.
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 #.
WR , Write Recovery, Write to Precharge - минимальное время между окончанием операции записи и подачей команды на предзаряд (Precharge) строки для одного банка.
WTR , Trd_wr, Write To Read - минимальное время между окончанием записи и подачей команды на чтение (CAS #) в одном ранке.
RTW , Read To Write - минимальное время между окончанием операции чтения и подачей команды на запись, в одном ранке.
Same Rank Write To Write delay - минимальное время между двумя командами на запись в одном ранке.
Different Rank Write to Write Delay - минимальное время между двумя командами на запись в разных ранках.
Twr_rd , Different Ranks Write To READ Delay - минимальное время между окончанием записи и подачей команды на чтение (CAS #) в разных ранках.
Same Rank Read To Read Delay - минимальная задержка между двумя командами на чтение в одном ранке.
Trd_rd , Different Ranks Read To Read Delay - минимальная задержка между двумя командами на чтение в разных ранках.
Trtp , Read to Precharge - минимальный интервал между подачей команды на чтение до команды на предварительный заряд.
Precharge to Precharge - минимальное время между двумя командами предварительного заряда.
Tpall_rp , Precharge All to Active Delay - задержка между командой Precharge All и командой на активацию строки.
Same Rank PALL to REF delay - устанавливает минимальное время между командой Precharge All и Refresh в одном ранке.
Different Rank REF to REF delay - устанавливает минимальную задержку между двумя командами на обновление (refresh) в разных ранках.
WL , 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 - для записи и чтения (Nf 2) и установки 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 (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 выбор арбитра всегда учитывается.
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 - минимальное время активности четырех окон (активных строк). Применяется в восьмибанковых устройствах.
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
5. Статья Dron"t #Тайминги #CL

Введение

Модули памяти DDR и DDR2 классифицируются по максимальной частоте, на которой они могут работать. Но, помимо частоты, есть и другие параметры, определяющие производительность памяти – это тайминги. Тайминги – это числа, такие как 2-3-2-6-T1, 3-4-4-8 или 2-2-2-5, чем меньше числа, тем лучше. Давайте разберемся, что обозначает каждая цифра этих чисел.

Модули памяти DDR и DDR2 маркируются по классификации DDRxxx/PCyyyy.

Первое число – xxx – указывает максимальную тактовую частоту, на которой могут работать чипы памяти. Например, максимальная частота, на которой могут работать модули DDR400 – 400 МГц, а модули DDR2-667 могут работать на частотах до 667 МГц. Нужно уточнить, что это не реальная тактовая частота ячеек памяти – их рабочая частота в случае с DDR равна половине, а DDR2 - четверти частоты, указываемой в маркировке модулей. То есть, модули памяти DDR400 работают на частоте 200 МГц, а модули DDR2-667 на частоте 166 МГц, но с контроллером памяти и DDR, и DDR-II сообщаются на половине частоты, указанной в маркировке (т.е. 200 и 333МГц, соотвественно), поэтому в дальнейшем именно такая частота будет подразумеваться под реальной рабочей.

Второе число – 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. Синим цветом обозначена команда "читать".

CAS Latency (CL)

Память с 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 )

Каждый чип памяти внутренне организован как двумерная матрица. В каждом пересечении строк и столбцов имеется маленький конденсатор, который отвечает за сохранение “0” или “1” – единиц информации, или данных. Процедура доступа к хранящимся в памяти данным состоит в следующем: сначала активируется строка с нужными данными, затем столбец. Эта активация происходит по двум контрольным сигналам – RAS (Row Address Strobe) и CAS (Column Address Strobe). Чем меньше временной интервал между этими двумя сигналами, тем лучше, поскольку данные будут считываться быстрее. Это время называется задержкой от RAS до CAS (RAS to CAS Delay ). Это иллюстрирует рисунок 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” запускает цикл чтения или записи.

RAS Precharge (tRP)

На рисунке 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.65v и номинальных таймингах 7-7-7-20:

На 7-7-7-20 память разогналась с номинальных 1333 до 1630 МГц и стабильно отработала свои 30 минут в тесте. Это очень хороший результат, учитывая, что напряжение на память установлено всего 1.65v. На 6-6-6-18 разгон дал стабильные 1403 МГц. И на 8-8-8-24 частота составила 1835 МГц.

реклама

Теперь увеличим напряжение на память до 1.8v. В этом случае была принята обязательная мера - напряжение Uncore было поднято до 1.35v. Смотрим на диаграмму:

Ну что сказать, просто великолепный результат! Хотя подобного и следовало ожидать, т.к. чипы Micron очень хорошо отзываются на рост напряжения и могут довольно сильно прибавлять в разгоне. Подумайте только – 1516 МГц с таймингами 6-6-6-18 и всего при 1.8v! Не часто такое увидишь. На 7-7-7-20 стабильная частота составила 1750 МГц по сравнению со своей номинальной частотой в 1333 МГц. А вот на 8-8-8-24 результат получился очень странный: по сравнению со своими 1835 МГц, которые были получены при 1.65v – и при 1.8v разгон не принес совершенно никаких плодов. Немного забегая вперед, скажу, что и на 1.9v результат был такой же – те же 1835 МГц. Все это казалось очень странно, и я был уверен, что проблема кроется не в памяти, а в чем-то другом. После небольшого анализа все-таки удалось найти причину, по которой происходила подобная ерунда. Виноват оказался процессор, и все упиралось в частоту UCLK, а точнее в какую-то одну из ее составляющих - L3 кэш или контроллер памяти. Мне не удалось точно выяснить что именно, но подозрения пали на L3 кэш, т.к. увеличение напряжения на память совершенно не увеличивало разгон (это напряжение питает также и контроллер памяти в процессоре). А вот поднятие напряжения Uncore до 1.55v давало все же небольшую прибавку в разгоне UCLK и как следствие самой памяти. Правда эта прибавка была небольшой, всего 10 МГц, а повышать Uncore свыше 1.55v было уже довольно рискованно. К тому же увеличение этого напряжения дополнительно нагревало процессор, и не слабо – примерно + 3-4 градусов по Цельсию.

© 2024 ermake.ru -- Про ремонт ПК - Информационный портал