Влияние Side-Band Addressing на игровые приложения

29.08.2000


  Одновременно с выходом процессора нового поколения PentiumII, Intel выпускает чипсет, подстать новому процессору. Официальное название новинки Intel 440LX AGP Set, или просто LX, как его называют в народе. Я не стану перечислять все достоинства нового на то время чипсета, а остановлюсь, пожалуй, на одном из наиболее важных для нас, геймеров, нововведении – Accelerated Graphic Port (AGP). Что же такое AGP и почему он так важен для нас? 

Accelerated Graphic port

  AGP (ускоренный графический порт) – «прямое соединение» между графической подсистемой и оперативной памятью, чьё назначение - перекачка больших массивов данных 3D графики. Дело в том, что до появления AGP использовались PCI графические адаптеры. Всё бы ничего, если бы не возрастающие требования людей к уровню сложности графики в играх, что неизбежно влечёт к увеличению объёма прокачиваемых данных от процессора к графическому чипу. Максимальной пропускной способности шины (133МБайт/с при 33MHz) уже стало не хватать для обеспечения необходимой скорости, в результате чего она попросту стала “бутылочным горлышком” в графической подсистеме компьютера (к примеру, процессор, запущенный на 100MHz FSB способен прокачать 640МБайт/с, что примерно в шесть раз больше чем PCI.). Шина AGP же работает на частоте 66MHz и в режиме 1х способна передать теоретически 264МБайт/с, что уже лучше, к тому же разгружается и без того загруженная шина PCI.

Время берёт своё, и вот, на рынке уже не сыскать материнскую плату без поддержки AGP 2x (528 Мбайт/с). Проблема “бутылочного горлышка” перестала стоять так остро (да и новые AGP-видеокарты стали уже не так часто использовать шину AGP для передачи текстур в ОЗУ ввиду наличия 16-32МВ локальной видеопамяти, что для большинства игр вполне достаточно). Но прогресс не стоит на месте, в свет выходят графические чипы нового поколения, включающие в себя GPU (Geometric Processor Unit) и отличающиеся от своих младших собратьев именно наличием этого геометрического сопроцессора. Проблема пропускной способности AGP становится вновь актуальной, ведь даже с AGP 4x (1056 МБайт/с) GeForce2 GTS не в состоянии полностью реализовать весь потенциал своего геометрического сопроцессора. Дело в том, что в случае программного расчёта геометрии процессором, передавалось относительно небольшое количество данных, в нашем же случае, когда расчёт геометрии берёт на себя графический чип, объём передаваемых данных значительно увеличивается! Проблема усугубляется тем, что пропускная способность оперативной памяти, на прямую с которой связана шина AGP, ограничена 800 Мбайтами в секунду. Ну и ладно, скажете Вы, невелика разница: 800МВ – 1GB, чего горевать? Я был бы готов с Вами согласиться, если бы не одно но: через оперативную память проходит не только графическая информация, через неё работает ещё и звук, A3D 2.0, плюс своп на винчестере, который тоже обрабатывается ОЗУ, плюс сетевая карточка “общается” с вашим соперником в QuakeIII, на что, в свою очередь, тоже расходуется драгоценная пропускная способность. Всё это зависит от того, что установлено в вашей машине. Масло в огонь подливает ещё и так называемая адресация по побочной шине (SBA), предусмотренная стандартом AGP для увеличения скорости, работает не на всех based on NVIDIA chip картах (об этом чуть ниже). И если с первым (использование пропускной способности ОЗУ другими компонентами компьютера) мы относительно ничего не можем поделать, то на второе (адресация по боковой шине) пользователь вполне в состоянии повлиять. Однако, не каждый способен ответить на вопрос “что такое SBA, и как и на что именно влияет его включение/отключение?”. На этот вопрос я и постараюсь ответить в данной статье.



