ОБЗОРЫ
Новая архитектура обеспечивает низкую стоимость при высоких требованиях к пропускной способности
Напомним, что разработка шины PCI (Peripheral Component Interconnect) началась весной 1991 г. До того как она появилась на свет, наиболее часто в ПК использовались шина ISA и ее усовершенствованная разновидность - EISA. В соответствии со спецификацией PCI каждое устройство имело доступ напрямую к локальной шине процессора и шине системной памяти через связующий их мост. Такое решение обладало по крайней мере двумя преимуществами. Во-первых, оно позволяло выполнять по шине несколько операций одновременно - например, процессор мог забирать из кэш-памяти моста данные, в то время как устройство обращалось к системной памяти. Во-вторых, оно обеспечивало независимость локальной шины от процессора. Архитектура PCI рассчитана на тактовые частоты 33 и 66 МГц, а при 64-разрядной шине позволяет получить пропускную способность 533 Мб/с. Разделяемая архитектура имеет очевидные недостатки; в частности, какое-либо одно периферийное устройство может монополизировать шину, в результате чего другие устройства не будут иметь к ней доступа. Кроме того, шина с распределением памяти затрудняет выявление и изолирование источника сбоя. С повышением тактовой частоты процессоров до 1 ГГц при ширине шины процессор - память в 64 разряда, с одной стороны, и с возрастанием пропускной способности локальной сети до 1 Гбит/с и появлением высокоскоростных периферийных устройств на базе Ultra3 SCSI и Fibre Channel - с другой, пропускной способности имеющихся реализаций PCI оказывается недостаточно.
В 1998 г. была предложена новая спецификация расширения шины PCI - PCI-X. Она опиралась на существующую технологию PCI, но за счет ряда усовершенствований протокола позволяла значительно увеличить производительность шины: при частоте 133 МГц и ширине 64 разряда ее максимальная пропускная способность составляла свыше 1 Гб/с, а именно 1066 Мб/с.
Требования ужесточаются
Шина PCI прекрасно служила на протяжении последних 10 лет, и она еще будет использоваться какое-то время. Однако требования к подобным устройствам продолжают расти. Будущая архитектура ввода-вывода третьего поколения (3GIO, 3rd Generation Input Output) представляет собой универсальную архитектуру последовательного типа с малым количеством контактов, производительность которой будет ограничиваться исключительно технологическими особенностями соединений. Предполагается, что эта архитектура будет с равным успехом применяться в настольных и мобильных системах, серверах, коммуникационных устройствах и встроенных приложениях. Специалисты из Arapahoe Work Group, которая и занимается разработкой соответствующей спецификации, предварительно выработали определенные требования к межкомпонентным межсоединениям третьего поколения.
Топология системы с коммутатором
В частности, обеспечивается унификация архитектуры ввода-вывода для различных типов устройств. При этом предусматривается, что стоимость данной унификации будет такой же, как и для систем на PCI, или ниже. Начальная загрузка существующих ОС должна выполняться без дополнительной модификации. Масштабируемость производительности обеспечивается путем изменения частоты и добавления дополнительных линий связи. Благодаря этому достигается высокая пропускная способность в расчете на одну линию. Предусматриваются соединения типа “микросхема - микросхема”, “плата - плата” через разъем или стыковочный узел. В спецификацию включены такие возможности, как управление питанием, “горячее” подключение и замена.
За рамками будущей спецификации разработчики оставили синхронную связь между процессорами, внутренние соединения в памяти и кабельные соединения в кластерах. Последние разработки в области технологий, призванных обеспечить высокоскоростные соединения типа “точка - точка” с минимальным количеством выводов на разъемах, демонстрируют новые привлекательные возможности для существенного повышения пропускной способности. Топология 3GIO подразумевает наличие ведущего моста (host bridge) и нескольких конечных точек (устройств ввода-вывода), как показано на рисунке. Множество соединений типа “точка - точка” обусловили необходимость ввести в топологию системы новый элемент - коммутатор ввода-вывода. Он заменил собой многоабонентскую шину и используется для расширения шины ввода-вывода. Коммутатор также может поддерживать одноранговую связь между конечными точками, причем соответствующий трафик (если только для него не требуется взаимодействия с памятью) не попадает на ведущий мост. Подключения с небольшим числом управляющих импульсов и соединениями типа “точка - точка” можно создавать с помощью соединителей и кабелей. Механическая конструкция 3GIO допускает использование новых способов деления системы на блоки.
Коммутатор 3GIO обеспечивает разветвление и позволяет добавить дополнительные высокопроизводительные встраиваемые устройства ввода-вывода. По мнению экспертов, PCI будет присутствовать во многих системах для поддержки нынешних приложений, которым достаточно более низкой пропускной способности, но только до того момента, когда новые требования, например перспективный форм-фактор, не заставят полностью перейти на 3GIO.
Серверные системы предъявляют высокие требования к производительности операций ввода-вывода и возможности подключения, в том числе высокопроизводительных соединений 3GIO с шиной PCI-X, а также структурами Gigabit Ethernet и InfiniBand. Комбинация 3GIO для “внутренних” операций ввода-вывода и структуры InfiniBand для “внешнего” ввода-вывода и внутрикластерных соединений позволяет перейти на серверах от модели “параллельной общей шины” к высокоскоростным последовательным межкомпонентным соединениям.
Особенности 3GIO
Архитектура 3GIO состоит из нескольких уровней. В ней поддерживается совместимость с моделью адресации в PCI, что обеспечивает нормальную работу существующих приложений и драйверов. Процедуры конфигурирования в 3GIO используют стандартные механизмы plug-and-play, определенные в PCI. Созданные на программном уровне запросы на чтение и запись транспортируются уровнем транзакций на устройства ввода-вывода, работающие по протоколу, поддерживающему пакеты и транзакции. На канальном уровне к пакетам добавляются порядковые номера и циклический код коррекции ошибок, это позволяет обеспечить высокую надежность передачи данных. Базовый физический уровень состоит из двойного симплексного канала, который реализован в виде принимающей и получающей пар проводников. Исходная скорость передачи 2,5 Гбит/с в каждом направлении позволяет обеспечить канал связи со скоростью передачи данных 200 Мб/с, что в два раза выше, чем у обычной шины PCI.
Стандартное 3GIO-соединение состоит из двух низковольтных, раздельно управляемых сигнальных пар: передающей и принимающей. Базовая частота (скорость передачи) - 2,5 Гбит/с в каждом направлении, и, как ожидается, с развитием кремниевых технологий она возрастет до 10 Гбит/с (теоретический максимум для передачи сигналов с использованием медного носителя). Физический уровень пересылает пакеты между транспортными уровнями двух исполнительных устройств 3GIO.
Пропускная способность 3GIO легко линейно масштабируется путем добавления дополнительных сигнальных пар, обеспечивающих дополнительные линии. Физический уровень поддерживает линии следующих кратностей: x1, x2, x4, x8, x12, x16 и x32, при этом байты данных распределяются по ним определенным образом. Поскольку информация передается по линии с кодированием, то распределение и сборка байтов данных выполняются “прозрачно” для других уровней.
В процессе инициализации каждое 3GIO-соединение устанавливается после согласования ширины связи и частоты использования между двумя исполнительными устройствами на концах соединения. При этом не требуется никаких встроенных программ или кода операционной системы.
Поддержка будущих требований к производительности в 3GIO осуществляется благодаря возможности повышения быстродействия и передовым методам кодирования. Эти требования (по скоростям, методам кодирования или носителям) окажут влияние лишь на физический уровень.
Для обеспечения целостности данных на канальном уровне к пакетам добавляются порядковые номера и код коррекции ошибок. Большинство пакетов создается на уровне транзакций. Основанный на разрешениях протокол управления потоком данных гарантирует, что пакеты передаются лишь при заведомой готовности буфера на принимающей стороне. Такой механизм избавляет от повторения пакетов, а значит, и от избыточной загрузки линии передачи из-за ограничений ресурсов. Канальный уровень автоматически повторяет передачу испорченных пакетов.
Все запросы реализованы в виде расщепленных транзакций, поэтому при пересылке некоторых пакетов запроса требуется получение пакета ответа. Каждый пакет оснащен уникальным идентификатором, что позволяет направлять ответные пакеты стороне, создавшей пакет запроса. В формате пакета предусмотрена поддержка стандартной 32-разрядной и расширенной 64-разрядной адресации памяти.
Уровень транзакций поддерживает четыре адресных пространства: три адресных пространства PCI (память, ввод-вывод и конфигурирование) и пространство сообщений (Message Space). Как известно, в спецификации PCI 2.2 определен дополнительный метод передачи прерываний MSI (Message Signaled Interrupt - “прерывание с сообщением”), в котором вместо аппаратного сигнала задействовалась операция записи в память особой информации. В спецификации 3GIO подход MSI применяется как главный метод обработки прерываний, а пространство сообщений используется для обработки всех служебных сигналов, таких, как прерывания, запросы управления питанием, сбросы и др., как основных сообщений. Другие возможности стандарта PCI 2.2, например подтверждение (квитирование) прерываний, также реализованы в виде основных сообщений. Заметим, что сообщения 3GIO следует рассматривать как “виртуальные” коммуникационные линии, так как их задача - устранить массу существующих в настоящее время служебных сигналов.
Программная совместимость исключительно важна для межкомпонентных соединений ввода-вывода третьего поколения. Имеющаяся в PCI программная модель сохранена в архитектуре 3GIO, что позволит без проблем пользоваться применяемым сегодня программным обеспечением. А новым программам будут доступны новые возможности.
Благодаря небольшому количеству линий в 3GIO-соединениях можно будет обеспечить эволюционный подход к разработке конструкции подсистемы ввода-вывода и революционный - к делению системы на модули. Начальные реализации плат-расширений на базе 3GIO будут сосуществовать с действующими платами с форм-фактором PCI (как полноразмерными, так и с высотой в половину стандартной). Есть две возможности поддержки механически совместимого с PCI подключения: например, для низкопроизводительных подключений с одной или двумя линиями можно использовать стандартный PCI-разъем, а для высокопроизводительных подключений к графической плате (четыре линии) - применить новый соединитель, размещенный рядом с имеющимся PCI-разъемом в месте, где раньше располагался ISA-разъем. Система будущего будет состоять из вычислительного “кирпича”, полностью отделенного от компонентов пользовательского интерфейса ввода-вывода.
Дифференциальные 3GIO-подключения по схеме “точка - точка” обеспечивают высокоскоростную связь между компонентами с минимумом управляющих сигналов. В 3GIO из пространства сообщений изъяты все существовавшие ранее служебные сигналы, что позволило сократить число сигналов до минимума.
Рабочая группа Arapahoe плотно сотрудничает с отраслевой группой PCI-SIG (PCI Special Interest Group), с тем чтобы изделия на основе 3GIO появились во второй половине 2003 г.