Зависимость производительности от частоты шины и параметров памяти на ASUS A7N8X-X (nForce2 400)

для раздела Лаборатория

Эта работа была прислана на наш "бессрочный" конкурс статей, однако не вызвала особого интереса и подверглась лёгкой критике в конференции. Автор учёл замечания, доработал и дополнил статью, так что сейчас вы читаете обновлённую версию.


Целью статьи является определение влияния частоты системной шины процессора и параметров памяти на производительность. Особое внимание уделено провалу производительности на частоте 183 МГц и параметру памяти Active Precharge Delay.

Материнская плата ASUS A7N8X-X обладает некоторыми специфическими "особенностями", которые не позволяют распространять результаты на все платы nForce2. Тем не менее, общие выводы применимы к большинству других материнских плат.

Тестовая система.

  • Процессор – AMD Athlon 1700+ Thoroughbred-B. Максимальный разгон – 2200 МГц при 1,85 В.
  • Память – PC3200, 1х512 МБ, 5-2-2-2,5, Nanya. Работает синхронно с процессором.
  • Материнская плата – nForce2 400, ASUS A7N8X-X, BIOS 1007. CPU Interface = Optimal (заблокирован в данной прошивке). Bus Disconnect = off. Максимальный разгон – 208 МГц.
  • Видеокарта – Radeon 9000, 64 МБ, 128 bit.
  • Жёсткий диск – WD400JB.
  • Операционная система – MS Windows 2000 SP4.

Материнская плата ничем не отличается от A7N8X кроме одноканальности и отсутствия дополнительных контроллеров. У них даже номера прошивок BIOS и внесённые изменения совпадают. Разница в производительности с двухканальной системой, в большинстве случаев, находится в пределах нескольких процентов. Хорошая статья про влияние двухканальности на производительность – http://www.lostcircuits.com/motherboard/asus_a7n8x-x/.

Какие тесты использовались?

Очевидно, падение производительности на 183 МГц не связано с процессором. Поэтому использовались программы, интенсивно работающие с большими объёмами данных и сильно загружающие подсистему памяти. Были выбраны два архиватора: 7-zip (алгоритм LZMA) и RKC (алгоритм PPM). Размер файла для сжатия – 20 МБ. Пиковое использование оперативной памяти для RKC - 400 МБ, для 7-zip – 200 МБ. В 7-zip при увеличении размера слова большую роль играет процессор, поэтому тесты выполнялись при размере слова 255 и 64.





Дополнительно использовался Unreal Tournament 2003 (UT2003). Эта игра является одной из лучших программ для оценки общей производительности домашнего компьютера. В отличие от 3DMark, результаты меньше зависят от видеокарты, а увеличенное до 32 количество ботов заставляет процессор больше времени тратить на работу искусственного интеллекта и физику. Для увеличения точности, время выполнения теста было увеличено до 240 секунд (около 7 минут реального времени).

Для измерения пропускной способности и задержек памяти использовался ScienceMark 2.0. Выбор именно этой программы обусловлен тем, что она сразу представляет задержки памяти в абсолютном значении в наносекундах и формирует лог-файл. Для лучшего восприятия, на графиках и диаграммах приводятся не задержки, а величины, обратные задержкам.

Итак, использовались:

  • 7-zip, fb=255. Параметры командной строки -mx=9 -mfb=255 .
  • 7-zip, fb=64. Параметры командной строки -mx=9 -mfb=64 .
  • RKC. Параметры командной строки -mxx -M420m .
  • UT2003. Настройки качества – все на максимум. Разрешение 640х480х32. Параметры командной строки dm-antalus?spectatoronly=true?numbots=32?quickstart=true -benchmark -seconds=240 -exec=..\Benchmark\Stuff\botmatchexec.txt .
  • ScienceMark 2.0.

Насколько можно доверять результатам?