Side-Band Addressing

  SBA (адресация по побочной шине) - дополнительная 8-битная адресация, встроенная в AGP, что, попросту говоря, позволяет AGP-видеокарте запрашивать информацию через SBA и в то же время получать 32-битный поток данных через саму шину AGP. Благодаря этому, видеокарта получает по шине AGP 20 байт за 4 такта, вместо 16 без Side-Band Addressing.

  Насколько реально влияет побочная адресация на скорость AGP хорошо видно на взятой с Реактора таблицы:

  Хорошо влияет J, в том смысле, что отключение SBA ведёт к значительной потере скорости передачи данных по шине AGP. Но зачем же понадобилось отключать побочную адресацию? Есть несколько причин: во-первых, шина AGP, с активированным SBA очень болезненно относится к увеличению её частоты (которая зависит от внешней частоты системной шины – FSB), к примеру, до 75 или 83MHz (напоминаю, что нормальная частота для AGP - 66MHz). Отключение SBA повышает стабильность работы AGP на нестандартных частотах, чем и пользуются оверклокеры при разгоне процессора посредством увеличения частоты FSB. Во-вторых, не со всеми чипсетами SBA работает стабильно, поэтому Detonator 3.xx (5.xx, 6.xx), находя в системе чипсет AMD 750, отключает побочную адресацию во избежание нестабильности системы (как включить SBA для AMD 750, читайте ниже). Есть также информация, что Detonator 2.08 вообще запрещает SBA, опять же для стабильности (как вновь активировать SBA, читайте ниже). Для m64 и Vanta в BIOS’e SBA отключен по умолчанию, вероятно, из-за маркетинговых соображений (если используется референсный BIOS от NVIDIA).

  Но насколько критично отключение побочной адресации для игр? Что бы ответить на этот вопрос, было проведено несколько тестов с включенным и отключенным SBA на машинах с разной конфигурацией. Для тестов использовались:

QuakeIII (OpenGL):

  • Demo001
  • 800х600х32, 1024х768х32
  • HQ setting
  • 4/4 textures
  • Bilinear filtering
  • Sound off

3Dіark2000 (Direct3D):

  • Screen resolution and color depth – 1024x768x32
  • Texture format – 32, Z-buffer depth – 24
  • Frame buffer – trilple
  • CPU optimization – D3D sowftware T&L для TNT2/TNT2Pro и D3D hardware T&L для GeForce 256

  Помимо всего я поставил задачу исследовать зависимость работы AGP с SBA on/off с разными частотами FSB, наиболее часто используемыми на сегодняшний день:

  • 66 МГц
  • 83 МГц
  • 100 МГц (вернее 103 и 105 МГц)

  За кадром осталась разве что FSB 133MHz и выше. Будем надеяться, что вскоре этот недостаток будет исправлен.

  Итак, “участники забега”:

Назовем ее просто TNT2

Процессор

Intel Celeron 525 (105x5)

Материнская плата

Iwill ZB 370 (i440ZX)

Оперативная память

128 MB PC133 SDRAM Micron (CAS2)

Видеокарта

Diamond Viper 770 32MB 166/210 (TNT2)

Жесткий диск

Fujitsu MPB 3064AT (6.4GB) - UDMA33

Операционная система, драйвер

Win98SE, Detonator 2,17



  Следующая машина тестировалась в 2-х режимах:

  • 66MHz
  • 83MHz

Будет у нас называться как TNT2Pro66 и TNT2Pro83

Процессор

Intel Celeron 333A

Материнская плата

Acorp 6BX86

Оперативная память

SDRAM 64M SEC PCI66 +
SDRAM 64 Hynday PC100

Видеокарта

Asus 3800Pro 32M o/c 180/200

Жесткий диск

Quantum EX 3.2A

Операционная система, драйвер

Win98, Detonator 2,40



Соответственно GeForce

Процессор

Intel Celeron 464 (103x4,5)

Материнская плата

Abit BH6 (i440BX)

Оперативная память

128Mb PC100

Видеокарта

Creative Annihilator 32Mb SDR (GeForce 256)

Жесткий диск

Quantum Fireball LM 15Gb

Операционная система, драйвер

