Первая проба PCI-Express в графике



не все золото блестит сразу
(вольный пересказ пословицы)


Господа, в наших руках взрывоопасный набор из PCI-Express материнской платы (производства ECS, на новом чипсете Intel 915) и графического ускорителя NVIDIA GeForce PCX 5900 с шиной PCI-Express. Грех не детонировать эту адскую смесь, получив первые обзорные результаты с использованием новой шины. Разумеется, пока рано говорить о каком либо полноценном сравнении, PCI-Express карты от ATI только-только пересекли порог нашей лаборатории и не успели принять участие в этом обзорном тестировании, а поддержка новой шины драйверами ОС и графических карт, по всей видимости, оставляет желать лучшего. Но даже со всеми многочисленными оговорками:

  • В тестировании принимает участие только один PCI-E ускоритель
  • Он построен на AGP чипе предыдущего поколения и использует PCI-E мост HSI
  • В тестировании принимает участие только одна PCI-E материнская плата
  • Мы не можем сравнить ее результаты (пока) с референсной платой от Intel, возможно она настроена не оптимально
  • Драйверы, как в OC, так и графические могут поддерживать PCI-E ускорители не оптимальным образом

Итак, со всеми этими оговорками, мы все-таки протестировали несколько популярных игровых приложений и собираемся познакомить вас с предварительными результатами. А пока, немного теории:

Теоретическое отступление

Для начала предоставим вашему вниманию небольшую компиляцию различных фактов о PCI-Express вообще и ее особенностях в качестве новой графической шины, в частности:

PCI-Express 16x

Не секрет, что, начиная с 2004 года, роль стандартной графической шины общего назначения начнет играть новая универсальная (индустриальная) шина PCI-Express в 16 канальном варианте. Самый простой вариант перехода на PCI-Express для стандартных по архитектуре настольных систем выглядит вот так:

Ключевые отличия новой шины от AGP и PCI (подробнее см. здесь):

  1. Новая шина последовательна а не параллельна и состоит из необходимого числа независимых каналов передачи данных. Основные преимущества — снижение стоимости, миниатюризация, лучшее масштабирование, более выгодные электрические и частотные параметры (нет необходимости синхронизировать все сигнальные линии).
  2. Спецификация разделена на целый стек протоколов, каждый уровень которого может быть усовершенствован, упрощен или заменен, не сказываясь на остальных. Например — возможно использование иного физического носителя сигнала (свет и оптическое волокно), или может быть упразднена маршрутизация в случае выделенного канала только для одного устройства. Для графики могут быть добавлены дополнительные контрольные возможности. Развитие такой шины будет происходить гораздо менее болезненно — потенциальное увеличение пропускной способности (например, до 32 каналов в будущем) не потребует изменения контрольного протокола и наоборот. Можно будет быстро разрабатывать и внедрять новые возможности шины, специфические для графических применений.
  3. В изначальной спецификации заложены возможности горячей замены карт
  4. В изначальной спецификации заложены возможности создания виртуальных каналов (потоков данных), гарантирования пропускной полосы и времени отклика, сбора статистики QoS (Quality of Service — Качество Обслуживания).
  5. В изначальной спецификации заложены возможности контроля целостности передаваемых данных (CRC)
  6. В изначальной спецификации заложены богатые возможности управления питанием
  7. Пропускная способность одинакова в обе стороны, шина является полнодуплексной — т.е. может передавать данные «туда» и «обратно» одновременно, причем для этого используются отдельные физические соединения, и в результате передача в обе стороны происходит без конфликтов или потери полосы пропускания (напомним, что AGP в направлении от ускорителя к процессору работает со скоростью рядовой PCI и тем более не имеет возможности одновременного обмена данными в обе стороны). Пропускная способность PCI-Express 16х вдвое превышает возможности стандарта AGP 8х, причем в каждом из направлений — в случае интенсивного двустороннего обмена выигрыш будет превышать двукратный. Пропускная способность AGP 8x — 2.1 гигабайта в секунду от системы к ускорителю и значительно меньше (~200 мегабайт) обратно.
  8. Ниже задержки (латентность).
  9. Нет принципиальных ограничений на число таких графических разъемов в системе.

Первые системные платы с PCI-Express наборами логики (например, на базе i915) будут включать один PCI-Express 16х слот, нацеленный в первую очередь на графические ускорители. Вскоре будут доступны PCI-Express решения от NVIDIA (ускорители семейства NV3X и NV4X, через мост HSI) и ATI (R423 с нативным PCI-Express интерфейсом и т.д.).

Поддержка PCI-Express в ускорителях NVIDIA и ATI

ATI предпочли выпустить две версии чипа (R420 и R423). Первая версия поддерживает шину AGP 8x, вторая — PCI-Express. Больше принципиальных отличий эти чипы не имеют.

NVIDIA в свою очередь делает ставку на отдельный чип (мост), осуществляющий преобразование PCI-Express -> AGP. Данный мост может использоваться, как с NV40 (и ее последователем NV41), так и с последними чипами текущей серии NV3Х. Причем, пропускная способность такой схемы (AGP чип + PCI-Express бридж) не ограничена типичными для AGP 8х значениями. Как такое может быть? Схема:


Вверху у нас система, затем 16х PCX слот, затем чип моста называемый NVIDIA «HSI» (High Speed Interconnect — высокоскоростное соединение). Чип моста соединен с графическим чипом серии NV3Х или чипом будущего поколения через его стандартные AGP выводы. Однако в случае, когда графический чип работает с HSI мостом, расположенным на минимальном расстоянии рядом с самим чипом на плате ускорителя, мы можем позволить себе двукратное увеличение скорости, на которой функционирует AGP 8х шинный интерфейс графического чипа. Таким образом, мы получаем аналог (по пропускной способности) несуществующей в виде стандарта шины AGP 16х. Следовательно, пропускная способность достигает 4 гигабайта в секунду. Но и это еще не все — если типичная система, согласно стандарту AGP, умеет передавать данные с максимальной скоростью только в одном направлении, то усовершенствованный AGP интерфейс между HSI мостом и ускорителем от NVIDIA передает данные со скоростью 4 гигабайта в секунду в обоих направлениях (!). Но, важно понимать, что не одновременно. В каждый конкретный момент времени передача идет только в одном направлении, и пиковая полоса будет всегда 4 гигабайта в секунду. Кроме того, требуется время на переключение из состояния передачи в состояние приема данных. Интересно, что чип моста является двунаправленным — при желании его можно развернуть «наоборот» и он будет выполнять функции моста для создания AGP 8х карт на основе PCX чипов, которые NVIDIA планирует начать производить через некоторое время.

Какие теоретические минусы подобного решения мы можем указать:

  1. Конструкция платы с мостом сложнее и дороже, вероятность отказа или брака выше. Дело не столько в цене самого чипа моста, сколько в факте его монтажа. Лишнее энергопотребление.
  2. При частом переключении направления передачи данных и/или большом обратном потоке данных от ускорителя, решение без моста будет (теоретически) более производительным.

C другой стороны, налицо практические плюсы: подход NVIDIA позволяет фирме не запускать два различных варианта ускорителя в производство (процесс весьма дорогой). Кроме того, можно гибко регулировать соотношение PCX и AGP карт в зависимости от текущих требований рынка.

Возможную потерю (или прирост) производительности мы постараемся предварительно оценить по результатам тестирования. А пока отметим, что и API DirectX, и большинство современных игровых приложений создано (и еще как минимум два года будут создаваться) с расчетом на характерные особенности AGP. Что само по себе еще не гарантирует падения производительности при переходе на новую шину, но и не обещает ее существенного взлета.

Итак, основной вопрос стоит в области сложности карты (дополнительный чип моста, дополнительная ответственность на производителях карт) для NVIDIA и в области поставок (возможные дефицит или перепроизводство PCX или AGP версий чипа) для ATI. Время покажет, чей подход был выбран вернее.

Поддержка PCI-Express в операционной системе