Изучение встроенного теста 7-zip выявило такую особенность. Во-первых, первые результаты после перезагрузки очень сильно отличаются (до 5%). Во-вторых, на экране отображаются результаты только первого прохода, что не логично. Приходится постоянно нажимать кнопку "Restart" и вручную усреднять результаты каждого прохода, которые также имеют большой разброс. Поэтому тестирование выполнялось при помощи консольной версии и утилиты timer 3.01.

В ScienceMark 2.0 тест выполнялся несколько раз, до получения стабильных задержек памяти. Значения задержек могут отличаться на один такт процессора.

Информация о частоте шины и процессора получалась при помощи CPU-Z. Устанавливаемая в BIOS частота может немного отличаться от реальной (до 1 МГц). Причем было замечено, что для частоты 200 МГц в BIOS, если FSB Spread Spectrum = Disabled, то реальная частота была 200,5 МГц, а если FSB Spread Spectrum = 0,50%, то реальная частота была 199,2 МГц. Достаточно хитрая "особенность".

Полученные результаты отличаются весьма незначительно. Поэтому на всех графиках и диаграммах приведен интервал 80%-100% или 90%-100%. В реальной жизни такие различия почти незаметны и представляют интерес больше для любителей разгона и тонкой настройки. Для оценки погрешности измерения, на двух разных частотах тесты были запущены несколько раз и взята максимальная разница между результатами. Конечно, такая разница не является строгой погрешностью, но для оценки её порядка этого вполне достаточно.





Зависимость производительности от параметров памяти.

Сначала определим влияние каждого из параметров на производительность. Однако тут возникли некоторые затруднения с материнской платой ASUS A7N8X-X. Дело в том, что изменение CAS Latency с 2,5 до 3 не приводило к изменению результатов при конфигурации 200х9,5. А при 160x12,5 (минимальная частота работы при CAS Latency = 2), не было разницы между 2 и 2,5. При этом CPU-Z показывал, что значение CAS Latency изменено. Поэтому тестирование проводилось при такой странной конфигурации 180х11, на которой все нормально работало. Такая "особенность" не всегда принимается во внимание. Например, www.terralab.ru при изучении влияния параметров памяти на материнской плате ASUS A7N8X сделала ошибочный вывод о том, что CAS Latency почти не влияет на производительность. Конечно, такого быть не может. При конфигурации 180х11 заметная разница есть, а при 200х9,5 – вдруг исчезала.

В основном, влияние оказывают параметры RAS to CAS Latency и CAS Latency. Причем RAS to CAS немного большее. RAS Precharge имеет гораздо меньшее значение, а увеличение Active Precharge Delay может даже незначительно повышать производительность.

Рассмотрим Active Precharge Delay подробнее. Неплохую информацию об этом можно найти здесь. Кстати, там же можно почитать и про CMD Rate. Вместо выражения "Active Precharge Delay" (в документации на материнскую плату - SDRAM Active Precharge Delay, Row-Active Delay) производитель памяти Mushkin использует "tRAS". Смысл этого параметра достаточно сложен для понимания и адекватного перевода. Вот оригинальное определение: "... tRAS short for the RAS Pulse width. Historically, tRAS was defined as the time needed to establish the necessary potential between a bitline pair within the memory array until it was safe to write back the data to the memory cells of origin after a (destructive) read."

Рекомендуемое минимальное значение Active Precharge Delay, которое обеспечивает отсутствие задержек на повторную активацию передачи, вычисляется по формуле:

Active Precharge Delay (tRAS) = RAS to CAS Latency (tRCD) + CAS Latency + 2

В теории максимальная производительность для конфигурации памяти Х-2-2-2,5 (Х - Active Precharge Delay) должна быть при значении Active Precharge Delay не менее 2 + 2,5 + 2 = 7. Проверим это на практике.

Заметно реагирует на изменения параметра только UT2003. В остальных приложениях разница очень мала. Но везде максимум находится в районе Active Precharge Delay = 8. По сообщениям в форумах, разница в пропускной способности памяти должна быть больше. Возможно, это объясняется одноканальным режимом работы.