Win98, Detonator 6,16



  Как видите, конфигурация компьютеров очень разная, но это не должно Вас смущать – мы же не развернули здесь сравнительное тестирование различных видеокарт J.

  Для начала QuakeIII:



  Н-да… Результат от включения SBA минимален, я бы даже сказал, не превышает погрешность измерений. Ну, с TNT2/TNT2Pro всё ясно – AGP 2x без адресации ей с “головой” хватает, но почему же включение SBA почти никак не отразилось на GeForce? Трудно ответить на этот вопрос. Может, из-за того, что QuakeIII не полностью использует T&L, к примеру, расчёт освещения в этой игре всё ещё ложится на плечи процессора и, пропускная способность AGP, не настолько критично для этой игры? Вполне возможно. Думаю, с выходом новых, в полной мере поддерживающих T&L, OpenGL игр ситуация изменится. Вот тогда и SBA пригодится.

  Приступим к 3DМark2000, работающий под Direct3D и умеющий использовать геометрический сопроцессор.

  Развернутую таблицу с результатами можно посмотреть здесь.

  Повторяется ситуация с QuakeIII - прирост минимален. Но если в QIII включение SBA на TNT2/TNT2Pro хоть как-то отразилось на скорости, то в 3Dmark2000 эффект вообще отсутствует, чего уже не скажешь о GeForce – разница есть, причём в процентном соотношении даже большая, чем в QIII, но опять же – общий прирост очень и очень невелик.

  Какие же выводы можно сделать из этого всего? Сегодняшние игровые приложения почти не получают выгоды от побочной адресации, причём это в равной степени относится как к TNT2/TNT2Pro, так и к GeForce256 SDRAM, как на частоте FSB 100MHz, так и на 66-83MHz. Включать/оставлять включенной SBA, при разогнанной AGP, не имеет смысла (по причине возможной нестабильности системы), хотя с другой стороны, если Вы на все 100 уверены в стабильности своего компьютера (неоднократно проверив это с помощью различных тестов), являетесь любителем выжимать все по максимуму, и пару-тройку процентов производительности Вам не помешают, то активировать/оставить активным режим SBA всё же стоит.

  Несколько советов пользователям, у которых побочная адресация не включена, и которые желали бы её включить. Для начала проверьте, а не включена ли она у Вас? Может, Вам и не стоит по лишнему поводу беспокоится? Я бы рекомендовал для этого использовать PowerStrip (более подробно об этой программе можно почитать на нашем сайте), где можно узнать, активен или нет на данный момент этот режим. Здесь же, можно также, в случае, если SBA не работает на Вашей системе, узнать, кто именно является виновником этого: материнская плата или видеокарта.

  Или же воспользоваться программой WCPUID, где в AGP info можно узнать о состоянии SBA.

  Если Вы являетесь счастливым обладателем CPU AMD K7 и чипсета AMD 750 одновременно, было бы неплохо в реестре пописать следующее:

[HKEY_LOCAL_MACHINE\Software\NVIDIA Corporation\
Global\System]

"EnableIrongateSBA"=dword:00000001

т.к. Detonator 3.xx (5.xx, 6.xx) принудительно отключает побочную адресацию для этого чипсета вследствии ее "корявой" реализации.

  В случае же, если Вы, купив Asus V3400/3800, установив Detonator 2,08 решили, что Ваш новенький акселератор работает не в полную силу, а лишь примерно 90% от того, то Вы окажетесь правы. Загляните-ка в Diagnostics (PowerStrip) – быть может, что SBA неким образом отключилась? И не удивительно – 2.08 запрещает побочную адресацию для любого чипсета. Исправить дело можно, прошив новый BIOS для видеокарты, поддерживающий Side-Band Addressing.

  Владельцам М64/Vanta, для активации SBA придется помучаться с прошивкой BIOS’a разных версий. А вот владельцам МХ-ов придется попотеть чтобы хотя бы найти такой биос. Нам на данный момент такого не встречалось пока.

  И если в результате всех выше перечисленных действий SBA так и не активировался, то и не стоит огорчаться – карточка Вашего приятеля, с рабочей адресацией, работает не намного быстрее Вашей (если вообще быстрее J), при условии, конечно, что всё остальное у вас одинаково.

  На этом, я, пожалуй, закончу. По мере поступления новой информации, статья будет изменяться, дополняться, исправляться.

  Удачного Tам гейминга J.



Роман Билык a.k.a. SLR (romsl@chat.ru)

В статье использованы материалы с сайтов:
www.DiamondMM.ru,
www.3DNews.ru,
www.Reactor.ru.

Большое спасибо:
Quaz, John M.Iron и всем членам инициативной группы сайта МИР NVIDIA

Отдельное спасибо за помощь в подготовке материала:
Аndser, Bishop, Sboy

Линки по теме: