Лучше ли PCI Express, чем PCI-X?

HighPoint RocketRAID 2320: второй RAID-контроллер SATA II в нашей лаборатории с интерфейсом PCIe.
Интерфейс PCI Express (PCIe) находится на рынке уже примерно полтора года, но до сих пор он воспринимается, по большей части, как новый интерфейс графических карт. Настольные материнские платы с поддержкой PCI Express предлагают дополнительные слоты с этим интерфейсом, но используются они сегодня очень редко. Собственно, как и версии с большей пропускной способностью на материнских платах для серверов и рабочих станций.
Хотя теоретически PCI Express x16 может обеспечить большую пропускную способность по сравнению с PCI-X 533 (8 Гбайт/с против 4,26 Гбайт/с), важно подчеркнуть, что PCIe был предназначен для замены не PCI-X, а других, более старых шинных интерфейсов. PCIe был нацелен на замену графического интерфейса AGP по маркетинговым соображениям, а также чтобы проложить путь использованию двух графических карт. Да и устаревшая 32-битная параллельная шина PCI тоже требовала замены. Вряд ли PCI можно назвать хорошей шиной по современным понятиям: она предлагает относительно низкую пропускную способность, которая, к тому, же разделяется между всеми устройствами PCI. Современные технологии — вроде гигабитного Ethernet, периферии с поддержкой высокого разрешения и контроллеров накопителей — требуют более высокой пропускной способности.
Перейдём к сути PCI Express: этот интерфейс не обязательно быстрее PCI-X, но он проще и обеспечивает пропускную способность отдельно для каждого устройства. Именно поэтому сегодня появляется всё больше чипсетов класса «сервер/рабочая станция» с поддержкой PCI Express: слишком уж заманчиво, когда пропускная способность выделяется для каждого устройства.
Одним из возможных применений можно сразу же назвать контроллеры сети и накопителей, так как они уже давно страдают из-за «узости» интерфейса. Вполне понятно, что построить 10-Гбит/с тестовое окружение Ethernet сложнее, чем использовать контроллеры накопителей. Поэтому для тестирования мы выбрали RAID.
Мы отобрали два последних контроллера HighPoint Serial ATA II RAID RocketRAID, модели 2220 и 2320, поскольку они построены на одинаковой технологии и различаются только интерфейсом. 2220 является моделью PCI-X, а 2320 использует интерфейс x4 PCI Express.
Разбираемся в PCI-X

PCI-X является существенно доработанной версией параллельной шины Peripheral Components Interconnect (PCI). Она построена на классической шинной топологии и требует для подключения большое число дорожек/контактов. Как мы уже упоминали выше, доступная пропускная способность разделяется между всеми устройствами.
В отличие от обычной PCI в вашем компьютере, имеющей ширину 32 бита, PCI-X является 64-битной шиной. В результате пропускная способность автоматически удваивается, равно как число дорожек/контактов и размеры слота. Но всё остальное, включая протоколы передачи, сигналы и типы разъёмов, обратно совместимо. То есть в слот PCI-X можно установить 32-битную карту PCI (3,3 В). Кроме того, многие 64-битные карты PCI-X могут работать в 32-битных слотах PCI, но, конечно, с заметно сниженной пропускной способностью.
Но даже такое расширение шины всё равно не обеспечивало достаточную пропускную способность для профессиональных контроллеров накопителей SCSI, iSCSI, Fibre Channel, 10-Гбит/с Ethernet, InfiniBand и прочего. Поэтому группа PCI-SIG (Special Interest Group) добавила в спецификацию несколько скоростных градаций, меняющихся от PCI-X 66 (Rev. 1.0b) до PCI-X 533 (Rev. 2.0). В следующей таблице дана подробная информация.
| Ширина шины | Тактовая частота | Функции | Пропускная способность | |
| PCI-X 66 | 64 бит | 66 МГц | «Горячее подключение», 3,3 В | 533 Мбайт/с |
| PCI-X 133 | 64 бит | 133 МГц | «Горячее подключение», 3,3 В | 1,06 Гбайт/с |
| PCI-X 266 | 64 бит, опционально только 16 бит | 133 МГц (DDR) | «Горячее подключение», 3,3 и 1,5 В, поддержка ECC | 2,13 Гбайт/с |
| PCI-X 533 | 64 бит, опционально только 16 бит | 133 МГц (QDR) | «Горячее подключение», 3,3 и 1,5 В, поддержка ECC | 4,26 Гбайт/с |
Как можно видеть, по достижении 133 МГц с PCI-X 133 тактовая частота больше не возрастала. Чтобы обеспечить более высокую пропускную способность, были задействованы две технологии, с которыми вы наверняка уже знакомы по шинам памяти и FSB. PCI-X 266 опирается на технологию удвоенной передачи данных Double Data Rate, когда данные передаются на спаде и возрастании тактового импульса. PCI-X 533 заходит ещё дальше и использует учетверённую передачу данных (Quad Data Rate). Intel уже давно использует эту технологию для FSB процессоров Pentium 4 и Xeon.