Теперь увеличим RAS to CAS Latency на 3. В теории это должно привести к смещению максимума производительности на 3 позиции. Учитывая, что только в UT2003 есть заметные изменения, остальные тесты не использовались. На диаграмме для сравнения приведены предыдущие результаты.

Смещение очень невыразительное, но есть. Максимум находится в районе Active Precharge Delay = 9. Хорошо заметно увеличение падения производительности при минимальных значениях Active Precharge Delay 4 и 5, а также небольшое уменьшение падения при максимальных значениях 13 и 14. Такие изменения вызваны смещением максимума вправо. Все это согласуется с теорией, но приведенную формулу можно использовать только как приблизительную.

Зависимость производительности от частоты шины.

Для исследования влияния частоты шины можно воспользоваться простым методом, когда при фиксированном коэффициенте процессора меняется частота шины. В идеальном случае должна получиться прямая линия с коэффициентом 1. По отклонению от линейности можно найти и оценить провалы в производительности. Однако данный метод не учитывает, что при фиксированной частоте процессора производительность растет нелинейно от частоты шины. Практическая ценность такого метода невелика. Поэтому использовался другой метод.

Исследование проводилось с фиксированной частотой процессора. Учитывая, что при разных частотах шины нельзя точно подобрать коэффициенты умножения, использовалась линейная интерполяция. Т.е. получались результаты при частоте процессора выше требуемой фиксированной и ниже, и далее использовалась формула:

Рез = (Част2 – Част) * (Рез2 – Рез1)/(Част2 – Част1) + Рез1

где Рез, Част – искомый результат и фиксированная частота,
Рез1, Част1 – результат на частоте ниже фиксированной и эта частота,
Рез2, Част2 – результат на частоте выше фиксированной и эта частота.

Первоначально предполагалось выполнить исследование при частотах 166 МГц, 182 МГц, 183 МГц, 200 МГц и получить результаты, лежащие на двух параллельных прямых. Разница между этими прямыми должна быть равна провалу производительности на 183 МГц. Но в процессе предварительного тестирования результаты сильно разошлись с теорией. Поэтому было выполнено исследование всего диапазона от 166 МГц до 205 МГц с шагом в 5 МГц. Тесты не выполнялись при частотах шины 182 МГц и 183 МГц. Провести исследование с шагом в 1МГц нереально. Однако падение производительности происходит именно здесь.

К сожалению, "особенности" A7N8X-X не позволили использовать только интерполяцию. На частоте 185 МГц возникли две проблемы. Во-первых, не все коэффициенты были доступны. Во-вторых, при коэффициентах х8,5 и х9,5 задержки памяти и производительность приложений были значительно ниже, чем при х11 и х11,5. Поэтому была подобрана удобная фиксированная частота процессора 1900 МГц. Результаты при коэффициентах х8,5 и х9,5 приводятся отдельно. Когда невозможно было использовать интерполяцию, использовалась экстраполяция (частоты процессора, лежали одновременно выше или ниже фиксированной частоты 1900 МГц), причем для 185х11, 195х11,5, 200х11,5 коэффициент наклона линии брался от результатов на 190 МГц. Точность при этом значительно снизилась.





Недоступность некоторых коэффициентов процессора при частоте выше 182 МГц свойственно многим материнским платам и обсуждалось в форумах. Различия в производительности при разных коэффициентах наблюдалось вот здесь на материнской плате Abit NF7 rev. 2.0. Для памяти 5-2-2-2 приводятся такие результаты:

  Athlon XP 3000+ (333MHz FSB) Athlon XP 3000+ (400MHz FSB) Athlon XP 3200+ (400MHz FSB)
Dual DDR333 SDRAM Dual DDR400 SDRAM
Latency, ns 96 81 85

А теперь сравните с полученными результатами:

nForce2 400 ASUS A7N8X-X, PC3200 5-2-2-2.5
Конфигурация Частота шины, МГц Частота процессора, МГц Пропускная способность памяти (ScienceMark 2.0), МБ/с Задержки памяти (ScienceMark 2.0), нс
166x11 167.00 1837.6 2 406 97.41
166x11.5 167.00 1921.0 2 421 96.30
200x11 200.50 2205.1 2 872 82.54
200x9.5 200.50 1904.3 2 700 91.37

Итак, результаты низкоуровневых тестов.

На частоте 185 МГц (на самом деле на 183 МГц) происходит небольшое падение производительности. Точнее, для коэффициентов х10,5 – х11,5 прирост отсутствует. В остальном, все линейно от частоты шины с коэффициентом близким к единице.

А теперь результаты приложений.

Как видно, падение производительности происходит не только на 185 МГц, но и на 190 МГц. Графики выглядят довольно странно.

Почему так происходит?

Провал в производительности происходит из-за изменения параметров чипсета nForce2. Другого объяснения нет. Примечательна частота 183 МГц. Это как раз середина между 166 МГц и 200 МГц. Т.е. до 183 МГц используются параметры 166 МГц, а после 183 МГц используются более медленные параметры 200 МГц. Падение на 190 МГц, возможно, связано с замедлением работы nForce2 DASP. Такие изменения параметров чипсета необходимы для стабильной работы на высоких частотах и далеко не бесполезны. Например, на тестовой системе энергосберегающий режим Suspend To Ram на частоте 182 МГц работает с CAS Latency 3, а на частоте 183 МГц с CAS Latency 2,5.

Для изучения вопроса с параметрами чипсета использовалась программа WPCREDIT 1.2a, которая позволяет просматривать и изменять конфигурационные регистры PCI устройств.

К сожалению, разобраться без документации в параметрах, относящихся к памяти, затруднительно. Даже при небольшом изменении частоты шины в BIOS содержимое регистров сильно меняется. Что уж говорить о значительных изменениях частоты.

Но оказалось возможным сначала сохранить содержимое регистров на одной частоте, а затем загрузить их на другой. Правда это не относится к устройству с Device ID 01E0, которое, вероятно, отвечает за установку текущей частоты шины. Если попытаться загрузить данные в его регистры, то происходит зависание системы. При загрузке в регистры устройства с Device ID 01EE, вероятно, происходит нарушение работы AGP. В UT2003 появляется мусор из треугольников.

Тем не менее, при загрузке регистров на частоте 200 МГц данными, сохранёнными при 133 МГц, наблюдается стабильное увеличение производительности. Кроме того, было выяснено, что утилита ClockGen при изменении частоты почти не меняет содержимое конфигурационных регистров. Если изменить частоту шины при помощи этой утилиты с первоначальных 133 МГц до 200 МГц, то результаты совпадают с результатами, полученными при загрузке регистров (по тесту 7-zip). Проблем в UT2003 при этом не возникает. Поэтому в дальнейшем использовался только ClockGen и подразумевается, что если написано "параметры от 133 МГц", то это значит, что частота шины была установлена в 133 МГц из BIOS, а затем из Windows увеличена при помощи ClockGen.

Было проведено исследование влияния внутренних параметров чипсета nForce2 на производительность. При частоте шины 200 МГц были использованы параметры чипсета от стандартных частот 200 МГц, 166 МГц, 133 МГц. Параметры чипсета от 100 МГц вызывали зависание. Состав тестовых программ был немного изменён. Вместо ScienceMark 2.0 использовался CacheMem 2.6. Вместо RKC, 7-zip fb=255 и 7-zip fb=64 использовался 7-zip fb=64 с большим размером исходного файла для архивирования.

Итак, результаты:

Вот она, потерянная производительность. Причем, если после перехода с 133 МГц на 166 МГц падение незначительно, то после перехода с 166 МГц на 200 МГц падение достигает 3%. Несмотря на то, что при коэффициенте х9,5 задержки памяти значительно уменьшились, они все равно немного отличаются от задержек при коэффициенте х11: 82,97 нс для х9,5 и 80,28 нс для х11. Полученное значение задержек памяти для х11 совпадает с теоретическим значением 80,67 нс, рассчитанным линейно от 96,89 нс на 166 МГц.

