не все золото блестит сразу
(вольный пересказ пословицы)
Господа, в наших руках взрывоопасный набор из 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 (подробнее см. здесь):
- Новая шина последовательна а не параллельна и состоит из необходимого числа независимых каналов передачи данных. Основные преимущества — снижение стоимости, миниатюризация, лучшее масштабирование, более выгодные электрические и частотные параметры (нет необходимости синхронизировать все сигнальные линии).
- Спецификация разделена на целый стек протоколов, каждый уровень которого может быть усовершенствован, упрощен или заменен, не сказываясь на остальных. Например — возможно использование иного физического носителя сигнала (свет и оптическое волокно), или может быть упразднена маршрутизация в случае выделенного канала только для одного устройства. Для графики могут быть добавлены дополнительные контрольные возможности. Развитие такой шины будет происходить гораздо менее болезненно — потенциальное увеличение пропускной способности (например, до 32 каналов в будущем) не потребует изменения контрольного протокола и наоборот. Можно будет быстро разрабатывать и внедрять новые возможности шины, специфические для графических применений.
- В изначальной спецификации заложены возможности горячей замены карт
- В изначальной спецификации заложены возможности создания виртуальных каналов (потоков данных), гарантирования пропускной полосы и времени отклика, сбора статистики QoS (Quality of Service — Качество Обслуживания).
- В изначальной спецификации заложены возможности контроля целостности передаваемых данных (CRC)
- В изначальной спецификации заложены богатые возможности управления питанием
- Пропускная способность одинакова в обе стороны, шина является полнодуплексной — т.е. может передавать данные «туда» и «обратно» одновременно, причем для этого используются отдельные физические соединения, и в результате передача в обе стороны происходит без конфликтов или потери полосы пропускания (напомним, что AGP в направлении от ускорителя к процессору работает со скоростью рядовой PCI и тем более не имеет возможности одновременного обмена данными в обе стороны). Пропускная способность PCI-Express 16х вдвое превышает возможности стандарта AGP 8х, причем в каждом из направлений — в случае интенсивного двустороннего обмена выигрыш будет превышать двукратный. Пропускная способность AGP 8x — 2.1 гигабайта в секунду от системы к ускорителю и значительно меньше (~200 мегабайт) обратно.
- Ниже задержки (латентность).
- Нет принципиальных ограничений на число таких графических разъемов в системе.
Первые системные платы с 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 планирует начать производить через некоторое время.
Какие теоретические минусы подобного решения мы можем указать:
- Конструкция платы с мостом сложнее и дороже, вероятность отказа или брака выше. Дело не столько в цене самого чипа моста, сколько в факте его монтажа. Лишнее энергопотребление.
- При частом переключении направления передачи данных и/или большом обратном потоке данных от ускорителя, решение без моста будет (теоретически) более производительным.
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;
- Процессор: 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, либо в производительность закраски ускорителя.
Итак, ждем более подробного тестирования с расширенным составом участников.