не все золото блестит сразу
(вольный пересказ пословицы)
Господа, в наших руках взрывоопасный набор из 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 неоптимально
используется ОС и драйвером видеокарты.
Операционная система 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, либо в производительность закраски ускорителя.
Итак, ждем более подробного тестирования с расширенным составом участников.