В данный момент Windows XP трактует PCI-Express 16х как классическую PCI шину. Используется ее изначальная совместимость с логическим протоколом PCI, включающая прерывания, конфигурацию (распределение ресурсов), пространство вывода-вывода и доступ к системной памяти со стороны PCI устройств. Разумеется, все это происходит существенно быстрее, чем в случае классических PCI шин, но с точки зрения системного программного обеспечения и драйверов PCX видеокарта практически равносильна PCI видеокарте, пускай и на очень быстрой шине PCI с пропускной способностью 4 гигабайта в обе стороны. Какие либо новые возможности, потенциально востребованные в графике (изохронные передачи, параллельные потоки и т.д.), судя по всему, пока не задействованы ни на уровне API, ни в драйверах или системном ядре. В будущем, картина, вероятно, изменится: можно внести поддержку новых возможностей в ОС и в драйвер графического ускорителя. Тогда они смогут быть использованы драйвером ускорителя даже без явного упоминания в API или приложениях и потенциально увеличат эффективность работы PCI-Express как графической шины. Однако пока не ясно, достаточно ли Microsoft лишь обновить драйвер шины PCI в ОС или все-таки понадобится новый HAL (а в худшем случае и полностью новое ядро — пути программистов этой фирмы воистину неисповедимы) или, например, новая версия DirectX. Таким образом, вся эта история с полноценным раскрытием возможностей PCI-E может затянуться до появления Longhorn, т.е. до начала 2006 года.

Итак, сейчас при использовании PCI-Express трактуется как классическая PCI шина и, соответственно, отсутствует GART (драйвер, распределяющий доступную из AGP системную память) и прочие свойственные AGP специальные функции, благодаря которым ранее выполнялся оптимизированный для графики доступ из ускорителя в системную память (как для не жалуемого ныне AGP текстурирования, так и для выборки стандартных геометрических данных и команд). С точки зрения производительности эмуляция этих возможностей AGP у PCI-Express не дала бы современным ускорителям ничего нового — все, что их интересует в первую очередь — прямой доступ в системную память и высокая пропускная способность шины уже есть. Кроме того, отсутствие необходимости управлять отдельным каталогом распределения AGP памяти и некоторые другие упрощения потенциально способны сказаться на производительности только положительно. Так ли это — мы вскоре увидим. А пока нас не покидают интуитивные опасения, что в данный момент PCI-Express неоптимально используется ОС и драйвером видеокарты.

Практическая часть