Широкие слоты слева — это и есть 64-битная шина PCI-X.
Сравнение режимов PCI-X

Источник: презентация PCI-SIG PCI-X 2.0.
Как мы уже указывали выше, общая пропускная способность с максимумом в 4,26 Гбайт/с разделяется между всеми устройствами, подключёнными к шине. Кроме того, если какое-либо устройство не способно работать на высокой тактовой частоте, система снизит скорость шины до наименьшего общего значения, вплоть до 33 МГц. Впрочем, именно такую цену приходится платить за совместимость. Но проблему можно решить, реализовав на материнской плате более одного моста PCI-X. Продукты с подобной возможностью предлагаются всеми производителями профессионального уровня, включая такие компании, как Asus, Supermicro и Tyan.
Обратная совместимость является большим плюсом PCI-X. Администраторы желают быть абсолютно уверенными, что новое оборудование будет работать правильно. Именно поэтому внедрение новых технологий на рынке серверов и рабочих станций не такое быстрое. Зачем нужно прощаться с технологией, если она является обратно совместимой, обеспечивает достаточную производительность и отличается большой базой имеющегося оборудования? Эта ситуация вряд ли изменится в будущем, поскольку сегодня группа PCI-SIG работает уже над стандартом PCI-X 1066. Он ещё раз удвоит пропускную способность и, кроме того, получит новые функции вроде сжатия данных «на лету», автоматических резервных путей и защиты от сбоев. Кроме того, может появиться поддержка изохронной передачи, но тогда придётся отказаться от совместимости с обычной PCI.

Источник: презентация PCI-SIG PCI-X 2.0. Единственным способом реализации нескольких слотов PCI-X с высокой пропускной способностью является установка нескольких мостов PCI-X.
Встречаем соперника: PCI Express

Слоты x16 и x1 PCI Express.
Вполне понятно, что пропускная способность не может быть серьёзной причиной перехода с PCI-X на PCI Express для профессионального рынка, поскольку её достаточно и у PCI-X. Но есть другие причины. Давайте начнём с таблицы, в которой приведены существующие скорости PCI Express.
| Режим PCI Express (число линий) | Пропускная способность | Рабочая частота |
| x1 | 250 Мбайт/с в обе стороны | 100 МГц |
| x2 | 500 Мбайт/с в обе стороны | 100 МГц |
| x4 | 1 Гбайт/с в обе стороны | 100 МГц |
| x8 | 2 Гбайт/с в обе стороны | 100 МГц |
| x16 | 4 Гбайт/с в обе стороны | 100 МГц |
Как можно видеть, таблицу открывает PCI Express x1, самая простая конфигурация, использующая минимальное число линий. Но даже она обеспечивает пропускную способность, превосходящую 33-МГц 32-битную шину PCI более чем в два раза. Причина кроется в современной технологии последовательной передачи, а не в параллельной передаче по одному биту за такт по одной линии. PCI Express использует две пары с низким напряжением и технологией разностного кодирования, обеспечивающие по 2,5 Гбит/с каждая. PCIe использует кодирование 10 сигнальных битов для каждых 8 битов данных (для обеспечения защиты от ошибок), именно поэтому 2,5 Гбит/с по линии дают 250 Мбайт/с. Вполне понятно, что низкое число дорожек/контактов позволяет создавать упрощённые дизайны материнских плат, облегчая прокладку дорожек.
Контроллер HighPoint RocketRAID 2320 PCIe

Мы уже рассматривали карту Highpoint RocketRAID 2220 PCI-X, когда сравнивали пять последних RAID-контроллеров SATA II. Поэтому здесь мы просто добавим результаты тестов PCIe-версии RocketRAID 2320. Опять же, мы фокусировали основное внимание на производительности ввода/вывода, поскольку она наиболее важна для RAID.
2320 является RAID-контроллером с интерфейсом x4 PCI Express, и он базируется на той же технологии, что и 2220. Контроллер имеет восемь портов SATA 2.5, способных работать со скоростью 300 Мбайт/с на порт, а также поддерживает «родную» очередь команд NCQ. В отличие от старых RAID-контроллеров HighPoint, последнее поколение использует аппаратное ускорение операций XOR, весьма полезное для массивов RAID 5.
Благодаря низкому профилю, RocketRAID 2320 можно использовать во всех типах серверов, включая 1U. Для этой цели в комплект поставки HighPoint прилагает слот с низким профилем.


Создание массива

Создание RAID-массива на восемь дисков прошло без проблем. Мы использовали семь накопителей Seagate NL35 и один Barracuda 7200.8 на 400 Гбайт каждый. Barracuda — это тот же самый накопитель, но не сертифицированный на работу 24/7.

Тестовая конфигурация
| Системное аппаратное обеспечение | |
| Процессор | 2x Intel Xeon (ядро Nocona) 3,6 ГГц, FSB800, 1 Мбайт кэша L2 |
| Платформа | Asus NCL-DS (Socket 604) Чипсет Intel E7520, BIOS 1005 |
| Память | Corsair CM72DD512AR-400 (DDR2-400 ECC, регистровая) 2x 512 Мбайт, CL3-3-3-10 |
| Системный жёсткий диск | Western Digital Caviar WD1200JB 120 Гбайт, 7200 об/мин, кэш 8 Мбайт, UltraATA/100 |
| Контроллер накопителей | Intel 82801EB UltraATA/100 (ICH5) Silicon Image Sil3124, PCI-X |
| Сеть | Broadcom BCM5721 встроенный Gigabit Ethernet NIC |
| Графическая карта | Встроенная графика ATi RageXL, 8 Мбайт |
| Тесты | |
| Измерение производительности | c’t h2benchw 3.6 |
| Производительность ввода/вывода | IOMeter 2003.05.10 Fileserver-Benchmark Webserver-Benchmark Database-Benchmark Workstation-Benchmark |
| Системное программное обеспечение и драйверы | |
| ОС | Microsoft Windows Server 2003 Enterprise Edition, Service Pack 1 |
| Драйвер платформы | Intel Chipset Installation Utility 7.0.0.1025 |
| Графический драйвер | Default Windows Graphics Driver |
Скорость передачи данных против производительности ввода/вывода
Сравнение скорости передачи данных PCI-X и PCI Express оказалось весьма интересным, поскольку различий немного. Даже массив RAID 0 на восемь приводов не сможет полностью использовать пропускную способность, предоставляемую PCIe x4 или PCI-X 133. Так есть ли какая-либо причина покупать контроллер с интерфейсом PCI Express, если нет ощутимого преимущества, а цена бывает даже выше?
Да, есть. Мы специально собрали тестовую площадку на основе RAID-контроллеров, чтобы сравнить две почти идентичные карты в одинаковом повседневном окружении. Как можно увидеть ниже, PCIe даёт определённые улучшения по производительности ввода/вывода.
Результаты тестирования



Анализ результатов
Если вы перейдёте с PCI-X на PCI Express в надежде увеличить пропускную способность передачи данных, то будете разочарованы. Различия по скорости передачи между двумя идентичными картами HighPoint с интерфейсами PCI-X и PCI Express минимальны. Хотя в статье приведены только тесты RAID 5, массив RAID 0 на восемь накопителей даст прирост в производительности, но не изменит того факта, что различия между картами минимальны.
Исследование производительности ввода/вывода приводит к другим выводам. Тесты сценариев базы данных, файлового сервера и рабочий станции показывают, что решение PCIe даёт преимущества. Особенно они заметны на глубоких очередях. В то же время, тест web-сервера от PCIe никак не выигрывает.
Причина кроется в распределении доступа на чтение и запись. Web-сервер IOmeter вообще ничего не записывает, в то время как в других сценариях запись производится. В итоге прирост производительности, обеспечиваемый PCI Express, связан с разделением каналов шины на чтение и запись (две сигнальные пары линий).
Заключение