Теперь рассмотрим частоты 180 МГц и 190 МГц, на которых происходит падение. Если использовать конфигурацию 182х11,5 и 190х11, то частота процессора будет совпадать (разница 0,12%), и использование интерполяции не потребуется.

Если просто изменить конфигурацию с 182х11,5 на 190х11 в BIOS, то низкоуровневые характеристики памяти изменяются на 2%, вместо теоретических 4,5%. Скорость 7-zip и UT2003 просто падает (пресловутое падение производительности). Однако, если при 190х11 установить параметры чипсета от 182 МГц, то все становится на свои места. Везде есть прирост. Низкоуровневые характеристики памяти выросли немного больше чем 4,5%. Частично это можно списать на относительно большую для низкоуровневых тестов памяти погрешность.

Совершенно случайно было найдено объяснение особенностям RKC. Если посмотреть на график, то в отличие от 7-zip и UT2003, разница в результатах между х8,5 - х9,5 и х10,5 – х11,5 у него почти отсутствует. Чтобы понять, почему так происходит достаточно взглянуть на таблицу:

Block size 8 Мб, 512 byte stride 200х11, задержки памяти 200х9,5, задержки памяти
cycles нс cycles нс
ScienceMark 2.0 183 82,99 174 91,37
CPU-Z 1.20a 183 82,99 159 83,50

Как видно, ScienceMark 2.0 и CPU-Z 1.20a используют несколько разные алгоритмы для определения задержек. При изменении коэффициента с х11 на х9,5 CPU-Z 1.20a, равно как и RKC, почти не "замечают" разницы. Получается, что ScienceMark 2.0 и CPU-Z 1.20a не отражают реальной картины и их результаты относительны. Вот ScienceMark 2.0 показывает, что задержки сильно изменились, а реальное приложение RKC, чувствительное к задержкам, на это почти не реагирует. И наоборот, CPU-Z 1.20a показывает, что разница небольшая, а результаты 7-zip и UT2003 отличаются значительно. Результаты CacheMem 2.6 совпадают с результатами ScienceMark 2.0. Назвать какую-либо программу "неправильной" нельзя. Они просто измеряют задержки по-разному.

Попытки объяснения недоступности некоторых коэффициентов и низкой производительности при х8,5 и х9,5 путём изменения параметров чипсета ни к чему не привели. Возможно, это связано с некоторыми регистрами устройства с Device ID 01E0. Значения этих регистров просто не поддавались корректировке.

Насколько результаты исследования можно распространять на другие материнские платы nForce2?

Если взять две материнские платы разных производителей на одном и том же чипсете, то при одинаковой конфигурации они должны показывать идентичные результаты. Ведь собственно сам чипсет – это тот же процессор (набор контроллеров) и работает синхронно с задающим генератором. В отличие от центрального процессора, чипсет имеет большое количество настраиваемых параметров. Эти параметры определяются разработчиком чипсета. Значения этих параметров, обеспечивающие стабильную работу с максимальной производительностью, могут зависеть не только от конфигурации, но и от конкретного экземпляра. Учитывая, что для разработчиков более важной является стабильность, рекомендованные значения параметров чипсета стараются брать с запасом, чтобы гарантировать устойчивую работу даже при неблагоприятных условиях. В большинстве случаев, можно безболезненно изменять некоторые параметры в сторону увеличения производительности.

Несмотря на отсутствие документации, можно утверждать, что изменение параметров, вызывающее провал производительности на 183 МГц, является рекомендованным разработчиком чипсета nForce2. В пользу этого говорит и то, что такой провал есть на одной из первых плат на nForce2 ASUS A7N8X (напомню, A7N8X-X является его урезанной версией), которая создавалась в плотном сотрудничестве с nVidia. Да и "притормаживать" свою продукцию производители вряд ли догадались самостоятельно. Кроме того, падение на 183 МГц точно есть на плате Soltek 75FRN-L, и было впервые обнаружено именно на ней. Но в конечном итоге, все зависит только от производителя, конкретной модели платы и даже версии BIOS.