Тестируемые приложения и конфигурация стендов

  • Конфигурация тестового стенда PCI-Express:
    • Процессор: Pentium 4 (Prescott, 1Мб L2, HT) 3.4 ГГц;
    • Системная плата: ECS PF4 на чипсете Intel 915;
    • Графическая карта: NVIDIA GeForce PCX 5900 (400/700МГц) 128 Мб;
    • Оперативная память: 1 Гб (2x512) Samsung DDR2-533;
    • Жесткий диск: Seagate Barracuda 7200.7 80 Гб SATA;
    • Монитор Mitshubishi Diamond Pro 2070sb (21");
    • Операционная система Windows XP SP1; DirectX 9.0b;
    • Драйверы NVIDIA версии 61.40; Чипсет версии 6.0.1.1002;
    Конфигурация тестового стенда AGP:
    • Процессор: Pentium 4 (Prescott, 1Мб L2, HT) 3.4 ГГц;
    • Системная плата: ASUS P4C800 Deluxe на чипсете Intel 875P;
    • Графическая карта: NVIDIA GeForce FX 5900 (400/700МГц) 128 Мб;
    • Оперативная память: 512 Мб (2x256) Twinmos DDR-400;
    • Жесткий диск: Seagate Barracuda 7200.7 80 Гб SATA;
    • Монитор Mitshubishi Diamond Pro 2070sb (21");
    • Операционная система Windows XP SP1; DirectX 9.0b;
    • Драйверы NVIDIA версии 61.40; Чипсет версии 6.0.1.1002;

Мы тестировали следующие приложения:

  • Unreal Tournament 2004;
  • FarCry 1.1;
  • Prince of Persia: Sands of Time;

Результаты







Отметим, что несколько нетипичные результаты POP могут быть вызваны применением FRAPS.

Заключение

Очевидно, что в данный момент, со всеми выше озвученными оговорками, GeForce PCX (напомню, что тестирование PCI-E решений от ATI на подходе) в PCI-E варианте проигрывает своему AGP собрату. По крайней мере, в тех тестах (а их не много), где приложения не упираются в CPU или ускоритель. Т.е., как правило, на низких разрешениях. Именно эти условия и показывают нам разницу шин лучше всего. Какие можно сделать из этого выводы:

  • Разница заметна лишь в узком диапазоне условий.
  • Разница заметна не на всех приложениях.
  • Она скорее не в пользу PCI-E в связке с GeForce PCX (хотя этот вопрос и зависит от приложения, но общая тенденция такова).
  • Для полноценных выводов необходимо провести более детальное тестирование на разных материнских платах и провести сравнительное тестирование с участием как карт NVIDIA, так и ATI
  • Есть подозрения, что все может заметно измениться с выходом новых драйверов, BIOS и обновлений ОС (что собственно вполне логично).
  • Никаких чудес не произошло — современные приложения практически не зависят от графической шины и, как правило, упираются либо в CPU, либо в производительность закраски ускорителя.

Итак, ждем более подробного тестирования с расширенным составом участников.




19 июня 2004 Г.

PCI-Express

PCI-Express



( )


, PCI-Express ( ECS, Intel 915) NVIDIA GeForce PCX 5900 PCI-Express. , . , , PCI-Express ATI - , , , . :

  • PCI-E
  • AGP PCI-E HSI
  • PCI-E
  • () Intel,
  • , OC, PCI-E

, , - . , :

PCI-Express , :

PCI-Express 16x

, , 2004 , () PCI-Express 16 . PCI-Express :

AGP PCI ( . ):

  1. . — , , , ( ).
  2. , , , . — ( ), . . — (, 32 ) . , .
  3. ( ), , QoS (Quality of Service — ).
  4. (CRC)
  5. , — .. «» «» , , (, AGP PCI ). PCI-Express 16 AGP 8, — . AGP 8x — 2.1 (~200 ) .
  6. ().
  7. .

PCI-Express (, i915) PCI-Express 16 , . PCI-Express NVIDIA ( NV3X NV4X, HSI) ATI (R423 PCI-Express ..).

PCI-Express NVIDIA ATI

ATI (R420 R423). AGP 8x, — PCI-Express. .

NVIDIA (), PCI-Express -> AGP. , NV40 ( NV41), NV3. , (AGP + PCI-Express ) AGP 8 . ? :


, 16 PCX , NVIDIA «HSI» (High Speed Interconnect — ). NV3 AGP . , HSI , , , AGP 8 . , ( ) AGP 16. , 4 . — , AGP, , AGP HSI NVIDIA 4 (!). , , . , 4 . , . , — «» AGP 8 PCX , NVIDIA .

:

  1. , . , . .
  2. / , () .

C , : NVIDIA ( ). , PCX AGP .

( ) . , API DirectX, ( ) AGP. , .

, ( , ) NVIDIA ( PCX AGP ) ATI. , .

PCI-Express

Windows XP PCI-Express 16 PCI . PCI, , ( ), - PCI . , , PCI , PCX PCI , PCI 4 . , ( , ..), , API, . , , , : . API PCI-Express . , Microsoft PCI - HAL ( — ) , , DirectX. , PCI-E Longhorn, .. 2006 .

, PCI-Express PCI , , GART (, AGP ) AGP , ( AGP , ). AGP PCI-Express — , — . , AGP . — . , PCI-Express .

  • PCI-Express:
    • : Pentium 4 (Prescott, 1 L2, HT) 3.4 ;
    • : ECS PF4 Intel 915;
    • : NVIDIA GeForce PCX 5900 (400/700) 128 ;
    • : 1 (2x512) Samsung DDR2-533;
    • : Seagate Barracuda 7200.7 80 SATA;
    • Mitshubishi Diamond Pro 2070sb (21");
    • Windows XP SP1; DirectX 9.0b;
    • NVIDIA 61.40; 6.0.1.1002;
    AGP:
    • : Pentium 4 (Prescott, 1 L2, HT) 3.4 ;
    • : ASUS P4C800 Deluxe Intel 875P;
    • : NVIDIA GeForce FX 5900 (400/700) 128 ;
    • : 512 (2x256) Twinmos DDR-400;
    • : Seagate Barracuda 7200.7 80 SATA;
    • Mitshubishi Diamond Pro 2070sb (21");
    • Windows XP SP1; DirectX 9.0b;
    • NVIDIA 61.40; 6.0.1.1002;

:

  • Unreal Tournament 2004;
  • FarCry 1.1;
  • Prince of Persia: Sands of Time;








, POP FRAPS.

, , , GeForce PCX (, PCI-E ATI ) PCI-E AGP . , ( ), CPU . .., , . . :

  • .
  • .
  • PCI-E GeForce PCX ( , ).
  • NVIDIA, ATI
  • , , BIOS ( ).
  • — , , CPU, .

, .