Разница в производительности между PCI-X и PCI Express в реальной жизни относительно невелика, поскольку пропускной способности обоих интерфейсов более чем достаточно для RAID-контроллеров на восемь накопителей.
Однако чем больше карт вы планируете использовать, и чем больше они будут выполнять конкурентных операций чтения/записи, тем выше окажется преимущество компонентов PCI Express. Благодаря независимым каналам чтения/записи, а также выделенной пропускной способности для каждого устройства, интерфейсом будущего определённо является PCI Express, причём даже на серверном сегменте. Но пройдут многие месяцы, если не годы, пока интерфейс PCI Express не достигнет уровня зрелости и признания рынком наравне с хорошо себя зарекомендовавшим параллельным интерфейсом PCI-X.
Сравнительная таблица функций RAID-контроллеров SATA II
| Производитель | Highpoint | LSI Logic | Highpoint |
| Контроллер | RocketRAID 2320 | MegaRAID SATA 300-8X | RocketRAID 2220 |
| Прошивка | 1.0 | H430 | 1.02 |
| Драйвер | 1.0 | 5.49 | 1.04 |
| Число портов SATA II | 8 | 8 | 8 |
| Кэш | Нет | 128 Мбайт DDR333 ECC | Нет |
| Интерфейс | PCI Express x4 | PCI-X 64 бита, 133 МГц | PCI-X 64 бита, 133 МГц |
| Опциональные версии | Нет | Нет | Нет |
| Поддержка нескольких карт | Да | Нет | Да |
| Формат карты | Низкий профиль | Стандартный | Низкий профиль |
| XOR-движок | HPT601 | Intel IOP331 | HPT601 |
| Миграция уровней RAID | Да | Да | Да |
| Онлайновое расширение ёмкости | Да | Да | Да |
| Несколько RAID-массивов | Да | Да | Нет |
| Отложенная раскрутка шпинделя | Да | Да | Да |
| Поддержка запасного привода | Да | Да | Да |
| Батарея резервного питания | Нет | Опционально | Нет |
| Поддержка ОС | Windows 2000/XP/2003, Linux, FreeBSD, Mac OS X 10.x | Windows 2000/XP/2003, DOS, FreeBSD, Netware, RedHat, SuSe, SCO, Unixware | Windows 2000/XP/2003, Linux, FreeBSD, Mac OS X 10.x |
| Прочее | Интерфейс командной строки, планировщик, 64-битная LBA | Только 48-битная LBA (массив 2 Тбайт макс.), поддержка 64-битного сервера Windows | Интерфейс командной строки, планировщик, 64-битная LBA |
| Рекомендованная цена (US $) | 290 | 410 | 270 |
| Гарантия | 1 год | 3 года | 1 год |
| Производитель | Areca | AMCC/3Ware | Broadcom/Raidcore |
| Контроллер | ARC 1220 | 9550SX | BC4852 |
| Прошивка | 1.36 | 9.3.0.1 | 2.0 |
| Драйвер | 1.02 | 9.3.0.1 | 1.42 |
| Число портов SATA II | 16 (версия PCI-X имеет 24) | 8 | 8 |
| Кэш | 128 Мбайт DDR333 ECC | 128 Мбайт DDR2-400 ECC | Нет |
| Интерфейс | PCI Express x4 | PCI-X 64 бита, 133 МГц | PCI-X 64 бита, 133 МГц |
| Опциональные версии | 4, 8, 12 портов | 4, 8, 16 портов | 4 порта (BC4452) |
| Поддержка нескольких карт | Да | Да | Да (4) |
| Формат карты | Низкий профиль (разъёмы сверху) | Низкий профиль | Низкий профиль |
| XOR-движок | Intel IOP332 | PowerPC RISC | Нет |
| Миграция уровней RAID | Да | Да | Да |
| Онлайновое расширение ёмкости | Да | Да | Да |
| Несколько RAID-массивов | Да | Да | Да |
| Отложенная раскрутка шпинделя | Да | Да | Да |
| Поддержка запасного привода | Да | Да | Да |
| Батарея резервного питания | Опционально | Опционально | Нет |
| Поддержка ОС | Windows 2000/XP/2003, RedHat, SuSe, FreeBSD | Windows 2000/XP/2003, RedHat, SuSe, Fedora, FreeBSD | Windows 2000/XP/2003, RedHat, SuSe, Fedora |
| Прочее | Поддержка RAID6, интерфейс командной строки, звуковая тревога, поддержка SNMP, индикатор активности приводов, 64-битная LBA | Интерфейс командной строки, поддержка SNMP, индикатор активности приводов, журналирование записи, 64-битная LBA, изменение размера stripe | Mirror splitting, скрытие массивов, проверка целостности по расписанию, 64-битная LBA, dedicated/global/distributed spare |
| Рекомендованная цена (US $) | 630 | 500 | 320 |
| Гарантия | Неизвестна | 3 года | 3 года |