Для изучения этого вопроса было проведено небольшое исследование обзоров материнских плат на nForce2. При этом был учтен момент с завышением реальных частот и соответственно завышением результатов некоторыми непорядочными производителями. Именно о непорядочности говорит такой факт, что сам nForce2 имеет встроенный генератор частоты, и поэтому на всех материнских платах на этом чипсете частоты должны точно совпадать. Например, по данным www.anandtech.com плата Gigabyte 7NNXP имеет частоту 202,77 МГц, DFI NFII Ultra LANParty – 201,35 МГц вместо положенных 200 МГц или 200,5 МГц (200,5 МГц является типовой частотой на других платах nForce2). А это уже около 1%.

Из немногочисленных обзоров был выбран http://www.3dnews.ru/motherboard/nforce2u400-roundup. К сожалению, в нём не указаны реальные частоты. Если отбросить результаты Gigabyte 7NNXP, MSI K7N2 Delta, Acorp 7NFU400, то получится следующая картина. Все платы идут очень кучно и немного отстают от Epox 8RDA+. Причем приблизительно разница получается для Sandra2002 Int MEM - 5%, для Quake III - 3%. На основании этого можно сделать предположение, что на большинстве плат на частоте 200 МГц используются более медленные параметры чипсета, а на Epox 8RDA+ более быстрые. Возможно это совпадение, и объясняется отклонениями частоты шины, но больно хорошо это согласуется с полученными выше результатами. Кроме того, в конференции kv0 пишет, что на Epox 8RDA "увеличение fsb с 166 до 198 МГц приводило к линейному росту производительности без каких-либо скачков".

Таким образом, с большой долей уверенности, можно предположить, что на большинстве материнских плат падение производительности и описанный характер этого падения существует. В том числе и на таких платах как Abit NF7-S rev2.0, Epox 8RDA3+, Gigabyte 7N400. На Epox 8RDA+ падения нет, но для обычного пользователя это скорее минус, т.к. стабильность на высоких частотах снижена.

Итоги.

Материнская плата ASUS A7N8X-X обладает некоторыми "особенностями". Не всегда можно изменить параметр CAS Latency. После частоты шины 182 МГц не работают некоторые коэффициенты умножения процессора. При разных коэффициентах производительность может отличаться. Сильно ругать A7N8X-X нельзя, у других материнских плат "особенностей" тоже хватает.

Наибольшее влияние на производительность памяти оказывают параметры RAS to CAS Latency и CAS Latency. Причем, вопреки все ещё бытующему мнению, RAS to CAS Latency имеет большее значение, чем CAS Latency (это справедливо для DDR SDRAM). Оптимальное значение Active Precharge Delay вычисляется как RAS to CAS Latency + CAS latency + 2. Использование минимальных значений является распространённой ошибкой и вызывает падение производительности до 1%.

На большинстве материнских плат nForce2 на частоте шины 183 МГц наступает значительный провал в производительности. Только где-то на 200 МГц производительность достигает уровня 182 МГц. Это происходит из-за изменения параметров чипсета nForce2 и необходимо для стабильной работы на высоких частотах.

Если на частоте шины 200 МГц установить параметры чипсета от 133 МГц, то можно получить прирост производительности (на ASUS A7N8X-X - порядка 3%) за счет некоторого уменьшения стабильности. Это легко проделать, установив в BIOS частоту шины 133 МГц и, затем, увеличив частоту шины из Windows при помощи утилиты ClockGen до 200 МГц. Но не стоит забывать, что после выхода из режимов энергосбережения параметры чипсета будут восстановлены.

Enot
09/03/2004


У этой статьи есть продолжение "Немного о DDR SDRAM и параметре tRAS".


Ждём Ваших комментариев в этой ветке конференции.

Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Страницы материала
Страница 1 из 0
Оценитe материал
рейтинг: 4.1 из 5
голосов: 18


Возможно вас заинтересует

Популярные новости

Сейчас обсуждают